]> cloud.milkyroute.net Git - dolphin.git/blobdiff - src/settings/servicemodel.cpp
Apply 1 suggestion(s) to 1 file(s)
[dolphin.git] / src / settings / servicemodel.cpp
index e3b0151473b5a6f14dd60f94b0a8186fcaae64ce..c2ebda7c16338e74bb2b6c8932cca8abe30c9e1d 100644 (file)
@@ -1,27 +1,16 @@
-/***************************************************************************
- *   Copyright (C) 2011 by Peter Penz <peter.penz19@gmail.com>             *
- *                                                                         *
- *   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 <peter.penz19@gmail.com>
+ *
+ * SPDX-License-Identifier: GPL-2.0-or-later
+ */
 
 #include "servicemodel.h"
 
-ServiceModel::ServiceModel(QObject* parent) :
-    QAbstractListModel(parent),
-    m_items()
+#include <QIcon>
+
+ServiceModel::ServiceModel(QObject *parent)
+    : QAbstractListModel(parent)
+    , m_items()
 {
 }
 
@@ -29,7 +18,7 @@ ServiceModel::~ServiceModel()
 {
 }
 
-bool ServiceModel::insertRows(int row, int count, const QModelIndexparent)
+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<Qt::CheckState>();
         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 QModelIndexindex, 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 QModelIndexparent) 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"