mirror of
https://github.com/RGBCube/serenity
synced 2025-07-27 12:07:45 +00:00
PixelPaint: Expand Filter Gallery to know how to apply filters
This commit is contained in:
parent
ddaf496aa0
commit
f2feebc6f6
2 changed files with 13 additions and 4 deletions
|
@ -37,9 +37,16 @@ FilterGallery::FilterGallery(GUI::Window* parent_window, ImageEditor* editor)
|
||||||
filter_tree->set_model(filter_model);
|
filter_tree->set_model(filter_model);
|
||||||
filter_tree->expand_tree();
|
filter_tree->expand_tree();
|
||||||
|
|
||||||
apply_button->on_click = [this](auto) {
|
apply_button->on_click = [this, filter_tree](auto) {
|
||||||
dbgln("Click!");
|
auto selected_index = filter_tree->selection().first();
|
||||||
|
if (!selected_index.is_valid())
|
||||||
|
done(ExecResult::ExecAborted);
|
||||||
|
|
||||||
|
auto selected_filter = static_cast<const FilterModel::FilterInfo*>(selected_index.internal_data());
|
||||||
|
if (selected_filter->type != FilterModel::FilterInfo::Type::Filter)
|
||||||
|
done(ExecResult::ExecAborted);
|
||||||
|
|
||||||
|
selected_filter->apply_filter();
|
||||||
done(ExecResult::ExecOK);
|
done(ExecResult::ExecOK);
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
@ -24,14 +24,16 @@ public:
|
||||||
|
|
||||||
String text;
|
String text;
|
||||||
|
|
||||||
|
Function<void()> apply_filter;
|
||||||
|
|
||||||
NonnullRefPtrVector<FilterInfo> children;
|
NonnullRefPtrVector<FilterInfo> children;
|
||||||
FilterInfo* parent;
|
FilterInfo* parent;
|
||||||
|
|
||||||
static NonnullRefPtr<FilterInfo> create_filter(String const& text, FilterInfo* parent = nullptr)
|
static NonnullRefPtr<FilterInfo> create_filter(String const& text, Function<void()> apply_filter, FilterInfo* parent = nullptr)
|
||||||
{
|
{
|
||||||
auto filter = adopt_ref(*new FilterInfo(Type::Filter, text, parent));
|
auto filter = adopt_ref(*new FilterInfo(Type::Filter, text, parent));
|
||||||
filter->ref();
|
filter->ref();
|
||||||
|
filter->apply_filter = move(apply_filter);
|
||||||
if (parent)
|
if (parent)
|
||||||
parent->children.append(filter);
|
parent->children.append(filter);
|
||||||
return filter;
|
return filter;
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue