File indexing completed on 2024-05-26 05:24:59

0001 /*
0002   SPDX-FileCopyrightText: 2009-2024 Laurent Montel <montel@kde.org>
0003   SPDX-FileCopyrightText: 2013 Jonathan Marten <jjm@keelhaul.me.uk>
0004 
0005   SPDX-License-Identifier: GPL-2.0-only
0006 */
0007 
0008 #pragma once
0009 
0010 #include "mailcommon_export.h"
0011 
0012 #include <Akonadi/Collection>
0013 #include <Akonadi/CollectionPropertiesPage>
0014 
0015 namespace MailCommon
0016 {
0017 class CollectionExpiryWidget;
0018 /**
0019  * @brief The CollectionExpiryPage class
0020  * @author Laurent Montel <montel@kde.org>
0021  */
0022 class MAILCOMMON_EXPORT CollectionExpiryPage : public Akonadi::CollectionPropertiesPage
0023 {
0024     Q_OBJECT
0025 
0026 public:
0027     explicit CollectionExpiryPage(QWidget *parent = nullptr);
0028     ~CollectionExpiryPage() override;
0029 
0030     [[nodiscard]] bool canHandle(const Akonadi::Collection &col) const override;
0031     void load(const Akonadi::Collection &collection) override;
0032     void save(Akonadi::Collection &collection) override;
0033 
0034 private:
0035     MAILCOMMON_NO_EXPORT void saveAndExpire(Akonadi::Collection &collection, bool saveSettings, bool _expirenow);
0036     MAILCOMMON_NO_EXPORT void init();
0037     MAILCOMMON_NO_EXPORT void slotChanged();
0038     MAILCOMMON_NO_EXPORT void slotSaveAndExpire();
0039     MAILCOMMON_NO_EXPORT void slotConfigChanged(bool changed);
0040     CollectionExpiryWidget *mCollectionExpiryWidget = nullptr;
0041     Akonadi::Collection mCollection;
0042     bool mChanged = false;
0043 };
0044 
0045 AKONADI_COLLECTION_PROPERTIES_PAGE_FACTORY(CollectionExpiryPageFactory, CollectionExpiryPage)
0046 }