diff --git a/applets/mediaframe/package/contents/ui/ConfigPaths.qml b/applets/mediaframe/package/contents/ui/ConfigPaths.qml index 838be23b8..1d0391f0b 100644 --- a/applets/mediaframe/package/contents/ui/ConfigPaths.qml +++ b/applets/mediaframe/package/contents/ui/ConfigPaths.qml @@ -1,173 +1,158 @@ /* * Copyright 2015 Lars Pontoppidan * * 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 2 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, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 2.010-1301, USA. */ -import QtQuick 2.1 -import QtQuick.Controls 1.1 +import QtQuick 2.5 +import QtQuick.Controls 2.5 as QQC2 import QtQuick.Dialogs 1.2 -import QtQuick.Layouts 1.1 +import QtQuick.Layouts 1.3 import org.kde.plasma.plasmoid 2.0 +import org.kde.kirigami 2.5 as Kirigami ColumnLayout { id: root signal configurationChanged property var cfg_pathList: [] function addPath(object) { pathModel.append( object ) cfg_pathList.push( JSON.stringify(object) ) configurationChanged(); } function removePath(index) { if(pathModel.count > 0) { pathModel.remove(index) cfg_pathList.splice(index,1) configurationChanged(); } } Component.onCompleted: { // Load the list back in var list = plasmoid.configuration.pathList cfg_pathList = [] for(var i in list) { addPath( JSON.parse(list[i]) ) } } FileDialog { id: fileDialog visible: false - title: i18nc("@title:window", "Choose Files") - folder: shortcuts.pictures - selectMultiple: true // TODO get valid filter list from native code? //nameFilters: [ "Image files (*.png *.jpg)", "All files (*)" ] //selectedNameFilter: "All files (*)" onAccepted: { console.log("Accepted: " + fileUrls) for (var i = 0; i < fileUrls.length; ++i) { var item = { 'path':fileUrls[i], 'type':'file' } addPath(item) } } onRejected: { console.log("Canceled") } } FileDialog { id: folderDialog visible: false - title: i18nc("@title:window", "Choose a Folder") - folder: shortcuts.pictures - selectFolder: true onAccepted: { console.log("Accepted: " + fileUrls) for (var i = 0; i < fileUrls.length; ++i) { var item = { 'path':fileUrls[i], 'type':'folder' } addPath(item) } } onRejected: { console.log("Canceled") } } - RowLayout { - Layout.fillWidth: true - - Button { - iconName: "folder-new" - onClicked: folderDialog.visible = true - text: i18nc("@action:button", "Add Folder...") - } - - Button { - iconName: "document-new" - onClicked: fileDialog.visible = true - text: i18nc("@action:button", "Add Files...") - } - } - - Label { - Layout.fillWidth: true - - text: i18nc("@label:listbox", "Paths:") - } - - ListModel { - id: pathModel - } - - RowLayout { - Layout.fillWidth: true - Layout.fillHeight: true + ListModel { + id: pathModel + } - ScrollView { - Layout.fillWidth: true - Layout.fillHeight: true + QQC2.ScrollView { + Layout.fillWidth: true + Layout.fillHeight: true + Component.onCompleted: background.visible = true; - frameVisible: true + ListView { + id: pathsList - ListView { - width: parent.width - model: pathModel + anchors.margins: 4 + model: pathModel - delegate: RowLayout { - width: parent.width + delegate: Kirigami.SwipeListItem { + id: folderDelegate - Label { - id: pathText + width: pathsList.width + height: paintedHeight; - Layout.fillWidth: true + QQC2.Label { + Layout.fillWidth: true + text: model.path.replace("file://", "") + } - text: model.path - } + actions: [ + Kirigami.Action { + iconName: "list-remove" + tooltip: i18nd("plasma_wallpaper_org.kde.image", "Remove path") + onTriggered: removePath(model.index) + } + ] + } + } + } - Button { - id: removePathButton + RowLayout { + Layout.fillWidth: true - iconName: "list-remove" + QQC2.Button { + icon.name: "folder-new" + onClicked: folderDialog.visible = true + text: i18nc("@action:button", "Add Folder...") + } - onClicked: removePath(model.index) - } - } - } - } + QQC2.Button { + icon.name: "document-new" + onClicked: fileDialog.visible = true + text: i18nc("@action:button", "Add Files...") } + } }