Commit c6cc5c52 authored by Laurent Montel's avatar Laurent Montel 😁
Browse files

Extract widget

parent 02b8e385
Pipeline #35061 canceled with stage
......@@ -43,6 +43,7 @@ set(kmailprivate_folderarchive_LIB_SRCS
)
set(kmailprivate_collectionpage_LIB_SRCS
collectionpage/collectiontemplatespage.cpp
collectionpage/collectiontemplateswidget.cpp
collectionpage/collectionviewpage.cpp
collectionpage/collectionquotapage.cpp
collectionpage/collectionquotawidget.cpp
......
/*
SPDX-FileCopyrightText: 2020 Laurent Montel <montel@kde.org>
SPDX-License-Identifier: GPL-2.0-or-later
*/
#include "collectiontemplateswidget.h"
#include <KLocalizedString>
#include "templatesconfiguration_kfg.h"
#include <QCheckBox>
#include <QVBoxLayout>
#include <TemplateParser/TemplatesConfiguration>
CollectionTemplatesWidget::CollectionTemplatesWidget(QWidget *parent)
: QWidget(parent)
{
QVBoxLayout *topLayout = new QVBoxLayout(this);
QHBoxLayout *topItems = new QHBoxLayout;
topItems->setContentsMargins(0, 0, 0, 0);
topLayout->addLayout(topItems);
mCustom = new QCheckBox(i18n("&Use custom message templates in this folder"), this);
connect(mCustom, &QCheckBox::clicked, this, &CollectionTemplatesWidget::slotChanged);
topItems->addWidget(mCustom, Qt::AlignLeft);
mWidget = new TemplateParser::TemplatesConfiguration(this, QStringLiteral("folder-templates"));
connect(mWidget, &TemplateParser::TemplatesConfiguration::changed, this, &CollectionTemplatesWidget::slotChanged);
mWidget->setEnabled(false);
// Move the help label outside of the templates configuration widget,
// so that the help can be read even if the widget is not enabled.
topItems->addStretch(9);
topItems->addWidget(mWidget->helpLabel(), Qt::AlignRight);
topLayout->addWidget(mWidget);
QHBoxLayout *btns = new QHBoxLayout();
QPushButton *copyGlobal = new QPushButton(i18n("&Copy Global Templates"), this);
copyGlobal->setEnabled(false);
btns->addWidget(copyGlobal);
topLayout->addLayout(btns);
connect(mCustom, &QCheckBox::toggled, mWidget, &TemplateParser::TemplatesConfiguration::setEnabled);
connect(mCustom, &QCheckBox::toggled, copyGlobal, &QPushButton::setEnabled);
connect(copyGlobal, &QPushButton::clicked, this, &CollectionTemplatesWidget::slotCopyGlobal);
}
CollectionTemplatesWidget::~CollectionTemplatesWidget()
{
}
void CollectionTemplatesWidget::save(const Akonadi::Collection &collection)
{
if (mChanged && !mCollectionId.isEmpty()) {
TemplateParser::Templates t(mCollectionId);
//qCDebug(KMAIL_LOG) << "use custom templates for folder" << fid <<":" << mCustom->isChecked();
t.setUseCustomTemplates(mCustom->isChecked());
t.save();
mWidget->saveToFolder(mCollectionId);
}
}
void CollectionTemplatesWidget::slotCopyGlobal()
{
if (mIdentity) {
mWidget->loadFromIdentity(mIdentity);
} else {
mWidget->loadFromGlobal();
}
}
void CollectionTemplatesWidget::slotChanged()
{
mChanged = true;
}
/*
SPDX-FileCopyrightText: 2020 Laurent Montel <montel@kde.org>
SPDX-License-Identifier: GPL-2.0-or-later
*/
#ifndef COLLECTIONTEMPLATESWIDGET_H
#define COLLECTIONTEMPLATESWIDGET_H
#include <QWidget>
#include <AkonadiCore/Collection>
class QCheckBox;
namespace TemplateParser {
class TemplatesConfiguration;
}
class CollectionTemplatesWidget : public QWidget
{
Q_OBJECT
public:
explicit CollectionTemplatesWidget(QWidget *parent = nullptr);
~CollectionTemplatesWidget();
void save(const Akonadi::Collection &collection);
private:
void slotCopyGlobal();
void slotChanged();
QCheckBox *mCustom = nullptr;
TemplateParser::TemplatesConfiguration *mWidget = nullptr;
QString mCollectionId;
uint mIdentity = 0;
bool mChanged = false;
};
#endif // COLLECTIONTEMPLATESWIDGET_H
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment