mirror of
https://github.com/ynput/ayon-core.git
synced 2026-01-02 08:54:53 +01:00
added filtrable combobox widget
This commit is contained in:
parent
b27116102b
commit
d76fae0096
1 changed files with 46 additions and 0 deletions
46
openpype/tools/project_manager/project_manager/widgets.py
Normal file
46
openpype/tools/project_manager/project_manager/widgets.py
Normal file
|
|
@ -0,0 +1,46 @@
|
|||
from Qt import QtWidgets, QtCore
|
||||
|
||||
|
||||
class FilterComboBox(QtWidgets.QComboBox):
|
||||
def __init__(self, parent=None):
|
||||
super(FilterComboBox, self).__init__(parent)
|
||||
|
||||
self.setFocusPolicy(QtCore.Qt.StrongFocus)
|
||||
self.setEditable(True)
|
||||
|
||||
filter_proxy_model = QtCore.QSortFilterProxyModel(self)
|
||||
filter_proxy_model.setFilterCaseSensitivity(QtCore.Qt.CaseInsensitive)
|
||||
filter_proxy_model.setSourceModel(self.model())
|
||||
|
||||
completer = QtWidgets.QCompleter(filter_proxy_model, self)
|
||||
completer.setCompletionMode(
|
||||
QtWidgets.QCompleter.UnfilteredPopupCompletion
|
||||
)
|
||||
self.setCompleter(completer)
|
||||
|
||||
self.lineEdit().textEdited.connect(
|
||||
filter_proxy_model.setFilterFixedString
|
||||
)
|
||||
completer.activated.connect(self.on_completer_activated)
|
||||
|
||||
self._completer = completer
|
||||
self._filter_proxy_model = filter_proxy_model
|
||||
|
||||
def focusInEvent(self, event):
|
||||
super(FilterComboBox, self).focusInEvent(event)
|
||||
self.lineEdit().selectAll()
|
||||
|
||||
def on_completer_activated(self, text):
|
||||
if text:
|
||||
index = self.findText(text)
|
||||
self.setCurrentIndex(index)
|
||||
|
||||
def setModel(self, model):
|
||||
super(FilterComboBox, self).setModel(model)
|
||||
self._filter_proxy_model.setSourceModel(model)
|
||||
self._completer.setModel(self._filter_proxy_model)
|
||||
|
||||
def setModelColumn(self, column):
|
||||
self._completer.setCompletionColumn(column)
|
||||
self._filter_proxy_model.setFilterKeyColumn(column)
|
||||
super(FilterComboBox, self).setModelColumn(column)
|
||||
Loading…
Add table
Add a link
Reference in a new issue