/***************************************************************************
- * Copyright (C) 2005-2018 by the Quassel Project *
+ * Copyright (C) 2005-2020 by the Quassel Project *
* devel@quassel-irc.org *
* *
* This program is free software; you can redistribute it and/or modify *
* 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. *
***************************************************************************/
-#ifndef IGNORELISTMODEL_H
-#define IGNORELISTMODEL_H
+#pragma once
+
+#include <memory>
#include <QAbstractItemModel>
-#include <QPointer>
#include "clientignorelistmanager.h"
Q_OBJECT
public:
- IgnoreListModel(QObject *parent = nullptr);
+ IgnoreListModel(QObject* parent = nullptr);
- QVariant data(const QModelIndex &index, int role) const override;
- bool setData(const QModelIndex &index, const QVariant &value, int role = Qt::EditRole) override;
+ QVariant data(const QModelIndex& index, int role) const override;
+ bool setData(const QModelIndex& index, const QVariant& value, int role = Qt::EditRole) override;
- Qt::ItemFlags flags(const QModelIndex &index) const override;
+ Qt::ItemFlags flags(const QModelIndex& index) const override;
QVariant headerData(int section, Qt::Orientation orientation, int role = Qt::DisplayRole) const override;
- QModelIndex index(int row, int column, const QModelIndex &parent = QModelIndex()) const override;
+ QModelIndex index(int row, int column, const QModelIndex& parent = QModelIndex()) const override;
- inline QModelIndex parent(const QModelIndex &) const override { return QModelIndex(); }
+ inline QModelIndex parent(const QModelIndex&) const override { return {}; }
- inline int rowCount(const QModelIndex &parent = QModelIndex()) const override;
- inline int columnCount(const QModelIndex &parent = QModelIndex()) const override;
+ inline int rowCount(const QModelIndex& parent = QModelIndex()) const override;
+ inline int columnCount(const QModelIndex& parent = QModelIndex()) const override;
- inline bool configChanged() const { return _configChanged; }
+ inline bool hasConfigChanged() const { return static_cast<bool>(_clonedIgnoreListManager); }
inline bool isReady() const { return _modelReady; }
- const IgnoreListManager::IgnoreListItem &ignoreListItemAt(int row) const;
- void setIgnoreListItemAt(int row, const IgnoreListManager::IgnoreListItem &item);
- bool newIgnoreRule(const IgnoreListManager::IgnoreListItem &item);
- const QModelIndex indexOf(const QString &rule);
+ const IgnoreListManager::IgnoreListItem& ignoreListItemAt(int row) const;
+ void setIgnoreListItemAt(int row, const IgnoreListManager::IgnoreListItem& item);
+ bool newIgnoreRule(const IgnoreListManager::IgnoreListItem& item);
+ const QModelIndex indexOf(const QString& rule);
public slots:
void loadDefaults();
void modelReady(bool);
private:
- ClientIgnoreListManager _clonedIgnoreListManager;
- bool _configChanged{false};
+ std::unique_ptr<ClientIgnoreListManager> _clonedIgnoreListManager;
bool _modelReady{false};
- const IgnoreListManager &ignoreListManager() const;
- IgnoreListManager &ignoreListManager();
- IgnoreListManager &cloneIgnoreListManager();
+ const IgnoreListManager& ignoreListManager() const;
+ IgnoreListManager& ignoreListManager();
+ IgnoreListManager& cloneIgnoreListManager();
private slots:
void clientConnected();
void initDone();
};
-
// Inlines
-int IgnoreListModel::rowCount(const QModelIndex &parent) const
+int IgnoreListModel::rowCount(const QModelIndex& parent) const
{
Q_UNUSED(parent);
return isReady() ? ignoreListManager().count() : 0;
}
-
-int IgnoreListModel::columnCount(const QModelIndex &parent) const
+int IgnoreListModel::columnCount(const QModelIndex& parent) const
{
Q_UNUSED(parent);
return isReady() ? 3 : 0;
}
-
-
-#endif //IGNORELISTMODEL_H