summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGravatar Lioncash2018-10-04 06:33:17 -0400
committerGravatar Lioncash2018-10-04 09:43:51 -0400
commit30dfd89126b4d1e7366697fb7f937e2db29d7295 (patch)
treeea230e248bffe2a944ce6062a7775d25feab1dfc
parentMerge pull request #1330 from raven02/tlds (diff)
downloadyuzu-30dfd89126b4d1e7366697fb7f937e2db29d7295.tar.gz
yuzu-30dfd89126b4d1e7366697fb7f937e2db29d7295.tar.xz
yuzu-30dfd89126b4d1e7366697fb7f937e2db29d7295.zip
ui_settings: Place definition of the theme array within the cpp file
Placing the array wholesale into the header places a copy of the whole array into every translation unit that uses the data, which is wasteful. Particularly given that this array is referenced from three different translation units. This also changes the array to contain pairs of const char*, rather than QString instances. This way, the string data is able to be fixed into the read-only segment of the program, as well as eliminate static constructors/heap allocation immediately on program start.
Diffstat (limited to '')
-rw-r--r--src/yuzu/configuration/configure_general.cpp2
-rw-r--r--src/yuzu/ui_settings.cpp8
-rw-r--r--src/yuzu/ui_settings.h5
3 files changed, 10 insertions, 5 deletions
diff --git a/src/yuzu/configuration/configure_general.cpp b/src/yuzu/configuration/configure_general.cpp
index 9292d9a42..f5db9e55b 100644
--- a/src/yuzu/configuration/configure_general.cpp
+++ b/src/yuzu/configuration/configure_general.cpp
@@ -13,7 +13,7 @@ ConfigureGeneral::ConfigureGeneral(QWidget* parent)
13 13
14 ui->setupUi(this); 14 ui->setupUi(this);
15 15
16 for (auto theme : UISettings::themes) { 16 for (const auto& theme : UISettings::themes) {
17 ui->theme_combobox->addItem(theme.first, theme.second); 17 ui->theme_combobox->addItem(theme.first, theme.second);
18 } 18 }
19 19
diff --git a/src/yuzu/ui_settings.cpp b/src/yuzu/ui_settings.cpp
index 120b34990..a314493fc 100644
--- a/src/yuzu/ui_settings.cpp
+++ b/src/yuzu/ui_settings.cpp
@@ -6,5 +6,11 @@
6 6
7namespace UISettings { 7namespace UISettings {
8 8
9const Themes themes{{
10 {"Default", "default"},
11 {"Dark", "qdarkstyle"},
12}};
13
9Values values = {}; 14Values values = {};
10} 15
16} // namespace UISettings
diff --git a/src/yuzu/ui_settings.h b/src/yuzu/ui_settings.h
index 051494bc5..2d679004f 100644
--- a/src/yuzu/ui_settings.h
+++ b/src/yuzu/ui_settings.h
@@ -15,9 +15,8 @@ namespace UISettings {
15using ContextualShortcut = std::pair<QString, int>; 15using ContextualShortcut = std::pair<QString, int>;
16using Shortcut = std::pair<QString, ContextualShortcut>; 16using Shortcut = std::pair<QString, ContextualShortcut>;
17 17
18static const std::array<std::pair<QString, QString>, 2> themes = { 18using Themes = std::array<std::pair<const char*, const char*>, 2>;
19 {std::make_pair(QString("Default"), QString("default")), 19extern const Themes themes;
20 std::make_pair(QString("Dark"), QString("qdarkstyle"))}};
21 20
22struct Values { 21struct Values {
23 QByteArray geometry; 22 QByteArray geometry;