mirror of
https://github.com/ynput/ayon-core.git
synced 2025-12-24 21:04:40 +01:00
emit filter changed signal
This commit is contained in:
parent
e9981081aa
commit
de15350fe6
2 changed files with 24 additions and 4 deletions
|
|
@ -578,7 +578,7 @@ class FilterValuePopup(QtWidgets.QWidget):
|
|||
|
||||
|
||||
class FiltersBar(BaseClickableFrame):
|
||||
filters_changed = QtCore.Signal()
|
||||
filter_changed = QtCore.Signal(str)
|
||||
|
||||
def __init__(self, parent):
|
||||
super().__init__(parent)
|
||||
|
|
@ -636,6 +636,16 @@ class FiltersBar(BaseClickableFrame):
|
|||
for filter_def in filter_defs
|
||||
}
|
||||
|
||||
def get_filter_value(self, name: str) -> Optional[Any]:
|
||||
"""Get the value of a filter by its name."""
|
||||
item_widget = self._widgets_by_name.get(name)
|
||||
if item_widget is not None:
|
||||
value = item_widget.get_value()
|
||||
if isinstance(value, list) and len(value) == 0:
|
||||
return None
|
||||
return value
|
||||
return None
|
||||
|
||||
def add_item(self, name: str):
|
||||
"""Add a new item to the search bar.
|
||||
|
||||
|
|
@ -734,6 +744,7 @@ class FiltersBar(BaseClickableFrame):
|
|||
value = self._filter_value_popup.get_value()
|
||||
item_widget = self._widgets_by_name.get(name)
|
||||
item_widget.set_value(value)
|
||||
self.filter_changed.emit(name)
|
||||
|
||||
def _on_filter_value_closed(self, name):
|
||||
widget = self._widgets_by_name.get(name)
|
||||
|
|
|
|||
|
|
@ -255,7 +255,7 @@ class LoaderWindow(QtWidgets.QWidget):
|
|||
folders_filter_input.textChanged.connect(
|
||||
self._on_folder_filter_change
|
||||
)
|
||||
search_bar.filters_changed.connect(self._on_filters_change)
|
||||
search_bar.filter_changed.connect(self._on_filter_change)
|
||||
# products_filter_input.textChanged.connect(
|
||||
# self._on_product_filter_change
|
||||
# )
|
||||
|
|
@ -443,8 +443,17 @@ class LoaderWindow(QtWidgets.QWidget):
|
|||
self._product_group_checkbox.isChecked()
|
||||
)
|
||||
|
||||
def _on_filters_change(self):
|
||||
pass
|
||||
def _on_filter_change(self, filter_name):
|
||||
if filter_name == "product_name":
|
||||
self._products_widget.set_name_filter(
|
||||
self._search_bar.get_filter_value("product_name")
|
||||
)
|
||||
elif filter_name == "product_types":
|
||||
product_types = self._search_bar.get_filter_value("product_types")
|
||||
self._products_widget.set_product_type_filter(product_types)
|
||||
elif filter_name == "statuses":
|
||||
status_names = self._search_bar.get_filter_value("statuses")
|
||||
self._products_widget.set_statuses_filter(status_names)
|
||||
|
||||
def _on_tasks_selection_change(self, event):
|
||||
self._products_widget.set_tasks_filter(event["task_ids"])
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue