X-Git-Url: https://git.quassel-irc.org/?a=blobdiff_plain;f=src%2Fcore%2Fcoreapplication.cpp;h=99fcfd80c1477205cca6f877a5f1083cd4d43958;hb=44797cbb82853f2f5a9013cf31dd489bb52f5ae5;hp=d92e46d9df30db2dcb1980e06bdae02fc54866f7;hpb=5c6804f291a63f978e328aeddcc8448e3443b45e;p=quassel.git diff --git a/src/core/coreapplication.cpp b/src/core/coreapplication.cpp index d92e46d9..99fcfd80 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,18 +50,29 @@ 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), +#else + : QCoreApplication(argc, argv), +#endif + Quassel() +{ setRunMode(Quassel::CoreOnly); _internal = new CoreApplicationInternal(); + + qInstallMsgHandler(Logger::logMessage); } CoreApplication::~CoreApplication() {