diff options
author | ubbo <ubbo@34ebc366-c3a9-4b3c-9f84-69acf7962910> | 2010-03-29 18:56:21 +0000 |
---|---|---|
committer | ubbo <ubbo@34ebc366-c3a9-4b3c-9f84-69acf7962910> | 2010-03-29 18:56:21 +0000 |
commit | b9d2c0a6c218a012fc4702bc459ab370f771244f (patch) | |
tree | 322d06d20ac4643127563a05c259a60b4ac43124 /settingsdialog.cpp | |
parent | settings are taken instantly. No program restart necessary. (diff) | |
download | gpg4usb-b9d2c0a6c218a012fc4702bc459ab370f771244f.tar.gz gpg4usb-b9d2c0a6c218a012fc4702bc459ab370f771244f.zip |
add language-select box, does nothing yet, but lists languages ;-)
git-svn-id: http://cpunk.de/svn/src/gpg4usb/trunk@288 34ebc366-c3a9-4b3c-9f84-69acf7962910
Diffstat (limited to 'settingsdialog.cpp')
-rwxr-xr-x | settingsdialog.cpp | 52 |
1 files changed, 51 insertions, 1 deletions
diff --git a/settingsdialog.cpp b/settingsdialog.cpp index 7b89a65..90e35ef 100755 --- a/settingsdialog.cpp +++ b/settingsdialog.cpp @@ -31,6 +31,9 @@ #include <QRadioButton> #include <QButtonGroup> #include <QSettings> +#include <QApplication> +#include <QDir> +#include <QTranslator> #include "settingsdialog.h" SettingsDialog::SettingsDialog() @@ -75,11 +78,28 @@ SettingsDialog::SettingsDialog() groupBox2->setLayout(iconStyleBox); groupBox1->setLayout(iconSizeBox); + + /**/ + QGroupBox *langBox = new QGroupBox(tr("Language")); + QHBoxLayout *hbox2 = new QHBoxLayout(); + QComboBox *langSelectBox = new QComboBox; + + QHash<QString, QString> lang = listLanguages(); + + foreach(QString l , lang) { + langSelectBox->addItem(l); + //qDebug() << l; + } + + hbox2->addWidget(langSelectBox); + langBox->setLayout(hbox2); + /**/ QVBoxLayout *vbox = new QVBoxLayout(); vbox->addWidget(groupBox1); vbox->addWidget(groupBox2); - vbox->addWidget(buttonBox); + vbox->addWidget(langBox); + vbox->addWidget(buttonBox); setLayout(vbox); exec(); } @@ -109,3 +129,33 @@ void SettingsDialog::applySettings() accept(); } +// http://www.informit.com/articles/article.aspx?p=1405555&seqNum=3 +QHash<QString, QString> SettingsDialog::listLanguages() { + + // translate this String to language used, the language list gets + // filled from this + QString(tr("English")); + + //QStringList languages; + QHash<QString, QString> languages; + + QString appPath = qApp->applicationDirPath(); + QDir qmDir = QDir(appPath + "/ts/"); + QStringList fileNames = + qmDir.entryList(QStringList("gpg4usb_*.qm")); + + for (int i = 0; i < fileNames.size(); ++i) { + QString locale = fileNames[i]; + locale.remove(0, locale.indexOf('_') + 1); + locale.chop(3); + + QTranslator translator; + translator.load(fileNames[i], qmDir.absolutePath()); + QString language = translator.translate("SettingsDialog", + "English"); + languages.insert(locale, language); + + } + return languages; +} + |