mirror of
https://github.com/qgis/QGIS.git
synced 2025-02-28 00:17:30 -05:00
This commit adds a new mode to the attribute table dialog for searching and filtering features. When activated (using a button on the toolbar or by pressng CTRL+F), the dialog will switch to form view and all widgets are replaced with their search widget wrapper variant. Alongside each widget is a tool button with options for controlling the search/filter behaviour for that field, eg "equal to", "not equal to", "is null", "greater than", etc.., with the options presented matching themselves to the corresponding field and widget type. New buttons appear at the bottom of the form for either selecting matching features (with options for add to selection/remove from selection/select within current selection) or filtering features in the table (with options for adding features to a current filter or further restricting a current filter). Sponsored by SIGE
47 lines
1.3 KiB
Plaintext
47 lines
1.3 KiB
Plaintext
/**
|
|
* Wraps a search widget. Default form is just a QgsLineFilterEdit
|
|
*/
|
|
class QgsDefaultSearchWidgetWrapper : QgsSearchWidgetWrapper
|
|
{
|
|
%TypeHeaderCode
|
|
#include <qgsdefaultsearchwidgetwrapper.h>
|
|
%End
|
|
public:
|
|
|
|
explicit QgsDefaultSearchWidgetWrapper( QgsVectorLayer* vl, int fieldIdx, QWidget* parent /TransferThis/ = nullptr );
|
|
|
|
// QgsSearchWidgetWrapper interface
|
|
public:
|
|
QString expression();
|
|
bool applyDirectly();
|
|
FilterFlags supportedFlags() const;
|
|
FilterFlags defaultFlags() const;
|
|
virtual QString createExpression( FilterFlags flags ) const;
|
|
|
|
public slots:
|
|
|
|
virtual void clearWidget();
|
|
virtual void setEnabled( bool enabled );
|
|
|
|
protected slots:
|
|
void setExpression( QString exp );
|
|
|
|
protected:
|
|
QWidget* createWidget( QWidget* parent );
|
|
void initWidget( QWidget* editor );
|
|
bool valid() const;
|
|
|
|
/** Returns a pointer to the line edit part of the widget.
|
|
* @note this method is in place for unit testing only, and is not considered
|
|
* stable API
|
|
*/
|
|
QgsFilterLineEdit* lineEdit();
|
|
|
|
/** Returns a pointer to the case sensitivity check box in the widget.
|
|
* @note this method is in place for unit testing only, and is not considered
|
|
* stable API
|
|
*/
|
|
QCheckBox* caseSensitiveCheckBox();
|
|
|
|
};
|