1/* 2 * SPDX-FileCopyrightText: 2015 Marco Martin <mart@kde.org> 3 * 4 * SPDX-License-Identifier: LGPL-2.0-or-later 5 */ 6 7import QtQuick 2.7 8import QtQuick.Controls.Material 2.0 9import org.kde.kirigami 2.16 as Kirigami 10 11/** 12 * \internal 13 */ 14Kirigami.BasicThemeDefinition { 15 id: theme 16 //NOTE: this is useless per se, but it forces the Material attached property to be created 17 Material.elevation:2 18 19 textColor: theme.Material.foreground 20 disabledTextColor: "#9931363b" 21 22 highlightColor: theme.Material.accent 23 //FIXME: something better? 24 highlightedTextColor: theme.Material.background 25 backgroundColor: theme.Material.background 26 alternateBackgroundColor: Qt.darker(theme.Material.background, 1.05) 27 28 hoverColor: theme.Material.highlightedButtonColor 29 focusColor: theme.Material.highlightedButtonColor 30 31 activeTextColor: theme.Material.primary 32 activeBackgroundColor: theme.Material.primary 33 linkColor: "#2980B9" 34 linkBackgroundColor: "#2980B9" 35 visitedLinkColor: "#7F8C8D" 36 visitedLinkBackgroundColor: "#7F8C8D" 37 negativeTextColor: "#DA4453" 38 negativeBackgroundColor: "#DA4453" 39 neutralTextColor: "#F67400" 40 neutralBackgroundColor: "#F67400" 41 positiveTextColor: "#27AE60" 42 positiveBackgroundColor: "#27AE60" 43 44 buttonTextColor: theme.Material.foreground 45 buttonBackgroundColor: theme.Material.buttonColor 46 buttonAlternateBackgroundColor: Qt.darker(theme.Material.buttonColor, 1.05) 47 buttonHoverColor: theme.Material.highlightedButtonColor 48 buttonFocusColor: theme.Material.highlightedButtonColor 49 50 viewTextColor: theme.Material.foreground 51 viewBackgroundColor: theme.Material.dialogColor 52 viewAlternateBackgroundColor: Qt.darker(theme.Material.dialogColor, 1.05) 53 viewHoverColor: theme.Material.listHighlightColor 54 viewFocusColor: theme.Material.listHighlightColor 55 56 selectionTextColor: theme.Material.primaryHighlightedTextColor 57 selectionBackgroundColor: theme.Material.textSelectionColor 58 selectionAlternateBackgroundColor: Qt.darker(theme.Material.textSelectionColor, 1.05) 59 selectionHoverColor: theme.Material.highlightedButtonColor 60 selectionFocusColor: theme.Material.highlightedButtonColor 61 62 tooltipTextColor: fontMetrics.Material.foreground 63 tooltipBackgroundColor: fontMetrics.Material.tooltipColor 64 tooltipAlternateBackgroundColor: Qt.darker(theme.Material.tooltipColor, 1.05) 65 tooltipHoverColor: fontMetrics.Material.highlightedButtonColor 66 tooltipFocusColor: fontMetrics.Material.highlightedButtonColor 67 68 complementaryTextColor: fontMetrics.Material.foreground 69 complementaryBackgroundColor: fontMetrics.Material.background 70 complementaryAlternateBackgroundColor: Qt.lighter(fontMetrics.Material.background, 1.05) 71 complementaryHoverColor: theme.Material.highlightedButtonColor 72 complementaryFocusColor: theme.Material.highlightedButtonColor 73 74 headerTextColor: fontMetrics.Material.primaryTextColor 75 headerBackgroundColor: fontMetrics.Material.primaryColor 76 headerAlternateBackgroundColor: Qt.lighter(fontMetrics.Material.primaryColor, 1.05) 77 headerHoverColor: theme.Material.highlightedButtonColor 78 headerFocusColor: theme.Material.highlightedButtonColor 79 80 defaultFont: fontMetrics.font 81 82 property list<QtObject> children: [ 83 TextMetrics { 84 id: fontMetrics 85 //this is to get a source of dark colors 86 Material.theme: Material.Dark 87 } 88 ] 89 90 onSync: { 91 //TODO: actually check if it's a dark or light color 92 if (object.Kirigami.Theme.colorSet === Kirigami.Theme.Complementary) { 93 object.Material.theme = Material.Dark 94 } else { 95 object.Material.theme = Material.Light 96 } 97 98 object.Material.foreground = object.Kirigami.Theme.textColor 99 object.Material.background = object.Kirigami.Theme.backgroundColor 100 object.Material.primary = object.Kirigami.Theme.highlightColor 101 object.Material.accent = object.Kirigami.Theme.highlightColor 102 } 103} 104