diff --git a/Userland/Applications/ThemeEditor/PreviewWidget.cpp b/Userland/Applications/ThemeEditor/PreviewWidget.cpp index af2eea8a61..85505e6726 100644 --- a/Userland/Applications/ThemeEditor/PreviewWidget.cpp +++ b/Userland/Applications/ThemeEditor/PreviewWidget.cpp @@ -1,6 +1,6 @@ /* * Copyright (c) 2020, Andreas Kling - * Copyright (c) 2021, Sam Atkins + * Copyright (c) 2021-2022, Sam Atkins * Copyright (c) 2021, Antonio Di Stefano * Copyright (c) 2022, the SerenityOS developers. * @@ -82,14 +82,16 @@ private: PreviewWidget::PreviewWidget(Gfx::Palette const& initial_preview_palette) : GUI::AbstractThemePreview(initial_preview_palette) { - on_palette_change = [&] { - m_gallery->set_preview_palette(preview_palette()); - update_preview_window_locations(); - }; m_gallery = add(); set_greedy_for_hits(true); } +void PreviewWidget::palette_changed() +{ + m_gallery->set_preview_palette(preview_palette()); + update_preview_window_locations(); +} + void PreviewWidget::set_color_filter(OwnPtr color_filter) { m_color_filter = move(color_filter); diff --git a/Userland/Applications/ThemeEditor/PreviewWidget.h b/Userland/Applications/ThemeEditor/PreviewWidget.h index 0e11f433db..0009f9c71e 100644 --- a/Userland/Applications/ThemeEditor/PreviewWidget.h +++ b/Userland/Applications/ThemeEditor/PreviewWidget.h @@ -1,6 +1,6 @@ /* * Copyright (c) 2020, Andreas Kling - * Copyright (c) 2021, Sam Atkins + * Copyright (c) 2021-2022, Sam Atkins * Copyright (c) 2021, Antonio Di Stefano * Copyright (c) 2022, the SerenityOS developers. * @@ -34,6 +34,7 @@ private: virtual void second_paint_event(GUI::PaintEvent&) override; virtual void resize_event(GUI::ResizeEvent&) override; virtual void drop_event(GUI::DropEvent&) override; + virtual void palette_changed() override; void paint_hightlight_window(); void update_preview_window_locations(); diff --git a/Userland/Libraries/LibGUI/AbstractThemePreview.cpp b/Userland/Libraries/LibGUI/AbstractThemePreview.cpp index a081585c25..96ae9f2351 100644 --- a/Userland/Libraries/LibGUI/AbstractThemePreview.cpp +++ b/Userland/Libraries/LibGUI/AbstractThemePreview.cpp @@ -1,6 +1,6 @@ /* * Copyright (c) 2020, Andreas Kling - * Copyright (c) 2021, Sam Atkins + * Copyright (c) 2021-2022, Sam Atkins * Copyright (c) 2021, Antonio Di Stefano * Copyright (c) 2022, the SerenityOS developers. * @@ -71,9 +71,9 @@ void AbstractThemePreview::load_theme_bitmaps() void AbstractThemePreview::set_preview_palette(Gfx::Palette const& palette) { m_preview_palette = palette; - if (on_palette_change) { + palette_changed(); + if (on_palette_change) on_palette_change(); - } load_theme_bitmaps(); update(); } diff --git a/Userland/Libraries/LibGUI/AbstractThemePreview.h b/Userland/Libraries/LibGUI/AbstractThemePreview.h index 1769cfba0b..fc1fbbbc1a 100644 --- a/Userland/Libraries/LibGUI/AbstractThemePreview.h +++ b/Userland/Libraries/LibGUI/AbstractThemePreview.h @@ -1,6 +1,6 @@ /* * Copyright (c) 2020, Andreas Kling - * Copyright (c) 2021, Sam Atkins + * Copyright (c) 2021-2022, Sam Atkins * Copyright (c) 2021, Antonio Di Stefano * Copyright (c) 2022, the SerenityOS developers. * @@ -45,6 +45,8 @@ protected: return *m_inactive_window_icon; } + virtual void palette_changed() {}; + private: virtual void paint_preview(GUI::PaintEvent&) = 0;