MCPcopy Create free account
hub / github.com/SpartanJ/eepp / initProjectTreeViewUI

Method initProjectTreeViewUI

src/tools/ecode/ecode.cpp:3782–3856  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

3780}
3781
3782void App::initProjectTreeViewUI() {
3783 initProjectViewEmptyCont();
3784 mProjectTreeView = mUISceneNode->find<UITreeViewFS>( "project_view" );
3785 mProjectTreeView->setColumnsHidden(
3786 { FileSystemModel::Icon, FileSystemModel::Size, FileSystemModel::Group,
3787 FileSystemModel::Inode, FileSystemModel::Owner, FileSystemModel::SymlinkTarget,
3788 FileSystemModel::Permissions, FileSystemModel::ModificationTime, FileSystemModel::Path },
3789 true );
3790 mProjectTreeView->setIconSize( mMenuIconSize );
3791 mProjectTreeView->setExpanderIconSize( mMenuIconSize );
3792 mProjectTreeView->setExpandedIcon( "folder-open" );
3793 mProjectTreeView->setContractedIcon( "folder" );
3794 mProjectTreeView->setHeadersVisible( false );
3795 mProjectTreeView->setExpandersAsIcons( true );
3796 mProjectTreeView->setSingleClickNavigation( mConfig.editor.singleClickNavigation );
3797 mProjectTreeView->setScrollViewType( ScrollViewType::Overlay );
3798 mProjectTreeView->on( Event::OnModelEvent, [this]( const Event* event ) {
3799 const ModelEvent* modelEvent = static_cast<const ModelEvent*>( event );
3800 ModelEventType type = modelEvent->getModelEventType();
3801 if ( type == ModelEventType::Open || type == ModelEventType::OpenMenu ) {
3802 Variant vPath(
3803 modelEvent->getModel()->data( modelEvent->getModelIndex(), ModelRole::Custom ) );
3804 if ( vPath.isValid() && vPath.isString() ) {
3805 std::string path( vPath.toString() );
3806 if ( type == ModelEventType::Open ) {
3807 UITab* tab = mSplitter->isDocumentOpen( path );
3808 if ( !tab ) {
3809 FileInfo fileInfo( path );
3810 if ( fileInfo.exists() && fileInfo.isRegularFile() )
3811 openFileFromPath( path );
3812 } else {
3813 tab->getTabWidget()->setTabSelected( tab );
3814 }
3815 } else if ( !mProjectTreeView->getSelection().isEmpty() ) {
3816 // ModelEventType::OpenMenu
3817 mSettings->createProjectTreeMenu( mProjectTreeView->getSelectionsFileInfo() );
3818 }
3819 }
3820 }
3821 } );
3822 mProjectTreeView->on( Event::MouseClick, [this]( const Event* event ) {
3823 const MouseEvent* mouseEvent = static_cast<const MouseEvent*>( event );
3824 if ( mouseEvent->getFlags() & EE_BUTTON_RMASK )
3825 mSettings->createProjectTreeMenu();
3826 } );
3827 mProjectTreeView->on( Event::KeyDown, [this]( const Event* event ) {
3828 if ( !mFileSystemModel )
3829 return;
3830 const KeyEvent* keyEvent = static_cast<const KeyEvent*>( event );
3831 if ( keyEvent->getKeyCode() == KEY_F2 ||
3832 ( ( keyEvent->getKeyCode() == KEY_DELETE ||
3833 keyEvent->getKeyCode() == KEY_BACKSPACE ) &&
3834 mProjectTreeView->getSelection().size() == 1 ) ) {
3835 ModelIndex modelIndex = mProjectTreeView->getSelection().first();
3836 if ( !modelIndex.isValid() )
3837 return;
3838 Variant vPath( mProjectTreeView->getModel()->data( modelIndex, ModelRole::Custom ) );
3839 if ( vPath.isValid() && vPath.isString() ) {

Callers

nothing calls this directly

Calls 15

setColumnsHiddenMethod · 0.80
setIconSizeMethod · 0.80
setExpanderIconSizeMethod · 0.80
setExpandedIconMethod · 0.80
setContractedIconMethod · 0.80
setExpandersAsIconsMethod · 0.80
getModelIndexMethod · 0.80
isStringMethod · 0.80
isDocumentOpenMethod · 0.80
isRegularFileMethod · 0.80
createProjectTreeMenuMethod · 0.80
getSelectionsFileInfoMethod · 0.80

Tested by

no test coverage detected