mirror of
https://github.com/RGBCube/serenity
synced 2025-07-27 00:57:45 +00:00
PixelPaint: Remove context menu for MoveTool
Remove the context menu for MoveTool and move the actions to the layer menu instead.
This commit is contained in:
parent
15e9d0b4d8
commit
3392c66c94
3 changed files with 26 additions and 35 deletions
|
@ -85,35 +85,4 @@ void MoveTool::on_keydown(GUI::KeyEvent& event)
|
||||||
m_editor->layers_did_change();
|
m_editor->layers_did_change();
|
||||||
}
|
}
|
||||||
|
|
||||||
void MoveTool::on_context_menu(Layer& layer, GUI::ContextMenuEvent& event)
|
|
||||||
{
|
|
||||||
if (!m_context_menu) {
|
|
||||||
m_context_menu = GUI::Menu::construct();
|
|
||||||
m_context_menu->add_action(GUI::CommonActions::make_move_to_front_action(
|
|
||||||
[this](auto&) {
|
|
||||||
m_editor->image().move_layer_to_front(*m_context_menu_layer);
|
|
||||||
m_editor->layers_did_change();
|
|
||||||
},
|
|
||||||
m_editor));
|
|
||||||
m_context_menu->add_action(GUI::CommonActions::make_move_to_back_action(
|
|
||||||
[this](auto&) {
|
|
||||||
m_editor->image().move_layer_to_back(*m_context_menu_layer);
|
|
||||||
m_editor->layers_did_change();
|
|
||||||
},
|
|
||||||
m_editor));
|
|
||||||
m_context_menu->add_separator();
|
|
||||||
m_context_menu->add_action(GUI::Action::create(
|
|
||||||
"&Delete Layer", Gfx::Bitmap::try_load_from_file("/res/icons/16x16/delete.png"), [this](auto&) {
|
|
||||||
m_editor->image().remove_layer(*m_context_menu_layer);
|
|
||||||
// FIXME: This should not be done imperatively here. Perhaps a Image::Client interface that ImageEditor can implement?
|
|
||||||
if (m_editor->active_layer() == m_context_menu_layer)
|
|
||||||
m_editor->set_active_layer(nullptr);
|
|
||||||
m_editor->layers_did_change();
|
|
||||||
},
|
|
||||||
m_editor));
|
|
||||||
}
|
|
||||||
m_context_menu_layer = layer;
|
|
||||||
m_context_menu->popup(event.screen_position());
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -19,14 +19,11 @@ public:
|
||||||
virtual void on_mousemove(Layer&, GUI::MouseEvent& layer_event, GUI::MouseEvent& image_event) override;
|
virtual void on_mousemove(Layer&, GUI::MouseEvent& layer_event, GUI::MouseEvent& image_event) override;
|
||||||
virtual void on_mouseup(Layer&, GUI::MouseEvent& layer_event, GUI::MouseEvent& image_event) override;
|
virtual void on_mouseup(Layer&, GUI::MouseEvent& layer_event, GUI::MouseEvent& image_event) override;
|
||||||
virtual void on_keydown(GUI::KeyEvent&) override;
|
virtual void on_keydown(GUI::KeyEvent&) override;
|
||||||
virtual void on_context_menu(Layer&, GUI::ContextMenuEvent&) override;
|
|
||||||
|
|
||||||
private:
|
private:
|
||||||
RefPtr<Layer> m_layer_being_moved;
|
RefPtr<Layer> m_layer_being_moved;
|
||||||
Gfx::IntPoint m_event_origin;
|
Gfx::IntPoint m_event_origin;
|
||||||
Gfx::IntPoint m_layer_origin;
|
Gfx::IntPoint m_layer_origin;
|
||||||
RefPtr<GUI::Menu> m_context_menu;
|
|
||||||
RefPtr<Layer> m_context_menu_layer;
|
|
||||||
};
|
};
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -369,6 +369,31 @@ int main(int argc, char** argv)
|
||||||
},
|
},
|
||||||
window));
|
window));
|
||||||
layer_menu.add_separator();
|
layer_menu.add_separator();
|
||||||
|
layer_menu.add_action(GUI::CommonActions::make_move_to_front_action(
|
||||||
|
[&](auto&) {
|
||||||
|
auto* editor = current_image_editor();
|
||||||
|
if (!editor)
|
||||||
|
return;
|
||||||
|
auto active_layer = editor->active_layer();
|
||||||
|
if (!active_layer)
|
||||||
|
return;
|
||||||
|
editor->image().move_layer_to_front(*active_layer);
|
||||||
|
editor->layers_did_change();
|
||||||
|
},
|
||||||
|
window));
|
||||||
|
layer_menu.add_action(GUI::CommonActions::make_move_to_back_action(
|
||||||
|
[&](auto&) {
|
||||||
|
auto* editor = current_image_editor();
|
||||||
|
if (!editor)
|
||||||
|
return;
|
||||||
|
auto active_layer = editor->active_layer();
|
||||||
|
if (!active_layer)
|
||||||
|
return;
|
||||||
|
editor->image().move_layer_to_back(*active_layer);
|
||||||
|
editor->layers_did_change();
|
||||||
|
},
|
||||||
|
window));
|
||||||
|
layer_menu.add_separator();
|
||||||
layer_menu.add_action(GUI::Action::create(
|
layer_menu.add_action(GUI::Action::create(
|
||||||
"Move Active Layer &Up", { Mod_Ctrl, Key_PageUp }, [&](auto&) {
|
"Move Active Layer &Up", { Mod_Ctrl, Key_PageUp }, [&](auto&) {
|
||||||
auto* editor = current_image_editor();
|
auto* editor = current_image_editor();
|
||||||
|
@ -393,7 +418,7 @@ int main(int argc, char** argv)
|
||||||
window));
|
window));
|
||||||
layer_menu.add_separator();
|
layer_menu.add_separator();
|
||||||
layer_menu.add_action(GUI::Action::create(
|
layer_menu.add_action(GUI::Action::create(
|
||||||
"&Remove Active Layer", { Mod_Ctrl, Key_D }, [&](auto&) {
|
"&Remove Active Layer", { Mod_Ctrl, Key_D }, Gfx::Bitmap::try_load_from_file("/res/icons/16x16/delete.png"), [&](auto&) {
|
||||||
auto* editor = current_image_editor();
|
auto* editor = current_image_editor();
|
||||||
if (!editor)
|
if (!editor)
|
||||||
return;
|
return;
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue