QmlOutline: Show id/name/property values only if filter is active

This commit is contained in:
Kai Koehne
2010-08-12 14:37:52 +02:00
parent 0783b1e40a
commit 72862dcc61
3 changed files with 14 additions and 1 deletions

View File

@@ -40,6 +40,18 @@ bool QmlJSOutlineFilterModel::filterAcceptsRow(int sourceRow,
return QSortFilterProxyModel::filterAcceptsRow(sourceRow, sourceParent);
}
QVariant QmlJSOutlineFilterModel::data(const QModelIndex &index, int role) const
{
if (role == QmlOutlineModel::AnnotationRole) {
// Don't show element id etc behind element if the property is also visible
if (!filterBindings()
&& index.data(QmlOutlineModel::ItemTypeRole) == QmlOutlineModel::ElementType) {
return QVariant();
}
}
return QSortFilterProxyModel::data(index, role);
}
bool QmlJSOutlineFilterModel::filterBindings() const
{
return m_filterBindings;

View File

@@ -28,6 +28,7 @@ public:
// QSortFilterProxyModel
bool filterAcceptsRow(int sourceRow,
const QModelIndex &sourceParent) const;
QVariant data(const QModelIndex &index, int role) const;
bool filterBindings() const;
void setFilterBindings(bool filterBindings);

View File

@@ -26,7 +26,7 @@ class QmlOutlineItem : public QStandardItem
public:
QmlOutlineItem(QmlOutlineModel *model);
//QStandardItem
// QStandardItem
QVariant data(int role = Qt::UserRole + 1) const;
int type() const;