Re-enable Proxy Model for Classes Widget

This commit is contained in:
Florian Märkl 2019-02-01 17:10:05 +01:00
parent 2f0fd91137
commit 159d04e4c5
2 changed files with 10 additions and 6 deletions

View File

@ -463,6 +463,11 @@ bool ClassesSortFilterProxyModel::lessThan(const QModelIndex &left, const QModel
}
}
bool ClassesSortFilterProxyModel::hasChildren(const QModelIndex &parent) const
{
return !parent.isValid() || !parent.parent().isValid();
}
ClassesWidget::ClassesWidget(MainWindow *main, QAction *action) :
@ -474,7 +479,7 @@ ClassesWidget::ClassesWidget(MainWindow *main, QAction *action) :
ui->classesTreeView->setIconSize(QSize(10, 10));
proxy_model = new ClassesSortFilterProxyModel(this);
ui->classesTreeView->setModel(nullptr);
ui->classesTreeView->setModel(proxy_model);
ui->classesTreeView->sortByColumn(ClassesModel::TYPE, Qt::AscendingOrder);
ui->classesTreeView->setContextMenuPolicy(Qt::CustomContextMenu);
@ -511,8 +516,7 @@ void ClassesWidget::refreshClasses()
delete anal_model;
anal_model = nullptr;
bin_model = new BinClassesModel(this);
ui->classesTreeView->setModel(bin_model);
//proxy_model->setSourceModel(bin_model);
proxy_model->setSourceModel(bin_model);
}
bin_model->setClasses(Core()->getAllClassesFromBin());
break;
@ -522,8 +526,7 @@ void ClassesWidget::refreshClasses()
delete bin_model;
bin_model = nullptr;
anal_model = new AnalClassesModel(this);
ui->classesTreeView->setModel(anal_model);
//proxy_model->setSourceModel(anal_model);
proxy_model->setSourceModel(anal_model);
}
anal_model->refreshClasses();
break;

View File

@ -22,7 +22,7 @@ class ClassesModel: public QAbstractItemModel
{
public:
enum Columns { NAME = 0, TYPE, OFFSET, VTABLE, COUNT };
enum class RowType { Class = 0, Method = 1, Field = 2, Base = 3, VTable = 4 };
enum class RowType { Class = 0, Base, VTable, Method, Field };
static const int OffsetRole = Qt::UserRole;
static const int NameRole = Qt::UserRole + 1;
@ -106,6 +106,7 @@ public:
protected:
bool filterAcceptsRow(int row, const QModelIndex &parent) const override;
bool lessThan(const QModelIndex &left, const QModelIndex &right) const override;
bool hasChildren(const QModelIndex &parent = QModelIndex()) const override;
};