QmlDesigner: Remove parent from abstract view

We apply not very often the parent to views. So it can lead to dangling
pointer if the parent is used by other objects and does not handle the
null pointer case. It can lead to double deletion if the parent is
deleted before the object when it is on the stack or handled by smart
pointer.

If you really want to use it there is still setParent.

Change-Id: I1fc6b145a50f037a0e9d415fb36e7970ea7296ed
Reviewed-by: Tim Jenssen <tim.jenssen@qt.io>
This commit is contained in:
Marco Bubke
2022-09-15 13:07:45 +02:00
committed by Tim Jenssen
parent 4bb4e07ad8
commit 0be4de69d8
55 changed files with 254 additions and 280 deletions

View File

@@ -269,10 +269,10 @@ void AssetExporter::preprocessQmlFile(const Utils::FilePath &path)
textEdit.setPlainText(QString::fromUtf8(reader.data())); textEdit.setPlainText(QString::fromUtf8(reader.data()));
NotIndentingTextEditModifier *modifier = new NotIndentingTextEditModifier(&textEdit); NotIndentingTextEditModifier *modifier = new NotIndentingTextEditModifier(&textEdit);
modifier->setParent(model.get()); modifier->setParent(model.get());
RewriterView *rewriterView = new RewriterView(QmlDesigner::RewriterView::Validate, model.get()); auto rewriterView = std::make_unique<RewriterView>(QmlDesigner::RewriterView::Validate);
rewriterView->setCheckSemanticErrors(false); rewriterView->setCheckSemanticErrors(false);
rewriterView->setTextModifier(modifier); rewriterView->setTextModifier(modifier);
model->attachView(rewriterView); model->attachView(rewriterView.get());
rewriterView->restoreAuxiliaryData(); rewriterView->restoreAuxiliaryData();
ModelNode rootNode = rewriterView->rootModelNode(); ModelNode rootNode = rewriterView->rootModelNode();
if (!rootNode.isValid()) { if (!rootNode.isValid()) {

View File

@@ -23,8 +23,8 @@ const int MinRetry = 2;
namespace QmlDesigner { namespace QmlDesigner {
AssetExporterView::AssetExporterView(QObject *parent) : AbstractView(parent), AssetExporterView::AssetExporterView()
m_timer(this) : m_timer(this)
{ {
m_timer.setInterval(RetryIntervalMs); m_timer.setInterval(RetryIntervalMs);
// We periodically check if file is loaded. // We periodically check if file is loaded.

View File

@@ -29,7 +29,7 @@ public:
Loaded Loaded
}; };
AssetExporterView(QObject *parent = nullptr); AssetExporterView();
bool loadQmlFile(const Utils::FilePath &path, uint timeoutSecs = 10); bool loadQmlFile(const Utils::FilePath &path, uint timeoutSecs = 10);
bool saveQmlFile(QString *error) const; bool saveQmlFile(QString *error) const;

View File

@@ -43,9 +43,7 @@ public:
SynchronousImageCache synchronousFontImageCache{storage, timeStampProvider, fontCollector}; SynchronousImageCache synchronousFontImageCache{storage, timeStampProvider, fontCollector};
}; };
AssetsLibraryView::AssetsLibraryView(QObject *parent) AssetsLibraryView::AssetsLibraryView() {}
: AbstractView(parent)
{}
AssetsLibraryView::~AssetsLibraryView() AssetsLibraryView::~AssetsLibraryView()
{} {}

View File

@@ -19,7 +19,7 @@ class AssetsLibraryView : public AbstractView
Q_OBJECT Q_OBJECT
public: public:
AssetsLibraryView(QObject* parent = nullptr); AssetsLibraryView();
~AssetsLibraryView() override; ~AssetsLibraryView() override;
bool hasWidget() const override; bool hasWidget() const override;

View File

@@ -12,10 +12,9 @@
namespace QmlDesigner { namespace QmlDesigner {
DesignerActionManagerView::DesignerActionManagerView() DesignerActionManagerView::DesignerActionManagerView()
: AbstractView(nullptr), : m_designerActionManager(this)
m_designerActionManager(this), , m_isInRewriterTransaction(false)
m_isInRewriterTransaction(false), , m_setupContextDirty(false)
m_setupContextDirty(false)
{ {
} }

View File

@@ -581,7 +581,7 @@ static QString toUpper(const QString &signal)
static void addSignal(const QString &typeName, const QString &itemId, const QString &signalName, bool isRootModelNode) static void addSignal(const QString &typeName, const QString &itemId, const QString &signalName, bool isRootModelNode)
{ {
auto model = Model::create("Item", 2, 0); auto model = Model::create("Item", 2, 0);
RewriterView rewriterView(RewriterView::Amend, nullptr); RewriterView rewriterView(RewriterView::Amend);
auto textEdit = qobject_cast<TextEditor::TextEditorWidget*> auto textEdit = qobject_cast<TextEditor::TextEditorWidget*>
(Core::EditorManager::currentEditor()->widget()); (Core::EditorManager::currentEditor()->widget());
@@ -1525,7 +1525,7 @@ void styleMerge(const SelectionContext &selectionContext, const QString &templat
textEditTemplate.setPlainText(imports + qmlTemplateString); textEditTemplate.setPlainText(imports + qmlTemplateString);
NotIndentingTextEditModifier textModifierTemplate(&textEditTemplate); NotIndentingTextEditModifier textModifierTemplate(&textEditTemplate);
QScopedPointer<RewriterView> templateRewriterView(new RewriterView(RewriterView::Amend, nullptr)); QScopedPointer<RewriterView> templateRewriterView(new RewriterView(RewriterView::Amend));
templateRewriterView->setTextModifier(&textModifierTemplate); templateRewriterView->setTextModifier(&textModifierTemplate);
templateModel->attachView(templateRewriterView.data()); templateModel->attachView(templateRewriterView.data());
templateRewriterView->setCheckSemanticErrors(false); templateRewriterView->setCheckSemanticErrors(false);
@@ -1544,7 +1544,7 @@ void styleMerge(const SelectionContext &selectionContext, const QString &templat
textEditStyle.setPlainText(parentRewriterView->textModifierContent()); textEditStyle.setPlainText(parentRewriterView->textModifierContent());
NotIndentingTextEditModifier textModifierStyle(&textEditStyle); NotIndentingTextEditModifier textModifierStyle(&textEditStyle);
QScopedPointer<RewriterView> styleRewriterView(new RewriterView(RewriterView::Amend, nullptr)); QScopedPointer<RewriterView> styleRewriterView(new RewriterView(RewriterView::Amend));
styleRewriterView->setTextModifier(&textModifierStyle); styleRewriterView->setTextModifier(&textModifierStyle);
styleModel->attachView(styleRewriterView.data()); styleModel->attachView(styleRewriterView.data());

View File

@@ -24,12 +24,12 @@ namespace QmlDesigner {
namespace Internal { namespace Internal {
ConnectionView::ConnectionView(QObject *parent) : AbstractView(parent), ConnectionView::ConnectionView()
m_connectionViewWidget(new ConnectionViewWidget()), : m_connectionViewWidget(new ConnectionViewWidget())
m_connectionModel(new ConnectionModel(this)), , m_connectionModel(new ConnectionModel(this))
m_bindingModel(new BindingModel(this)), , m_bindingModel(new BindingModel(this))
m_dynamicPropertiesModel(new DynamicPropertiesModel(false, this)), , m_dynamicPropertiesModel(new DynamicPropertiesModel(false, this))
m_backendModel(new BackendModel(this)) , m_backendModel(new BackendModel(this))
{ {
connectionViewWidget()->setBindingModel(m_bindingModel); connectionViewWidget()->setBindingModel(m_bindingModel);
connectionViewWidget()->setConnectionModel(m_connectionModel); connectionViewWidget()->setConnectionModel(m_connectionModel);

View File

@@ -28,7 +28,7 @@ class ConnectionView : public AbstractView
Q_OBJECT Q_OBJECT
public: public:
ConnectionView(QObject *parent = nullptr); ConnectionView();
~ConnectionView() override; ~ConnectionView() override;
// AbstractView // AbstractView

View File

@@ -21,9 +21,8 @@
namespace QmlDesigner { namespace QmlDesigner {
CurveEditorView::CurveEditorView([[maybe_unused]] QObject *parent) CurveEditorView::CurveEditorView()
: AbstractView(parent) : m_block(false)
, m_block(false)
, m_model(new CurveEditorModel()) , m_model(new CurveEditorModel())
, m_editor(new CurveEditor(m_model)) , m_editor(new CurveEditor(m_model))
{ {

View File

@@ -16,7 +16,7 @@ class CurveEditorView : public AbstractView
Q_OBJECT Q_OBJECT
public: public:
explicit CurveEditorView(QObject *parent = nullptr); explicit CurveEditorView();
~CurveEditorView() override; ~CurveEditorView() override;
public: public:

View File

@@ -39,8 +39,8 @@ namespace QmlDesigner {
namespace Internal { namespace Internal {
DebugView::DebugView(QObject *parent) : AbstractView(parent), DebugView::DebugView()
m_debugViewWidget(new DebugViewWidget) : m_debugViewWidget(new DebugViewWidget)
{ {
} }

View File

@@ -17,7 +17,7 @@ class DebugView : public AbstractView
Q_OBJECT Q_OBJECT
public: public:
DebugView(QObject *parent = nullptr); DebugView();
~DebugView() override; ~DebugView() override;
// AbstractView // AbstractView

View File

@@ -31,8 +31,7 @@
namespace QmlDesigner { namespace QmlDesigner {
Edit3DView::Edit3DView(QObject *parent) Edit3DView::Edit3DView()
: AbstractView(parent)
{ {
m_compressionTimer.setInterval(1000); m_compressionTimer.setInterval(1000);
m_compressionTimer.setSingleShot(true); m_compressionTimer.setSingleShot(true);

View File

@@ -27,7 +27,7 @@ class QMLDESIGNERCORE_EXPORT Edit3DView : public AbstractView
Q_OBJECT Q_OBJECT
public: public:
Edit3DView(QObject *parent = nullptr); Edit3DView();
~Edit3DView() override; ~Edit3DView() override;
WidgetInfo widgetInfo() override; WidgetInfo widgetInfo() override;

View File

@@ -196,7 +196,7 @@ void EventList::initialize(EventListPluginView *parent)
} }
if (!m_eventView) { if (!m_eventView) {
m_eventView = std::make_unique<EventListView>(m_model.get()); m_eventView = std::make_unique<EventListView>();
m_model->attachView(m_eventView.get()); m_model->attachView(m_eventView.get());
} }
} }

View File

@@ -75,7 +75,8 @@ void EventListDialog::initialize(EventList &events)
Model *model = events.model(); Model *model = events.model();
m_modifier->setParent(model); m_modifier->setParent(model);
m_rewriter = new RewriterView(QmlDesigner::RewriterView::Validate, model); m_rewriter = new RewriterView(QmlDesigner::RewriterView::Validate);
m_rewriter->setParent(model);
m_rewriter->setTextModifier(m_modifier); m_rewriter->setTextModifier(m_modifier);
m_rewriter->setCheckSemanticErrors(false); m_rewriter->setCheckSemanticErrors(false);
model->attachView(m_rewriter); model->attachView(m_rewriter);

View File

@@ -30,9 +30,8 @@ SignalHandlerProperty signalPropertyFromAction(ActionInterface *interface)
return SignalHandlerProperty(); return SignalHandlerProperty();
} }
EventListPluginView::EventListPluginView(QObject* parent) EventListPluginView::EventListPluginView()
: AbstractView(parent) : m_eventlist()
, m_eventlist()
, m_eventListDialog(nullptr) , m_eventListDialog(nullptr)
, m_assigner(nullptr) , m_assigner(nullptr)
, m_signalConnector(nullptr) , m_signalConnector(nullptr)

View File

@@ -16,7 +16,7 @@ class EventListPluginView : public AbstractView
Q_OBJECT Q_OBJECT
public: public:
EventListPluginView(QObject* parent = nullptr); EventListPluginView();
~EventListPluginView() override = default; ~EventListPluginView() override = default;
void registerActions(); void registerActions();

View File

@@ -50,11 +50,9 @@ QStringList EventListModel::connectEvents(const QStringList &eventIds)
return out; return out;
} }
EventListView::EventListView()
EventListView::EventListView(QObject *parent) : m_eventlist()
: AbstractView(parent) , m_model(std::make_unique<EventListModel>())
, m_eventlist()
, m_model(new EventListModel(this))
{} {}
EventListView::~EventListView() {} EventListView::~EventListView() {}
@@ -78,7 +76,7 @@ void EventListView::nodeReparented(const ModelNode &node,
EventListModel *EventListView::eventListModel() const EventListModel *EventListView::eventListModel() const
{ {
return m_model; return m_model.get();
} }
void EventListView::addEvent(const Event &event) void EventListView::addEvent(const Event &event)

View File

@@ -7,6 +7,8 @@
#include <abstractview.h> #include <abstractview.h>
#include <QStandardItemModel> #include <QStandardItemModel>
#include <memory>
namespace QmlDesigner { namespace QmlDesigner {
struct Event struct Event
@@ -49,7 +51,7 @@ class EventListView : public AbstractView
Q_OBJECT Q_OBJECT
public: public:
explicit EventListView(QObject *parent = nullptr); explicit EventListView();
~EventListView() override; ~EventListView() override;
void nodeRemoved(const ModelNode &removedNode, void nodeRemoved(const ModelNode &removedNode,
@@ -73,7 +75,7 @@ private:
void reset(); void reset();
EventList m_eventlist; EventList m_eventlist;
EventListModel *m_model; std::unique_ptr<EventListModel> m_model;
}; };
} // namespace QmlDesigner. } // namespace QmlDesigner.

View File

@@ -41,11 +41,10 @@ NodeListModel::NodeListModel(QObject *parent)
setSortRole(internalIdRole); setSortRole(internalIdRole);
} }
NodeListView::NodeListView(AbstractView *parent) NodeListView::NodeListView(AbstractView *parent)
: AbstractView(parent) : m_itemModel(new NodeListModel(this))
, m_itemModel(new NodeListModel(this))
{ {
setParent(parent);
parent->model()->attachView(this); parent->model()->attachView(this);
reset(); reset();
} }

View File

@@ -42,10 +42,7 @@
namespace QmlDesigner { namespace QmlDesigner {
FormEditorView::FormEditorView(QObject *parent) FormEditorView::FormEditorView() {}
: AbstractView(parent)
{
}
FormEditorScene* FormEditorView::scene() const FormEditorScene* FormEditorView::scene() const
{ {

View File

@@ -39,7 +39,7 @@ class QMLDESIGNERCORE_EXPORT FormEditorView : public AbstractView
Q_OBJECT Q_OBJECT
public: public:
FormEditorView(QObject *parent = nullptr); FormEditorView();
~FormEditorView() override; ~FormEditorView() override;
// AbstractView // AbstractView

View File

@@ -15,10 +15,9 @@
namespace QmlDesigner { namespace QmlDesigner {
ComponentView::ComponentView(QObject *parent) ComponentView::ComponentView()
: AbstractView(parent), : m_standardItemModel(new QStandardItemModel(this))
m_standardItemModel(new QStandardItemModel(this)), , m_componentAction(new ComponentAction(this))
m_componentAction(new ComponentAction(this))
{ {
} }

View File

@@ -27,7 +27,7 @@ public:
ModelNodeRole = Qt::UserRole ModelNodeRole = Qt::UserRole
}; };
ComponentView(QObject *parent = nullptr); ComponentView();
void modelAttached(Model *model) override; void modelAttached(Model *model) override;
void modelAboutToBeDetached(Model *model) override; void modelAboutToBeDetached(Model *model) override;

View File

@@ -63,7 +63,7 @@ namespace QmlDesigner {
DesignDocument::DesignDocument(ProjectStorage<Sqlite::Database> &projectStorage) DesignDocument::DesignDocument(ProjectStorage<Sqlite::Database> &projectStorage)
: m_documentModel(Model::create("QtQuick.Item", 1, 0)) : m_documentModel(Model::create("QtQuick.Item", 1, 0))
, m_subComponentManager(new SubComponentManager(m_documentModel.get(), this)) , m_subComponentManager(new SubComponentManager(m_documentModel.get(), this))
, m_rewriterView(new RewriterView(RewriterView::Amend, m_documentModel.get())) , m_rewriterView(new RewriterView(RewriterView::Amend))
, m_documentLoaded(false) , m_documentLoaded(false)
, m_currentTarget(nullptr) , m_currentTarget(nullptr)
, m_projectStorage(projectStorage) , m_projectStorage(projectStorage)

View File

@@ -22,8 +22,8 @@
namespace QmlDesigner { namespace QmlDesigner {
DesignDocumentView::DesignDocumentView(QObject *parent) DesignDocumentView::DesignDocumentView()
: AbstractView(parent), m_modelMerger(new ModelMerger(this)) : m_modelMerger(new ModelMerger(this))
{ {
} }
@@ -97,7 +97,7 @@ QString DesignDocumentView::toText() const
textEdit.setPlainText(imports + QStringLiteral("Item {\n}\n")); textEdit.setPlainText(imports + QStringLiteral("Item {\n}\n"));
NotIndentingTextEditModifier modifier(&textEdit); NotIndentingTextEditModifier modifier(&textEdit);
QScopedPointer<RewriterView> rewriterView(new RewriterView(RewriterView::Amend, nullptr)); QScopedPointer<RewriterView> rewriterView(new RewriterView(RewriterView::Amend));
rewriterView->setCheckSemanticErrors(false); rewriterView->setCheckSemanticErrors(false);
rewriterView->setTextModifier(&modifier); rewriterView->setTextModifier(&modifier);
outputModel->setRewriterView(rewriterView.data()); outputModel->setRewriterView(rewriterView.data());

View File

@@ -15,7 +15,7 @@ class QMLDESIGNERCORE_EXPORT DesignDocumentView : public AbstractView
{ {
Q_OBJECT Q_OBJECT
public: public:
DesignDocumentView(QObject *parent = nullptr); DesignDocumentView();
~DesignDocumentView() override; ~DesignDocumentView() override;
ModelNode insertModel(const ModelNode &modelNode); ModelNode insertModel(const ModelNode &modelNode);

View File

@@ -25,9 +25,7 @@
namespace QmlDesigner { namespace QmlDesigner {
MaterialBrowserView::MaterialBrowserView(QObject *parent) MaterialBrowserView::MaterialBrowserView() {}
: AbstractView(parent)
{}
MaterialBrowserView::~MaterialBrowserView() MaterialBrowserView::~MaterialBrowserView()
{} {}

View File

@@ -17,7 +17,7 @@ class MaterialBrowserView : public AbstractView
Q_OBJECT Q_OBJECT
public: public:
MaterialBrowserView(QObject *parent = nullptr); MaterialBrowserView();
~MaterialBrowserView() override; ~MaterialBrowserView() override;
bool hasWidget() const override; bool hasWidget() const override;

View File

@@ -48,9 +48,8 @@
namespace QmlDesigner { namespace QmlDesigner {
MaterialEditorView::MaterialEditorView(QWidget *parent) MaterialEditorView::MaterialEditorView()
: AbstractView(parent) : m_stackedWidget(new QStackedWidget)
, m_stackedWidget(new QStackedWidget(parent))
, m_dynamicPropertiesModel(new Internal::DynamicPropertiesModel(true, this)) , m_dynamicPropertiesModel(new Internal::DynamicPropertiesModel(true, this))
{ {
m_updateShortcut = new QShortcut(QKeySequence(Qt::CTRL + Qt::Key_F7), m_stackedWidget); m_updateShortcut = new QShortcut(QKeySequence(Qt::CTRL + Qt::Key_F7), m_stackedWidget);

View File

@@ -31,7 +31,7 @@ class MaterialEditorView : public AbstractView
Q_OBJECT Q_OBJECT
public: public:
MaterialEditorView(QWidget *parent = nullptr); MaterialEditorView();
~MaterialEditorView() override; ~MaterialEditorView() override;
bool hasWidget() const override; bool hasWidget() const override;

View File

@@ -88,9 +88,8 @@ static inline void moveNodesDown(const QList<QmlDesigner::ModelNode> &nodes)
namespace QmlDesigner { namespace QmlDesigner {
NavigatorView::NavigatorView(QObject* parent) : NavigatorView::NavigatorView()
AbstractView(parent), : m_blockSelectionChangedSignal(false)
m_blockSelectionChangedSignal(false)
{ {
} }

View File

@@ -40,7 +40,7 @@ class NavigatorView : public AbstractView
Q_OBJECT Q_OBJECT
public: public:
NavigatorView(QObject* parent = nullptr); NavigatorView();
~NavigatorView() override; ~NavigatorView() override;
bool hasWidget() const override; bool hasWidget() const override;

View File

@@ -33,11 +33,10 @@ namespace QmlDesigner {
We always have 'one' current state, where we get updates from (see sceneChanged()). In case We always have 'one' current state, where we get updates from (see sceneChanged()). In case
the current state is the base state, we render the base state + all other states. the current state is the base state, we render the base state + all other states.
*/ */
StatesEditorView::StatesEditorView(QObject *parent) : StatesEditorView::StatesEditorView()
AbstractView(parent), : m_statesEditorModel(new StatesEditorModel(this))
m_statesEditorModel(new StatesEditorModel(this)), , m_lastIndex(-1)
m_lastIndex(-1), , m_editor(nullptr)
m_editor(nullptr)
{ {
Q_ASSERT(m_statesEditorModel); Q_ASSERT(m_statesEditorModel);
// base state // base state

View File

@@ -17,7 +17,7 @@ class StatesEditorView : public AbstractView {
Q_OBJECT Q_OBJECT
public: public:
explicit StatesEditorView(QObject *parent = nullptr); explicit StatesEditorView();
~StatesEditorView() override; ~StatesEditorView() override;
void renameState(int internalNodeId,const QString &newName); void renameState(int internalNodeId,const QString &newName);

View File

@@ -57,8 +57,7 @@ namespace Experimental {
We always have 'one' current state, where we get updates from (see sceneChanged()). In case We always have 'one' current state, where we get updates from (see sceneChanged()). In case
the current state is the base state, we render the base state + all other states. the current state is the base state, we render the base state + all other states.
*/ */
StatesEditorView::StatesEditorView(QObject *parent) : StatesEditorView::StatesEditorView() :
AbstractView(parent),
m_statesEditorModel(new StatesEditorModel(this)), m_statesEditorModel(new StatesEditorModel(this)),
m_lastIndex(-1), m_lastIndex(-1),
m_editor(nullptr) m_editor(nullptr)

View File

@@ -45,7 +45,7 @@ class StatesEditorView : public AbstractView {
Q_OBJECT Q_OBJECT
public: public:
explicit StatesEditorView(QObject *parent = nullptr); explicit StatesEditorView();
~StatesEditorView() override; ~StatesEditorView() override;
void renameState(int internalNodeId,const QString &newName); void renameState(int internalNodeId,const QString &newName);

View File

@@ -42,9 +42,8 @@ namespace QmlDesigner {
const char TEXTEDITOR_CONTEXT_ID[] = "QmlDesigner.TextEditorContext"; const char TEXTEDITOR_CONTEXT_ID[] = "QmlDesigner.TextEditorContext";
TextEditorView::TextEditorView(QObject *parent) TextEditorView::TextEditorView()
: AbstractView(parent) : m_widget(new TextEditorWidget(this))
, m_widget(new TextEditorWidget(this))
, m_textEditorContext(new Internal::TextEditorContext(m_widget)) , m_textEditorContext(new Internal::TextEditorContext(m_widget))
{ {
Core::ICore::addContextObject(m_textEditorContext); Core::ICore::addContextObject(m_textEditorContext);

View File

@@ -25,7 +25,7 @@ class QMLDESIGNERCORE_EXPORT TextEditorView : public AbstractView
Q_OBJECT Q_OBJECT
public: public:
TextEditorView(QObject *parent = nullptr); TextEditorView();
~TextEditorView() override; ~TextEditorView() override;
// AbstractView // AbstractView

View File

@@ -45,9 +45,8 @@
namespace QmlDesigner { namespace QmlDesigner {
TimelineView::TimelineView(QObject *parent) TimelineView::TimelineView()
: AbstractView(parent) : m_timelineWidget(nullptr)
, m_timelineWidget(nullptr)
{ {
EasingCurve::registerStreamOperators(); EasingCurve::registerStreamOperators();
setEnabled(false); setEnabled(false);

View File

@@ -18,7 +18,7 @@ class TimelineView : public AbstractView
Q_OBJECT Q_OBJECT
public: public:
explicit TimelineView(QObject *parent = nullptr); explicit TimelineView();
~TimelineView() override; ~TimelineView() override;
//Abstract View //Abstract View
WidgetInfo widgetInfo() override; WidgetInfo widgetInfo() override;

View File

@@ -40,9 +40,8 @@
namespace QmlDesigner { namespace QmlDesigner {
TransitionEditorView::TransitionEditorView(QObject *parent) TransitionEditorView::TransitionEditorView()
: AbstractView(parent) : m_transitionEditorWidget(nullptr)
, m_transitionEditorWidget(nullptr)
{ {
} }

View File

@@ -16,7 +16,7 @@ class TransitionEditorView : public AbstractView
Q_OBJECT Q_OBJECT
public: public:
explicit TransitionEditorView(QObject *parent = nullptr); explicit TransitionEditorView();
~TransitionEditorView() override; ~TransitionEditorView() override;
//Abstract View //Abstract View
WidgetInfo widgetInfo() override; WidgetInfo widgetInfo() override;

View File

@@ -56,7 +56,7 @@ void ImageCacheCollector::start(Utils::SmallStringView name,
CaptureCallback captureCallback, CaptureCallback captureCallback,
AbortCallback abortCallback) AbortCallback abortCallback)
{ {
RewriterView rewriterView{RewriterView::Amend, nullptr}; RewriterView rewriterView{RewriterView::Amend};
NodeInstanceView nodeInstanceView{m_connectionManager}; NodeInstanceView nodeInstanceView{m_connectionManager};
nodeInstanceView.setCaptureImageMinimumAndMaximumSize(captureImageMinimumSize, nodeInstanceView.setCaptureImageMinimumAndMaximumSize(captureImageMinimumSize,
captureImageMaximumSize); captureImageMaximumSize);

View File

@@ -78,8 +78,7 @@ public:
EmptyPropertiesRemoved = 0x2 EmptyPropertiesRemoved = 0x2
}; };
Q_DECLARE_FLAGS(PropertyChangeFlags, PropertyChangeFlag) Q_DECLARE_FLAGS(PropertyChangeFlags, PropertyChangeFlag)
AbstractView(QObject *parent = nullptr) AbstractView() {}
: QObject(parent) {}
~AbstractView() override; ~AbstractView() override;

View File

@@ -53,7 +53,7 @@ public:
}; };
public: public:
RewriterView(DifferenceHandling differenceHandling = RewriterView::Amend, QObject *parent = nullptr); RewriterView(DifferenceHandling differenceHandling = RewriterView::Amend);
~RewriterView() override; ~RewriterView() override;
void modelAttached(Model *model) override; void modelAttached(Model *model) override;

View File

@@ -218,7 +218,7 @@ static QmlObjectNode createQmlObjectNodeFromSource(AbstractView *view,
textEdit.setPlainText(source); textEdit.setPlainText(source);
NotIndentingTextEditModifier modifier(&textEdit); NotIndentingTextEditModifier modifier(&textEdit);
QScopedPointer<RewriterView> rewriterView(new RewriterView(RewriterView::Amend, nullptr)); QScopedPointer<RewriterView> rewriterView(new RewriterView(RewriterView::Amend));
rewriterView->setCheckSemanticErrors(false); rewriterView->setCheckSemanticErrors(false);
rewriterView->setTextModifier(&modifier); rewriterView->setTextModifier(&modifier);
rewriterView->setAllowComponentRoot(true); rewriterView->setAllowComponentRoot(true);

View File

@@ -59,12 +59,11 @@ bool debugQmlPuppet()
#endif #endif
} }
RewriterView::RewriterView(DifferenceHandling differenceHandling, QObject *parent): RewriterView::RewriterView(DifferenceHandling differenceHandling)
AbstractView(parent), : m_differenceHandling(differenceHandling)
m_differenceHandling(differenceHandling), , m_positionStorage(new ModelNodePositionStorage)
m_positionStorage(new ModelNodePositionStorage), , m_modelToTextMerger(new Internal::ModelToTextMerger(this))
m_modelToTextMerger(new Internal::ModelToTextMerger(this)), , m_textToModelMerger(new Internal::TextToModelMerger(this))
m_textToModelMerger(new Internal::TextToModelMerger(this))
{ {
m_amendTimer.setSingleShot(true); m_amendTimer.setSingleShot(true);

View File

@@ -58,9 +58,8 @@ VariantProperty TestModelToTextMerger::findAddedVariantProperty(const VariantPro
return VariantProperty(); return VariantProperty();
} }
TestRewriterView::TestRewriterView(QObject *parent, TestRewriterView::TestRewriterView(DifferenceHandling differenceHandling)
DifferenceHandling differenceHandling) : RewriterView(differenceHandling)
: RewriterView(differenceHandling, parent)
{ {
//Unit tests do not like the semantic errors //Unit tests do not like the semantic errors
setCheckSemanticErrors(false); setCheckSemanticErrors(false);

View File

@@ -26,8 +26,7 @@ class TestRewriterView : public RewriterView
Q_OBJECT Q_OBJECT
public: public:
TestRewriterView(QObject *parent = 0, TestRewriterView(DifferenceHandling differenceHandling = RewriterView::Validate);
DifferenceHandling differenceHandling = RewriterView::Validate);
Internal::TestModelToTextMerger *modelToTextMerger() const; Internal::TestModelToTextMerger *modelToTextMerger() const;
Internal::TextToModelMerger *textToModelMerger() const; Internal::TextToModelMerger *textToModelMerger() const;

File diff suppressed because it is too large Load Diff

View File

@@ -15,16 +15,7 @@
#include <model.h> #include <model.h>
#include <nodeinstanceview.h> #include <nodeinstanceview.h>
TestView::TestView(QmlDesigner::Model *model) TestView::TestView() {}
: QmlDesigner::AbstractView(model)
{
/*
QmlDesigner::NodeInstanceView *nodeInstanceView = new QmlDesigner::NodeInstanceView(model, QmlDesigner::NodeInstanceServerInterface::TestModus);
if (model)
model->setNodeInstanceView(nodeInstanceView);
*/
}
void TestView::modelAttached(QmlDesigner::Model *model) void TestView::modelAttached(QmlDesigner::Model *model)
{ {

View File

@@ -29,7 +29,7 @@ public:
QStringList arguments; QStringList arguments;
}; };
TestView(QmlDesigner::Model *model); TestView();
void modelAttached(QmlDesigner::Model *model); void modelAttached(QmlDesigner::Model *model);
void modelAboutToBeDetached(QmlDesigner::Model *model); void modelAboutToBeDetached(QmlDesigner::Model *model);