common: Make SyncableObject non-copyable
[quassel.git] / src / qtui / settingspages / aliasesmodel.h
index 0e18ed7..3dc7f0d 100644 (file)
@@ -1,5 +1,5 @@
 /***************************************************************************
- *   Copyright (C) 2005-2012 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 ALIASESMODEL_H
-#define ALIASESMODEL_H
+#pragma once
+
+#include <memory>
 
 #include <QAbstractItemModel>
-#include <QPointer>
 
 #include "clientaliasmanager.h"
 
@@ -31,30 +31,30 @@ class AliasesModel : public QAbstractItemModel
     Q_OBJECT
 
 public:
-    AliasesModel(QObject *parent = 0);
+    AliasesModel(QObject* parent = nullptr);
 
-    virtual QVariant data(const QModelIndex &index, int role) const;
-    virtual bool setData(const QModelIndex &index, const QVariant &value, int role = Qt::EditRole);
+    QVariant data(const QModelIndex& index, int role) const override;
+    bool setData(const QModelIndex& index, const QVariant& value, int role = Qt::EditRole) override;
 
-    virtual Qt::ItemFlags flags(const QModelIndex &index) const;
+    Qt::ItemFlags flags(const QModelIndex& index) const override;
 
-    QVariant headerData(int section, Qt::Orientation orientation, int role = Qt::DisplayRole) const;
+    QVariant headerData(int section, Qt::Orientation orientation, int role = Qt::DisplayRole) const override;
 
-    QModelIndex index(int row, int column, const QModelIndex &parent = QModelIndex()) const;
+    QModelIndex index(int row, int column, const QModelIndex& parent = QModelIndex()) const override;
 
-    inline QModelIndex parent(const QModelIndex &) const { return QModelIndex(); }
+    inline QModelIndex parent(const QModelIndex&) const override { return {}; }
 
-    inline int rowCount(const QModelIndex &parent = QModelIndex()) const;
-    inline int columnCount(const QModelIndex &parent = QModelIndex()) const;
+    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>(_clonedAliasManager); }
     inline bool isReady() const { return _modelReady; }
 
 public slots:
     void newAlias();
     void loadDefaults();
     void removeAlias(int index);
-    void revert();
+    void revert() override;
     void commit();
 
 signals:
@@ -62,13 +62,12 @@ signals:
     void modelReady(bool);
 
 private:
-    ClientAliasManager _clonedAliasManager;
-    bool _configChanged;
-    bool _modelReady;
+    std::unique_ptr<ClientAliasManager> _clonedAliasManager;
+    bool _modelReady{false};
 
-    const AliasManager &aliasManager() const;
-    AliasManager &aliasManager();
-    AliasManager &cloneAliasManager();
+    const AliasManageraliasManager() const;
+    AliasManageraliasManager();
+    AliasManagercloneAliasManager();
 
 private slots:
     void clientConnected();
@@ -76,20 +75,15 @@ private slots:
     void initDone();
 };
 
-
 // Inlines
-int AliasesModel::rowCount(const QModelIndex &parent) const
+int AliasesModel::rowCount(const QModelIndexparent) const
 {
     Q_UNUSED(parent);
     return isReady() ? aliasManager().count() : 0;
 }
 
-
-int AliasesModel::columnCount(const QModelIndex &parent) const
+int AliasesModel::columnCount(const QModelIndex& parent) const
 {
     Q_UNUSED(parent);
     return isReady() ? 2 : 0;
 }
-
-
-#endif //ALIASESMODEL_H