diff options
author | Orgad Shaneh <orgads@gmail.com> | 2011-07-04 07:47:25 +0300 |
---|---|---|
committer | Orgad Shaneh <orgads@gmail.com> | 2011-07-04 07:47:25 +0300 |
commit | 547b0af5c379bae4f07038ef12ca9c5359e51f52 (patch) | |
tree | 5937b9d1bf85d855dccbcb8e3e130ab9c0d0bdeb | |
parent | 705cae01a754c130078d44540a80470ddb3f7bf9 (diff) |
Added arbitrary slide selection (number + return)
-rw-r--r-- | src/Presentation.qml | 35 |
1 files changed, 30 insertions, 5 deletions
diff --git a/src/Presentation.qml b/src/Presentation.qml index c7a94ce..acba43d 100644 --- a/src/Presentation.qml +++ b/src/Presentation.qml @@ -44,6 +44,8 @@ Item { property bool faded: false + property int userNum; + Component.onCompleted: { var slideCount = 0; var slides = []; @@ -55,6 +57,7 @@ Item { } root.slides = slides; + root.userNum = 0; // Make first slide visible... if (root.slides.length > 0) { @@ -70,6 +73,7 @@ Item { } function goToNextSlide() { + root.userNum = 0 if (faded) return if (root.currentSlide + 1 < root.slides.length) { @@ -83,6 +87,7 @@ Item { } function goToPreviousSlide() { + root.userNum = 0 if (root.faded) return if (root.currentSlide - 1 >= 0) { @@ -90,7 +95,21 @@ Item { var to = slides[currentSlide - 1] if (switchSlides(from, to)) { currentSlide = currentSlide - 1; - root.focus = true; + root.focus = true; + } + } + } + + function goToUserSlide() { + --userNum; + if (root.faded || userNum < 0 || userNum >= root.slides.length) + return + if (root.currentSlide != userNum) { + var from = slides[currentSlide] + var to = slides[userNum] + if (switchSlides(from, to)) { + currentSlide = userNum; + root.focus = true; } } } @@ -102,8 +121,16 @@ Item { Keys.onLeftPressed: goToPreviousSlide() Keys.onEscapePressed: Qt.quit() Keys.onPressed: { - if (event.key == Qt.Key_C) - root.faded = !root.faded + if (event.key >= Qt.Key_0 && event.key <= Qt.Key_9) + userNum = 10 * userNum + (event.key - Qt.Key_0) + else + { + if (event.key == Qt.Key_Return || event.key == Qt.Key_Enter) + goToUserSlide(); + else if (event.key == Qt.Key_C) + root.faded = !root.faded; + userNum = 0; + } } Rectangle { @@ -119,6 +146,4 @@ Item { anchors.fill: parent onClicked: goToNextSlide() } - - } |