Warning, /plasma/qqc2-breeze-style/style/impl/Theme.qml is written in an unsupported language. File is not indexed.

0001 /* SPDX-FileCopyrightText: 2023 Devin Lin <devin@kd.org>
0002  * SPDX-License-Identifier: LGPL-2.1-only OR LGPL-3.0-only OR LicenseRef-KDE-Accepted-LGPL
0003  */
0004 
0005 import QtQuick
0006 import org.kde.kirigami as Kirigami
0007 
0008 pragma Singleton
0009 
0010 QtObject {
0011 
0012     // these are functions, not properties because we use Kirigami.Theme, which is context dependent
0013     function separatorColor() {
0014         switch (Kirigami.Theme.colorSet) {
0015             case Kirigami.Theme.Button:
0016                 return separatorColorHelper(Kirigami.Theme.backgroundColor, Kirigami.Theme.textColor, 0.3);
0017             case Kirigami.Theme.Selection:
0018                 return Kirigami.Theme.focusColor;
0019             default:
0020                 return separatorColorHelper(Kirigami.Theme.backgroundColor, Kirigami.Theme.textColor, 0.2);
0021         }
0022     }
0023 
0024     function buttonSeparatorColor() {
0025         return separatorColorHelper(Kirigami.Theme.backgroundColor, Kirigami.Theme.textColor, 0.3);
0026     }
0027 
0028     function separatorColorHelper(bg, fg, baseRatio) {
0029         if (Kirigami.ColorUtils.brightnessForColor(bg) === Kirigami.ColorUtils.Light) {
0030             return Kirigami.ColorUtils.linearInterpolation(bg, fg, baseRatio);
0031         } else {
0032             return Kirigami.ColorUtils.linearInterpolation(bg, fg, baseRatio / 2);
0033         }
0034     }
0035 }