change variable to use convertor instead of legacy

This commit is contained in:
Jakub Trllo 2022-10-24 17:56:27 +02:00
parent 271a0056bc
commit 7afb2b2e9f
4 changed files with 77 additions and 75 deletions

View file

@ -6,7 +6,7 @@ CONTEXT_LABEL = "Options"
# Not showed anywhere - used as identifier
CONTEXT_GROUP = "__ContextGroup__"
LEGACY_ITEM_GROUP = "Incompatible subsets"
CONVERTOR_ITEM_GROUP = "Incompatible subsets"
# Allowed symbols for subset name (and variant)
# - characters, numbers, unsercore and dash
@ -22,7 +22,7 @@ IS_GROUP_ROLE = QtCore.Qt.UserRole + 3
CREATOR_IDENTIFIER_ROLE = QtCore.Qt.UserRole + 4
FAMILY_ROLE = QtCore.Qt.UserRole + 5
GROUP_ROLE = QtCore.Qt.UserRole + 6
LEGACY_CONVERTER_IDENTIFIER = QtCore.Qt.UserRole + 7
CONVERTER_IDENTIFIER_ROLE = QtCore.Qt.UserRole + 7
__all__ = (

View file

@ -1235,7 +1235,7 @@ class AbstractPublisherController(object):
pass
@abstractproperty
def legacy_items(self):
def convertor_items(self):
pass
@abstractmethod
@ -1607,7 +1607,7 @@ class PublisherController(BasePublisherController):
return self._create_context.instances_by_id
@property
def legacy_items(self):
def convertor_items(self):
return self._create_context.legacy_items_by_id
@property

View file

@ -39,7 +39,7 @@ from ..constants import (
CONTEXT_ID,
CONTEXT_LABEL,
CONTEXT_GROUP,
LEGACY_ITEM_GROUP,
CONVERTOR_ITEM_GROUP,
)
@ -175,7 +175,7 @@ class BaseGroupWidget(QtWidgets.QWidget):
self.selected.emit(instance_id, group_id, selection_type)
class LegacyItemsGroupWidget(BaseGroupWidget):
class ConvertorItemsGroupWidget(BaseGroupWidget):
def update_items(self, items_by_id):
items_by_label = collections.defaultdict(list)
for item in items_by_id.values():
@ -195,7 +195,7 @@ class LegacyItemsGroupWidget(BaseGroupWidget):
widget = self._widgets_by_id[item.id]
widget.update_item(item)
else:
widget = LegacyItemCardWidget(item, self)
widget = ConvertorItemCardWidget(item, self)
widget.selected.connect(self._on_widget_selection)
self._widgets_by_id[item.id] = widget
self._content_layout.insertWidget(widget_idx, widget)
@ -345,18 +345,18 @@ class ContextCardWidget(CardWidget):
self._label_widget = label_widget
class LegacyItemCardWidget(CardWidget):
class ConvertorItemCardWidget(CardWidget):
"""Card for global context.
Is not visually under group widget and is always at the top of card view.
"""
def __init__(self, item, parent):
super(LegacyItemCardWidget, self).__init__(parent)
super(ConvertorItemCardWidget, self).__init__(parent)
self._id = item.id
self.identifier = item.identifier
self._group_identifier = LEGACY_ITEM_GROUP
self._group_identifier = CONVERTOR_ITEM_GROUP
icon_widget = IconValuePixmapLabel("fa.magic", self)
icon_widget.setObjectName("FamilyIconLabel")
@ -556,7 +556,7 @@ class InstanceCardView(AbstractInstanceView):
self._content_widget = content_widget
self._context_widget = None
self._legacy_items_group = None
self._convertor_items_group = None
self._widgets_by_group = {}
self._ordered_groups = []
@ -589,8 +589,8 @@ class InstanceCardView(AbstractInstanceView):
):
output.append(self._context_widget)
if self._legacy_items_group is not None:
output.extend(self._legacy_items_group.get_selected_widgets())
if self._convertor_items_group is not None:
output.extend(self._convertor_items_group.get_selected_widgets())
for group_widget in self._widgets_by_group.values():
for widget in group_widget.get_selected_widgets():
@ -605,8 +605,8 @@ class InstanceCardView(AbstractInstanceView):
):
output.append(CONTEXT_ID)
if self._legacy_items_group is not None:
output.extend(self._legacy_items_group.get_selected_item_ids())
if self._convertor_items_group is not None:
output.extend(self._convertor_items_group.get_selected_item_ids())
for group_widget in self._widgets_by_group.values():
output.extend(group_widget.get_selected_item_ids())
@ -617,7 +617,7 @@ class InstanceCardView(AbstractInstanceView):
self._make_sure_context_widget_exists()
self._update_legacy_items_group()
self._update_convertor_items_group()
# Prepare instances by group and identifiers by group
instances_by_group = collections.defaultdict(list)
@ -648,7 +648,7 @@ class InstanceCardView(AbstractInstanceView):
# Keep track of widget indexes
# - we start with 1 because Context item as at the top
widget_idx = 1
if self._legacy_items_group is not None:
if self._convertor_items_group is not None:
widget_idx += 1
for group_name in sorted_group_names:
@ -702,27 +702,27 @@ class InstanceCardView(AbstractInstanceView):
self.selection_changed.emit()
self._content_layout.insertWidget(0, widget)
def _update_legacy_items_group(self):
legacy_items = self._controller.legacy_items
if not legacy_items and self._legacy_items_group is None:
def _update_convertor_items_group(self):
convertor_items = self._controller.convertor_items
if not convertor_items and self._convertor_items_group is None:
return
if not legacy_items:
self._legacy_items_group.setVisible(False)
self._content_layout.removeWidget(self._legacy_items_group)
self._legacy_items_group.deleteLater()
self._legacy_items_group = None
if not convertor_items:
self._convertor_items_group.setVisible(False)
self._content_layout.removeWidget(self._convertor_items_group)
self._convertor_items_group.deleteLater()
self._convertor_items_group = None
return
if self._legacy_items_group is None:
group_widget = LegacyItemsGroupWidget(
LEGACY_ITEM_GROUP, self._content_widget
if self._convertor_items_group is None:
group_widget = ConvertorItemsGroupWidget(
CONVERTOR_ITEM_GROUP, self._content_widget
)
group_widget.selected.connect(self._on_widget_selection)
self._content_layout.insertWidget(1, group_widget)
self._legacy_items_group = group_widget
self._convertor_items_group = group_widget
self._legacy_items_group.update_items(legacy_items)
self._convertor_items_group.update_items(convertor_items)
def refresh_instance_states(self):
"""Trigger update of instances on group widgets."""
@ -742,8 +742,8 @@ class InstanceCardView(AbstractInstanceView):
new_widget = self._context_widget
else:
if group_name == LEGACY_ITEM_GROUP:
group_widget = self._legacy_items_group
if group_name == CONVERTOR_ITEM_GROUP:
group_widget = self._convertor_items_group
else:
group_widget = self._widgets_by_group[group_name]
new_widget = group_widget.get_widget_by_item_id(instance_id)
@ -791,8 +791,8 @@ class InstanceCardView(AbstractInstanceView):
if instance_id == CONTEXT_ID:
remove_group = True
else:
if group_name == LEGACY_ITEM_GROUP:
group_widget = self._legacy_items_group
if group_name == CONVERTOR_ITEM_GROUP:
group_widget = self._convertor_items_group
else:
group_widget = self._widgets_by_group[group_name]
if not group_widget.get_selected_widgets():
@ -906,8 +906,8 @@ class InstanceCardView(AbstractInstanceView):
if name == CONTEXT_GROUP:
sorted_widgets = [self._context_widget]
else:
if name == LEGACY_ITEM_GROUP:
group_widget = self._legacy_items_group
if name == CONVERTOR_ITEM_GROUP:
group_widget = self._convertor_items_group
else:
group_widget = self._widgets_by_group[name]
sorted_widgets = group_widget.get_ordered_widgets()
@ -1034,7 +1034,7 @@ class InstanceCardView(AbstractInstanceView):
elif isinstance(widget, InstanceCardWidget):
instances.append(widget.id)
elif isinstance(widget, LegacyItemCardWidget):
elif isinstance(widget, ConvertorItemCardWidget):
convertor_identifiers.append(widget.identifier)
return instances, context_selected, convertor_identifiers
@ -1066,16 +1066,16 @@ class InstanceCardView(AbstractInstanceView):
if group_name == CONTEXT_GROUP:
continue
legacy_group = group_name == LEGACY_ITEM_GROUP
if legacy_group:
group_widget = self._legacy_items_group
is_convertor_group = group_name == CONVERTOR_ITEM_GROUP
if is_convertor_group:
group_widget = self._convertor_items_group
else:
group_widget = self._widgets_by_group[group_name]
group_selected = False
for widget in group_widget.get_ordered_widgets():
select = False
if legacy_group:
if is_convertor_group:
is_in = widget.identifier in s_convertor_identifiers
else:
is_in = widget.id in s_instance_ids

View file

@ -37,8 +37,8 @@ from ..constants import (
CONTEXT_ID,
CONTEXT_LABEL,
GROUP_ROLE,
LEGACY_CONVERTER_IDENTIFIER,
LEGACY_ITEM_GROUP,
CONVERTER_IDENTIFIER_ROLE,
CONVERTOR_ITEM_GROUP,
)
@ -333,7 +333,7 @@ class InstanceTreeView(QtWidgets.QTreeView):
"""Ids of selected instances."""
instance_ids = set()
for index in self.selectionModel().selectedIndexes():
if index.data(LEGACY_CONVERTER_IDENTIFIER) is not None:
if index.data(CONVERTER_IDENTIFIER_ROLE) is not None:
continue
instance_id = index.data(INSTANCE_ID_ROLE)
@ -450,9 +450,9 @@ class InstanceListView(AbstractInstanceView):
self._context_item = None
self._context_widget = None
self._legacy_group_item = None
self._legacy_group_widget = None
self._legacy_items_by_id = {}
self._convertor_group_item = None
self._convertor_group_widget = None
self._convertor_items_by_id = {}
self._instance_view = instance_view
self._instance_delegate = instance_delegate
@ -467,8 +467,8 @@ class InstanceListView(AbstractInstanceView):
def _update_widget_expand_state(self, index, expanded):
group_name = index.data(GROUP_ROLE)
if group_name == LEGACY_ITEM_GROUP:
group_widget = self._legacy_group_widget
if group_name == CONVERTOR_ITEM_GROUP:
group_widget = self._convertor_group_widget
else:
group_widget = self._group_widgets.get(group_name)
@ -540,7 +540,7 @@ class InstanceListView(AbstractInstanceView):
if self._make_sure_context_item_exists():
sort_at_the_end = True
self._update_legacy_items_group()
self._update_convertor_items_group()
# Prepare instances by their groups
instances_by_group_name = collections.defaultdict(list)
@ -702,25 +702,25 @@ class InstanceListView(AbstractInstanceView):
self._context_item = context_item
return True
def _update_legacy_items_group(self):
def _update_convertor_items_group(self):
created_new_items = False
legacy_items_by_id = self._controller.legacy_items
group_item = self._legacy_group_item
if not legacy_items_by_id and group_item is None:
convertor_items_by_id = self._controller.convertor_items
group_item = self._convertor_group_item
if not convertor_items_by_id and group_item is None:
return created_new_items
root_item = self._instance_model.invisibleRootItem()
if not legacy_items_by_id:
if not convertor_items_by_id:
root_item.removeRow(group_item.row())
self._legacy_group_widget.deleteLater()
self._legacy_group_widget = None
self._legacy_items_by_id = {}
self._convertor_group_widget.deleteLater()
self._convertor_group_widget = None
self._convertor_items_by_id = {}
return created_new_items
if group_item is None:
created_new_items = True
group_item = QtGui.QStandardItem()
group_item.setData(LEGACY_ITEM_GROUP, GROUP_ROLE)
group_item.setData(CONVERTOR_ITEM_GROUP, GROUP_ROLE)
group_item.setData(1, SORT_VALUE_ROLE)
group_item.setData(True, IS_GROUP_ROLE)
group_item.setFlags(QtCore.Qt.ItemIsEnabled)
@ -732,36 +732,38 @@ class InstanceListView(AbstractInstanceView):
)
proxy_index = self._proxy_model.mapFromSource(index)
widget = InstanceListGroupWidget(
LEGACY_ITEM_GROUP, self._instance_view
CONVERTOR_ITEM_GROUP, self._instance_view
)
widget.toggle_checkbox.setVisible(False)
widget.expand_changed.connect(self._on_legacy_group_expand_request)
widget.expand_changed.connect(
self._on_convertor_group_expand_request
)
self._instance_view.setIndexWidget(proxy_index, widget)
self._legacy_group_item = group_item
self._legacy_group_widget = widget
self._convertor_group_item = group_item
self._convertor_group_widget = widget
for row in reversed(range(group_item.rowCount())):
child_item = group_item.child(row)
child_identifier = child_item.data(LEGACY_CONVERTER_IDENTIFIER)
if child_identifier not in legacy_items_by_id:
self._legacy_items_by_id.pop(child_identifier, None)
child_identifier = child_item.data(CONVERTER_IDENTIFIER_ROLE)
if child_identifier not in convertor_items_by_id:
self._convertor_items_by_id.pop(child_identifier, None)
group_item.removeRows(row, 1)
new_items = []
for identifier, convertor_item in legacy_items_by_id.items():
item = self._legacy_items_by_id.get(identifier)
for identifier, convertor_item in convertor_items_by_id.items():
item = self._convertor_items_by_id.get(identifier)
if item is None:
created_new_items = True
item = QtGui.QStandardItem(convertor_item.label)
new_items.append(item)
item.setData(convertor_item.id, INSTANCE_ID_ROLE)
item.setData(convertor_item.label, SORT_VALUE_ROLE)
item.setData(LEGACY_ITEM_GROUP, GROUP_ROLE)
item.setData(CONVERTOR_ITEM_GROUP, GROUP_ROLE)
item.setData(
convertor_item.identifier, LEGACY_CONVERTER_IDENTIFIER
convertor_item.identifier, CONVERTER_IDENTIFIER_ROLE
)
self._legacy_items_by_id[identifier] = item
self._convertor_items_by_id[identifier] = item
if new_items:
group_item.appendRows(new_items)
@ -874,8 +876,8 @@ class InstanceListView(AbstractInstanceView):
proxy_index = self._proxy_model.mapFromSource(group_index)
self._instance_view.setExpanded(proxy_index, expanded)
def _on_legacy_group_expand_request(self, _, expanded):
group_item = self._legacy_group_item
def _on_convertor_group_expand_request(self, _, expanded):
group_item = self._convertor_group_item
if not group_item:
return
group_index = self._instance_model.index(
@ -923,7 +925,7 @@ class InstanceListView(AbstractInstanceView):
context_selected = False
for index in self._instance_view.selectionModel().selectedIndexes():
convertor_identifier = index.data(LEGACY_CONVERTER_IDENTIFIER)
convertor_identifier = index.data(CONVERTER_IDENTIFIER_ROLE)
if convertor_identifier is not None:
convertor_identifiers.append(convertor_identifier)
continue
@ -974,7 +976,7 @@ class InstanceListView(AbstractInstanceView):
(item.child(row), list(new_parent_items))
)
convertor_identifier = item.data(LEGACY_CONVERTER_IDENTIFIER)
convertor_identifier = item.data(CONVERTER_IDENTIFIER_ROLE)
select = False
expand_parent = True