From 01f27e10bbac962109588fec477ef92237cf569b Mon Sep 17 00:00:00 2001 From: Szymon Tomasz Stefanek Date: Sat, 26 Jun 2010 01:28:32 +0000 Subject: Rework the addon pack dialog. git-svn-id: https://svn.kvirc.de/svn/trunk/kvirc@4520 17fca916-40b9-46aa-a4ea-0a15b648b75c --- src/modules/addon/addonfunctions.cpp | 135 +++++++++-------------------------- 1 file changed, 32 insertions(+), 103 deletions(-) (limited to 'src/modules/addon/addonfunctions.cpp') diff --git a/src/modules/addon/addonfunctions.cpp b/src/modules/addon/addonfunctions.cpp index 0505e28f1..f9248e977 100644 --- a/src/modules/addon/addonfunctions.cpp +++ b/src/modules/addon/addonfunctions.cpp @@ -53,6 +53,8 @@ namespace KviAddonFunctions KviPointerHashTable * pInfoFields; QString * pValue; QString szErr; + QPixmap pix; + QByteArray * pByteArray; bool bInstall; KviHtmlDialogData hd; @@ -70,12 +72,17 @@ namespace KviAddonFunctions pInfoFields = r.stringInfoFields(); 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,KVI_CURRENT_ADDONS_ENGINE_VERSION))return notAValidAddonPackage(szError); // make sure the default fields exist for(int i=0;i<6;i++) @@ -86,17 +93,28 @@ namespace KviAddonFunctions } // ok.. it should be really valid at this point + // load its picture + pByteArray = r.binaryInfoFields()->find("Image"); + if(pByteArray) + pix.loadFromData(*pByteArray,0,0); + + if(pix.isNull()) + { + // load the default icon + pix = *(g_pIconManager->getBigIcon(KVI_BIGICON_ADDONS)); + } + QString szPackageName; QString szPackageVersion; QString szPackageAuthor; QString szPackageDescription; QString szPackageDate; - QString szPackageAddonEngineVersion; + QString szAddonPackVersion; QString szPackageApplication; QString szAuthor = __tr2qs_ctx("Author","addon"); QString szCreatedAt = __tr2qs_ctx("Created at","addon"); - QString szCreatedOn = __tr2qs_ctx("Created with","Addon"); + QString szCreatedWith = __tr2qs_ctx("Created with","addon"); r.getStringInfoField("Name",szPackageName); r.getStringInfoField("Version",szPackageVersion); @@ -104,63 +122,27 @@ namespace KviAddonFunctions r.getStringInfoField("Description",szPackageDescription); r.getStringInfoField("Application",szPackageApplication); r.getStringInfoField("Date",szPackageDate); + r.getStringInfoField("AddonPackVersion",szAddonPackVersion); QString szWarnings; - QString szDetails = ""; QString szTmp; bool bValid = true; - QString szAddonName; - QString szAddonVersion; - QString szAddonDescription; - QString szAddonDate; - QString szAddonAuthor; - QString szAddonEngineVersion; - QString szAddonApplication; - - r.getStringInfoField("AddonName",szAddonName); - r.getStringInfoField("AddonVersion",szAddonVersion); - r.getStringInfoField("AddonApplication",szAddonApplication); - r.getStringInfoField("AddonDescription",szAddonDescription); - r.getStringInfoField("AddonDate",szAddonDate); - r.getStringInfoField("AddonAuthor",szAddonAuthor); - r.getStringInfoField("AddonAddonEngineVersion",szAddonEngineVersion); - - if(szAddonName.isEmpty() || szAddonVersion.isEmpty() || szAddonEngineVersion.isEmpty()) - bValid = false; - if(KviMiscUtils::compareVersions(szAddonEngineVersion,KVI_CURRENT_ADDONS_ENGINE_VERSION) < 0) + if(szPackageName.isEmpty() || szPackageVersion.isEmpty() || szAddonPackVersion.isEmpty()) bValid = false; - QString szDetailsBuffer; - - getAddonHtmlDescription( - szDetailsBuffer, - szAddonName, - szAddonVersion, - szAddonDescription, - szAddonApplication, - szAddonAuthor, - szAddonDate, - szAddonEngineVersion - ); + if(KviMiscUtils::compareVersions(szAddonPackVersion,KVI_CURRENT_ADDONS_ENGINE_VERSION) < 0) + bValid = false; - szDetails += szDetailsBuffer; if(!bValid) { - szDetails += "

"; - szDetails += __tr2qs_ctx("Warning: The addon might be incompatible with this version of KVIrc","addon"); - szDetails += "

"; + szWarnings += "

"; + szWarnings += __tr2qs_ctx("Warning: The addon might be incompatible with this version of KVIrc","addon"); + szWarnings += "

"; } - szDetails += "

"; - szDetails += __tr2qs_ctx("Go Back to Package Data","addon"); - szDetails += "

"; - szDetails += ""; - - QString szShowDetails = __tr2qs_ctx("Show Details","addon"); - KviQString::sprintf(hd.szHtmlText, "" \ "" \ @@ -184,9 +166,6 @@ namespace KviAddonFunctions "

" \ "%Q" \ "
" \ - "

" \ - "%Q" \ - "

" \ "" \ "", &szPackageName, @@ -196,13 +175,12 @@ namespace KviAddonFunctions &szPackageAuthor, &szCreatedAt, &szPackageDate, - &szCreatedOn, + &szCreatedWith, &szPackageApplication, - &szWarnings, - &szShowDetails + &szWarnings ); - hd.addHtmlResource("addon_dialog_details",szDetails); + hd.addImageResource("addon_dialog_pack_image",pix); hd.addHtmlResource("addon_dialog_main",hd.szHtmlText); QString beginCenter = "
"; @@ -253,7 +231,7 @@ namespace KviAddonFunctions // Now we have all stuff in ~/.config/KVIrc/tmp/$rand if(! KviKvsScript::run( - QString::fromAscii("parse \"%1\\install.kvs\"") + QString::fromAscii("parse \"%1/install.kvs\"") .arg( szUnpackPath .replace("\\","\\\\") @@ -278,55 +256,6 @@ namespace KviAddonFunctions return true; } - void getAddonHtmlDescription( - QString &szBuffer, - const QString &szAddonName, - const QString &szAddonVersion, - const QString &szAddonDescription, - const QString &szAddonApplication, - const QString &szAddonAuthor, - const QString &szAddonDate, - const QString &szAddonAddonEngineVersion - ) - { - QString szAuthor = __tr2qs_ctx("Author","addon"); - QString szCreatedAt = __tr2qs_ctx("Created at","addon"); - QString szCreatedOn = __tr2qs_ctx("Created with","addon"); - QString szAddonEngineVersion = __tr2qs_ctx("Addon Engine Version","addon"); - QString szSubdirectory = __tr2qs_ctx("Subdirectory","addon"); - - KviQString::sprintf( - szBuffer, - "

" \ - "

%Q %Q

" \ - "

" \ - "

" \ - "%Q" \ - "

" \ - "

" \ - "%Q: %Q
" \ - "%Q: %Q
" \ - "

" \ - "

" \ - "" \ - "%Q: %Q
" \ - "%Q: %Q
" \ - "
" \ - "

", - &szAddonName, - &szAddonVersion, - &szAddonDescription, - &szAuthor, - &szAddonAuthor, - &szCreatedAt, - &szAddonDate, - &szCreatedOn, - &szAddonApplication, - &szAddonAddonEngineVersion, - &szAddonAddonEngineVersion - ); - } - QString createRandomDir() { QString szDirName; -- cgit v1.3.1-10-gc9f91