forked from qt-creator/qt-creator
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:
@@ -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()) {
|
||||||
|
|||||||
@@ -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.
|
||||||
|
|||||||
@@ -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;
|
||||||
|
|||||||
@@ -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()
|
||||||
{}
|
{}
|
||||||
|
|||||||
@@ -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;
|
||||||
|
|||||||
@@ -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)
|
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -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());
|
||||||
|
|
||||||
|
|||||||
@@ -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);
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
@@ -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))
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -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:
|
||||||
|
|||||||
@@ -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)
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
@@ -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);
|
||||||
|
|||||||
@@ -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;
|
||||||
|
|||||||
@@ -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());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -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);
|
||||||
|
|||||||
@@ -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)
|
||||||
|
|||||||
@@ -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();
|
||||||
|
|||||||
@@ -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)
|
||||||
|
|||||||
@@ -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.
|
||||||
|
|||||||
@@ -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();
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -42,10 +42,7 @@
|
|||||||
|
|
||||||
namespace QmlDesigner {
|
namespace QmlDesigner {
|
||||||
|
|
||||||
FormEditorView::FormEditorView(QObject *parent)
|
FormEditorView::FormEditorView() {}
|
||||||
: AbstractView(parent)
|
|
||||||
{
|
|
||||||
}
|
|
||||||
|
|
||||||
FormEditorScene* FormEditorView::scene() const
|
FormEditorScene* FormEditorView::scene() const
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
@@ -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))
|
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -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;
|
||||||
|
|||||||
@@ -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)
|
||||||
|
|||||||
@@ -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());
|
||||||
|
|||||||
@@ -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);
|
||||||
|
|||||||
@@ -25,9 +25,7 @@
|
|||||||
|
|
||||||
namespace QmlDesigner {
|
namespace QmlDesigner {
|
||||||
|
|
||||||
MaterialBrowserView::MaterialBrowserView(QObject *parent)
|
MaterialBrowserView::MaterialBrowserView() {}
|
||||||
: AbstractView(parent)
|
|
||||||
{}
|
|
||||||
|
|
||||||
MaterialBrowserView::~MaterialBrowserView()
|
MaterialBrowserView::~MaterialBrowserView()
|
||||||
{}
|
{}
|
||||||
|
|||||||
@@ -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;
|
||||||
|
|||||||
@@ -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);
|
||||||
|
|||||||
@@ -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;
|
||||||
|
|||||||
@@ -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)
|
|
||||||
{
|
{
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -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;
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
@@ -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);
|
||||||
|
|||||||
@@ -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)
|
||||||
|
|||||||
@@ -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);
|
||||||
|
|||||||
@@ -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);
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
@@ -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);
|
||||||
|
|||||||
@@ -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;
|
||||||
|
|||||||
@@ -40,9 +40,8 @@
|
|||||||
|
|
||||||
namespace QmlDesigner {
|
namespace QmlDesigner {
|
||||||
|
|
||||||
TransitionEditorView::TransitionEditorView(QObject *parent)
|
TransitionEditorView::TransitionEditorView()
|
||||||
: AbstractView(parent)
|
: m_transitionEditorWidget(nullptr)
|
||||||
, m_transitionEditorWidget(nullptr)
|
|
||||||
{
|
{
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -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;
|
||||||
|
|||||||
@@ -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);
|
||||||
|
|||||||
@@ -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;
|
||||||
|
|
||||||
|
|||||||
@@ -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;
|
||||||
|
|||||||
@@ -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);
|
||||||
|
|||||||
@@ -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);
|
||||||
|
|
||||||
|
|||||||
@@ -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);
|
||||||
|
|||||||
@@ -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
@@ -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)
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -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);
|
||||||
|
|||||||
Reference in New Issue
Block a user