File indexing completed on 2025-02-16 04:49:10
0001 /* 0002 * SPDX-FileCopyrightText: 2015 Daniel Vrátil <dvratil@redhat.com> 0003 * 0004 * SPDX-License-Identifier: LGPL-2.1-or-later 0005 * 0006 */ 0007 0008 #include "datetimefilters.h" 0009 #include "../incidenceformatter.h" 0010 #include <KTextTemplate/SafeString> 0011 0012 KDateFilter::KDateFilter() 0013 : KTextTemplate::Filter() 0014 { 0015 } 0016 0017 KDateFilter::~KDateFilter() 0018 { 0019 } 0020 0021 QVariant KDateFilter::doFilter(const QVariant &input, const QVariant &argument, bool autoescape) const 0022 { 0023 Q_UNUSED(autoescape) 0024 0025 QDate date; 0026 if (input.userType() == QMetaType::QDate) { 0027 date = input.toDate(); 0028 } else if (input.userType() == QMetaType::QDateTime) { 0029 date = input.toDateTime().date(); 0030 } else { 0031 return QString(); 0032 } 0033 const bool shortFmt = (argument.value<KTextTemplate::SafeString>().get().compare(QLatin1StringView("short"), Qt::CaseInsensitive) == 0); 0034 return KTextTemplate::SafeString(KCalUtils::IncidenceFormatter::dateToString(date, shortFmt)); 0035 } 0036 0037 bool KDateFilter::isSafe() const 0038 { 0039 return true; 0040 } 0041 0042 KTimeFilter::KTimeFilter() 0043 : KTextTemplate::Filter() 0044 { 0045 } 0046 0047 KTimeFilter::~KTimeFilter() 0048 { 0049 } 0050 0051 QVariant KTimeFilter::doFilter(const QVariant &input, const QVariant &argument, bool autoescape) const 0052 { 0053 Q_UNUSED(autoescape) 0054 0055 QTime time; 0056 if (input.userType() == QMetaType::QTime) { 0057 time = input.toTime(); 0058 } else if (input.userType() == QMetaType::QDateTime) { 0059 time = input.toDateTime().time(); 0060 } else { 0061 return QString(); 0062 } 0063 0064 const bool shortFmt = (argument.value<KTextTemplate::SafeString>().get().compare(QLatin1StringView("short"), Qt::CaseInsensitive) == 0); 0065 return KTextTemplate::SafeString(KCalUtils::IncidenceFormatter::timeToString(time, shortFmt)); 0066 } 0067 0068 bool KTimeFilter::isSafe() const 0069 { 0070 return true; 0071 } 0072 0073 KDateTimeFilter::KDateTimeFilter() 0074 : KTextTemplate::Filter() 0075 { 0076 } 0077 0078 KDateTimeFilter::~KDateTimeFilter() 0079 { 0080 } 0081 0082 QVariant KDateTimeFilter::doFilter(const QVariant &input, const QVariant &argument, bool autoescape) const 0083 { 0084 Q_UNUSED(autoescape) 0085 if (input.userType() != QMetaType::QDateTime) { 0086 return QString(); 0087 } 0088 const QDateTime dt = input.toDateTime(); 0089 const QStringList arguments = argument.value<KTextTemplate::SafeString>().get().split(QLatin1Char(',')); 0090 const bool shortFmt = arguments.contains(QLatin1StringView("short"), Qt::CaseInsensitive); 0091 const bool dateOnly = arguments.contains(QLatin1StringView("dateonly"), Qt::CaseInsensitive); 0092 return KTextTemplate::SafeString(KCalUtils::IncidenceFormatter::dateTimeToString(dt, dateOnly, shortFmt)); 0093 } 0094 0095 bool KDateTimeFilter::isSafe() const 0096 { 0097 return true; 0098 }