You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
97 lines
1.8 KiB
97 lines
1.8 KiB
import QtQuick 2.2
|
|
import QtQuick.Controls 1.1
|
|
import QtQuick.Layouts 1.0
|
|
import QtQuick.Controls.Styles 1.1
|
|
|
|
ColumnLayout {
|
|
property string title
|
|
property variant listModel;
|
|
property bool collapsible;
|
|
property Component itemDelegate
|
|
spacing: 0
|
|
|
|
function collapse()
|
|
{
|
|
storageContainer.state = "collapsed";
|
|
}
|
|
|
|
function show()
|
|
{
|
|
storageContainer.state = "";
|
|
}
|
|
|
|
Component.onCompleted:
|
|
{
|
|
if (storageContainer.parent.parent.height === 25)
|
|
storageContainer.state = "collapsed";
|
|
}
|
|
|
|
RowLayout {
|
|
height: 25
|
|
id: header
|
|
Image {
|
|
source: "qrc:/qml/img/opentriangleindicator.png"
|
|
width: 15
|
|
sourceSize.width: 15
|
|
id: storageImgArrow
|
|
}
|
|
|
|
Text {
|
|
anchors.left: storageImgArrow.right
|
|
color: "#8b8b8b"
|
|
text: title
|
|
id: storageListTitle
|
|
}
|
|
|
|
MouseArea
|
|
{
|
|
enabled: collapsible
|
|
anchors.fill: parent
|
|
onClicked: {
|
|
if (collapsible)
|
|
{
|
|
if (storageContainer.state == "collapsed")
|
|
{
|
|
storageContainer.state = "";
|
|
storageContainer.parent.parent.height = storageContainer.parent.parent.Layout.maximumHeight;
|
|
}
|
|
else
|
|
storageContainer.state = "collapsed";
|
|
}
|
|
}
|
|
}
|
|
}
|
|
Rectangle
|
|
{
|
|
border.width: 3
|
|
border.color: "#deddd9"
|
|
Layout.fillWidth: true
|
|
Layout.fillHeight: true
|
|
states: [
|
|
State {
|
|
name: "collapsed"
|
|
PropertyChanges {
|
|
target: storageImgArrow
|
|
source: "qrc:/qml/img/closedtriangleindicator.png"
|
|
}
|
|
PropertyChanges {
|
|
target: storageContainer.parent.parent
|
|
height: 25
|
|
}
|
|
}
|
|
]
|
|
id: storageContainer
|
|
ListView {
|
|
clip: true;
|
|
anchors.top: parent.top
|
|
anchors.left: parent.left
|
|
anchors.topMargin: 3
|
|
anchors.leftMargin: 3
|
|
width: parent.width - 3
|
|
height: parent.height - 6
|
|
id: storageList
|
|
model: listModel
|
|
delegate: itemDelegate
|
|
}
|
|
}
|
|
}
|
|
|