*/
void Quassel::registerMetaTypes() {
// Complex types
- qRegisterMetaType<QVariant>("QVariant");
qRegisterMetaType<Message>("Message");
qRegisterMetaType<BufferInfo>("BufferInfo");
qRegisterMetaType<NetworkInfo>("NetworkInfo");
qRegisterMetaType<Identity>("Identity");
qRegisterMetaType<Network::ConnectionState>("Network::ConnectionState");
- qRegisterMetaTypeStreamOperators<QVariant>("QVariant");
qRegisterMetaTypeStreamOperators<Message>("Message");
qRegisterMetaTypeStreamOperators<BufferInfo>("BufferInfo");
qRegisterMetaTypeStreamOperators<NetworkInfo>("NetworkInfo");
qRegisterMetaTypeStreamOperators<UserId>("UserId");
qRegisterMetaTypeStreamOperators<AccountId>("AccountId");
qRegisterMetaTypeStreamOperators<MsgId>("MsgId");
+
+ // Versions of Qt prior to 4.7 didn't define QVariant as a meta type
+ if(!QMetaType::type("QVariant")) {
+ qRegisterMetaType<QVariant>("QVariant");
+ qRegisterMetaTypeStreamOperators<QVariant>("QVariant");
+ }
}
void Quassel::setupBuildInfo(const QString &generated) {
QTranslator *qtTranslator = QCoreApplication::instance()->findChild<QTranslator *>("QtTr");
QTranslator *quasselTranslator = QCoreApplication::instance()->findChild<QTranslator *>("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());
}