Browse Source

added qml datetime edit

pull/2/head
Skycoder42 7 years ago
parent
commit
e93a5ae388
No known key found for this signature in database GPG Key ID: 8E01AD9EF0578D2B
  1. 70
      src/mvvmquick/DateTimeEdit.qml
  2. 4
      src/mvvmquick/inputviewfactory.cpp
  3. 1
      src/mvvmquick/qtmvvmquick_module.qrc

70
src/mvvmquick/DateTimeEdit.qml

@ -0,0 +1,70 @@
import QtQuick 2.10
import QtQuick.Controls 2.3
import QtQuick.Controls.Material 2.3
import QtQuick.Controls.Universal 2.3
import QtQuick.Layouts 1.3
import de.skycoder42.QtMvvm.Quick 1.1 as QtMvvm
ColumnLayout {
id: _edit
property var inputValue: new Date()
readonly property date combinedDate: new Date(_dateEdit.currentDate.getFullYear(),
_dateEdit.currentDate.getMonth(),
_dateEdit.currentDate.getDate(),
_timeEdit.time.getHours(),
_timeEdit.time.getMinutes(),
_timeEdit.time.getSeconds())
onInputValueChanged: {
var realDate = typeof inputValue == "string" ? new Date(inputValue) : inputValue
if(realDate.getYear() !== combinedDate.getYear() ||
realDate.getMonth() !== combinedDate.getMonth() ||
realDate.getDate() !== combinedDate.getDate() ||
realDate.getHours() !== combinedDate.getHours() ||
realDate.getMinutes() !== combinedDate.getMinutes() ||
realDate.getSeconds() !== combinedDate.getSeconds()) {
_dateEdit.currentDate = realDate;
_timeEdit.time = realDate;
}
}
onCombinedDateChanged: {
inputValue = combinedDate
}
TabBar {
id: _tabBar
position: TabBar.Header
currentIndex: _swipeView.currentIndex
Layout.fillWidth: true
Material.background: "transparent"
Universal.background: "transparent"
TabButton {
text: qsTr("Date")
}
TabButton {
text: qsTr("Time")
}
}
SwipeView {
id: _swipeView
currentIndex: _tabBar.currentIndex
Layout.fillWidth: true
Layout.fillHeight: true
Layout.preferredHeight: Math.max(_dateEdit.implicitHeight, _timeEdit.implicitHeight)
Layout.preferredWidth: Math.max(_dateEdit. implicitWidth, _timeEdit. implicitWidth)
QtMvvm.DateEdit {
id: _dateEdit
}
QtMvvm.TimeEdit {
id: _timeEdit
}
}
}

4
src/mvvmquick/inputviewfactory.cpp

@ -117,8 +117,8 @@ InputViewFactoryPrivate::InputViewFactoryPrivate() :
{"range", QStringLiteral("qrc:/qtmvvm/inputs/Slider.qml")}, {"range", QStringLiteral("qrc:/qtmvvm/inputs/Slider.qml")},
{QMetaType::typeName(QMetaType::QTime), QStringLiteral("qrc:/qtmvvm/inputs/TimeEdit.qml")}, {QMetaType::typeName(QMetaType::QTime), QStringLiteral("qrc:/qtmvvm/inputs/TimeEdit.qml")},
{QMetaType::typeName(QMetaType::QDate), QStringLiteral("qrc:/qtmvvm/inputs/DateEdit.qml")}, {QMetaType::typeName(QMetaType::QDate), QStringLiteral("qrc:/qtmvvm/inputs/DateEdit.qml")},
// {QMetaType::typeName(QMetaType::QDateTime), QStringLiteral("qrc:/qtmvvm/inputs/")}, {QMetaType::typeName(QMetaType::QDateTime), QStringLiteral("qrc:/qtmvvm/inputs/DateTimeEdit.qml")},
// {"date", QStringLiteral("qrc:/qtmvvm/inputs/.qml")}, {"date", QStringLiteral("qrc:/qtmvvm/inputs/DateTimeEdit.qml")},
{QMetaType::typeName(QMetaType::QFont), QStringLiteral("qrc:/qtmvvm/inputs/FontEdit.qml")}, {QMetaType::typeName(QMetaType::QFont), QStringLiteral("qrc:/qtmvvm/inputs/FontEdit.qml")},
{QMetaType::typeName(QMetaType::QUrl), QStringLiteral("qrc:/qtmvvm/inputs/UrlField.qml")}, {QMetaType::typeName(QMetaType::QUrl), QStringLiteral("qrc:/qtmvvm/inputs/UrlField.qml")},
{"selection", QStringLiteral("qrc:/qtmvvm/inputs/ListEdit.qml")}, {"selection", QStringLiteral("qrc:/qtmvvm/inputs/ListEdit.qml")},

1
src/mvvmquick/qtmvvmquick_module.qrc

@ -12,6 +12,7 @@
<file>Slider.qml</file> <file>Slider.qml</file>
<file>TimeEdit.qml</file> <file>TimeEdit.qml</file>
<file>DateEdit.qml</file> <file>DateEdit.qml</file>
<file>DateTimeEdit.qml</file>
</qresource> </qresource>
<qresource prefix="/qtmvvm/delegates"> <qresource prefix="/qtmvvm/delegates">
<file>BoolDelegate.qml</file> <file>BoolDelegate.qml</file>

Loading…
Cancel
Save