Commit graph

43 commits

Author SHA1 Message Date
Yann Lanthony
b21192282d QObjectListModel: implement 'index' method
Implementing this method allows to use QObjectListModel
in combination with other Qt classes that can act on a model
(eg: QSelectionItemModel, QSortFilterProxyModel...).
2024-12-06 10:12:11 +01:00
Candice Bentéjac
579371fd7c [qt6] Replace all PySide2/shiboken2 imports by PySide6/shiboken6 2024-11-07 18:08:54 +01:00
Candice Bentéjac
41e885d9ff Linting: Clean-up files 2024-09-12 10:50:13 +02:00
Fabien Castan
c986b4a134 [common] DictModel get does not raise errors as in Python
getr raises an error if the key does not exist
2024-06-15 17:10:46 +02:00
Candice Bentéjac
8bef398bed Remove workarounds and backports for Python 2 support
In particular:
- In common/, remove the backport of weakref.WeakMethod
- In docs/ and ui/, use the standard FileNotFoundError class
- Use built-in open() instead of io.open(), and stop importing io
- In core/stats.py, use the standard implementation of xml.etree instead
of the C one
2022-12-05 17:16:21 +01:00
Loïc Vital
b2db98f128 [doc] sphinx documentation setup 2022-10-11 09:59:33 +02:00
ChemicalXandco
c253e7d363 [ui] add support for selecting multiple nodes at once 2021-01-15 18:16:45 +00:00
Fabien Castan
dba781a469 [common] CoreObject: Cannot use ClassSignal in __del__ 2020-09-04 19:54:27 +02:00
Julien-Haudegond
b5e126c2e4 [core] add values method to CoreListModel 2020-08-28 10:31:43 +02:00
Julien-Haudegond
6eeea3bb44 [common] Core: add destroyed signal to CoreObject 2020-08-27 11:44:35 +02:00
Julien-Haudegond
9316b8212e [common] Core: replace CoreSignal with PySignal 2020-08-27 11:41:46 +02:00
Julien-Haudegond
3033e79181 [common] PySignal: allow to disconnect another signal 2020-08-27 11:35:58 +02:00
Julien-Haudegond
3e5e4cf3e9 [common] PySignal file
Add PySignal file from https://github.com/dgovil/PySignal
2020-08-27 11:27:07 +02:00
Julien-Haudegond
79e1c69d5d Merge remote-tracking branch 'origin/develop' into dev/nodesAndTaskManager 2020-08-24 15:19:31 +02:00
Julien-Haudegond
887b33490e [core] avoid direct includes to PySide2 2020-08-13 14:24:44 +02:00
Lee Geertsen
34a90563c8
Update TaskManager when node is removed 2019-11-29 11:34:10 +01:00
Lee Geertsen
c00db25c23
Don't lock graph and node editor while computing nodes
Add possibilty to, while computing nodes:
add more nodes to the task manager,
edit, duplicate and remove nodes without breaking the tasks that are submitted
2019-11-29 11:34:10 +01:00
Yann Lanthony
6ac4a9d712 [desc][qt] use QVariantList for list-type properties
* required for PySide2 > 5.11.1 (and compatible with 5.11.1)
* AttributeItemDelegate: test for list length to determine whether to create a slider component (if range is set to None on Python side, it will be an empty list on the QML/JS side)
2019-01-04 17:30:38 +01:00
Yann Lanthony
8679fd8bf7 [core] maintain a model with CompatibilityNodes on topology change 2018-07-20 17:52:30 +02:00
Yann Lanthony
9f2dbc9639 [reconstruction] small structural re-organization
* move LiveSfmManager.stepCreated to Reconstruction.sfmAugmented
* add utility methods in Reconstruction to get all images/views used in the graph
* ui: perform local auto-layout on sfm augmentation on created nodes
2018-03-21 15:53:34 +01:00
Yann Lanthony
e391d76a82 [common] add 'values' method on DictModels 2018-01-12 13:59:07 +01:00
Yann Lanthony
f3caf529aa [common] CoreListModel: implement __getitem__ 2017-12-04 11:08:49 +01:00
Yann Lanthony
9530ad6805 [core] update CoreListModel
* added setObjectList method
2017-11-30 21:36:32 +01:00
Yann Lanthony
d4c1ee6e83 [qt] delay objects deletion until next event loop
avoid warning messages when QML engine tries to evaluate an object that is already deleted
2017-11-30 21:35:43 +01:00
Yann Lanthony
16db901d86 [core] NodeChunks as a ListModel + [ui] DFS sorted nodes proxy model
* core: NodeChunks are now stored in a ListModel inside Node
* ui: introduce SortedModelByReference
* ui: UIGraph exposes a proxy model of its graph's nodes sorted as visited by DFS (instead of another model of chunks)
* ui: added NodeChunks Component
2017-11-28 21:43:15 +01:00
Yann Lanthony
6945cb7738 [core] fix: CoreListModel.indexOf actually returns the index 2017-11-17 17:51:41 +01:00
Yann Lanthony
f029a573b2 [qt] QObjectListModel: take ownership of objects if not already parented
Allows to explicitly call deleteLater() on such objects that are removed from the model
2017-11-07 19:51:05 +01:00
Yann Lanthony
a2e1369c9a [common] improve core models
* CoreListModel:
    * allow removal of multiple contiguious elements
    * add insert method 
* CoreDictModel:
    * use del to remove elemvent from list
2017-11-06 18:34:14 +01:00
Fabien Castan
17e77f2e82 [core] add 'items' on CoreModel 2017-10-31 12:09:26 +01:00
Fabien Castan
46f6865a25 [core] implement uid computation for ListAttributes and GroupAttributes 2017-10-31 10:46:32 +01:00
Yann Lanthony
d0c0a28d5d [common] introduce ListModel
*qt: for now, use QObjectListModel for both Dict and List models
2017-10-23 19:55:32 +02:00
Yann Lanthony
2a213b70cf [common] add 'parent' field to CoreObject
useful to match QObject's API
2017-10-23 19:55:32 +02:00
Yann Lanthony
8e472b7d2b [common] qt: use begin/endResetModel in 'clear' method 2017-10-23 19:55:31 +02:00
Yann Lanthony
455d61672e [common] use python list naming for adding elements to QObjectListModel
differentiate append and extend methods
2017-10-23 19:55:31 +02:00
Yann Lanthony
1e306f8408 rename Model to DictModel + augment API
* add "update" and "reset" methods
* core: no more default keyAttrName
* qt: if keyAttrName is empty, don't register items in internal dictionnary
2017-10-23 19:54:55 +02:00
Yann Lanthony
9c7d0c1b1c [desc] Attribute inherits BaseObject and expose members as properties
* also expose graph.Attribute's desc as a property
* introduce Variant in data structure backend API
2017-10-23 15:07:09 +02:00
Yann Lanthony
6fa0cba8db [qt-backend] fix object referencement in setObjectList method 2017-10-20 14:57:32 +02:00
Fabien Castan
540fe3d47f [common] CoreModel: raise an error in getter if the parameter does not exist 2017-10-16 12:24:00 +02:00
Fabien Castan
931ad23f50 Add explicit backend between standalone and pyside 2017-10-16 12:23:59 +02:00
Yann Lanthony
78c4b7f4f2 [common] add 'connect' method to CoreSignal
For now, callbacks are not triggered when 'emit' is called, since we might not need this level of update when using the non-UI version of meshroom. 
TODO: Make sure of this
2017-10-02 15:53:59 +02:00
Yann Lanthony
a6ced86b3d [model] fix QObjectListModel 'pop' method
return the removed object
2017-10-02 15:28:51 +02:00
Fabien Castan
2fcdc586a6 [bin] fix statistics 2017-10-02 14:56:36 +02:00
Yann Lanthony
547e6c93b6 rename "types" to "common" to avoid name conflict
types is already a standard python package
2017-09-25 20:04:41 +02:00