Migration of QtMvvm from github
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.
 
 
 
 
 

135 lines
2.3 KiB

import QtQuick 2.10
import QtQuick.Controls 2.3
import QtQuick.Layouts 1.3
import de.skycoder42.QtMvvm.Core 1.1
import de.skycoder42.QtMvvm.Quick 1.1
import de.skycoder42.QtMvvm.Sample 1.1
Page {
id: sampleView
property SampleViewModel viewModel: null
readonly property bool presentAsRoot: true
header: ContrastToolBar {
RowLayout {
anchors.fill: parent
spacing: 0
ActionButton {
text: "≣"
display: AbstractButton.TextOnly
onClicked: QuickPresenter.toggleDrawer()
}
ToolBarLabel {
text: qsTr("Sample")
Layout.fillWidth: true
}
MenuButton {
MenuItem {
text: qsTr("Another Input")
onTriggered: viewModel.getInput()
}
MenuItem {
text: qsTr("Add Files")
onTriggered: viewModel.getFiles()
}
MenuItem {
text: qsTr("Add Color")
onTriggered: viewModel.getColor()
}
MenuItem {
text: qsTr("Show Progress")
onTriggered: viewModel.showProgress()
}
MenuSeparator {}
MenuItem {
text: qsTr("About")
onTriggered: viewModel.about()
}
}
}
}
PresenterProgress {}
Pane {
anchors.fill: parent
GridLayout {
columns: 2
anchors.fill: parent
Label {
text: qsTr("Name:")
}
TextField {
id: nameEdit
Layout.fillWidth: true
selectByMouse: true
MvvmBinding {
viewModel: sampleView.viewModel
view: nameEdit
viewModelProperty: "name"
viewProperty: "text"
}
}
Label {
text: qsTr("Active:")
}
Switch {
id: activeSwitch
Layout.alignment: Qt.AlignLeft
MvvmBinding {
viewModel: sampleView.viewModel
view: activeSwitch
viewModelProperty: "active"
viewProperty: "checked"
}
}
Label {
text: qsTr("Events:")
}
RowLayout {
Layout.fillWidth: true
Button {
text: qsTr("&Clear")
onClicked: viewModel.clearEvents()
}
Button {
text: qsTr("Get &Result")
onClicked: viewModel.getResult()
}
}
ListView {
id: lView
Layout.columnSpan: 2
Layout.fillWidth: true
Layout.fillHeight: true
clip: true
ScrollBar.vertical: ScrollBar {}
model: viewModel.eventsModel
delegate: ItemDelegate {
width: parent.width
text: viewModel.eventsModel.data(viewModel.eventsModel.index(index, 0)) //because "display" is not accessible
}
}
}
}
}