19#include <QStackedWidget> 
   21#include "ui_qgsdualviewbase.h" 
   47class GUI_EXPORT 
QgsDualView : 
public QStackedWidget, 
private Ui::QgsDualViewBase
 
   82    Q_ENUM( FeatureListBrowsingAction )
 
  111    void setView( ViewMode view );
 
  117    ViewMode view() 
const;
 
  139    void setSelectedOnTop( 
bool selectedOnTop );
 
  154    int filteredFeatureCount();
 
  163    Q_DECL_DEPRECATED 
void setFilteredFeatures( 
const QgsFeatureIds &filteredFeatures );
 
  215    void setSortExpression( 
const QString &sortExpression, Qt::SortOrder sortOrder = Qt::AscendingOrder );
 
  220    QString sortExpression() 
const;
 
  250    bool saveEditChanges();
 
  252    void openConditionalStyles();
 
  257    void setMultiEditEnabled( 
bool enabled );
 
  263    void toggleSearchMode( 
bool enabled );
 
  268    void copyCellContent() 
const;
 
  273    void cancelProgress();
 
  283    void parentFormValueChanged( 
const QString &attribute, 
const QVariant &value );
 
  319    void hideEvent( QHideEvent *event ) 
override;
 
  323    void featureListAboutToChangeEditSelection( 
bool &ok );
 
  330    void featureListCurrentEditSelectionChanged( 
const QgsFeature &feat );
 
  332    void previewExpressionBuilder();
 
  334    void previewColumnChanged( QAction *previewAction, 
const QString &expression );
 
  336    void viewWillShowContextMenu( QMenu *menu, 
const QModelIndex &atIndex );
 
  338    void widgetWillShowContextMenu( 
QgsActionMenu *menu, 
const QModelIndex &atIndex );
 
  340    void showViewHeaderMenu( QPoint point );
 
  342    void organizeColumns();
 
  344    void tableColumnResized( 
int column, 
int width );
 
  350    void resizeAllColumns();
 
  352    void autosizeColumn();
 
  354    void autosizeAllColumns();
 
  356    void previewExpressionChanged( 
const QString &expression );
 
  358    void onSortColumnChanged();
 
  360    void updateSelectedFeatures();
 
  361    void updateEditedAddedFeatures();
 
  363    void extentChanged();
 
  370    void featureFormAttributeChanged( 
const QString &attribute, 
const QVariant &value, 
bool attributeChanged );
 
  378    virtual void progress( 
int i, 
bool &cancel );
 
  384    virtual void finished();
 
  387    void zoomToCurrentFeature();
 
  389    void panToCurrentFeature();
 
  391    void flashCurrentFeature();
 
  393    void rebuildFullLayerCache();
 
  395    void panZoomGroupButtonToggled( QAbstractButton *button, 
bool checked );
 
  397    void flashButtonClicked( 
bool clicked );
 
  399    void filterError( 
const QString &errorMessage );
 
  407    void initAttributeForm( 
const QgsFeature &feature );
 
  412    void columnBoxInit();
 
  413    void initLayerCache( 
bool cacheGeometry );
 
  415    void restoreRecentDisplayExpressions();
 
  416    void saveRecentDisplayExpressions() 
const;
 
  417    void setDisplayExpression( 
const QString &expression );
 
  418    void insertRecentlyUsedDisplayExpression( 
const QString &expression );
 
  419    void updateEditSelectionProgress( 
int progress, 
int count );
 
  422    void setBrowsingAutoPanScaleAllowed( 
bool allowed );
 
  427    static const std::unique_ptr<QgsSettingsEntryVariant> conditionalFormattingSplitterState;
 
  428    static const std::unique_ptr<QgsSettingsEntryVariant> attributeEditorSplitterState;
 
  436    QMenu *mPreviewColumnsMenu = 
nullptr;
 
  437    QMenu *mPreviewActionMenu = 
nullptr;
 
  438    QAction *mLastDisplayExpressionAction = 
nullptr;
 
  439    QMenu *mHorizontalHeaderMenu = 
nullptr;
 
  441    QPointer<QgsVectorLayer> mLayer = 
nullptr;
 
  442    QProgressDialog *mProgressDlg = 
nullptr;
 
  444    QString mDisplayExpression;
 
  448    bool mBrowsingAutoPanScaleAllowed = 
true;
 
  449    ViewMode mPreviousView = AttributeTable;
 
  451    friend class TestQgsDualView;
 
  452    friend class TestQgsAttributeTable;
 
 
  470      : QAction( name, dualView )
 
  471      , mDualView( dualView )
 
  473      , mFieldIdx( fieldIdx )
 
 
  483    QModelIndex mFieldIdx;
 
 
  497      : QAction( name, dualView )
 
  498      , mDualView( dualView )
 
  500      , mFieldIdx( fieldIdx )
 
 
  509    QModelIndex mFieldIdx;
 
 
Contains context information for attribute editor widgets.
 
A QAction subclass for map layer actions shown in an attribute table.
 
QgsAttributeTableAction(const QString &name, QgsDualView *dualView, QUuid action, const QModelIndex &fieldIdx)
Create a new attribute table action.
 
A container for configuration of the attribute table.
 
A proxy model for filtering an attribute table model.
 
FilterMode
The filter mode defines how the rows should be filtered.
 
A QAction for attribute table map layer actions.
 
QgsAttributeTableMapLayerAction(const QString &name, QgsDualView *dualView, QgsMapLayerAction *action, const QModelIndex &fieldIdx)
 
A model backed by a QgsVectorLayerCache which is able to provide feature/attribute information to a Q...
 
Provides a table view of features of a QgsVectorLayer.
 
This widget is used to show the attributes of a set of features of a QgsVectorLayer.
 
void showContextMenuExternally(QgsActionMenu *menu, QgsFeatureId fid)
Emitted when selecting context menu on the feature list to create the context menu individually.
 
ViewMode
The view modes, in which this widget can present information.
 
QgsAttributeTableFilterModel::FilterMode filterMode()
Gets the filter mode.
 
QgsFeatureIds filteredFeatures()
Gets a list of currently visible feature ids.
 
void filterChanged()
Emitted whenever the filter changes.
 
QgsAttributeTableView * tableView()
Returns the table view.
 
void formModeChanged(QgsAttributeEditorContext::Mode mode)
Emitted when the form changes mode.
 
FeatureListBrowsingAction
Action on the map canvas when browsing the list of features.
 
@ PanToFeature
The map is panned to the center of the feature bounding-box.
 
@ ZoomToFeature
The map is zoomed to contained the feature bounding-box.
 
void filterExpressionSet(const QString &expression, QgsAttributeForm::FilterType type)
Emitted when a filter expression is set using the view.
 
void displayExpressionChanged(const QString &expression)
Emitted whenever the display expression is successfully changed.
 
QgsAttributeTableModel * masterModel() const
Returns the model which has the information about all features (not only filtered)
 
Expression contexts are used to encapsulate the parameters around which a QgsExpression should be eva...
 
Handles parsing and evaluation of expressions (formerly called "search strings").
 
A proxy model for feature lists.
 
Wraps a request for features to a vector layer (or directly its vector data provider).
 
The feature class encapsulates a single feature including its unique ID, geometry and a list of field...
 
Is an interface class to abstract feature selection handling.
 
Map canvas is a class for displaying all GIS data types on a canvas.
 
An action which can run on map layers.
 
A variant settings entry.
 
Caches features for a given QgsVectorLayer.
 
Represents a vector layer which manages a vector based dataset.
 
Q_DECLARE_METATYPE(QModelIndex)
 
QSet< QgsFeatureId > QgsFeatureIds
 
qint64 QgsFeatureId
64 bit feature ids negative numbers are used for uncommitted/newly added features
 
QList< int > QgsAttributeList