[QGIS Commit] r14408 - trunk/qgis/src/app/legend
svn_qgis at osgeo.org
svn_qgis at osgeo.org
Mon Oct 18 18:23:03 EDT 2010
Author: jef
Date: 2010-10-18 15:23:03 -0700 (Mon, 18 Oct 2010)
New Revision: 14408
Modified:
trunk/qgis/src/app/legend/qgslegendlayer.cpp
trunk/qgis/src/app/legend/qgslegendlayer.h
Log:
don't show legend checkbox for geometryless layers
Modified: trunk/qgis/src/app/legend/qgslegendlayer.cpp
===================================================================
--- trunk/qgis/src/app/legend/qgslegendlayer.cpp 2010-10-18 21:29:56 UTC (rev 14407)
+++ trunk/qgis/src/app/legend/qgslegendlayer.cpp 2010-10-18 22:23:03 UTC (rev 14408)
@@ -57,8 +57,19 @@
mLyr( layer )
{
mType = LEGEND_LAYER;
- setFlags( Qt::ItemIsEditable | Qt::ItemIsUserCheckable | Qt::ItemIsEnabled | Qt::ItemIsSelectable );
+
+ Qt::ItemFlags flags = Qt::ItemIsEditable | Qt::ItemIsEnabled | Qt::ItemIsSelectable;
+
+ QgsVectorLayer *vlayer = qobject_cast<QgsVectorLayer *>( layer );
+ if( !vlayer || vlayer->geometryType() != QGis::NoGeometry )
+ {
+ flags |= Qt::ItemIsUserCheckable;
+ }
+
+ setFlags( flags );
+
setCheckState( 0, Qt::Checked );
+
setText( 0, layer->name() );
setupFont();
@@ -92,6 +103,14 @@
mType = LEGEND_LAYER;
}
+void QgsLegendLayer::setCheckState( int column, Qt::CheckState state )
+{
+ if( flags() & Qt::ItemIsUserCheckable )
+ {
+ QTreeWidgetItem::setCheckState( column, state );
+ }
+}
+
void QgsLegendLayer::setupFont() //private method
{
QFont myFont = font( 0 );
Modified: trunk/qgis/src/app/legend/qgslegendlayer.h
===================================================================
--- trunk/qgis/src/app/legend/qgslegendlayer.h 2010-10-18 21:29:56 UTC (rev 14407)
+++ trunk/qgis/src/app/legend/qgslegendlayer.h 2010-10-18 22:23:03 UTC (rev 14408)
@@ -73,6 +73,9 @@
the name can be passed to the constructor of QgsLegendLayer*/
static QString nameFromLayer( QgsMapLayer* layer );
+ /** set check state, but only if user checkable */
+ void setCheckState( int column, Qt::CheckState state );
+
public slots:
/**Toggle show in overview*/
More information about the QGIS-commit
mailing list