From 83b7f6d1c01b1a850c246b7d721d1324894c9977 Mon Sep 17 00:00:00 2001 From: nowrep Date: Thu, 11 Apr 2013 23:24:19 +0200 Subject: [PATCH] [Portable] Save loaded plugins with relative path. It is now possible to correctly load plugins even when eg. disk label on Windows changes. --- CHANGELOG | 1 + src/lib/plugins/plugins.cpp | 5 +++++ src/lib/preferences/pluginsmanager.cpp | 4 ++++ 3 files changed, 10 insertions(+) diff --git a/CHANGELOG b/CHANGELOG index 3c1acbf7f..73b6abacc 100644 --- a/CHANGELOG +++ b/CHANGELOG @@ -7,6 +7,7 @@ Version 1.5.0 * cancel upload when trying to upload non-readable files * GreaseMonkey: added support for GM_Settings * fixed: size of preferences dialog on low-res screens + * fixed: loading plugins with relative paths in portable build Version 1.4.1 * released 15 March 2013 diff --git a/src/lib/plugins/plugins.cpp b/src/lib/plugins/plugins.cpp index 859de2611..d11331c67 100644 --- a/src/lib/plugins/plugins.cpp +++ b/src/lib/plugins/plugins.cpp @@ -163,6 +163,10 @@ void Plugins::loadAvailablePlugins() QStringList dirs; dirs << mApp->DATADIR + "plugins/" + // Portable build: Load only plugins from DATADIR/plugins/ directory. + // Loaded plugins are saved with relative path, instead of absolute for + // normal build. +#ifndef PORTABLE_BUILD #if defined(QZ_WS_X11) && !defined(NO_SYSTEM_DATAPATH) #ifdef USE_LIBPATH << USE_LIBPATH "qupzilla/" @@ -171,6 +175,7 @@ void Plugins::loadAvailablePlugins() #endif #endif << mApp->PROFILEDIR + "plugins/"; +#endif foreach (const QString &dir, dirs) { QDir pluginsDir = QDir(dir); diff --git a/src/lib/preferences/pluginsmanager.cpp b/src/lib/preferences/pluginsmanager.cpp index 558de1a31..6242f45f4 100644 --- a/src/lib/preferences/pluginsmanager.cpp +++ b/src/lib/preferences/pluginsmanager.cpp @@ -113,7 +113,11 @@ void PluginsManager::save() if (item->checkState() == Qt::Checked) { const Plugins::Plugin plugin = item->data(Qt::UserRole + 10).value(); +#ifndef PORTABLE_BUILD allowedPlugins.append(plugin.fullPath); +#else + allowedPlugins.append(mApp->DATADIR + "plugins/" + plugin.fileName); +#endif } }