Skip to content

Commit 8712089

Browse files
committed
Fixes for actions in attribute table
* Initialize datastructure in vector layer configuration dialog * Fix hidden widget if shown in last column
1 parent c1687ab commit 8712089

File tree

3 files changed

+17
-1
lines changed

3 files changed

+17
-1
lines changed

src/app/qgsvectorlayerproperties.cpp

+1
Original file line numberDiff line numberDiff line change
@@ -559,6 +559,7 @@ void QgsVectorLayerProperties::apply()
559559
mLayer->actions()->addAction( action );
560560
}
561561
QgsAttributeTableConfig attributeTableConfig = mLayer->attributeTableConfig();
562+
attributeTableConfig.update( mLayer->fields() );
562563
attributeTableConfig.setActionWidgetStyle( mActionDialog->attributeTableWidgetStyle() );
563564
QVector<QgsAttributeTableConfig::ColumnConfig> columns = attributeTableConfig.columns();
564565

src/gui/attributetable/qgsattributetablefiltermodel.cpp

+13
Original file line numberDiff line numberDiff line change
@@ -478,3 +478,16 @@ Qt::ItemFlags QgsAttributeTableFilterModel::flags( const QModelIndex& index ) co
478478
QModelIndex source_index = mapToSource( index );
479479
return masterModel()->flags( source_index );
480480
}
481+
482+
QModelIndex QgsAttributeTableFilterModel::index( int row, int column, const QModelIndex& parent ) const
483+
{
484+
if ( column > -1 && mColumnMapping.at( column ) == -1 )
485+
{
486+
QModelIndex index = QSortFilterProxyModel::index( row, 0, parent );
487+
return createIndex( row, column, index.internalPointer() );
488+
}
489+
else
490+
{
491+
return QSortFilterProxyModel::index( row, 0, parent );
492+
}
493+
}

src/gui/attributetable/qgsattributetablefiltermodel.h

+3-1
Original file line numberDiff line numberDiff line change
@@ -167,7 +167,9 @@ class GUI_EXPORT QgsAttributeTableFilterModel: public QSortFilterProxyModel, pub
167167

168168
virtual QModelIndex mapFromSource( const QModelIndex& sourceIndex ) const override;
169169

170-
Qt::ItemFlags flags( const QModelIndex &index ) const override;
170+
virtual Qt::ItemFlags flags( const QModelIndex &index ) const override;
171+
172+
virtual QModelIndex index( int row, int column, const QModelIndex &parent = QModelIndex() ) const override;
171173

172174
/**
173175
* Sort by the given column using the given order.

0 commit comments

Comments
 (0)