@@ -28,8 +28,7 @@ QgsTextEditWidget::QgsTextEditWidget( QgsVectorLayer* vl, int fieldIdx, QWidget*
2828
2929QVariant QgsTextEditWidget::value ()
3030{
31- QSettings settings;
32- QVariant v;
31+ QString v;
3332
3433 if ( mTextEdit && mTextEdit ->document ()->isModified () )
3534 {
@@ -53,12 +52,11 @@ QVariant QgsTextEditWidget::value()
5352 v = mLineEdit ->text ();
5453 }
5554
56- if ( v.toString () == settings.value ( " qgis/nullValue" , " NULL" ).toString () )
57- {
58- v = QVariant ( field ().type () );
59- }
60-
61- return v;
55+ if (( v.isEmpty () && ( field ().type () == QVariant::Int || field ().type () == QVariant::Double || field ().type () == QVariant::LongLong || field ().type () == QVariant::Date ) ) ||
56+ v == QSettings ().value ( " qgis/nullValue" , " NULL" ).toString () )
57+ return QVariant ( field ().type () );
58+ else
59+ return QVariant ( v );
6260}
6361
6462QWidget* QgsTextEditWidget::createWidget ( QWidget* parent )
@@ -99,8 +97,7 @@ void QgsTextEditWidget::initWidget( QWidget* editor )
9997 QgsFilterLineEdit *fle = qobject_cast<QgsFilterLineEdit*>( mLineEdit );
10098 if ( fle && !( field ().type () == QVariant::Int || field ().type () == QVariant::Double || field ().type () == QVariant::LongLong || field ().type () == QVariant::Date ) )
10199 {
102- QSettings settings;
103- fle->setNullValue ( settings.value ( " qgis/nullValue" , " NULL" ).toString () );
100+ fle->setNullValue ( QSettings ().value ( " qgis/nullValue" , " NULL" ).toString () );
104101 }
105102
106103 connect ( mLineEdit , SIGNAL ( textChanged ( QString ) ), this , SLOT ( valueChanged ( QString ) ) );
@@ -109,17 +106,25 @@ void QgsTextEditWidget::initWidget( QWidget* editor )
109106
110107void QgsTextEditWidget::setValue ( const QVariant& value )
111108{
109+ QString v;
110+ if ( value.isNull () && !( field ().type () == QVariant::Int || field ().type () == QVariant::Double || field ().type () == QVariant::LongLong || field ().type () == QVariant::Date ) )
111+ {
112+ v = QSettings ().value ( " qgis/nullValue" , " NULL" ).toString ();
113+ }
114+ else
115+ v = value.toString ();
116+
112117 if ( mTextEdit )
113118 {
114119 if ( config ( " UseHtml" ).toBool () )
115- mTextEdit ->setHtml ( value. toString () );
120+ mTextEdit ->setHtml ( v );
116121 else
117- mTextEdit ->setPlainText ( value. toString () );
122+ mTextEdit ->setPlainText ( v );
118123 }
119124
120125 if ( mPlainTextEdit )
121- mPlainTextEdit ->setPlainText ( value. toString () );
126+ mPlainTextEdit ->setPlainText ( v );
122127
123128 if ( mLineEdit )
124- mLineEdit ->setText ( value. toString () );
129+ mLineEdit ->setText ( v );
125130}
0 commit comments