mirror of
https://github.com/qgis/QGIS.git
synced 2025-02-25 00:58:06 -05:00
Not working yet
This commit is contained in:
parent
8942ed5e3f
commit
165dcb6719
@ -82,7 +82,6 @@ The root node is not transferred by the model.
|
||||
DeferredLegendInvalidation,
|
||||
UseEmbeddedWidgets,
|
||||
UseTextFormatting,
|
||||
ShowHidden,
|
||||
|
||||
// behavioral flags
|
||||
AllowNodeReorder,
|
||||
|
@ -39,6 +39,10 @@ the Free Software Foundation; either version 2 of the License, or *
|
||||
|
||||
void setFilterText( const QString &filterText = QString() );
|
||||
|
||||
bool showHidden() const;
|
||||
|
||||
void setShowHidden( bool showHidden );
|
||||
|
||||
protected:
|
||||
|
||||
virtual bool filterAcceptsRow( int sourceRow, const QModelIndex &sourceParent ) const;
|
||||
@ -307,6 +311,13 @@ Set width of contextual menu mark, at right of layer node items.
|
||||
Set the message bar to display messages from the layer tree
|
||||
|
||||
.. versionadded:: 3.14
|
||||
%End
|
||||
|
||||
void setShowHidden( bool showHidden );
|
||||
%Docstring
|
||||
Set the show hidden layers to ``showHidden``
|
||||
|
||||
.. versionadded:: 3.18
|
||||
%End
|
||||
|
||||
signals:
|
||||
|
@ -1193,7 +1193,6 @@ void QgsProjectProperties::apply()
|
||||
else
|
||||
flags &= ~QgsMapLayer::Hidden;
|
||||
|
||||
|
||||
layer->setFlags( flags );
|
||||
|
||||
QgsVectorLayer *vl = qobject_cast<QgsVectorLayer *>( layer );
|
||||
|
@ -98,7 +98,6 @@ class CORE_EXPORT QgsLayerTreeModel : public QAbstractItemModel
|
||||
DeferredLegendInvalidation = 0x0008, //!< Defer legend model invalidation
|
||||
UseEmbeddedWidgets = 0x0010, //!< Layer nodes may optionally include extra embedded widgets (if used in QgsLayerTreeView). Added in 2.16
|
||||
UseTextFormatting = 0x0020, //!< Layer nodes will alter text appearance based on layer properties, such as scale based visibility
|
||||
ShowHidden = 0x0020, //!< Display hidden layers
|
||||
|
||||
// behavioral flags
|
||||
AllowNodeReorder = 0x1000, //!< Allow reordering with drag'n'drop
|
||||
|
@ -95,6 +95,7 @@ void QgsLayerTreeView::setModel( QAbstractItemModel *model )
|
||||
);
|
||||
|
||||
mProxyModel = new QgsLayerTreeProxyModel( treeModel, this );
|
||||
mProxyModel->setShowHidden( false );
|
||||
QTreeView::setModel( mProxyModel );
|
||||
|
||||
connect( treeModel->rootGroup(), &QgsLayerTreeNode::expandedChanged, this, &QgsLayerTreeView::onExpandedChanged );
|
||||
@ -536,6 +537,12 @@ void QgsLayerTreeView::setMessageBar( QgsMessageBar *messageBar )
|
||||
);
|
||||
}
|
||||
|
||||
void QgsLayerTreeView::setShowHidden( bool showHidden )
|
||||
{
|
||||
mShowHidden = true;
|
||||
mProxyModel->setShowHidden( showHidden );
|
||||
}
|
||||
|
||||
void QgsLayerTreeView::mouseReleaseEvent( QMouseEvent *event )
|
||||
{
|
||||
// we need to keep last mouse position in order to know whether to emit an indicator's clicked() signal
|
||||
@ -684,7 +691,19 @@ bool QgsLayerTreeProxyModel::nodeShown( QgsLayerTreeNode *node ) const
|
||||
return true;
|
||||
if ( !mFilterText.isEmpty() && !layer->name().contains( mFilterText, Qt::CaseInsensitive ) )
|
||||
return false;
|
||||
|
||||
if ( ! mShowHidden && layer->flags().testFlag( QgsMapLayer::LayerFlag::Hidden ) )
|
||||
return false;
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
bool QgsLayerTreeProxyModel::showHidden() const
|
||||
{
|
||||
return mShowHidden;
|
||||
}
|
||||
|
||||
void QgsLayerTreeProxyModel::setShowHidden( bool showHidden )
|
||||
{
|
||||
mShowHidden = showHidden;
|
||||
invalidateFilter();
|
||||
}
|
||||
|
@ -43,6 +43,10 @@ class GUI_EXPORT QgsLayerTreeProxyModel : public QSortFilterProxyModel
|
||||
|
||||
void setFilterText( const QString &filterText = QString() );
|
||||
|
||||
bool showHidden() const;
|
||||
|
||||
void setShowHidden( bool showHidden );
|
||||
|
||||
protected:
|
||||
|
||||
bool filterAcceptsRow( int sourceRow, const QModelIndex &sourceParent ) const override;
|
||||
@ -53,6 +57,7 @@ class GUI_EXPORT QgsLayerTreeProxyModel : public QSortFilterProxyModel
|
||||
|
||||
QgsLayerTreeModel *mLayerTreeModel = nullptr;
|
||||
QString mFilterText;
|
||||
bool mShowHidden = false;
|
||||
};
|
||||
|
||||
|
||||
@ -289,6 +294,12 @@ class GUI_EXPORT QgsLayerTreeView : public QTreeView
|
||||
*/
|
||||
void setMessageBar( QgsMessageBar *messageBar );
|
||||
|
||||
/**
|
||||
* Set the show hidden layers to \a showHidden
|
||||
* \since QGIS 3.18
|
||||
*/
|
||||
void setShowHidden( bool showHidden );
|
||||
|
||||
signals:
|
||||
//! Emitted when a current layer is changed
|
||||
void currentLayerChanged( QgsMapLayer *layer );
|
||||
@ -345,6 +356,8 @@ class GUI_EXPORT QgsLayerTreeView : public QTreeView
|
||||
|
||||
QgsMessageBar *mMessageBar = nullptr;
|
||||
|
||||
bool mShowHidden = false;
|
||||
|
||||
// friend so it can access viewOptions() method and mLastReleaseMousePos without making them public
|
||||
friend class QgsLayerTreeViewItemDelegate;
|
||||
};
|
||||
|
Loading…
x
Reference in New Issue
Block a user