From 1dec91588e80adc008e072dabdf2e7fba3e205ee Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mart=C3=ADn=20Lucas=20Golini?= Date: Thu, 2 Feb 2023 13:44:20 -0300 Subject: [PATCH] Closes SpartanJ/ecode#23. --- src/tools/ecode/ecode.cpp | 2 ++ src/tools/ecode/settingsmenu.cpp | 20 ++++++++++++-------- 2 files changed, 14 insertions(+), 8 deletions(-) diff --git a/src/tools/ecode/ecode.cpp b/src/tools/ecode/ecode.cpp index 8fe30b34e..ad450311e 100644 --- a/src/tools/ecode/ecode.cpp +++ b/src/tools/ecode/ecode.cpp @@ -2061,6 +2061,8 @@ void App::initProjectTreeView( const std::string& path ) { mSettings->createProjectTreeMenu(); } ); mProjectTreeView->addEventListener( Event::KeyDown, [&]( const Event* event ) { + if ( !mFileSystemModel ) + return 0; const KeyEvent* keyEvent = static_cast( event ); if ( keyEvent->getKeyCode() == KEY_F2 ) { ModelIndex modelIndex = mProjectTreeView->getSelection().first(); diff --git a/src/tools/ecode/settingsmenu.cpp b/src/tools/ecode/settingsmenu.cpp index 523a5084c..a933321c8 100644 --- a/src/tools/ecode/settingsmenu.cpp +++ b/src/tools/ecode/settingsmenu.cpp @@ -1375,16 +1375,18 @@ void SettingsMenu::createProjectTreeMenu() { findIcon( "filetype-bash" ) ) ->setId( "execute_dir_in_terminal" ); mProjectTreeMenu->addSeparator(); + mProjectTreeMenu->add( i18n( "collapse_all", "Collapse All" ) )->setId( "collapse-all" ); + mProjectTreeMenu->add( i18n( "expand_all", "Expand All" ) )->setId( "expand-all" ); + mProjectTreeMenu->addSeparator(); + mProjectTreeMenu + ->addCheckBox( i18n( "show_hidden_files", "Show hidden files" ), + !mApp->getFileSystemModel()->getDisplayConfig().ignoreHidden ) + ->setId( "show_hidden_files" ); + } else if ( !mApp->getFileSystemModel() ) { + mProjectTreeMenu->add( i18n( "open_folder", "Open Folder..." ), findIcon( "folder-open" ) ) + ->setId( "open-folder" ); } - mProjectTreeMenu->add( i18n( "collapse_all", "Collapse All" ) )->setId( "collapse-all" ); - mProjectTreeMenu->add( i18n( "expand_all", "Expand All" ) )->setId( "expand-all" ); - mProjectTreeMenu->addSeparator(); - mProjectTreeMenu - ->addCheckBox( i18n( "show_hidden_files", "Show hidden files" ), - !mApp->getFileSystemModel()->getDisplayConfig().ignoreHidden ) - ->setId( "show_hidden_files" ); - mProjectTreeMenu->addEventListener( Event::OnItemClicked, [&]( const Event* event ) { if ( !event->getNode()->isType( UI_TYPE_MENUITEM ) ) return; @@ -1404,6 +1406,8 @@ void SettingsMenu::createProjectTreeMenu() { mApp->getProjectTreeView()->collapseAll(); } else if ( "expand-all" == id ) { mApp->getProjectTreeView()->expandAll(); + } else if ( "open-folder" == id ) { + mApp->openFolderDialog(); } } );