File indexing completed on 2024-06-23 05:18:38
0001 /* 0002 SPDX-FileCopyrightText: 2019-2024 Laurent Montel <montel@kde.org> 0003 0004 SPDX-License-Identifier: LGPL-2.0-or-later 0005 */ 0006 0007 #include "convertsnippetvariablesutil.h" 0008 0009 #include <QDateTime> 0010 #include <QLocale> 0011 0012 QString MessageComposer::ConvertSnippetVariablesUtil::snippetVariableFromEnum(MessageComposer::ConvertSnippetVariablesUtil::VariableType type) 0013 { 0014 switch (type) { 0015 case CcAddr: 0016 return QStringLiteral("%CCADDR"); 0017 case CcLname: 0018 return QStringLiteral("%CCLNAME"); 0019 case CcFname: 0020 return QStringLiteral("%CCFNAME"); 0021 case CcName: 0022 return QStringLiteral("%CCNAME"); 0023 case BccAddr: 0024 return QStringLiteral("%BCCADDR"); 0025 case BccLname: 0026 return QStringLiteral("%BCCLNAME"); 0027 case BccFname: 0028 return QStringLiteral("%BCCFNAME"); 0029 case BccName: 0030 return QStringLiteral("%BCCNAME"); 0031 case FullSubject: 0032 return QStringLiteral("%FULLSUBJECT"); 0033 case ToAddr: 0034 return QStringLiteral("%TOADDR"); 0035 case ToFname: 0036 return QStringLiteral("%TOFNAME"); 0037 case ToLname: 0038 return QStringLiteral("%TOLNAME"); 0039 case ToName: 0040 return QStringLiteral("%TONAME"); 0041 case FromAddr: 0042 return QStringLiteral("%FROMADDR"); 0043 case FromLname: 0044 return QStringLiteral("%FROMLNAME"); 0045 case FromFname: 0046 return QStringLiteral("%FROMFNAME"); 0047 case FromName: 0048 return QStringLiteral("%FROMNAME"); 0049 case Dow: 0050 return QStringLiteral("%DOW"); 0051 case Date: 0052 return QStringLiteral("%DATE"); 0053 case ShortDate: 0054 return QStringLiteral("%SHORTDATE"); 0055 case Time: 0056 return QStringLiteral("%TIME"); 0057 case TimeLong: 0058 return QStringLiteral("%TIMELONG"); 0059 case AttachmentCount: 0060 return QStringLiteral("%ATTACHMENTCOUNT"); 0061 case AttachmentName: 0062 return QStringLiteral("%ATTACHMENTNAMES"); 0063 case AttachmentFilenames: 0064 return QStringLiteral("%ATTACHMENTFILENAMES"); 0065 case AttachmentNamesAndSizes: 0066 return QStringLiteral("%ATTACHMENTNAMESANDSIZES"); 0067 case Year: 0068 return QStringLiteral("%YEAR"); 0069 case LastYear: 0070 return QStringLiteral("%LASTYEAR"); 0071 case NextYear: 0072 return QStringLiteral("%NEXTYEAR"); 0073 case MonthNumber: 0074 return QStringLiteral("%MONTHNUMBER"); // 1-12 0075 case DayOfMonth: 0076 return QStringLiteral("%DAYOFMONTH"); // 1-31 0077 case WeekNumber: 0078 return QStringLiteral("%WEEKNUMBER"); // 1-52 0079 case MonthNameShort: 0080 return QStringLiteral("%MONTHNAMESHORT"); //(Jan-Dec) 0081 case MonthNameLong: 0082 return QStringLiteral("%MONTHNAMELONG"); //(January-December) 0083 case DayOfWeek: 0084 return QStringLiteral("%DAYOFWEEK"); //(1-7) 0085 case DayOfWeekNameShort: 0086 return QStringLiteral("%DAYOFWEEKNAMESHORT"); //(Mon-Sun) 0087 case DayOfWeekNameLong: 0088 return QStringLiteral("%DAYOFWEEKNAMELONG"); //(Monday-Sunday) 0089 case YearLastMonth: 0090 return QStringLiteral("%YEARLASTMONTH"); // january 2020 will how 2019-12 0091 case LastMonthNameLong: 0092 return QStringLiteral("%LASTMONTHNAMELONG"); 0093 } 0094 return {}; 0095 } 0096 0097 QString MessageComposer::ConvertSnippetVariablesUtil::shortDate() 0098 { 0099 QLocale locale; 0100 return locale.toString(QDate::currentDate(), QLocale::ShortFormat); 0101 } 0102 0103 QString MessageComposer::ConvertSnippetVariablesUtil::longDate() 0104 { 0105 QLocale locale; 0106 return locale.toString(QDate::currentDate(), QLocale::LongFormat); 0107 } 0108 0109 QString MessageComposer::ConvertSnippetVariablesUtil::shortTime() 0110 { 0111 QLocale locale; 0112 return locale.toString(QTime::currentTime(), QLocale::ShortFormat); 0113 } 0114 0115 QString MessageComposer::ConvertSnippetVariablesUtil::longTime() 0116 { 0117 QLocale locale; 0118 return locale.toString(QTime::currentTime(), QLocale::LongFormat); 0119 } 0120 0121 QString MessageComposer::ConvertSnippetVariablesUtil::insertDayOfWeek() 0122 { 0123 const QDateTime date = QDateTime::currentDateTime().toLocalTime(); 0124 const QString str = QLocale().dayName(date.date().dayOfWeek(), QLocale::LongFormat); 0125 return str; 0126 } 0127 0128 QString MessageComposer::ConvertSnippetVariablesUtil::lastYear() 0129 { 0130 const QDate date = QDate::currentDate(); 0131 return QString::number(date.year() - 1); 0132 } 0133 0134 QString MessageComposer::ConvertSnippetVariablesUtil::nextYear() 0135 { 0136 const QDate date = QDate::currentDate(); 0137 return QString::number(date.year() + 1); 0138 } 0139 0140 QString MessageComposer::ConvertSnippetVariablesUtil::monthNumber() 0141 { 0142 const QDate date = QDate::currentDate(); 0143 return QString::number(date.month()); 0144 } 0145 0146 QString MessageComposer::ConvertSnippetVariablesUtil::dayOfMonth() 0147 { 0148 const QDate date = QDate::currentDate(); 0149 return QString::number(date.daysInMonth()); 0150 } 0151 0152 QString MessageComposer::ConvertSnippetVariablesUtil::weekNumber() 0153 { 0154 const QDate date = QDate::currentDate(); 0155 return QString::number(date.weekNumber()); 0156 } 0157 0158 QString MessageComposer::ConvertSnippetVariablesUtil::monthNameShort() 0159 { 0160 const QDate date = QDate::currentDate(); 0161 return date.toString(QStringLiteral("MMM")); 0162 } 0163 0164 QString MessageComposer::ConvertSnippetVariablesUtil::monthNameLong() 0165 { 0166 const QDate date = QDate::currentDate(); 0167 return date.toString(QStringLiteral("MMMM")); 0168 } 0169 0170 QString MessageComposer::ConvertSnippetVariablesUtil::lastMonthNameLong() 0171 { 0172 const QDate date = QDate::currentDate().addMonths(-1); 0173 return date.toString(QStringLiteral("MMMM")); 0174 } 0175 0176 QString MessageComposer::ConvertSnippetVariablesUtil::dayOfWeekNameShort() 0177 { 0178 const QDate date = QDate::currentDate(); 0179 return date.toString(QStringLiteral("ddd")); 0180 } 0181 0182 QString MessageComposer::ConvertSnippetVariablesUtil::dayOfWeekNameLong() 0183 { 0184 const QDate date = QDate::currentDate(); 0185 return date.toString(QStringLiteral("dddd")); 0186 } 0187 0188 QString MessageComposer::ConvertSnippetVariablesUtil::yearLastMonth() 0189 { 0190 const QDate date = QDate::currentDate(); 0191 return date.toString(date.toString(QStringLiteral("yyyy-MMM"))); 0192 } 0193 0194 QString MessageComposer::ConvertSnippetVariablesUtil::year() 0195 { 0196 const QDate date = QDate::currentDate(); 0197 return date.toString(QString::number(date.year())); 0198 } 0199 0200 QString MessageComposer::ConvertSnippetVariablesUtil::dayOfWeek() 0201 { 0202 const QDate date = QDate::currentDate(); 0203 return date.toString(QString::number(date.dayOfWeek())); 0204 }