/***************************************************************************
- * 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 ALIASESMODEL_H
-#define ALIASESMODEL_H
+#pragma once
+
+#include <memory>
#include <QAbstractItemModel>
-#include <QPointer>
#include "clientaliasmanager.h"
Q_OBJECT
public:
- AliasesModel(QObject *parent = nullptr);
+ AliasesModel(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 {}; }
+ 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 hasConfigChanged() const { return _configChanged; }
+ inline bool hasConfigChanged() const { return static_cast<bool>(_clonedAliasManager); }
inline bool isReady() const { return _modelReady; }
public slots:
void modelReady(bool);
private:
- ClientAliasManager _clonedAliasManager;
- bool _configChanged{false};
+ std::unique_ptr<ClientAliasManager> _clonedAliasManager;
bool _modelReady{false};
- const AliasManager &aliasManager() const;
- AliasManager &aliasManager();
- AliasManager &cloneAliasManager();
+ const AliasManager& aliasManager() const;
+ AliasManager& aliasManager();
+ AliasManager& cloneAliasManager();
private slots:
void clientConnected();
void initDone();
};
-
// Inlines
-int AliasesModel::rowCount(const QModelIndex &parent) const
+int AliasesModel::rowCount(const QModelIndex& parent) 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