mirror of
https://github.com/alicevision/Meshroom.git
synced 2025-05-12 16:46:53 +02:00
[common] introduce ListModel
*qt: for now, use QObjectListModel for both Dict and List models
This commit is contained in:
parent
d22c2f7f8e
commit
d0c0a28d5d
3 changed files with 31 additions and 4 deletions
|
@ -1,7 +1,7 @@
|
||||||
import meshroom
|
import meshroom
|
||||||
|
|
||||||
Model = None
|
|
||||||
DictModel = None
|
DictModel = None
|
||||||
|
ListModel = None
|
||||||
Slot = None
|
Slot = None
|
||||||
Signal = None
|
Signal = None
|
||||||
Property = None
|
Property = None
|
||||||
|
@ -10,10 +10,10 @@ Variant = None
|
||||||
|
|
||||||
if meshroom.backend == meshroom.Backend.PYSIDE:
|
if meshroom.backend == meshroom.Backend.PYSIDE:
|
||||||
# PySide types
|
# 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:
|
elif meshroom.backend == meshroom.Backend.STANDALONE:
|
||||||
# Core types
|
# Core types
|
||||||
from .core import DictModel, Slot, Signal, Property, BaseObject, Variant
|
from .core import DictModel, ListModel, Slot, Signal, Property, BaseObject, Variant
|
||||||
|
|
||||||
|
|
||||||
class _BaseModel:
|
class _BaseModel:
|
||||||
|
|
|
@ -54,6 +54,32 @@ class CoreDictModel:
|
||||||
self.update(objects)
|
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:
|
class CoreSignal:
|
||||||
""" Simple signal/callback implementation """
|
""" Simple signal/callback implementation """
|
||||||
def __init__(self):
|
def __init__(self):
|
||||||
|
@ -91,6 +117,7 @@ class CoreObject(object):
|
||||||
|
|
||||||
|
|
||||||
DictModel = CoreDictModel
|
DictModel = CoreDictModel
|
||||||
|
ListModel = CoreListModel
|
||||||
Slot = CoreSlot
|
Slot = CoreSlot
|
||||||
Signal = CoreSignal
|
Signal = CoreSignal
|
||||||
Property = CoreProperty
|
Property = CoreProperty
|
||||||
|
|
|
@ -311,8 +311,8 @@ class QTypedObjectListModel(QObjectListModel):
|
||||||
super(QTypedObjectListModel, self)._referenceItem(item)
|
super(QTypedObjectListModel, self)._referenceItem(item)
|
||||||
|
|
||||||
|
|
||||||
Model = QObjectListModel
|
|
||||||
DictModel = QObjectListModel
|
DictModel = QObjectListModel
|
||||||
|
ListModel = QObjectListModel
|
||||||
Slot = QtCore.Slot
|
Slot = QtCore.Slot
|
||||||
Signal = QtCore.Signal
|
Signal = QtCore.Signal
|
||||||
Property = QtCore.Property
|
Property = QtCore.Property
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue