Warning, /plasma-mobile/calindori/src/contents/ui/MessageBoard.qml is written in an unsupported language. File is not indexed.

0001 /*
0002  * SPDX-FileCopyrightText: 2021 Dimitris Kardarakos <dimkard@posteo.net>
0003  *
0004  * SPDX-License-Identifier: GPL-3.0-or-later
0005  */
0006 
0007 import QtQuick 2.7
0008 import org.kde.kirigami 2.6 as Kirigami
0009 import org.kde.calindori 0.1 as Calindori
0010 
0011 Kirigami.InlineMessage {
0012     id: root
0013 
0014     property var activeCalendar
0015     property string targetCalendarName
0016     property var targetFolder
0017     property int footerMode: MessageBoard.FooterMode.NoDisplay
0018 
0019     enum FooterMode {
0020         StartImport,
0021         EndImportSuccess,
0022         EndImportFailure,
0023         EndExportSuccess,
0024         EndExportFailure,
0025         NoDisplay
0026     }
0027 
0028     actions: [
0029         Kirigami.Action {
0030             id: proceedAction
0031             icon.name: "dialog-ok"
0032             text: i18n("Proceed")
0033 
0034             onTriggered: {
0035                 root.footerMode = MessageBoard.FooterMode.NoDisplay;
0036                 if( (targetCalendarName === "") || (activeCalendar && (activeCalendar.name === root.targetCalendarName)) ) {
0037                     Calindori.CalendarController.importFromBuffer(activeCalendar);
0038                 }
0039                 else {
0040                     Calindori.CalendarController.importFromBuffer(targetCalendarName);
0041                 }
0042             }
0043         },
0044 
0045         Kirigami.Action {
0046             id: cancelAction
0047             icon.name: "dialog-cancel"
0048             text: i18n("Cancel")
0049 
0050             onTriggered: {
0051                 root.footerMode = MessageBoard.FooterMode.NoDisplay;
0052                 Calindori.CalendarController.abortImporting();
0053             }
0054         },
0055 
0056         Kirigami.Action {
0057             id: openFolderAction
0058             text: i18n("Open folder")
0059             icon.name: "folder-open"
0060 
0061             onTriggered: {
0062                 root.footerMode = MessageBoard.FooterMode.NoDisplay;
0063                 Qt.openUrlExternally(root.targetFolder);
0064             }
0065         }
0066     ]
0067 
0068     states: [
0069         State {
0070             when: root.footerMode === MessageBoard.FooterMode.StartImport
0071             PropertyChanges { target: root; visible: true }
0072             PropertyChanges { target: root; type: Kirigami.MessageType.Information }
0073             PropertyChanges { target: root; showCloseButton: false }
0074             PropertyChanges { target: proceedAction; visible: true }
0075             PropertyChanges { target: cancelAction; visible: true }
0076             PropertyChanges { target: openFolderAction; visible: false }
0077         },
0078 
0079         State {
0080             when: root.footerMode === MessageBoard.FooterMode.EndImportSuccess
0081             PropertyChanges { target: root; visible: true }
0082             PropertyChanges { target: root; type: Kirigami.MessageType.Positive }
0083             PropertyChanges { target: root; showCloseButton: true }
0084             PropertyChanges { target: proceedAction; visible: false }
0085             PropertyChanges { target: cancelAction; visible: false }
0086             PropertyChanges { target: openFolderAction; visible: false }
0087         },
0088 
0089         State {
0090             when: root.footerMode === MessageBoard.FooterMode.EndImportFailure
0091             PropertyChanges { target: root; visible: true }
0092             PropertyChanges { target: root; type: Kirigami.MessageType.Warning }
0093             PropertyChanges { target: root; showCloseButton: true }
0094             PropertyChanges { target: proceedAction; visible: false }
0095             PropertyChanges { target: cancelAction; visible: false }
0096             PropertyChanges { target: openFolderAction; visible: false }
0097         },
0098 
0099         State {
0100             when: root.footerMode === MessageBoard.FooterMode.EndExportSuccess
0101             PropertyChanges { target: root; visible: true }
0102             PropertyChanges { target: root; type: Kirigami.MessageType.Positive }
0103             PropertyChanges { target: root; showCloseButton: true }
0104             PropertyChanges { target: proceedAction; visible: false }
0105             PropertyChanges { target: cancelAction; visible: false }
0106             PropertyChanges { target: openFolderAction; visible: true }
0107         },
0108 
0109         State {
0110             when: root.footerMode === MessageBoard.FooterMode.EndExportFailure
0111             PropertyChanges { target: root; visible: true }
0112             PropertyChanges { target: root; type: Kirigami.MessageType.Warning }
0113             PropertyChanges { target: root; showCloseButton: true }
0114             PropertyChanges { target: proceedAction; visible: false }
0115             PropertyChanges { target: cancelAction; visible: false }
0116             PropertyChanges { target: openFolderAction; visible: false }
0117         },
0118 
0119         State {
0120             when: root.footerMode === MessageBoard.FooterMode.NoDisplay
0121             PropertyChanges { target: root; visible: false }
0122             PropertyChanges { target: proceedAction; visible: false }
0123             PropertyChanges { target: cancelAction; visible: false }
0124             PropertyChanges { target: openFolderAction; visible: false }
0125         }
0126 
0127     ]
0128 }
0129