16
16
#include < QStandardItem>
17
17
18
18
19
- QgsRendererV2Widget* QgsCategorizedSymbolRendererV2Widget::create (QgsVectorLayer* layer, QgsStyleV2* style, QgsFeatureRendererV2* renderer)
19
+ QgsRendererV2Widget* QgsCategorizedSymbolRendererV2Widget::create ( QgsVectorLayer* layer, QgsStyleV2* style, QgsFeatureRendererV2* renderer )
20
20
{
21
- return new QgsCategorizedSymbolRendererV2Widget (layer, style, renderer);
21
+ return new QgsCategorizedSymbolRendererV2Widget ( layer, style, renderer );
22
22
}
23
23
24
- QgsCategorizedSymbolRendererV2Widget::QgsCategorizedSymbolRendererV2Widget (QgsVectorLayer* layer, QgsStyleV2* style, QgsFeatureRendererV2* renderer)
25
- : QgsRendererV2Widget(layer, style)
24
+ QgsCategorizedSymbolRendererV2Widget::QgsCategorizedSymbolRendererV2Widget ( QgsVectorLayer* layer, QgsStyleV2* style, QgsFeatureRendererV2* renderer )
25
+ : QgsRendererV2Widget( layer, style )
26
26
{
27
27
28
28
// try to recognize the previous renderer
29
29
// (null renderer means "no previous renderer")
30
- if (!renderer || renderer->type () != " categorizedSymbol" )
30
+ if ( !renderer || renderer->type () != " categorizedSymbol" )
31
31
{
32
32
// we're not going to use it - so let's delete the renderer
33
33
delete renderer;
34
34
35
- mRenderer = new QgsCategorizedSymbolRendererV2 (" " , QgsCategoryList ());
35
+ mRenderer = new QgsCategorizedSymbolRendererV2 ( " " , QgsCategoryList () );
36
36
}
37
37
else
38
38
{
39
- mRenderer = static_cast <QgsCategorizedSymbolRendererV2*>(renderer);
39
+ mRenderer = static_cast <QgsCategorizedSymbolRendererV2*>( renderer );
40
40
}
41
41
42
42
// setup user interface
43
- setupUi (this );
43
+ setupUi ( this );
44
44
45
45
populateColumns ();
46
46
populateColorRamps ();
47
- QStandardItemModel* m = new QStandardItemModel (this );
47
+ QStandardItemModel* m = new QStandardItemModel ( this );
48
48
QStringList labels;
49
49
labels << " Value" << " Label" ;
50
- m->setHorizontalHeaderLabels (labels);
51
- viewCategories->setModel (m );
50
+ m->setHorizontalHeaderLabels ( labels );
51
+ viewCategories->setModel ( m );
52
52
53
- mCategorizedSymbol = QgsSymbolV2::defaultSymbol (mLayer ->geometryType ());
53
+ mCategorizedSymbol = QgsSymbolV2::defaultSymbol ( mLayer ->geometryType () );
54
54
55
- connect (cboCategorizedColumn, SIGNAL (currentIndexChanged (int ) ), this , SLOT (categoryColumnChanged ()) );
55
+ connect ( cboCategorizedColumn, SIGNAL ( currentIndexChanged ( int ) ), this , SLOT ( categoryColumnChanged () ) );
56
56
57
- connect (viewCategories, SIGNAL (doubleClicked (const QModelIndex &) ), this , SLOT (categoriesDoubleClicked (const QModelIndex &)) );
57
+ connect ( viewCategories, SIGNAL ( doubleClicked ( const QModelIndex & ) ), this , SLOT ( categoriesDoubleClicked ( const QModelIndex & ) ) );
58
58
59
- connect (btnChangeCategorizedSymbol, SIGNAL (clicked ()), this , SLOT (changeCategorizedSymbol ()) );
60
- connect (btnAddCategories, SIGNAL (clicked ()), this , SLOT (addCategories ()) );
61
- connect (btnDeleteCategory, SIGNAL (clicked ()), this , SLOT (deleteCategory ()) );
62
- connect (btnDeleteAllCategories, SIGNAL (clicked ()), this , SLOT (deleteAllCategories ()) );
59
+ connect ( btnChangeCategorizedSymbol, SIGNAL ( clicked () ), this , SLOT ( changeCategorizedSymbol () ) );
60
+ connect ( btnAddCategories, SIGNAL ( clicked () ), this , SLOT ( addCategories () ) );
61
+ connect ( btnDeleteCategory, SIGNAL ( clicked () ), this , SLOT ( deleteCategory () ) );
62
+ connect ( btnDeleteAllCategories, SIGNAL ( clicked () ), this , SLOT ( deleteAllCategories () ) );
63
63
64
64
// update GUI from renderer
65
65
updateUiFromRenderer ();
@@ -77,30 +77,30 @@ void QgsCategorizedSymbolRendererV2Widget::updateUiFromRenderer()
77
77
populateCategories ();
78
78
79
79
// set column
80
- disconnect (cboCategorizedColumn, SIGNAL (currentIndexChanged (int ) ), this , SLOT (categoryColumnChanged ()) );
80
+ disconnect ( cboCategorizedColumn, SIGNAL ( currentIndexChanged ( int ) ), this , SLOT ( categoryColumnChanged () ) );
81
81
QString attrName = mRenderer ->classAttribute ();
82
- int idx = cboCategorizedColumn->findText (attrName, Qt::MatchExactly);
83
- cboCategorizedColumn->setCurrentIndex (idx >= 0 ? idx : 0 );
84
- connect (cboCategorizedColumn, SIGNAL (currentIndexChanged (int ) ), this , SLOT (categoryColumnChanged ()) );
82
+ int idx = cboCategorizedColumn->findText ( attrName, Qt::MatchExactly );
83
+ cboCategorizedColumn->setCurrentIndex ( idx >= 0 ? idx : 0 );
84
+ connect ( cboCategorizedColumn, SIGNAL ( currentIndexChanged ( int ) ), this , SLOT ( categoryColumnChanged () ) );
85
85
86
86
// set source symbol
87
- if (mRenderer ->sourceSymbol ())
87
+ if ( mRenderer ->sourceSymbol () )
88
88
{
89
89
delete mCategorizedSymbol ;
90
90
mCategorizedSymbol = mRenderer ->sourceSymbol ()->clone ();
91
91
updateCategorizedSymbolIcon ();
92
92
}
93
93
94
94
// set source color ramp
95
- if (mRenderer ->sourceColorRamp ())
95
+ if ( mRenderer ->sourceColorRamp () )
96
96
{
97
- QSize rampIconSize (50 ,16 );
98
- QIcon icon = QgsSymbolLayerV2Utils::colorRampPreviewIcon (mRenderer ->sourceColorRamp (), rampIconSize);
99
- if (cboCategorizedColorRamp->itemText (0 ) == " [source]" )
100
- cboCategorizedColorRamp->setItemIcon (0 , icon);
97
+ QSize rampIconSize ( 50 , 16 );
98
+ QIcon icon = QgsSymbolLayerV2Utils::colorRampPreviewIcon ( mRenderer ->sourceColorRamp (), rampIconSize );
99
+ if ( cboCategorizedColorRamp->itemText ( 0 ) == " [source]" )
100
+ cboCategorizedColorRamp->setItemIcon ( 0 , icon );
101
101
else
102
- cboCategorizedColorRamp->insertItem (0 , icon, " [source]" );
103
- cboCategorizedColorRamp->setCurrentIndex (0 );
102
+ cboCategorizedColorRamp->insertItem ( 0 , icon, " [source]" );
103
+ cboCategorizedColorRamp->setCurrentIndex ( 0 );
104
104
}
105
105
106
106
}
@@ -112,47 +112,47 @@ QgsFeatureRendererV2* QgsCategorizedSymbolRendererV2Widget::renderer()
112
112
113
113
void QgsCategorizedSymbolRendererV2Widget::changeCategorizedSymbol ()
114
114
{
115
- QgsSymbolV2SelectorDialog dlg (mCategorizedSymbol , mStyle , this );
116
- if (!dlg.exec ())
115
+ QgsSymbolV2SelectorDialog dlg ( mCategorizedSymbol , mStyle , this );
116
+ if ( !dlg.exec () )
117
117
return ;
118
118
119
119
updateCategorizedSymbolIcon ();
120
120
}
121
121
122
122
void QgsCategorizedSymbolRendererV2Widget::updateCategorizedSymbolIcon ()
123
123
{
124
- QIcon icon = QgsSymbolLayerV2Utils::symbolPreviewIcon (mCategorizedSymbol , btnChangeCategorizedSymbol->iconSize ());
125
- btnChangeCategorizedSymbol->setIcon (icon);
124
+ QIcon icon = QgsSymbolLayerV2Utils::symbolPreviewIcon ( mCategorizedSymbol , btnChangeCategorizedSymbol->iconSize () );
125
+ btnChangeCategorizedSymbol->setIcon ( icon );
126
126
}
127
127
128
128
129
129
void QgsCategorizedSymbolRendererV2Widget::populateCategories ()
130
130
{
131
- QStandardItemModel* m = qobject_cast<QStandardItemModel*>(viewCategories->model ());
131
+ QStandardItemModel* m = qobject_cast<QStandardItemModel*>( viewCategories->model () );
132
132
m->clear ();
133
133
134
134
QStringList labels;
135
135
labels << " Value" << " Label" ;
136
- m->setHorizontalHeaderLabels (labels);
136
+ m->setHorizontalHeaderLabels ( labels );
137
137
138
- QSize iconSize (16 ,16 );
138
+ QSize iconSize ( 16 , 16 );
139
139
140
140
int i, count = mRenderer ->categories ().count ();
141
141
142
142
// TODO: sort?? utils.sortVariantList(keys);
143
143
144
- for (i = 0 ; i < count; i++)
144
+ for ( i = 0 ; i < count; i++ )
145
145
{
146
146
const QgsRendererCategoryV2& cat = mRenderer ->categories ()[i];
147
147
QVariant k = cat.value ();
148
148
149
- QIcon icon = QgsSymbolLayerV2Utils::symbolPreviewIcon (cat.symbol (), iconSize);
150
- QStandardItem* item = new QStandardItem (icon, k.toString ());
151
- item->setData (k ); // set attribute value as user role
152
- item->setFlags (Qt::ItemIsSelectable | Qt::ItemIsEnabled);
149
+ QIcon icon = QgsSymbolLayerV2Utils::symbolPreviewIcon ( cat.symbol (), iconSize );
150
+ QStandardItem* item = new QStandardItem ( icon, k.toString () );
151
+ item->setData ( k ); // set attribute value as user role
152
+ item->setFlags ( Qt::ItemIsSelectable | Qt::ItemIsEnabled );
153
153
154
154
QList<QStandardItem *> list;
155
- list << item << new QStandardItem (cat.label ());
155
+ list << item << new QStandardItem ( cat.label () );
156
156
m->appendRow ( list );
157
157
}
158
158
}
@@ -162,23 +162,23 @@ void QgsCategorizedSymbolRendererV2Widget::populateColumns()
162
162
cboCategorizedColumn->clear ();
163
163
const QgsFieldMap& flds = mLayer ->pendingFields ();
164
164
QgsFieldMap::ConstIterator it = flds.begin ();
165
- for ( ; it != flds.end (); ++it)
165
+ for ( ; it != flds.end (); ++it )
166
166
{
167
- cboCategorizedColumn->addItem (it->name ());
167
+ cboCategorizedColumn->addItem ( it->name () );
168
168
}
169
169
}
170
170
171
171
void QgsCategorizedSymbolRendererV2Widget::populateColorRamps ()
172
172
{
173
- QSize rampIconSize (50 ,16 );
174
- cboCategorizedColorRamp->setIconSize (rampIconSize);
173
+ QSize rampIconSize ( 50 , 16 );
174
+ cboCategorizedColorRamp->setIconSize ( rampIconSize );
175
175
176
176
QStringList rampNames = mStyle ->colorRampNames ();
177
- for (QStringList::iterator it = rampNames.begin (); it != rampNames.end (); ++it)
177
+ for ( QStringList::iterator it = rampNames.begin (); it != rampNames.end (); ++it )
178
178
{
179
- QgsVectorColorRampV2* ramp = mStyle ->colorRamp (*it);
180
- QIcon icon = QgsSymbolLayerV2Utils::colorRampPreviewIcon (ramp, rampIconSize);
181
- cboCategorizedColorRamp->addItem (icon, *it);
179
+ QgsVectorColorRampV2* ramp = mStyle ->colorRamp ( *it );
180
+ QIcon icon = QgsSymbolLayerV2Utils::colorRampPreviewIcon ( ramp, rampIconSize );
181
+ cboCategorizedColorRamp->addItem ( icon, *it );
182
182
delete ramp;
183
183
}
184
184
}
@@ -189,75 +189,75 @@ void QgsCategorizedSymbolRendererV2Widget::categoryColumnChanged()
189
189
deleteAllCategories ();
190
190
}
191
191
192
- void QgsCategorizedSymbolRendererV2Widget::categoriesDoubleClicked (const QModelIndex & idx)
192
+ void QgsCategorizedSymbolRendererV2Widget::categoriesDoubleClicked ( const QModelIndex & idx )
193
193
{
194
- if (idx.isValid () && idx.column () == 0 )
194
+ if ( idx.isValid () && idx.column () == 0 )
195
195
changeCategorySymbol ();
196
196
}
197
197
198
198
void QgsCategorizedSymbolRendererV2Widget::changeCategorySymbol ()
199
199
{
200
200
QVariant k = currentCategory ();
201
- if (!k.isValid ())
201
+ if ( !k.isValid () )
202
202
return ;
203
203
204
- int catIdx = mRenderer ->categoryIndexForValue (k );
204
+ int catIdx = mRenderer ->categoryIndexForValue ( k );
205
205
QgsSymbolV2* newSymbol = mRenderer ->categories ()[catIdx].symbol ()->clone ();
206
206
207
- QgsSymbolV2SelectorDialog dlg (newSymbol, mStyle , this );
208
- if (!dlg.exec ())
207
+ QgsSymbolV2SelectorDialog dlg ( newSymbol, mStyle , this );
208
+ if ( !dlg.exec () )
209
209
{
210
210
delete newSymbol;
211
211
return ;
212
212
}
213
213
214
- mRenderer ->updateCategorySymbol (catIdx, newSymbol);
214
+ mRenderer ->updateCategorySymbol ( catIdx, newSymbol );
215
215
216
216
populateCategories ();
217
217
}
218
218
219
219
220
220
221
221
222
- static void _createCategories (QgsCategoryList& cats, QList<QVariant>& values, QgsSymbolV2* symbol, QgsVectorColorRampV2* ramp)
222
+ static void _createCategories ( QgsCategoryList& cats, QList<QVariant>& values, QgsSymbolV2* symbol, QgsVectorColorRampV2* ramp )
223
223
{
224
224
// sort the categories first
225
225
// TODO: sortVariantList(values);
226
226
227
227
int num = values.count ();
228
228
229
- for (int i = 0 ; i < num; i++)
229
+ for ( int i = 0 ; i < num; i++ )
230
230
{
231
231
QVariant value = values[i];
232
- double x = i / (double ) num;
232
+ double x = i / ( double ) num;
233
233
QgsSymbolV2* newSymbol = symbol->clone ();
234
- newSymbol->setColor ( ramp->color (x ) );
234
+ newSymbol->setColor ( ramp->color ( x ) );
235
235
236
- cats.append ( QgsRendererCategoryV2 (value, newSymbol, value.toString ()) );
236
+ cats.append ( QgsRendererCategoryV2 ( value, newSymbol, value.toString () ) );
237
237
}
238
238
239
239
}
240
240
241
241
void QgsCategorizedSymbolRendererV2Widget::addCategories ()
242
242
{
243
243
QString attrName = cboCategorizedColumn->currentText ();
244
- int idx = QgsFeatureRendererV2::fieldNameIndex (mLayer ->pendingFields (), attrName);
244
+ int idx = QgsFeatureRendererV2::fieldNameIndex ( mLayer ->pendingFields (), attrName );
245
245
QList<QVariant> unique_vals;
246
- mLayer ->dataProvider ()->uniqueValues (idx, unique_vals);
246
+ mLayer ->dataProvider ()->uniqueValues ( idx, unique_vals );
247
247
248
248
// DlgAddCategories dlg(mStyle, createDefaultSymbol(), unique_vals, this);
249
249
// if (!dlg.exec())
250
250
// return;
251
251
252
252
QgsVectorColorRampV2* ramp = NULL ;
253
253
QString rampName = cboCategorizedColorRamp->currentText ();
254
- if (rampName == " [source]" )
254
+ if ( rampName == " [source]" )
255
255
ramp = mRenderer ->sourceColorRamp ()->clone ();
256
256
else
257
257
ramp = mStyle ->colorRamp ( rampName );
258
258
259
259
QgsCategoryList cats;
260
- _createCategories (cats, unique_vals, mCategorizedSymbol , ramp );
260
+ _createCategories ( cats, unique_vals, mCategorizedSymbol , ramp );
261
261
262
262
// TODO: if not all categories are desired, delete some!
263
263
/*
@@ -275,47 +275,41 @@ void QgsCategorizedSymbolRendererV2Widget::addCategories()
275
275
276
276
// recreate renderer
277
277
delete mRenderer ;
278
- mRenderer = new QgsCategorizedSymbolRendererV2 (attrName, cats);
279
- mRenderer ->setSourceSymbol (mCategorizedSymbol ->clone ());
280
- mRenderer ->setSourceColorRamp (ramp->clone ());
278
+ mRenderer = new QgsCategorizedSymbolRendererV2 ( attrName, cats );
279
+ mRenderer ->setSourceSymbol ( mCategorizedSymbol ->clone () );
280
+ mRenderer ->setSourceColorRamp ( ramp->clone () );
281
281
282
282
populateCategories ();
283
283
}
284
284
285
285
int QgsCategorizedSymbolRendererV2Widget::currentCategoryRow ()
286
286
{
287
287
QModelIndex idx = viewCategories->selectionModel ()->currentIndex ();
288
- if (!idx.isValid ())
288
+ if ( !idx.isValid () )
289
289
return -1 ;
290
290
return idx.row ();
291
291
}
292
292
293
293
QVariant QgsCategorizedSymbolRendererV2Widget::currentCategory ()
294
294
{
295
295
int row = currentCategoryRow ();
296
- if (row == -1 )
296
+ if ( row == -1 )
297
297
return QVariant ();
298
- QStandardItemModel* m = qobject_cast<QStandardItemModel*>(viewCategories->model ());
299
- return m->item (row)->data ();
298
+ QStandardItemModel* m = qobject_cast<QStandardItemModel*>( viewCategories->model () );
299
+ return m->item ( row )->data ();
300
300
}
301
301
302
302
void QgsCategorizedSymbolRendererV2Widget::deleteCategory ()
303
303
{
304
304
QVariant k = currentCategory ();
305
- if (!k.isValid ())
305
+ if ( !k.isValid () )
306
306
return ;
307
307
308
- const QgsCategoryList& cats = mRenderer ->categories ();
309
- QgsCategoryList::ConstIterator it = cats.begin ();
308
+ int idx = mRenderer ->categoryIndexForValue ( k );
309
+ if ( idx < 0 )
310
+ return ;
310
311
311
- for ( ; it != cats.end (); ++it)
312
- {
313
- if (k.toString () == it->value ().toString ())
314
- {
315
- int idx = mRenderer ->categoryIndexForValue (k);
316
- mRenderer ->deleteCategory (idx);
317
- }
318
- }
312
+ mRenderer ->deleteCategory ( idx );
319
313
320
314
populateCategories ();
321
315
}
0 commit comments