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 }