From 29006466ec72d2a0d54e9667f8716b18aebe2998 Mon Sep 17 00:00:00 2001 From: Arunmozhi Date: Sun, 26 Aug 2012 09:41:06 +0530 Subject: [PATCH] added name checking to new colorramps as well --- .../symbology-ng/qgsstylev2managerdialog.cpp | 43 ++++++++++++++++--- 1 file changed, 37 insertions(+), 6 deletions(-) diff --git a/src/gui/symbology-ng/qgsstylev2managerdialog.cpp b/src/gui/symbology-ng/qgsstylev2managerdialog.cpp index 029e9e5b0c0d..a6b4d83fa9b0 100644 --- a/src/gui/symbology-ng/qgsstylev2managerdialog.cpp +++ b/src/gui/symbology-ng/qgsstylev2managerdialog.cpp @@ -425,18 +425,49 @@ QString QgsStyleV2ManagerDialog::addColorRampStatic( QWidget* parent, QgsStyleV2 } // get name - QString name = QInputDialog::getText( parent, tr( "Color ramp name" ), - tr( "Please enter name for new color ramp:" ), QLineEdit::Normal, tr( "new color ramp" ), &ok ); - if ( !ok || name.isEmpty() ) + bool nameInvalid = true; + QString name; + + while ( nameInvalid ) { - if ( ramp ) + bool ok; + name = QInputDialog::getText( parent, tr( "Color Ramp Name" ), + tr( "Please enter a name for new color ramp:" ), + QLineEdit::Normal, + tr( "new ramp" ), + &ok ); + if ( !ok ) + { delete ramp; - return QString(); + return QString(); + } + // validate name + if ( name.isEmpty() ) + { + QMessageBox::warning( parent, tr( "Save Color Ramp" ), + tr( "Cannot save color ramp without name. Enter a name." ) ); + } + else if ( style->colorRampNames().contains( name ) ) + { + int res = QMessageBox::warning( parent, tr( "Save color ramp" ), + tr( "Color ramp with name '%1' already exists. Overwrite?" ) + .arg( name ), + QMessageBox::Yes | QMessageBox::No ); + if ( res == QMessageBox::Yes ) + { + nameInvalid = false; + } + } + else + { + // valid name + nameInvalid = false; + } } // add new symbol to style and re-populate the list style->addColorRamp( name, ramp, true ); - // TODO groups and tags + // TODO groups and tags, using saveColorRamp return name; }