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

Commit 6d7a9c3

Browse files
committed
Show filter error
1 parent c680f31 commit 6d7a9c3

File tree

1 file changed

+20
-2
lines changed

1 file changed

+20
-2
lines changed

rocketpilot/vis/main_window.py

Lines changed: 20 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,20 @@ 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+
'Invalid parameters')
126+
127+
self.filter_widget.control_widget.node_name_edit.setStyleSheet(
128+
'border-style: outset;'
129+
'border-width: 1px;'
130+
'border-color: red;')
131+
132+
print(f'Invalid property name {attr_name!r}, '
133+
f'value: {attr_value!r}, error: {e}')
134+
return
122135
self.tree_model.set_tree_roots(p)
123136
self.tree_view.set_filtered(True)
124137
# applying the filter will always invalidate the current overlay
@@ -514,6 +527,8 @@ def __init__(self, parent=None):
514527
self.setObjectName("FilterTreePane")
515528
self.control_widget = FilterPane.ControlWidget(self)
516529

530+
self.control_widget.node_name_edit.textChanged.connect(
531+
self.restore_style)
517532
self.control_widget.node_name_edit.returnPressed.connect(
518533
self.on_apply_clicked
519534
)
@@ -529,3 +544,6 @@ def on_apply_clicked(self):
529544

530545
def set_enabled(self, enabled):
531546
self.control_widget.setEnabled(enabled)
547+
548+
def restore_style(self):
549+
self.control_widget.node_name_edit.setStyleSheet('')

0 commit comments

Comments
 (0)