diff --git a/python/gui/symbology-ng-gui.sip b/python/gui/symbology-ng-gui.sip index 6dcfe0301c9..5b4861fe30f 100644 --- a/python/gui/symbology-ng-gui.sip +++ b/python/gui/symbology-ng-gui.sip @@ -42,8 +42,6 @@ public slots: void apply(); void onOK(); - void showSymbolLevels(); - protected: //! Reimplements dialog keyPress event so we can ignore it diff --git a/src/gui/symbology-ng/qgscategorizedsymbolrendererv2widget.cpp b/src/gui/symbology-ng/qgscategorizedsymbolrendererv2widget.cpp index af3702f9d0c..5ee7dc809d5 100644 --- a/src/gui/symbology-ng/qgscategorizedsymbolrendererv2widget.cpp +++ b/src/gui/symbology-ng/qgscategorizedsymbolrendererv2widget.cpp @@ -74,6 +74,9 @@ QgsCategorizedSymbolRendererV2Widget::QgsCategorizedSymbolRendererV2Widget( QgsV // menus for data-defined rotation/size QMenu* advMenu = new QMenu; + + advMenu->addAction( tr( "Symbol levels..." ), this, SLOT( showSymbolLevels() ) ); + mDataDefinedMenus = new QgsRendererV2DataDefinedMenus( advMenu, mLayer->pendingFields(), mRenderer->rotationField(), mRenderer->sizeScaleField() ); connect( mDataDefinedMenus, SIGNAL( rotationFieldChanged( QString ) ), this, SLOT( rotationFieldChanged( QString ) ) ); @@ -429,3 +432,8 @@ QList QgsCategorizedSymbolRendererV2Widget::selectedSymbols() } return selectedSymbols; } + +void QgsCategorizedSymbolRendererV2Widget::showSymbolLevels() +{ + showSymbolLevelsDialog( mRenderer ); +} diff --git a/src/gui/symbology-ng/qgscategorizedsymbolrendererv2widget.h b/src/gui/symbology-ng/qgscategorizedsymbolrendererv2widget.h index 94ac4fa0e40..6aa5d5b11e7 100644 --- a/src/gui/symbology-ng/qgscategorizedsymbolrendererv2widget.h +++ b/src/gui/symbology-ng/qgscategorizedsymbolrendererv2widget.h @@ -35,6 +35,8 @@ class GUI_EXPORT QgsCategorizedSymbolRendererV2Widget : public QgsRendererV2Widg void rotationFieldChanged( QString fldName ); void sizeScaleFieldChanged( QString fldName ); + void showSymbolLevels(); + protected: void updateUiFromRenderer(); diff --git a/src/gui/symbology-ng/qgsgraduatedsymbolrendererv2widget.cpp b/src/gui/symbology-ng/qgsgraduatedsymbolrendererv2widget.cpp index 5a79b06eef4..1a266e2031f 100644 --- a/src/gui/symbology-ng/qgsgraduatedsymbolrendererv2widget.cpp +++ b/src/gui/symbology-ng/qgsgraduatedsymbolrendererv2widget.cpp @@ -72,6 +72,9 @@ QgsGraduatedSymbolRendererV2Widget::QgsGraduatedSymbolRendererV2Widget( QgsVecto // menus for data-defined rotation/size QMenu* advMenu = new QMenu; + + advMenu->addAction( tr( "Symbol levels..." ), this, SLOT( showSymbolLevels() ) ); + mDataDefinedMenus = new QgsRendererV2DataDefinedMenus( advMenu, mLayer->pendingFields(), mRenderer->rotationField(), mRenderer->sizeScaleField() ); connect( mDataDefinedMenus, SIGNAL( rotationFieldChanged( QString ) ), this, SLOT( rotationFieldChanged( QString ) ) ); @@ -391,4 +394,7 @@ void QgsGraduatedSymbolRendererV2Widget::refreshSymbolView() populateRanges(); } - +void QgsGraduatedSymbolRendererV2Widget::showSymbolLevels() +{ + showSymbolLevelsDialog( mRenderer ); +} diff --git a/src/gui/symbology-ng/qgsgraduatedsymbolrendererv2widget.h b/src/gui/symbology-ng/qgsgraduatedsymbolrendererv2widget.h index 911e8c8ab97..f247eb9de47 100644 --- a/src/gui/symbology-ng/qgsgraduatedsymbolrendererv2widget.h +++ b/src/gui/symbology-ng/qgsgraduatedsymbolrendererv2widget.h @@ -36,6 +36,8 @@ class GUI_EXPORT QgsGraduatedSymbolRendererV2Widget : public QgsRendererV2Widget void rotationFieldChanged( QString fldName ); void sizeScaleFieldChanged( QString fldName ); + void showSymbolLevels(); + protected: void updateUiFromRenderer(); diff --git a/src/gui/symbology-ng/qgsrendererv2propertiesdialog.cpp b/src/gui/symbology-ng/qgsrendererv2propertiesdialog.cpp index 4ff1f24adfd..c7aa835014e 100644 --- a/src/gui/symbology-ng/qgsrendererv2propertiesdialog.cpp +++ b/src/gui/symbology-ng/qgsrendererv2propertiesdialog.cpp @@ -11,8 +11,6 @@ #include "qgsrulebasedrendererv2widget.h" #include "qgspointdisplacementrendererwidget.h" -#include "qgssymbollevelsv2dialog.h" - #include "qgsapplication.h" #include "qgslogger.h" #include "qgsvectorlayer.h" @@ -71,7 +69,6 @@ QgsRendererV2PropertiesDialog::QgsRendererV2PropertiesDialog( QgsVectorLayer* la } connect( buttonBox, SIGNAL( accepted() ), this, SLOT( onOK() ) ); - connect( btnSymbolLevels, SIGNAL( clicked() ), this, SLOT( showSymbolLevels() ) ); connect( btnOldSymbology, SIGNAL( clicked() ), this, SLOT( useOldSymbology() ) ); // initialize registry's widget functions @@ -146,15 +143,11 @@ void QgsRendererV2PropertiesDialog::rendererChanged() mActiveWidget = w; stackedWidget->addWidget( mActiveWidget ); stackedWidget->setCurrentWidget( mActiveWidget ); - - btnSymbolLevels->setEnabled( true ); } else { // set default "no edit widget available" page stackedWidget->setCurrentWidget( pageNoWidget ); - - btnSymbolLevels->setEnabled( false ); } } @@ -194,21 +187,6 @@ void QgsRendererV2PropertiesDialog::keyPressEvent( QKeyEvent * e ) } -void QgsRendererV2PropertiesDialog::showSymbolLevels() -{ - if ( !mActiveWidget ) - return; - - QgsFeatureRendererV2* r = mActiveWidget->renderer(); - QgsSymbolV2List symbols = r->symbols(); - - QgsSymbolLevelsV2Dialog dlg( symbols, r->usingSymbolLevels(), this ); - - if ( dlg.exec() ) - { - r->setUsingSymbolLevels( dlg.usingLevels() ); - } -} void QgsRendererV2PropertiesDialog::useOldSymbology() diff --git a/src/gui/symbology-ng/qgsrendererv2propertiesdialog.h b/src/gui/symbology-ng/qgsrendererv2propertiesdialog.h index 4e1b8b1ccf4..d2e224c5d52 100644 --- a/src/gui/symbology-ng/qgsrendererv2propertiesdialog.h +++ b/src/gui/symbology-ng/qgsrendererv2propertiesdialog.h @@ -28,8 +28,6 @@ class GUI_EXPORT QgsRendererV2PropertiesDialog : public QDialog, private Ui::Qgs void apply(); void onOK(); - void showSymbolLevels(); - void useOldSymbology(); signals: diff --git a/src/gui/symbology-ng/qgsrendererv2widget.cpp b/src/gui/symbology-ng/qgsrendererv2widget.cpp index 5522662961a..5832c950d46 100644 --- a/src/gui/symbology-ng/qgsrendererv2widget.cpp +++ b/src/gui/symbology-ng/qgsrendererv2widget.cpp @@ -5,6 +5,8 @@ #include #include +#include "qgssymbollevelsv2dialog.h" + QgsRendererV2Widget::QgsRendererV2Widget( QgsVectorLayer* layer, QgsStyleV2* style ) : QWidget(), mLayer( layer ), mStyle( style ) @@ -137,6 +139,17 @@ void QgsRendererV2Widget::changeSymbolSize() } } +void QgsRendererV2Widget::showSymbolLevelsDialog( QgsFeatureRendererV2* r ) +{ + QgsSymbolV2List symbols = r->symbols(); + + QgsSymbolLevelsV2Dialog dlg( symbols, r->usingSymbolLevels(), this ); + + if ( dlg.exec() ) + { + r->setUsingSymbolLevels( dlg.usingLevels() ); + } +} //////////// diff --git a/src/gui/symbology-ng/qgsrendererv2widget.h b/src/gui/symbology-ng/qgsrendererv2widget.h index 2429c7ede22..39524c41a12 100644 --- a/src/gui/symbology-ng/qgsrendererv2widget.h +++ b/src/gui/symbology-ng/qgsrendererv2widget.h @@ -31,6 +31,9 @@ class GUI_EXPORT QgsRendererV2Widget : public QWidget //! return pointer to the renderer (no transfer of ownership) virtual QgsFeatureRendererV2* renderer() = 0; + //! show a dialog with renderer's symbol level settings + void showSymbolLevelsDialog( QgsFeatureRendererV2* r ); + protected: QgsVectorLayer* mLayer; QgsStyleV2* mStyle; diff --git a/src/gui/symbology-ng/qgssinglesymbolrendererv2widget.cpp b/src/gui/symbology-ng/qgssinglesymbolrendererv2widget.cpp index 0b536f4bd6b..3249473c7d0 100644 --- a/src/gui/symbology-ng/qgssinglesymbolrendererv2widget.cpp +++ b/src/gui/symbology-ng/qgssinglesymbolrendererv2widget.cpp @@ -49,6 +49,8 @@ QgsSingleSymbolRendererV2Widget::QgsSingleSymbolRendererV2Widget( QgsVectorLayer // advanced actions - data defined rendering QMenu* advMenu = mSelector->advancedMenu(); + advMenu->addAction( tr( "Symbol levels..." ), this, SLOT( showSymbolLevels() ) ); + mDataDefinedMenus = new QgsRendererV2DataDefinedMenus( advMenu, mLayer->pendingFields(), mRenderer->rotationField(), mRenderer->sizeScaleField() ); connect( mDataDefinedMenus, SIGNAL( rotationFieldChanged( QString ) ), this, SLOT( rotationFieldChanged( QString ) ) ); @@ -85,3 +87,8 @@ void QgsSingleSymbolRendererV2Widget::sizeScaleFieldChanged( QString fldName ) { mRenderer->setSizeScaleField( fldName ); } + +void QgsSingleSymbolRendererV2Widget::showSymbolLevels() +{ + showSymbolLevelsDialog( mRenderer ); +} diff --git a/src/gui/symbology-ng/qgssinglesymbolrendererv2widget.h b/src/gui/symbology-ng/qgssinglesymbolrendererv2widget.h index e3de8fc5966..ff1b021772a 100644 --- a/src/gui/symbology-ng/qgssinglesymbolrendererv2widget.h +++ b/src/gui/symbology-ng/qgssinglesymbolrendererv2widget.h @@ -27,6 +27,8 @@ class GUI_EXPORT QgsSingleSymbolRendererV2Widget : public QgsRendererV2Widget void rotationFieldChanged( QString fldName ); void sizeScaleFieldChanged( QString fldName ); + void showSymbolLevels(); + protected: QgsSingleSymbolRendererV2* mRenderer; diff --git a/src/ui/qgsrendererv2propsdialogbase.ui b/src/ui/qgsrendererv2propsdialogbase.ui index 574cd2f0ec5..b695f24dd3b 100644 --- a/src/ui/qgsrendererv2propsdialogbase.ui +++ b/src/ui/qgsrendererv2propsdialogbase.ui @@ -32,13 +32,6 @@ - - - - Symbol levels - - - @@ -86,7 +79,6 @@ cboRenderers - btnSymbolLevels buttonBox