File indexing completed on 2025-01-05 04:29:55

0001 /**
0002  * SPDX-FileCopyrightText: 2021 Carl Schwan <carlschwan@kde.org>
0003  * SPDX-FileCopyrightText: 2023 Bart De Vries <bart@mogwai.be>
0004  * SPDX-License-Identifier: LGPL-2.1-or-later
0005  */
0006 
0007 #include <KColorSchemeManager>
0008 #include <QAbstractItemModel>
0009 
0010 #include "colorschemer.h"
0011 
0012 ColorSchemer::ColorSchemer(QObject *parent)
0013     : QObject(parent)
0014     , c(new KColorSchemeManager(this))
0015 {
0016 }
0017 
0018 ColorSchemer &ColorSchemer::instance()
0019 {
0020     static ColorSchemer colorSchemer;
0021     return colorSchemer;
0022 }
0023 
0024 QAbstractItemModel *ColorSchemer::model() const
0025 {
0026     return c->model();
0027 }
0028 
0029 void ColorSchemer::apply(int idx)
0030 {
0031     c->activateScheme(c->model()->index(idx, 0));
0032 }
0033 
0034 void ColorSchemer::apply(const QString &name)
0035 {
0036     c->activateScheme(c->indexForScheme(name));
0037 }
0038 
0039 int ColorSchemer::indexForScheme(const QString &name) const
0040 {
0041     auto index = c->indexForScheme(name).row();
0042     if (index == -1) {
0043         index = 0;
0044     }
0045     return index;
0046 }
0047 
0048 QString ColorSchemer::nameForIndex(int index) const
0049 {
0050     return c->model()->data(c->model()->index(index, 0), Qt::DisplayRole).toString();
0051 }