aboutsummaryrefslogtreecommitdiffstats
path: root/src/modules
diff options
context:
space:
mode:
authorGravatar Noldor2010-02-09 17:14:05 +0000
committerGravatar Noldor2010-02-09 17:14:05 +0000
commite9a39897e4317718ab4d45f6d4c7280a616aa8f5 (patch)
tree3ac3c6b2994db4df6c5a71db02facd6ae1a23f34 /src/modules
parentintroduce a queue for channel requests (mode, who, mode E, mode I, mode b) to... (diff)
downloadKVIrc-e9a39897e4317718ab4d45f6d4c7280a616aa8f5.tar.gz
KVIrc-e9a39897e4317718ab4d45f6d4c7280a616aa8f5.tar.bz2
KVIrc-e9a39897e4317718ab4d45f6d4c7280a616aa8f5.zip
Fixes in addon packager
git-svn-id: https://svn.kvirc.de/svn/trunk/kvirc@3942 17fca916-40b9-46aa-a4ea-0a15b648b75c
Diffstat (limited to 'src/modules')
-rw-r--r--src/modules/addon/addonfunctions.cpp4
-rw-r--r--src/modules/addon/packaddondialog.cpp31
2 files changed, 22 insertions, 13 deletions
diff --git a/src/modules/addon/addonfunctions.cpp b/src/modules/addon/addonfunctions.cpp
index c4dd7822a..1a7133682 100644
--- a/src/modules/addon/addonfunctions.cpp
+++ b/src/modules/addon/addonfunctions.cpp
@@ -255,12 +255,12 @@ namespace KviAddonFunctions
debug("Path: %s",szUnpackPath.toUtf8().data());
debug("Count: %d",list.count());
- if(!KviFileUtils::deleteDir(szUnpackPath))
+ 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;
- }
+ }
}
return true;
diff --git a/src/modules/addon/packaddondialog.cpp b/src/modules/addon/packaddondialog.cpp
index 837f6ad50..5dd453a11 100644
--- a/src/modules/addon/packaddondialog.cpp
+++ b/src/modules/addon/packaddondialog.cpp
@@ -206,7 +206,9 @@ bool KviPackAddonDialog::createInstaller(QString * pszError)
.arg(m_szDescription).arg(m_szMinVersion) \
.arg(m_szIcon);
szTmp += "{\n\t# This is our uninstall callback: it will be called by KVIrc when addon.uninstall is invoked\n\t";
- szTmp += QString("%1::uninstall::uninstall\n}\n\n").arg(m_szName);
+ szTmp += QString("%1::uninstall::uninstall\n").arg(m_szName);
+ szTmp += QString("\t%1::uninstall::uninstallfiles\n").arg(m_szName);
+ szTmp += QString("\t%1::uninstall::uninstallaliases\n}\n\n").arg(m_szName);
szTmp += "# Ok, addon.register succeeded. We can go on with the installation.\n\n";
// install.kvs: run path
@@ -219,10 +221,15 @@ bool KviPackAddonDialog::createInstaller(QString * pszError)
// install.kvs: copy files
szTmp += "# Copy files in each subdirectory\n# the pics\n";
- szTmp += QString("%installer->$copyFiles(\"%mypath/pics/\",\"*.png\",$file.localdir(\"pics/%1\"))\n\n").arg(m_szName);
+ szTmp += QString("if (!$file.exists($file.localdir(\"pics/%1\"))) file.mkdir $file.localdir(\"pics/%1\")\n\n").arg(m_szName);
+ szTmp += QString("%installer->$copyFiles(\"%mypath/pics/%1\",\"*.png\",$file.localdir(\"pics/%1\"))\n\n").arg(m_szName);
szTmp += "# the translations\n";
- szTmp += "%installer->$copyFiles(\"%mypath/locale/\",\"*.mo\",$file.localdir(\"locale\"))\n\n";
+ szTmp += QString("if (!$file.exists($file.localdir(\"locale/%1\"))) file.mkdir $file.localdir(\"locale/%1\")\n\n").arg(m_szName);
+
+ szTmp += "%installer->$copyFiles(\"%mypath/locale/%1\",\"*.mo\",$file.localdir(\"locale/%1\"))\n\n";
+
szTmp += "# the documentation\n";
+ szTmp += QString("if (!$file.exists($file.localdir(\"help/%1\"))) file.mkdir $file.localdir(\"help/en/%1\")\n\n").arg(m_szName);
szTmp += QString("%installer->$copyFiles(\"%mypath/help/en/%1/\",\"*.html\",$file.localdir(\"help/en/%1\"))\n\n").arg(m_szName);
// install.kvs: generate uninstall alias
@@ -240,12 +247,14 @@ bool KviPackAddonDialog::createInstaller(QString * pszError)
szTmp += QString("%alias = \"alias(%1::uninstall::uninstallaliases){$lf\"\n") \
.arg(m_szName);
szTmp += "for(%i=0; %i<$length(%files[]); %i++)\n{\n";
- szTmp += "\tinclude $file.extractpath($0)/src/%files[%i]\n";
- szTmp += "\t%flt = $str.left(%files[%i],$($str.len(%files[%i])-4))\n";
- szTmp += "\t%file = $str.replace(%flt,\"::\",\"_\")\n";
- szTmp += "\t%alias .= \"alias(%file){};$lf\"\n}\n";
- szTmp += QString("%alias .= \"alias(%1::uninstall::uninstallaliases){};$lf\"\n") \
+ szTmp += "\tinclude $file.extractpath($0)/src/%files[%i]\n";
+ szTmp += "\t%flt = $str.left(%files[%i],$($str.len(%files[%i])-4))\n";
+ szTmp += "\t%file = $str.replace(%flt,\"_\",\"::\")\n";
+ szTmp += "\t%alias .= \"alias(%file){};$lf\"\n}\n";
+ szTmp += QString("\t%alias .= \"alias(%1::uninstall::uninstallfiles){};$lf\"\n") \
.arg(m_szName);
+ szTmp += QString("\t%alias .= \"alias(%1::uninstall::uninstallaliases){};$lf\"\n") \
+ .arg(m_szName);
szTmp += "%alias .= \"}\"\n";
szTmp += "eval %alias\n\n";
@@ -262,7 +271,7 @@ bool KviPackAddonDialog::createInstaller(QString * pszError)
// Open file for writing
QFile installer(addon.filePath("install.kvs"));
- if(!installer.open(QIODevice::ReadWrite))
+ if(!installer.open(QIODevice::WriteOnly))
{
*pszError = __tr2qs_ctx("Cannot open file for writing.","addon");
return false;
@@ -446,8 +455,8 @@ bool KviPackAddonDialog::packAddon()
}
// Debug purpose
- //KviPackageReader pr;
- //pr.unpack("/home/hellvis69/Test-2.0.3.kva","/home/hellvis69/unpacked_test_kva");
+ //KviPackageReader pr;
+ //pr.unpack("/home/ale/Test-2.0.3.kva","/home/ale/unpacked_test_kva");
QMessageBox::information(this,__tr2qs_ctx("Export Addon - KVIrc","addon"),__tr2qs("Package saved successfully in ") + m_szSavePath,QMessageBox::Ok,QMessageBox::NoButton,QMessageBox::NoButton);