diff --git a/meshroom/common/__init__.py b/meshroom/common/__init__.py index febf2b0a..533b7717 100644 --- a/meshroom/common/__init__.py +++ b/meshroom/common/__init__.py @@ -1,7 +1,7 @@ import meshroom -Model = None DictModel = None +ListModel = None Slot = None Signal = None Property = None @@ -10,10 +10,10 @@ Variant = None if meshroom.backend == meshroom.Backend.PYSIDE: # PySide types - from .qt import DictModel, Slot, Signal, Property, BaseObject, Variant + from .qt import DictModel, ListModel, Slot, Signal, Property, BaseObject, Variant elif meshroom.backend == meshroom.Backend.STANDALONE: # Core types - from .core import DictModel, Slot, Signal, Property, BaseObject, Variant + from .core import DictModel, ListModel, Slot, Signal, Property, BaseObject, Variant class _BaseModel: diff --git a/meshroom/common/core.py b/meshroom/common/core.py index b9f30833..78dee805 100644 --- a/meshroom/common/core.py +++ b/meshroom/common/core.py @@ -54,6 +54,32 @@ class CoreDictModel: self.update(objects) +class CoreListModel: + def __init__(self, parent=None): + self._objects = [] + + def __iter__(self): + return self._objects.__iter__() + + def at(self, idx): + return self._objects[idx] + + def append(self, obj): + self._objects.append(obj) + + def extend(self, iterable): + self._objects.extend(iterable) + + def indexOf(self, obj): + self._objects.index(obj) + + def removeAt(self, idx): + del self._objects[idx] + + def remove(self, obj): + self._objects.remove(obj) + + class CoreSignal: """ Simple signal/callback implementation """ def __init__(self): @@ -91,6 +117,7 @@ class CoreObject(object): DictModel = CoreDictModel +ListModel = CoreListModel Slot = CoreSlot Signal = CoreSignal Property = CoreProperty diff --git a/meshroom/common/qt.py b/meshroom/common/qt.py index 15d1bdcf..bf3cf234 100644 --- a/meshroom/common/qt.py +++ b/meshroom/common/qt.py @@ -311,8 +311,8 @@ class QTypedObjectListModel(QObjectListModel): super(QTypedObjectListModel, self)._referenceItem(item) -Model = QObjectListModel DictModel = QObjectListModel +ListModel = QObjectListModel Slot = QtCore.Slot Signal = QtCore.Signal Property = QtCore.Property