Warning, /pim/kube/framework/qml/ListView.qml is written in an unsupported language. File is not indexed.
0001 /* 0002 * Copyright (C) 2016 Michael Bohlender, <michael.bohlender@kdemail.net> 0003 * Copyright (C) 2017 Christian Mollekopf, <mollekopf@kolabsystems.com> 0004 * 0005 * This program is free software; you can redistribute it and/or modify 0006 * it under the terms of the GNU General Public License as published by 0007 * the Free Software Foundation; either version 2 of the License, or 0008 * (at your option) any later version. 0009 * 0010 * This program is distributed in the hope that it will be useful, 0011 * but WITHOUT ANY WARRANTY; without even the implied warranty of 0012 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 0013 * GNU General Public License for more details. 0014 * 0015 * You should have received a copy of the GNU General Public License along 0016 * with this program; if not, write to the Free Software Foundation, Inc., 0017 * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. 0018 */ 0019 0020 import QtQuick 2.15 0021 import QtQuick.Controls 2 0022 import org.kube.framework 1.0 as Kube 0023 0024 ListView { 0025 id: root 0026 property Item mouseProxy: scrollHelper 0027 property int availableWidth: scrollBar.visible ? width - scrollBar.width: width 0028 implicitHeight: contentHeight 0029 0030 clip: true 0031 ScrollBar.vertical: Kube.ScrollBar { id: scrollBar } 0032 highlightMoveDuration: 100 0033 0034 add: Transition { 0035 // FIXME Even though we handle interrupted transitions in the displaced handler, 0036 // we still occasionally end up with invisible items (e.g. when starting into the inbound view) 0037 // NumberAnimation { property: "opacity"; from: 0.1; to: 1.0; duration: 100 } 0038 } 0039 0040 displaced: Transition { 0041 //FIXME This causes some delegates to be invisible every now and then (no idea why) 0042 // NumberAnimation { properties: "x,y"; duration: 50 } 0043 //Handle interrupted add transitions 0044 NumberAnimation { property: "opacity"; to: 1.0; } 0045 } 0046 0047 Keys.onPressed: { 0048 if (event.matches(StandardKey.MoveToNextLine)) { 0049 incrementCurrentIndex() 0050 } else if (event.matches(StandardKey.MoveToPreviousLine)) { 0051 decrementCurrentIndex() 0052 } 0053 } 0054 0055 Kube.ScrollHelper { 0056 id: scrollHelper 0057 flickable: root 0058 anchors.fill: root 0059 } 0060 0061 onAtYEndChanged: { 0062 //The fetchMore logic doesn't work in the inbound view (not sure why, it should). 0063 //However, this does pretty much the same and works. 0064 if (atYEnd && model && typeof model.tryFetchMore === "function") { 0065 model.tryFetchMore() 0066 } 0067 } 0068 } 0069