|
37 | 37 | #include <QMessageBox>
|
38 | 38 | #include <QSettings>
|
39 | 39 | #include <QFileDialog>
|
| 40 | +#include <QHBoxLayout> |
40 | 41 |
|
41 | 42 | QgsFieldsProperties::QgsFieldsProperties( QgsVectorLayer *layer, QWidget* parent )
|
42 | 43 | : QWidget( parent )
|
@@ -242,9 +243,23 @@ void QgsFieldsProperties::setRow( int row, int idx, const QgsField& field )
|
242 | 243 | mFieldsList->setItem( row, attrTypeNameCol, new QTableWidgetItem( field.typeName() ) );
|
243 | 244 | mFieldsList->setItem( row, attrLengthCol, new QTableWidgetItem( QString::number( field.length() ) ) );
|
244 | 245 | mFieldsList->setItem( row, attrPrecCol, new QTableWidgetItem( QString::number( field.precision() ) ) );
|
245 |
| - mFieldsList->setItem( row, attrCommentCol, new QTableWidgetItem( field.comment() ) ); |
| 246 | + if ( mLayer->pendingFields().fieldOrigin( idx ) == QgsFields::OriginExpression ) |
| 247 | + { |
| 248 | + QWidget* expressionWidget = new QWidget; |
| 249 | + expressionWidget->setLayout( new QHBoxLayout ); |
| 250 | + QToolButton* editExpressionButton = new QToolButton; |
| 251 | + editExpressionButton->setIcon( QgsApplication::getThemeIcon( "/mIconExpression.svg" ) ); |
| 252 | + expressionWidget->layout()->setContentsMargins( 0, 0, 0, 0 ); |
| 253 | + expressionWidget->layout()->addWidget( editExpressionButton ); |
| 254 | + expressionWidget->layout()->addWidget( new QLabel( mLayer->expressionField( idx ) ) ); |
| 255 | + mFieldsList->setCellWidget( row, attrCommentCol, expressionWidget ); |
| 256 | + } |
| 257 | + else |
| 258 | + { |
| 259 | + mFieldsList->setItem( row, attrCommentCol, new QTableWidgetItem( field.comment() ) ); |
| 260 | + } |
246 | 261 |
|
247 |
| - for ( int i = 0; i < attrEditTypeCol; i++ ) |
| 262 | + for ( int i = 0; i < attrCommentCol; i++ ) |
248 | 263 | mFieldsList->item( row, i )->setFlags( mFieldsList->item( row, i )->flags() & ~Qt::ItemIsEditable );
|
249 | 264 |
|
250 | 265 | FieldConfig cfg( mLayer, idx );
|
|
0 commit comments