/*SPDX-FileCopyrightText: 2014-2015 Eike Hein <hein@kde.org>SPDX-License-Identifier: GPL-2.0-or-later*/pragma ComponentBehavior: Boundimport QtQuickimport org.kde.plasma.plasmoidimport org.kde.plasma.core as PlasmaCoreimport org.kde.plasma.extras as PlasmaExtrasimport org.kde.kirigami as Kirigamiimport org.kde.private.desktopcontainment.folder as FolderFolder.SubDialog {id: dialogvisible: falsereadonly property bool containsDrag: {if (folderViewDropArea.containsDrag) {return true;}if (folderView.hoveredItem && folderView.hoveredItem.popupDialog) {return childDialog.containsDrag;}return false;}readonly property Timer closeTimer: closeTimerreadonly property FolderViewDialog childDialog: (folderView.hoveredItem?.popupDialog as FolderViewDialog) ?? nullreadonly property bool containsMouse: folderView.containsMouse || (childDialog !== null && childDialog.containsMouse)property alias url: folderView.urllocation: PlasmaCore.Types.FloatinghideOnWindowDeactivate: (allowClosing && (childDialog === null))onContainsMouseChanged: {if (containsMouse) {closeTimer.stop();} else {closeTimer.start();}}mainItem: FolderViewDropArea {id: folderViewDropAreawidth: folderView.cellWidth * 3 + Kirigami.Units.gridUnit // FIXME HACK: Use actual scrollbar width.height: folderView.cellHeight * 2folderView: folderViewFolderView {id: folderViewanchors.fill: parentisRootView: falsedialog: dialoglocked: truesortMode: ((Plasmoid.configuration.sortMode === 0) ? 1 : Plasmoid.configuration.sortMode)filterMode: 0// TODO: Bidi.flow: GridView.FlowLeftToRightlayoutDirection: Qt.LeftToRightonDragInProgressAnywhereChanged: {if (!dragInProgressAnywhere && !dialog.visible) {dialog.destroy();}}onCreatingNewItemsChanged: {dialog.allowClosing = !creatingNewItems;}}Loader {anchors.centerIn: parentwidth: parent.width - (Kirigami.Units.gridUnit * 4)active: folderView.view.count === 0sourceComponent: PlasmaExtras.PlaceholderMessage {text: i18nc("@info:placeholder", "Folder is empty")}}}data: [Timer {id: closeTimerinterval: Kirigami.Units.humanMomentonTriggered: {if (dialog.childDialog !== null) {dialog.childDialog.closeTimer.stop();dialog.childDialog.visible = false;}dialog.visible = false;dialog.delayedDestroy();}}]function requestDestroy() {if (folderView.dragInProgressAnywhere) {visible = false;} else {destroy();}}function delayedDestroy() {Qt.callLater(() => dialog.destroy());}Component.onDestruction: {closeTimer.stop();}}