From 47d9c12f4b366920ae6409445012b6c954423d2d Mon Sep 17 00:00:00 2001 From: sledgehammer999 Date: Tue, 21 Jul 2015 18:17:38 +0300 Subject: [PATCH] Fix segfault on Linux due to early initialization of global var. Utils::Misc::pythonVersion() gets called before the Logger is initialized. --- src/searchengine/engineselectdlg.cpp | 13 ++++++++----- src/searchengine/engineselectdlg.h | 1 + 2 files changed, 9 insertions(+), 5 deletions(-) diff --git a/src/searchengine/engineselectdlg.cpp b/src/searchengine/engineselectdlg.cpp index bb1147609..ba88fc847 100644 --- a/src/searchengine/engineselectdlg.cpp +++ b/src/searchengine/engineselectdlg.cpp @@ -48,9 +48,12 @@ #include enum EngineColumns {ENGINE_NAME, ENGINE_VERSION, ENGINE_URL, ENGINE_STATE, ENGINE_ID}; -const QString UPDATE_URL = QString("https://raw.github.com/qbittorrent/qBittorrent/master/src/searchengine/") + (Utils::Misc::pythonVersion() >= 3 ? "nova3" : "nova") + "/engines/"; -engineSelectDlg::engineSelectDlg(QWidget *parent, SupportedEngines *supported_engines) : QDialog(parent), supported_engines(supported_engines) { +engineSelectDlg::engineSelectDlg(QWidget *parent, SupportedEngines *supported_engines) + : QDialog(parent) + , supported_engines(supported_engines) + , m_updateUrl(QString("https://raw.github.com/qbittorrent/qBittorrent/master/src/searchengine/") + (Utils::Misc::pythonVersion() >= 3 ? "nova3" : "nova") + "/engines/") +{ setupUi(this); setAttribute(Qt::WA_DeleteOnClose); pluginsTree->setRootIsDecorated(false); @@ -107,7 +110,7 @@ void engineSelectDlg::dragEnterEvent(QDragEnterEvent *event) { void engineSelectDlg::on_updateButton_clicked() { // Download version file from update server on sourceforge setCursor(QCursor(Qt::WaitCursor)); - downloadFromUrl(QString(UPDATE_URL) + "versions.txt"); + downloadFromUrl(m_updateUrl + "versions.txt"); } void engineSelectDlg::toggleEngineState(QTreeWidgetItem *item, int) { @@ -394,8 +397,8 @@ bool engineSelectDlg::parseVersionsFile(QString versions_file) { qDebug("Plugin: %s is outdated", qPrintable(plugin_name)); // Downloading update setCursor(QCursor(Qt::WaitCursor)); - downloadFromUrl(UPDATE_URL + plugin_name + ".py"); - //downloadFromUrl(UPDATE_URL + plugin_name + ".png"); + downloadFromUrl(m_updateUrl + plugin_name + ".py"); + //downloadFromUrl(m_updateUrl + plugin_name + ".png"); updated = true; }else { qDebug("Plugin: %s is up to date", qPrintable(plugin_name)); diff --git a/src/searchengine/engineselectdlg.h b/src/searchengine/engineselectdlg.h index 555e7aec9..abcb19001 100644 --- a/src/searchengine/engineselectdlg.h +++ b/src/searchengine/engineselectdlg.h @@ -45,6 +45,7 @@ class engineSelectDlg : public QDialog, public Ui::engineSelect{ void downloadFromUrl(const QString &url); SupportedEngines *supported_engines; + const QString m_updateUrl; public: engineSelectDlg(QWidget *parent, SupportedEngines *supported_engines);