1
Fork 0
mirror of https://github.com/RGBCube/serenity synced 2025-07-25 14:17:36 +00:00

Flood: Get the color scheme from the system theme

This commit is contained in:
implicitfield 2022-12-02 18:58:47 +02:00 committed by Andrew Kaster
parent 800c292be8
commit 1a68977457
7 changed files with 41 additions and 112 deletions

View file

@ -17,11 +17,10 @@
#include <LibGUI/Label.h>
#include <LibGUI/SpinBox.h>
SettingsDialog::SettingsDialog(GUI::Window* parent, size_t board_rows, size_t board_columns, StringView color_scheme)
SettingsDialog::SettingsDialog(GUI::Window* parent, size_t board_rows, size_t board_columns)
: GUI::Dialog(parent)
, m_board_rows(board_rows)
, m_board_columns(board_columns)
, m_color_scheme(color_scheme)
{
set_rect({ 0, 0, 250, 150 });
set_title("New Game");
@ -46,24 +45,6 @@ SettingsDialog::SettingsDialog(GUI::Window* parent, size_t board_rows, size_t bo
m_board_columns = value;
};
static Vector<DeprecatedString> color_scheme_names;
color_scheme_names.clear();
Core::DirIterator iterator("/res/color-schemes", Core::DirIterator::SkipParentAndBaseDir);
while (iterator.has_next()) {
auto path = iterator.next_path();
color_scheme_names.append(path.replace(".ini"sv, ""sv, ReplaceMode::FirstOnly));
}
quick_sort(color_scheme_names);
auto color_scheme_combo = main_widget.find_descendant_of_type_named<GUI::ComboBox>("color_scheme_combo");
color_scheme_combo->set_only_allow_values_from_model(true);
color_scheme_combo->set_model(*GUI::ItemListModel<DeprecatedString>::create(color_scheme_names));
color_scheme_combo->set_selected_index(color_scheme_names.find_first_index(m_color_scheme).value());
color_scheme_combo->set_enabled(color_scheme_names.size() > 1);
color_scheme_combo->on_change = [&](auto&, const GUI::ModelIndex& index) {
m_color_scheme = index.data().as_string();
};
auto cancel_button = main_widget.find_descendant_of_type_named<GUI::Button>("cancel_button");
cancel_button->on_click = [this](auto) {
done(ExecResult::Cancel);