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: GPL-2.0-or-later 0005 */ 0006 0007 #include "convertsnippetvariablemenu.h" 0008 #include <KLocalizedString> 0009 #include <QMenu> 0010 using namespace MessageComposer; 0011 ConvertSnippetVariableMenu::ConvertSnippetVariableMenu(bool onlyMenuForCustomizeAttachmentFileName, QWidget *parentWidget, QObject *parent) 0012 : QObject(parent) 0013 , mParentWidget(parentWidget) 0014 { 0015 initializeMenu(onlyMenuForCustomizeAttachmentFileName); 0016 } 0017 0018 ConvertSnippetVariableMenu::~ConvertSnippetVariableMenu() = default; 0019 0020 void ConvertSnippetVariableMenu::initializeMenu(bool onlyMenuForCustomizeAttachmentFileName) 0021 { 0022 QMenu *dateTimeMenuVariable = nullptr; 0023 if (!onlyMenuForCustomizeAttachmentFileName) { 0024 mMenu = new QMenu(mParentWidget); 0025 mMenu->setFocusPolicy(Qt::NoFocus); 0026 0027 auto toMenuVariable = new QMenu(i18n("To"), mMenu); 0028 toMenuVariable->addAction(i18n("To Field Address"), this, [this]() { 0029 Q_EMIT insertVariable(MessageComposer::ConvertSnippetVariablesUtil::ToAddr); 0030 }); 0031 toMenuVariable->addAction(i18n("To Field Last Name"), this, [this]() { 0032 Q_EMIT insertVariable(MessageComposer::ConvertSnippetVariablesUtil::ToLname); 0033 }); 0034 toMenuVariable->addAction(i18n("To Field First Name"), this, [this]() { 0035 Q_EMIT insertVariable(MessageComposer::ConvertSnippetVariablesUtil::ToFname); 0036 }); 0037 toMenuVariable->addAction(i18n("To Field Name"), this, [this]() { 0038 Q_EMIT insertVariable(MessageComposer::ConvertSnippetVariablesUtil::ToName); 0039 }); 0040 mMenu->addMenu(toMenuVariable); 0041 0042 auto fromMenuVariable = new QMenu(i18n("From"), mMenu); 0043 fromMenuVariable->addAction(i18n("From Field Address"), this, [this]() { 0044 Q_EMIT insertVariable(MessageComposer::ConvertSnippetVariablesUtil::FromAddr); 0045 }); 0046 fromMenuVariable->addAction(i18n("From Field Last Name"), this, [this]() { 0047 Q_EMIT insertVariable(MessageComposer::ConvertSnippetVariablesUtil::FromLname); 0048 }); 0049 fromMenuVariable->addAction(i18n("From Field First Name"), this, [this]() { 0050 Q_EMIT insertVariable(MessageComposer::ConvertSnippetVariablesUtil::FromFname); 0051 }); 0052 fromMenuVariable->addAction(i18n("From Field Name"), this, [this]() { 0053 Q_EMIT insertVariable(MessageComposer::ConvertSnippetVariablesUtil::FromName); 0054 }); 0055 mMenu->addMenu(fromMenuVariable); 0056 0057 auto ccMenuVariable = new QMenu(i18n("CC"), mMenu); 0058 ccMenuVariable->addAction(i18n("CC Field Address"), this, [this]() { 0059 Q_EMIT insertVariable(MessageComposer::ConvertSnippetVariablesUtil::CcAddr); 0060 }); 0061 ccMenuVariable->addAction(i18n("CC Field Last Name"), this, [this]() { 0062 Q_EMIT insertVariable(MessageComposer::ConvertSnippetVariablesUtil::CcLname); 0063 }); 0064 ccMenuVariable->addAction(i18n("CC Field First Name"), this, [this]() { 0065 Q_EMIT insertVariable(MessageComposer::ConvertSnippetVariablesUtil::CcFname); 0066 }); 0067 ccMenuVariable->addAction(i18n("CC Field Name"), this, [this]() { 0068 Q_EMIT insertVariable(MessageComposer::ConvertSnippetVariablesUtil::CcName); 0069 }); 0070 0071 mMenu->addMenu(ccMenuVariable); 0072 0073 auto bccMenuVariable = new QMenu(i18n("Bcc"), mMenu); 0074 bccMenuVariable->addAction(i18n("BCC Field Address"), this, [this]() { 0075 Q_EMIT insertVariable(MessageComposer::ConvertSnippetVariablesUtil::BccAddr); 0076 }); 0077 bccMenuVariable->addAction(i18n("BCC Field Last Name"), this, [this]() { 0078 Q_EMIT insertVariable(MessageComposer::ConvertSnippetVariablesUtil::BccLname); 0079 }); 0080 bccMenuVariable->addAction(i18n("BCC Field First Name"), this, [this]() { 0081 Q_EMIT insertVariable(MessageComposer::ConvertSnippetVariablesUtil::BccFname); 0082 }); 0083 bccMenuVariable->addAction(i18n("BCC Field Name"), this, [this]() { 0084 Q_EMIT insertVariable(MessageComposer::ConvertSnippetVariablesUtil::BccName); 0085 }); 0086 0087 mMenu->addMenu(bccMenuVariable); 0088 0089 auto attachmentMenuVariable = new QMenu(i18n("Attachment"), mMenu); 0090 attachmentMenuVariable->addAction(i18n("Number Of Attachments"), this, [this]() { 0091 Q_EMIT insertVariable(MessageComposer::ConvertSnippetVariablesUtil::AttachmentCount); 0092 }); 0093 attachmentMenuVariable->addAction(i18n("Names"), this, [this]() { 0094 Q_EMIT insertVariable(MessageComposer::ConvertSnippetVariablesUtil::AttachmentName); 0095 }); 0096 attachmentMenuVariable->addAction(i18n("Filenames"), this, [this]() { 0097 Q_EMIT insertVariable(MessageComposer::ConvertSnippetVariablesUtil::AttachmentFilenames); 0098 }); 0099 attachmentMenuVariable->addAction(i18n("Names and Sizes"), this, [this]() { 0100 Q_EMIT insertVariable(MessageComposer::ConvertSnippetVariablesUtil::AttachmentNamesAndSizes); 0101 }); 0102 mMenu->addMenu(attachmentMenuVariable); 0103 dateTimeMenuVariable = new QMenu(i18n("Date/Time"), mMenu); 0104 dateTimeMenuVariable->addAction(i18n("Day Of Week (%1)", MessageComposer::ConvertSnippetVariablesUtil::dayOfWeek()), this, [this]() { 0105 Q_EMIT insertVariable(MessageComposer::ConvertSnippetVariablesUtil::Dow); 0106 }); 0107 dateTimeMenuVariable->addAction(i18n("Date (%1)", MessageComposer::ConvertSnippetVariablesUtil::shortDate()), this, [this]() { 0108 Q_EMIT insertVariable(MessageComposer::ConvertSnippetVariablesUtil::ShortDate); 0109 }); 0110 dateTimeMenuVariable->addAction(i18n("Long Date (%1)", MessageComposer::ConvertSnippetVariablesUtil::longDate()), this, [this]() { 0111 Q_EMIT insertVariable(MessageComposer::ConvertSnippetVariablesUtil::Date); 0112 }); 0113 dateTimeMenuVariable->addAction(i18n("Short Time (%1)", MessageComposer::ConvertSnippetVariablesUtil::shortTime()), this, [this]() { 0114 Q_EMIT insertVariable(MessageComposer::ConvertSnippetVariablesUtil::Time); 0115 }); 0116 dateTimeMenuVariable->addAction(i18n("Time (%1)", MessageComposer::ConvertSnippetVariablesUtil::longTime()), this, [this]() { 0117 Q_EMIT insertVariable(MessageComposer::ConvertSnippetVariablesUtil::TimeLong); 0118 }); 0119 dateTimeMenuVariable->addAction(i18n("Year (%1)", MessageComposer::ConvertSnippetVariablesUtil::year()), this, [this]() { 0120 Q_EMIT insertVariable(MessageComposer::ConvertSnippetVariablesUtil::Year); 0121 }); 0122 } else { 0123 dateTimeMenuVariable = new QMenu(i18n("Date/Time"), mParentWidget); 0124 mMenu = dateTimeMenuVariable; 0125 } 0126 0127 dateTimeMenuVariable->addAction(i18n("Last Year (%1)", MessageComposer::ConvertSnippetVariablesUtil::lastYear()), this, [this]() { 0128 Q_EMIT insertVariable(MessageComposer::ConvertSnippetVariablesUtil::LastYear); 0129 }); 0130 dateTimeMenuVariable->addAction(i18n("Next Year (%1)", MessageComposer::ConvertSnippetVariablesUtil::nextYear()), this, [this]() { 0131 Q_EMIT insertVariable(MessageComposer::ConvertSnippetVariablesUtil::NextYear); 0132 }); 0133 dateTimeMenuVariable->addAction(i18n("Month Number (%1)", MessageComposer::ConvertSnippetVariablesUtil::monthNumber()), this, [this]() { 0134 Q_EMIT insertVariable(MessageComposer::ConvertSnippetVariablesUtil::MonthNumber); 0135 }); 0136 dateTimeMenuVariable->addAction(i18n("Day Of Month (%1)", MessageComposer::ConvertSnippetVariablesUtil::dayOfMonth()), this, [this]() { 0137 Q_EMIT insertVariable(MessageComposer::ConvertSnippetVariablesUtil::DayOfMonth); 0138 }); 0139 dateTimeMenuVariable->addAction(i18n("Week Number (%1)", MessageComposer::ConvertSnippetVariablesUtil::weekNumber()), this, [this]() { 0140 Q_EMIT insertVariable(MessageComposer::ConvertSnippetVariablesUtil::WeekNumber); 0141 }); 0142 dateTimeMenuVariable->addAction(i18n("Month Name Short (%1)", MessageComposer::ConvertSnippetVariablesUtil::monthNameShort()), this, [this]() { 0143 Q_EMIT insertVariable(MessageComposer::ConvertSnippetVariablesUtil::MonthNameShort); 0144 }); 0145 dateTimeMenuVariable->addAction(i18n("Month Name Long (%1)", MessageComposer::ConvertSnippetVariablesUtil::monthNameLong()), this, [this]() { 0146 Q_EMIT insertVariable(MessageComposer::ConvertSnippetVariablesUtil::MonthNameLong); 0147 }); 0148 dateTimeMenuVariable->addAction(i18n("Last Month Name Long (%1)", MessageComposer::ConvertSnippetVariablesUtil::lastMonthNameLong()), this, [this]() { 0149 Q_EMIT insertVariable(MessageComposer::ConvertSnippetVariablesUtil::LastMonthNameLong); 0150 }); 0151 dateTimeMenuVariable->addAction(i18n("Day Of Week (%1)", MessageComposer::ConvertSnippetVariablesUtil::dayOfWeek()), this, [this]() { 0152 Q_EMIT insertVariable(MessageComposer::ConvertSnippetVariablesUtil::DayOfWeek); 0153 }); 0154 dateTimeMenuVariable->addAction(i18n("Day Of Week Name Short (%1)", MessageComposer::ConvertSnippetVariablesUtil::dayOfWeekNameShort()), this, [this]() { 0155 Q_EMIT insertVariable(MessageComposer::ConvertSnippetVariablesUtil::DayOfWeekNameShort); 0156 }); 0157 dateTimeMenuVariable->addAction(i18n("Day Of Week Name Long (%1)", MessageComposer::ConvertSnippetVariablesUtil::dayOfWeekNameLong()), this, [this]() { 0158 Q_EMIT insertVariable(MessageComposer::ConvertSnippetVariablesUtil::DayOfWeekNameLong); 0159 }); 0160 dateTimeMenuVariable->addAction(i18n("Year Last Month (%1)", MessageComposer::ConvertSnippetVariablesUtil::yearLastMonth()), this, [this]() { 0161 Q_EMIT insertVariable(MessageComposer::ConvertSnippetVariablesUtil::YearLastMonth); 0162 }); 0163 if (!onlyMenuForCustomizeAttachmentFileName) { 0164 mMenu->addMenu(dateTimeMenuVariable); 0165 auto miscVariable = new QMenu(i18n("Misc"), mMenu); 0166 miscVariable->addAction(i18n("Subject"), this, [this]() { 0167 Q_EMIT insertVariable(MessageComposer::ConvertSnippetVariablesUtil::FullSubject); 0168 }); 0169 // Add more variables! 0170 mMenu->addMenu(miscVariable); 0171 } 0172 } 0173 0174 QMenu *ConvertSnippetVariableMenu::menu() const 0175 { 0176 return mMenu; 0177 } 0178 0179 #include "moc_convertsnippetvariablemenu.cpp"