Make sys includes POSIX-compliant
[quassel.git] / src / common / quassel.cpp
index c60f5ec..cd38fd2 100644 (file)
 #include <iostream>
 #include <signal.h>
 #if !defined Q_OS_WIN32 && !defined Q_OS_MAC
+#  include <sys/types.h>
+#  include <sys/time.h>
 #  include <sys/resource.h>
 #endif
 
 #include <QCoreApplication>
 #include <QDateTime>
 #include <QFileInfo>
+#include <QHostAddress>
 #include <QLibraryInfo>
 #include <QSettings>
 #include <QTranslator>
-#include <QHostAddress>
 
-#include "message.h"
+#include "bufferinfo.h"
 #include "identity.h"
+#include "logger.h"
+#include "message.h"
 #include "network.h"
-#include "bufferinfo.h"
-#include "types.h"
+#include "protocol.h"
 #include "syncableobject.h"
-#include "logger.h"
+#include "types.h"
 
 Quassel::BuildInfo Quassel::_buildInfo;
 AbstractCliParser *Quassel::_cliParser = 0;
@@ -194,6 +197,8 @@ void Quassel::registerMetaTypes()
     qRegisterMetaTypeStreamOperators<AccountId>("AccountId");
     qRegisterMetaTypeStreamOperators<MsgId>("MsgId");
 
+    qRegisterMetaType<Protocol::SessionState>("Protocol::SessionState");
+
     // Versions of Qt prior to 4.7 didn't define QVariant as a meta type
     if (!QMetaType::type("QVariant")) {
         qRegisterMetaType<QVariant>("QVariant");
@@ -495,32 +500,15 @@ void Quassel::loadTranslation(const QLocale &locale)
     quasselTranslator->setObjectName("QuasselTr");
     qApp->installTranslator(quasselTranslator);
 
-#if QT_VERSION >= 0x040800
-    bool success = qtTranslator->load(locale, QString("qt_%1"), translationDirPath());
+#if QT_VERSION >= 0x040800 && !defined Q_OS_MAC
+    bool success = qtTranslator->load(locale, QString("qt_"), translationDirPath());
     if (!success)
         qtTranslator->load(locale, QString("qt_"), QLibraryInfo::location(QLibraryInfo::TranslationsPath));
     quasselTranslator->load(locale, QString(""), translationDirPath());
 #else
-    QString localeName = locale.name();
-
-    // if the user did not specify a language in the settings, the system locale
-    // is used, but Qt < 4.8 does not respect language settings. This bit is
-    // based on QLocale::uiLanguages() as in Qt 4.8.3
-    if (locale == QLocale::system()) {
-        // FIXME: does it make sense to set the locale to the system locale?
-        QLocale::setDefault(locale);
-        QVariant res = QSystemLocale().query(QSystemLocale::UILanguages, QVariant());
-        if (!res.isNull()) {
-            QString newName = res.toStringList()[0];
-            if (!newName.isEmpty()) {
-                localeName = newName.replace('-', "_"); // silly Qt.
-            }
-        }
-    }
-
-    bool success = qtTranslator->load(QString("qt_%1").arg(localeName), translationDirPath());
+    bool success = qtTranslator->load(QString("qt_%1").arg(locale.name()), translationDirPath());
     if (!success)
-        qtTranslator->load(QString("qt_%1").arg(localeName), QLibraryInfo::location(QLibraryInfo::TranslationsPath));
-    quasselTranslator->load(QString("%1").arg(localeName), translationDirPath());
+        qtTranslator->load(QString("qt_%1").arg(locale.name()), QLibraryInfo::location(QLibraryInfo::TranslationsPath));
+    quasselTranslator->load(QString("%1").arg(locale.name()), translationDirPath());
 #endif
 }