diff --git a/python/core/auto_generated/layertree/qgslayertreemodel.sip.in b/python/core/auto_generated/layertree/qgslayertreemodel.sip.in index 5ff19bf8896..9b03d481877 100644 --- a/python/core/auto_generated/layertree/qgslayertreemodel.sip.in +++ b/python/core/auto_generated/layertree/qgslayertreemodel.sip.in @@ -81,6 +81,7 @@ The root node is not transferred by the model. ShowLegendAsTree, DeferredLegendInvalidation, UseEmbeddedWidgets, + UseTextFormatting, // behavioral flags AllowNodeReorder, diff --git a/src/app/qgisapp.cpp b/src/app/qgisapp.cpp index 397dc7a0f24..9cf2e15e409 100644 --- a/src/app/qgisapp.cpp +++ b/src/app/qgisapp.cpp @@ -3999,6 +3999,7 @@ void QgisApp::initLayerTreeView() model->setFlag( QgsLayerTreeModel::AllowNodeChangeVisibility ); model->setFlag( QgsLayerTreeModel::ShowLegendAsTree ); model->setFlag( QgsLayerTreeModel::UseEmbeddedWidgets ); + model->setFlag( QgsLayerTreeModel::UseTextFormatting ); model->setAutoCollapseLegendNodes( 10 ); mLayerTreeView->setModel( model ); diff --git a/src/core/layertree/qgslayertreemodel.cpp b/src/core/layertree/qgslayertreemodel.cpp index 43ad5d49f90..e02575ab0d7 100644 --- a/src/core/layertree/qgslayertreemodel.cpp +++ b/src/core/layertree/qgslayertreemodel.cpp @@ -230,7 +230,7 @@ QVariant QgsLayerTreeModel::data( const QModelIndex &index, int role ) const icon = QgsLayerItem::iconDefault(); } - if ( vlayer && vlayer->isEditable() ) + if ( vlayer && vlayer->isEditable() && testFlag( UseTextFormatting ) ) { const int iconSize = scaleIconSize( 16 ); QPixmap pixmap( icon.pixmap( iconSize, iconSize ) ); @@ -265,7 +265,7 @@ QVariant QgsLayerTreeModel::data( const QModelIndex &index, int role ) const return nodeGroup->itemVisibilityChecked() ? Qt::Checked : Qt::Unchecked; } } - else if ( role == Qt::FontRole ) + else if ( role == Qt::FontRole && testFlag( UseTextFormatting ) ) { QFont f( QgsLayerTree::isLayer( node ) ? mFontLayer : ( QgsLayerTree::isGroup( node ) ? mFontGroup : QFont() ) ); if ( index == mCurrentIndex ) @@ -280,7 +280,7 @@ QVariant QgsLayerTreeModel::data( const QModelIndex &index, int role ) const } return f; } - else if ( role == Qt::ForegroundRole ) + else if ( role == Qt::ForegroundRole && testFlag( UseTextFormatting ) ) { QBrush brush( qApp->palette().color( QPalette::Text ), Qt::SolidPattern ); if ( QgsLayerTree::isLayer( node ) ) diff --git a/src/core/layertree/qgslayertreemodel.h b/src/core/layertree/qgslayertreemodel.h index 77233c590ca..44080406554 100644 --- a/src/core/layertree/qgslayertreemodel.h +++ b/src/core/layertree/qgslayertreemodel.h @@ -97,6 +97,7 @@ class CORE_EXPORT QgsLayerTreeModel : public QAbstractItemModel ShowLegendAsTree = 0x0004, //!< For legends that support it, will show them in a tree instead of a list (needs also ShowLegend). Added in 2.8 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 // behavioral flags AllowNodeReorder = 0x1000, //!< Allow reordering with drag'n'drop