Browse Source

Introduce trivial view

Donald Carr 7 years ago
parent
commit
abaa67beb6
2 changed files with 91 additions and 0 deletions
  1. 90 0
      qml/views/trivial/Trivial.qml
  2. 1 0
      src/src.pro

+ 90 - 0
qml/views/trivial/Trivial.qml

@@ -0,0 +1,90 @@
+import QtQuick 2.5
+
+import "../.."
+
+Item {
+    id: root
+
+    property var imageArray: []
+
+    function animationStep() {
+        var lastImage = d.headImageArray[0]
+
+        if (lastImage === undefined || lastImage.y > 0) {
+            globalUtil.itemCount++
+            var newItem = d.pictureDelegate.createObject(root)
+            newItem.y = !!d.headImageArray[0]
+                    ? d.headImageArray[0].y - newItem.height
+                    : - newItem.height
+            imageArray.push(newItem)
+            d.headImageArray[0] = newItem
+        }
+
+        imageArray.forEach(function(image) { image.advance() })
+    }
+
+    QtObject {
+        id: d
+        property real speed: 10
+        property int startingPoint: 0
+        property real t: 0
+        property real columnRatio: globalSettings.useGoldenRatio ? globalVars.goldenRatio : globalSettings.lessGoldenRatio
+        property var imageArray: []
+        property var colWidthArray: []
+        property var xposArray: []
+        property var headImageArray: []
+
+        property var pictureDelegate: Component {
+            ArtImage {
+                property int columnIndex: 0
+
+                function advance() {
+                    if (y > root.height) {
+                        if (globalSettings.columnCount - columnIndex < 1) {
+                            imageArray.shift()
+                            visible = false
+                            destroy();
+                            d.speed = 1
+                        } else {
+                            columnIndex += 1
+                            y = !!d.headImageArray[columnIndex] ? d.headImageArray[columnIndex].y - height : - height
+                            d.headImageArray[columnIndex] = this
+                        }
+                    } else {
+                        y += d.speed
+                    }
+                }
+
+                width: d.colWidthArray[columnIndex]
+                x: d.xposArray[columnIndex]
+
+                onHeightChanged: {
+                    y = !!d.headImageArray[columnIndex] ? d.headImageArray[columnIndex].y - height : - height
+                }
+            }
+        }
+
+        NumberAnimation on t { from: 0; to: 1; duration: 1000; loops: -1 }
+        onTChanged: { root.animationStep(); }
+
+        Component.onCompleted: {
+            var baseUnit = root.width*globalUtil.columnWidthRatio(d.columnRatio, globalSettings.columnCount)
+            for(var i = 0; i < globalSettings.columnCount; i++) {
+                if (i == (globalSettings.columnCount-1)) {
+                    var finalColWidth = root.width - colWidthArray.reduce(function(a,b){ return a+b; }, 0)
+                    colWidthArray.push(finalColWidth)
+                    globalVars.imageWidthOverride = finalColWidth
+                } else {
+                    colWidthArray.push(Math.round(baseUnit*Math.pow(d.columnRatio, i)))
+                }
+
+                xposArray.push(i === 0 ? 0 : xposArray[i-1] + colWidthArray[i-1])
+            }
+        }
+    }
+
+    Connections {
+        target: globalSettings
+        onColumnCountChanged: console.log('Col count:' + globalSettings.columnCount)
+    }
+}

+ 1 - 0
src/src.pro

@@ -75,6 +75,7 @@ QMLFILES += \
     ../qml/views/cascade/CascadeDelegate.qml \
     ../qml/views/cascade/CascadeDelegate.qml \
     ../qml/views/conveyor/Conveyor.qml \
     ../qml/views/conveyor/Conveyor.qml \
     ../qml/views/basic/Basic.qml \
     ../qml/views/basic/Basic.qml \
+    ../qml/views/trivial/Trivial.qml \
     ../qml/views/reel/Reel.qml \
     ../qml/views/reel/Reel.qml \
     ../qml/views/reel/ReelImage.qml \
     ../qml/views/reel/ReelImage.qml \
     ../qml/views/procession/Procession.qml \
     ../qml/views/procession/Procession.qml \