diff --git a/src/plugins/qmldesigner/components/itemlibrary/itemlibraryview.cpp b/src/plugins/qmldesigner/components/itemlibrary/itemlibraryview.cpp index f1d011f878bc18960ca69aded0d1299a9c40fcf5..5aef537796e8957a1b7a2d8c1b89f9e6a54de090 100644 --- a/src/plugins/qmldesigner/components/itemlibrary/itemlibraryview.cpp +++ b/src/plugins/qmldesigner/components/itemlibrary/itemlibraryview.cpp @@ -30,10 +30,14 @@ #include "itemlibraryview.h" #include "itemlibrarywidget.h" #include <import.h> +#include <importmanagerview.h> namespace QmlDesigner { -ItemLibraryView::ItemLibraryView(QObject* parent) : AbstractView(parent) +ItemLibraryView::ItemLibraryView(QObject* parent) + : AbstractView(parent), + m_importManagerView(new ImportManagerView(this)) + { } @@ -50,8 +54,10 @@ bool ItemLibraryView::hasWidget() const WidgetInfo ItemLibraryView::widgetInfo() { - if (m_widget.isNull()) - m_widget = new ItemLibraryWidget; + if (m_widget.isNull()) { + m_widget = new ItemLibraryWidget; + m_widget->setImportsWidget(m_importManagerView->widgetInfo().widget); + } return createWidgetInfo(m_widget.data(), new WidgetInfo::ToolBarWidgetDefaultFactory<ItemLibraryWidget>(m_widget.data()), @@ -65,10 +71,13 @@ void ItemLibraryView::modelAttached(Model *model) AbstractView::modelAttached(model); m_widget->setModel(model); updateImports(); + model->attachView(m_importManagerView); } void ItemLibraryView::modelAboutToBeDetached(Model *model) { + model->detachView(m_importManagerView); + AbstractView::modelAboutToBeDetached(model); m_widget->setModel(0); } diff --git a/src/plugins/qmldesigner/components/itemlibrary/itemlibraryview.h b/src/plugins/qmldesigner/components/itemlibrary/itemlibraryview.h index a4f9a9d3f470df391e4472beb2acc9675d72f370..2fc40c4d230c8a3d586d97812953c08330c7d927 100644 --- a/src/plugins/qmldesigner/components/itemlibrary/itemlibraryview.h +++ b/src/plugins/qmldesigner/components/itemlibrary/itemlibraryview.h @@ -38,7 +38,7 @@ namespace QmlDesigner { class ItemLibraryWidget; - +class ImportManagerView; class ItemLibraryView : public AbstractView { @@ -107,6 +107,7 @@ protected: private: QWeakPointer<ItemLibraryWidget> m_widget; + ImportManagerView *m_importManagerView; }; } diff --git a/src/plugins/qmldesigner/components/itemlibrary/itemlibrarywidget.cpp b/src/plugins/qmldesigner/components/itemlibrary/itemlibrarywidget.cpp index 2cae71db34293e20c99a3c29f350a04358ea41dd..bde13ab5dce243c1ca66538094d6e31570797f01 100644 --- a/src/plugins/qmldesigner/components/itemlibrary/itemlibrarywidget.cpp +++ b/src/plugins/qmldesigner/components/itemlibrary/itemlibrarywidget.cpp @@ -111,6 +111,7 @@ ItemLibraryWidget::ItemLibraryWidget(QWidget *parent) : QTabBar *tabBar = new QTabBar(this); tabBar->addTab(tr("QML Types", "Title of library QML types view")); tabBar->addTab(tr("Resources", "Title of library resources view")); + tabBar->addTab(tr("Imports", "Title of library imports view")); tabBar->setSizePolicy(QSizePolicy::Fixed, QSizePolicy::Fixed); m_lineEdit = new Utils::FilterLineEdit(this); @@ -192,6 +193,11 @@ void ItemLibraryWidget::updateImports() setImportFilter(filter); } +void ItemLibraryWidget::setImportsWidget(QWidget *importsWidget) +{ + m_stackedWidget->addWidget(importsWidget); +} + QList<QToolButton *> ItemLibraryWidget::createToolBarWidgets() { QList<QToolButton *> buttons; diff --git a/src/plugins/qmldesigner/components/itemlibrary/itemlibrarywidget.h b/src/plugins/qmldesigner/components/itemlibrary/itemlibrarywidget.h index 7796a9a9be7f3f4149bf1f505df9afba762ad1ff..8ae8e09958f8531a2b88ee093e2d6d7c3bfcf4fa 100644 --- a/src/plugins/qmldesigner/components/itemlibrary/itemlibrarywidget.h +++ b/src/plugins/qmldesigner/components/itemlibrary/itemlibrarywidget.h @@ -85,6 +85,8 @@ public: void updateImports(); + void setImportsWidget(QWidget *importsWidget); + public Q_SLOTS: void setSearchFilter(const QString &searchFilter); void updateModel(); diff --git a/src/plugins/qmldesigner/designercore/include/viewmanager.h b/src/plugins/qmldesigner/designercore/include/viewmanager.h index c7599be3bd26487241d31de6fe12a280b986e10e..6cb1a12a9c95cc3ec5bcbd762a5b28014ee6ca1f 100644 --- a/src/plugins/qmldesigner/designercore/include/viewmanager.h +++ b/src/plugins/qmldesigner/designercore/include/viewmanager.h @@ -110,7 +110,6 @@ private: // variables Internal::DebugView m_debugView; ComponentView m_componentView; FormEditorView m_formEditorView; - ImportManagerView m_importManagerView; ItemLibraryView m_itemLibraryView; NavigatorView m_navigatorView; PropertyEditorView m_propertyEditorView; diff --git a/src/plugins/qmldesigner/designercore/model/viewmanager.cpp b/src/plugins/qmldesigner/designercore/model/viewmanager.cpp index 95978ad6220396a822dc2625a1e754dcd31577d4..78dda75c87436cc61ab36f07d7926a508939be0f 100644 --- a/src/plugins/qmldesigner/designercore/model/viewmanager.cpp +++ b/src/plugins/qmldesigner/designercore/model/viewmanager.cpp @@ -102,7 +102,6 @@ void ViewManager::detachViewsExceptRewriterAndComponetView() currentModel()->detachView(&m_formEditorView); currentModel()->detachView(&m_navigatorView); currentModel()->detachView(&m_itemLibraryView); - currentModel()->detachView(&m_importManagerView); currentModel()->detachView(&m_statesEditorView); currentModel()->detachView(&m_propertyEditorView); @@ -150,7 +149,6 @@ void ViewManager::attachViewsExceptRewriterAndComponetView() attachNodeInstanceView(); currentModel()->attachView(&m_formEditorView); currentModel()->attachView(&m_navigatorView); - currentModel()->attachView(&m_importManagerView); attachItemLibraryView(); currentModel()->attachView(&m_statesEditorView); currentModel()->attachView(&m_propertyEditorView); @@ -184,7 +182,6 @@ QList<WidgetInfo> ViewManager::widgetInfos() QList<WidgetInfo> widgetInfoList; widgetInfoList.append(m_formEditorView.widgetInfo()); - widgetInfoList.append(m_importManagerView.widgetInfo()); widgetInfoList.append(m_itemLibraryView.widgetInfo()); widgetInfoList.append(m_navigatorView.widgetInfo()); widgetInfoList.append(m_propertyEditorView.widgetInfo());