Skip to content

Commit e83dce5

Browse files
committedSep 4, 2012
Started on ExpBuiWid
1 parent 79a138c commit e83dce5

File tree

4 files changed

+26
-2
lines changed

4 files changed

+26
-2
lines changed
 

‎src/app/qgsattributedialog.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -182,7 +182,7 @@ QgsAttributeDialog::QgsAttributeDialog( QgsVectorLayer *vl, QgsFeature *thepFeat
182182
QSettings settings;
183183

184184
myDa.setSourceCrs( vl->crs().srsid() );
185-
myDa.setEllipsoidalMode(QgisApp::instance()->mapCanvas()->mapRenderer()->hasCrsTransformEnabled() );
185+
myDa.setEllipsoidalMode( QgisApp::instance()->mapCanvas()->mapRenderer()->hasCrsTransformEnabled() );
186186
myDa.setEllipsoid( settings.value( "/qgis/measure/ellipsoid", GEO_NONE ).toString() );
187187

188188
for ( QgsFieldMap::const_iterator it = theFieldMap.begin(); it != theFieldMap.end(); ++it )

‎src/app/qgsattributetabledialog.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -541,7 +541,7 @@ void QgsAttributeTableDialog::doSearch( QString searchString )
541541
QSettings settings;
542542

543543
myDa.setSourceCrs( mLayer->crs().srsid() );
544-
myDa.setEllipsoidalMode(QgisApp::instance()->mapCanvas()->mapRenderer()->hasCrsTransformEnabled() );
544+
myDa.setEllipsoidalMode( QgisApp::instance()->mapCanvas()->mapRenderer()->hasCrsTransformEnabled() );
545545
myDa.setEllipsoid( settings.value( "/qgis/measure/ellipsoid", GEO_NONE ).toString() );
546546

547547
// parse search string and build parsed tree

‎src/gui/qgsexpressionbuilderwidget.cpp

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -231,6 +231,12 @@ bool QgsExpressionBuilderWidget::isExpressionValid()
231231
return mExpressionValid;
232232
}
233233

234+
void QgsExpressionBuilderWidget::setGeomCalculator( const QgsDistanceArea & da )
235+
{
236+
Q_UNUSED( da );
237+
// TODO! FIXME!!!
238+
}
239+
234240
QString QgsExpressionBuilderWidget::expressionText()
235241
{
236242
return txtExpressionString->toPlainText();
@@ -257,12 +263,25 @@ void QgsExpressionBuilderWidget::on_txtExpressionString_textChanged()
257263
return;
258264
}
259265

266+
267+
260268
QgsExpression exp( text );
261269

262270
// TODO We could do this without a layer.
263271
// Maybe just calling exp.evaluate()?
264272
if ( mLayer )
265273
{
274+
// Only set ellipsoid if we have layer...
275+
QgsDistanceArea myDa;
276+
QSettings settings;
277+
278+
myDa.setEllipsoid( settings.value( "/qgis/measure/ellipsoid", GEO_NONE ).toString() );
279+
myDa.setSourceCrs( mLayer->crs().srsid() );
280+
// myDa.setEllipsoidalMode(QgisApp::instance()->mapCanvas()->mapRenderer()->hasCrsTransformEnabled() );
281+
myDa.setEllipsoidalMode( false );
282+
283+
exp.setGeomCalculator( myDa );
284+
266285
if ( !mFeature.isValid() )
267286
{
268287
mLayer->select( mLayer->pendingAllAttributesList(), QgsRectangle(), mLayer->geometryType() != QGis::NoGeometry && exp.needsGeometry() );

‎src/gui/qgsexpressionbuilderwidget.h

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@
2020
#include "ui_qgsexpressionbuilder.h"
2121
#include "qgsvectorlayer.h"
2222
#include "qgsexpressionhighlighter.h"
23+
#include "qgsdistancearea.h"
2324

2425
#include "QStandardItemModel"
2526
#include "QStandardItem"
@@ -122,6 +123,10 @@ class GUI_EXPORT QgsExpressionBuilderWidget : public QWidget, private Ui::QgsExp
122123

123124
void loadFieldNames( QgsFieldMap fields );
124125

126+
/** Sets geometry calculator in order to get the measurements correct.
127+
*/
128+
void setGeomCalculator( const QgsDistanceArea & da );
129+
125130
/** Gets the expression string that has been set in the expression area.
126131
* @returns The expression as a string. */
127132
QString expressionText();

0 commit comments

Comments
 (0)
Please sign in to comment.