16
16
#include " qgsvectorlayer.h"
17
17
18
18
#include < QKeyEvent>
19
+ #include < QMessageBox>
19
20
20
-
21
- QgsRendererV2PropertiesDialog::QgsRendererV2PropertiesDialog (QgsVectorLayer* layer, QgsStyleV2* style, bool embedded)
22
- : mLayer(layer), mStyle(style), mActiveWidget(NULL )
21
+ QgsRendererV2PropertiesDialog::QgsRendererV2PropertiesDialog ( QgsVectorLayer* layer, QgsStyleV2* style, bool embedded )
22
+ : mLayer( layer ), mStyle( style ), mActiveWidget( NULL )
23
23
{
24
- setupUi (this );
24
+ setupUi ( this );
25
25
26
26
// can be embedded in vector layer properties
27
- if (embedded)
27
+ if ( embedded )
28
28
{
29
29
buttonBox->hide ();
30
- layout ()->setContentsMargins (0 , 0 , 0 , 0 );
30
+ layout ()->setContentsMargins ( 0 , 0 , 0 , 0 );
31
31
}
32
32
33
- connect (buttonBox, SIGNAL (accepted ()), this , SLOT (onOK ()));
34
- connect (btnSymbolLevels, SIGNAL (clicked ()), this , SLOT (showSymbolLevels ()));
33
+ connect ( buttonBox, SIGNAL ( accepted () ), this , SLOT ( onOK () ) );
34
+ connect ( btnSymbolLevels, SIGNAL ( clicked () ), this , SLOT ( showSymbolLevels () ) );
35
+ connect ( btnOldSymbology, SIGNAL ( clicked () ), this , SLOT ( useOldSymbology () ) );
35
36
36
37
// initialize registry's widget functions
37
38
QgsRendererV2Registry* reg = QgsRendererV2Registry::instance ();
38
- if (reg->rendererMetadata (" singleSymbol" ).widgetFunction () == NULL )
39
+ if ( reg->rendererMetadata ( " singleSymbol" ).widgetFunction () == NULL )
39
40
{
40
- reg->setRendererWidgetFunction (" singleSymbol" , QgsSingleSymbolRendererV2Widget::create);
41
- reg->setRendererWidgetFunction (" categorizedSymbol" , QgsCategorizedSymbolRendererV2Widget::create);
42
- reg->setRendererWidgetFunction (" graduatedSymbol" , QgsGraduatedSymbolRendererV2Widget::create);
41
+ reg->setRendererWidgetFunction ( " singleSymbol" , QgsSingleSymbolRendererV2Widget::create );
42
+ reg->setRendererWidgetFunction ( " categorizedSymbol" , QgsCategorizedSymbolRendererV2Widget::create );
43
+ reg->setRendererWidgetFunction ( " graduatedSymbol" , QgsGraduatedSymbolRendererV2Widget::create );
43
44
}
44
45
45
46
QPixmap pix;
46
47
QStringList renderers = reg->renderersList ();
47
- foreach ( QString name, renderers)
48
+ foreach ( QString name, renderers )
48
49
{
49
- QgsRendererV2Metadata m = reg->rendererMetadata (name);
50
+ QgsRendererV2Metadata m = reg->rendererMetadata ( name );
50
51
51
52
QString iconPath = QgsApplication::defaultThemePath () + m.iconName ();
52
- if (!pix.load (iconPath, " png" ) )
53
+ if ( !pix.load ( iconPath, " png" ) )
53
54
pix = QPixmap ();
54
55
55
- cboRenderers->addItem (QIcon (pix), m.visibleName (), name);
56
+ cboRenderers->addItem ( QIcon ( pix ), m.visibleName (), name );
56
57
}
57
58
58
- cboRenderers->setCurrentIndex (- 1 ); // set no current renderer
59
+ cboRenderers->setCurrentIndex ( - 1 ); // set no current renderer
59
60
60
61
// if the layer doesn't use renderer V2, let's start using it!
61
- if (!mLayer ->isUsingRendererV2 ())
62
+ if ( !mLayer ->isUsingRendererV2 () )
62
63
{
63
- mLayer ->setRendererV2 ( QgsFeatureRendererV2::defaultRenderer (mLayer ->geometryType ()) );
64
- mLayer ->setUsingRendererV2 (true );
64
+ mLayer ->setRendererV2 ( QgsFeatureRendererV2::defaultRenderer ( mLayer ->geometryType () ) );
65
+ mLayer ->setUsingRendererV2 ( true );
65
66
}
66
67
67
68
// setup slot rendererChanged()
68
- connect (cboRenderers, SIGNAL (currentIndexChanged (int ) ), this , SLOT (rendererChanged ()) );
69
+ connect ( cboRenderers, SIGNAL ( currentIndexChanged ( int ) ), this , SLOT ( rendererChanged () ) );
69
70
70
71
// set current renderer from layer
71
72
QString rendererName = mLayer ->rendererV2 ()->type ();
72
- for (int i = 0 ; i < cboRenderers->count (); i++)
73
+ for ( int i = 0 ; i < cboRenderers->count (); i++ )
73
74
{
74
- if (cboRenderers->itemData (i ).toString () == rendererName)
75
+ if ( cboRenderers->itemData ( i ).toString () == rendererName )
75
76
{
76
- cboRenderers->setCurrentIndex (i );
77
+ cboRenderers->setCurrentIndex ( i );
77
78
return ;
78
79
}
79
80
}
@@ -87,47 +88,47 @@ QgsRendererV2PropertiesDialog::QgsRendererV2PropertiesDialog(QgsVectorLayer* lay
87
88
void QgsRendererV2PropertiesDialog::rendererChanged ()
88
89
{
89
90
90
- if (cboRenderers->currentIndex () == -1 )
91
+ if ( cboRenderers->currentIndex () == -1 )
91
92
{
92
- QgsDebugMsg (" No current item -- this should never happen!" );
93
+ QgsDebugMsg ( " No current item -- this should never happen!" );
93
94
return ;
94
95
}
95
96
96
97
QString rendererName = cboRenderers->itemData ( cboRenderers->currentIndex () ).toString ();
97
98
98
99
// get rid of old active widget (if any)
99
- if (mActiveWidget )
100
+ if ( mActiveWidget )
100
101
{
101
102
stackedWidget->removeWidget ( mActiveWidget );
102
103
103
104
delete mActiveWidget ;
104
105
mActiveWidget = NULL ;
105
106
}
106
107
107
- QgsRendererV2Metadata m = QgsRendererV2Registry::instance ()->rendererMetadata (rendererName);
108
+ QgsRendererV2Metadata m = QgsRendererV2Registry::instance ()->rendererMetadata ( rendererName );
108
109
QgsRendererV2WidgetFunc fWidget = m.widgetFunction ();
109
- if (fWidget != NULL )
110
+ if ( fWidget != NULL )
110
111
{
111
112
// instantiate the widget and set as active
112
- mActiveWidget = fWidget (mLayer , mStyle , mLayer ->rendererV2 ()->clone ());
113
- stackedWidget->addWidget (mActiveWidget );
114
- stackedWidget->setCurrentWidget (mActiveWidget );
113
+ mActiveWidget = fWidget ( mLayer , mStyle , mLayer ->rendererV2 ()->clone () );
114
+ stackedWidget->addWidget ( mActiveWidget );
115
+ stackedWidget->setCurrentWidget ( mActiveWidget );
115
116
116
- btnSymbolLevels->setEnabled (true );
117
+ btnSymbolLevels->setEnabled ( true );
117
118
}
118
119
else
119
120
{
120
121
// set default "no edit widget available" page
121
- stackedWidget->setCurrentWidget (pageNoWidget);
122
+ stackedWidget->setCurrentWidget ( pageNoWidget );
122
123
123
- btnSymbolLevels->setEnabled (false );
124
+ btnSymbolLevels->setEnabled ( false );
124
125
}
125
126
126
127
}
127
128
128
129
void QgsRendererV2PropertiesDialog::apply ()
129
130
{
130
- if (mActiveWidget != NULL )
131
+ if ( mActiveWidget != NULL )
131
132
{
132
133
mLayer ->setRendererV2 ( mActiveWidget ->renderer ()->clone () );
133
134
}
@@ -149,22 +150,34 @@ void QgsRendererV2PropertiesDialog::keyPressEvent( QKeyEvent * e )
149
150
}
150
151
else
151
152
{
152
- QDialog::keyPressEvent (e );
153
+ QDialog::keyPressEvent ( e );
153
154
}
154
155
}
155
156
156
157
157
158
void QgsRendererV2PropertiesDialog::showSymbolLevels ()
158
159
{
159
- if (!mActiveWidget )
160
+ if ( !mActiveWidget )
160
161
return ;
161
162
162
163
QgsFeatureRendererV2* r = mActiveWidget ->renderer ();
163
164
QgsSymbolV2List symbols = r->symbols ();
164
165
165
- QgsSymbolLevelsV2Dialog dlg (symbols, r->usingSymbolLevels (), this );
166
- if (dlg.exec ())
166
+ QgsSymbolLevelsV2Dialog dlg ( symbols, r->usingSymbolLevels (), this );
167
+ if ( dlg.exec () )
167
168
{
168
169
r->setUsingSymbolLevels ( dlg.usingLevels () );
169
170
}
170
171
}
172
+
173
+ void QgsRendererV2PropertiesDialog::useOldSymbology ()
174
+ {
175
+ int res = QMessageBox::question ( this , tr ( " Symbology" ),
176
+ tr ( " Do you wish to use original symbology implementation for this layer?" ),
177
+ QMessageBox::Yes | QMessageBox::No );
178
+
179
+ if ( res != QMessageBox::Yes )
180
+ return ;
181
+
182
+ emit useNewSymbology ( false );
183
+ }
0 commit comments