1 /*
2     SPDX-FileCopyrightText: 2019 Benjamin Port <benjamin.port@enioka.com>
3 
4     SPDX-License-Identifier: GPL-2.0-or-later
5 */
6 
7 #include "iconsizecategorymodel.h"
8 #include <KIconLoader>
9 #include <KLocalizedString>
10 
IconSizeCategoryModel(QObject * parent)11 IconSizeCategoryModel::IconSizeCategoryModel(QObject *parent)
12     : QAbstractListModel(parent)
13     , m_data({
14           {QStringLiteral("toolbarSize"), i18n("Toolbar"), QStringLiteral("Toolbar"), KIconLoader::Toolbar},
15           {QStringLiteral("mainToolbarSize"), i18n("Main Toolbar"), QStringLiteral("MainToolbar"), KIconLoader::MainToolbar},
16           {QStringLiteral("smallSize"), i18n("Small Icons"), QStringLiteral("Small"), KIconLoader::Small},
17           {QStringLiteral("panelSize"), i18n("Panel"), QStringLiteral("Panel"), KIconLoader::Panel},
18           {QStringLiteral("dialogSize"), i18n("Dialogs"), QStringLiteral("Dialog"), KIconLoader::Dialog},
19       })
20 {
21 }
22 
23 IconSizeCategoryModel::~IconSizeCategoryModel() = default;
24 
rowCount(const QModelIndex & parent) const25 int IconSizeCategoryModel::rowCount(const QModelIndex &parent) const
26 {
27     if (parent.isValid()) {
28         return 0;
29     }
30 
31     return m_data.count();
32 }
33 
data(const QModelIndex & index,int role) const34 QVariant IconSizeCategoryModel::data(const QModelIndex &index, int role) const
35 {
36     if (!index.isValid() || index.row() >= m_data.count()) {
37         return QVariant();
38     }
39 
40     const auto &item = m_data.at(index.row());
41 
42     switch (role) {
43     case Qt::DisplayRole:
44         return item.display;
45     case ConfigKeyRole:
46         return item.configKey;
47     case ConfigSectionRole:
48         return item.configSection;
49     case KIconLoaderGroupRole:
50         return item.kIconloaderGroup;
51     }
52 
53     return QVariant();
54 }
55 
roleNames() const56 QHash<int, QByteArray> IconSizeCategoryModel::roleNames() const
57 {
58     QHash<int, QByteArray> roleNames = QAbstractListModel::roleNames();
59     roleNames[ConfigKeyRole] = QByteArrayLiteral("configKey");
60     roleNames[ConfigSectionRole] = QByteArrayLiteral("configSectionRole");
61     roleNames[KIconLoaderGroupRole] = QByteArrayLiteral("KIconLoaderGroup");
62     return roleNames;
63 }
64