From 9f346f5f750bc8b9ef69dec529b495ca9e663112 Mon Sep 17 00:00:00 2001 From: Matthieu Gautier Date: Tue, 7 Apr 2020 16:09:31 +0200 Subject: [PATCH] Don't use gt function in the constructor of kiwixApp. The `gt` function get the instance of the kiwixApp. So we cannot call this function in the constructor of kiwixApp itself. Move all the (complex) initialization step in another method call after the kiwixApp is created. --- src/kiwixapp.cpp | 51 +++++++++++++++++++++++++----------------------- src/kiwixapp.h | 1 + src/main.cpp | 1 + 3 files changed, 29 insertions(+), 24 deletions(-) diff --git a/src/kiwixapp.cpp b/src/kiwixapp.cpp index 88871bb..e589e15 100644 --- a/src/kiwixapp.cpp +++ b/src/kiwixapp.cpp @@ -37,30 +37,6 @@ KiwixApp::KiwixApp(int& argc, char *argv[]) m_appTranslator.load(QLocale(), "kiwix-desktop", "_", ":/i18n/"); installTranslator(&m_appTranslator); - try { - mp_downloader = new kiwix::Downloader(); - } catch (exception& e) { - QMessageBox::critical(nullptr, gt("error-downloader-window-title"), - gt("error-downloader-launch-message") + "

" + e.what()); - } - mp_manager = new ContentManager(&m_library, mp_downloader); - - auto icon = QIcon(); - icon.addFile(":/icons/kiwix-app-icons-square.svg"); - setWindowIcon(icon); - - setApplicationName("Kiwix"); - setDesktopFileName("kiwix.desktop"); - - setStyle(QStyleFactory::create("Windows")); - QFile styleFile(":/css/style.css"); - styleFile.open(QIODevice::ReadOnly); - auto byteContent = styleFile.readAll(); - styleFile.close(); - QString style(byteContent); - setStyleSheet(style); - - QString fontName; if (platformName() == "windows") { QFontDatabase::addApplicationFont(":/fonts/SegoeUI/segoeuib.ttf"); @@ -88,6 +64,33 @@ KiwixApp::KiwixApp(int& argc, char *argv[]) auto font = QFont(fontName); setFont(font); +} + +void KiwixApp::init() +{ + try { + mp_downloader = new kiwix::Downloader(); + } catch (exception& e) { + QMessageBox::critical(nullptr, gt("error-downloader-window-title"), + gt("error-downloader-launch-message") + "

" + e.what()); + } + mp_manager = new ContentManager(&m_library, mp_downloader); + + auto icon = QIcon(); + icon.addFile(":/icons/kiwix-app-icons-square.svg"); + setWindowIcon(icon); + + setApplicationName("Kiwix"); + setDesktopFileName("kiwix.desktop"); + + setStyle(QStyleFactory::create("Windows")); + QFile styleFile(":/css/style.css"); + styleFile.open(QIODevice::ReadOnly); + auto byteContent = styleFile.readAll(); + styleFile.close(); + QString style(byteContent); + setStyleSheet(style); + createAction(); mp_mainWindow = new MainWindow; diff --git a/src/kiwixapp.h b/src/kiwixapp.h index 3de2302..b1d9660 100644 --- a/src/kiwixapp.h +++ b/src/kiwixapp.h @@ -63,6 +63,7 @@ public: KiwixApp(int& argc, char *argv[]); virtual ~KiwixApp(); static KiwixApp* instance(); + void init(); void openRandomUrl(bool newTab=true); diff --git a/src/main.cpp b/src/main.cpp index edbcabb..e4c7977 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -16,6 +16,7 @@ int main(int argc, char *argv[]) QWebEngineUrlScheme::registerScheme(scheme); #endif KiwixApp a(argc, argv); + a.init(); QCommandLineParser parser; parser.addPositionalArgument("zimfile", "The zim file");