diff options
| author | 2010-05-25 03:33:49 +0000 | |
|---|---|---|
| committer | 2010-05-25 03:33:49 +0000 | |
| commit | 721d6e2f218abd227fe7ca6ea93f6acf15790964 (patch) | |
| tree | 1497c350e13a5914d8c901af514de607e5659990 /src/modules/addon | |
| parent | update (diff) | |
| download | KVIrc-721d6e2f218abd227fe7ca6ea93f6acf15790964.tar.gz KVIrc-721d6e2f218abd227fe7ca6ea93f6acf15790964.tar.bz2 KVIrc-721d6e2f218abd227fe7ca6ea93f6acf15790964.zip | |
Misc tweaks on the addon dialog.
git-svn-id: https://svn.kvirc.de/svn/trunk/kvirc@4374 17fca916-40b9-46aa-a4ea-0a15b648b75c
Diffstat (limited to 'src/modules/addon')
| -rw-r--r-- | src/modules/addon/addonfunctions.cpp | 96 | ||||
| -rw-r--r-- | src/modules/addon/packaddondialog.cpp | 2 |
2 files changed, 54 insertions, 44 deletions
diff --git a/src/modules/addon/addonfunctions.cpp b/src/modules/addon/addonfunctions.cpp index b245b176f..0505e28f1 100644 --- a/src/modules/addon/addonfunctions.cpp +++ b/src/modules/addon/addonfunctions.cpp @@ -44,7 +44,7 @@ namespace KviAddonFunctions { bool notAValidAddonPackage(QString &szError) { - KviQString::sprintf(szError,__tr2qs_ctx("The selected file does not seem to be a valid KVIrc addon package","addon")); + szError = __tr2qs_ctx("The selected file does not seem to be a valid KVIrc addon package","addon"); return false; } @@ -70,16 +70,19 @@ namespace KviAddonFunctions pInfoFields = r.stringInfoFields(); pValue = pInfoFields->find("PackageType"); - if(!pValue)return notAValidAddonPackage(szError); + if(!pValue) + return notAValidAddonPackage(szError); pValue = pInfoFields->find("AddonPackVersion"); - if(!pValue)return notAValidAddonPackage(szError); + if(!pValue) + return notAValidAddonPackage(szError); if(!KviQString::equalCI(*pValue,KVI_CURRENT_ADDONS_ENGINE_VERSION))return notAValidAddonPackage(szError); // make sure the default fields exist for(int i=0;i<6;i++) { pValue = pInfoFields->find(check_fields[i]); - if(!pValue)return notAValidAddonPackage(szError); + if(!pValue) + return notAValidAddonPackage(szError); } // ok.. it should be really valid at this point @@ -219,52 +222,57 @@ namespace KviAddonFunctions bInstall = KviHtmlDialog::display(pDialogParent,&hd) == 2; - if(bInstall) - { - // Create a random extraction dir - QString szTmpPath, szUnpackPath; - QString szRandomDir = createRandomDir(); - - g_pApp->getLocalKvircDirectory(szTmpPath,KviApp::Tmp); - KviQString::ensureLastCharIs(szTmpPath,QChar(KVI_PATH_SEPARATOR_CHAR)); - szUnpackPath = szTmpPath + szRandomDir; - QDir szTmpDir(szUnpackPath); - - // Check for dir existence - while(szTmpDir.exists()) - { - szRandomDir = createRandomDir(); - szUnpackPath = szTmpPath + szRandomDir; - szTmpDir = QDir(szUnpackPath); - } + if(!bInstall) + return true; - // Unpack addon package into the random tmp dir - if(!r.unpack(szAddonPackageFileName,szUnpackPath)) - { - szErr = r.lastError(); - KviQString::sprintf(szError,__tr2qs_ctx("Failed to unpack the selected file: %Q","addon"),&szErr); - return true; - } + // Create a random extraction dir + QString szTmpPath, szUnpackPath; + QString szRandomDir = createRandomDir(); - // Now we have all stuff in ~/.config/KVIrc/tmp/$rand + g_pApp->getLocalKvircDirectory(szTmpPath,KviApp::Tmp); + KviQString::ensureLastCharIs(szTmpPath,QChar(KVI_PATH_SEPARATOR_CHAR)); + szUnpackPath = szTmpPath + szRandomDir; + QDir szTmpDir(szUnpackPath); - QString szParse="parse \"" + szUnpackPath + "\\install.kvs"+"\""; - szParse.replace("\\","\\\\"); - KviKvsScript::run(szParse,g_pActiveWindow); + // Check for dir existence + while(szTmpDir.exists()) + { + szRandomDir = createRandomDir(); + szUnpackPath = szTmpPath + szRandomDir; + szTmpDir = QDir(szUnpackPath); + } + // Unpack addon package into the random tmp dir + if(!r.unpack(szAddonPackageFileName,szUnpackPath)) + { + szErr = r.lastError(); + KviQString::sprintf(szError,__tr2qs_ctx("Failed to unpack the selected file: %Q","addon"),&szErr); + return false; + } - // Remove all files - QDir * pDir = new QDir(szUnpackPath); - QStringList list = pDir->entryList(QDir::AllEntries,QDir::DirsFirst); - debug("Path: %s",szUnpackPath.toUtf8().data()); - debug("Count: %d",list.count()); + // Now we have all stuff in ~/.config/KVIrc/tmp/$rand + if(! + KviKvsScript::run( + QString::fromAscii("parse \"%1\\install.kvs\"") + .arg( + szUnpackPath + .replace("\\","\\\\") + .replace("\"","\\\"") + ), + g_pActiveWindow + ) + ) + { + // Parsing the script failed + // However, the user should already be notified via normal script output. + } - if(!KviFileUtils::deleteDir(szUnpackPath)) - { - szErr = __tr2qs_ctx("One or more files can't be deleted","addon"); - KviQString::sprintf(szError,__tr2qs_ctx("Failed to unpack the selected file: %Q","addon"),&szErr); - return true; - } + if(!KviFileUtils::deleteDir(szUnpackPath)) + { + // FIXME: Just warn the user and assume success? + szErr = __tr2qs_ctx("One or more files can't be deleted","addon"); + KviQString::sprintf(szError,__tr2qs_ctx("Failed to unpack the selected file: %Q","addon"),&szErr); + return false; } return true; diff --git a/src/modules/addon/packaddondialog.cpp b/src/modules/addon/packaddondialog.cpp index 2e7e67220..af7828990 100644 --- a/src/modules/addon/packaddondialog.cpp +++ b/src/modules/addon/packaddondialog.cpp @@ -86,10 +86,12 @@ KviPackAddonDialog::KviPackAddonDialog(QWidget * pParent) pPage->setTitle(__tr2qs_ctx("Welcome","addon")); QLabel * pLabel = new QLabel(pPage); + pLabel->setWordWrap(true); pLabel->setText(__tr2qs_ctx("This procedure allows you to export the selected addon to a single package. It is useful when you want to distribute your addon to the public.","addon")); pLayout->addWidget(pLabel); pLabel = new QLabel(pPage); + pLabel->setWordWrap(true); QString szText; szText += __tr2qs_ctx("You will be asked to provide some information like the package name, the version, a description and so on.","addon"); szText += "<br><br>"; |
