aboutsummaryrefslogtreecommitdiffstats
path: root/settingsdialog.cpp
diff options
context:
space:
mode:
authorubbo <ubbo@34ebc366-c3a9-4b3c-9f84-69acf7962910>2010-03-29 18:56:21 +0000
committerubbo <ubbo@34ebc366-c3a9-4b3c-9f84-69acf7962910>2010-03-29 18:56:21 +0000
commitb9d2c0a6c218a012fc4702bc459ab370f771244f (patch)
tree322d06d20ac4643127563a05c259a60b4ac43124 /settingsdialog.cpp
parentsettings are taken instantly. No program restart necessary. (diff)
downloadgpg4usb-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-xsettingsdialog.cpp52
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;
+}
+