7 #include "collectionviewwidget.h"
8 #include "mailcommon_debug.h"
9 #include <KLocalizedString>
10 #include <QFormLayout>
12 #include <Akonadi/MessageFolderAttribute>
13 #include <MessageList/AggregationComboBox>
14 #include <MessageList/AggregationConfigButton>
15 #include <MessageList/ThemeComboBox>
16 #include <MessageList/ThemeConfigButton>
18 #include <MessageViewer/Viewer>
22 #include <QRadioButton>
24 CollectionViewWidget::CollectionViewWidget(
QWidget *parent)
28 topLayout->setObjectName(QStringLiteral(
"topLayout"));
29 topLayout->setContentsMargins({});
32 const QString senderReceiverColumnTip =
i18n(
"Show Sender/Receiver Column in List of Messages");
34 mShowSenderReceiverComboBox =
new QComboBox(
this);
35 mShowSenderReceiverComboBox->setToolTip(senderReceiverColumnTip);
36 mShowSenderReceiverComboBox->insertItem(0,
i18nc(
"@item:inlistbox Show default value.",
"Default"));
37 mShowSenderReceiverComboBox->insertItem(1,
i18nc(
"@item:inlistbox Show sender.",
"Sender"));
38 mShowSenderReceiverComboBox->insertItem(2,
i18nc(
"@item:inlistbox Show receiver.",
"Receiver"));
39 topLayout->addRow(
i18n(
"Sho&w column:"), mShowSenderReceiverComboBox);
42 mUseDefaultAggregationCheckBox =
new QCheckBox(
i18n(
"Use default message list aggregation:"),
this);
44 topLayout->addRow(
QString(), mUseDefaultAggregationCheckBox);
49 auto aggregationConfigButton =
new AggregationConfigButton(
this, mAggregationComboBox);
51 connect(aggregationConfigButton, &AggregationConfigButton::configureDialogCompleted,
this, &CollectionViewWidget::slotSelectFolderAggregation);
54 aggregationLayout->
addWidget(mAggregationComboBox, 1);
55 aggregationLayout->addWidget(aggregationConfigButton, 0);
56 topLayout->addRow(
QString(), aggregationLayout);
59 mUseDefaultThemeCheckBox =
new QCheckBox(
i18n(
"Use default message list theme"),
this);
61 topLayout->addRow(
QString(), mUseDefaultThemeCheckBox);
66 auto themeConfigButton =
new ThemeConfigButton(
this, mThemeComboBox);
68 connect(themeConfigButton, &ThemeConfigButton::configureDialogCompleted,
this, &CollectionViewWidget::slotSelectFolderTheme);
71 themeLayout->
addWidget(mThemeComboBox, 1);
72 themeLayout->addWidget(themeConfigButton, 0);
73 topLayout->addRow(
QString(), themeLayout);
77 topLayout->addRow(
i18n(
"Message format:"), mPreferHtmlToText);
79 topLayout->addRow(
QString(), mPreferTextToHtml);
81 topLayout->addRow(
QString(), mUseGlobalSettings);
84 CollectionViewWidget::~CollectionViewWidget() =
default;
88 mCurrentCollection = col;
89 mFolderCollection = MailCommon::FolderSettings::forCollection(col);
93 mShowSenderReceiverComboBox->setCurrentIndex(2);
95 mShowSenderReceiverComboBox->setCurrentIndex(1);
98 mShowSenderReceiverComboBox->setCurrentIndex(0);
100 mShowSenderReceiverValue = mShowSenderReceiverComboBox->currentIndex();
103 slotSelectFolderAggregation();
106 slotSelectFolderTheme();
108 const MessageViewer::Viewer::DisplayFormatMessage formatMessage = mFolderCollection->formatMessage();
109 switch (formatMessage) {
110 case MessageViewer::Viewer::Html:
111 mPreferHtmlToText->setChecked(
true);
113 case MessageViewer::Viewer::Text:
114 mPreferTextToHtml->setChecked(
true);
116 case MessageViewer::Viewer::UseGlobalSetting:
117 mUseGlobalSettings->setChecked(
true);
120 qCDebug(MAILCOMMON_LOG) <<
"No settings defined";
127 if (!mFolderCollection) {
128 mFolderCollection = MailCommon::FolderSettings::forCollection(col);
130 const int currentIndex = mShowSenderReceiverComboBox->currentIndex();
131 if (mShowSenderReceiverValue != currentIndex) {
132 if (currentIndex == 1) {
135 }
else if (currentIndex == 2) {
143 const bool usePrivateTheme = !mUseDefaultThemeCheckBox->isChecked();
144 mThemeComboBox->writeStorageModelConfig(
QString::number(mCurrentCollection.id()), usePrivateTheme);
146 const bool usePrivateAggregation = !mUseDefaultAggregationCheckBox->isChecked();
147 mAggregationComboBox->writeStorageModelConfig(
QString::number(mCurrentCollection.id()), usePrivateAggregation);
149 MessageViewer::Viewer::DisplayFormatMessage formatMessage = MessageViewer::Viewer::Unknown;
150 if (mPreferHtmlToText->isChecked()) {
151 formatMessage = MessageViewer::Viewer::Html;
152 }
else if (mPreferTextToHtml->isChecked()) {
153 formatMessage = MessageViewer::Viewer::Text;
154 }
else if (mUseGlobalSettings->isChecked()) {
155 formatMessage = MessageViewer::Viewer::UseGlobalSetting;
157 qCDebug(MAILCOMMON_LOG) <<
"No settings defined";
159 if (formatMessage != MessageViewer::Viewer::Unknown) {
160 mFolderCollection->setFormatMessage(formatMessage);
161 mFolderCollection->writeConfig();
163 mFolderCollection.reset();
166 void CollectionViewWidget::slotSelectFolderAggregation()
168 bool usesPrivateAggregation =
false;
169 mAggregationComboBox->readStorageModelConfig(mCurrentCollection, usesPrivateAggregation);
170 mUseDefaultAggregationCheckBox->setChecked(!usesPrivateAggregation);
173 void CollectionViewWidget::slotSelectFolderTheme()
175 bool usesPrivateTheme =
false;
176 mThemeComboBox->readStorageModelConfig(mCurrentCollection, usesPrivateTheme);
177 mUseDefaultThemeCheckBox->setChecked(!usesPrivateTheme);
180 void CollectionViewWidget::slotAggregationCheckboxChanged()
182 mAggregationComboBox->setEnabled(!mUseDefaultAggregationCheckBox->isChecked());
185 void CollectionViewWidget::slotThemeCheckboxChanged()
187 mThemeComboBox->setEnabled(!mUseDefaultThemeCheckBox->isChecked());
190 #include "moc_collectionviewwidget.cpp"