Skip to content

Commit

Permalink
Browse files Browse the repository at this point in the history
fix #17652 Impossible to rename a layer style from the Styling Panel
  • Loading branch information
PeterPetrik committed Jan 31, 2019
1 parent 4f6df29 commit 44c4e8c
Show file tree
Hide file tree
Showing 2 changed files with 17 additions and 3 deletions.
19 changes: 16 additions & 3 deletions src/gui/qgsmaplayerstylemanagerwidget.cpp
Expand Up @@ -78,15 +78,18 @@ QgsMapLayerStyleManagerWidget::QgsMapLayerStyleManagerWidget( QgsMapLayer *layer

mModel->clear();

Q_FOREACH ( const QString name, mLayer->styleManager()->styles() )
const QStringList styles = mLayer->styleManager()->styles();
for ( const QString &styleName : styles )
{
QString stylename = name;
QStandardItem *item = new QStandardItem( stylename );
QStandardItem *item = new QStandardItem( styleName );
item->setData( styleName );
mModel->appendRow( item );
}

QString active = mLayer->styleManager()->currentStyle();
currentStyleChanged( active );

connect( mModel, &QStandardItemModel::itemChanged, this, &QgsMapLayerStyleManagerWidget::renameStyle );
}

void QgsMapLayerStyleManagerWidget::styleClicked( const QModelIndex &index )
Expand All @@ -113,6 +116,7 @@ void QgsMapLayerStyleManagerWidget::styleAdded( const QString &name )
{
QgsDebugMsg( QStringLiteral( "Style added" ) );
QStandardItem *item = new QStandardItem( name );
item->setData( name );
mModel->appendRow( item );
}

Expand All @@ -134,6 +138,7 @@ void QgsMapLayerStyleManagerWidget::styleRenamed( const QString &oldname, const

QStandardItem *item = items.at( 0 );
item->setText( newname );
item->setData( newname );
}

void QgsMapLayerStyleManagerWidget::addStyle()
Expand Down Expand Up @@ -176,6 +181,14 @@ void QgsMapLayerStyleManagerWidget::removeStyle()

}

void QgsMapLayerStyleManagerWidget::renameStyle( QStandardItem *item )
{
const QString oldName = item->data().toString();
const QString newName = item->text();
item->setData( newName );
whileBlocking( this )->mLayer->styleManager()->renameStyle( oldName, newName );
}

void QgsMapLayerStyleManagerWidget::saveAsDefault()
{
QString errorMsg;
Expand Down
1 change: 1 addition & 0 deletions src/gui/qgsmaplayerstylemanagerwidget.h
Expand Up @@ -55,6 +55,7 @@ class GUI_EXPORT QgsMapLayerStyleManagerWidget : public QgsMapLayerConfigWidget
void styleRenamed( const QString &oldname, const QString &newname );
void addStyle();
void removeStyle();
void renameStyle( QStandardItem *item );
void saveAsDefault();
void loadDefault();
void saveStyle();
Expand Down

0 comments on commit 44c4e8c

Please sign in to comment.