X-Git-Url: https://git.quassel-irc.org/?a=blobdiff_plain;f=src%2Fcommon%2Fquassel.cpp;h=e69d0bd60a464b1ce3285764b52f4c08800ef4b1;hb=edc446b0c31b048efddaf1943cb85eb0db6a0faa;hp=deaf20e057e33d32f44fb4353d92d87c94bc7235;hpb=906391224228274450914361efd104630827e580;p=quassel.git diff --git a/src/common/quassel.cpp b/src/common/quassel.cpp index deaf20e0..e69d0bd6 100644 --- a/src/common/quassel.cpp +++ b/src/common/quassel.cpp @@ -76,7 +76,7 @@ bool Quassel::init() { // we only handle crashes ourselves if coredumps are disabled struct rlimit *limit = (rlimit *) malloc(sizeof(struct rlimit)); int rc = getrlimit(RLIMIT_CORE, limit); - + if(rc == -1 || !((long)limit->rlim_cur > 0 || limit->rlim_cur == RLIM_INFINITY)) { # endif /* Q_OS_WIN32 */ signal(SIGABRT, handleSignal); @@ -246,6 +246,14 @@ void Quassel::logFatalMessage(const char *msg) { #endif } +Quassel::Features Quassel::features() { + Features feats = 0; + for(int i = 1; i <= NumFeatures; i<<=1) + feats |= (Feature) i; + + return feats; +} + const QString &Quassel::coreDumpFileName() { if(_coreDumpFileName.isEmpty()) { QDir configDir(configDirPath()); @@ -393,24 +401,27 @@ void Quassel::loadTranslation(const QLocale &locale) { QTranslator *qtTranslator = QCoreApplication::instance()->findChild("QtTr"); QTranslator *quasselTranslator = QCoreApplication::instance()->findChild("QuasselTr"); - if(!qtTranslator) { - qtTranslator = new QTranslator(qApp); - qtTranslator->setObjectName("QtTr"); - qApp->installTranslator(qtTranslator); - } - if(!quasselTranslator) { - quasselTranslator = new QTranslator(qApp); - quasselTranslator->setObjectName("QuasselTr"); - qApp->installTranslator(quasselTranslator); - } - - QLocale::setDefault(locale); + if(qtTranslator) + qApp->removeTranslator(qtTranslator); + if(quasselTranslator) + qApp->removeTranslator(quasselTranslator); + // We use QLocale::C to indicate that we don't want a translation if(locale.language() == QLocale::C) return; + qtTranslator = new QTranslator(qApp); + qtTranslator->setObjectName("QtTr"); + qApp->installTranslator(qtTranslator); + + quasselTranslator = new QTranslator(qApp); + quasselTranslator->setObjectName("QuasselTr"); + qApp->installTranslator(quasselTranslator); + + QLocale::setDefault(locale); + bool success = qtTranslator->load(QString("qt_%1").arg(locale.name()), translationDirPath()); if(!success) qtTranslator->load(QString("qt_%1").arg(locale.name()), QLibraryInfo::location(QLibraryInfo::TranslationsPath)); - quasselTranslator->load(QString("quassel_%1").arg(locale.name()), translationDirPath()); + quasselTranslator->load(QString("%1").arg(locale.name()), translationDirPath()); }