diff --git a/src/gui/tiledscene/qgstiledsceneconnectiondialog.cpp b/src/gui/tiledscene/qgstiledsceneconnectiondialog.cpp index 6eb9750758c65..08b66d413c752 100644 --- a/src/gui/tiledscene/qgstiledsceneconnectiondialog.cpp +++ b/src/gui/tiledscene/qgstiledsceneconnectiondialog.cpp @@ -37,6 +37,7 @@ QgsTiledSceneConnectionDialog::QgsTiledSceneConnectionDialog( QWidget *parent ) void QgsTiledSceneConnectionDialog::setConnection( const QString &name, const QString &uri ) { mEditName->setText( name ); + mOriginalConnectionName = name; const QgsTiledSceneProviderConnection::Data conn = QgsTiledSceneProviderConnection::decodedUri( uri ); mEditUrl->setText( conn.url ); @@ -73,6 +74,16 @@ void QgsTiledSceneConnectionDialog::updateOkButtonState() void QgsTiledSceneConnectionDialog::accept() { + const QString newConnectionName = mEditName->text(); + + // on rename delete original entry first + if ( !mOriginalConnectionName.isNull() && mOriginalConnectionName != newConnectionName ) + { + QgsSettings settings; + QgsTiledSceneProviderConnection( QString() ).remove( mOriginalConnectionName ); + settings.sync(); + } + QDialog::accept(); } diff --git a/src/gui/tiledscene/qgstiledsceneconnectiondialog.h b/src/gui/tiledscene/qgstiledsceneconnectiondialog.h index 8c22b91c422dd..038a08c2c1b9e 100644 --- a/src/gui/tiledscene/qgstiledsceneconnectiondialog.h +++ b/src/gui/tiledscene/qgstiledsceneconnectiondialog.h @@ -39,6 +39,9 @@ class QgsTiledSceneConnectionDialog : public QDialog, public Ui::QgsTiledSceneCo private slots: void updateOkButtonState(); + + private: + QString mOriginalConnectionName; //store initial name to delete entry in case of rename }; ///@endcond