I have a simple patch for this. It can be turned on/off by "Hide folder name" in menu "project tree".
--- I:/Places/svn/svn.berlios.de/codeblocks/branches/wxpropgrid_debugger/src/include/projectmanager.h Tue Feb 16 04:23:39 2010
+++ I:/Places/svn/svn.berlios.de/codeblocks/local/src/include/projectmanager.h Tue Feb 16 04:33:26 2010
@@ -468,6 +468,9 @@
void OnGotoFile(wxCommandEvent& event);
void OnViewCategorize(wxCommandEvent& event);
void OnViewUseFolders(wxCommandEvent& event);
+ //{{YSM
+ void OnViewHideFolderName(wxCommandEvent& event);
+ //}}YSM
void OnViewFileMasks(wxCommandEvent& event);
void OnFindFile(wxCommandEvent& event);
wxTreeItemId FindItem(wxTreeItemId Node, const wxString& Search) const;
@@ -495,6 +498,9 @@
cbWorkspace* m_pWorkspace;
bool m_TreeCategorize;
bool m_TreeUseFolders;
+ //{{YSM
+ bool m_TreeHideFolderName;
+ //}}YSM
FilesGroupsAndMasks* m_pFileGroups;
int m_TreeFreezeCounter;
bool m_IsLoadingProject;
--- I:/Places/svn/svn.berlios.de/codeblocks/branches/wxpropgrid_debugger/src/include/cbproject.h Fri Sep 18 01:06:05 2009
+++ I:/Places/svn/svn.berlios.de/codeblocks/local/src/include/cbproject.h Sat Oct 31 18:35:33 2009
@@ -109,7 +109,9 @@
* @param useFolders If true, create folders as needed. If false, the list is flat.
* @param fgam If not NULL, use these file groups and masks for virtual folders.
*/
- void BuildTree(wxTreeCtrl* tree, const wxTreeItemId& root, bool categorize, bool useFolders, FilesGroupsAndMasks* fgam = 0L);
+ //{{YSM
+ void BuildTree(wxTreeCtrl* tree, const wxTreeItemId& root, bool categorize, bool useFolders, FilesGroupsAndMasks* fgam = 0L, bool hideFolderName=false);
+ //}}YSM
/** This resets the project to a clear state. Like it's just been new'ed. */
void ClearAllProperties();
--- I:/Places/svn/svn.berlios.de/codeblocks/branches/wxpropgrid_debugger/src/sdk/projectmanager.cpp Tue Feb 16 04:23:20 2010
+++ I:/Places/svn/svn.berlios.de/codeblocks/local/src/sdk/projectmanager.cpp Fri Feb 19 14:01:52 2010
@@ -110,6 +110,9 @@
int idMenuTreeCloseWorkspace = wxNewId();
int idMenuAddVirtualFolder = wxNewId();
int idMenuDeleteVirtualFolder = wxNewId();
+//{{YSM
+int idMenuViewHideFolderName = wxNewId();
+//}}YSM
static const int idMenuFindFile = wxNewId();
static const int idNB = wxNewId();
@@ -203,6 +206,9 @@
EVT_MENU(idMenuViewCategorizePopup, ProjectManager::OnViewCategorize)
EVT_MENU(idMenuViewUseFolders, ProjectManager::OnViewUseFolders)
EVT_MENU(idMenuViewUseFoldersPopup, ProjectManager::OnViewUseFolders)
+ //{{YSM
+ EVT_MENU(idMenuViewHideFolderName, ProjectManager::OnViewHideFolderName)
+ //}}YSM
EVT_MENU(idMenuViewFileMasks, ProjectManager::OnViewFileMasks)
EVT_MENU(idMenuFindFile, ProjectManager::OnFindFile)
EVT_IDLE(ProjectManager::OnIdle)
@@ -214,6 +220,9 @@
m_pWorkspace(0),
m_TreeCategorize(false),
m_TreeUseFolders(true),
+ //{{YSM
+ m_TreeHideFolderName(true),
+ //}}YSM
m_TreeFreezeCounter(0),
m_IsLoadingProject(false),
m_IsLoadingWorkspace(false),
@@ -239,6 +248,9 @@
ConfigManager *cfg = Manager::Get()->GetConfigManager(_T("project_manager"));
m_TreeCategorize = cfg->ReadBool(_T("/categorize_tree"), true);
m_TreeUseFolders = cfg->ReadBool(_T("/use_folders"), true);
+ //{{YSM
+ m_TreeHideFolderName = cfg->ReadBool(_T("/hide_folder_name"), true);
+ //}}YSM
RebuildTree();
@@ -417,6 +429,10 @@
treeprops->AppendCheckItem(idMenuViewUseFolders, _("Display folders as on disk"));
treeprops->Check(idMenuViewCategorize, cfg->ReadBool(_T("/categorize_tree"), true));
treeprops->Check(idMenuViewUseFolders, cfg->ReadBool(_T("/use_folders"), true));
+ //{{YSM
+ treeprops->AppendCheckItem(idMenuViewHideFolderName, _("Hide folder name"));
+ treeprops->Check(idMenuViewUseFolders, cfg->ReadBool(_T("/hide_folder_name"), true));
+ //}}YSM
treeprops->Append(idMenuViewFileMasks, _("Edit file types && categories..."));
menu->AppendSeparator();
menu->Append(idMenuProjectTreeProps, _("Project tree"), treeprops);
@@ -661,8 +677,14 @@
it differs from the block currently in CreateMenu() by the following two IDs */
treeprops->AppendCheckItem(idMenuViewCategorizePopup, _("Categorize by file types"));
treeprops->AppendCheckItem(idMenuViewUseFoldersPopup, _("Display folders as on disk"));
+ //{{YSM
+ treeprops->AppendCheckItem(idMenuViewHideFolderName, _("Hide folder name"));
+ //}}YSM
treeprops->Check(idMenuViewCategorizePopup, cfg->ReadBool(_T("/categorize_tree"), true));
treeprops->Check(idMenuViewUseFoldersPopup, cfg->ReadBool(_T("/use_folders"), true));
+ //{{YSM
+ treeprops->Check(idMenuViewHideFolderName, cfg->ReadBool(_T("/hide_folder_name"), true));
+ //}}YSM
treeprops->Append(idMenuViewFileMasks, _("Edit file types && categories..."));
menu.Append(idMenuProjectTreeProps, _("Project tree"), treeprops);
@@ -1252,7 +1274,9 @@
cbProject* project = m_pProjects->Item(i);
if (project)
{
- project->BuildTree(m_pTree, m_TreeRoot, m_TreeCategorize, m_TreeUseFolders, m_pFileGroups);
+ //{{YSM
+ project->BuildTree(m_pTree, m_TreeRoot, m_TreeCategorize, m_TreeUseFolders, m_pFileGroups, m_TreeHideFolderName);
+ //}}YSM
m_pTree->SetItemBold(project->GetProjectNode(), project == m_pActiveProject);
}
}
@@ -1795,11 +1819,17 @@
menu.AppendCheckItem(idMenuViewCategorizePopup, _("Categorize by file types"));
menu.AppendCheckItem(idMenuViewUseFoldersPopup, _("Display folders as on disk"));
+ //{{YSM
+ menu.AppendCheckItem(idMenuViewHideFolderName, _("Hide folder name"));
+ //}}YSM
menu.AppendSeparator();
menu.Append(idMenuViewFileMasks, _("Edit file types && categories..."));
menu.Check(idMenuViewCategorizePopup, m_TreeCategorize);
menu.Check(idMenuViewUseFoldersPopup, m_TreeUseFolders);
+ //{{YSM
+ menu.Check(idMenuViewHideFolderName, m_TreeHideFolderName);
+ //}}YSM
wxPoint pt = wxGetMousePosition();
pt = m_pTree->ScreenToClient(pt);
@@ -2361,6 +2391,16 @@
Manager::Get()->GetConfigManager(_T("project_manager"))->Write(_T("/use_folders"), m_TreeUseFolders);
RebuildTree();
}
+
+//{{YSM
+void ProjectManager::OnViewHideFolderName(wxCommandEvent& event)
+{
+ m_TreeHideFolderName = event.IsChecked();
+ Manager::Get()->GetAppFrame()->GetMenuBar()->Check(idMenuViewHideFolderName, m_TreeHideFolderName);
+ Manager::Get()->GetConfigManager(_T("project_manager"))->Write(_T("/hide_folder_name"), m_TreeHideFolderName);
+ RebuildTree();
+}
+//}}YSM
void ProjectManager::OnViewFileMasks(wxCommandEvent& event)
{
--- I:/Places/svn/svn.berlios.de/codeblocks/branches/wxpropgrid_debugger/src/sdk/cbproject.cpp Sat Sep 26 06:49:00 2009
+++ I:/Places/svn/svn.berlios.de/codeblocks/local/src/sdk/cbproject.cpp Tue Feb 16 21:04:12 2010
@@ -834,7 +834,10 @@
return (*arg1)->file.GetFullPath().CompareTo((*arg2)->file.GetFullPath());
}
-void cbProject::BuildTree(wxTreeCtrl* tree, const wxTreeItemId& root, bool categorize, bool useFolders, FilesGroupsAndMasks* fgam)
+//{{YSM
+//Add the , bool hideFolderName
+//}}YSM
+void cbProject::BuildTree(wxTreeCtrl* tree, const wxTreeItemId& root, bool categorize, bool useFolders, FilesGroupsAndMasks* fgam, bool hideFolderName)
{
if (!tree)
return;
@@ -943,6 +946,12 @@
}
// add file in the tree
+ //{{YSM
+ if(!useFolders && folders_kind != FileTreeData::ftdkVirtualFolder && hideFolderName)
+ {
+ nodetext = f->file.GetFullName();
+ }
+ //}}YSM
f->m_TreeItemId = AddTreeNode(tree, nodetext, parentNode, useFolders || folders_kind == FileTreeData::ftdkVirtualFolder, folders_kind, f->compile, (int)f->m_VisualState, ftd);
}
I've some other changes in my local copy so hope I did not miss any thing in this patch ...