Skip to content

Commit

Permalink
DisplaySettings: Allow setting wallpapers from outside /res/wallpapers
Browse files Browse the repository at this point in the history
Ideally, we would copy the file to `/res/wallpapers`, add an entry to
`ComboBox` model and set the index to this entry. I didn't want to
touch anything outside of `DisplaySettings`, so this is more of a
workaround :^)
  • Loading branch information
devsh0 authored and awesomekling committed Jun 27, 2020
1 parent 3a4e121 commit 9f58624
Show file tree
Hide file tree
Showing 3 changed files with 14 additions and 5 deletions.
9 changes: 7 additions & 2 deletions Applications/DisplaySettings/DisplaySettings.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -125,6 +125,11 @@ void DisplaySettingsWidget::create_frame()
m_wallpaper_combo->set_model(*ItemListModel<AK::String>::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)) {
m_monitor_widget->update();
return;
}

if (index.row() == 0) {
path = "";
} else {
Expand All @@ -136,8 +141,8 @@ void DisplaySettingsWidget::create_frame()
}
}

this->m_monitor_widget->set_wallpaper(path);
this->m_monitor_widget->update();
m_monitor_widget->set_wallpaper(path);
m_monitor_widget->update();
};

auto& button = wallpaper_selection_container.add<GUI::Button>();
Expand Down
8 changes: 6 additions & 2 deletions Applications/DisplaySettings/MonitorWidget.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -33,10 +33,14 @@ MonitorWidget::MonitorWidget()
m_monitor_rect = { 8, 9, 320, 180 };
}

void MonitorWidget::set_wallpaper(String path)
bool MonitorWidget::set_wallpaper(String path)
{
m_desktop_wallpaper_path = path;
m_desktop_wallpaper_bitmap = Gfx::Bitmap::load_from_file(path);
auto bitmap_ptr = Gfx::Bitmap::load_from_file(path);
if (!bitmap_ptr)
return false;
m_desktop_wallpaper_bitmap = bitmap_ptr;
return true;
}

String MonitorWidget::wallpaper()
Expand Down
2 changes: 1 addition & 1 deletion Applications/DisplaySettings/MonitorWidget.h
Original file line number Diff line number Diff line change
Expand Up @@ -35,7 +35,7 @@ class MonitorWidget final : public GUI::Widget {
public:
MonitorWidget();

void set_wallpaper(String path);
bool set_wallpaper(String path);
String wallpaper();

void set_wallpaper_mode(String mode);
Expand Down

0 comments on commit 9f58624

Please sign in to comment.