QGIS API Documentation  2.2.0-Valmiera
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
Public Slots | Public Member Functions | Private Member Functions | Private Attributes | List of all members
QgsSearchQueryBuilder Class Reference

Query Builder for search strings. More...

#include <qgssearchquerybuilder.h>

Collaboration diagram for QgsSearchQueryBuilder:
Collaboration graph
[legend]

Public Slots

void on_btnEqual_clicked ()
void on_btnOk_clicked ()
void on_btnLessThan_clicked ()
void on_btnGreaterThan_clicked ()
void on_btnLike_clicked ()
void on_btnILike_clicked ()
void on_btnPct_clicked ()
void on_btnIn_clicked ()
void on_btnNotIn_clicked ()
void on_lstFields_doubleClicked (const QModelIndex &index)
void on_lstValues_doubleClicked (const QModelIndex &index)
void on_btnLessEqual_clicked ()
void on_btnGreaterEqual_clicked ()
void on_btnNotEqual_clicked ()
void on_btnAnd_clicked ()
void on_btnNot_clicked ()
void on_btnOr_clicked ()
void on_btnClear_clicked ()
void on_btnTest_clicked ()
void on_btnGetAllValues_clicked ()
void on_btnSampleValues_clicked ()
void on_buttonBox_helpRequested ()
void saveQuery ()
void loadQuery ()

Public Member Functions

 QgsSearchQueryBuilder (QgsVectorLayer *layer, QWidget *parent=0, Qt::WFlags fl=QgisGui::ModalDialogFlags)
 Constructor - takes pointer to vector layer as a parameter.
 ~QgsSearchQueryBuilder ()
QString searchString ()
 returns newly created search string
void setSearchString (QString searchString)
 change search string shown in text field

Private Member Functions

void populateFields ()
void setupListViews ()
long countRecords (QString sql)
void getFieldValues (int limit)

Private Attributes

QgsVectorLayermLayer
 Layer for which is the query builder opened.
QMap< QString, int > mFieldMap
 Map that holds field information, keyed by field name.
QStandardItemModel * mModelFields
 Model for fields ListView.
QStandardItemModel * mModelValues
 Model for values ListView.

Detailed Description

Query Builder for search strings.

Definition at line 36 of file qgssearchquerybuilder.h.

Constructor & Destructor Documentation

QgsSearchQueryBuilder::QgsSearchQueryBuilder ( QgsVectorLayer layer,
QWidget *  parent = 0,
Qt::WFlags  fl = QgisGui::ModalDialogFlags 
)

Constructor - takes pointer to vector layer as a parameter.

Definition at line 33 of file qgssearchquerybuilder.cpp.

References loadQuery(), QgsMapLayer::name(), on_btnClear_clicked(), on_btnTest_clicked(), populateFields(), saveQuery(), setupListViews(), and tr.

QgsSearchQueryBuilder::~QgsSearchQueryBuilder ( )

Definition at line 65 of file qgssearchquerybuilder.cpp.

Member Function Documentation

long QgsSearchQueryBuilder::countRecords ( QString  sql)
private
void QgsSearchQueryBuilder::getFieldValues ( int  limit)
private

populates list box with values of selected field

Parameters
limitif not zero, inserts only this count of values

MH: keep already inserted values in a set. Querying is much faster compared to QStandardItemModel::findItems

Definition at line 105 of file qgssearchquerybuilder.cpp.

References QgsFeature::attribute(), QgsVectorLayer::getFeatures(), mFieldMap, mLayer, mModelFields, mModelValues, QgsFeatureIterator::nextFeature(), QgsFeatureRequest::NoGeometry, QgsVectorLayer::pendingFields(), and QgsField::type().

Referenced by on_btnGetAllValues_clicked(), and on_btnSampleValues_clicked().

void QgsSearchQueryBuilder::loadQuery ( )
slot
void QgsSearchQueryBuilder::on_btnAnd_clicked ( )
slot

Definition at line 335 of file qgssearchquerybuilder.cpp.

void QgsSearchQueryBuilder::on_btnClear_clicked ( )
slot

Definition at line 350 of file qgssearchquerybuilder.cpp.

Referenced by QgsSearchQueryBuilder().

void QgsSearchQueryBuilder::on_btnEqual_clicked ( )
slot

Definition at line 265 of file qgssearchquerybuilder.cpp.

void QgsSearchQueryBuilder::on_btnGetAllValues_clicked ( )
slot

Get all distinct values for the field. Values are inserted into the value list box

Definition at line 169 of file qgssearchquerybuilder.cpp.

References getFieldValues().

void QgsSearchQueryBuilder::on_btnGreaterEqual_clicked ( )
slot

Definition at line 325 of file qgssearchquerybuilder.cpp.

void QgsSearchQueryBuilder::on_btnGreaterThan_clicked ( )
slot

Definition at line 275 of file qgssearchquerybuilder.cpp.

void QgsSearchQueryBuilder::on_btnILike_clicked ( )
slot

Definition at line 355 of file qgssearchquerybuilder.cpp.

void QgsSearchQueryBuilder::on_btnIn_clicked ( )
slot

Definition at line 285 of file qgssearchquerybuilder.cpp.

void QgsSearchQueryBuilder::on_btnLessEqual_clicked ( )
slot

Definition at line 320 of file qgssearchquerybuilder.cpp.

void QgsSearchQueryBuilder::on_btnLessThan_clicked ( )
slot

Definition at line 270 of file qgssearchquerybuilder.cpp.

void QgsSearchQueryBuilder::on_btnLike_clicked ( )
slot

Definition at line 295 of file qgssearchquerybuilder.cpp.

void QgsSearchQueryBuilder::on_btnNot_clicked ( )
slot

Definition at line 340 of file qgssearchquerybuilder.cpp.

void QgsSearchQueryBuilder::on_btnNotEqual_clicked ( )
slot

Definition at line 330 of file qgssearchquerybuilder.cpp.

void QgsSearchQueryBuilder::on_btnNotIn_clicked ( )
slot

Definition at line 290 of file qgssearchquerybuilder.cpp.

void QgsSearchQueryBuilder::on_btnOk_clicked ( )
slot

Definition at line 239 of file qgssearchquerybuilder.cpp.

References countRecords(), and tr.

void QgsSearchQueryBuilder::on_btnOr_clicked ( )
slot

Definition at line 345 of file qgssearchquerybuilder.cpp.

void QgsSearchQueryBuilder::on_btnPct_clicked ( )
slot

Definition at line 280 of file qgssearchquerybuilder.cpp.

void QgsSearchQueryBuilder::on_btnSampleValues_clicked ( )
slot

Get sample distinct values for the selected field. The sample size is limited to an arbitrary value (currently set to 25). The values are inserted into the values list box.

Definition at line 164 of file qgssearchquerybuilder.cpp.

References getFieldValues().

void QgsSearchQueryBuilder::on_btnTest_clicked ( )
slot

Test the constructed search string to see if it's correct. The number of rows that would be returned is displayed in a message box.

Definition at line 174 of file qgssearchquerybuilder.cpp.

References countRecords(), and tr.

Referenced by QgsSearchQueryBuilder().

void QgsSearchQueryBuilder::on_buttonBox_helpRequested ( )
inlineslot

Definition at line 92 of file qgssearchquerybuilder.h.

References QgsContextHelp::run().

void QgsSearchQueryBuilder::on_lstFields_doubleClicked ( const QModelIndex &  index)
slot

Definition at line 310 of file qgssearchquerybuilder.cpp.

References mModelFields, and QgsExpression::quotedColumnRef().

void QgsSearchQueryBuilder::on_lstValues_doubleClicked ( const QModelIndex &  index)
slot

Definition at line 315 of file qgssearchquerybuilder.cpp.

References mModelValues.

void QgsSearchQueryBuilder::populateFields ( )
private

Populate the field list for the selected table

Definition at line 70 of file qgssearchquerybuilder.cpp.

References QgsFields::count(), mFieldMap, mLayer, mModelFields, QgsVectorLayer::pendingFields(), and QgsDebugMsg.

Referenced by QgsSearchQueryBuilder().

void QgsSearchQueryBuilder::saveQuery ( )
slot

Definition at line 360 of file qgssearchquerybuilder.cpp.

References tr.

Referenced by QgsSearchQueryBuilder().

QString QgsSearchQueryBuilder::searchString ( )

returns newly created search string

Definition at line 300 of file qgssearchquerybuilder.cpp.

void QgsSearchQueryBuilder::setSearchString ( QString  searchString)

change search string shown in text field

Definition at line 305 of file qgssearchquerybuilder.cpp.

void QgsSearchQueryBuilder::setupListViews ( )
private

Setup models for listviews

Definition at line 87 of file qgssearchquerybuilder.cpp.

References mModelFields, mModelValues, and QgsDebugMsg.

Referenced by QgsSearchQueryBuilder().

Member Data Documentation

QMap<QString, int> QgsSearchQueryBuilder::mFieldMap
private

Map that holds field information, keyed by field name.

Definition at line 124 of file qgssearchquerybuilder.h.

Referenced by getFieldValues(), loadQuery(), and populateFields().

QgsVectorLayer* QgsSearchQueryBuilder::mLayer
private

Layer for which is the query builder opened.

Definition at line 122 of file qgssearchquerybuilder.h.

Referenced by countRecords(), getFieldValues(), and populateFields().

QStandardItemModel* QgsSearchQueryBuilder::mModelFields
private

Model for fields ListView.

Definition at line 126 of file qgssearchquerybuilder.h.

Referenced by getFieldValues(), on_lstFields_doubleClicked(), populateFields(), and setupListViews().

QStandardItemModel* QgsSearchQueryBuilder::mModelValues
private

Model for values ListView.

Definition at line 128 of file qgssearchquerybuilder.h.

Referenced by getFieldValues(), on_lstValues_doubleClicked(), and setupListViews().


The documentation for this class was generated from the following files: