Skip to content

Commit 36d8d88

Browse files
committedMay 21, 2014
Use Qt::CheckState also for layer node visibility (for consistency)
1 parent 8a539e0 commit 36d8d88

File tree

6 files changed

+19
-18
lines changed

6 files changed

+19
-18
lines changed
 

‎src/app/qgisapp.cpp

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4211,7 +4211,7 @@ void QgisApp::hideAllLayers()
42114211
QgsDebugMsg( "hiding all layers!" );
42124212

42134213
foreach ( QgsLayerTreeLayer* nodeLayer, mLayerTreeView->layerTreeModel()->rootGroup()->findLayers() )
4214-
nodeLayer->setVisible( false );
4214+
nodeLayer->setVisible( Qt::Unchecked );
42154215
}
42164216

42174217

@@ -4221,7 +4221,7 @@ void QgisApp::showAllLayers()
42214221
QgsDebugMsg( "Showing all layers!" );
42224222

42234223
foreach ( QgsLayerTreeLayer* nodeLayer, mLayerTreeView->layerTreeModel()->rootGroup()->findLayers() )
4224-
nodeLayer->setVisible( true );
4224+
nodeLayer->setVisible( Qt::Checked );
42254225
}
42264226

42274227

‎src/core/layertree/qgslayertreegroup.cpp

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -248,7 +248,7 @@ void QgsLayerTreeGroup::setVisible(Qt::CheckState state)
248248
if (QgsLayerTree::isGroup(child))
249249
QgsLayerTree::toGroup(child)->setVisible(mChecked);
250250
else if (QgsLayerTree::isLayer(child))
251-
QgsLayerTree::toLayer(child)->setVisible(mChecked == Qt::Checked);
251+
QgsLayerTree::toLayer(child)->setVisible(mChecked);
252252
}
253253

254254
mChangingChildVisibility = false;
@@ -289,7 +289,7 @@ void QgsLayerTreeGroup::updateVisibilityFromChildren()
289289
{
290290
if (QgsLayerTree::isLayer(child))
291291
{
292-
bool layerVisible = QgsLayerTree::toLayer(child)->isVisible();
292+
bool layerVisible = QgsLayerTree::toLayer(child)->isVisible() == Qt::Checked;
293293
if (layerVisible) hasVisible = true;
294294
if (!layerVisible) hasHidden = true;
295295
}

‎src/core/layertree/qgslayertreelayer.cpp

Lines changed: 8 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,11 @@
11
#include "qgslayertreelayer.h"
22

3+
#include "qgslayertreeutils.h"
34
#include "qgsmaplayerregistry.h"
45

56

67
QgsLayerTreeLayer::QgsLayerTreeLayer(QgsMapLayer *layer)
7-
: QgsLayerTreeNode(NodeLayer), mLayerId(layer->id()), mLayer(layer), mVisible(true)
8+
: QgsLayerTreeNode(NodeLayer), mLayerId(layer->id()), mLayer(layer), mVisible(Qt::Checked)
89
{
910
Q_ASSERT( QgsMapLayerRegistry::instance()->mapLayer(mLayerId) == layer );
1011
}
@@ -14,7 +15,7 @@ QgsLayerTreeLayer::QgsLayerTreeLayer(QString layerId, QString name)
1415
, mLayerId(layerId)
1516
, mLayerName(name)
1617
, mLayer(0)
17-
, mVisible(true)
18+
, mVisible(Qt::Checked)
1819
{
1920
attachToLayer();
2021
}
@@ -47,13 +48,13 @@ void QgsLayerTreeLayer::attachToLayer()
4748
}
4849
}
4950

50-
void QgsLayerTreeLayer::setVisible(bool state)
51+
void QgsLayerTreeLayer::setVisible(Qt::CheckState state)
5152
{
5253
if (mVisible == state)
5354
return;
5455

5556
mVisible = state;
56-
emit visibilityChanged(state ? Qt::Checked : Qt::Unchecked);
57+
emit visibilityChanged(state);
5758
}
5859

5960
QgsLayerTreeLayer* QgsLayerTreeLayer::readXML(QDomElement& element)
@@ -63,7 +64,7 @@ QgsLayerTreeLayer* QgsLayerTreeLayer::readXML(QDomElement& element)
6364

6465
QString layerID = element.attribute("id");
6566
QString layerName = element.attribute("name");
66-
bool visible = element.attribute("visible").toInt();
67+
Qt::CheckState checked = QgsLayerTreeUtils::checkStateFromXml(element.attribute("checked"));
6768
bool isExpanded = (element.attribute("expanded", "1") == "1");
6869

6970
QgsLayerTreeLayer* nodeLayer = 0;
@@ -78,7 +79,7 @@ QgsLayerTreeLayer* QgsLayerTreeLayer::readXML(QDomElement& element)
7879

7980
nodeLayer->readCommonXML(element);
8081

81-
nodeLayer->setVisible(visible);
82+
nodeLayer->setVisible(checked);
8283
nodeLayer->setExpanded(isExpanded);
8384
return nodeLayer;
8485
}
@@ -89,7 +90,7 @@ void QgsLayerTreeLayer::writeXML(QDomElement& parentElement)
8990
QDomElement elem = doc.createElement("layer-tree-layer");
9091
elem.setAttribute("id", mLayerId);
9192
elem.setAttribute("name", layerName());
92-
elem.setAttribute("visible", mVisible ? "1" : "0");
93+
elem.setAttribute("checked", QgsLayerTreeUtils::checkStateToXml(mVisible));
9394
elem.setAttribute("expanded", mExpanded ? "1" : "0");
9495

9596
writeCommonXML(elem);

‎src/core/layertree/qgslayertreelayer.h

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -30,8 +30,8 @@ class QgsLayerTreeLayer : public QgsLayerTreeNode
3030
QString layerName() const { return mLayer ? mLayer->name() : mLayerName; }
3131
void setLayerName(const QString& n) { if (mLayer) mLayer->setLayerName(n); else mLayerName = n; }
3232

33-
bool isVisible() const { return mVisible; }
34-
void setVisible(bool state);
33+
Qt::CheckState isVisible() const { return mVisible; }
34+
void setVisible(Qt::CheckState visible);
3535

3636
static QgsLayerTreeLayer* readXML(QDomElement& element);
3737
virtual void writeXML(QDomElement& parentElement);
@@ -53,7 +53,7 @@ protected slots:
5353
QString mLayerId;
5454
QString mLayerName; // only used if layer does not exist
5555
QgsMapLayer* mLayer; // not owned! may be null
56-
bool mVisible;
56+
Qt::CheckState mVisible;
5757
};
5858

5959

‎src/gui/layertree/qgslayertreemapcanvasbridge.cpp

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -94,7 +94,7 @@ void QgsLayerTreeMapCanvasBridge::setCanvasLayers()
9494
{
9595
QgsLayerTreeLayer* nodeLayer = mRoot->findLayer(layerId);
9696
if (nodeLayer)
97-
layers << QgsMapCanvasLayer(nodeLayer->layer(), nodeLayer->isVisible(), nodeLayer->customProperty("overview", 0).toInt());
97+
layers << QgsMapCanvasLayer(nodeLayer->layer(), nodeLayer->isVisible() == Qt::Checked, nodeLayer->customProperty("overview", 0).toInt());
9898
}
9999
}
100100
else
@@ -110,7 +110,7 @@ void QgsLayerTreeMapCanvasBridge::setCanvasLayers(QgsLayerTreeNode *node, QList<
110110
if (QgsLayerTree::isLayer(node))
111111
{
112112
QgsLayerTreeLayer* nodeLayer = QgsLayerTree::toLayer(node);
113-
layers << QgsMapCanvasLayer(nodeLayer->layer(), nodeLayer->isVisible(), nodeLayer->customProperty("overview", 0).toInt());
113+
layers << QgsMapCanvasLayer(nodeLayer->layer(), nodeLayer->isVisible() == Qt::Checked, nodeLayer->customProperty("overview", 0).toInt());
114114
}
115115

116116
foreach (QgsLayerTreeNode* child, node->children())

‎src/gui/layertree/qgslayertreemodel.cpp

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -212,7 +212,7 @@ QVariant QgsLayerTreeModel::data(const QModelIndex &index, int role) const
212212
if (QgsLayerTree::isLayer(node))
213213
{
214214
QgsLayerTreeLayer* nodeLayer = QgsLayerTree::toLayer(node);
215-
return nodeLayer->isVisible() ? Qt::Checked : Qt::Unchecked;
215+
return nodeLayer->isVisible();
216216
}
217217
else if (QgsLayerTree::isGroup(node))
218218
{
@@ -264,7 +264,7 @@ bool QgsLayerTreeModel::setData(const QModelIndex& index, const QVariant& value,
264264
if (QgsLayerTree::isLayer(node))
265265
{
266266
QgsLayerTreeLayer* layer = QgsLayerTree::toLayer(node);
267-
layer->setVisible(value.toInt() == Qt::Checked);
267+
layer->setVisible((Qt::CheckState)value.toInt());
268268
}
269269
else if (QgsLayerTree::isGroup(node))
270270
{

0 commit comments

Comments
 (0)
Please sign in to comment.