X-Git-Url: https://cloud.milkyroute.net/gitweb/dolphin.git/blobdiff_plain/67ebd66f94356b4e66005b1072919cb7b5e858bb..a35af3a0d2022a23c5a1cc30d693141a13673b8f:/src/settings/servicemodel.cpp diff --git a/src/settings/servicemodel.cpp b/src/settings/servicemodel.cpp index 41c00a958..c2ebda7c1 100644 --- a/src/settings/servicemodel.cpp +++ b/src/settings/servicemodel.cpp @@ -6,9 +6,11 @@ #include "servicemodel.h" -ServiceModel::ServiceModel(QObject* parent) : - QAbstractListModel(parent), - m_items() +#include + +ServiceModel::ServiceModel(QObject *parent) + : QAbstractListModel(parent) + , m_items() { } @@ -16,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; @@ -29,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(); @@ -38,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()) { @@ -47,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(); @@ -65,28 +63,32 @@ 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) return m_items.count(); @@ -99,3 +101,9 @@ void ServiceModel::clear() endRemoveRows(); } +Qt::ItemFlags ServiceModel::flags(const QModelIndex &index) const +{ + return QAbstractListModel::flags(index) | Qt::ItemIsUserCheckable; +} + +#include "moc_servicemodel.cpp"