2 * Copyright (C) 2015 Canonical Ltd.
4 * This program is free software; you can redistribute it and/or modify
5 * it under the terms of the GNU General Public License as published by
6 * the Free Software Foundation; version 3.
8 * This program is distributed in the hope that it will be useful,
9 * but WITHOUT ANY WARRANTY; without even the implied warranty of
10 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11 * GNU General Public License for more details.
13 * You should have received a copy of the GNU General Public License
14 * along with this program. If not, see <http://www.gnu.org/licenses/>.
23 property ListView list
27 property: "bottomMargin"
31 function setMakeSureVisibleItem(item) {
32 d.previousVisibleHeight = d.visibleHeight;
33 d.makeSureVisibleItem = item;
38 property var makeSureVisibleItem
39 property real previousVisibleHeight: 0
40 readonly property real visibleHeight: list.height - list.bottomMargin
41 readonly property real bottomMargin: Qt.inputMethod.visible ? Qt.inputMethod.keyboardRectangle.height : 0
43 onVisibleHeightChanged: {
44 if (makeSureVisibleItem && makeSureVisibleItem.activeFocus && previousVisibleHeight > visibleHeight) {
45 var textAreaPos = makeSureVisibleItem.mapToItem(list, 0, 0);
46 if (textAreaPos.y + makeSureVisibleItem.height > visibleHeight) {
47 list.contentY += textAreaPos.y + makeSureVisibleItem.height - visibleHeight
50 previousVisibleHeight = visibleHeight;