]>
cloud.milkyroute.net Git - dolphin.git/blob - src/settings/servicemodel.cpp
2 * SPDX-FileCopyrightText: 2011 Peter Penz <peter.penz19@gmail.com>
4 * SPDX-License-Identifier: GPL-2.0-or-later
7 #include "servicemodel.h"
11 ServiceModel::ServiceModel(QObject
*parent
)
12 : QAbstractListModel(parent
)
17 ServiceModel::~ServiceModel()
21 bool ServiceModel::insertRows(int row
, int count
, const QModelIndex
&parent
)
23 if (row
> rowCount()) {
31 beginInsertRows(parent
, row
, row
+ count
- 1);
32 for (int i
= 0; i
< count
; ++i
) {
34 item
.checked
= Qt::Unchecked
;
35 m_items
.insert(row
, item
);
42 bool ServiceModel::setData(const QModelIndex
&index
, const QVariant
&value
, int role
)
44 const int row
= index
.row();
45 if (row
>= rowCount()) {
50 case Qt::CheckStateRole
:
51 m_items
[row
].checked
= value
.value
<Qt::CheckState
>();
53 case Qt::DecorationRole
:
54 m_items
[row
].icon
= value
.toString();
57 m_items
[row
].text
= value
.toString();
59 case DesktopEntryNameRole
:
60 m_items
[row
].desktopEntryName
= value
.toString();
66 Q_EMIT
dataChanged(index
, index
);
70 QVariant
ServiceModel::data(const QModelIndex
&index
, int role
) const
72 const int row
= index
.row();
73 if (row
< rowCount()) {
75 case Qt::CheckStateRole
:
76 return m_items
[row
].checked
;
77 case Qt::DecorationRole
:
78 return QIcon::fromTheme(m_items
[row
].icon
);
80 return m_items
[row
].text
;
81 case DesktopEntryNameRole
:
82 return m_items
[row
].desktopEntryName
;
91 int ServiceModel::rowCount(const QModelIndex
&parent
) const
94 return m_items
.count();
97 void ServiceModel::clear()
99 beginRemoveRows(QModelIndex(), 0, m_items
.count());
104 Qt::ItemFlags
ServiceModel::flags(const QModelIndex
&index
) const
106 return QAbstractListModel::flags(index
) | Qt::ItemIsUserCheckable
;
109 #include "moc_servicemodel.cpp"