@@ -810,49 +810,51 @@ ErrorOr<void> MainWidget::initialize_menubar(GUI::Window& window)
810
810
};
811
811
};
812
812
813
+ auto mask_submenu = TRY (m_layer_menu->try_add_submenu (" &Masks" _short_string));
814
+
813
815
m_add_mask_action = GUI::Action::create (
814
816
" Add M&ask" , { Mod_Ctrl | Mod_Shift, Key_M }, g_icon_bag.add_mask , create_layer_mask_callback (" Add Mask" , [&](Layer* active_layer) {
815
817
VERIFY (!active_layer->is_masked ());
816
818
if (auto maybe_error = active_layer->create_mask (Layer::MaskType::BasicMask); maybe_error.is_error ())
817
819
GUI::MessageBox::show_error (&window, MUST (String::formatted (" Failed to create layer mask: {}" , maybe_error.release_error ())));
818
820
}));
819
- TRY (m_layer_menu ->try_add_action (*m_add_mask_action));
821
+ TRY (mask_submenu ->try_add_action (*m_add_mask_action));
820
822
821
823
m_add_editing_mask_action = GUI::Action::create (
822
824
" 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) {
823
825
VERIFY (!active_layer->is_masked ());
824
826
if (auto maybe_error = active_layer->create_mask (Layer::MaskType::EditingMask); maybe_error.is_error ())
825
827
GUI::MessageBox::show_error (&window, MUST (String::formatted (" Failed to create layer mask: {}" , maybe_error.release_error ())));
826
828
}));
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));
828
830
829
831
m_delete_mask_action = GUI::Action::create (
830
832
" Delete Mask" , create_layer_mask_callback (" Delete Mask" , [&](Layer* active_layer) {
831
833
VERIFY (active_layer->is_masked ());
832
834
active_layer->delete_mask ();
833
835
}));
834
- TRY (m_layer_menu ->try_add_action (*m_delete_mask_action));
836
+ TRY (mask_submenu ->try_add_action (*m_delete_mask_action));
835
837
836
838
m_apply_mask_action = GUI::Action::create (
837
839
" Apply Mask" , create_layer_mask_callback (" Apply Mask" , [&](Layer* active_layer) {
838
840
VERIFY (active_layer->is_masked ());
839
841
active_layer->apply_mask ();
840
842
}));
841
- TRY (m_layer_menu ->try_add_action (*m_apply_mask_action));
843
+ TRY (mask_submenu ->try_add_action (*m_apply_mask_action));
842
844
843
845
m_invert_mask_action = GUI::Action::create (
844
846
" Invert Mask" , create_layer_mask_callback (" Invert Mask" , [&](Layer* active_layer) {
845
847
VERIFY (active_layer->is_masked ());
846
848
active_layer->invert_mask ();
847
849
}));
848
- TRY (m_layer_menu ->try_add_action (*m_invert_mask_action));
850
+ TRY (mask_submenu ->try_add_action (*m_invert_mask_action));
849
851
850
852
m_clear_mask_action = GUI::Action::create (
851
853
" Clear Mask" , create_layer_mask_callback (" Clear Mask" , [&](Layer* active_layer) {
852
854
VERIFY (active_layer->is_masked ());
853
855
active_layer->clear_mask ();
854
856
}));
855
- TRY (m_layer_menu ->try_add_action (*m_clear_mask_action));
857
+ TRY (mask_submenu ->try_add_action (*m_clear_mask_action));
856
858
857
859
m_toggle_mask_visibility_action = GUI::Action::create_checkable (
858
860
" Show Mask" , [&](auto &) {
@@ -866,7 +868,7 @@ ErrorOr<void> MainWidget::initialize_menubar(GUI::Window& window)
866
868
editor->update ();
867
869
});
868
870
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));
870
872
871
873
m_open_luminosity_masking_action = GUI::Action::create (
872
874
" Luminosity Masking" , [&](auto &) {
@@ -880,7 +882,7 @@ ErrorOr<void> MainWidget::initialize_menubar(GUI::Window& window)
880
882
m_layer_list_widget->repaint ();
881
883
});
882
884
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));
884
886
885
887
m_open_color_masking_action = GUI::Action::create (
886
888
" Color Masking" , [&](auto &) {
@@ -894,7 +896,7 @@ ErrorOr<void> MainWidget::initialize_menubar(GUI::Window& window)
894
896
m_layer_list_widget->repaint ();
895
897
});
896
898
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));
898
900
899
901
TRY (m_layer_menu->try_add_separator ());
900
902
@@ -1260,13 +1262,16 @@ void MainWidget::set_mask_actions_for_layer(Layer* layer)
1260
1262
{
1261
1263
if (!layer) {
1262
1264
m_add_mask_action->set_visible (true );
1265
+ m_add_editing_mask_action->set_visible (true );
1263
1266
m_delete_mask_action->set_visible (false );
1264
1267
m_apply_mask_action->set_visible (false );
1265
1268
m_add_mask_action->set_enabled (false );
1269
+ m_add_editing_mask_action->set_enabled (false );
1266
1270
return ;
1267
1271
}
1268
1272
1269
1273
m_add_mask_action->set_enabled (true );
1274
+ m_add_editing_mask_action->set_enabled (true );
1270
1275
1271
1276
auto masked = layer->is_masked ();
1272
1277
m_add_mask_action->set_visible (!masked);
0 commit comments