From 0b630e86a359eb8349ad52b5097491f40477067b Mon Sep 17 00:00:00 2001 From: Emmanuel Lepage Vallee <emmanuel.lepage@savoirfairelinux.com> Date: Fri, 10 Apr 2015 12:53:48 -0400 Subject: [PATCH] certificate: Turn the CertificateModel into a collection manager (1/2) Refs #70591 --- src/categorizedhistorymodel.h | 4 ++-- src/certificate.cpp | 4 ++-- src/certificate.h | 4 +++- src/certificatemodel.cpp | 20 +++++++++++++++++++- src/certificatemodel.h | 8 +++++++- src/itembase.h | 8 ++++---- 6 files changed, 37 insertions(+), 11 deletions(-) diff --git a/src/categorizedhistorymodel.h b/src/categorizedhistorymodel.h index c5f5f59d..6272bd06 100644 --- a/src/categorizedhistorymodel.h +++ b/src/categorizedhistorymodel.h @@ -38,7 +38,8 @@ class AbstractHistoryBackend; class CategorizedHistoryModelPrivate; //TODO split ASAP ///CategorizedHistoryModel: History call manager -class LIB_EXPORT CategorizedHistoryModel : public QAbstractItemModel, public CollectionManagerInterface<Call> { +class LIB_EXPORT CategorizedHistoryModel : public QAbstractItemModel, public CollectionManagerInterface<Call> +{ #pragma GCC diagnostic push #pragma GCC diagnostic ignored "-Wzero-as-null-pointer-constant" Q_OBJECT @@ -67,7 +68,6 @@ public: void setHistoryLimited(bool isLimited); void setHistoryLimit(int numberOfDays); - //Model implementation virtual bool setData ( const QModelIndex& index, const QVariant &value, int role ) override; virtual QVariant data ( const QModelIndex& index, int role = Qt::DisplayRole ) const override; diff --git a/src/certificate.cpp b/src/certificate.cpp index 8652c45d..8909baa5 100644 --- a/src/certificate.cpp +++ b/src/certificate.cpp @@ -314,14 +314,14 @@ void CertificatePrivate::loadChecks() } } -Certificate::Certificate(const QUrl& path, Type type, const QUrl& privateKey) : QObject(CertificateModel::instance()),d_ptr(new CertificatePrivate(LoadingType::FROM_PATH)) +Certificate::Certificate(const QUrl& path, Type type, const QUrl& privateKey) : ItemBase<QObject>(CertificateModel::instance()),d_ptr(new CertificatePrivate(LoadingType::FROM_PATH)) { Q_UNUSED(privateKey) d_ptr->m_Path = path.path(); d_ptr->m_Type = type; } -Certificate::Certificate(const QByteArray& content, Type type): QObject(CertificateModel::instance()),d_ptr(new CertificatePrivate(LoadingType::FROM_CONTENT)) +Certificate::Certificate(const QByteArray& content, Type type): ItemBase<QObject>(CertificateModel::instance()),d_ptr(new CertificatePrivate(LoadingType::FROM_CONTENT)) { d_ptr->m_Content = content; d_ptr->m_Type = type; diff --git a/src/certificate.h b/src/certificate.h index a6659395..dcdc8b48 100644 --- a/src/certificate.h +++ b/src/certificate.h @@ -19,6 +19,7 @@ #define CERTIFICATE_H #include "typedefs.h" +#include "itembase.h" //Qt #include <QUrl> @@ -29,7 +30,8 @@ class CertificatePrivate; /** * This class represent a conceptual certificate. */ -class LIB_EXPORT Certificate : public QObject { +class LIB_EXPORT Certificate : public ItemBase<QObject> +{ Q_OBJECT friend class CertificateModel; diff --git a/src/certificatemodel.cpp b/src/certificatemodel.cpp index a50936c7..f92eb717 100644 --- a/src/certificatemodel.cpp +++ b/src/certificatemodel.cpp @@ -164,7 +164,7 @@ CertificateModelPrivate::CertificateModelPrivate(CertificateModel* parent) : q_p } -CertificateModel::CertificateModel(QObject* parent) : QAbstractItemModel(parent), +CertificateModel::CertificateModel(QObject* parent) : QAbstractItemModel(parent), CollectionManagerInterface<Certificate>(this), d_ptr(new CertificateModelPrivate(this)) { setObjectName("CertificateModel"); @@ -715,4 +715,22 @@ QAbstractItemModel* CertificateModel::model(const QModelIndex& idx) const return d_ptr->getModelCommon(node); } +void CertificateModel::collectionAddedCallback(CollectionInterface* collection) +{ + Q_UNUSED(collection) +} + +bool CertificateModel::addItemCallback(const Certificate* item) +{ + Q_UNUSED(item) + return false; +} + +bool CertificateModel::removeItemCallback(const Certificate* item) +{ + Q_UNUSED(item) + return false; +} + + #include <certificatemodel.moc> diff --git a/src/certificatemodel.h b/src/certificatemodel.h index 608a2ac0..b9c2576d 100644 --- a/src/certificatemodel.h +++ b/src/certificatemodel.h @@ -26,7 +26,7 @@ class Account; class CertificateModelPrivate; -class LIB_EXPORT CertificateModel : public QAbstractItemModel +class LIB_EXPORT CertificateModel : public QAbstractItemModel, public CollectionManagerInterface<Certificate> { Q_OBJECT public: @@ -84,6 +84,12 @@ public: static CertificateModel* instance(); private: + + //Backend interface + virtual void collectionAddedCallback(CollectionInterface* collection) override; + virtual bool addItemCallback(const Certificate* item) override; + virtual bool removeItemCallback(const Certificate* item) override; + CertificateModelPrivate* d_ptr; Q_DECLARE_PRIVATE(CertificateModel) }; diff --git a/src/itembase.h b/src/itembase.h index a4ac370d..e40c611e 100644 --- a/src/itembase.h +++ b/src/itembase.h @@ -36,10 +36,10 @@ public: virtual CollectionInterface* collection() const final; //Mutator methods - bool save() const; - bool edit() ; - bool remove() ; - bool isActive() const ; + bool save () const; + bool edit () ; + bool remove () ; + bool isActive() const; //Setter void setCollection(CollectionInterface* backend); -- GitLab