From 44253fa81eadddbda593f967a64143970a72f151 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mart=C3=ADn=20Lucas=20Golini?= Date: Sat, 6 Apr 2024 01:36:33 -0300 Subject: [PATCH] Add split submenu in Window submenu. --- src/tools/ecode/settingsmenu.cpp | 33 +++++++++++++++++++++++--------- 1 file changed, 24 insertions(+), 9 deletions(-) diff --git a/src/tools/ecode/settingsmenu.cpp b/src/tools/ecode/settingsmenu.cpp index bfc0b7413..0130f59d9 100644 --- a/src/tools/ecode/settingsmenu.cpp +++ b/src/tools/ecode/settingsmenu.cpp @@ -989,39 +989,54 @@ UIMenu* SettingsMenu::createWindowMenu() { findIcon( "layout-right" ), getKeybind( "layout-rigth" ) ) ->setId( "move-panel-right" ); mWindowMenu->addSeparator(); - mWindowMenu + + UIPopUpMenu* splitMenu = UIPopUpMenu::New(); + + splitMenu ->add( i18n( "split_left", "Split Left" ), findIcon( "split-horizontal" ), getKeybind( "split-left" ) ) ->setId( "split-left" ); - mWindowMenu + splitMenu ->add( i18n( "split_right", "Split Right" ), findIcon( "split-horizontal" ), getKeybind( "split-right" ) ) ->setId( "split-right" ); - mWindowMenu + splitMenu ->add( i18n( "split_top", "Split Top" ), findIcon( "split-vertical" ), getKeybind( "split-top" ) ) ->setId( "split-top" ); - mWindowMenu + splitMenu ->add( i18n( "split_bottom", "Split Bottom" ), findIcon( "split-vertical" ), getKeybind( "split-bottom" ) ) ->setId( "split-bottom" ); - mWindowMenu->addSeparator(); - mWindowMenu + splitMenu->addSeparator(); + splitMenu ->add( i18n( "terminal_split_left", "Split Terminal Left" ), findIcon( "split-horizontal" ), getKeybind( "terminal-split-left" ) ) ->setId( "terminal-split-left" ); - mWindowMenu + splitMenu ->add( i18n( "terminal_split_right", "Split Terminal Right" ), findIcon( "split-horizontal" ), getKeybind( "terminal-split-right" ) ) ->setId( "terminal-split-right" ); - mWindowMenu + splitMenu ->add( i18n( "terminal_split_top", "Split Terminal Top" ), findIcon( "split-vertical" ), getKeybind( "terminal-split-top" ) ) ->setId( "terminal-split-top" ); - mWindowMenu + splitMenu ->add( i18n( "terminal_split_bottom", "Split Terminal Bottom" ), findIcon( "split-vertical" ), getKeybind( "terminal-split-bottom" ) ) ->setId( "terminal-split-bottom" ); + + splitMenu->on( Event::OnItemClicked, [this]( const Event* event ) { + if ( !event->getNode()->isType( UI_TYPE_MENUITEM ) ) + return; + String text = String( event->getNode()->asType()->getId() ).toLower(); + String::replaceAll( text, " ", "-" ); + String::replaceAll( text, "/", "-" ); + runCommand( text ); + } ); + + mWindowMenu->addSubMenu( i18n( "split", "Split" ), findIcon( "split-horizontal" ), splitMenu ); + mWindowMenu->addSeparator(); mWindowMenu ->add( i18n( "zoom_in", "Zoom In" ), findIcon( "zoom-in" ), getKeybind( "font-size-grow" ) )