/* * Mirai. Copyright (C) 2024 Vyn * This file is licensed under version 3 of the GNU General Public License (GPL-3.0-only) * The license can be found in the LICENSE file or at https://www.gnu.org/licenses/gpl-3.0.txt */ import QtQuick import QtQuick.Window import QtQuick.Layouts import QtQuick.Controls import Mirai Rectangle { color: colorPalette.selected.pane implicitWidth: childrenRect.width + 20 + 30 ColumnLayout { anchors.top: parent.top anchors.bottom: parent.bottom anchors.left: parent.left anchors.margins: 10 RowLayout { AppText { text: "Files" font.pixelSize: 32 } Item { Layout.fillWidth: true } AppIcon { icon.source: "qrc:/qt/qml/Mirai/src/images/settings.png" icon.color: colorPalette.selected.textPlaceholder onClicked: { filesForm.reset(); filesFormPopup.open(); } } } Item { Layout.preferredHeight: 16 } Repeater { model: backend.files Rectangle { Layout.preferredHeight: childrenRect.height Layout.fillWidth: true color: backend.activeResourcesFilter.includes(modelData.name) ? colorPalette.selected.filterSelected : mouse.hovered ? colorPalette.selected.filterHovered : "transparent" radius: 4 AppText { text: modelData.name padding: 4 } MouseArea { anchors.fill: parent onClicked: { if (backend.activeResourcesFilter.includes(modelData.name)) { backend.removeResourceFilter(modelData.name) } else { backend.addResourceFilter(modelData.name) } } HoverHandler { id: mouse acceptedDevices: PointerDevice.Mouse | PointerDevice.TouchPad cursorShape: Qt.PointingHandCursor } } } } Item { Layout.preferredHeight: 16 } RowLayout { AppText { text: "Tags" font.pixelSize: 32 } Item { Layout.fillWidth: true } AppIcon { icon.source: "qrc:/qt/qml/Mirai/src/images/settings.png" icon.color: colorPalette.selected.textPlaceholder onClicked: { tagsForm.reset(); tagsFormPopup.open(); } } } Item { Layout.preferredHeight: 16 } Repeater { model: backend.tags Rectangle { Layout.preferredHeight: childrenRect.height Layout.fillWidth: true color: backend.activeTagsFilter.includes(modelData.name) ? colorPalette.selected.filterSelected : mouse.hovered ? colorPalette.selected.filterHovered : "transparent" radius: 4 QtObject { id: internal } AppText { text: modelData.name color: { return modelData.color } padding: 4 } MouseArea { anchors.fill: parent onClicked: { if (backend.activeTagsFilter.includes(modelData.name)) { backend.removeTagFilter(modelData.name) } else { backend.addTagFilter(modelData.name) } } HoverHandler { id: mouse acceptedDevices: PointerDevice.Mouse | PointerDevice.TouchPad cursorShape: Qt.PointingHandCursor } } } } Item { Layout.fillHeight: true } Modal { id: filesFormPopup fullScreen: root.isPhone FilesForm { id: filesForm width: parent.width onConfirmed: (filesPath) => { filesFormPopup.close() console.log(filesPath) backend.saveFilesPath(filesPath) } } } Modal { id: tagsFormPopup fullScreen: root.isPhone TagsConfigForm { id: tagsForm width: parent.width onConfirmed: (tags) => { tagsFormPopup.close() backend.saveTagsColor(tags) } } } } }