Add 'expand all' menu to resource inspector

This commit is contained in:
baldurk
2019-11-29 12:08:03 +00:00
parent 289e159072
commit 3bf805ec35
2 changed files with 34 additions and 0 deletions
+33
View File
@@ -25,7 +25,9 @@
#include "ResourceInspector.h"
#include <QCollator>
#include <QKeyEvent>
#include <QMenu>
#include "3rdparty/toolwindowmanager/ToolWindowManagerArea.h"
#include "Code/Resources.h"
#include "Widgets/Extended/RDHeaderView.h"
#include "ui_ResourceInspector.h"
@@ -128,6 +130,10 @@ ResourceInspector::ResourceInspector(ICaptureContext &ctx, QWidget *parent)
ui->relatedResources->setFont(Formatter::PreferredFont());
ui->resourceUsage->setFont(Formatter::PreferredFont());
ui->initChunks->setContextMenuPolicy(Qt::CustomContextMenu);
QObject::connect(ui->initChunks, &RDTreeWidget::customContextMenuRequested, this,
&ResourceInspector::initChunks_contextMenu);
{
RDHeaderView *header = new RDHeaderView(Qt::Horizontal, this);
ui->relatedResources->setHeader(header);
@@ -441,6 +447,33 @@ void ResourceInspector::resource_doubleClicked(const QModelIndex &index)
HighlightUsage();
}
void ResourceInspector::initChunks_contextMenu(const QPoint &pos)
{
RDTreeWidgetItem *item = ui->initChunks->itemAt(pos);
QMenu contextMenu(this);
QAction expandAll(tr("&Expand All"), this);
QAction collapseAll(tr("&Collapse All"), this);
contextMenu.addAction(&expandAll);
contextMenu.addAction(&collapseAll);
expandAll.setIcon(Icons::arrow_out());
collapseAll.setIcon(Icons::arrow_in());
expandAll.setEnabled(item && item->childCount() > 0);
collapseAll.setEnabled(item && item->childCount() > 0);
QObject::connect(&expandAll, &QAction::triggered,
[this, item]() { ui->initChunks->expandAllItems(item); });
QObject::connect(&collapseAll, &QAction::triggered,
[this, item]() { ui->initChunks->collapseAllItems(item); });
RDDialog::show(&contextMenu, ui->initChunks->viewport()->mapToGlobal(pos));
}
void ResourceInspector::on_viewContents_clicked()
{
TextureDescription *tex = m_Ctx.GetTexture(m_Resource);
+1
View File
@@ -65,6 +65,7 @@ public slots:
// manual slots
void resource_doubleClicked(const QModelIndex &index);
void initChunks_contextMenu(const QPoint &pos);
private slots:
void on_viewContents_clicked();