1
0
Fork 0
mirror of https://git.jami.net/savoirfairelinux/jami-client-qt.git synced 2025-09-10 12:03:18 +02:00

mainapplication: only initialize members for primary instances

The running instance may be ephemeral and end up discarded after being
checked by InstanceManager. In this case, we shouldn't initialize large
components.

Gitlab: #654
Change-Id: I30c7dcdba6a56ab3a1a84a9efd3424e266b6f6ce
This commit is contained in:
Andreas Traczyk 2022-01-25 14:57:26 -05:00 committed by Sébastien Blin
parent b2de6b7252
commit 0477376a0c

View file

@ -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