diff --git a/src/app/qgsattributedialog.cpp b/src/app/qgsattributedialog.cpp index c7b43902158d..89f1d06d6e93 100644 --- a/src/app/qgsattributedialog.cpp +++ b/src/app/qgsattributedialog.cpp @@ -328,11 +328,13 @@ void QgsAttributeDialog::accept() QString myFieldName = theField.name(); bool myFlag = false; QString myFieldValue; + bool modified = true; QLineEdit *le = dynamic_cast( mpWidgets.value( myIndex ) ); if ( le ) { myFieldValue = le->text(); + modified = le->isModified(); } QComboBox *cb = dynamic_cast( mpWidgets.value( myIndex ) ); @@ -383,10 +385,14 @@ void QgsAttributeDialog::accept() { mpFeature->changeAttribute( it.key(), QVariant( myIntValue ) ); } - else + else if ( modified ) { mpFeature->changeAttribute( it.key(), QVariant( QString::null ) ); } + else + { + mpFeature->changeAttribute( it.key(), myFieldValue ); + } } break; case QVariant::Double: @@ -396,10 +402,14 @@ void QgsAttributeDialog::accept() { mpFeature->changeAttribute( it.key(), QVariant( myDblValue ) ); } - else + else if ( modified ) { mpFeature->changeAttribute( it.key(), QVariant( QString::null ) ); } + else + { + mpFeature->changeAttribute( it.key(), myFieldValue ); + } } break; default: //string