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 }