[styledock] Swap rendererv2 widget back to qwidget

This commit is contained in:
Nathan 2016-06-06 09:08:49 +10:00 committed by Nathan Woodrow
parent 91cd68ea80
commit ad5f970a2b
12 changed files with 34 additions and 50 deletions

View File

@ -430,8 +430,7 @@ QgsCategorizedSymbolRendererV2Widget::QgsCategorizedSymbolRendererV2Widget( QgsV
mOldClassificationAttribute = attrName; mOldClassificationAttribute = attrName;
// setup user interface // setup user interface
setupUi( mWidgetPage ); setupUi( this );
QMetaObject::connectSlotsByName( this );
mExpressionWidget->setLayer( mLayer ); mExpressionWidget->setLayer( mLayer );
@ -575,7 +574,7 @@ void QgsCategorizedSymbolRendererV2Widget::changeCategorizedSymbol()
connect( dlg, SIGNAL( symbolModified() ), container, SLOT( emitWidgetChanged() ) ); connect( dlg, SIGNAL( symbolModified() ), container, SLOT( emitWidgetChanged() ) );
connect( container, SIGNAL( widgetChanged( QgsRendererWidgetContainer* ) ), this, SLOT( updateSymbolsFromWidget( QgsRendererWidgetContainer* ) ) ); connect( container, SIGNAL( widgetChanged( QgsRendererWidgetContainer* ) ), this, SLOT( updateSymbolsFromWidget( QgsRendererWidgetContainer* ) ) );
connect( container, SIGNAL( accepted( QgsRendererWidgetContainer* ) ), this, SLOT( cleanUpSymbolSelector( QgsRendererWidgetContainer* ) ) ); connect( container, SIGNAL( accepted( QgsRendererWidgetContainer* ) ), this, SLOT( cleanUpSymbolSelector( QgsRendererWidgetContainer* ) ) );
emit panelOpened( container ); emit showPanel( container );
} }
void QgsCategorizedSymbolRendererV2Widget::updateCategorizedSymbolIcon() void QgsCategorizedSymbolRendererV2Widget::updateCategorizedSymbolIcon()
@ -621,7 +620,7 @@ void QgsCategorizedSymbolRendererV2Widget::changeCategorySymbol()
connect( dlg, SIGNAL( symbolModified() ), container, SLOT( emitWidgetChanged() ) ); connect( dlg, SIGNAL( symbolModified() ), container, SLOT( emitWidgetChanged() ) );
connect( container, SIGNAL( widgetChanged( QgsRendererWidgetContainer* ) ), this, SLOT( updateSymbolsFromWidget( QgsRendererWidgetContainer* ) ) ); connect( container, SIGNAL( widgetChanged( QgsRendererWidgetContainer* ) ), this, SLOT( updateSymbolsFromWidget( QgsRendererWidgetContainer* ) ) );
connect( container, SIGNAL( accepted( QgsRendererWidgetContainer* ) ), this, SLOT( cleanUpSymbolSelector( QgsRendererWidgetContainer* ) ) ); connect( container, SIGNAL( accepted( QgsRendererWidgetContainer* ) ), this, SLOT( cleanUpSymbolSelector( QgsRendererWidgetContainer* ) ) );
emit panelOpened( container ); emit showPanel( container );
} }
static void _createCategories( QgsCategoryList& cats, QList<QVariant>& values, QgsSymbolV2* symbol ) static void _createCategories( QgsCategoryList& cats, QList<QVariant>& values, QgsSymbolV2* symbol )
@ -1005,7 +1004,6 @@ void QgsCategorizedSymbolRendererV2Widget::cleanUpSymbolSelector( QgsRendererWid
void QgsCategorizedSymbolRendererV2Widget::updateSymbolsFromWidget( QgsRendererWidgetContainer* container ) void QgsCategorizedSymbolRendererV2Widget::updateSymbolsFromWidget( QgsRendererWidgetContainer* container )
{ {
QgsDebugMsg( "UPDATE SYMBOL!!!" );
QgsSymbolV2SelectorDialog* dlg = qobject_cast<QgsSymbolV2SelectorDialog*>( container->widget() ); QgsSymbolV2SelectorDialog* dlg = qobject_cast<QgsSymbolV2SelectorDialog*>( container->widget() );
delete mCategorizedSymbol; delete mCategorizedSymbol;
mCategorizedSymbol = dlg->symbol()->clone(); mCategorizedSymbol = dlg->symbol()->clone();

View File

@ -433,8 +433,7 @@ QgsGraduatedSymbolRendererV2Widget::QgsGraduatedSymbolRendererV2Widget( QgsVecto
} }
// setup user interface // setup user interface
setupUi( mWidgetPage ); setupUi( this );
QMetaObject::connectSlotsByName( this );
mModel = new QgsGraduatedSymbolRendererV2Model( this ); mModel = new QgsGraduatedSymbolRendererV2Model( this );
@ -689,22 +688,17 @@ void QgsGraduatedSymbolRendererV2Widget::refreshRanges( bool reset )
emit widgetChanged(); emit widgetChanged();
} }
void QgsGraduatedSymbolRendererV2Widget::cleanUpSymbolSelector() void QgsGraduatedSymbolRendererV2Widget::cleanUpSymbolSelector( QgsRendererWidgetContainer *container )
{ {
QgsRendererWidgetContainer* container = qobject_cast<QgsRendererWidgetContainer*>( this->currentWidget() );
if ( container ) if ( container )
{ {
this->removeWidget( container );
QgsSymbolV2SelectorDialog* dlg = qobject_cast<QgsSymbolV2SelectorDialog*>( container->widget() ); QgsSymbolV2SelectorDialog* dlg = qobject_cast<QgsSymbolV2SelectorDialog*>( container->widget() );
delete dlg->symbol(); delete dlg->symbol();
container->deleteLater();
this->setCurrentIndex( 0 );
} }
} }
void QgsGraduatedSymbolRendererV2Widget::updateSymbolsFromWidget() void QgsGraduatedSymbolRendererV2Widget::updateSymbolsFromWidget( QgsRendererWidgetContainer *container )
{ {
QgsRendererWidgetContainer* container = qobject_cast<QgsRendererWidgetContainer*>( this->currentWidget() );
QgsSymbolV2SelectorDialog* dlg = qobject_cast<QgsSymbolV2SelectorDialog*>( container->widget() ); QgsSymbolV2SelectorDialog* dlg = qobject_cast<QgsSymbolV2SelectorDialog*>( container->widget() );
delete mGraduatedSymbol; delete mGraduatedSymbol;
mGraduatedSymbol = dlg->symbol()->clone(); mGraduatedSymbol = dlg->symbol()->clone();
@ -838,9 +832,10 @@ void QgsGraduatedSymbolRendererV2Widget::changeGraduatedSymbol()
dlg->setMapCanvas( mMapCanvas ); dlg->setMapCanvas( mMapCanvas );
QgsRendererWidgetContainer* container = new QgsRendererWidgetContainer( dlg, "Select Symbol", nullptr ); QgsRendererWidgetContainer* container = new QgsRendererWidgetContainer( dlg, "Select Symbol", nullptr );
connect( dlg, SIGNAL( symbolModified() ), this, SLOT( updateSymbolsFromWidget() ) ); connect( dlg, SIGNAL( symbolModified() ), container, SLOT( emitWidgetChanged() ) );
connect( container, SIGNAL( accepted() ), this, SLOT( cleanUpSymbolSelector() ) ); connect( container, SIGNAL( widgetChanged( QgsRendererWidgetContainer* ) ), this, SLOT( updateSymbolsFromWidget( QgsRendererWidgetContainer* ) ) );
emit panelOpened( container ); connect( container, SIGNAL( accepted( QgsRendererWidgetContainer* ) ), this, SLOT( cleanUpSymbolSelector( QgsRendererWidgetContainer* ) ) );
emit showPanel( container );
} }
void QgsGraduatedSymbolRendererV2Widget::updateGraduatedSymbolIcon() void QgsGraduatedSymbolRendererV2Widget::updateGraduatedSymbolIcon()
@ -917,9 +912,10 @@ void QgsGraduatedSymbolRendererV2Widget::changeRangeSymbol( int rangeIdx )
dlg->setMapCanvas( mMapCanvas ); dlg->setMapCanvas( mMapCanvas );
QgsRendererWidgetContainer* container = new QgsRendererWidgetContainer( dlg, "Select Symbol", nullptr ); QgsRendererWidgetContainer* container = new QgsRendererWidgetContainer( dlg, "Select Symbol", nullptr );
connect( dlg, SIGNAL( symbolModified() ), this, SLOT( updateSymbolsFromWidget() ) ); connect( dlg, SIGNAL( symbolModified() ), container, SLOT( emitWidgetChanged() ) );
connect( container, SIGNAL( accepted() ), this, SLOT( cleanUpSymbolSelector() ) ); connect( container, SIGNAL( widgetChanged( QgsRendererWidgetContainer* ) ), this, SLOT( updateSymbolsFromWidget( QgsRendererWidgetContainer* ) ) );
emit panelOpened( container ); connect( container, SIGNAL( accepted( QgsRendererWidgetContainer* ) ), this, SLOT( cleanUpSymbolSelector( QgsRendererWidgetContainer* ) ) );
emit showPanel( container );
} }
void QgsGraduatedSymbolRendererV2Widget::changeRange( int rangeIdx ) void QgsGraduatedSymbolRendererV2Widget::changeRange( int rangeIdx )

View File

@ -119,9 +119,8 @@ class GUI_EXPORT QgsGraduatedSymbolRendererV2Widget : public QgsRendererV2Widget
void refreshRanges( bool reset = false ); void refreshRanges( bool reset = false );
private slots: private slots:
void cleanUpSymbolSelector( QgsRendererWidgetContainer* container );
void cleanUpSymbolSelector(); void updateSymbolsFromWidget( QgsRendererWidgetContainer *container );
void updateSymbolsFromWidget();
protected: protected:
void updateUiFromRenderer( bool updateCount = true ); void updateUiFromRenderer( bool updateCount = true );

View File

@ -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" 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." ) "'%1' is not a point layer and cannot be rendered as a heatmap." )
.arg( layer->name() ), this ); .arg( layer->name() ), this );
mWidgetPage->layout()->addWidget( label ); layout()->addWidget( label );
return; return;
} }
setupUi( mWidgetPage ); setupUi( this );
QMetaObject::connectSlotsByName( this );
mRadiusUnitWidget->setUnits( QgsSymbolV2::OutputUnitList() << QgsSymbolV2::MM << QgsSymbolV2::Pixel << QgsSymbolV2::MapUnit ); mRadiusUnitWidget->setUnits( QgsSymbolV2::OutputUnitList() << QgsSymbolV2::MM << QgsSymbolV2::Pixel << QgsSymbolV2::MapUnit );
mWeightExpressionWidget->registerGetExpressionContextCallback( &_getExpressionContext, this ); mWeightExpressionWidget->registerGetExpressionContextCallback( &_getExpressionContext, this );

View File

@ -46,12 +46,11 @@ QgsInvertedPolygonRendererWidget::QgsInvertedPolygonRendererWidget( QgsVectorLay
QLabel* label = new QLabel( tr( "The inverted polygon renderer only applies to polygon and multipolygon layers. \n" 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" ) "'%1' is not a polygon layer and then cannot be displayed" )
.arg( layer->name() ), this ); .arg( layer->name() ), this );
mWidgetPage->setLayout( layout ); this->setLayout( layout );
layout->addWidget( label ); layout->addWidget( label );
return; return;
} }
setupUi( mWidgetPage ); setupUi( this );
QMetaObject::connectSlotsByName( this );
// try to recognize the previous renderer // try to recognize the previous renderer
// (null renderer means "no 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() ) ); connect( mEmbeddedRendererWidget.data(), SIGNAL( widgetChanged() ), this, SIGNAL( widgetChanged() ) );
mEmbeddedRendererWidget->setMapCanvas( mMapCanvas ); mEmbeddedRendererWidget->setMapCanvas( mMapCanvas );
if ( mWidgetPage->layout()->count() > 2 ) if ( layout()->count() > 2 )
{ {
// remove the current renderer widget // remove the current renderer widget
mWidgetPage->layout()->takeAt( 2 ); layout()->takeAt( 2 );
} }
mWidgetPage->layout()->addWidget( mEmbeddedRendererWidget.data() ); layout()->addWidget( mEmbeddedRendererWidget.data() );
} }
} }

View File

@ -37,7 +37,7 @@ QgsNullSymbolRendererWidget::QgsNullSymbolRendererWidget( QgsVectorLayer* layer,
mRenderer = new QgsNullSymbolRenderer(); 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." ) ); QLabel* label = new QLabel( tr( "No symbols will be rendered for features in this layer." ) );
layout->addWidget( label ); layout->addWidget( label );
} }

View File

@ -48,8 +48,7 @@ QgsPointDisplacementRendererWidget::QgsPointDisplacementRendererWidget( QgsVecto
setupBlankUi( layer->name() ); setupBlankUi( layer->name() );
return; return;
} }
setupUi( mWidgetPage ); setupUi( this );
QMetaObject::connectSlotsByName( this );
mDistanceUnitWidget->setUnits( QgsSymbolV2::OutputUnitList() << QgsSymbolV2::MM << QgsSymbolV2::MapUnit << QgsSymbolV2::Pixel ); mDistanceUnitWidget->setUnits( QgsSymbolV2::OutputUnitList() << QgsSymbolV2::MM << QgsSymbolV2::MapUnit << QgsSymbolV2::Pixel );
@ -384,8 +383,7 @@ void QgsPointDisplacementRendererWidget::updateCenterIcon()
void QgsPointDisplacementRendererWidget::setupBlankUi( const QString& layerName ) 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 ); 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 ); layout->setContentsMargins( 0, 0, 0, 0 );
mWidgetPage->setLayout( layout ); layout->addWidget( label );
mWidgetPage->layout()->addWidget( label );
} }

View File

@ -245,7 +245,7 @@ void QgsRendererV2PropertiesDialog::rendererChanged()
connect( mActiveWidget, SIGNAL( layerVariablesChanged() ), this, SIGNAL( layerVariablesChanged() ) ); connect( mActiveWidget, SIGNAL( layerVariablesChanged() ), this, SIGNAL( layerVariablesChanged() ) );
} }
connect( mActiveWidget, SIGNAL( widgetChanged() ), this, SIGNAL( widgetChanged() ) ); 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 else
{ {

View File

@ -25,14 +25,11 @@
#include <QMenu> #include <QMenu>
QgsRendererV2Widget::QgsRendererV2Widget( QgsVectorLayer* layer, QgsStyleV2* style ) QgsRendererV2Widget::QgsRendererV2Widget( QgsVectorLayer* layer, QgsStyleV2* style )
: QStackedWidget() : QWidget()
, mLayer( layer ) , mLayer( layer )
, mStyle( style ) , mStyle( style )
, mMapCanvas( nullptr ) , mMapCanvas( nullptr )
{ {
mWidgetPage = new QWidget();
this->addWidget( mWidgetPage );
contextMenu = new QMenu( tr( "Renderer Options" ), this ); contextMenu = new QMenu( tr( "Renderer Options" ), this );
mCopyAction = contextMenu->addAction( tr( "Copy" ), this, SLOT( copy() ) ); mCopyAction = contextMenu->addAction( tr( "Copy" ), this, SLOT( copy() ) );

View File

@ -39,7 +39,7 @@ WORKFLOW:
- on any change of renderer type, create some default (dummy?) version and change the stacked widget - 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 - 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 Q_OBJECT
public: public:
@ -97,10 +97,9 @@ class GUI_EXPORT QgsRendererV2Widget : public QStackedWidget
* The renderer can open inline sub panels instead of dialogs. * The renderer can open inline sub panels instead of dialogs.
* @param opened True of the a sub panel is opened. * @param opened True of the a sub panel is opened.
*/ */
void panelOpened( QgsRendererWidgetContainer* widget ); void showPanel( QgsRendererWidgetContainer* widget );
protected: protected:
QWidget* mWidgetPage;
QgsVectorLayer* mLayer; QgsVectorLayer* mLayer;
QgsStyleV2* mStyle; QgsStyleV2* mStyle;
QMenu* contextMenu; QMenu* contextMenu;

View File

@ -63,8 +63,7 @@ QgsRuleBasedRendererV2Widget::QgsRuleBasedRendererV2Widget( QgsVectorLayer* laye
mRenderer = new QgsRuleBasedRendererV2( symbol ); mRenderer = new QgsRuleBasedRendererV2( symbol );
} }
setupUi( mWidgetPage ); setupUi( this );
QMetaObject::connectSlotsByName( this );
mModel = new QgsRuleBasedRendererV2Model( mRenderer ); mModel = new QgsRuleBasedRendererV2Model( mRenderer );
#ifdef ENABLE_MODELTEST #ifdef ENABLE_MODELTEST

View File

@ -54,9 +54,9 @@ QgsSingleSymbolRendererV2Widget::QgsSingleSymbolRendererV2Widget( QgsVectorLayer
mSelector = new QgsSymbolV2SelectorDialog( mSingleSymbol, mStyle, mLayer, nullptr, true ); mSelector = new QgsSymbolV2SelectorDialog( mSingleSymbol, mStyle, mLayer, nullptr, true );
connect( mSelector, SIGNAL( symbolModified() ), this, SLOT( changeSingleSymbol() ) ); connect( mSelector, SIGNAL( symbolModified() ), this, SLOT( changeSingleSymbol() ) );
QVBoxLayout* layout = new QVBoxLayout( mWidgetPage ); QVBoxLayout* layout = new QVBoxLayout( this );
layout->setContentsMargins( 0, 0, 0, 0 ); layout->setContentsMargins( 0, 0, 0, 0 );
mWidgetPage->layout()->addWidget( mSelector ); layout->addWidget( mSelector );
// advanced actions - data defined rendering // advanced actions - data defined rendering
QMenu* advMenu = mSelector->advancedMenu(); QMenu* advMenu = mSelector->advancedMenu();