Browse Source

Fix locale change from the Web UI

adaptive-webui-19844
Christophe Dumez 14 years ago
parent
commit
c64f02c9bf
  1. 17
      src/eventmanager.cpp
  2. 1
      src/json.h
  3. 15
      src/options_imp.cpp
  4. 1
      src/webui/preferences_content.html

17
src/eventmanager.cpp

@ -38,6 +38,7 @@
//#include "proplistdelegate.h" //#include "proplistdelegate.h"
#include "torrentpersistentdata.h" #include "torrentpersistentdata.h"
#include <QDebug> #include <QDebug>
#include <QTranslator>
EventManager::EventManager(QObject *parent, Bittorrent *BTSession) EventManager::EventManager(QObject *parent, Bittorrent *BTSession)
: QObject(parent), BTSession(BTSession) : QObject(parent), BTSession(BTSession)
@ -124,8 +125,20 @@ QList<QVariantMap> EventManager::getPropFilesInfo(QString hash) const {
void EventManager::setGlobalPreferences(QVariantMap m) const { void EventManager::setGlobalPreferences(QVariantMap m) const {
// UI // UI
if(m.contains("locale")) if(m.contains("locale")) {
Preferences::setLocale(m["locale"].toString()); QString locale = m["locale"].toString();
if(Preferences::getLocale() != locale) {
QTranslator *translator = new QTranslator;
if(translator->load(QString::fromUtf8(":/lang/qbittorrent_") + locale)){
qDebug("%s locale recognized, using translation.", qPrintable(locale));
}else{
qDebug("%s locale unrecognized, using default (en_GB).", qPrintable(locale));
}
qApp->installTranslator(translator);
}
Preferences::setLocale(locale);
}
// Downloads // Downloads
if(m.contains("save_path")) if(m.contains("save_path"))
Preferences::setSavePath(m["save_path"].toString()); Preferences::setSavePath(m["save_path"].toString());

1
src/json.h

@ -132,6 +132,7 @@ namespace json {
tmp += c; tmp += c;
} }
} }
if(!tmp.isEmpty()) couples << tmp;
foreach(QString couple, couples) { foreach(QString couple, couples) {
QStringList parts = couple.split(":"); QStringList parts = couple.split(":");
if(parts.size() != 2) continue; if(parts.size() != 2) continue;

15
src/options_imp.cpp

@ -37,6 +37,7 @@
#include <QCloseEvent> #include <QCloseEvent>
#include <QDesktopWidget> #include <QDesktopWidget>
#include <QStyleFactory> #include <QStyleFactory>
#include <QTranslator>
#include <libtorrent/version.hpp> #include <libtorrent/version.hpp>
#include <time.h> #include <time.h>
@ -353,10 +354,22 @@ options_imp::options_imp(QWidget *parent):QDialog(parent){
QIniSettings settings("qBittorrent", "qBittorrent"); QIniSettings settings("qBittorrent", "qBittorrent");
// Apply style // Apply style
useStyle(); useStyle();
// Load the translation
QString locale = getLocale();
if(Preferences::getLocale() != locale) {
QTranslator *translator = new QTranslator;
if(translator->load(QString::fromUtf8(":/lang/qbittorrent_") + locale)){
qDebug("%s locale recognized, using translation.", qPrintable(locale));
}else{
qDebug("%s locale unrecognized, using default (en_GB).", qPrintable(locale));
}
qApp->installTranslator(translator);
}
settings.beginGroup("Preferences"); settings.beginGroup("Preferences");
// General preferences // General preferences
settings.beginGroup("General"); settings.beginGroup("General");
settings.setValue(QString::fromUtf8("Locale"), getLocale()); settings.setValue(QString::fromUtf8("Locale"), locale);
settings.setValue(QString::fromUtf8("Style"), getStyle()); settings.setValue(QString::fromUtf8("Style"), getStyle());
settings.setValue(QString::fromUtf8("AlternatingRowColors"), checkAltRowColors->isChecked()); settings.setValue(QString::fromUtf8("AlternatingRowColors"), checkAltRowColors->isChecked());
settings.setValue(QString::fromUtf8("SystrayEnabled"), systrayIntegration()); settings.setValue(QString::fromUtf8("SystrayEnabled"), systrayIntegration());

1
src/webui/preferences_content.html

@ -539,6 +539,7 @@
}, },
onSuccess: function() { onSuccess: function() {
// Close window // Close window
window.parent.location.reload();
window.parent.closeWindows(); window.parent.closeWindows();
} }
}).send(); }).send();

Loading…
Cancel
Save