File indexing completed on 2025-04-27 04:08:14

0001 /*
0002  * This file is part of the KDE project
0003  * SPDX-FileCopyrightText: 2014 Arjen Hiemstra <ahiemstra@heimr.nl>
0004  *
0005  * SPDX-License-Identifier: GPL-2.0-or-later
0006  */
0007 
0008 #include "ColorModelModel.h"
0009 #include <libs/pigment/KoColorSpaceRegistry.h>
0010 
0011 class ColorModelModel::Private
0012 {
0013 public:
0014     Private() { }
0015 
0016     QList<KoID> colorModels;
0017 };
0018 
0019 ColorModelModel::ColorModelModel(QObject* parent)
0020     : QAbstractListModel(parent), d(new Private)
0021 {
0022     d->colorModels = KoColorSpaceRegistry::instance()->colorModelsList(KoColorSpaceRegistry::OnlyUserVisible);
0023 }
0024 
0025 ColorModelModel::~ColorModelModel()
0026 {
0027     delete d;
0028 }
0029 
0030 QHash<int, QByteArray> ColorModelModel::roleNames() const
0031 {
0032     QHash<int, QByteArray> roleNames;
0033     roleNames.insert(TextRole, "text");
0034 
0035     return roleNames;
0036 }
0037 
0038 int ColorModelModel::rowCount(const QModelIndex& parent) const
0039 {
0040     Q_UNUSED(parent);
0041     return d->colorModels.count();
0042 }
0043 
0044 QVariant ColorModelModel::data(const QModelIndex& index, int role) const
0045 {
0046     if(!index.isValid() || index.row() < 0 || index.row() >= d->colorModels.count())
0047     {
0048         return QVariant();
0049     }
0050 
0051     if( role == TextRole )
0052         return d->colorModels.at(index.row()).name();
0053 
0054     return QVariant();
0055 }
0056 
0057 QString ColorModelModel::id(int index)
0058 {
0059     if(index < 0 || index >= d->colorModels.count())
0060         return QString();
0061 
0062     return d->colorModels.at(index).id();
0063 }
0064 
0065 int ColorModelModel::indexOf(const QString& id)
0066 {
0067     return d->colorModels.indexOf(KoID(id));
0068 }