diff options
| author | 2008-05-16 01:20:32 +0000 | |
|---|---|---|
| committer | 2008-05-16 01:20:32 +0000 | |
| commit | a8a9bcb75cd8ad25ed2d3ca24a149a11f8ceb0e7 (patch) | |
| tree | abab436dcecabe382b36a2e421be25a06242504a /src/modules/addon | |
| parent | two small qt4 fixes (diff) | |
| download | KVIrc-a8a9bcb75cd8ad25ed2d3ca24a149a11f8ceb0e7.tar.gz KVIrc-a8a9bcb75cd8ad25ed2d3ca24a149a11f8ceb0e7.tar.bz2 KVIrc-a8a9bcb75cd8ad25ed2d3ca24a149a11f8ceb0e7.zip | |
more work on addon manager (wip); added a test addon; bumped sources date
git-svn-id: https://svn.kvirc.de/svn/trunk/kvirc@1789 17fca916-40b9-46aa-a4ea-0a15b648b75c
Diffstat (limited to 'src/modules/addon')
| -rw-r--r-- | src/modules/addon/AddonTest-1.0.0.kva | bin | 0 -> 8854 bytes | |||
| -rw-r--r-- | src/modules/addon/addonfunctions.cpp | 122 | ||||
| -rw-r--r-- | src/modules/addon/addonfunctions.h | 3 | ||||
| -rw-r--r-- | src/modules/addon/managementdialog.cpp | 3 |
4 files changed, 47 insertions, 81 deletions
diff --git a/src/modules/addon/AddonTest-1.0.0.kva b/src/modules/addon/AddonTest-1.0.0.kva Binary files differnew file mode 100644 index 000000000..dc3d23b24 --- /dev/null +++ b/src/modules/addon/AddonTest-1.0.0.kva diff --git a/src/modules/addon/addonfunctions.cpp b/src/modules/addon/addonfunctions.cpp index ac4863728..fa566cfa7 100644 --- a/src/modules/addon/addonfunctions.cpp +++ b/src/modules/addon/addonfunctions.cpp @@ -68,10 +68,9 @@ namespace KviAddonFunctions pValue = pInfoFields->find("PackageType"); if(!pValue)return notAValidAddonPackage(szError); - if(!KviQString::equalCI(*pValue,"AddonPack"))return notAValidAddonPackage(szError); pValue = pInfoFields->find("AddonPackVersion"); if(!pValue)return notAValidAddonPackage(szError); - if(!KviQString::equalCI(*pValue,"1"))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++) @@ -79,14 +78,7 @@ namespace KviAddonFunctions pValue = pInfoFields->find(check_fields[i]); if(!pValue)return notAValidAddonPackage(szError); } - - pValue = pInfoFields->find("AddonCount"); - if(!pValue)return notAValidAddonPackage(szError); - bool bOk; - int iAddonCount = pValue->toInt(&bOk); - if(!bOk)return notAValidAddonPackage(szError); - if(iAddonCount < 1)return notAValidAddonPackage(szError); - + // ok.. it should be really valid at this point QString szPackageName; QString szPackageVersion; @@ -110,73 +102,53 @@ namespace KviAddonFunctions QString szWarnings; QString szDetails = "<html><body bgcolor=\"#ffffff\">"; QString szTmp; - - int iIdx = 0; - int iValidAddonCount = iAddonCount; - while(iIdx < iAddonCount) - { - bool bValid = true; - - QString szAddonName; - QString szAddonVersion; - QString szAddonDescription; - QString szAddonDate; - QString szAddonSubdirectory; - QString szAddonAuthor; - QString szAddonEngineVersion; - QString szAddonApplication; - - KviQString::sprintf(szTmp,"Addon%dName",iIdx); - r.getStringInfoField(szTmp,szAddonName); - KviQString::sprintf(szTmp,"Addon%dVersion",iIdx); - r.getStringInfoField(szTmp,szAddonVersion); - KviQString::sprintf(szTmp,"Addon%dApplication",iIdx); - r.getStringInfoField(szTmp,szAddonApplication); - KviQString::sprintf(szTmp,"Addon%dDescription",iIdx); - r.getStringInfoField(szTmp,szAddonDescription); - KviQString::sprintf(szTmp,"Addon%dDate",iIdx); - r.getStringInfoField(szTmp,szAddonDate); - KviQString::sprintf(szTmp,"Addon%dSubdirectory",iIdx); - r.getStringInfoField(szTmp,szAddonSubdirectory); - KviQString::sprintf(szTmp,"Addon%dAuthor",iIdx); - r.getStringInfoField(szTmp,szAddonAuthor); - KviQString::sprintf(szTmp,"Addon%dAddonEngineVersion",iIdx); - r.getStringInfoField(szTmp,szAddonEngineVersion); - - if(szAddonName.isEmpty() || szAddonVersion.isEmpty() || szAddonSubdirectory.isEmpty() || szAddonEngineVersion.isEmpty()) - bValid = false; - if(KviMiscUtils::compareVersions(szAddonEngineVersion,KVI_CURRENT_ADDONS_ENGINE_VERSION) < 0) - bValid = false; + bool bValid = true; + + QString szAddonName; + QString szAddonVersion; + QString szAddonDescription; + QString szAddonDate; + QString szAddonSubdirectory; + QString szAddonAuthor; + QString szAddonEngineVersion; + QString szAddonApplication; - QString szDetailsBuffer; + r.getStringInfoField("AddonName",szAddonName); + r.getStringInfoField("AddonVersion",szAddonVersion); + r.getStringInfoField("AddonApplication",szAddonApplication); + r.getStringInfoField("AddonDescription",szAddonDescription); + r.getStringInfoField("AddonDate",szAddonDate); + r.getStringInfoField("AddonSubdirectory",szAddonSubdirectory); + r.getStringInfoField("AddonAuthor",szAddonAuthor); + r.getStringInfoField("AddonAddonEngineVersion",szAddonEngineVersion); - getAddonHtmlDescription( - szDetailsBuffer, - szAddonName, - szAddonVersion, - szAddonDescription, - szAddonSubdirectory, - szAddonApplication, - szAddonAuthor, - szAddonDate, - szAddonEngineVersion, - iIdx - ); + if(szAddonName.isEmpty() || szAddonVersion.isEmpty() || szAddonSubdirectory.isEmpty() || szAddonEngineVersion.isEmpty()) + bValid = false; + if(KviMiscUtils::compareVersions(szAddonEngineVersion,KVI_CURRENT_ADDONS_ENGINE_VERSION) < 0) + bValid = false; - if(iIdx > 0) szDetails += "<hr>"; + QString szDetailsBuffer; - szDetails += szDetailsBuffer; + getAddonHtmlDescription( + szDetailsBuffer, + szAddonName, + szAddonVersion, + szAddonDescription, + szAddonSubdirectory, + szAddonApplication, + szAddonAuthor, + szAddonDate, + szAddonEngineVersion + ); - if(!bValid) - { - szDetails += "<p><center><font color=\"#ff0000\"><b>"; - szDetails += __tr2qs_ctx("Warning: The addon might be incompatible with this version of KVIrc","addon"); - szDetails += "</b></font></center></p>"; - iValidAddonCount--; - } + szDetails += szDetailsBuffer; - iIdx++; + if(!bValid) + { + szDetails += "<p><center><font color=\"#ff0000\"><b>"; + szDetails += __tr2qs_ctx("Warning: The addon might be incompatible with this version of KVIrc","addon"); + szDetails += "</b></font></center></p>"; } szDetails += "<br><p><center><a href=\"Addon_dialog_main\">"; @@ -184,13 +156,6 @@ namespace KviAddonFunctions szDetails += "</a></center></p>"; szDetails += "</body></html>"; - if(iValidAddonCount < iAddonCount) - { - szWarnings += "<p><center><font color=\"#ff0000\"><b>"; - szWarnings += __tr2qs_ctx("Warning: Some of the Addons contained in this package might be either corrupted or incompatible with this version of KVIrc","addon"); - szWarnings += "</b></font></center></p>"; - } - QString szShowDetails = __tr2qs_ctx("Show Details","addon"); KviQString::sprintf(hd.szHtmlText, @@ -278,8 +243,7 @@ namespace KviAddonFunctions const QString &szAddonApplication, const QString &szAddonAuthor, const QString &szAddonDate, - const QString &szAddonAddonEngineVersion, - int iUniqueIndexInDocument + const QString &szAddonAddonEngineVersion ) { QString szAuthor = __tr2qs_ctx("Author","Addon"); diff --git a/src/modules/addon/addonfunctions.h b/src/modules/addon/addonfunctions.h index 23cae3719..045b7a52f 100644 --- a/src/modules/addon/addonfunctions.h +++ b/src/modules/addon/addonfunctions.h @@ -45,8 +45,7 @@ namespace KviAddonFunctions const QString &szAddonApplication, const QString &szAddonAuthor, const QString &szAddonDate, - const QString &szAddonAddonEngineVersion, - int iUniqueIndexInDocument = 0 + const QString &szAddonAddonEngineVersion ); }; diff --git a/src/modules/addon/managementdialog.cpp b/src/modules/addon/managementdialog.cpp index 4b9a4a8c9..5bd17aa9a 100644 --- a/src/modules/addon/managementdialog.cpp +++ b/src/modules/addon/managementdialog.cpp @@ -288,12 +288,14 @@ void KviScriptManagementDialog::installScript() // Switch between script and addon
if(szFileName.endsWith(".kvs"))
{
+ qDebug("Script file .kvs");
QString szCmd = "parse \"";
szCmd += szFileName;
szCmd += "\"";
KviKvsScript::run(szCmd,g_pActiveWindow);
} else if(szFileName.endsWith(".kva")){
+ qDebug("Addon file .kva");
if(!KviAddonFunctions::installAddonPackage(szFileName,szError,this))
{
QMessageBox::critical(this,__tr2qs_ctx("Install Addon - KVIrc","addon"),szError,QMessageBox::Ok,QMessageBox::NoButton,QMessageBox::NoButton);
@@ -301,6 +303,7 @@ void KviScriptManagementDialog::installScript() }
} else {
// Just for sanity check. We should NEVER enter here
+ qDebug("Entered sanity check");
KviAddonFunctions::notAValidAddonPackage(szError);
QMessageBox::critical(this,__tr2qs_ctx("Install Addon - KVIrc","addon"),szError,QMessageBox::Ok,QMessageBox::NoButton,QMessageBox::NoButton);
}
|
