diff --git a/Applications/DisplaySettings/DisplaySettings.cpp b/Applications/DisplaySettings/DisplaySettings.cpp index 22fd9bdeb3..6ef0f91c44 100644 --- a/Applications/DisplaySettings/DisplaySettings.cpp +++ b/Applications/DisplaySettings/DisplaySettings.cpp @@ -25,7 +25,7 @@ */ #include "DisplaySettings.h" -#include "ItemListModel.h" +#include #include #include #include @@ -122,7 +122,7 @@ void DisplaySettingsWidget::create_frame() m_wallpaper_combo->set_size_policy(GUI::SizePolicy::Fill, GUI::SizePolicy::Fixed); m_wallpaper_combo->set_preferred_size(0, 22); m_wallpaper_combo->set_only_allow_values_from_model(true); - m_wallpaper_combo->set_model(*ItemListModel::create(m_wallpapers)); + m_wallpaper_combo->set_model(*GUI::ItemListModel::create(m_wallpapers)); m_wallpaper_combo->on_change = [this](auto& text, const GUI::ModelIndex& index) { String path = text; if (m_monitor_widget->set_wallpaper(path)) { @@ -180,7 +180,7 @@ void DisplaySettingsWidget::create_frame() m_mode_combo->set_size_policy(GUI::SizePolicy::Fill, GUI::SizePolicy::Fixed); m_mode_combo->set_preferred_size(0, 22); m_mode_combo->set_only_allow_values_from_model(true); - m_mode_combo->set_model(*ItemListModel::create(m_modes)); + m_mode_combo->set_model(*GUI::ItemListModel::create(m_modes)); m_mode_combo->on_change = [this](auto&, const GUI::ModelIndex& index) { this->m_monitor_widget->set_wallpaper_mode(m_modes.at(index.row())); this->m_monitor_widget->update(); @@ -203,7 +203,7 @@ void DisplaySettingsWidget::create_frame() m_resolution_combo->set_size_policy(GUI::SizePolicy::Fill, GUI::SizePolicy::Fixed); m_resolution_combo->set_preferred_size(0, 22); m_resolution_combo->set_only_allow_values_from_model(true); - m_resolution_combo->set_model(*ItemListModel::create(m_resolutions)); + m_resolution_combo->set_model(*GUI::ItemListModel::create(m_resolutions)); m_resolution_combo->on_change = [this](auto&, const GUI::ModelIndex& index) { this->m_monitor_widget->set_desktop_resolution(m_resolutions.at(index.row())); this->m_monitor_widget->update(); diff --git a/Applications/DisplaySettings/ItemListModel.h b/Libraries/LibGUI/ItemListModel.h similarity index 78% rename from Applications/DisplaySettings/ItemListModel.h rename to Libraries/LibGUI/ItemListModel.h index 1ce1122ac7..1546dce35d 100644 --- a/Applications/DisplaySettings/ItemListModel.h +++ b/Libraries/LibGUI/ItemListModel.h @@ -30,19 +30,21 @@ #include #include +namespace GUI { + template -class ItemListModel final : public GUI::Model { +class ItemListModel final : public Model { public: - static NonnullRefPtr create(Vector& data) { return adopt(*new ItemListModel(data)); } + static NonnullRefPtr create(const Vector& data) { return adopt(*new ItemListModel(data)); } virtual ~ItemListModel() override { } - virtual int row_count(const GUI::ModelIndex&) const override + virtual int row_count(const ModelIndex&) const override { return m_data.size(); } - virtual int column_count(const GUI::ModelIndex&) const override + virtual int column_count(const ModelIndex&) const override { return 1; } @@ -52,11 +54,11 @@ public: return "Data"; } - virtual GUI::Variant data(const GUI::ModelIndex& index, GUI::ModelRole role) const override + virtual Variant data(const ModelIndex& index, ModelRole role) const override { - if (role == GUI::ModelRole::TextAlignment) + if (role == ModelRole::TextAlignment) return Gfx::TextAlignment::CenterLeft; - if (role == GUI::ModelRole::Display) + if (role == ModelRole::Display) return m_data.at(index.row()); return {}; @@ -68,10 +70,12 @@ public: } private: - explicit ItemListModel(Vector& data) + explicit ItemListModel(const Vector& data) : m_data(data) { } - Vector& m_data; + const Vector& m_data; }; + +}