diff --git a/src/gui/symbology-ng/qgscategorizedsymbolrendererv2widget.cpp b/src/gui/symbology-ng/qgscategorizedsymbolrendererv2widget.cpp index aa6b3ed73a7..d6139529d66 100644 --- a/src/gui/symbology-ng/qgscategorizedsymbolrendererv2widget.cpp +++ b/src/gui/symbology-ng/qgscategorizedsymbolrendererv2widget.cpp @@ -430,8 +430,7 @@ QgsCategorizedSymbolRendererV2Widget::QgsCategorizedSymbolRendererV2Widget( QgsV mOldClassificationAttribute = attrName; // setup user interface - setupUi( mWidgetPage ); - QMetaObject::connectSlotsByName( this ); + setupUi( this ); mExpressionWidget->setLayer( mLayer ); @@ -575,7 +574,7 @@ void QgsCategorizedSymbolRendererV2Widget::changeCategorizedSymbol() connect( dlg, SIGNAL( symbolModified() ), container, SLOT( emitWidgetChanged() ) ); connect( container, SIGNAL( widgetChanged( QgsRendererWidgetContainer* ) ), this, SLOT( updateSymbolsFromWidget( QgsRendererWidgetContainer* ) ) ); connect( container, SIGNAL( accepted( QgsRendererWidgetContainer* ) ), this, SLOT( cleanUpSymbolSelector( QgsRendererWidgetContainer* ) ) ); - emit panelOpened( container ); + emit showPanel( container ); } void QgsCategorizedSymbolRendererV2Widget::updateCategorizedSymbolIcon() @@ -621,7 +620,7 @@ void QgsCategorizedSymbolRendererV2Widget::changeCategorySymbol() connect( dlg, SIGNAL( symbolModified() ), container, SLOT( emitWidgetChanged() ) ); connect( container, SIGNAL( widgetChanged( QgsRendererWidgetContainer* ) ), this, SLOT( updateSymbolsFromWidget( QgsRendererWidgetContainer* ) ) ); connect( container, SIGNAL( accepted( QgsRendererWidgetContainer* ) ), this, SLOT( cleanUpSymbolSelector( QgsRendererWidgetContainer* ) ) ); - emit panelOpened( container ); + emit showPanel( container ); } static void _createCategories( QgsCategoryList& cats, QList& values, QgsSymbolV2* symbol ) @@ -1005,7 +1004,6 @@ void QgsCategorizedSymbolRendererV2Widget::cleanUpSymbolSelector( QgsRendererWid void QgsCategorizedSymbolRendererV2Widget::updateSymbolsFromWidget( QgsRendererWidgetContainer* container ) { - QgsDebugMsg( "UPDATE SYMBOL!!!" ); QgsSymbolV2SelectorDialog* dlg = qobject_cast( container->widget() ); delete mCategorizedSymbol; mCategorizedSymbol = dlg->symbol()->clone(); diff --git a/src/gui/symbology-ng/qgsgraduatedsymbolrendererv2widget.cpp b/src/gui/symbology-ng/qgsgraduatedsymbolrendererv2widget.cpp index 35bcd7deada..db0eb388acd 100644 --- a/src/gui/symbology-ng/qgsgraduatedsymbolrendererv2widget.cpp +++ b/src/gui/symbology-ng/qgsgraduatedsymbolrendererv2widget.cpp @@ -433,8 +433,7 @@ QgsGraduatedSymbolRendererV2Widget::QgsGraduatedSymbolRendererV2Widget( QgsVecto } // setup user interface - setupUi( mWidgetPage ); - QMetaObject::connectSlotsByName( this ); + setupUi( this ); mModel = new QgsGraduatedSymbolRendererV2Model( this ); @@ -689,22 +688,17 @@ void QgsGraduatedSymbolRendererV2Widget::refreshRanges( bool reset ) emit widgetChanged(); } -void QgsGraduatedSymbolRendererV2Widget::cleanUpSymbolSelector() +void QgsGraduatedSymbolRendererV2Widget::cleanUpSymbolSelector( QgsRendererWidgetContainer *container ) { - QgsRendererWidgetContainer* container = qobject_cast( this->currentWidget() ); if ( container ) { - this->removeWidget( container ); QgsSymbolV2SelectorDialog* dlg = qobject_cast( container->widget() ); delete dlg->symbol(); - container->deleteLater(); - this->setCurrentIndex( 0 ); } } -void QgsGraduatedSymbolRendererV2Widget::updateSymbolsFromWidget() +void QgsGraduatedSymbolRendererV2Widget::updateSymbolsFromWidget( QgsRendererWidgetContainer *container ) { - QgsRendererWidgetContainer* container = qobject_cast( this->currentWidget() ); QgsSymbolV2SelectorDialog* dlg = qobject_cast( container->widget() ); delete mGraduatedSymbol; mGraduatedSymbol = dlg->symbol()->clone(); @@ -838,9 +832,10 @@ void QgsGraduatedSymbolRendererV2Widget::changeGraduatedSymbol() dlg->setMapCanvas( mMapCanvas ); QgsRendererWidgetContainer* container = new QgsRendererWidgetContainer( dlg, "Select Symbol", nullptr ); - connect( dlg, SIGNAL( symbolModified() ), this, SLOT( updateSymbolsFromWidget() ) ); - connect( container, SIGNAL( accepted() ), this, SLOT( cleanUpSymbolSelector() ) ); - emit panelOpened( container ); + connect( dlg, SIGNAL( symbolModified() ), container, SLOT( emitWidgetChanged() ) ); + connect( container, SIGNAL( widgetChanged( QgsRendererWidgetContainer* ) ), this, SLOT( updateSymbolsFromWidget( QgsRendererWidgetContainer* ) ) ); + connect( container, SIGNAL( accepted( QgsRendererWidgetContainer* ) ), this, SLOT( cleanUpSymbolSelector( QgsRendererWidgetContainer* ) ) ); + emit showPanel( container ); } void QgsGraduatedSymbolRendererV2Widget::updateGraduatedSymbolIcon() @@ -917,9 +912,10 @@ void QgsGraduatedSymbolRendererV2Widget::changeRangeSymbol( int rangeIdx ) dlg->setMapCanvas( mMapCanvas ); QgsRendererWidgetContainer* container = new QgsRendererWidgetContainer( dlg, "Select Symbol", nullptr ); - connect( dlg, SIGNAL( symbolModified() ), this, SLOT( updateSymbolsFromWidget() ) ); - connect( container, SIGNAL( accepted() ), this, SLOT( cleanUpSymbolSelector() ) ); - emit panelOpened( container ); + connect( dlg, SIGNAL( symbolModified() ), container, SLOT( emitWidgetChanged() ) ); + connect( container, SIGNAL( widgetChanged( QgsRendererWidgetContainer* ) ), this, SLOT( updateSymbolsFromWidget( QgsRendererWidgetContainer* ) ) ); + connect( container, SIGNAL( accepted( QgsRendererWidgetContainer* ) ), this, SLOT( cleanUpSymbolSelector( QgsRendererWidgetContainer* ) ) ); + emit showPanel( container ); } void QgsGraduatedSymbolRendererV2Widget::changeRange( int rangeIdx ) diff --git a/src/gui/symbology-ng/qgsgraduatedsymbolrendererv2widget.h b/src/gui/symbology-ng/qgsgraduatedsymbolrendererv2widget.h index 7266bd3e3b9..51d43191cd0 100644 --- a/src/gui/symbology-ng/qgsgraduatedsymbolrendererv2widget.h +++ b/src/gui/symbology-ng/qgsgraduatedsymbolrendererv2widget.h @@ -119,9 +119,8 @@ class GUI_EXPORT QgsGraduatedSymbolRendererV2Widget : public QgsRendererV2Widget void refreshRanges( bool reset = false ); private slots: - - void cleanUpSymbolSelector(); - void updateSymbolsFromWidget(); + void cleanUpSymbolSelector( QgsRendererWidgetContainer* container ); + void updateSymbolsFromWidget( QgsRendererWidgetContainer *container ); protected: void updateUiFromRenderer( bool updateCount = true ); diff --git a/src/gui/symbology-ng/qgsheatmaprendererwidget.cpp b/src/gui/symbology-ng/qgsheatmaprendererwidget.cpp index 896159aa6ec..0b59589adaf 100644 --- a/src/gui/symbology-ng/qgsheatmaprendererwidget.cpp +++ b/src/gui/symbology-ng/qgsheatmaprendererwidget.cpp @@ -73,12 +73,11 @@ QgsHeatmapRendererWidget::QgsHeatmapRendererWidget( QgsVectorLayer* layer, QgsSt QLabel* label = new QLabel( tr( "The heatmap renderer only applies to point and multipoint layers. \n" "'%1' is not a point layer and cannot be rendered as a heatmap." ) .arg( layer->name() ), this ); - mWidgetPage->layout()->addWidget( label ); + layout()->addWidget( label ); return; } - setupUi( mWidgetPage ); - QMetaObject::connectSlotsByName( this ); + setupUi( this ); mRadiusUnitWidget->setUnits( QgsSymbolV2::OutputUnitList() << QgsSymbolV2::MM << QgsSymbolV2::Pixel << QgsSymbolV2::MapUnit ); mWeightExpressionWidget->registerGetExpressionContextCallback( &_getExpressionContext, this ); diff --git a/src/gui/symbology-ng/qgsinvertedpolygonrendererwidget.cpp b/src/gui/symbology-ng/qgsinvertedpolygonrendererwidget.cpp index 6e91661c848..93b470263d7 100644 --- a/src/gui/symbology-ng/qgsinvertedpolygonrendererwidget.cpp +++ b/src/gui/symbology-ng/qgsinvertedpolygonrendererwidget.cpp @@ -46,12 +46,11 @@ QgsInvertedPolygonRendererWidget::QgsInvertedPolygonRendererWidget( QgsVectorLay QLabel* label = new QLabel( tr( "The inverted polygon renderer only applies to polygon and multipolygon layers. \n" "'%1' is not a polygon layer and then cannot be displayed" ) .arg( layer->name() ), this ); - mWidgetPage->setLayout( layout ); + this->setLayout( layout ); layout->addWidget( label ); return; } - setupUi( mWidgetPage ); - QMetaObject::connectSlotsByName( this ); + setupUi( this ); // try to recognize the previous renderer // (null renderer means "no previous renderer") @@ -130,12 +129,12 @@ void QgsInvertedPolygonRendererWidget::on_mRendererComboBox_currentIndexChanged( connect( mEmbeddedRendererWidget.data(), SIGNAL( widgetChanged() ), this, SIGNAL( widgetChanged() ) ); mEmbeddedRendererWidget->setMapCanvas( mMapCanvas ); - if ( mWidgetPage->layout()->count() > 2 ) + if ( layout()->count() > 2 ) { // remove the current renderer widget - mWidgetPage->layout()->takeAt( 2 ); + layout()->takeAt( 2 ); } - mWidgetPage->layout()->addWidget( mEmbeddedRendererWidget.data() ); + layout()->addWidget( mEmbeddedRendererWidget.data() ); } } diff --git a/src/gui/symbology-ng/qgsnullsymbolrendererwidget.cpp b/src/gui/symbology-ng/qgsnullsymbolrendererwidget.cpp index 09b8c3f1145..62f9df1ae44 100644 --- a/src/gui/symbology-ng/qgsnullsymbolrendererwidget.cpp +++ b/src/gui/symbology-ng/qgsnullsymbolrendererwidget.cpp @@ -37,7 +37,7 @@ QgsNullSymbolRendererWidget::QgsNullSymbolRendererWidget( QgsVectorLayer* layer, mRenderer = new QgsNullSymbolRenderer(); } - QGridLayout* layout = new QGridLayout( mWidgetPage ); + QGridLayout* layout = new QGridLayout( this ); QLabel* label = new QLabel( tr( "No symbols will be rendered for features in this layer." ) ); layout->addWidget( label ); } diff --git a/src/gui/symbology-ng/qgspointdisplacementrendererwidget.cpp b/src/gui/symbology-ng/qgspointdisplacementrendererwidget.cpp index 54f81c89fd6..02d4628a583 100644 --- a/src/gui/symbology-ng/qgspointdisplacementrendererwidget.cpp +++ b/src/gui/symbology-ng/qgspointdisplacementrendererwidget.cpp @@ -48,8 +48,7 @@ QgsPointDisplacementRendererWidget::QgsPointDisplacementRendererWidget( QgsVecto setupBlankUi( layer->name() ); return; } - setupUi( mWidgetPage ); - QMetaObject::connectSlotsByName( this ); + setupUi( this ); mDistanceUnitWidget->setUnits( QgsSymbolV2::OutputUnitList() << QgsSymbolV2::MM << QgsSymbolV2::MapUnit << QgsSymbolV2::Pixel ); @@ -384,8 +383,7 @@ void QgsPointDisplacementRendererWidget::updateCenterIcon() void QgsPointDisplacementRendererWidget::setupBlankUi( const QString& layerName ) { QLabel* label = new QLabel( tr( "The point displacement renderer only applies to (single) point layers. \n'%1' is not a point layer and cannot be displayed by the point displacement renderer" ).arg( layerName ), this ); - QVBoxLayout* layout = new QVBoxLayout; + QVBoxLayout* layout = new QVBoxLayout( this ); layout->setContentsMargins( 0, 0, 0, 0 ); - mWidgetPage->setLayout( layout ); - mWidgetPage->layout()->addWidget( label ); + layout->addWidget( label ); } diff --git a/src/gui/symbology-ng/qgsrendererv2propertiesdialog.cpp b/src/gui/symbology-ng/qgsrendererv2propertiesdialog.cpp index d68719b3afe..dd7859c85c8 100644 --- a/src/gui/symbology-ng/qgsrendererv2propertiesdialog.cpp +++ b/src/gui/symbology-ng/qgsrendererv2propertiesdialog.cpp @@ -245,7 +245,7 @@ void QgsRendererV2PropertiesDialog::rendererChanged() connect( mActiveWidget, SIGNAL( layerVariablesChanged() ), this, SIGNAL( layerVariablesChanged() ) ); } connect( mActiveWidget, SIGNAL( widgetChanged() ), this, SIGNAL( widgetChanged() ) ); - connect( mActiveWidget, SIGNAL( panelOpened( QgsRendererWidgetContainer* ) ), this, SLOT( showPanel( QgsRendererWidgetContainer* ) ) ); + connect( mActiveWidget, SIGNAL( showPanel( QgsRendererWidgetContainer* ) ), this, SLOT( showPanel( QgsRendererWidgetContainer* ) ) ); } else { diff --git a/src/gui/symbology-ng/qgsrendererv2widget.cpp b/src/gui/symbology-ng/qgsrendererv2widget.cpp index f258dabb059..48d5c3330ee 100644 --- a/src/gui/symbology-ng/qgsrendererv2widget.cpp +++ b/src/gui/symbology-ng/qgsrendererv2widget.cpp @@ -25,14 +25,11 @@ #include QgsRendererV2Widget::QgsRendererV2Widget( QgsVectorLayer* layer, QgsStyleV2* style ) - : QStackedWidget() + : QWidget() , mLayer( layer ) , mStyle( style ) , mMapCanvas( nullptr ) { - mWidgetPage = new QWidget(); - this->addWidget( mWidgetPage ); - contextMenu = new QMenu( tr( "Renderer Options" ), this ); mCopyAction = contextMenu->addAction( tr( "Copy" ), this, SLOT( copy() ) ); diff --git a/src/gui/symbology-ng/qgsrendererv2widget.h b/src/gui/symbology-ng/qgsrendererv2widget.h index 3ee5a009ccb..8d2761810d9 100644 --- a/src/gui/symbology-ng/qgsrendererv2widget.h +++ b/src/gui/symbology-ng/qgsrendererv2widget.h @@ -39,7 +39,7 @@ WORKFLOW: - on any change of renderer type, create some default (dummy?) version and change the stacked widget - when clicked ok/apply, get the renderer from active widget and clone it for the layer */ -class GUI_EXPORT QgsRendererV2Widget : public QStackedWidget +class GUI_EXPORT QgsRendererV2Widget : public QWidget { Q_OBJECT public: @@ -97,10 +97,9 @@ class GUI_EXPORT QgsRendererV2Widget : public QStackedWidget * The renderer can open inline sub panels instead of dialogs. * @param opened True of the a sub panel is opened. */ - void panelOpened( QgsRendererWidgetContainer* widget ); + void showPanel( QgsRendererWidgetContainer* widget ); protected: - QWidget* mWidgetPage; QgsVectorLayer* mLayer; QgsStyleV2* mStyle; QMenu* contextMenu; diff --git a/src/gui/symbology-ng/qgsrulebasedrendererv2widget.cpp b/src/gui/symbology-ng/qgsrulebasedrendererv2widget.cpp index 666b55eec8d..2b9f468221c 100644 --- a/src/gui/symbology-ng/qgsrulebasedrendererv2widget.cpp +++ b/src/gui/symbology-ng/qgsrulebasedrendererv2widget.cpp @@ -63,8 +63,7 @@ QgsRuleBasedRendererV2Widget::QgsRuleBasedRendererV2Widget( QgsVectorLayer* laye mRenderer = new QgsRuleBasedRendererV2( symbol ); } - setupUi( mWidgetPage ); - QMetaObject::connectSlotsByName( this ); + setupUi( this ); mModel = new QgsRuleBasedRendererV2Model( mRenderer ); #ifdef ENABLE_MODELTEST diff --git a/src/gui/symbology-ng/qgssinglesymbolrendererv2widget.cpp b/src/gui/symbology-ng/qgssinglesymbolrendererv2widget.cpp index 120daa3ef87..69700257453 100644 --- a/src/gui/symbology-ng/qgssinglesymbolrendererv2widget.cpp +++ b/src/gui/symbology-ng/qgssinglesymbolrendererv2widget.cpp @@ -54,9 +54,9 @@ QgsSingleSymbolRendererV2Widget::QgsSingleSymbolRendererV2Widget( QgsVectorLayer mSelector = new QgsSymbolV2SelectorDialog( mSingleSymbol, mStyle, mLayer, nullptr, true ); connect( mSelector, SIGNAL( symbolModified() ), this, SLOT( changeSingleSymbol() ) ); - QVBoxLayout* layout = new QVBoxLayout( mWidgetPage ); + QVBoxLayout* layout = new QVBoxLayout( this ); layout->setContentsMargins( 0, 0, 0, 0 ); - mWidgetPage->layout()->addWidget( mSelector ); + layout->addWidget( mSelector ); // advanced actions - data defined rendering QMenu* advMenu = mSelector->advancedMenu();