X-Git-Url: https://git.quassel-irc.org/?a=blobdiff_plain;f=src%2Fcommon%2Fmain.cpp;h=4b99a39e81db9917ae3eb4e7baf3842b4cf4621d;hb=06a03c2c69ee934aaeec83512bae2fffee83a340;hp=fea9d2ccb62d8dbc3d5958061903dff939bb817e;hpb=2039f5e28eeb431e394f1c2468a26218bd926538;p=quassel.git diff --git a/src/common/main.cpp b/src/common/main.cpp index fea9d2cc..4b99a39e 100644 --- a/src/common/main.cpp +++ b/src/common/main.cpp @@ -19,23 +19,25 @@ ***************************************************************************/ #include "settings.h" +#include #if defined BUILD_CORE #include #include #include "core.h" +#include "message.h" #elif defined BUILD_QTGUI #include #include "client.h" -#include "clientproxy.h" +//#include "clientproxy.h" #include "qtgui.h" #include "style.h" #elif defined BUILD_MONO #include #include "client.h" -#include "clientproxy.h" +//#include "clientproxy.h" #include "core.h" #include "coresession.h" #include "qtgui.h" @@ -45,9 +47,23 @@ #error "Something is wrong - you need to #define a build mode!" #endif +#include + +//! Signal handler for graceful shutdown. +void handle_signal(int sig) { + qWarning(QString("Caught signal %1 - exiting.").arg(sig).toAscii()); + QCoreApplication::quit(); +} + int main(int argc, char **argv) { + // We catch SIGTERM and SIGINT (caused by Ctrl+C) to graceful shutdown Quassel. + signal(SIGTERM, handle_signal); + signal(SIGINT, handle_signal); + + qRegisterMetaType("QVariant"); qRegisterMetaType("Message"); qRegisterMetaType("BufferId"); + qRegisterMetaTypeStreamOperators("QVariant"); qRegisterMetaTypeStreamOperators("Message"); qRegisterMetaTypeStreamOperators("BufferId"); @@ -102,16 +118,21 @@ void Client::disconnectFromLocalCore() {} #elif defined BUILD_MONO QVariant Client::connectToLocalCore(QString user, QString passwd) { // TODO catch exceptions + /* QVariant reply = Core::connectLocalClient(user, passwd); QObject::connect(Core::localSession(), SIGNAL(proxySignal(CoreSignal, QVariant, QVariant, QVariant)), ClientProxy::instance(), SLOT(recv(CoreSignal, QVariant, QVariant, QVariant))); QObject::connect(ClientProxy::instance(), SIGNAL(send(ClientSignal, QVariant, QVariant, QVariant)), Core::localSession(), SLOT(processSignal(ClientSignal, QVariant, QVariant, QVariant))); return reply; + */ + return QVariant(); } void Client::disconnectFromLocalCore() { + /* disconnect(Core::localSession(), 0, ClientProxy::instance(), 0); disconnect(ClientProxy::instance(), 0, Core::localSession(), 0); Core::disconnectLocalClient(); + */ } #endif