void QgsSymbolV2PropertiesDialog::layerTypeChanged() { QgsSymbolLayerV2* layer = currentLayer(); if ( layer == NULL ) return; QString newLayerType = cboLayerType->itemData( cboLayerType->currentIndex() ).toString(); if ( layer->layerType() == newLayerType ) return; // get creation function for new layer from registry QgsSymbolLayerV2Registry* pReg = QgsSymbolLayerV2Registry::instance(); QgsSymbolLayerV2AbstractMetadata* am = pReg->symbolLayerMetadata( newLayerType ); if ( am == NULL ) // check whether the metadata is assigned return; // change layer to a new (with different type) QgsSymbolLayerV2* newLayer = am->createSymbolLayer( QgsStringMap() ); if ( newLayer == NULL ) return; mSymbol->changeSymbolLayer( currentLayerIndex(), newLayer ); updateSymbolLayerWidget( newLayer ); // update symbol layer item SymbolLayerItem* item = currentLayerItem(); item->setLayer( newLayer ); item->updatePreview(); updatePreview(); }
QgsSymbolLayerV2* QgsSymbolV2PropertiesDialog::currentLayer() { int idx = currentLayerIndex(); if ( idx < 0 ) return NULL; return mSymbol->symbolLayer( idx ); }
bool LayerManager::deleteCurrentLayer() { if ( currentLayer()->type() == Layer::CAMERA ) { return false; } editor()->object()->deleteLayer( currentLayerIndex() ); if ( currentLayerIndex() == editor()->object()->getLayerCount() ) { setCurrentLayer( currentLayerIndex() - 1 ); } emit editor()->updateAllFrames(); emit layerCountChanged( count() ); return true; }
bool LayerManager::deleteCurrentLayer() { // FIXME: if ( currentLayer()->type() == Layer::CAMERA ) { return false; } editor()->object()->deleteLayer( currentLayerIndex() ); if ( currentLayerIndex() == editor()->object()->getLayerCount() ) { setCurrentLayer( currentLayerIndex() - 1 ); } Q_EMIT layerCountChanged( count() ); return true; }
void QgsSymbolV2PropertiesDialog::removeLayer() { int idx = currentLayerIndex(); if ( idx < 0 ) return; int row = currentRowIndex(); mSymbol->deleteSymbolLayer( idx ); loadSymbol(); updateUi(); // set previous layer as active QModelIndex newIndex = listLayers->model()->index( qMin( row, mSymbol->symbolLayerCount() - 1 ), 0 ); listLayers->setCurrentIndex( newIndex ); }
void QgsSymbolV2PropertiesDialog::moveLayerByOffset( int offset ) { int rowIdx = currentRowIndex(); int layerIdx = currentLayerIndex(); // switch layers QgsSymbolLayerV2* tmpLayer = mSymbol->takeSymbolLayer( layerIdx ); mSymbol->insertSymbolLayer( layerIdx - offset, tmpLayer ); loadSymbol(); QModelIndex newIndex = listLayers->model()->index( rowIdx + offset, 0 ); listLayers->setCurrentIndex( newIndex ); updateUi(); }