Build the monolithic client (-DWANT_MONO=ON) by default again, as it's usable now
[quassel.git] / src / core / coreapplication.cpp
index d92e46d..2cdc5a6 100644 (file)
 #include "coreapplication.h"
 
 #include "core.h"
+#include "logger.h"
+
+CoreApplicationInternal::CoreApplicationInternal()
+  : _coreCreated(false)
+{
+  Q_INIT_RESOURCE(sql);
 
-CoreApplicationInternal::CoreApplicationInternal() {
   // put core-only arguments here
   CliParser *parser = Quassel::cliParser();
   parser->addOption("port",'p', tr("The port quasselcore will listen at"), QString("4242"));
@@ -33,8 +38,10 @@ CoreApplicationInternal::CoreApplicationInternal() {
 }
 
 CoreApplicationInternal::~CoreApplicationInternal() {
-  Core::saveState();
-  Core::destroy();
+  if(_coreCreated) {
+    Core::saveState();
+    Core::destroy();
+  }
 }
 
 bool CoreApplicationInternal::init() {
@@ -51,6 +58,7 @@ bool CoreApplicationInternal::init() {
   }
 
   Core::instance();  // create and init the core
+  _coreCreated = true;
 
   if(!Quassel::isOptionSet("norestore")) {
     Core::restoreState();
@@ -60,9 +68,14 @@ bool CoreApplicationInternal::init() {
 
 /*****************************************************************************/
 
-CoreApplication::CoreApplication(int &argc, char **argv) : QCoreApplication(argc, argv), Quassel() {
+CoreApplication::CoreApplication(int &argc, char **argv)
+  : QCoreApplication(argc, argv),
+    Quassel()
+{
   setRunMode(Quassel::CoreOnly);
   _internal = new CoreApplicationInternal();
+
+  qInstallMsgHandler(Logger::logMessage);
 }
 
 CoreApplication::~CoreApplication() {