@@ -425,18 +425,49 @@ QString QgsStyleV2ManagerDialog::addColorRampStatic( QWidget* parent, QgsStyleV2
425
425
}
426
426
427
427
// get name
428
- QString name = QInputDialog::getText ( parent, tr ( " Color ramp name" ),
429
- tr ( " Please enter name for new color ramp:" ), QLineEdit::Normal, tr ( " new color ramp" ), &ok );
430
- if ( !ok || name.isEmpty () )
428
+ bool nameInvalid = true ;
429
+ QString name;
430
+
431
+ while ( nameInvalid )
431
432
{
432
- if ( ramp )
433
+ bool ok;
434
+ name = QInputDialog::getText ( parent, tr ( " Color Ramp Name" ),
435
+ tr ( " Please enter a name for new color ramp:" ),
436
+ QLineEdit::Normal,
437
+ tr ( " new ramp" ),
438
+ &ok );
439
+ if ( !ok )
440
+ {
433
441
delete ramp;
434
- return QString ();
442
+ return QString ();
443
+ }
444
+ // validate name
445
+ if ( name.isEmpty () )
446
+ {
447
+ QMessageBox::warning ( parent, tr ( " Save Color Ramp" ),
448
+ tr ( " Cannot save color ramp without name. Enter a name." ) );
449
+ }
450
+ else if ( style->colorRampNames ().contains ( name ) )
451
+ {
452
+ int res = QMessageBox::warning ( parent, tr ( " Save color ramp" ),
453
+ tr ( " Color ramp with name '%1' already exists. Overwrite?" )
454
+ .arg ( name ),
455
+ QMessageBox::Yes | QMessageBox::No );
456
+ if ( res == QMessageBox::Yes )
457
+ {
458
+ nameInvalid = false ;
459
+ }
460
+ }
461
+ else
462
+ {
463
+ // valid name
464
+ nameInvalid = false ;
465
+ }
435
466
}
436
467
437
468
// add new symbol to style and re-populate the list
438
469
style->addColorRamp ( name, ramp, true );
439
- // TODO groups and tags
470
+ // TODO groups and tags, using saveColorRamp
440
471
return name;
441
472
}
442
473
0 commit comments