Add save/load method

wilder
Laurent Montel 6 years ago
parent 56f147c5a4
commit 8da33a4ac9
  1. 49
      src/collectionpage/collectionexpirywidget.cpp
  2. 24
      src/collectionpage/collectionexpirywidget.h

@ -18,7 +18,7 @@
#include "collectionexpirywidget.h" #include "collectionexpirywidget.h"
#include "kernel/mailkernel.h"
#include "folderrequester.h" #include "folderrequester.h"
#include <KPluralHandlingSpinBox> #include <KPluralHandlingSpinBox>
#include <QGroupBox> #include <QGroupBox>
@ -106,7 +106,7 @@ CollectionExpiryWidget::~CollectionExpiryWidget()
void CollectionExpiryWidget::slotChanged() void CollectionExpiryWidget::slotChanged()
{ {
mChanged = true; Q_EMIT configChanged();
} }
void CollectionExpiryWidget::slotUpdateControls() void CollectionExpiryWidget::slotUpdateControls()
@ -121,5 +121,48 @@ void CollectionExpiryWidget::slotUpdateControls()
expireNowPB->setEnabled(showExpiryActions); expireNowPB->setEnabled(showExpiryActions);
mChanged = true; Q_EMIT configChanged();
}
void CollectionExpiryWidget::load(const MailCommon::CollectionExpirySettings &settings)
{
if (settings.isValid()) {
// Load the values from the folder
bool expiryGloballyOn = settings.expiryGloballyOn;
if (expiryGloballyOn
&& settings.mReadExpireUnits != ExpireCollectionAttribute::ExpireNever
&& settings.daysToExpireRead >= 0) {
expireReadMailCB->setChecked(true);
expireReadMailSB->setValue(settings.daysToExpireRead);
}
if (expiryGloballyOn
&& settings.mUnreadExpireUnits != ExpireCollectionAttribute::ExpireNever
&& settings.daysToExpireUnread >= 0) {
expireUnreadMailCB->setChecked(true);
expireUnreadMailSB->setValue(settings.daysToExpireUnread);
}
if (settings.mExpireAction == ExpireCollectionAttribute::ExpireDelete) {
deletePermanentlyRB->setChecked(true);
} else {
moveToRB->setChecked(true);
}
Akonadi::Collection::Id destFolderID = settings.mExpireToFolderId;
if (destFolderID > 0) {
Akonadi::Collection destFolder = Kernel::self()->collectionFromId(destFolderID);
if (destFolder.isValid()) {
folderSelector->setCollection(destFolder);
}
}
} else {
deletePermanentlyRB->setChecked(true);
}
slotUpdateControls();
}
CollectionExpirySettings CollectionExpiryWidget::save()
{
//TODO
return {};
} }

@ -20,6 +20,7 @@
#define COLLECTIONEXPIRYWIDGET_H #define COLLECTIONEXPIRYWIDGET_H
#include "mailcommon_export.h" #include "mailcommon_export.h"
#include <MailCommon/ExpireCollectionAttribute>
#include <QWidget> #include <QWidget>
class QCheckBox; class QCheckBox;
class KPluralHandlingSpinBox; class KPluralHandlingSpinBox;
@ -27,6 +28,26 @@ class QRadioButton;
class QPushButton; class QPushButton;
namespace MailCommon { namespace MailCommon {
class FolderRequester; class FolderRequester;
struct MAILCOMMON_EXPORT CollectionExpirySettings
{
Q_REQUIRED_RESULT bool isValid() const {
return daysToExpireRead != -1 ||
daysToExpireUnread != -1 ||
mUnreadExpireUnits != ExpireCollectionAttribute::ExpireNever ||
mReadExpireUnits != ExpireCollectionAttribute::ExpireNever ||
mExpireAction != ExpireCollectionAttribute::ExpireDelete ||
mExpireToFolderId != -1;
}
bool expiryGloballyOn = false;
int daysToExpireRead = -1;
int daysToExpireUnread = -1;
ExpireCollectionAttribute::ExpireUnits mUnreadExpireUnits = ExpireCollectionAttribute::ExpireNever;
ExpireCollectionAttribute::ExpireUnits mReadExpireUnits = ExpireCollectionAttribute::ExpireNever;
ExpireCollectionAttribute::ExpireAction mExpireAction = ExpireCollectionAttribute::ExpireDelete;
Akonadi::Collection::Id mExpireToFolderId = -1;
};
class MAILCOMMON_EXPORT CollectionExpiryWidget : public QWidget class MAILCOMMON_EXPORT CollectionExpiryWidget : public QWidget
{ {
Q_OBJECT Q_OBJECT
@ -34,6 +55,8 @@ public:
explicit CollectionExpiryWidget(QWidget *parent = nullptr); explicit CollectionExpiryWidget(QWidget *parent = nullptr);
~CollectionExpiryWidget(); ~CollectionExpiryWidget();
void load(const MailCommon::CollectionExpirySettings &settings);
Q_REQUIRED_RESULT MailCommon::CollectionExpirySettings save();
Q_SIGNALS: Q_SIGNALS:
void saveAndExpireRequested(); void saveAndExpireRequested();
void configChanged(); void configChanged();
@ -49,7 +72,6 @@ private:
FolderRequester *folderSelector = nullptr; FolderRequester *folderSelector = nullptr;
QRadioButton *deletePermanentlyRB = nullptr; QRadioButton *deletePermanentlyRB = nullptr;
QPushButton *expireNowPB = nullptr; QPushButton *expireNowPB = nullptr;
bool mChanged = false;
}; };
} }

Loading…
Cancel
Save