You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
149 lines
2.9 KiB
149 lines
2.9 KiB
/* |
|
SPDX-FileCopyrightText: 2014-2015 Eike Hein <hein@kde.org> |
|
|
|
SPDX-License-Identifier: GPL-2.0-or-later |
|
*/ |
|
|
|
#include "abstractmodel.h" |
|
#include "actionlist.h" |
|
|
|
AbstractModel::AbstractModel(QObject *parent) |
|
: QAbstractListModel(parent) |
|
{ |
|
} |
|
|
|
AbstractModel::~AbstractModel() |
|
{ |
|
} |
|
|
|
QHash<int, QByteArray> AbstractModel::roleNames() const |
|
{ |
|
QHash<int, QByteArray> roles; |
|
roles.insert(Qt::DisplayRole, "display"); |
|
roles.insert(Qt::DecorationRole, "decoration"); |
|
roles.insert(Kicker::GroupRole, "group"); |
|
roles.insert(Kicker::DescriptionRole, "description"); |
|
roles.insert(Kicker::FavoriteIdRole, "favoriteId"); |
|
roles.insert(Kicker::IsParentRole, "isParent"); |
|
roles.insert(Kicker::IsSeparatorRole, "isSeparator"); |
|
roles.insert(Kicker::HasChildrenRole, "hasChildren"); |
|
roles.insert(Kicker::HasActionListRole, "hasActionList"); |
|
roles.insert(Kicker::ActionListRole, "actionList"); |
|
roles.insert(Kicker::UrlRole, "url"); |
|
roles.insert(Kicker::DisabledRole, "disabled"); |
|
roles.insert(Kicker::IsMultilineTextRole, "isMultilineText"); |
|
|
|
return roles; |
|
} |
|
|
|
int AbstractModel::count() const |
|
{ |
|
return rowCount(); |
|
} |
|
|
|
int AbstractModel::separatorCount() const |
|
{ |
|
return 0; |
|
} |
|
|
|
int AbstractModel::iconSize() const |
|
{ |
|
return m_iconSize; |
|
} |
|
|
|
void AbstractModel::setIconSize(int iconSize) |
|
{ |
|
if (m_iconSize != iconSize) { |
|
m_iconSize = iconSize; |
|
refresh(); |
|
} |
|
} |
|
|
|
void AbstractModel::refresh() |
|
{ |
|
} |
|
|
|
QString AbstractModel::labelForRow(int row) |
|
{ |
|
return data(index(row, 0), Qt::DisplayRole).toString(); |
|
} |
|
|
|
AbstractModel *AbstractModel::modelForRow(int row) |
|
{ |
|
Q_UNUSED(row) |
|
|
|
return nullptr; |
|
} |
|
|
|
int AbstractModel::rowForModel(AbstractModel *model) |
|
{ |
|
Q_UNUSED(model) |
|
|
|
return -1; |
|
} |
|
|
|
bool AbstractModel::hasActions() const |
|
{ |
|
return false; |
|
} |
|
|
|
QVariantList AbstractModel::actions() const |
|
{ |
|
return QVariantList(); |
|
} |
|
|
|
AbstractModel *AbstractModel::favoritesModel() |
|
{ |
|
if (m_favoritesModel) { |
|
return m_favoritesModel; |
|
} else { |
|
AbstractModel *model = rootModel(); |
|
|
|
if (model && model != this) { |
|
return model->favoritesModel(); |
|
} |
|
} |
|
|
|
return nullptr; |
|
} |
|
|
|
void AbstractModel::setFavoritesModel(AbstractModel *model) |
|
{ |
|
if (m_favoritesModel != model) { |
|
m_favoritesModel = model; |
|
|
|
Q_EMIT favoritesModelChanged(); |
|
} |
|
} |
|
|
|
AbstractModel *AbstractModel::rootModel() |
|
{ |
|
if (!parent()) { |
|
return nullptr; |
|
} |
|
|
|
QObject *p = this; |
|
AbstractModel *rootModel = nullptr; |
|
|
|
while (p) { |
|
if (qobject_cast<AbstractModel *>(p)) { |
|
rootModel = qobject_cast<AbstractModel *>(p); |
|
} else { |
|
return rootModel; |
|
} |
|
|
|
p = p->parent(); |
|
} |
|
|
|
return rootModel; |
|
} |
|
|
|
QVariantList AbstractModel::sections() const |
|
{ |
|
return {}; |
|
} |
|
|
|
void AbstractModel::entryChanged(AbstractEntry *entry) |
|
{ |
|
Q_UNUSED(entry) |
|
}
|
|
|