diff --git a/src/mainapplication.cpp b/src/mainapplication.cpp index 8d67ba95e4c72f969940443353d2c7343b04ecb2..d515cd8fc50c2d0a671ec6388f296b57bc7ebc7c 100644 --- a/src/mainapplication.cpp +++ b/src/mainapplication.cpp @@ -146,11 +146,6 @@ MainApplication::fileDebug(QFile* debugFile) MainApplication::MainApplication(int& argc, char** argv) : QApplication(argc, argv) - , engine_(new QQmlApplicationEngine()) - , connectivityMonitor_(new ConnectivityMonitor(this)) - , settingsManager_(new AppSettingsManager(this)) - , systemTray_(new SystemTray(settingsManager_.get(), this)) - , previewEngine_(new PreviewEngine(this)) { QObject::connect(this, &QApplication::aboutToQuit, [this] { cleanup(); }); } @@ -164,6 +159,14 @@ MainApplication::~MainApplication() bool MainApplication::init() { + // This 2-phase initialisation prevents ephemeral instances from + // performing unnecessary tasks, like initializing the webengine. + engine_.reset(new QQmlApplicationEngine(this)); + connectivityMonitor_.reset(new ConnectivityMonitor(this)); + settingsManager_.reset(new AppSettingsManager(this)); + systemTray_.reset(new SystemTray(settingsManager_.get(), this)); + previewEngine_.reset(new PreviewEngine(this)); + setWindowIcon(QIcon(":/images/jami.ico")); #ifdef Q_OS_LINUX