Files
qt-creator/share/qtcreator/qmldesigner/contentLibraryQmlSource/ContentLibrary.qml
Thomas Hartmann fb685307f9 QmlDesigner: Use StudioQuickWidget in content library
The event filter has to be installed on the actual QQuickWidget.
Using registerPropertyMap instead of global context properties.

Task-number: QDS-9124
Change-Id: I148ecc6b489f6d72d80a345aa195f74676a92d51
Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
Reviewed-by: <github-actions-qt-creator@cristianadam.eu>
Reviewed-by: Mahmoud Badri <mahmoud.badri@qt.io>
2023-03-09 08:10:12 +00:00

125 lines
3.8 KiB
QML

// Copyright (C) 2023 The Qt Company Ltd.
// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0+ OR GPL-3.0 WITH Qt-GPL-exception-1.0
import QtQuick
import QtQuick.Controls
import QtQuick.Layouts
import QtQuickDesignerTheme
import HelperWidgets 2.0 as HelperWidgets
import StudioControls 1.0 as StudioControls
import StudioTheme 1.0 as StudioTheme
import ContentLibraryBackend
Item {
id: root
// Called also from C++ to close context menu on focus out
function closeContextMenu()
{
materialsView.closeContextMenu()
texturesView.closeContextMenu()
environmentsView.closeContextMenu()
}
// Called from C++
function clearSearchFilter()
{
searchBox.clear();
}
Column {
id: col
anchors.fill: parent
spacing: 5
Rectangle {
width: parent.width
height: StudioTheme.Values.doubleToolbarHeight
color: StudioTheme.Values.themeToolbarBackground
Column {
anchors.fill: parent
anchors.topMargin: 6
anchors.bottomMargin: 6
anchors.leftMargin: 10
anchors.rightMargin: 10
spacing: 12
StudioControls.SearchBox {
id: searchBox
width: parent.width
style: StudioTheme.Values.searchControlStyle
enabled: {
if (tabBar.currIndex === 0) { // Materials tab
ContentLibraryBackend.materialsModel.matBundleExists
&& ContentLibraryBackend.rootView.hasMaterialLibrary
&& ContentLibraryBackend.materialsModel.hasRequiredQuick3DImport
} else { // Textures / Environments tabs
texturesModel.texBundleExists
}
}
onSearchChanged: (searchText) => {
ContentLibraryBackend.rootView.handleSearchFilterChanged(searchText)
// make sure categories with matches are expanded
materialsView.expandVisibleSections()
texturesView.expandVisibleSections()
environmentsView.expandVisibleSections()
}
}
ContentLibraryTabBar {
id: tabBar
width: parent.width
height: StudioTheme.Values.toolbarHeight
tabsModel: [{name: qsTr("Materials"), icon: StudioTheme.Constants.material_medium},
{name: qsTr("Textures"), icon: StudioTheme.Constants.textures_medium},
{name: qsTr("Environments"), icon: StudioTheme.Constants.languageList_medium}]
}
}
}
UnimportBundleMaterialDialog {
id: confirmUnimportDialog
}
StackLayout {
width: root.width
height: root.height - y
currentIndex: tabBar.currIndex
ContentLibraryMaterialsView {
id: materialsView
width: root.width
searchBox: searchBox
onUnimport: (bundleMat) => {
confirmUnimportDialog.targetBundleMaterial = bundleMat
confirmUnimportDialog.open()
}
}
ContentLibraryTexturesView {
id: texturesView
width: root.width
model: texturesModel
searchBox: searchBox
}
ContentLibraryTexturesView {
id: environmentsView
width: root.width
model: environmentsModel
searchBox: searchBox
}
}
}
}