Skip to content
This repository was archived by the owner on Aug 29, 2023. It is now read-only.

Commit 4674bcd

Browse files
committed
Show filter error
1 parent c680f31 commit 4674bcd

File tree

1 file changed

+19
-2
lines changed

1 file changed

+19
-2
lines changed

rocketpilot/vis/main_window.py

Lines changed: 19 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@
2222

2323
from PyQt5 import QtGui, QtCore, QtWidgets
2424

25-
from rocketpilot.exceptions import StateNotFoundError
25+
from rocketpilot.exceptions import InvalidXPathQuery, StateNotFoundError
2626
from rocketpilot.introspection.qt import QtObjectProxyMixin
2727
from rocketpilot.vis.objectproperties import TreeNodeDetailWidget
2828

@@ -118,7 +118,18 @@ def on_filter(self, attr_name, attr_value):
118118

119119
if self.proxy_object:
120120
self.proxy_object.refresh_state()
121-
p = self.proxy_object.select_many(**filter)
121+
try:
122+
p = self.proxy_object.select_many(**filter)
123+
except InvalidXPathQuery as e:
124+
self.filter_widget.control_widget.node_name_edit.setToolTip(
125+
f'Invalid parameters: {e}')
126+
127+
self.filter_widget.control_widget.node_name_edit.setStyleSheet(
128+
'QLineEdit { '
129+
'border-style: outset;'
130+
'border-width: 1px;'
131+
'border-color: red; }')
132+
return
122133
self.tree_model.set_tree_roots(p)
123134
self.tree_view.set_filtered(True)
124135
# applying the filter will always invalidate the current overlay
@@ -514,6 +525,8 @@ def __init__(self, parent=None):
514525
self.setObjectName("FilterTreePane")
515526
self.control_widget = FilterPane.ControlWidget(self)
516527

528+
self.control_widget.node_name_edit.textChanged.connect(
529+
self.restore_style)
517530
self.control_widget.node_name_edit.returnPressed.connect(
518531
self.on_apply_clicked
519532
)
@@ -529,3 +542,7 @@ def on_apply_clicked(self):
529542

530543
def set_enabled(self, enabled):
531544
self.control_widget.setEnabled(enabled)
545+
546+
def restore_style(self):
547+
self.control_widget.node_name_edit.setStyleSheet('')
548+
self.control_widget.node_name_edit.setToolTip('')

0 commit comments

Comments
 (0)