mirror of
https://github.com/juce-framework/JUCE.git
synced 2026-01-10 23:44:24 +00:00
Introjucer: collapse/expand options in treeview.
This commit is contained in:
parent
9f41dbce82
commit
a3e2a4840c
1 changed files with 22 additions and 6 deletions
|
|
@ -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…
Add table
Add a link
Reference in a new issue