aboutsummaryrefslogtreecommitdiffstats
path: root/src/plugins/qmldesigner/designercore/model/viewmanager.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/plugins/qmldesigner/designercore/model/viewmanager.cpp')
-rw-r--r--src/plugins/qmldesigner/designercore/model/viewmanager.cpp109
1 files changed, 50 insertions, 59 deletions
diff --git a/src/plugins/qmldesigner/designercore/model/viewmanager.cpp b/src/plugins/qmldesigner/designercore/model/viewmanager.cpp
index b2873816af..80c23acad7 100644
--- a/src/plugins/qmldesigner/designercore/model/viewmanager.cpp
+++ b/src/plugins/qmldesigner/designercore/model/viewmanager.cpp
@@ -73,6 +73,7 @@ public:
StatesEditorView statesEditorView;
QList<QPointer<AbstractView> > additionalViews;
+ bool disableStandardViews = false;
};
static CrumbleBar *crumbleBar() {
@@ -104,6 +105,9 @@ DesignDocument *ViewManager::currentDesignDocument() const
void ViewManager::attachNodeInstanceView()
{
+ if (nodeInstanceView()->isAttached())
+ return;
+
QElapsedTimer time;
if (viewBenchmark().isInfoEnabled())
time.start();
@@ -165,15 +169,27 @@ void ViewManager::switchStateEditorViewToSavedState()
QList<QPointer<AbstractView> > ViewManager::views() const
{
auto list = d->additionalViews;
- list.append({
+ list.append(standardViews());
+ return list;
+}
+
+const QList<QPointer<AbstractView> > ViewManager::standardViews() const
+{
+ QList<QPointer<AbstractView>> list = {
&d->edit3DView,
&d->formEditorView,
&d->textEditorView,
&d->itemLibraryView,
&d->navigatorView,
&d->propertyEditorView,
- &d->statesEditorView
- });
+ &d->statesEditorView,
+ &d->designerActionManagerView
+ };
+
+ if (QmlDesignerPlugin::instance()->settings().value(
+ DesignerSettingsKey::ENABLE_DEBUGVIEW).toBool())
+ list.append(&d->debugView);
+
return list;
}
@@ -196,17 +212,8 @@ void ViewManager::detachViewsExceptRewriterAndComponetView()
{
switchStateEditorViewToBaseState();
detachAdditionalViews();
- currentModel()->detachView(&d->designerActionManagerView);
- currentModel()->detachView(&d->edit3DView);
- currentModel()->detachView(&d->formEditorView);
- currentModel()->detachView(&d->textEditorView);
- currentModel()->detachView(&d->navigatorView);
- currentModel()->detachView(&d->itemLibraryView);
- currentModel()->detachView(&d->statesEditorView);
- currentModel()->detachView(&d->propertyEditorView);
-
- if (d->debugView.isAttached())
- currentModel()->detachView(&d->debugView);
+
+ detachStandardViews();
currentModel()->setNodeInstanceView(nullptr);
}
@@ -229,6 +236,14 @@ void ViewManager::detachAdditionalViews()
currentModel()->detachView(view.data());
}
+void ViewManager::detachStandardViews()
+{
+ for (const auto &view : standardViews()) {
+ if (view->isAttached())
+ currentModel()->detachView(view);
+ }
+}
+
void ViewManager::attachComponentView()
{
documentModel()->attachView(&d->componentView);
@@ -262,52 +277,16 @@ void ViewManager::attachViewsExceptRewriterAndComponetView()
qCInfo(viewBenchmark) << Q_FUNC_INFO;
- currentModel()->attachView(&d->designerActionManagerView);
-
int last = time.elapsed();
- qCInfo(viewBenchmark) << "ActionManagerView:" << last << time.elapsed();
-
- currentModel()->attachView(&d->edit3DView);
-
- int currentTime = time.elapsed();
- qCInfo(viewBenchmark) << "Edit3DView:" << currentTime - last;
- last = currentTime;
-
- currentModel()->attachView(&d->formEditorView);
-
- currentTime = time.elapsed();
- qCInfo(viewBenchmark) << "FormEditorView:" << currentTime - last;
- last = currentTime;
-
- currentModel()->attachView(&d->textEditorView);
-
- currentTime = time.elapsed();
- qCInfo(viewBenchmark) << "TextEditorView:" << currentTime - last;
- last = currentTime;
-
- currentModel()->attachView(&d->navigatorView);
-
- currentTime = time.elapsed();
- qCInfo(viewBenchmark) << "NavigatorView:" << currentTime - last;
- last = currentTime;
-
- attachItemLibraryView();
-
- currentTime = time.elapsed();
- qCInfo(viewBenchmark) << "ItemLibraryView:" << currentTime - last;
- last = currentTime;
-
- currentModel()->attachView(&d->statesEditorView);
-
- currentTime = time.elapsed();
- qCInfo(viewBenchmark) << "StatesEditorView:" << currentTime - last;
- last = currentTime;
-
- currentModel()->attachView(&d->propertyEditorView);
-
- currentTime = time.elapsed();
- qCInfo(viewBenchmark) << "PropertyEditorView:" << currentTime - last;
- last = currentTime;
+ int currentTime = 0;
+ if (!d->disableStandardViews) {
+ for (const auto &view : standardViews()) {
+ currentModel()->attachView(view);
+ currentTime = time.elapsed();
+ qCInfo(viewBenchmark) << view->widgetInfo().uniqueId << currentTime - last;
+ last = currentTime;
+ }
+ }
attachAdditionalViews();
@@ -459,6 +438,18 @@ bool ViewManager::usesRewriterView(RewriterView *rewriterView)
return currentDesignDocument()->rewriterView() == rewriterView;
}
+void ViewManager::disableStandardViews()
+{
+ d->disableStandardViews = true;
+ detachStandardViews();
+}
+
+void ViewManager::enableStandardViews()
+{
+ d->disableStandardViews = false;
+ attachViewsExceptRewriterAndComponetView();
+}
+
} // namespace QmlDesigner
#endif //QMLDESIGNER_TEST