summaryrefslogtreecommitdiffstats
path: root/accounts/maildir/package/contents/ui/MaildirAccountSettings.qml
blob: f191c82c8820a5b2750762d74bdd44e8be52f7af (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
/*
  Copyright (C) 2016 Michael Bohlender, <michael.bohlender@kdemail.net>
  Copyright (C) 2017 Christian Mollekopf, <mollekopf@kolabsys.com>

  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 02110-1301, USA.
*/

import QtQuick 2.4
import QtQuick.Controls 1.4 as Controls
import QtQuick.Controls 2.0 as Controls2
import QtQuick.Layouts 1.1
import QtQuick.Dialogs 1.0 as Dialogs

import org.kde.kirigami 1.0 as Kirigami

import org.kube.accounts.maildir 1.0 as MaildirAccount

Item {
    property string accountId
    property string heading: "Add your Maildir archive"
    property string subheadline: "To let Kube access your maildir archive, add the path to your archive and give the account a title that will be displayed inside Kube."

    MaildirAccount.MaildirSettings {
        id: maildirSettings
        accountIdentifier: accountId
        accountType: "maildir"
    }

    function save(){
        maildirSettings.save()
    }

    function remove(){
        maildirSettings.remove()
    }

    Item {
        anchors {
            fill: parent
        }

        GridLayout {
            anchors {
                fill: parent
            }
            columns: 2
            columnSpacing: Kube.Units.largeSpacing
            rowSpacing: Kube.Units.largeSpacing

            Controls.Label {
                text: "Title of Account"
                Layout.alignment: Qt.AlignRight
            }
            Controls.TextField {
                Layout.fillWidth: true
                placeholderText: "E.g. \"Work\", \"Home\" that will be displayed in Kube as name"
                text: maildirSettings.accountName
                onTextChanged: {
                    maildirSettings.accountName = text
                }
            }

            Controls2.Label {
                text: "Path"
                Layout.alignment: Qt.AlignRight
            }
            RowLayout {
                Layout.fillWidth: true

                Controls.TextField {
                    id: path
                    Layout.fillWidth: true
                    enabled: false
                    text: maildirSettings.path
                }

                Controls.Button {
                    iconName: Kube.Icons.folder

                    onClicked: {
                        fileDialogComponent.createObject(parent)
                    }

                    Component {
                        id: fileDialogComponent
                        Dialogs.FileDialog {
                            id: fileDialog

                            visible: true
                            title: "Choose the maildir folder"

                            selectFolder: true

                            onAccepted: {
                                maildirSettings.path = fileDialog.fileUrl
                            }
                        }
                    }
                }
            }
        }
    }
}