@@ -35,7 +35,17 @@ QgsExpressionBuilderWidget::QgsExpressionBuilderWidget(QWidget *parent)
3535
3636 expressionTree->setContextMenuPolicy ( Qt::CustomContextMenu );
3737 connect ( expressionTree, SIGNAL ( customContextMenuRequested ( const QPoint & ) ), this , SLOT ( showContextMenu ( const QPoint & ) ) );
38+ connect ( btnPlusPushButton, SIGNAL (pressed ()), this , SLOT (operatorButtonClicked ()));
39+ connect ( btnMinusPushButton, SIGNAL (pressed ()), this , SLOT (operatorButtonClicked ()));
40+ connect ( btnDividePushButton, SIGNAL (pressed ()), this , SLOT (operatorButtonClicked ()));
41+ connect ( btnMultiplyPushButton, SIGNAL (pressed ()), this , SLOT (operatorButtonClicked ()));
42+ connect ( btnExpButton, SIGNAL (pressed ()), this , SLOT (operatorButtonClicked ()));
43+ connect ( btnConcatButton, SIGNAL (pressed ()), this , SLOT (operatorButtonClicked ()));
44+ connect ( btnOpenBracketPushButton, SIGNAL (pressed ()), this , SLOT (operatorButtonClicked ()));
45+ connect ( btnCloseBracketPushButton, SIGNAL (pressed ()), this , SLOT (operatorButtonClicked ()));
3846
47+
48+ // TODO Can we move this stuff to QgsExpression, like the functions?
3949 this ->registerItem (" Operators" ," +" ," + " );
4050 this ->registerItem (" Operators" ," -" ," -" );
4151 this ->registerItem (" Operators" ," *" ," * " );
@@ -184,13 +194,6 @@ void QgsExpressionBuilderWidget::setExpressionString(const QString expressionStr
184194 this ->txtExpressionString ->setPlainText (expressionString);
185195}
186196
187- bool QgsExpressionBuilderWidget::hasExpressionError ()
188- {
189- QString text = this ->txtExpressionString ->toPlainText ();
190- QgsExpression exp ( text );
191- return exp.hasParserError ();
192- }
193-
194197void QgsExpressionBuilderWidget::on_txtExpressionString_textChanged ()
195198{
196199 QString text = this ->txtExpressionString ->toPlainText ();
@@ -261,6 +264,12 @@ void QgsExpressionBuilderWidget::on_lblPreview_linkActivated(QString link)
261264 mv->exec ();
262265}
263266
267+ void QgsExpressionBuilderWidget::operatorButtonClicked ()
268+ {
269+ QPushButton* button = dynamic_cast <QPushButton*>( sender () );
270+ txtExpressionString->insertPlainText ( " " + button->text () + " " );
271+ }
272+
264273void QgsExpressionBuilderWidget::showContextMenu ( const QPoint & pt)
265274{
266275 QModelIndex idx = expressionTree->indexAt ( pt );
0 commit comments