Move handling of networks.ini from NetworksSettingsPage in Network
[quassel.git] / src / common / quassel.cpp
index 29b6e55..e8cd8f5 100644 (file)
@@ -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  *
 #include "syncableobject.h"
 
 Quassel::BuildInfo Quassel::_buildInfo;
-CliParser *Quassel::_cliParser = 0;
+AbstractCliParser *Quassel::_cliParser = 0;
 Quassel::RunMode Quassel::_runMode;
 bool Quassel::_initialized = false;
 bool Quassel::DEBUG = false;
 QString Quassel::_coreDumpFileName;
 
 Quassel::Quassel() {
-  Q_INIT_RESOURCE(i18n);
-
   // We catch SIGTERM and SIGINT (caused by Ctrl+C) to graceful shutdown Quassel.
   signal(SIGTERM, handleSignal);
   signal(SIGINT, handleSignal);
@@ -58,11 +56,6 @@ Quassel::Quassel() {
 #  endif
 #endif
 
-  _cliParser = new CliParser();
-
-  // put shared client&core arguments here
-  cliParser()->addSwitch("debug",'d', tr("Enable debug output"));
-  cliParser()->addSwitch("help",'h', tr("Display this help and exit"));
 }
 
 Quassel::~Quassel() {
@@ -77,20 +70,16 @@ bool Quassel::init() {
   qsrand(QTime(0,0,0).secsTo(QTime::currentTime()));
 
   registerMetaTypes();
-  setupTranslations();
-
-  QCoreApplication::setApplicationName(buildInfo().applicationName);
-  QCoreApplication::setOrganizationName(buildInfo().organizationName);
-  QCoreApplication::setOrganizationDomain(buildInfo().organizationDomain);
 
   Network::setDefaultCodecForServer("ISO-8859-1");
   Network::setDefaultCodecForEncoding("UTF-8");
   Network::setDefaultCodecForDecoding("ISO-8859-15");
 
-  if(!cliParser()->parse(QCoreApplication::arguments()) || isOptionSet("help")) {
+  if(isOptionSet("help")) {
     cliParser()->usage();
     return false;
   }
+
   DEBUG = isOptionSet("debug");
   return true;
 }
@@ -105,6 +94,7 @@ void Quassel::registerMetaTypes() {
   qRegisterMetaType<Message>("Message");
   qRegisterMetaType<BufferInfo>("BufferInfo");
   qRegisterMetaType<NetworkInfo>("NetworkInfo");
+  qRegisterMetaType<Network::Server>("Network::Server");
   qRegisterMetaType<Identity>("Identity");
   qRegisterMetaType<Network::ConnectionState>("Network::ConnectionState");
 
@@ -112,6 +102,7 @@ void Quassel::registerMetaTypes() {
   qRegisterMetaTypeStreamOperators<Message>("Message");
   qRegisterMetaTypeStreamOperators<BufferInfo>("BufferInfo");
   qRegisterMetaTypeStreamOperators<NetworkInfo>("NetworkInfo");
+  qRegisterMetaTypeStreamOperators<Network::Server>("Network::Server");
   qRegisterMetaTypeStreamOperators<Identity>("Identity");
   qRegisterMetaTypeStreamOperators<qint8>("Network::ConnectionState");
 
@@ -130,21 +121,6 @@ void Quassel::registerMetaTypes() {
   qRegisterMetaTypeStreamOperators<MsgId>("MsgId");
 }
 
-void Quassel::setupTranslations() {
-  // Set up i18n support
-  QLocale locale = QLocale::system();
-
-  QTranslator *qtTranslator = new QTranslator(qApp);
-  qtTranslator->setObjectName("QtTr");
-  qtTranslator->load(QString(":i18n/qt_%1").arg(locale.name()));
-  qApp->installTranslator(qtTranslator);
-
-  QTranslator *quasselTranslator = new QTranslator(qApp);
-  quasselTranslator->setObjectName("QuasselTr");
-  quasselTranslator->load(QString(":i18n/quassel_%1").arg(locale.name()));
-  qApp->installTranslator(quasselTranslator);
-}
-
 void Quassel::setupBuildInfo(const QString &generated) {
   _buildInfo.applicationName = "Quassel IRC";
   _buildInfo.coreApplicationName = "Quassel Core";
@@ -215,6 +191,7 @@ void Quassel::handleSignal(int sig) {
   case SIGBUS:
 #endif
     logBacktrace(coreDumpFileName());
+    exit(EXIT_FAILURE);
     break;
   default:
     break;
@@ -228,7 +205,7 @@ void Quassel::logFatalMessage(const char *msg) {
   QFile dumpFile(coreDumpFileName());
   dumpFile.open(QIODevice::Append);
   QTextStream dumpStream(&dumpFile);
-  
+
   dumpStream << "Fatal: " << msg << '\n';
   dumpStream.flush();
   dumpFile.close();