diff options
Diffstat (limited to 'ToastManager.qml')
-rw-r--r-- | ToastManager.qml | 57 |
1 files changed, 57 insertions, 0 deletions
diff --git a/ToastManager.qml b/ToastManager.qml new file mode 100644 index 0000000..8bb419b --- /dev/null +++ b/ToastManager.qml @@ -0,0 +1,57 @@ +import QtQuick 2.0 + +/** + * adapted from StackOverflow: + * http://stackoverflow.com/questions/26879266/make-toast-in-android-by-qml + * GitHub Gist: https://gist.github.com/jonmcclung/bae669101d17b103e94790341301c129 + * @brief Manager that creates Toasts dynamically + */ +ListView { + /** + * Public + */ + + /** + * @brief Shows a Toast + * + * @param {string} text Text to show + * @param {real} duration Duration to show in milliseconds, defaults to 3000 + */ + function show(text, duration) { + model.insert(0, {text: text, duration: duration}); + } + + /** + * Private + */ + + id: root + + z: Infinity + spacing: 5 + anchors.fill: parent + anchors.bottomMargin: 10 + verticalLayoutDirection: ListView.BottomToTop + + interactive: false + + displaced: Transition { + NumberAnimation { + properties: "y" + easing.type: Easing.InOutQuad + } + } + + delegate: Toast { + Component.onCompleted: { + if (typeof duration === "undefined") { + show(text); + } + else { + show(text, duration); + } + } + } + + model: ListModel {id: model} +} |