X-Git-Url: https://git.quassel-irc.org/?p=quassel.git;a=blobdiff_plain;f=src%2Fcore%2Fcoreapplication.cpp;h=9ad452ed78e6ec24fb2995844288147d383345b3;hp=d92e46d9df30db2dcb1980e06bdae02fc54866f7;hb=96c9508110f38a19be161652ea888c7d61ba279b;hpb=5c6804f291a63f978e328aeddcc8448e3443b45e diff --git a/src/core/coreapplication.cpp b/src/core/coreapplication.cpp index d92e46d9..9ad452ed 100644 --- a/src/core/coreapplication.cpp +++ b/src/core/coreapplication.cpp @@ -21,20 +21,19 @@ #include "coreapplication.h" #include "core.h" +#include "logger.h" -CoreApplicationInternal::CoreApplicationInternal() { - // put core-only arguments here - CliParser *parser = Quassel::cliParser(); - parser->addOption("port",'p', tr("The port quasselcore will listen at"), QString("4242")); - parser->addSwitch("norestore", 'n', tr("Don't restore last core's state")); - parser->addOption("logfile", 'l', tr("Path to logfile")); - parser->addOption("loglevel", 'L', tr("Loglevel Debug|Info|Warning|Error"), "Info"); - parser->addOption("datadir", 0, tr("Specify the directory holding datafiles like the Sqlite DB and the SSL Cert")); +CoreApplicationInternal::CoreApplicationInternal() + : _coreCreated(false) +{ + Q_INIT_RESOURCE(sql); } CoreApplicationInternal::~CoreApplicationInternal() { - Core::saveState(); - Core::destroy(); + if(_coreCreated) { + Core::saveState(); + Core::destroy(); + } } bool CoreApplicationInternal::init() { @@ -51,16 +50,25 @@ bool CoreApplicationInternal::init() { } Core::instance(); // create and init the core + _coreCreated = true; - if(!Quassel::isOptionSet("norestore")) { + // if using KDE, option is called "restore" instead of "norestore" + if(Quassel::isOptionSet("restore") || !Quassel::isOptionSet("norestore")) Core::restoreState(); - } + return true; } /*****************************************************************************/ -CoreApplication::CoreApplication(int &argc, char **argv) : QCoreApplication(argc, argv), Quassel() { +CoreApplication::CoreApplication(int &argc, char **argv) +#ifdef HAVE_KDE +: KApplication(false), Quassel() { + Q_UNUSED(argc); Q_UNUSED(argv); +#else +: QCoreApplication(argc, argv), Quassel() { +#endif + setRunMode(Quassel::CoreOnly); _internal = new CoreApplicationInternal(); } @@ -70,7 +78,9 @@ CoreApplication::~CoreApplication() { } bool CoreApplication::init() { - if(Quassel::init()) - return _internal->init(); + if(Quassel::init() && _internal->init()) { + qInstallMsgHandler(Logger::logMessage); + return true; + } return false; }