diff options
author | Mustafa Quraish <mustafaq9@gmail.com> | 2021-09-12 21:36:01 -0400 |
---|---|---|
committer | Andreas Kling <kling@serenityos.org> | 2021-09-13 13:43:53 +0200 |
commit | ecf8f243a6d09cd827dca6a31b6846977cf1699a (patch) | |
tree | 718a3dacbe20d4a93b5b2b1dc82fb85b91f591be /Userland/Applications/PixelPaint | |
parent | ee25e2adc22d96bb2dc7113cc5e87c3197defb90 (diff) | |
download | serenity-ecf8f243a6d09cd827dca6a31b6846977cf1699a.zip |
PixelPaint: Have `ToolboxWidget` keep track of active tool
Since there's only one global toolbox, it makes sense to store the
active tool in here, since we don't really have control over the
deletion of an editor.
Diffstat (limited to 'Userland/Applications/PixelPaint')
-rw-r--r-- | Userland/Applications/PixelPaint/ToolboxWidget.cpp | 6 | ||||
-rw-r--r-- | Userland/Applications/PixelPaint/ToolboxWidget.h | 3 |
2 files changed, 7 insertions, 2 deletions
diff --git a/Userland/Applications/PixelPaint/ToolboxWidget.cpp b/Userland/Applications/PixelPaint/ToolboxWidget.cpp index b8c4323d7a..b271e61a37 100644 --- a/Userland/Applications/PixelPaint/ToolboxWidget.cpp +++ b/Userland/Applications/PixelPaint/ToolboxWidget.cpp @@ -53,10 +53,12 @@ void ToolboxWidget::setup_tools() auto add_tool = [&](String name, StringView const& icon_name, GUI::Shortcut const& shortcut, NonnullOwnPtr<Tool> tool) { auto action = GUI::Action::create_checkable(move(name), shortcut, Gfx::Bitmap::try_load_from_file(String::formatted("/res/icons/pixelpaint/{}.png", icon_name)), [this, tool = tool.ptr()](auto& action) { - if (action.is_checked()) + if (action.is_checked()) { on_tool_selection(tool); - else + m_active_tool = tool; + } else { on_tool_selection(nullptr); + } }); m_action_group.add_action(action); auto& button = m_toolbar->add_action(action); diff --git a/Userland/Applications/PixelPaint/ToolboxWidget.h b/Userland/Applications/PixelPaint/ToolboxWidget.h index c4de0ffa77..6de446ce56 100644 --- a/Userland/Applications/PixelPaint/ToolboxWidget.h +++ b/Userland/Applications/PixelPaint/ToolboxWidget.h @@ -29,6 +29,8 @@ public: callback(tool); } + Tool* active_tool() const { return m_active_tool; } + private: friend class ToolButton; @@ -38,6 +40,7 @@ private: RefPtr<GUI::Toolbar> m_toolbar; GUI::ActionGroup m_action_group; NonnullOwnPtrVector<Tool> m_tools; + Tool* m_active_tool { nullptr }; }; } |