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

LibGUI+ThemeEditor: Split preview-widget palette-change callback

There are two different things in ThemeEditor that want to know when a
palette changes:
1. The PreviewWidget subclass, so it can update its preview.
2. The ThemeEditor itself, so we know that the palette is modified.

Using a protected virtual function for 1 means that we can do 2 without
them fighting over the same on_palette_change callback.
This commit is contained in:
Sam Atkins 2022-04-29 12:07:06 +01:00 committed by Andreas Kling
parent 5fd0140772
commit 6c572006a3
4 changed files with 15 additions and 10 deletions

View file

@ -1,6 +1,6 @@
/*
* Copyright (c) 2020, Andreas Kling <kling@serenityos.org>
* Copyright (c) 2021, Sam Atkins <atkinssj@serenityos.org>
* Copyright (c) 2021-2022, Sam Atkins <atkinssj@serenityos.org>
* Copyright (c) 2021, Antonio Di Stefano <tonio9681@gmail.com>
* 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<MiniWidgetGallery>();
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<Gfx::ColorBlindnessFilter> color_filter)
{
m_color_filter = move(color_filter);