// Copyright (C) 2016 The Qt Company Ltd. // SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0 #pragma once #include #include #include #include #include namespace ProjectExplorer { class Target; } namespace QmlDesigner { class DesignDocument; class AbstractCustomTool; class DesignerActionManager; class NodeInstanceView; class RewriterView; class Edit3DView; namespace Internal { class DesignModeWidget; } class ViewManagerData; class QMLDESIGNERCOMPONENTS_EXPORT ViewManager { public: ViewManager(class AsynchronousImageCache &imageCache, class ExternalDependenciesInterface &externalDependencies); ~ViewManager(); void attachRewriterView(); void detachRewriterView(); void attachComponentView(); void detachComponentView(); void attachViewsExceptRewriterAndComponetView(); void detachViewsExceptRewriterAndComponetView(); void setComponentNode(const ModelNode &componentNode); void setComponentViewToMaster(); void setNodeInstanceViewTarget(ProjectExplorer::Target *target); void resetPropertyEditorView(); void registerFormEditorTool(std::unique_ptr &&tool); template View *registerView(std::unique_ptr &&view) { auto notOwningPointer = view.get(); addView(std::move(view)); return notOwningPointer; } QList widgetInfos() const; QWidget *widget(const QString & uniqueId) const; void disableWidgets(); void enableWidgets(); void pushFileOnCrumbleBar(const Utils::FilePath &fileName); void pushInFileComponentOnCrumbleBar(const ModelNode &modelNode); void nextFileIsCalledInternally(); const AbstractView *view() const; void exportAsImage(); void reformatFileUsingTextEditorView(); QWidgetAction *componentViewAction() const; DesignerActionManager &designerActionManager(); const DesignerActionManager &designerActionManager() const; void qmlJSEditorContextHelp(const Core::IContext::HelpCallback &callback) const; DesignDocument *currentDesignDocument() const; bool usesRewriterView(RewriterView *rewriterView); void disableStandardViews(); void enableStandardViews(); QList views() const; private: // functions Q_DISABLE_COPY(ViewManager) void addView(std::unique_ptr &&view); void attachNodeInstanceView(); void attachAdditionalViews(); void detachAdditionalViews(); void detachStandardViews(); Model *currentModel() const; Model *documentModel() const; QString pathToQt() const; void switchStateEditorViewToBaseState(); void switchStateEditorViewToSavedState(); QList standardViews() const; void registerNanotraceActions(); private: // variables std::unique_ptr d; }; } // namespace QmlDesigner