mirror of
https://github.com/ynput/ayon-core.git
synced 2025-12-24 12:54:40 +01:00
define helper widget for folders filtering
This commit is contained in:
parent
3fcb4949f2
commit
d1ef11defa
2 changed files with 42 additions and 0 deletions
|
|
@ -76,6 +76,7 @@ from .folders_widget import (
|
|||
FoldersQtModel,
|
||||
FOLDERS_MODEL_SENDER_NAME,
|
||||
SimpleFoldersWidget,
|
||||
FoldersFiltersWidget,
|
||||
)
|
||||
|
||||
from .tasks_widget import (
|
||||
|
|
@ -160,6 +161,7 @@ __all__ = (
|
|||
"FoldersQtModel",
|
||||
"FOLDERS_MODEL_SENDER_NAME",
|
||||
"SimpleFoldersWidget",
|
||||
"FoldersFiltersWidget",
|
||||
|
||||
"TasksWidget",
|
||||
"TasksQtModel",
|
||||
|
|
|
|||
|
|
@ -15,6 +15,8 @@ from ayon_core.tools.common_models import (
|
|||
from .models import RecursiveSortFilterProxyModel
|
||||
from .views import TreeView
|
||||
from .lib import RefreshThread, get_qt_icon
|
||||
from .widgets import PlaceholderLineEdit
|
||||
from .nice_checkbox import NiceCheckbox
|
||||
|
||||
|
||||
FOLDERS_MODEL_SENDER_NAME = "qt_folders_model"
|
||||
|
|
@ -794,3 +796,41 @@ class SimpleFoldersWidget(FoldersWidget):
|
|||
event (Event): Triggered event.
|
||||
"""
|
||||
pass
|
||||
|
||||
|
||||
class FoldersFiltersWidget(QtWidgets.QWidget):
|
||||
"""Helper widget for most commonly used filters in context selection."""
|
||||
text_changed = QtCore.Signal(str)
|
||||
my_tasks_changed = QtCore.Signal(bool)
|
||||
|
||||
def __init__(self, parent: QtWidgets.QWidget) -> None:
|
||||
super().__init__(parent)
|
||||
|
||||
folders_filter_input = PlaceholderLineEdit(self)
|
||||
folders_filter_input.setPlaceholderText("Folder name filter...")
|
||||
|
||||
my_tasks_tooltip = (
|
||||
"Filter folders and task to only those you are assigned to."
|
||||
)
|
||||
my_tasks_label = QtWidgets.QLabel("My tasks", self)
|
||||
my_tasks_label.setToolTip(my_tasks_tooltip)
|
||||
|
||||
my_tasks_checkbox = NiceCheckbox(self)
|
||||
my_tasks_checkbox.setChecked(False)
|
||||
my_tasks_checkbox.setToolTip(my_tasks_tooltip)
|
||||
|
||||
layout = QtWidgets.QHBoxLayout(self)
|
||||
layout.setContentsMargins(0, 0, 0, 0)
|
||||
layout.setSpacing(5)
|
||||
layout.addWidget(folders_filter_input, 1)
|
||||
layout.addWidget(my_tasks_label, 0)
|
||||
layout.addWidget(my_tasks_checkbox, 0)
|
||||
|
||||
folders_filter_input.textChanged.connect(self.text_changed)
|
||||
my_tasks_checkbox.stateChanged.connect(self._on_my_tasks_change)
|
||||
|
||||
self._folders_filter_input = folders_filter_input
|
||||
self._my_tasks_checkbox = my_tasks_checkbox
|
||||
|
||||
def _on_my_tasks_change(self, _state: int) -> None:
|
||||
self.my_tasks_changed.emit(self._my_tasks_checkbox.isChecked())
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue