X-Git-Url: https://git.quassel-irc.org/?p=quassel.git;a=blobdiff_plain;f=src%2Fqtui%2Fmonoapplication.cpp;fp=src%2Fqtui%2Fmonoapplication.cpp;h=c2ae9e5a0d4efbb78d40c4d0926beffa2135c030;hp=3d1a060d6ef7fa8ace88a28c02d6773b578d0caa;hb=fbb06e36ee772862c0d70ab43c9000225e9f8c42;hpb=4e3b9ea041c45aba5eaea14e4aafd46ee3ed044a diff --git a/src/qtui/monoapplication.cpp b/src/qtui/monoapplication.cpp index 3d1a060d..c2ae9e5a 100644 --- a/src/qtui/monoapplication.cpp +++ b/src/qtui/monoapplication.cpp @@ -27,10 +27,8 @@ class InternalPeer; MonolithicApplication::MonolithicApplication(int &argc, char **argv) - : QtUiApplication(argc, argv), - _internalInitDone(false) + : QtUiApplication(argc, argv) { - _internal = new CoreApplicationInternal(); // needed for parser options #if defined(HAVE_KDE4) || defined(Q_OS_MAC) Quassel::disableCrashHandler(); #endif /* HAVE_KDE4 || Q_OS_MAC */ @@ -46,11 +44,6 @@ bool MonolithicApplication::init() connect(Client::coreConnection(), SIGNAL(startInternalCore()), SLOT(startInternalCore())); - // If port is given, start core so it can listen to incoming connections - if (Quassel::isOptionSet("port")) { - startInternalCore(); - } - return true; } @@ -59,18 +52,17 @@ MonolithicApplication::~MonolithicApplication() { // Client needs to be destroyed first Client::destroy(); - delete _internal; + _core.reset(); + Quassel::destroy(); } void MonolithicApplication::startInternalCore() { - if (!_internalInitDone) { - _internal->init(); - _internalInitDone = true; + if (!_core) { + _core.reset(new Core{}); // FIXME C++14: std::make_unique + Core::instance()->init(); } - Core *core = Core::instance(); - CoreConnection *connection = Client::coreConnection(); - connect(connection, SIGNAL(connectToInternalCore(InternalPeer*)), core, SLOT(setupInternalClientSession(InternalPeer*))); - connect(core, SIGNAL(sessionState(Protocol::SessionState)), connection, SLOT(internalSessionStateReceived(Protocol::SessionState))); + connect(Client::coreConnection(), SIGNAL(connectToInternalCore(InternalPeer*)), Core::instance(), SLOT(setupInternalClientSession(InternalPeer*))); + connect(Core::instance(), SIGNAL(sessionState(Protocol::SessionState)), Client::coreConnection(), SLOT(internalSessionStateReceived(Protocol::SessionState))); }