Warning, /system/apper/plasmoid/package/contents/ui/Updates.qml is written in an unsupported language. File is not indexed.
0001 /* 0002 * Copyright 2012-2013 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.core 0.1 as PlasmaCore 0020 import org.kde.plasma.components 0.1 as PlasmaComponents 0021 import org.kde.apper 0.1 as Apper 0022 0023 FocusScope { 0024 id: updates 0025 0026 anchors.fill: parent 0027 clip: true 0028 0029 property alias sortModel: appModel 0030 signal updateClicked() 0031 0032 function modelChanged() { 0033 updateAllCB.checked = updatesModel.allSelected(); 0034 // Enable the update button if there are packages to install 0035 updateBT.enabled = updatesModel.selectedPackagesToInstall().length; 0036 } 0037 0038 PlasmaCore.FrameSvgItem { 0039 id: padding 0040 imagePath: "widgets/viewitem" 0041 prefix: "hover" 0042 visible: false 0043 } 0044 0045 Apper.ApplicationSortFilterModel { 0046 id: appModel 0047 sourcePkgModel: updatesModel 0048 } 0049 0050 Column { 0051 spacing: 4 0052 anchors.fill: parent 0053 0054 Row { 0055 id: headerRow 0056 spacing: 4 0057 // This margin is to align with the updates list check boxes 0058 anchors.leftMargin: padding.margins.left 0059 anchors.left: parent.left 0060 anchors.right: parent.right 0061 PlasmaComponents.CheckBox { 0062 id: updateAllCB 0063 anchors.verticalCenter: parent.verticalCenter 0064 height: width 0065 onClicked: updatesModel.setAllChecked(checked); 0066 KeyNavigation.tab: updateBT 0067 KeyNavigation.backtab: updatesView 0068 } 0069 PlasmaComponents.Label { 0070 anchors.verticalCenter: parent.verticalCenter 0071 width: parent.width - updateAllCB.width - updateBT.width - parent.spacing * 2 0072 horizontalAlignment: Text.AlignLeft 0073 text: updatesModel.selectionStateText 0074 } 0075 PlasmaComponents.Button { 0076 id: updateBT 0077 focus: true 0078 anchors.verticalCenter: parent.verticalCenter 0079 text: i18n("Install") 0080 KeyNavigation.tab: updatesView 0081 KeyNavigation.backtab: updateAllCB 0082 } 0083 } 0084 0085 PlasmaCore.SvgItem { 0086 id: headerSeparator 0087 svg: PlasmaCore.Svg { 0088 id: lineSvg 0089 imagePath: "widgets/line" 0090 } 0091 elementId: "horizontal-line" 0092 height: lineSvg.elementSize("horizontal-line").height 0093 width: parent.width 0094 } 0095 0096 ScrollableListView { 0097 id: updatesView 0098 height: parent.height - headerRow.height - parent.spacing * 2 0099 anchors.left: parent.left 0100 anchors.right: parent.right 0101 delegate: UpdateItemDelegate { 0102 } 0103 view.currentIndex: -1 0104 model: appModel 0105 KeyNavigation.tab: updateAllCB 0106 KeyNavigation.backtab: updateBT 0107 } 0108 } 0109 0110 Component.onCompleted: { 0111 updatesModel.changed.connect(modelChanged); 0112 updateBT.clicked.connect(updateClicked); 0113 } 0114 }