Skip to content

Commit 5e6f5a5

Browse files
Torstennatorgmta
authored andcommitted
PixelPaint: New submenu for masking actions
This patch moves the mask related menu actions into a submenu in order to keep the menu more clear.
1 parent d8320d0 commit 5e6f5a5

File tree

1 file changed

+14
-9
lines changed

1 file changed

+14
-9
lines changed

Userland/Applications/PixelPaint/MainWidget.cpp

Lines changed: 14 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -810,49 +810,51 @@ ErrorOr<void> MainWidget::initialize_menubar(GUI::Window& window)
810810
};
811811
};
812812

813+
auto mask_submenu = TRY(m_layer_menu->try_add_submenu("&Masks"_short_string));
814+
813815
m_add_mask_action = GUI::Action::create(
814816
"Add M&ask", { Mod_Ctrl | Mod_Shift, Key_M }, g_icon_bag.add_mask, create_layer_mask_callback("Add Mask", [&](Layer* active_layer) {
815817
VERIFY(!active_layer->is_masked());
816818
if (auto maybe_error = active_layer->create_mask(Layer::MaskType::BasicMask); maybe_error.is_error())
817819
GUI::MessageBox::show_error(&window, MUST(String::formatted("Failed to create layer mask: {}", maybe_error.release_error())));
818820
}));
819-
TRY(m_layer_menu->try_add_action(*m_add_mask_action));
821+
TRY(mask_submenu->try_add_action(*m_add_mask_action));
820822

821823
m_add_editing_mask_action = GUI::Action::create(
822824
"Add E&diting Mask", { Mod_Ctrl | Mod_Alt, Key_E }, g_icon_bag.add_mask, create_layer_mask_callback("Add Editing Mask", [&](Layer* active_layer) {
823825
VERIFY(!active_layer->is_masked());
824826
if (auto maybe_error = active_layer->create_mask(Layer::MaskType::EditingMask); maybe_error.is_error())
825827
GUI::MessageBox::show_error(&window, MUST(String::formatted("Failed to create layer mask: {}", maybe_error.release_error())));
826828
}));
827-
TRY(m_layer_menu->try_add_action(*m_add_editing_mask_action));
829+
TRY(mask_submenu->try_add_action(*m_add_editing_mask_action));
828830

829831
m_delete_mask_action = GUI::Action::create(
830832
"Delete Mask", create_layer_mask_callback("Delete Mask", [&](Layer* active_layer) {
831833
VERIFY(active_layer->is_masked());
832834
active_layer->delete_mask();
833835
}));
834-
TRY(m_layer_menu->try_add_action(*m_delete_mask_action));
836+
TRY(mask_submenu->try_add_action(*m_delete_mask_action));
835837

836838
m_apply_mask_action = GUI::Action::create(
837839
"Apply Mask", create_layer_mask_callback("Apply Mask", [&](Layer* active_layer) {
838840
VERIFY(active_layer->is_masked());
839841
active_layer->apply_mask();
840842
}));
841-
TRY(m_layer_menu->try_add_action(*m_apply_mask_action));
843+
TRY(mask_submenu->try_add_action(*m_apply_mask_action));
842844

843845
m_invert_mask_action = GUI::Action::create(
844846
"Invert Mask", create_layer_mask_callback("Invert Mask", [&](Layer* active_layer) {
845847
VERIFY(active_layer->is_masked());
846848
active_layer->invert_mask();
847849
}));
848-
TRY(m_layer_menu->try_add_action(*m_invert_mask_action));
850+
TRY(mask_submenu->try_add_action(*m_invert_mask_action));
849851

850852
m_clear_mask_action = GUI::Action::create(
851853
"Clear Mask", create_layer_mask_callback("Clear Mask", [&](Layer* active_layer) {
852854
VERIFY(active_layer->is_masked());
853855
active_layer->clear_mask();
854856
}));
855-
TRY(m_layer_menu->try_add_action(*m_clear_mask_action));
857+
TRY(mask_submenu->try_add_action(*m_clear_mask_action));
856858

857859
m_toggle_mask_visibility_action = GUI::Action::create_checkable(
858860
"Show Mask", [&](auto&) {
@@ -866,7 +868,7 @@ ErrorOr<void> MainWidget::initialize_menubar(GUI::Window& window)
866868
editor->update();
867869
});
868870

869-
TRY(m_layer_menu->try_add_action(*m_toggle_mask_visibility_action));
871+
TRY(mask_submenu->try_add_action(*m_toggle_mask_visibility_action));
870872

871873
m_open_luminosity_masking_action = GUI::Action::create(
872874
"Luminosity Masking", [&](auto&) {
@@ -880,7 +882,7 @@ ErrorOr<void> MainWidget::initialize_menubar(GUI::Window& window)
880882
m_layer_list_widget->repaint();
881883
});
882884

883-
TRY(m_layer_menu->try_add_action(*m_open_luminosity_masking_action));
885+
TRY(mask_submenu->try_add_action(*m_open_luminosity_masking_action));
884886

885887
m_open_color_masking_action = GUI::Action::create(
886888
"Color Masking", [&](auto&) {
@@ -894,7 +896,7 @@ ErrorOr<void> MainWidget::initialize_menubar(GUI::Window& window)
894896
m_layer_list_widget->repaint();
895897
});
896898

897-
TRY(m_layer_menu->try_add_action(*m_open_color_masking_action));
899+
TRY(mask_submenu->try_add_action(*m_open_color_masking_action));
898900

899901
TRY(m_layer_menu->try_add_separator());
900902

@@ -1260,13 +1262,16 @@ void MainWidget::set_mask_actions_for_layer(Layer* layer)
12601262
{
12611263
if (!layer) {
12621264
m_add_mask_action->set_visible(true);
1265+
m_add_editing_mask_action->set_visible(true);
12631266
m_delete_mask_action->set_visible(false);
12641267
m_apply_mask_action->set_visible(false);
12651268
m_add_mask_action->set_enabled(false);
1269+
m_add_editing_mask_action->set_enabled(false);
12661270
return;
12671271
}
12681272

12691273
m_add_mask_action->set_enabled(true);
1274+
m_add_editing_mask_action->set_enabled(true);
12701275

12711276
auto masked = layer->is_masked();
12721277
m_add_mask_action->set_visible(!masked);

0 commit comments

Comments
 (0)