common: Make SyncableObject non-copyable
[quassel.git] / src / qtui / settingspages / ignorelistmodel.h
index 4a9f9c6..262358b 100644 (file)
@@ -1,5 +1,5 @@
 /***************************************************************************
- *   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"
 
@@ -31,29 +31,29 @@ class IgnoreListModel : public QAbstractItemModel
     Q_OBJECT
 
 public:
-    IgnoreListModel(QObject *parent = nullptr);
+    IgnoreListModel(QObjectparent = 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 QModelIndexindex, 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 QModelIndexindex) 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 QModelIndexparent = 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 QModelIndexparent = QModelIndex()) const override;
+    inline int columnCount(const QModelIndexparent = 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::IgnoreListItemignoreListItemAt(int row) const;
+    void setIgnoreListItemAt(int row, const IgnoreListManager::IgnoreListItemitem);
+    bool newIgnoreRule(const IgnoreListManager::IgnoreListItemitem);
+    const QModelIndex indexOf(const QStringrule);
 
 public slots:
     void loadDefaults();
@@ -66,13 +66,12 @@ signals:
     void modelReady(bool);
 
 private:
-    ClientIgnoreListManager _clonedIgnoreListManager;
-    bool _configChanged;
-    bool _modelReady;
+    std::unique_ptr<ClientIgnoreListManager> _clonedIgnoreListManager;
+    bool _modelReady{false};
 
-    const IgnoreListManager &ignoreListManager() const;
-    IgnoreListManager &ignoreListManager();
-    IgnoreListManager &cloneIgnoreListManager();
+    const IgnoreListManagerignoreListManager() const;
+    IgnoreListManagerignoreListManager();
+    IgnoreListManagercloneIgnoreListManager();
 
 private slots:
     void clientConnected();
@@ -80,20 +79,15 @@ private slots:
     void initDone();
 };
 
-
 // Inlines
-int IgnoreListModel::rowCount(const QModelIndex &parent) const
+int IgnoreListModel::rowCount(const QModelIndexparent) 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