Warning, /system/apper/plasmoid/package/contents/ui/ChangelogView.qml is written in an unsupported language. File is not indexed.

0001 /*
0002  * Copyright 2012  Daniel Nicoletti <dantti12@gmail.com>
0003  *
0004  * This program is free software; you can redistribute it and/or
0005  * modify it under the terms of the GNU General Public License as
0006  * published by the Free Software Foundation; either version 2 of
0007  * the License, or (at your option) any later version.
0008  *
0009  * This program is distributed in the hope that it will be useful,
0010  * but WITHOUT ANY WARRANTY; without even the implied warranty of
0011  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
0012  * GNU General Public License for more details.
0013  *
0014  * You should have received a copy of the GNU General Public License
0015  * along with this program.  If not, see <http://www.gnu.org/licenses/>.
0016  */
0017 
0018 import QtQuick 1.1
0019 import org.kde.plasma.components 0.1 as PlasmaComponents
0020 import org.kde.apper 0.1 as Apper
0021 
0022 Item {
0023     id: changelogItem
0024     state: "FETCHING"
0025     width: parent.width
0026 
0027     property string updatesList: ""
0028 
0029     function transactionFinished() {
0030         if (changelogItem.state != "DETAILS") {
0031             statusView.title = i18n("Failed to get update details");
0032             if (transaction.internalErrorMessage !== undefined) {
0033                 statusView.subTitle = transaction.internalErrorMessage;
0034             }
0035             changelogItem.state = "ERROR";
0036         }
0037     }
0038 
0039     Apper.PkTransaction {
0040         id: transaction
0041         onUpdateDetail: {
0042             for (var count = 0; count < updates.length; ++count) {
0043                 if (updatesList.length) {
0044                     updatesList += ", "
0045                 }
0046                 updatesList += Daemon.packageName(updates[count]) + " - " + Daemon.packageVersion(updates[count]);
0047             }
0048 
0049             if (updateText === "" || updateText === undefined) {
0050                 if (changelog !== "" && changelog !== undefined) {
0051                     changelogText.text = changelog;
0052                 }
0053             } else {
0054                 changelogText.text = updateText;
0055             }
0056             changelogItem.state = "DETAILS";
0057         }
0058     }
0059 
0060     StatusView {
0061         id: busyView
0062         opacity: 0
0063         anchors.left: parent.left
0064         anchors.right: parent.right
0065         anchors.verticalCenter: parent.verticalCenter
0066         state: "BUSY"
0067         iconSize: 32
0068         title: PkStrings.action(transaction.role, transaction.transactionFlags)
0069         subTitle: PkStrings.status(transaction.status)
0070     }
0071 
0072     StatusView {
0073         id: statusView
0074         opacity: 0
0075         anchors.left: parent.left
0076         anchors.right: parent.right
0077         anchors.verticalCenter: parent.verticalCenter
0078         iconSize: 32
0079         iconName: "dialog-error"
0080     }
0081 
0082     Column {
0083         id: detailsColumn
0084         opacity: 0
0085         spacing: 2
0086         anchors.left: parent.left
0087         anchors.top: parent.top
0088         anchors.right: parent.right
0089         anchors.leftMargin: updateCB.width
0090         PlasmaComponents.Label {
0091             id: updateVersion
0092             width: parent.width
0093             wrapMode: Text.Wrap
0094             text: i18n("Version: %1", rVersion)
0095         }
0096         PlasmaComponents.Label {
0097             id: updatesText
0098             width: parent.width
0099             wrapMode: Text.Wrap
0100             text: i18n("Updates: %1", updatesList)
0101         }
0102         PlasmaComponents.Label {
0103             id: changelogText
0104             width: parent.width
0105             wrapMode: Text.Wrap
0106         }
0107     }
0108 
0109     states: [
0110         State {
0111             name: "FETCHING"
0112             PropertyChanges { target: busyView; opacity: 1 }
0113             PropertyChanges { target: changelogItem; height: busyView.preferedHeight }
0114         },
0115         State {
0116             name: "ERROR"
0117             PropertyChanges { target: statusView; opacity: 1 }
0118             PropertyChanges { target: changelogItem; height: statusView.preferedHeight }
0119         },
0120         State {
0121             name: "DETAILS"
0122             PropertyChanges { target: detailsColumn; opacity: 1 }
0123             PropertyChanges { target: changelogItem; height: detailsColumn.height }
0124         }
0125     ]
0126 
0127     transitions: Transition {
0128         NumberAnimation { properties: "opacity"; easing.type: Easing.InOutQuad }
0129     }
0130 
0131     Component.onCompleted: {
0132         transaction.finished.connect(transactionFinished);
0133         transaction.getUpdateDetail(rId);
0134         var error = transaction.internalError;
0135         if (error) {
0136             statusView.title = PkStrings.daemonError(error);
0137             if (transaction.internalErrorMessage !== undefined) {
0138                 statusView.subTitle = transaction.internalErrorMessage;
0139             }
0140             changelogItem.state = "ERROR";
0141         }
0142     }
0143 }