diff options
| author | Javier S. Pedro <maemo@javispedro.com> | 2011-12-02 23:02:51 +0100 | 
|---|---|---|
| committer | Javier S. Pedro <maemo@javispedro.com> | 2011-12-02 23:02:51 +0100 | 
| commit | d5b5cfc83e1247ebc18ef2024f07bdd37d41164b (patch) | |
| tree | d6c44ffe944c730f4bb16a3e5a412db78027f324 /metawatch/qml/com/javispedro | |
| parent | 1abf33ab7bcbf73ebb9eeb6c388c3c1c4abef445 (diff) | |
| download | sowatch-d5b5cfc83e1247ebc18ef2024f07bdd37d41164b.tar.gz sowatch-d5b5cfc83e1247ebc18ef2024f07bdd37d41164b.zip  | |
provide a set of metawatch common qml elements
Diffstat (limited to 'metawatch/qml/com/javispedro')
3 files changed, 74 insertions, 0 deletions
diff --git a/metawatch/qml/com/javispedro/sowatch/metawatch/MWListView.qml b/metawatch/qml/com/javispedro/sowatch/metawatch/MWListView.qml new file mode 100644 index 0000000..3e445fb --- /dev/null +++ b/metawatch/qml/com/javispedro/sowatch/metawatch/MWListView.qml @@ -0,0 +1,56 @@ +import QtQuick 1.0 + +ListView { +	id: list + +	property bool selectable: true + +	interactive: false +	highlightFollowsCurrentItem: false +	boundsBehavior: Flickable.StopAtBounds + +	property real currentItemTop: currentItem !== null ? currentItem.y - contentY : 0 +	property real currentItemBottom: currentItem !== null ? currentItemTop + currentItem.height : 0 + +	function scrollDown() { +		if (count == 0) { +			return; // No items +		} +		if (selectable) { +			if (currentIndex == -1) { +				// If no item is selected, select the first one. +				currentItem = 0; +				return; +			} +			if (currentIndex < count && currentItemBottom < height) { +				// If the next item is visible, highlight it +				incrementCurrentIndex(); +			} +			if (currentItemBottom >= height) { +				// If the next item now is still not visible, scroll +				contentY += 96/3; +			} +		} +	} + +	function scrollUp() { +		if (count == 0) { +			return; // No items +		} +		if (selectable) { +			if (currentIndex == -1) { +				// If no item is selected, select the last one. +				currentIndex = count - 1; +				return; +			} +			if (currentIndex >= 0 && currentItemTop > 0) { +				// If the previous item is visible, highlight it +				decrementCurrentIndex(); +			} +			if (currentItemTop <= 0) { +				// If the previous item now is still not visible, scroll +				contentY -= 96/3; +			} +		} +	} +} diff --git a/metawatch/qml/com/javispedro/sowatch/metawatch/MWTitle.qml b/metawatch/qml/com/javispedro/sowatch/metawatch/MWTitle.qml new file mode 100644 index 0000000..8aa494c --- /dev/null +++ b/metawatch/qml/com/javispedro/sowatch/metawatch/MWTitle.qml @@ -0,0 +1,16 @@ +import QtQuick 1.0 + +Rectangle { +	width: 96 +	height: 16 + +	property alias text: label.text + +	Row { +		anchors.fill: parent +		Text { +			id: label +			font.bold: true +		} +	} +} diff --git a/metawatch/qml/com/javispedro/sowatch/metawatch/qmldir b/metawatch/qml/com/javispedro/sowatch/metawatch/qmldir new file mode 100644 index 0000000..02221c3 --- /dev/null +++ b/metawatch/qml/com/javispedro/sowatch/metawatch/qmldir @@ -0,0 +1,2 @@ +MWTitle 1.0 MWTitle.qml +MWListView 1.0 MWListView.qml  | 
