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
Queries the layer for the feature with the given id.
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
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.
QgsFields fields() const FINAL
Returns the list of fields of this layer.
QgsVectorLayer * joinLayer() const
Returns joined layer (may be nullptr if the reference was set by layer ID and not resolved yet) ...
QgsFeatureRequest & setNoAttributes()
Set that no attributes will be fetched.
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.
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.
QgsFeatureIterator getFeatures(const QgsFeatureRequest &request=QgsFeatureRequest()) const FINAL
Queries the layer for features specified in request.
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).
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.