X-Git-Url: https://cloud.milkyroute.net/gitweb/dolphin.git/blobdiff_plain/39cfd051ef25f3a90fdfa411325829ca119a421c..a35af3a0d2022a23c5a1cc30d693141a13673b8f:/src/settings/servicemodel.cpp diff --git a/src/settings/servicemodel.cpp b/src/settings/servicemodel.cpp index e3b015147..c2ebda7c1 100644 --- a/src/settings/servicemodel.cpp +++ b/src/settings/servicemodel.cpp @@ -1,27 +1,16 @@ -/*************************************************************************** - * Copyright (C) 2011 by Peter Penz * - * * - * This program is free software; you can redistribute it and/or modify * - * it under the terms of the GNU General Public License as published by * - * the Free Software Foundation; either version 2 of the License, or * - * (at your option) any later version. * - * * - * This program is distributed in the hope that it will be useful, * - * but WITHOUT ANY WARRANTY; without even the implied warranty of * - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * - * GNU General Public License for more details. * - * * - * You should have received a copy of the GNU General Public License * - * along with this program; if not, write to the * - * Free Software Foundation, Inc., * - * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA * - ***************************************************************************/ +/* + * SPDX-FileCopyrightText: 2011 Peter Penz + * + * SPDX-License-Identifier: GPL-2.0-or-later + */ #include "servicemodel.h" -ServiceModel::ServiceModel(QObject* parent) : - QAbstractListModel(parent), - m_items() +#include + +ServiceModel::ServiceModel(QObject *parent) + : QAbstractListModel(parent) + , m_items() { } @@ -29,7 +18,7 @@ ServiceModel::~ServiceModel() { } -bool ServiceModel::insertRows(int row, int count, const QModelIndex& parent) +bool ServiceModel::insertRows(int row, int count, const QModelIndex &parent) { if (row > rowCount()) { return false; @@ -42,8 +31,7 @@ bool ServiceModel::insertRows(int row, int count, const QModelIndex& parent) beginInsertRows(parent, row, row + count - 1); for (int i = 0; i < count; ++i) { ServiceItem item; - item.checked = false; - item.configurable = false; + item.checked = Qt::Unchecked; m_items.insert(row, item); } endInsertRows(); @@ -51,7 +39,7 @@ bool ServiceModel::insertRows(int row, int count, const QModelIndex& parent) return true; } -bool ServiceModel::setData(const QModelIndex& index, const QVariant& value, int role) +bool ServiceModel::setData(const QModelIndex &index, const QVariant &value, int role) { const int row = index.row(); if (row >= rowCount()) { @@ -60,10 +48,7 @@ bool ServiceModel::setData(const QModelIndex& index, const QVariant& value, int switch (role) { case Qt::CheckStateRole: - m_items[row].checked = value.toBool(); - break; - case ConfigurableRole: - m_items[row].configurable = value.toBool(); + m_items[row].checked = value.value(); break; case Qt::DecorationRole: m_items[row].icon = value.toString(); @@ -78,30 +63,47 @@ bool ServiceModel::setData(const QModelIndex& index, const QVariant& value, int return false; } - emit dataChanged(index, index); + Q_EMIT dataChanged(index, index); return true; } -QVariant ServiceModel::data(const QModelIndex& index, int role) const +QVariant ServiceModel::data(const QModelIndex &index, int role) const { const int row = index.row(); if (row < rowCount()) { switch (role) { - case ConfigurableRole: return m_items[row].configurable; - case Qt::CheckStateRole: return m_items[row].checked; - case Qt::DecorationRole: return m_items[row].icon; - case Qt::DisplayRole: return m_items[row].text; - case DesktopEntryNameRole: return m_items[row].desktopEntryName; - default: break; + case Qt::CheckStateRole: + return m_items[row].checked; + case Qt::DecorationRole: + return QIcon::fromTheme(m_items[row].icon); + case Qt::DisplayRole: + return m_items[row].text; + case DesktopEntryNameRole: + return m_items[row].desktopEntryName; + default: + break; } } return QVariant(); } -int ServiceModel::rowCount(const QModelIndex& parent) const +int ServiceModel::rowCount(const QModelIndex &parent) const { - Q_UNUSED(parent); + Q_UNUSED(parent) return m_items.count(); } +void ServiceModel::clear() +{ + beginRemoveRows(QModelIndex(), 0, m_items.count()); + m_items.clear(); + endRemoveRows(); +} + +Qt::ItemFlags ServiceModel::flags(const QModelIndex &index) const +{ + return QAbstractListModel::flags(index) | Qt::ItemIsUserCheckable; +} + +#include "moc_servicemodel.cpp"