-
-
Notifications
You must be signed in to change notification settings - Fork 37
/
Copy pathspek-preferences-dialog.cc
executable file
·109 lines (95 loc) · 2.99 KB
/
spek-preferences-dialog.cc
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
#include "spek-preferences-dialog.h"
#include "spek-preferences.h"
#include <QLabel>
#include <QComboBox>
#include <QBoxLayout>
#include <QPushButton>
// List all languages with a decent (e.g. 80%) number of translated
// strings. Don't translate language names. Keep the first line intact.
static const char *available_languages[] =
{
"", "",
"bs", "Bosanski",
"ca", "Català",
"cs", "Čeština",
"da", "Dansk",
"de", "Deutsch",
"el", "Ελληνικά",
"en", "English",
"eo", "Esperanto",
"es", "Español",
"fi", "Suomi",
"fr", "Français",
"gl", "Galego",
"he", "עברית",
"hr", "Hrvatski",
"hu", "Magyar",
"id", "Bahasa Indonesia",
"it", "Italiano",
"ja", "日本語",
"ko", "한국어",
"lv", "Latviešu",
"nb", "Norsk (bokmål)",
"nl", "Nederlands",
"nn", "Norsk (nynorsk)",
"pl", "Polski",
"pt_BR", "Português brasileiro",
"ru", "Русский",
"sk", "Slovenčina",
"sr@latin", "Srpski",
"sv", "Svenska",
"th", "ไทย",
"tr", "Türkçe",
"uk", "Українська",
"vi", "Tiếng Việt",
"zh_CN", "中文(简体)",
"zh_TW", "中文(台灣)",
NULL
};
SpekPreferencesDialog::SpekPreferencesDialog(QWidget *parent)
: QDialog(parent)
{
setWindowFlags(windowFlags() & ~Qt::WindowContextHelpButtonHint);
setWindowTitle(tr("Preferences"));
setFixedSize(300, 140);
QLabel *generalLabel = new QLabel(tr("General"), this);
QFont font = generalLabel->font();
font.setBold(true);
generalLabel->setFont(font);
generalLabel->move(15, 15);
QWidget *languageGroup = new QWidget(this);
languageGroup->move(27, 30);
QHBoxLayout *layout = new QHBoxLayout(languageGroup);
languageGroup->setLayout(layout);
QLabel *languageLabel = new QLabel(tr("Language:"), this);
layout->addWidget(languageLabel);
QComboBox *languageBox = new QComboBox(this);
layout->addWidget(languageBox);
const QString &active = SpekPreferences::get().get_language();
for (int i = 0; i < 1000; ++i) {
const char *key = available_languages[i];
const char *value = available_languages[i + 1];
if (key == NULL || value == NULL) {
break;
}
if (i == 0) {
languageBox->addItem(tr("(system default)"), key);
} else if (i % 2 == 0) {
languageBox->addItem(value, key);
}
}
for (int i = 0; i < languageBox->count(); ++i) {
if (languageBox->itemData(i).toString() == active) {
languageBox->setCurrentIndex(i);
break;
}
}
QPushButton *button = new QPushButton(tr("OK"), this);
button->setGeometry(165, 100, 70, 25);
connect(button, SIGNAL(clicked()), this, SLOT(close()));
connect(languageBox, SIGNAL(currentIndexChanged(int)), this, SLOT(languageChanged(int)));
}
void SpekPreferencesDialog::languageChanged(int index)
{
SpekPreferences::get().set_language(available_languages[index * 2]);
}