From 614689874a0478630708ce1bd6634d64a9903ab4 Mon Sep 17 00:00:00 2001 From: Thomas Hartmann Date: Thu, 20 Oct 2016 11:59:41 +0200 Subject: [PATCH] QmlDesigner: Fix for item library search filter Without this patch the item library gets into an invalid state if the user enters edit mode with an ative search filter. When going back to design mode the item library is completely empty. This patch clears the filter, so the item library gets properly populated. Change-Id: I21f823b8db820589dedd6ba4e4855678fff49e53 Reviewed-by: Tim Jenssen --- .../qmldesigner/components/itemlibrary/itemlibraryview.cpp | 2 ++ .../qmldesigner/components/itemlibrary/itemlibrarywidget.cpp | 5 +++++ .../qmldesigner/components/itemlibrary/itemlibrarywidget.h | 2 ++ 3 files changed, 9 insertions(+) diff --git a/src/plugins/qmldesigner/components/itemlibrary/itemlibraryview.cpp b/src/plugins/qmldesigner/components/itemlibrary/itemlibraryview.cpp index 60ce7234f28..4f354746d65 100644 --- a/src/plugins/qmldesigner/components/itemlibrary/itemlibraryview.cpp +++ b/src/plugins/qmldesigner/components/itemlibrary/itemlibraryview.cpp @@ -65,6 +65,7 @@ WidgetInfo ItemLibraryView::widgetInfo() void ItemLibraryView::modelAttached(Model *model) { AbstractView::modelAttached(model); + m_widget->clearSearchFilter(); m_widget->setModel(model); updateImports(); model->attachView(m_importManagerView); @@ -75,6 +76,7 @@ void ItemLibraryView::modelAboutToBeDetached(Model *model) model->detachView(m_importManagerView); AbstractView::modelAboutToBeDetached(model); + m_widget->setModel(0); } diff --git a/src/plugins/qmldesigner/components/itemlibrary/itemlibrarywidget.cpp b/src/plugins/qmldesigner/components/itemlibrary/itemlibrarywidget.cpp index 5820c518ac2..039a2be448f 100644 --- a/src/plugins/qmldesigner/components/itemlibrary/itemlibrarywidget.cpp +++ b/src/plugins/qmldesigner/components/itemlibrary/itemlibrarywidget.cpp @@ -247,6 +247,11 @@ QString ItemLibraryWidget::qmlSourcesPath() return Core::ICore::resourcePath() + QStringLiteral("/qmldesigner/itemLibraryQmlSources"); } +void ItemLibraryWidget::clearSearchFilter() +{ + m_filterLineEdit->clear(); +} + void ItemLibraryWidget::reloadQmlSource() { QString itemLibraryQmlFilePath = qmlSourcesPath() + QStringLiteral("/ItemsView.qml"); diff --git a/src/plugins/qmldesigner/components/itemlibrary/itemlibrarywidget.h b/src/plugins/qmldesigner/components/itemlibrary/itemlibrarywidget.h index 6a39035b53e..ca8cd82c319 100644 --- a/src/plugins/qmldesigner/components/itemlibrary/itemlibrarywidget.h +++ b/src/plugins/qmldesigner/components/itemlibrary/itemlibrarywidget.h @@ -86,6 +86,8 @@ public: void setImportsWidget(QWidget *importsWidget); static QString qmlSourcesPath(); + void clearSearchFilter(); + public slots: void setSearchFilter(const QString &searchFilter); void delayedUpdateModel();