/***************************************************************************
- * Copyright (C) 2005-2013 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 *
#include "clientsettings.h"
#include "quassel.h"
-CoreAccountModel::CoreAccountModel(QObject *parent)
- : QAbstractListModel(parent),
- _internalAccount(0)
-{
-}
-
+CoreAccountModel::CoreAccountModel(QObject* parent)
+ : QAbstractListModel(parent)
+ , _internalAccount(0)
+{}
-CoreAccountModel::CoreAccountModel(const CoreAccountModel *other, QObject *parent)
- : QAbstractListModel(parent),
- _internalAccount(0)
+CoreAccountModel::CoreAccountModel(const CoreAccountModel* other, QObject* parent)
+ : QAbstractListModel(parent)
+ , _internalAccount(0)
{
update(other);
}
-
-void CoreAccountModel::update(const CoreAccountModel *other)
+void CoreAccountModel::update(const CoreAccountModel* other)
{
clear();
if (other->_accounts.count() > 0) {
- beginInsertRows(QModelIndex(), 0, other->_accounts.count() -1);
+ beginInsertRows(QModelIndex(), 0, other->_accounts.count() - 1);
_accounts = other->_accounts;
endInsertRows();
}
_removedAccounts = other->_removedAccounts;
}
-
void CoreAccountModel::load()
{
clear();
CoreAccountSettings s;
- foreach(AccountId accId, s.knownAccounts()) {
+ foreach (AccountId accId, s.knownAccounts()) {
QVariantMap map = s.retrieveAccountData(accId);
CoreAccount acc;
- acc.fromVariantMap(map); // TODO Hook into kwallet/password saving stuff
+ acc.fromVariantMap(map); // TODO Hook into kwallet/password saving stuff
insertAccount(acc);
}
if (Quassel::runMode() == Quassel::Monolithic && !internalAccount().isValid()) {
}
}
-
void CoreAccountModel::save()
{
CoreAccountSettings s;
- foreach(AccountId id, _removedAccounts) {
+ foreach (AccountId id, _removedAccounts) {
s.removeAccount(id);
}
_removedAccounts.clear();
- foreach(const CoreAccount &acc, accounts()) {
- QVariantMap map = acc.toVariantMap(false); // TODO Hook into kwallet/password saving stuff
+ foreach (const CoreAccount& acc, accounts()) {
+ QVariantMap map = acc.toVariantMap(false); // TODO Hook into kwallet/password saving stuff
s.storeAccountData(acc.accountId(), map);
}
}
-
void CoreAccountModel::clear()
{
- if (rowCount()) {
- beginRemoveRows(QModelIndex(), 0, rowCount()-1);
- _internalAccount = 0;
- _accounts.clear();
- endRemoveRows();
- }
+ beginResetModel();
+ _internalAccount = 0;
+ _accounts.clear();
+ endResetModel();
}
-
-QVariant CoreAccountModel::data(const QModelIndex &index, int role) const
+QVariant CoreAccountModel::data(const QModelIndex& index, int role) const
{
if (!index.isValid() || index.row() >= rowCount() || index.column() >= 1)
return QVariant();
- const CoreAccount &acc = accounts().at(index.row());
+ const CoreAccount& acc = accounts().at(index.row());
switch (role) {
case Qt::DisplayRole:
return acc.accountName();
case AccountIdRole:
- return QVariant::fromValue<AccountId>(acc.accountId());
+ return QVariant::fromValue(acc.accountId());
case UuidRole:
return acc.uuid().toString();
}
}
-
CoreAccount CoreAccountModel::account(AccountId id) const
{
int idx = findAccountIdx(id);
return CoreAccount();
}
-
-CoreAccount CoreAccountModel::account(const QModelIndex &idx) const
+CoreAccount CoreAccountModel::account(const QModelIndex& idx) const
{
if (idx.isValid() && idx.row() < _accounts.count())
return _accounts.value(idx.row());
return CoreAccount();
}
-
QList<CoreAccount> CoreAccountModel::accounts() const
{
return _accounts;
}
-
QList<AccountId> CoreAccountModel::accountIds() const
{
QList<AccountId> list;
- foreach(const CoreAccount &acc, accounts())
- list << acc.accountId();
+ foreach (const CoreAccount& acc, accounts())
+ list << acc.accountId();
return list;
}
-
-bool CoreAccountModel::operator==(const CoreAccountModel &other) const
+bool CoreAccountModel::operator==(const CoreAccountModel& other) const
{
return _accounts == other._accounts;
}
+bool CoreAccountModel::operator!=(const CoreAccountModel& other) const
+{
+ return !(*this == other);
+}
// TODO with Qt 4.6, use QAbstractItemModel move semantics to properly do this
-AccountId CoreAccountModel::createOrUpdateAccount(const CoreAccount &newAcc)
+AccountId CoreAccountModel::createOrUpdateAccount(const CoreAccount& newAcc)
{
CoreAccount acc = newAcc;
if (!acc.accountId().isValid()) {
// find free Id
AccountId newId = 0;
- const QList<AccountId> &ids = accountIds();
+ const QList<AccountId>& ids = accountIds();
for (int i = 1;; i++) {
if (!_removedAccounts.contains(i) && !ids.contains(i)) {
newId = i;
return acc.accountId();
}
-
-void CoreAccountModel::insertAccount(const CoreAccount &acc)
+void CoreAccountModel::insertAccount(const CoreAccount& acc)
{
if (acc.isInternal()) {
if (internalAccount().isValid()) {
// check for Quuid
int idx = 0;
- while (idx<_accounts.count() && acc.accountName()> _accounts.at(idx).accountName() && !acc.isInternal())
+ while (idx < _accounts.count() && acc.accountName() > _accounts.at(idx).accountName() && !acc.isInternal())
++idx;
beginInsertRows(QModelIndex(), idx, idx);
endInsertRows();
}
-
CoreAccount CoreAccountModel::takeAccount(AccountId accId)
{
int idx = findAccountIdx(accId);
return acc;
}
-
void CoreAccountModel::removeAccount(AccountId accId)
{
takeAccount(accId);
_removedAccounts.insert(accId);
}
-
QModelIndex CoreAccountModel::accountIndex(AccountId accId) const
{
for (int i = 0; i < _accounts.count(); i++) {
if (_accounts.at(i).accountId() == accId)
return index(i, 0);
}
- return QModelIndex();
+ return {};
}
-
int CoreAccountModel::findAccountIdx(AccountId id) const
{
QModelIndex idx = accountIndex(id);