QmlDesigner: Fix issues with Components and Repeaters

- Fixed state preview rendering by deparenting nodes under
  component wraps.
- Ensure state preview image is always clipped to root item.
  The state preview bounding box broke when Repeater was direct
  child of root and had delegate with rotation.
- Allow dragging items under Repeater to create implicit component.
- Allow dragging Components under Repeater.
- Do not ask for target property when Component is dragged under
  any node.
- Update nodeSource properly when reparenting implicit component
  or removing last child of a Component item.
- Fixed scene update when last child of a repeater is deleted/moved.

Fixes: QDS-5197
Change-Id: Iaaf1745e25db3522ffc1dba7fd1b051da29f5aec
Reviewed-by: Samuel Ghinet <samuel.ghinet@qt.io>
Reviewed-by: Mahmoud Badri <mahmoud.badri@qt.io>
Reviewed-by: Thomas Hartmann <thomas.hartmann@qt.io>
Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
This commit is contained in:
Miikka Heikkinen
2021-10-01 12:27:04 +03:00
parent 4036c20f63
commit 2ab6f800b3
11 changed files with 124 additions and 28 deletions
@@ -202,6 +202,9 @@ public:
virtual void setLockedInEditor(bool b);
bool isLockedInEditor() const;
bool isComponentWrap() const;
void setComponentWrap(bool wrap);
void setModifiedFlag(bool b);
protected:
@@ -234,6 +237,7 @@ private:
bool m_isModified = false;
bool m_isLockedInEditor = false;
bool m_isHiddenInEditor = false;
bool m_isComponentWrap = false;
static QHash<EnumerationName, QVariant> m_enumationValueHash;
};