diff options
author | Jesse Buhagiar <jesse.buhagiar@student.rmit.edu.au> | 2019-09-14 19:22:32 +1000 |
---|---|---|
committer | Andreas Kling <awesomekling@gmail.com> | 2019-09-14 19:27:16 +0200 |
commit | 58ceaebd5ae27bfa432a05a2279ac0bb74c5c1a6 (patch) | |
tree | ea64e210573486f2226d0aae4b942e1dd03c7c2e /Applications | |
parent | f44e7dc5d098daa30a756d52a63e1e7d391d6b69 (diff) | |
download | serenity-58ceaebd5ae27bfa432a05a2279ac0bb74c5c1a6.zip |
DisplayProperties: Wallpaper tab now has preview
As was mentioned in #556, the `DisplayProperties` Wallpaper tab
contained a lot of "extra space", in which half the tab was taken up
by the list of wallpapers. The rest of that space is now reserved for
a wallpaper preview, so the user can see the selected image before
applying it.
Diffstat (limited to 'Applications')
-rw-r--r-- | Applications/DisplayProperties/DisplayProperties.cpp | 12 |
1 files changed, 10 insertions, 2 deletions
diff --git a/Applications/DisplayProperties/DisplayProperties.cpp b/Applications/DisplayProperties/DisplayProperties.cpp index 090a2dbd1e..788d8ee604 100644 --- a/Applications/DisplayProperties/DisplayProperties.cpp +++ b/Applications/DisplayProperties/DisplayProperties.cpp @@ -1,5 +1,6 @@ #include <AK/StringBuilder.h> #include <LibCore/CDirIterator.h> +#include <LibDraw/PNGLoader.h> #include <LibGUI/GAction.h> #include <LibGUI/GApplication.h> #include <LibGUI/GBoxLayout.h> @@ -8,6 +9,7 @@ #include <LibGUI/GEventLoop.h> #include <LibGUI/GFileSystemModel.h> #include <LibGUI/GGroupBox.h> +#include <LibGUI/GLabel.h> #include <LibGUI/GListView.h> #include <LibGUI/GScrollBar.h> #include <LibGUI/GSplitter.h> @@ -72,15 +74,21 @@ void DisplayPropertiesWidget::create_frame() auto* background_content = new GWidget(background_splitter); background_content->set_layout(make<GBoxLayout>(Orientation::Vertical)); - background_content->layout()->add_spacer(); background_content->layout()->set_margins({ 4, 4, 4, 4 }); + auto* wallpaper_preview = new GLabel(background_splitter); + auto* wallpaper_list = new GListView(background_content); wallpaper_list->set_background_color(Color::White); wallpaper_list->set_model(*ItemListModel<AK::String>::create(m_wallpapers)); wallpaper_list->horizontal_scrollbar().set_visible(false); - wallpaper_list->on_selection = [this](auto& index) { + wallpaper_list->on_selection = [this, wallpaper_preview](auto& index) { + StringBuilder builder; m_selected_wallpaper = m_wallpapers.at(index.row()); + builder.append("/res/wallpapers/"); + builder.append(m_selected_wallpaper); + wallpaper_preview->set_icon(load_png(builder.to_string())); + wallpaper_preview->set_should_stretch_icon(true); }; // Let's add the settings tab |