Warning, /frameworks/purpose/src/quick/AlternativesView.qml is written in an unsupported language. File is not indexed.
0001 /* 0002 SPDX-FileCopyrightText: 2014 Aleix Pol Gonzalez <aleixpol@blue-systems.com> 0003 0004 SPDX-License-Identifier: LGPL-2.1-or-later 0005 */ 0006 0007 import QtQuick 2.2 0008 import QtQuick.Layouts 1.1 0009 import QtQuick.Controls 2.2 0010 import org.kde.purpose 1.0 0011 0012 StackView { 0013 id: stack 0014 focus: true 0015 0016 implicitHeight: currentItem.implicitHeight 0017 0018 property bool running: false 0019 property alias pluginType: altsModel.pluginType 0020 property alias inputData: altsModel.inputData 0021 property Component highlight 0022 property Component header 0023 property Component footer 0024 property variant verticalLayoutDirection: ListView.TopToBottom 0025 property Component delegate: Component { 0026 RowLayout { 0027 width: ListView.view.width 0028 Label { 0029 Layout.fillWidth: true 0030 text: display 0031 elide: Text.ElideRight 0032 } 0033 Button { 0034 text: i18nd("libpurpose6_quick", "Use") 0035 onClicked: createJob(index); 0036 } 0037 Keys.onReturnPressed: createJob(index) 0038 Keys.onEnterPressed: createJob(index) 0039 } 0040 } 0041 0042 /** 0043 * Signals when the job finishes, reports the 0044 * @p error code and a text @p message. 0045 * 0046 * @p output will specify the output offered by the job 0047 */ 0048 signal finished(var output, int error, string message) 0049 0050 PurposeAlternativesModel { 0051 id: altsModel 0052 } 0053 0054 /** 0055 * Adopts the job at the @p index. 0056 */ 0057 function createJob(index) { 0058 stack.push(jobComponent, {index: index}) 0059 } 0060 0061 /** 0062 * Clears and returns back to the initial view. 0063 */ 0064 function reset() { 0065 for(; stack.depth>1; stack.pop()) 0066 {} 0067 } 0068 0069 initialItem: ListView { 0070 ScrollBar.vertical: ScrollBar {} 0071 focus: true 0072 model: altsModel 0073 0074 implicitHeight: contentHeight 0075 0076 verticalLayoutDirection: stack.verticalLayoutDirection 0077 delegate: stack.delegate 0078 highlight: stack.highlight 0079 footer: stack.footer 0080 header: stack.header 0081 } 0082 0083 Component { 0084 id: jobComponent 0085 0086 JobView { 0087 id: jobView 0088 model: altsModel 0089 0090 onStateChanged: { 0091 if (state === PurposeJobController.Finished || state === PurposeJobController.Error) { 0092 stack.finished(jobView.job.output, jobView.job.error, jobView.job.errorString); 0093 } else if (state === PurposeJobController.Cancelled) { 0094 stack.pop(); 0095 } 0096 } 0097 0098 Component.onCompleted: start() 0099 } 0100 } 0101 }