summaryrefslogtreecommitdiff
path: root/Userland/Applications
diff options
context:
space:
mode:
authorMustafa Quraish <mustafaq9@gmail.com>2021-09-12 21:36:01 -0400
committerAndreas Kling <kling@serenityos.org>2021-09-13 13:43:53 +0200
commitecf8f243a6d09cd827dca6a31b6846977cf1699a (patch)
tree718a3dacbe20d4a93b5b2b1dc82fb85b91f591be /Userland/Applications
parentee25e2adc22d96bb2dc7113cc5e87c3197defb90 (diff)
downloadserenity-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')
-rw-r--r--Userland/Applications/PixelPaint/ToolboxWidget.cpp6
-rw-r--r--Userland/Applications/PixelPaint/ToolboxWidget.h3
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 };
};
}