16 #include <QItemDelegate> 20 #include <QToolButton> 36 QgsVectorLayer *QgsAttributeTableDelegate::layer(
const QAbstractItemModel *model )
77 QWidget *w = eww->
widget();
79 w->setAutoFillBackground(
true );
80 w->setFocusPolicy( Qt::StrongFocus );
108 QVariant oldValue = model->data( index, Qt::EditRole );
115 newValue = eww->
value();
117 if ( ( oldValue != newValue && newValue.isValid() ) || oldValue.isNull() != newValue.isNull() )
140 eww->
setValue( index.model()->data( index, Qt::EditRole ) );
145 mFeatureSelectionModel = featureSelectionModel;
160 QStyleOptionViewItem myOpt = option;
162 if ( index.model()->data( index, Qt::EditRole ).isNull() )
164 myOpt.font.setItalic(
true );
165 myOpt.palette.setColor( QPalette::Text, QColor(
"gray" ) );
168 if ( mFeatureSelectionModel && mFeatureSelectionModel->
isSelected( fid ) )
169 myOpt.state |= QStyle::State_Selected;
171 QItemDelegate::paint( painter, myOpt, index );
173 if ( option.state & QStyle::State_HasFocus )
175 QRect r = option.rect.adjusted( 1, 1, -1, -1 );
176 QPen p( QBrush( QColor( 0, 255, 127 ) ), 2 );
178 painter->setPen( p );
179 painter->drawRect( r );
bool isValid() const
Returns the validity of this feature.
QgsVectorLayer * layer() const
Returns the layer this filter acts on.
QgsVectorLayer * layer() const
Returns the layer this model uses as backend.
virtual bool isSelected(QgsFeatureId fid)
Returns the selection status of a given feature id.
Field comes from a joined layer (originIndex / 1000 = index of the join, originIndex % 1000 = index w...
FieldOrigin fieldOrigin(int fieldIdx) const
Gets field's origin (value from an enumeration)
QgsAttributeTableModel * masterModel() const
Returns the table model this filter is using.
void paint(QPainter *painter, const QStyleOptionViewItem &option, const QModelIndex &index) const override
Overloads the paint method form the QItemDelegate base class.
Get the field index of this column.
void beginEditCommand(const QString &text)
Create edit command for undo/redo operations.
This class contains context information for attribute editor widgets.
QgsFeature getFeature(QgsFeatureId fid) const
Query the layer for the feature with the given id.
QgsFeatureRequest & setSubsetOfAttributes(const QgsAttributeList &attrs)
Set a subset of attributes that will be fetched.
The feature class encapsulates a single feature including its id, geometry and a list of field/values...
A model backed by a QgsVectorLayerCache which is able to provide feature/attribute information to a Q...
void actionColumnItemPainted(const QModelIndex &index) const
Is emitted when an action column item is painted.
void setFormFeature(const QgsFeature &feature)
Set current feature for the currently edited form or table row.
void setFeatureSelectionModel(QgsFeatureSelectionModel *featureSelectionModel)
Get the feature id of the feature in this row.
QWidget * createEditor(QWidget *parent, const QStyleOptionViewItem &option, const QModelIndex &index) const override
Used to create an editor for when the user tries to change the contents of a cell.
A widget was opened as a popup (e.g. attribute table editor widget)
void setEditorData(QWidget *editor, const QModelIndex &index) const override
Sets data from model into the editor.
QgsVectorLayer * joinLayer() const
Returns joined layer (may be null if the reference was set by layer ID and not resolved yet) ...
QgsFields fields() const override
Returns the list of fields of this layer.
static QgsEditorWidgetRegistry * editorWidgetRegistry()
Returns the global editor widget registry, used for managing all known edit widget factories...
Defines left outer join from our vector layer to some other vector layer.
This class wraps a request for features to a vector layer (or directly its vector data provider)...
QgsEditFormConfig editFormConfig
This column shows action buttons.
void endEditCommand()
Finish edit command and add it to undo/redo stack.
QgsVectorLayerJoinBuffer * joinBuffer()
Returns the join buffer object.
QgsFeatureIterator getFeatures(const QgsFeatureRequest &request=QgsFeatureRequest()) const override
Query the layer for features specified in request.
void setModelData(QWidget *editor, QAbstractItemModel *model, const QModelIndex &index) const override
Sets data from editor back to model.
const QgsVectorLayerJoinInfo * joinForFieldIndex(int index, const QgsFields &fields, int &sourceFieldIndex) const
Finds the vector join for a layer field index.
ColumnType
The type of a column.
bool changeAttributeValue(QgsFeatureId fid, int field, const QVariant &newValue, const QVariant &oldValue=QVariant(), bool skipDefaultValues=false)
Changes an attribute value for a feature (but does not immediately commit the changes).
QList< int > QgsAttributeList
bool isEditable() const
Returns whether joined fields may be edited through the form of the target layer. ...
bool nextFeature(QgsFeature &f)
Geometry is not required. It may still be returned if e.g. required for a filter condition.
The type of a given column.
Represents a vector layer which manages a vector based data sets.
QgsFeatureRequest & setFlags(QgsFeatureRequest::Flags flags)
Sets flags that affect how features will be fetched.