/* * Copyright (C) 2023, KylinSoft Co., Ltd. * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program. If not, see . * */ import QtQuick 2.0 import QtQml 2.12 import QtQuick.Controls 2.5 import QtQuick.Layouts 1.12 import AppControls2 1.0 as AppControls2 import org.ukui.menu.core 1.0 Item { property string title: "" signal labelItemClicked() signal openFolderPageSignal(string folderId, string folderName); function labelSelection(labelId) { appListView.view.positionViewAtIndex(appListView.model.getLabelIndex(labelId), ListView.Beginning) } AppListView { id: appListView anchors.fill: parent model: modelManager.getAppModel() delegate: Component { Loader { width: ListView.view ? ListView.view.width : 0 height: 40 property int index: model.index property int type: model.type property string id: model.id property string name: model.name property string icon: model.icon sourceComponent: { if (type === DataType.Normal) { return appItem; } if (type === DataType.Folder) { return folderItem; } if (type === DataType.Label) { return labelItem; } } } } } Component { id: appItem AppControls2.AppItem { acceptedButtons: Qt.LeftButton | Qt.RightButton onClicked: { if (mouse.button === Qt.RightButton) { appListView.model.openMenu(index); return; } if (mouse.button === Qt.LeftButton) { appManager.launchApp(id); return; } } } } Component { id: labelItem AppControls2.LabelItem { onClicked: labelItemClicked(); } } Component { id: folderItem AppControls2.FolderItem { acceptedButtons: Qt.LeftButton | Qt.RightButton onClicked: { if (mouse.button === Qt.RightButton) { appListView.model.openMenu(index); return; } if (mouse.button === Qt.LeftButton) { openFolderPageSignal(id, name); return; } } Component.onCompleted: { appListView.model.renameText.connect(toEditText); } Component.onDestruction: { appListView.model.renameText.disconnect(toEditText); } function toEditText(idOfIndex){ if (id === idOfIndex) { editStatus = true; } } } } }