Warning, file /system/kjournald/lib/colorizer.cpp was not indexed or was modified since last indexation (in which case cross-reference links may be missing, inaccurate or erroneous).
0001 /* 0002 SPDX-License-Identifier: LGPL-2.1-or-later OR MIT 0003 SPDX-FileCopyrightText: 2021 Andreas Cord-Landwehr <cordlandwehr@kde.org> 0004 */ 0005 0006 #include "colorizer.h" 0007 #include <QMap> 0008 #include <QRandomGenerator> 0009 0010 struct LineColor { 0011 QColor foreground; 0012 QColor background; 0013 }; 0014 0015 QColor Colorizer::color(const QString &key, COLOR_TYPE type) 0016 { 0017 QColor color; 0018 static QRandomGenerator sFixedSeedGenerator{1}; // used fixed seed to ensure that colors for same units never change 0019 static QMap<QString, LineColor> sUnitToColorMap; 0020 0021 auto needle = sUnitToColorMap.constFind(key); 0022 if (needle != sUnitToColorMap.cend()) { 0023 color = type == COLOR_TYPE::FOREGROUND ? needle->foreground : needle->background; 0024 } else { 0025 int hue = sFixedSeedGenerator.bounded(255); 0026 QColor foreground = QColor::fromHsl(hue, 220, 150); 0027 QColor background = QColor::fromHsl(hue, 200, 220); 0028 sUnitToColorMap[key] = {foreground, background}; 0029 color = type == COLOR_TYPE::FOREGROUND ? foreground : background; 0030 } 0031 return color; 0032 }