Files
qt-creator/share/qtcreator/qmldesigner/contentLibraryQmlSource/ContentLibrary.qml
Miikka Heikkinen 57448021b8 QmlDesigner: Fix content library visibility logic
Also fix enable logic of context menus in content library.

Fixes: QDS-8446
Change-Id: I82f80779f507aa5336ebafac5cffc36365238fc5
Reviewed-by: Mahmoud Badri <mahmoud.badri@qt.io>
Reviewed-by: <github-actions-qt-creator@cristianadam.eu>
Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
2022-12-02 08:19:56 +00:00

108 lines
3.0 KiB
QML

// Copyright (C) 2022 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 as HelperWidgets
import StudioControls as StudioControls
import StudioTheme as StudioTheme
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
y: 5
spacing: 5
StudioControls.SearchBox {
id: searchBox
width: root.width
enabled: {
if (tabBar.currIndex == 0) { // Materials tab
materialsModel.matBundleExists
&& rootView.hasMaterialLibrary
&& materialsModel.hasRequiredQuick3DImport
} else { // Textures / Environments tabs
texturesModel.texBundleExists
}
}
onSearchChanged: (searchText) => {
rootView.handleSearchFilterChanged(searchText)
// make sure categories with matches are expanded
materialsView.expandVisibleSections()
texturesView.expandVisibleSections()
environmentsView.expandVisibleSections()
}
}
UnimportBundleMaterialDialog {
id: confirmUnimportDialog
}
ContentLibraryTabBar {
id: tabBar
// TODO: update icons
tabsModel: [{name: qsTr("Materials"), icon: StudioTheme.Constants.gradient},
{name: qsTr("Textures"), icon: StudioTheme.Constants.materialPreviewEnvironment},
{name: qsTr("Environments"), icon: StudioTheme.Constants.translationSelectLanguages}]
}
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
}
}
}
}