X-Git-Url: https://git.quassel-irc.org/?p=quassel.git;a=blobdiff_plain;f=src%2Fcore%2Fcoreapplication.cpp;h=f0c84f32480446e03917f3aacd392581c530ed32;hp=d92e46d9df30db2dcb1980e06bdae02fc54866f7;hb=7c9c1b348382b8b77f96a883945c522d32a478d5;hpb=5c6804f291a63f978e328aeddcc8448e3443b45e diff --git a/src/core/coreapplication.cpp b/src/core/coreapplication.cpp index d92e46d9..f0c84f32 100644 --- a/src/core/coreapplication.cpp +++ b/src/core/coreapplication.cpp @@ -1,5 +1,5 @@ /*************************************************************************** - * Copyright (C) 2005-08 by the Quassel IRC Team * + * Copyright (C) 2005-09 by the Quassel Project * * devel@quassel-irc.org * * * * This program is free software; you can redistribute it and/or modify * @@ -21,20 +21,19 @@ #include "coreapplication.h" #include "core.h" +#include "logger.h" + +CoreApplicationInternal::CoreApplicationInternal() + : _coreCreated(false) +{ -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() { - Core::saveState(); - Core::destroy(); + if(_coreCreated) { + Core::saveState(); + Core::destroy(); + } } bool CoreApplicationInternal::init() { @@ -51,16 +50,19 @@ bool CoreApplicationInternal::init() { } Core::instance(); // create and init the core + _coreCreated = true; - if(!Quassel::isOptionSet("norestore")) { + if(!Quassel::isOptionSet("norestore")) Core::restoreState(); - } + return true; } /*****************************************************************************/ -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(); } @@ -70,7 +72,9 @@ CoreApplication::~CoreApplication() { } bool CoreApplication::init() { - if(Quassel::init()) - return _internal->init(); + if(Quassel::init() && _internal->init()) { + qInstallMsgHandler(Logger::logMessage); + return true; + } return false; }