diff --git a/eotimeseriesviewer/mapvisualization.py b/eotimeseriesviewer/mapvisualization.py
index ca1cf4418d6b49e5521fd8ba60c3b822303eba36..1c3cf34792c124034bff1a8ec3acda845b8603cb 100644
--- a/eotimeseriesviewer/mapvisualization.py
+++ b/eotimeseriesviewer/mapvisualization.py
@@ -195,6 +195,8 @@ class MapView(QFrame):
self.mIsVisible = True
self.setTitle(name)
self.tbInfoExpression: QLineEdit
+ self.mDefaultInfoExpressionToolTip:str = self.tbInfoExpression.toolTip()
+
self.tbInfoExpression.textChanged.connect(self.onMapInfoExpressionChanged)
self.btnShowInfoExpression.setDefaultAction(self.optionShowInfoExpression)
self.optionShowInfoExpression.toggled.connect(self.tbInfoExpression.setEnabled)
@@ -219,6 +221,16 @@ class MapView(QFrame):
fixMenuButtons(self)
+ def setInfoExpressionError(self, error: str):
+
+ if error in ['', None]:
+ self.tbInfoExpression.setStyleSheet('')
+ self.tbInfoExpression.setToolTip(self.mDefaultInfoExpressionToolTip)
+ else:
+
+ self.tbInfoExpression.setStyleSheet('QLineEdit#tbInfoExpression{color:red; border: 2px solid red;}')
+ self.tbInfoExpression.setToolTip(f'{error}')
+
def onMapInfoExpressionChanged(self, text: str):
self.sigCanvasAppearanceChanged.emit()
@@ -2155,7 +2167,7 @@ class MapWidget(QFrame):
tf = mapView.mapTextFormat()
infoItemVisible: bool = mapView.optionShowInfoExpression.isChecked()
-
+ errorText = ''
for canvas in self.mCanvases[mapView]:
assert isinstance(canvas, MapCanvas)
@@ -2168,6 +2180,7 @@ class MapWidget(QFrame):
infoItem.setVisible(infoItemVisible)
expr = QgsExpression(mapView.mapInfoExpression())
+ infoItem.setInfoText(None)
if isinstance(expr, QgsExpression) and expr.expression() != '':
# context = QgsExpressionContext([QgsExpressionContextScope(canvas.expressionContextScope())])
context: QgsExpressionContext = QgsExpressionContext()
@@ -2182,13 +2195,17 @@ class MapWidget(QFrame):
# print(infoText)
infoItem.setInfoText(str(infoText))
else:
- # print(expr.evalErrorString(), file=sys.stderr)
- infoItem.setInfoText('')
+ if errorText == '':
+ errorText = expr2.evalErrorString()
+ else:
+ if errorText == '':
+ errorText = expr.parserErrorString()
- canvas.addToRefreshPipeLine(MapCanvas.Command.UpdateMapItems)
+ canvas.addToRefreshPipeLine(MapCanvas.Command.UpdateMapItems)
if canvas.canvasColor() != bg:
canvas.addToRefreshPipeLine(mapView.mapBackgroundColor())
+ mapView.setInfoExpressionError(errorText)
class MapViewDock(QgsDockWidget):
sigMapViewAdded = pyqtSignal(MapView)
diff --git a/eotimeseriesviewer/ui/mapviewdock.ui b/eotimeseriesviewer/ui/mapviewdock.ui
index 0bae4ab89dbeab217df1fc05bf6733145372a673..0ef287eda01e1d96651e6c77cdf6ac2ba7351883 100644
--- a/eotimeseriesviewer/ui/mapviewdock.ui
+++ b/eotimeseriesviewer/ui/mapviewdock.ui
@@ -226,7 +226,7 @@ QToolBox::tab:selected { /* italicize selected tabs */
- 0
+ 1
100
diff --git a/eotimeseriesviewer/ui/mapwidget.ui b/eotimeseriesviewer/ui/mapwidget.ui
index e22faae3f0bb6e1beed091c46427843dd3eea7d0..3f3089c5879604316bffab627c7a08bc9f3a99db 100644
--- a/eotimeseriesviewer/ui/mapwidget.ui
+++ b/eotimeseriesviewer/ui/mapwidget.ui
@@ -83,11 +83,17 @@
100
+
+
+
- QFrame::StyledPanel
+ QFrame::NoFrame
- QFrame::Raised
+ QFrame::Plain
+
+
+ 0