changed string delegate to name delegate

This commit is contained in:
iLLiCiTiT 2021-05-11 10:08:14 +02:00
parent 6b8002f4a0
commit 586f8faa10
4 changed files with 21 additions and 21 deletions

View file

@ -1,3 +1,4 @@
import re
from Qt import QtCore
@ -5,3 +6,6 @@ IDENTIFIER_ROLE = QtCore.Qt.UserRole + 1
DUPLICATED_ROLE = QtCore.Qt.UserRole + 2
HIERARCHY_CHANGE_ABLE_ROLE = QtCore.Qt.UserRole + 3
REMOVED_ROLE = QtCore.Qt.UserRole + 4
NAME_ALLOWED_SYMBOLS = "a-zA-Z0-9_"
NAME_REGEX = re.compile("^[" + NAME_ALLOWED_SYMBOLS + "]*$")

View file

@ -1,7 +1,7 @@
from Qt import QtWidgets, QtCore
from .widgets import (
RegexTextEdit,
NameTextEdit,
FilterComboBox
)
from .multiselection_combobox import MultiSelectionComboBox
@ -39,16 +39,9 @@ class NumberDelegate(QtWidgets.QStyledItemDelegate):
# return super().updateEditorGeometry(editor, options, index)
class StringDelegate(QtWidgets.QStyledItemDelegate):
def __init__(self, regex, *args, **kwargs):
super(StringDelegate, self).__init__(*args, **kwargs)
self._regex = regex
class NameDelegate(QtWidgets.QStyledItemDelegate):
def createEditor(self, parent, option, index):
if self._regex:
editor = RegexTextEdit(self._regex, parent)
else:
editor = QtWidgets.QLineEdit(parent)
editor = NameTextEdit(parent)
value = index.data(QtCore.Qt.EditRole)
if value is not None:
editor.setText(str(value))

View file

@ -2,7 +2,7 @@ from Qt import QtWidgets, QtCore
from .delegates import (
NumberDelegate,
StringDelegate,
NameDelegate,
TypeDelegate,
ToolsDelegate
)
@ -10,9 +10,8 @@ from .delegates import (
from openpype.lib import ApplicationManager
class StringDef:
def __init__(self, regex=None):
self.regex = regex
class NameDef:
pass
class NumberDef:
@ -63,7 +62,7 @@ class ToolsCache:
class HierarchyView(QtWidgets.QTreeView):
"""A tree view that deselects on clicking on an empty area in the view"""
column_delegate_defs = {
"name": StringDef(),
"name": NameDef(),
"type": TypeDef(),
"frameStart": NumberDef(1),
"frameEnd": NumberDef(1),
@ -107,8 +106,8 @@ class HierarchyView(QtWidgets.QTreeView):
column_delegates = {}
column_key_to_index = {}
for key, item_type in self.column_delegate_defs.items():
if isinstance(item_type, StringDef):
delegate = StringDelegate(item_type.regex)
if isinstance(item_type, NameDef):
delegate = NameDelegate()
elif isinstance(item_type, NumberDef):
delegate = NumberDelegate(

View file

@ -1,10 +1,14 @@
import re
from .constants import (
NAME_ALLOWED_SYMBOLS,
NAME_REGEX
)
from Qt import QtWidgets, QtCore
class RegexTextEdit(QtWidgets.QLineEdit):
def __init__(self, regex, *args, **kwargs):
super(RegexTextEdit, self).__init__(*args, **kwargs)
self._regex = regex
class NameTextEdit(QtWidgets.QLineEdit):
def __init__(self, *args, **kwargs):
super(NameTextEdit, self).__init__(*args, **kwargs)
self.textChanged.connect(self._on_text_change)