QgsSymbolV2PropertiesDialog::QgsSymbolV2PropertiesDialog( QgsSymbolV2* symbol, QWidget* parent ) : QDialog( parent ), mSymbol( symbol ) { setupUi( this ); // setup icons btnAddLayer->setIcon( QIcon( QgsApplication::iconPath( "symbologyAdd.png" ) ) ); btnRemoveLayer->setIcon( QIcon( QgsApplication::iconPath( "symbologyRemove.png" ) ) ); btnLock->setIcon( QIcon( QgsApplication::iconPath( "symbologyLock.png" ) ) ); btnUp->setIcon( QIcon( QgsApplication::iconPath( "symbologyUp.png" ) ) ); btnDown->setIcon( QIcon( QgsApplication::iconPath( "symbologyDown.png" ) ) ); // set widget functions // (should be probably moved somewhere else) _initWidgetFunctions(); loadSymbol(); connect( btnUp, SIGNAL( clicked() ), this, SLOT( moveLayerUp() ) ); connect( btnDown, SIGNAL( clicked() ), this, SLOT( moveLayerDown() ) ); connect( btnAddLayer, SIGNAL( clicked() ), this, SLOT( addLayer() ) ); connect( btnRemoveLayer, SIGNAL( clicked() ), this, SLOT( removeLayer() ) ); connect( btnLock, SIGNAL( clicked() ), this, SLOT( lockLayer() ) ); populateLayerTypes(); connect( cboLayerType, SIGNAL( currentIndexChanged( int ) ), this, SLOT( layerTypeChanged() ) ); loadPropertyWidgets(); updateUi(); // set first layer as active QModelIndex newIndex = listLayers->model()->index( 0, 0 ); listLayers->setCurrentIndex( newIndex ); }
QgsLayerPropertiesWidget::QgsLayerPropertiesWidget( QgsSymbolLayerV2* layer, const QgsSymbolV2* symbol, const QgsVectorLayer* vl, QWidget* parent ) : QWidget( parent ) { mLayer = layer; mSymbol = symbol; mVectorLayer = vl; setupUi( this ); // initialize the sub-widgets // XXX Should this thing be here this way? Initialize all the widgets just for the sake of one layer? // TODO Make this on demand creation _initWidgetFunctions(); // TODO Algorithm // // 3. populate the combo box with the supported layer type // 4. set the present layer type // 5. create the widget for the present layer type and set inn stacked widget // 6. connect comboBox type changed to two things // 1. emit signal that type has beed changed // 2. remove the widget and place the new widget corresponding to the changed layer type // populateLayerTypes(); // update layer type combo box int idx = cboLayerType->findData( mLayer->layerType() ); cboLayerType->setCurrentIndex( idx ); // set the corresponding widget updateSymbolLayerWidget( layer ); connect( cboLayerType, SIGNAL( currentIndexChanged( int ) ), this, SLOT( layerTypeChanged() ) ); }
QgsPaintEffectPropertiesWidget::QgsPaintEffectPropertiesWidget( QgsPaintEffect* effect, QWidget *parent ) : QWidget( parent ) , mEffect( effect ) { setupUi( this ); _initWidgetFunctions(); populateEffectTypes(); // update effect type combo box if ( effect ) { int idx = mEffectTypeCombo->findData( effect->type() ); mEffectTypeCombo->setCurrentIndex( idx ); } // set the corresponding widget updateEffectWidget( effect ); connect( mEffectTypeCombo, SIGNAL( currentIndexChanged( int ) ), this, SLOT( effectTypeChanged() ) ); }