forked from qt-creator/qt-creator
QmlDesigner: Use QQuickWidget in the item library
Change-Id: I8297b513722fb5fc51fedadfd5f93e3198800ada Reviewed-by: Tim Jenssen <tim.jenssen@digia.com>
This commit is contained in:
@@ -62,7 +62,7 @@ ItemLibraryWidget::ItemLibraryWidget(QWidget *parent) :
|
|||||||
m_itemIconSize(24, 24),
|
m_itemIconSize(24, 24),
|
||||||
m_resIconSize(24, 24),
|
m_resIconSize(24, 24),
|
||||||
m_iconProvider(m_resIconSize),
|
m_iconProvider(m_resIconSize),
|
||||||
m_itemsView(new QQuickView()),
|
m_itemViewQuickWidget(new QQuickWidget),
|
||||||
m_resourcesView(new ItemLibraryTreeView(this)),
|
m_resourcesView(new ItemLibraryTreeView(this)),
|
||||||
m_filterFlag(QtBasic)
|
m_filterFlag(QtBasic)
|
||||||
{
|
{
|
||||||
@@ -71,16 +71,16 @@ ItemLibraryWidget::ItemLibraryWidget(QWidget *parent) :
|
|||||||
setWindowTitle(tr("Library", "Title of library view"));
|
setWindowTitle(tr("Library", "Title of library view"));
|
||||||
|
|
||||||
/* create Items view and its model */
|
/* create Items view and its model */
|
||||||
m_itemsView->setResizeMode(QQuickView::SizeRootObjectToView);
|
m_itemViewQuickWidget->setResizeMode(QQuickWidget::SizeRootObjectToView);
|
||||||
m_itemLibraryModel = new ItemLibraryModel(this);
|
m_itemLibraryModel = new ItemLibraryModel(this);
|
||||||
|
|
||||||
QQmlContext *rootContext = m_itemsView->rootContext();
|
QQmlContext *rootContext = m_itemViewQuickWidget->rootContext();
|
||||||
rootContext->setContextProperty(QStringLiteral("itemLibraryModel"), m_itemLibraryModel.data());
|
rootContext->setContextProperty(QStringLiteral("itemLibraryModel"), m_itemLibraryModel.data());
|
||||||
rootContext->setContextProperty(QStringLiteral("itemLibraryIconWidth"), m_itemIconSize.width());
|
rootContext->setContextProperty(QStringLiteral("itemLibraryIconWidth"), m_itemIconSize.width());
|
||||||
rootContext->setContextProperty(QStringLiteral("itemLibraryIconHeight"), m_itemIconSize.height());
|
rootContext->setContextProperty(QStringLiteral("itemLibraryIconHeight"), m_itemIconSize.height());
|
||||||
rootContext->setContextProperty(QStringLiteral("rootView"), this);
|
rootContext->setContextProperty(QStringLiteral("rootView"), this);
|
||||||
|
|
||||||
m_itemsView->rootContext()->setContextProperty(QStringLiteral("highlightColor"), Utils::StyleHelper::notTooBrightHighlightColor());
|
m_itemViewQuickWidget->rootContext()->setContextProperty(QStringLiteral("highlightColor"), Utils::StyleHelper::notTooBrightHighlightColor());
|
||||||
|
|
||||||
/* create Resources view and its model */
|
/* create Resources view and its model */
|
||||||
m_resourcesFileSystemModel = new QFileSystemModel(this);
|
m_resourcesFileSystemModel = new QFileSystemModel(this);
|
||||||
@@ -89,7 +89,7 @@ ItemLibraryWidget::ItemLibraryWidget(QWidget *parent) :
|
|||||||
m_resourcesView->setIconSize(m_resIconSize);
|
m_resourcesView->setIconSize(m_resIconSize);
|
||||||
|
|
||||||
/* create image provider for loading item icons */
|
/* create image provider for loading item icons */
|
||||||
m_itemsView->engine()->addImageProvider(QStringLiteral("qmldesigner_itemlibrary"), new Internal::ItemLibraryImageProvider);
|
m_itemViewQuickWidget->engine()->addImageProvider(QStringLiteral("qmldesigner_itemlibrary"), new Internal::ItemLibraryImageProvider);
|
||||||
|
|
||||||
/* other widgets */
|
/* other widgets */
|
||||||
QTabBar *tabBar = new QTabBar(this);
|
QTabBar *tabBar = new QTabBar(this);
|
||||||
@@ -118,9 +118,9 @@ ItemLibraryWidget::ItemLibraryWidget(QWidget *parent) :
|
|||||||
lineEditLayout->addItem(new QSpacerItem(5, 5, QSizePolicy::Fixed, QSizePolicy::Fixed), 1, 2);
|
lineEditLayout->addItem(new QSpacerItem(5, 5, QSizePolicy::Fixed, QSizePolicy::Fixed), 1, 2);
|
||||||
connect(m_filterLineEdit.data(), SIGNAL(filterChanged(QString)), this, SLOT(setSearchFilter(QString)));
|
connect(m_filterLineEdit.data(), SIGNAL(filterChanged(QString)), this, SLOT(setSearchFilter(QString)));
|
||||||
|
|
||||||
QWidget *container = createWindowContainer(m_itemsView.data());
|
|
||||||
m_stackedWidget = new QStackedWidget(this);
|
m_stackedWidget = new QStackedWidget(this);
|
||||||
m_stackedWidget->addWidget(container);
|
m_stackedWidget->addWidget(m_itemViewQuickWidget.data());
|
||||||
m_stackedWidget->addWidget(m_resourcesView.data());
|
m_stackedWidget->addWidget(m_resourcesView.data());
|
||||||
|
|
||||||
QWidget *spacer = new QWidget(this);
|
QWidget *spacer = new QWidget(this);
|
||||||
@@ -224,7 +224,7 @@ void ItemLibraryWidget::setSearchFilter(const QString &searchFilter)
|
|||||||
{
|
{
|
||||||
if (m_stackedWidget->currentIndex() == 0) {
|
if (m_stackedWidget->currentIndex() == 0) {
|
||||||
m_itemLibraryModel->setSearchText(searchFilter);
|
m_itemLibraryModel->setSearchText(searchFilter);
|
||||||
m_itemsView->update();
|
m_itemViewQuickWidget->update();
|
||||||
} else {
|
} else {
|
||||||
QStringList nameFilterList;
|
QStringList nameFilterList;
|
||||||
if (searchFilter.contains('.')) {
|
if (searchFilter.contains('.')) {
|
||||||
@@ -295,8 +295,8 @@ void ItemLibraryWidget::reloadQmlSource()
|
|||||||
{
|
{
|
||||||
QString itemLibraryQmlFilePath = qmlSourcesPath() + QStringLiteral("/ItemsView.qml");
|
QString itemLibraryQmlFilePath = qmlSourcesPath() + QStringLiteral("/ItemsView.qml");
|
||||||
QTC_ASSERT(QFileInfo::exists(itemLibraryQmlFilePath), return);
|
QTC_ASSERT(QFileInfo::exists(itemLibraryQmlFilePath), return);
|
||||||
m_itemsView->engine()->clearComponentCache();
|
m_itemViewQuickWidget->engine()->clearComponentCache();
|
||||||
m_itemsView->setSource(QUrl::fromLocalFile(itemLibraryQmlFilePath));
|
m_itemViewQuickWidget->setSource(QUrl::fromLocalFile(itemLibraryQmlFilePath));
|
||||||
}
|
}
|
||||||
|
|
||||||
void ItemLibraryWidget::setImportFilter(FilterChangeFlag flag)
|
void ItemLibraryWidget::setImportFilter(FilterChangeFlag flag)
|
||||||
|
@@ -38,7 +38,7 @@
|
|||||||
#include <QFrame>
|
#include <QFrame>
|
||||||
#include <QToolButton>
|
#include <QToolButton>
|
||||||
#include <QFileIconProvider>
|
#include <QFileIconProvider>
|
||||||
#include <QQuickView>
|
#include <QQuickWidget>
|
||||||
|
|
||||||
QT_BEGIN_NAMESPACE
|
QT_BEGIN_NAMESPACE
|
||||||
class QFileSystemModel;
|
class QFileSystemModel;
|
||||||
@@ -133,7 +133,7 @@ private:
|
|||||||
QPointer<QStackedWidget> m_stackedWidget;
|
QPointer<QStackedWidget> m_stackedWidget;
|
||||||
|
|
||||||
QPointer<Utils::FancyLineEdit> m_filterLineEdit;
|
QPointer<Utils::FancyLineEdit> m_filterLineEdit;
|
||||||
QScopedPointer<QQuickView> m_itemsView;
|
QScopedPointer<QQuickWidget> m_itemViewQuickWidget;
|
||||||
QScopedPointer<ItemLibraryTreeView> m_resourcesView;
|
QScopedPointer<ItemLibraryTreeView> m_resourcesView;
|
||||||
QShortcut *m_qmlSourceUpdateShortcut;
|
QShortcut *m_qmlSourceUpdateShortcut;
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user