Changeset View
Changeset View
Standalone View
Standalone View
discover/qml/InstallApplicationButton.qml
1 | import QtQuick 2.1 | 1 | import QtQuick 2.1 | ||
---|---|---|---|---|---|
2 | import QtQuick.Controls 1.1 | 2 | import QtQuick.Controls 1.1 | ||
3 | import QtQuick.Layouts 1.1 | 3 | import QtQuick.Layouts 1.1 | ||
4 | import org.kde.discover 1.0 | 4 | import org.kde.discover 1.0 | ||
5 | import org.kde.kirigami 2.0 as Kirigami | ||||
5 | 6 | | |||
6 | ConditionalLoader | 7 | ConditionalLoader | ||
7 | { | 8 | { | ||
8 | id: root | 9 | id: root | ||
9 | property alias application: listener.resource | 10 | property alias application: listener.resource | ||
10 | readonly property alias isActive: listener.isActive | 11 | readonly property alias isActive: listener.isActive | ||
11 | readonly property alias progress: listener.progress | 12 | readonly property alias progress: listener.progress | ||
12 | readonly property alias listener: listener | 13 | readonly property alias listener: listener | ||
13 | property Component additionalItem: null | 14 | property Component additionalItem: null | ||
14 | property bool canUpgrade: true | | |||
15 | property bool fill: false | | |||
16 | 15 | | |||
17 | TransactionListener { | 16 | TransactionListener { | ||
18 | id: listener | 17 | id: listener | ||
19 | } | 18 | } | ||
20 | 19 | | |||
21 | function click() { | 20 | function click() { | ||
22 | if (!isActive) { | 21 | if (!isActive) { | ||
23 | item.click(); | 22 | item.click(); | ||
Show All 11 Lines | 27 | componentTrue: RowLayout { | |||
35 | ToolButton { | 34 | ToolButton { | ||
36 | Layout.fillHeight: true | 35 | Layout.fillHeight: true | ||
37 | iconName: "dialog-cancel" | 36 | iconName: "dialog-cancel" | ||
38 | enabled: listener.isCancellable | 37 | enabled: listener.isCancellable | ||
39 | onClicked: listener.cancel() | 38 | onClicked: listener.cancel() | ||
40 | } | 39 | } | ||
41 | } | 40 | } | ||
42 | 41 | | |||
43 | componentFalse: RowLayout { | 42 | componentFalse: ToolButton { | ||
43 | id: button | ||||
44 | function click() { button.clicked(); } | 44 | function click() { button.clicked(); } | ||
45 | 45 | | |||
46 | Loader { | | |||
47 | Layout.fillWidth: root.fill | | |||
48 | Component { | | |||
49 | id: updateButton | | |||
50 | Button { | | |||
51 | text: i18n("Update") | | |||
52 | onClicked: ResourcesModel.installApplication(application) | | |||
53 | } | | |||
54 | } | | |||
55 | sourceComponent: (root.canUpgrade && application.canUpgrade) ? updateButton : root.additionalItem | | |||
56 | } | | |||
57 | Button { | | |||
58 | id: button | | |||
59 | enabled: application.state != AbstractResource.Broken | 46 | enabled: application.state != AbstractResource.Broken | ||
60 | text: !application.isInstalled ? i18n("Install") : i18n("Remove") | 47 | text: !application.isInstalled ? i18n("Install") : i18n("Remove") | ||
61 | Layout.fillWidth: root.fill | | |||
62 | 48 | | |||
63 | onClicked: { | 49 | onClicked: { | ||
64 | if(application.isInstalled) | 50 | if(application.isInstalled) | ||
65 | ResourcesModel.removeApplication(application); | 51 | ResourcesModel.removeApplication(application); | ||
66 | else | 52 | else | ||
67 | ResourcesModel.installApplication(application); | 53 | ResourcesModel.installApplication(application); | ||
68 | } | 54 | } | ||
69 | } | 55 | } | ||
70 | } | 56 | } | ||
71 | } | |