@@ -589,7 +589,7 @@ void QgsRasterLayerSaveAsDialog::addNoDataRow( double min, double max )
589589 lineEdit->setValidator ( new QDoubleValidator ( 0 ) );
590590 if ( !qIsNaN ( value ) )
591591 {
592- valueString = QString::number ( value, ' f ' );
592+ valueString = QgsRasterInterface::printValue ( value );
593593 }
594594 break ;
595595 default :
@@ -603,6 +603,8 @@ void QgsRasterLayerSaveAsDialog::addNoDataRow( double min, double max )
603603 lineEdit->setText ( valueString );
604604 mNoDataTableWidget ->setCellWidget ( mNoDataTableWidget ->rowCount () - 1 , i, lineEdit );
605605
606+ adjustNoDataCellWidth ( mNoDataTableWidget ->rowCount () - 1 , i );
607+
606608 connect ( lineEdit, SIGNAL ( textEdited ( const QString & ) ), this , SLOT ( noDataCellTextEdited ( const QString & ) ) );
607609 }
608610 mNoDataTableWidget ->resizeColumnsToContents ();
@@ -737,6 +739,17 @@ double QgsRasterLayerSaveAsDialog::noDataCellValue( int row, int column ) const
737739 return lineEdit->text ().toDouble ();
738740}
739741
742+ void QgsRasterLayerSaveAsDialog::adjustNoDataCellWidth ( int row, int column )
743+ {
744+ QLineEdit *lineEdit = dynamic_cast <QLineEdit *>( mNoDataTableWidget ->cellWidget ( row, column ) );
745+ if ( !lineEdit ) return ;
746+
747+ int width = qMax ( lineEdit->fontMetrics ().width ( lineEdit->text () ) + 10 , 100 );
748+ width = qMax ( width, mNoDataTableWidget ->columnWidth ( column ) );
749+
750+ lineEdit->setFixedWidth ( width );
751+ }
752+
740753QList<QgsRasterNuller::NoData> QgsRasterLayerSaveAsDialog::noData () const
741754{
742755 QList<QgsRasterNuller::NoData> noDataList;
0 commit comments