summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--examples/tutorial/SlideDeck.qml5
-rw-r--r--src/Slide.qml30
2 files changed, 32 insertions, 3 deletions
diff --git a/examples/tutorial/SlideDeck.qml b/examples/tutorial/SlideDeck.qml
index df571fb..50c13b5 100644
--- a/examples/tutorial/SlideDeck.qml
+++ b/examples/tutorial/SlideDeck.qml
@@ -150,6 +150,11 @@ Presentation
centeredText: '<font color="red"><i>Use</i> rich text, <font color="blue">if <b>you</b> like...'
}
+ Slide {
+ title: "Slide {}, continued"
+ writeInText: "You can also use the 'writeInText' property for text that should appear character-by-character, like this...\n\n\nProin vulputate pretium tortor, ut bibendum nisi ultricies et. Nullam pharetra tincidunt lorem eu consequat. Sed placerat sem non lacus dictum at lobortis tellus molestie. Fusce sit amet iaculis odio. Ut dictum nibh quis justo lacinia pulvinar. In hac habitasse platea dictumst. Aliquam erat volutpat."
+ }
+
diff --git a/src/Slide.qml b/src/Slide.qml
index 3f45bd8..b44db9f 100644
--- a/src/Slide.qml
+++ b/src/Slide.qml
@@ -44,6 +44,7 @@ Item {
property string title;
property variant content: []
property string centeredText
+ property string writeInText;
property real fontSize: parent.height * 0.05
property real fontScale: 1
@@ -76,7 +77,7 @@ Item {
anchors.bottom: parent.top
anchors.bottomMargin: parent.fontSize * 1.5
font.bold: true;
- font.family: parent.slideFontFamily
+ font.family: slide.slideFontFamily
color: slideTextColor
horizontalAlignment: Text.Center
z: 1
@@ -90,11 +91,34 @@ Item {
text: centeredText
horizontalAlignment: Text.Center
font.pixelSize: baseFontSize
- font.family: parent.slideFontFamily
+ font.family: slide.slideFontFamily
color: slideTextColor
wrapMode: Text.Wrap
}
+ Text {
+ id: writeInTextId
+ property int length;
+ font.family: slide.slideFontFamily
+ font.pixelSize: baseFontSize
+ color: slideTextColor
+
+ anchors.fill: parent;
+ wrapMode: Text.Wrap
+
+ text: slide.writeInText.substring(0, length);
+
+ NumberAnimation on length {
+ from: 0;
+ to: slide.writeInText.length;
+ duration: slide.writeInText.length * 50;
+ running: slide.visible && parent.visible
+ }
+
+ visible: slide.writeInText != undefined;
+ }
+
+
Column {
id: contentId
anchors.fill: parent
@@ -140,7 +164,7 @@ Item {
wrapMode: Text.WordWrap
color: slide.slideTextColor
horizontalAlignment: Text.AlignLeft
- font.family: parent.slideFontFamily
+ font.family: slide.slideFontFamily
}
}
}