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 }