You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
67 lines
1.6 KiB
67 lines
1.6 KiB
/* |
|
SPDX-FileCopyrightText: 2018 Daniel Vrátil <dvratil@kde.org> |
|
|
|
SPDX-License-Identifier: GPL-2.0-or-later |
|
*/ |
|
|
|
#ifndef UNIFIEDMAILBOX_H |
|
#define UNIFIEDMAILBOX_H |
|
|
|
#include <QString> |
|
#include <QMetaType> |
|
#include <QSet> |
|
|
|
class KConfigGroup; |
|
class UnifiedMailboxManager; |
|
|
|
class UnifiedMailbox |
|
{ |
|
friend class UnifiedMailboxManager; |
|
public: |
|
UnifiedMailbox() = default; |
|
UnifiedMailbox(UnifiedMailbox &&) = default; |
|
UnifiedMailbox &operator=(UnifiedMailbox &&) = default; |
|
|
|
UnifiedMailbox(const UnifiedMailbox &) = delete; |
|
UnifiedMailbox &operator=(const UnifiedMailbox &) = delete; |
|
|
|
/** Compares two boxes by their ID **/ |
|
bool operator==(const UnifiedMailbox &other) const; |
|
|
|
void save(KConfigGroup &group) const; |
|
void load(const KConfigGroup &group); |
|
|
|
bool isSpecial() const; |
|
|
|
Q_REQUIRED_RESULT qint64 collectionId() const; |
|
void setCollectionId(qint64 id); |
|
|
|
Q_REQUIRED_RESULT QString id() const; |
|
void setId(const QString &id); |
|
|
|
Q_REQUIRED_RESULT QString name() const; |
|
void setName(const QString &name); |
|
|
|
Q_REQUIRED_RESULT QString icon() const; |
|
void setIcon(const QString &icon); |
|
|
|
void addSourceCollection(qint64 source); |
|
void removeSourceCollection(qint64 source); |
|
void setSourceCollections(const QSet<qint64> &sources); |
|
Q_REQUIRED_RESULT QSet<qint64> sourceCollections() const; |
|
|
|
private: |
|
void attachManager(UnifiedMailboxManager *manager); |
|
|
|
qint64 mCollectionId = -1; |
|
QString mId; |
|
QString mName; |
|
QString mIcon; |
|
QSet<qint64> mSources; |
|
|
|
UnifiedMailboxManager *mManager = nullptr; |
|
}; |
|
|
|
Q_DECLARE_METATYPE(UnifiedMailbox *) |
|
|
|
#endif
|
|
|