mirror of
https://github.com/qgis/QGIS.git
synced 2025-04-15 00:04:00 -04:00
don't show legend checkbox for geometryless layers
git-svn-id: http://svn.osgeo.org/qgis/trunk@14408 c8812cc2-4d05-0410-92ff-de0c093fc19c
This commit is contained in:
parent
3265dfb482
commit
920305cbbd
@ -57,8 +57,19 @@ QgsLegendLayer::QgsLegendLayer( QgsMapLayer* layer )
|
||||
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 @@ QgsLegendLayer::~QgsLegendLayer()
|
||||
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 );
|
||||
|
@ -73,6 +73,9 @@ class QgsLegendLayer : public QgsLegendItem
|
||||
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*/
|
||||
|
Loading…
x
Reference in New Issue
Block a user