QGIS/python/gui/qgsexpressionbuilderwidget.sip
Martin Dobias 9317ffd89a Merge remote-tracking branch 'origin/master' into new_vector_api
Also disabled mapserver until compilation is fixed.
Fixed tests.

Conflicts:
	src/app/legend/qgslegendlayer.cpp
	src/app/qgsattributedialog.cpp
	src/app/qgsattributedialog.h
	src/app/qgslabelpropertydialog.cpp
	src/app/qgsmaptoollabel.cpp
	src/app/qgsvectorlayerproperties.cpp
	src/core/CMakeLists.txt
	src/core/composer/qgsatlascomposition.cpp
	src/core/qgsexpression.cpp
	src/core/qgspallabeling.cpp
	src/core/qgsvectorlayer.cpp
	src/core/qgsvectorlayer.h
	src/core/qgsvectorlayerimport.cpp
	src/mapserver/qgsprojectparser.cpp
	src/mapserver/qgswfsserver.cpp
	src/mapserver/qgswfsserver.h
	src/mapserver/qgswmsserver.cpp
	src/providers/postgres/qgspostgresprovider.cpp
	src/providers/spatialite/qgsspatialiteprovider.h
	tests/src/core/testqgsexpression.cpp
	tests/src/python/test_qgsmemoryprovider.py
2012-12-18 01:35:06 +01:00

132 lines
4.3 KiB
Plaintext

/** Search proxy used to filter the QgsExpressionBuilderWidget tree.
* The default search for a tree model only searches top level this will handle one
* level down
*/
class QgsExpressionItemSearchProxy : QSortFilterProxyModel
{
%TypeHeaderCode
#include <qgsexpressionbuilderwidget.h>
%End
public:
QgsExpressionItemSearchProxy();
bool filterAcceptsRow( int source_row, const QModelIndex &source_parent ) const;
};
/** An expression item that can be used in the QgsExpressionBuilderWidget tree.
*/
class QgsExpressionItem : QStandardItem
{
%TypeHeaderCode
#include <qgsexpressionbuilderwidget.h>
%End
public:
enum ItemType
{
Header,
Field,
ExpressionNode
};
QgsExpressionItem( QString label,
QString expressionText,
QString helpText,
QgsExpressionItem::ItemType itemType = ExpressionNode );
QgsExpressionItem( QString label,
QString expressionText,
QgsExpressionItem::ItemType itemType = ExpressionNode );
QString getExpressionText();
/** Get the help text that is associated with this expression item.
*
* @return The help text.
*/
QString getHelpText();
/** Set the help text for the current item
*
* @note The help text can be set as a html string.
*/
void setHelpText( QString helpText );
/** Get the type of expression item eg header, field, ExpressionNode.
*
* @return The QgsExpressionItem::ItemType
*/
QgsExpressionItem::ItemType getItemType();
};
/** A reusable widget that can be used to build a expression string.
* See QgsExpressionBuilderDialog for exmaple of usage.
*/
class QgsExpressionBuilderWidget : QWidget
{
%TypeHeaderCode
#include <qgsexpressionbuilderwidget.h>
%End
public:
QgsExpressionBuilderWidget( QWidget *parent );
~QgsExpressionBuilderWidget();
/** Sets layer in order to get the fields and values
* @note this needs to be called before calling loadFieldNames().
*/
void setLayer( QgsVectorLayer* layer );
/** Loads all the field names from the layer.
* @remarks Should this really be public couldn't we just do this for the user?
*/
void loadFieldNames();
void loadFieldNames( const QgsFields& fields );
/** Sets geometry calculator used in distance/area calculations.
* @note added in version 2.0
*/
void setGeomCalculator( const QgsDistanceArea & da );
/** Gets the expression string that has been set in the expression area.
* @returns The expression as a string. */
QString expressionText();
/** Sets the expression string for the widget */
void setExpressionText( const QString& expression );
/** Registers a node item for the expression builder.
* @param group The group the item will be show in the tree view. If the group doesn't exsit it will be created.
* @param label The label that is show to the user for the item in the tree.
* @param expressionText The text that is inserted into the expression area when the user double clicks on the item.
* @param helpText The help text that the user will see when item is selected.
* @param type The type of the expression item.
*/
void registerItem( QString group, QString label, QString expressionText,
QString helpText = "",
QgsExpressionItem::ItemType type = QgsExpressionItem::ExpressionNode );
bool isExpressionValid();
public slots:
void currentChanged( const QModelIndex &index, const QModelIndex & );
void on_expressionTree_doubleClicked( const QModelIndex &index );
void on_txtExpressionString_textChanged();
void on_txtSearchEdit_textChanged();
void on_lblPreview_linkActivated( QString link );
void on_mValueListWidget_itemDoubleClicked( QListWidgetItem* item );
void operatorButtonClicked();
void showContextMenu( const QPoint & );
void loadSampleValues();
void loadAllValues();
signals:
/** Emited when the user changes the expression in the widget.
* Users of this widget should connect to this signal to decide if to let the user
* continue.
* @param isValid Is true if the expression the user has typed is valid.
*/
void expressionParsed( bool isValid );
};