diff --git a/.gitignore b/.gitignore index 4a0b530..d0b2fe7 100644 --- a/.gitignore +++ b/.gitignore @@ -72,3 +72,4 @@ CMakeLists.txt.user* *.dll *.exe +build/ diff --git a/CMakeLists.txt b/CMakeLists.txt index 9c0481b..f3be782 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -12,7 +12,10 @@ qt_add_library(components STATIC) qt_add_qml_module(components URI ru.ded.components VERSION 1.0 - QML_FILES MainMenu.qml MenuBackButton.qml SubtitledItemDelegate.qml + QML_FILES MainMenu.qml + MenuBackButton.qml + SubtitledItemDelegate.qml + PoolToRefresh.qml ) set_target_properties(components PROPERTIES diff --git a/PoolToRefresh.qml b/PoolToRefresh.qml new file mode 100644 index 0000000..a7a3169 --- /dev/null +++ b/PoolToRefresh.qml @@ -0,0 +1,42 @@ +import QtQuick 2.15 +import QtQuick.Controls 2.15 + +Item { + id: root + + signal update() + + property string text: qsTr("Release to update") + property real sensivity: 50.0 + property alias enabled: connections.enabled + + property bool triggered: false + property bool trigger: parent.contentY < -1 * sensivity + property bool atStart: parent.contentY === 0 + + Label { + id: label + + anchors.horizontalCenter: root.horizontalCenter + + visible: root.trigger + text: root.text + } + + Connections { + id: connections + + target: root.parent + + function onContentYChanged() { + if (root.trigger) { + root.triggered = true + } + + if (root.atStart && root.triggered) { + root.update() + root.triggered = false + } + } + } +}