30
30
#include < QFileDialog>
31
31
#include < QMessageBox>
32
32
#include < QSettings>
33
+ #include < QDebug>
33
34
34
35
35
36
QgsSelectLayerTreeModel::QgsSelectLayerTreeModel ( QgsLayerTreeGroup* rootNode, QObject* parent )
@@ -43,6 +44,12 @@ QgsSelectLayerTreeModel::~QgsSelectLayerTreeModel()
43
44
{
44
45
}
45
46
47
+ int QgsSelectLayerTreeModel::columnCount ( const QModelIndex &parent ) const
48
+ {
49
+ return QgsLayerTreeModel::columnCount ( parent ) + 1 ;
50
+ }
51
+
52
+ /*
46
53
QVariant QgsSelectLayerTreeModel::data( const QModelIndex& index, int role ) const
47
54
{
48
55
if ( role == Qt::CheckStateRole )
@@ -65,7 +72,59 @@ QVariant QgsSelectLayerTreeModel::data( const QModelIndex& index, int role ) con
65
72
}
66
73
return QgsLayerTreeModel::data( index, role );
67
74
}
75
+ */
68
76
77
+ QVariant QgsSelectLayerTreeModel::data ( const QModelIndex &index, int role ) const
78
+ {
79
+ QgsLayerTreeNode *node = index2node ( index );
80
+ if ( index.column () == 0 )
81
+ {
82
+ if ( role == Qt::CheckStateRole )
83
+ {
84
+ if ( QgsLayerTree::isLayer ( node ) )
85
+ {
86
+ QgsLayerTreeLayer *nodeLayer = QgsLayerTree::toLayer ( node );
87
+ return nodeLayer->isVisible ();
88
+ }
89
+ else if ( QgsLayerTree::isGroup ( node ) )
90
+ {
91
+ QgsLayerTreeGroup *nodeGroup = QgsLayerTree::toGroup ( node );
92
+ return nodeGroup->isVisible ();
93
+ }
94
+ else
95
+ {
96
+ return QVariant ();
97
+ }
98
+ }
99
+ }
100
+ else
101
+ {
102
+ if ( QgsLayerTree::isLayer ( node ) && index.column () > 0 )
103
+ {
104
+ QgsLayerTreeLayer *nodeLayer = QgsLayerTree::toLayer ( node );
105
+ QgsVectorLayer *vlayer = qobject_cast<QgsVectorLayer *>( nodeLayer->layer () );
106
+ if ( vlayer && vlayer->dataProvider ()->name () == QLatin1String ( " WFS" ) )
107
+ {
108
+ switch ( role )
109
+ {
110
+ case Qt::ToolTipRole:
111
+ return tr ( " The source of this layer is a <b>WFS</b> server.<br>"
112
+ " Some WFS layers are not suitable for offline<br>"
113
+ " editing due to unstable primary keys<br>"
114
+ " please check with your system administrator<br>"
115
+ " if this WFS layer can be used for offline<br>"
116
+ " editing." );
117
+ break ;
118
+ case Qt::DecorationRole:
119
+ return QgsApplication::getThemeIcon ( " /mIconWarning.svg" );
120
+ break ;
121
+ }
122
+ }
123
+ }
124
+ return QVariant ();
125
+ }
126
+ return QgsLayerTreeModel::data ( index, role );
127
+ }
69
128
70
129
QgsOfflineEditingPluginGui::QgsOfflineEditingPluginGui ( QWidget* parent, Qt::WindowFlags fl )
71
130
: QDialog( parent, fl )
@@ -80,6 +139,7 @@ QgsOfflineEditingPluginGui::QgsOfflineEditingPluginGui( QWidget* parent, Qt::Win
80
139
QgsLayerTreeGroup* rootNode = QgsLayerTree::toGroup ( QgsProject::instance ()->layerTreeRoot ()->clone () );
81
140
QgsLayerTreeModel* treeModel = new QgsSelectLayerTreeModel ( rootNode, this );
82
141
mLayerTree ->setModel ( treeModel );
142
+ mLayerTree ->header ()->setResizeMode ( QHeaderView::ResizeToContents );
83
143
84
144
connect ( mSelectAllButton , SIGNAL ( clicked () ), this , SLOT ( selectAll () ) );
85
145
connect ( mUnselectAllButton , SIGNAL ( clicked () ), this , SLOT ( unSelectAll () ) );
0 commit comments