Refactor ContentView to add media browser
This commit is contained in:
@@ -0,0 +1,67 @@
|
||||
import QtQuick 2.12
|
||||
import QtQuick.Controls 2.15
|
||||
import QtGraphicalEffects 1.12
|
||||
|
||||
Column {
|
||||
property int yIndex: 0
|
||||
property bool selected
|
||||
property var letters: ['#', 'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z']
|
||||
Item {
|
||||
height: 20
|
||||
width: parent.width
|
||||
}
|
||||
ScrollView {
|
||||
height: parent.height - 30
|
||||
width: parent.width
|
||||
ScrollBar.vertical.position: {
|
||||
if (yIndex > 20) {
|
||||
return (5 - (25 - yIndex)) * (0.048);
|
||||
} else {
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
Flickable {
|
||||
clip: true
|
||||
Column {
|
||||
spacing: 10
|
||||
Repeater {
|
||||
model: letters
|
||||
Item {
|
||||
width: 40
|
||||
height: 40
|
||||
anchors.horizontalCenter: parent.horizontalCenter
|
||||
property bool s: selected && (index == yIndex)
|
||||
DropShadow {
|
||||
anchors.fill: selector
|
||||
verticalOffset: 5
|
||||
samples: 20
|
||||
color: "black"
|
||||
opacity: 0.5
|
||||
source: selector
|
||||
visible: s
|
||||
}
|
||||
Rectangle {
|
||||
id: selector
|
||||
anchors.fill: parent
|
||||
color: "white"
|
||||
visible: s
|
||||
radius: 10
|
||||
}
|
||||
Text {
|
||||
anchors.horizontalCenter: parent.horizontalCenter
|
||||
anchors.verticalCenter: parent.verticalCenter
|
||||
anchors.verticalCenterOffset: 4
|
||||
text: modelData
|
||||
color: s ? "black" : "gray"
|
||||
font.pointSize: 18
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
Item {
|
||||
height: 20
|
||||
width: parent.width
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user