From a86a15df5f7c2dbe5efeca46cff2f96bccae0bf0 Mon Sep 17 00:00:00 2001 From: Skycoder42 Date: Mon, 25 Jun 2018 18:26:52 +0200 Subject: [PATCH] added configurable sections to timeedit --- examples/mvvmcore/SampleCore/settings.xml | 2 +- src/imports/mvvmcore/mvvmcore.pro | 4 +-- src/imports/mvvmquick/TimeEdit.qml | 42 +++++++++++++++++++---- src/mvvmquick/formatters_p.h | 18 ++++++++++ src/mvvmquick/inputviewfactory.cpp | 5 ++- 5 files changed, 60 insertions(+), 11 deletions(-) diff --git a/examples/mvvmcore/SampleCore/settings.xml b/examples/mvvmcore/SampleCore/settings.xml index e814756..0fdb18c 100644 --- a/examples/mvvmcore/SampleCore/settings.xml +++ b/examples/mvvmcore/SampleCore/settings.xml @@ -139,7 +139,7 @@ title="Choose a date" default="2018-10-10"> Selected date: %1 - dd.MM.yyyy + dd. MMMM yyyy +#include #include "inputviewfactory.h" @@ -36,6 +37,23 @@ public: } }; +template +class DateTimeFormatter : public Formatter +{ +public: + QString format(const QString &formatString, const QVariant &value, const QVariantMap &viewProperties) const override { + auto formatType = viewProperties.value(QStringLiteral("qtmvvm_dateformat")); + QString dateStr; + if(formatType.type() == QVariant::Int) + dateStr = value.template value().toString(static_cast(formatType.toInt())); + else if(formatType.type() == QVariant::String) + dateStr = value.template value().toString(formatType.toString()); + else + dateStr = value.template value().toString(Qt::DefaultLocaleShortDate); + return formatString.arg(dateStr); + } +}; + } #endif // QTMVVM_FORMATTERS_P_H diff --git a/src/mvvmquick/inputviewfactory.cpp b/src/mvvmquick/inputviewfactory.cpp index d3ccd00..5080b37 100644 --- a/src/mvvmquick/inputviewfactory.cpp +++ b/src/mvvmquick/inputviewfactory.cpp @@ -131,7 +131,10 @@ InputViewFactoryPrivate::InputViewFactoryPrivate() : {"range", QStringLiteral("qrc:/qtmvvm/delegates/RangeDelegate.qml")} }, formatters{ - {QMetaType::typeName(QMetaType::Int), QSharedPointer::create()} + {QMetaType::typeName(QMetaType::Int), QSharedPointer::create()}, + {QMetaType::typeName(QMetaType::QTime), QSharedPointer>::create()}, + {QMetaType::typeName(QMetaType::QDate), QSharedPointer>::create()}, + {QMetaType::typeName(QMetaType::QDateTime), QSharedPointer>::create()} } { auto dblFormatter = QSharedPointer>::create();