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);
# 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() {
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;
}
qRegisterMetaType<Message>("Message");
qRegisterMetaType<BufferInfo>("BufferInfo");
qRegisterMetaType<NetworkInfo>("NetworkInfo");
+ qRegisterMetaType<Network::Server>("Network::Server");
qRegisterMetaType<Identity>("Identity");
qRegisterMetaType<Network::ConnectionState>("Network::ConnectionState");
qRegisterMetaTypeStreamOperators<Message>("Message");
qRegisterMetaTypeStreamOperators<BufferInfo>("BufferInfo");
qRegisterMetaTypeStreamOperators<NetworkInfo>("NetworkInfo");
+ qRegisterMetaTypeStreamOperators<Network::Server>("Network::Server");
qRegisterMetaTypeStreamOperators<Identity>("Identity");
qRegisterMetaTypeStreamOperators<qint8>("Network::ConnectionState");
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";
case SIGBUS:
#endif
logBacktrace(coreDumpFileName());
+ exit(EXIT_FAILURE);
break;
default:
break;
QFile dumpFile(coreDumpFileName());
dumpFile.open(QIODevice::Append);
QTextStream dumpStream(&dumpFile);
-
+
dumpStream << "Fatal: " << msg << '\n';
dumpStream.flush();
dumpFile.close();