diff --git a/Userland/Applications/PixelPaint/FilterGallery.cpp b/Userland/Applications/PixelPaint/FilterGallery.cpp index 38b327567b..6105ef02dc 100644 --- a/Userland/Applications/PixelPaint/FilterGallery.cpp +++ b/Userland/Applications/PixelPaint/FilterGallery.cpp @@ -13,7 +13,7 @@ namespace PixelPaint { -FilterGallery::FilterGallery(GUI::Window* parent_window) +FilterGallery::FilterGallery(GUI::Window* parent_window, ImageEditor* editor) : GUI::Dialog(parent_window) { set_title("Filter Gallery"); @@ -33,7 +33,7 @@ FilterGallery::FilterGallery(GUI::Window* parent_window) VERIFY(apply_button); VERIFY(cancel_button); - auto filter_model = FilterModel::create(); + auto filter_model = FilterModel::create(editor); filter_tree->set_model(filter_model); filter_tree->expand_tree(); diff --git a/Userland/Applications/PixelPaint/FilterGallery.h b/Userland/Applications/PixelPaint/FilterGallery.h index 0d3cd65a18..8fe642a061 100644 --- a/Userland/Applications/PixelPaint/FilterGallery.h +++ b/Userland/Applications/PixelPaint/FilterGallery.h @@ -6,6 +6,7 @@ #pragma once +#include "ImageEditor.h" #include namespace PixelPaint { @@ -14,7 +15,7 @@ class FilterGallery final : public GUI::Dialog { C_OBJECT(FilterGallery); private: - FilterGallery(GUI::Window* parent_window); + FilterGallery(GUI::Window* parent_window, ImageEditor*); }; } diff --git a/Userland/Applications/PixelPaint/FilterModel.cpp b/Userland/Applications/PixelPaint/FilterModel.cpp index 65d7e927d0..e1d2b3df13 100644 --- a/Userland/Applications/PixelPaint/FilterModel.cpp +++ b/Userland/Applications/PixelPaint/FilterModel.cpp @@ -6,10 +6,13 @@ */ #include "FilterModel.h" +#include "FilterParams.h" +#include "Layer.h" #include +#include namespace PixelPaint { -FilterModel::FilterModel() +FilterModel::FilterModel(ImageEditor* editor) { auto filter_bitmap = Gfx::Bitmap::try_load_from_file("/res/icons/pixelpaint/filter.png").release_value_but_fixme_should_propagate_errors(); diff --git a/Userland/Applications/PixelPaint/FilterModel.h b/Userland/Applications/PixelPaint/FilterModel.h index 54ec50b9fd..30dd477ee6 100644 --- a/Userland/Applications/PixelPaint/FilterModel.h +++ b/Userland/Applications/PixelPaint/FilterModel.h @@ -6,6 +6,7 @@ #pragma once +#include "ImageEditor.h" #include #include @@ -53,9 +54,9 @@ public: } }; - static NonnullRefPtr create() + static NonnullRefPtr create(ImageEditor* editor) { - return adopt_ref(*new FilterModel()); + return adopt_ref(*new FilterModel(editor)); } virtual ~FilterModel() override {}; @@ -67,7 +68,7 @@ public: virtual GUI::ModelIndex index(int row, int column = 0, const GUI::ModelIndex& = GUI::ModelIndex()) const override; private: - FilterModel(); + FilterModel(ImageEditor* editor); NonnullRefPtrVector m_filters; GUI::Icon m_filter_icon; diff --git a/Userland/Applications/PixelPaint/MainWidget.cpp b/Userland/Applications/PixelPaint/MainWidget.cpp index 570be8eb15..521ea35537 100644 --- a/Userland/Applications/PixelPaint/MainWidget.cpp +++ b/Userland/Applications/PixelPaint/MainWidget.cpp @@ -590,7 +590,10 @@ void MainWidget::initialize_menubar(GUI::Window& window) auto& filter_menu = window.add_menu("&Filter"); filter_menu.add_action(GUI::Action::create("Filter &Gallery", [&](auto&) { - auto dialog = PixelPaint::FilterGallery::construct(&window); + auto* editor = current_image_editor(); + if (!editor) + return; + auto dialog = PixelPaint::FilterGallery::construct(&window, editor); if (dialog->exec() != GUI::Dialog::ExecOK) return; }));