The underlying problem is the method DocumentItem::updateItemSelection() where
the selection is altered. This may cause the destruction and recreation of the
DocumentObjectItems so that the passed pointer can become dangling.
The issue is fixed in two steps:
1. Add the method 'DocumentObjectItem *findItem(App::DocumentObject* obj, const std::string& subname) const'
to safely re-access the item.
2. Add a boolean flag 'dirtyFlag' and the methods insertItem() and removeItem() to DocumentObjectData.
This is needed to check when the iterator over the container becomes invalid.
* QApplication::setFallbackSessionManagementEnabled has been removed
* QString::medRef() has been removed. Use QString::mid() again.
* QTextStream::setCodec has been removed
* Use operator QVariant of the QFont class to make code Qt5 and Qt6 compatible
* Signature of QTreeWidget::mimeData() has changed in Qt6. Remove TreeWidget::mimeData() because it doesn't change the implementation
* QLayout::setMargin() is deprecated in Qt5 and has been removed in Qt6. Use QLayout::setContentsMargins()
* QDateTime::toTime_t() is deprecated in Qt5 and has been removed in Qt6. Use QDateTime::toSecsSinceEpoch()
* QDesktopWidget is deprecated in Qt5 and has been removed in Qt6. Use QScreen
This reverts commit b0452667c72f330323f6b3366f45bf039d05feef, reversing
changes made to b2d99f3fa7b4c7c305aed4a8d975a8624a6d590f.
See forums discussion: https://forum.freecadweb.org/viewtopic.php?p=549120
- fix bug that you can select several objects across different document to make them a group
- fix bug that when more than one object is selected you get a context menu to rename, despite it is unclear what object should be renamed
- add feature to select also the child objects of the selection
The latter was also requested long time ago: https://tracker.freecadweb.org/view.php?id=2397
Adds checkboxes to the document tree which makes it possible to
select multiple document objects on devices without physical keyboard.
These checkboxes are opt-in and can be enabled/disabled from:
Edit -> Preferences -> Display -> Navigation -> Selection
Forum thread for feature the request:
https://forum.freecadweb.org/viewtopic.php?f=34&t=53065
We need to iterate the tree to add/remove the selection boxes when
the enable-setting has been changed.
The size for the first column in the tree is adjusted to fit both
name and optional checkbox.
* Major refactor of tree view to support external linking.
* Item update and selection change are now mostly handled by timer for
performance improvement.
* Major change to drag and drop for better support of switching between
copy, move and replace action, and auto adjustment of placement and
relative link.
* Add second column for user changable object description.
* Unified tree view options and action into command group
Std_TreeViewActions.
* Modified object search function to find external objects using
Expression syntax.