122 lines
3.9 KiB
QML
122 lines
3.9 KiB
QML
import QtQuick 2.14
|
|
import QtQuick.Layouts 1.12
|
|
import QtQml.Models 2.15
|
|
import QtQuick.Controls 2.15
|
|
|
|
import StatusQ.Core.Theme 0.1
|
|
import StatusQ.Core 0.1
|
|
import StatusQ.Controls 0.1
|
|
import StatusQ.Components 0.1
|
|
import StatusQ.Popups.Dialog 0.1
|
|
|
|
StatusDialog {
|
|
id: root
|
|
|
|
property double fromTimestamp: Date.now()
|
|
property double toTimestamp: Date.now()
|
|
property int supportedStartYear
|
|
|
|
signal newRangeSet(double fromTimestamp, double toTimestamp)
|
|
|
|
onOpened: fromInput.forceActiveFocus()
|
|
|
|
topPadding: 0
|
|
title: qsTr("Filter activity by period")
|
|
|
|
contentItem: RowLayout {
|
|
spacing: 20
|
|
|
|
// From Date
|
|
ColumnLayout {
|
|
spacing: 8
|
|
StatusBaseText {
|
|
height: visible ? contentHeight : 0
|
|
elide: Text.ElideRight
|
|
text: qsTr("From")
|
|
font.pixelSize: 15
|
|
color: Theme.palette.directColor1
|
|
}
|
|
StatusDateInput {
|
|
id: fromInput
|
|
datePlaceholderText: qsTr("dd")
|
|
monthPlaceholderText: qsTr("mm")
|
|
yearPlaceholderText: qsTr("yyyy")
|
|
presetTimestamp: fromTimestamp
|
|
errorMessage: qsTr("Invalid range")
|
|
supportedStartYear: root.supportedStartYear
|
|
}
|
|
}
|
|
|
|
// To Date
|
|
ColumnLayout {
|
|
Layout.preferredWidth: toInput.width
|
|
spacing: 8
|
|
RowLayout {
|
|
Layout.preferredWidth: parent.width
|
|
StatusBaseText {
|
|
Layout.alignment: Qt.AlignLeft
|
|
height: visible ? contentHeight : 0
|
|
elide: Text.ElideRight
|
|
text: qsTr("To")
|
|
font.pixelSize: 15
|
|
color: Theme.palette.directColor1
|
|
}
|
|
StatusButton {
|
|
Layout.alignment: Qt.AlignRight
|
|
horizontalPadding: 0
|
|
verticalPadding: 0
|
|
spacing: 0
|
|
normalColor: Theme.palette.transparent
|
|
hoverColor: Theme.palette.transparent
|
|
font.weight: Font.Normal
|
|
text: toInput.isEditMode ? qsTr("Now") : qsTr("Edit")
|
|
onClicked: {
|
|
if(toInput.isEditMode)
|
|
root.toTimestamp = Date.now()
|
|
toInput.isEditMode = !toInput.isEditMode
|
|
}
|
|
}
|
|
}
|
|
StatusDateInput {
|
|
id: toInput
|
|
datePlaceholderText: qsTr("dd")
|
|
monthPlaceholderText: qsTr("mm")
|
|
yearPlaceholderText: qsTr("yyyy")
|
|
presetTimestamp: toTimestamp
|
|
nowText: qsTr("Now")
|
|
errorMessage: qsTr("Invalid range")
|
|
supportedStartYear: root.supportedStartYear
|
|
}
|
|
}
|
|
|
|
StatusButton {
|
|
Layout.preferredHeight: fromInput.height
|
|
Layout.alignment: Qt.AlignVCenter
|
|
Layout.topMargin: 28
|
|
text: qsTr("Reset")
|
|
enabled: fromInput.hasChange || toInput.hasChange
|
|
normalColor: Theme.palette.transparent
|
|
borderColor: Theme.palette.baseColor2
|
|
hoverColor: Theme.palette.primaryColor3
|
|
onClicked: {
|
|
toInput.isEditMode = false
|
|
fromInput.reset()
|
|
toInput.reset()
|
|
}
|
|
}
|
|
}
|
|
|
|
footer: StatusDialogFooter {
|
|
rightButtons: ObjectModel {
|
|
StatusButton {
|
|
text: qsTr("Apply")
|
|
enabled: fromInput.valid && toInput.valid && (fromInput.hasChange || toInput.hasChange)
|
|
onClicked: {
|
|
root.newRangeSet(fromInput.newDate.valueOf(), toInput.newDate.valueOf())
|
|
root.close()
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|