Browse Source

Introjucer: collapse/expand options in treeview.

tags/2021-05-28
jules 13 years ago
parent
commit
a3e2a4840c
1 changed files with 22 additions and 6 deletions
  1. +22
    -6
      extras/Introjucer/Source/Project/jucer_TreeViewTypes.cpp

+ 22
- 6
extras/Introjucer/Source/Project/jucer_TreeViewTypes.cpp View File

@@ -81,14 +81,11 @@ void GroupTreeViewItem::checkFileStatus()
ProjectTreeViewBase* GroupTreeViewItem::createSubItem (const Project::Item& child)
{
if (child.isGroup())
return new GroupTreeViewItem (child);
if (child.isFile())
return new SourceFileTreeViewItem (child);
if (child.isGroup()) return new GroupTreeViewItem (child);
if (child.isFile()) return new SourceFileTreeViewItem (child);
jassertfalse
return 0;
return nullptr;
}
void GroupTreeViewItem::showDocument()
@@ -101,6 +98,14 @@ void GroupTreeViewItem::showPopupMenu()
{
PopupMenu m;
addCreateFileMenuItems (m);
m.addSeparator();
if (isOpen())
m.addItem (4, "Collapse all Sub-groups");
else
m.addItem (5, "Expand all Sub-groups");
m.addSeparator();
m.addItem (3, "Sort Contents Alphabetically");
m.addSeparator();
@@ -112,6 +117,15 @@ void GroupTreeViewItem::showPopupMenu()
launchPopupMenu (m);
}
static void openOrCloseAllSubGroups (TreeViewItem& item, bool shouldOpen)
{
item.setOpen (shouldOpen);
for (int i = item.getNumSubItems(); --i >= 0;)
if (TreeViewItem* sub = item.getSubItem(i))
openOrCloseAllSubGroups (*sub, shouldOpen);
}
void GroupTreeViewItem::handlePopupMenuResult (int resultCode)
{
switch (resultCode)
@@ -119,6 +133,8 @@ void GroupTreeViewItem::handlePopupMenuResult (int resultCode)
case 1: triggerAsyncRename (item); break;
case 2: deleteAllSelectedItems(); break;
case 3: item.sortAlphabetically (false); break;
case 4: openOrCloseAllSubGroups (*this, false); break;
case 5: openOrCloseAllSubGroups (*this, true); break;
default: processCreateFileMenuItem (resultCode); break;
}
}


Loading…
Cancel
Save