2 * Copyright 2014 Canonical Ltd.
4 * This program is free software; you can redistribute it and/or modify
5 * it under the terms of the GNU General Public License as published by
6 * the Free Software Foundation; version 3.
8 * This program is distributed in the hope that it will be useful,
9 * but WITHOUT ANY WARRANTY; without even the implied warranty of
10 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11 * GNU General Public License for more details.
13 * You should have received a copy of the GNU General Public License
14 * along with this program. If not, see <http://www.gnu.org/licenses/>.
19/*! \brief Helper for processing scope customization options.
21 It will take the customizations object passed by the scope and
22 process it to provide the scope UI with data such as colors or
27 /// Style object passed from the scope
28 property var style: Object()
30 /*! \brief Calculate luminance of the passed color
32 \note If not fully opaque, luminance is dependant on blending.
34 function luminance(color) {
35 return 0.2126 * color.r + 0.7152 * color.g + 0.0722 * color.b;
38 /// Color used for text and symbolic icons
39 readonly property color foreground: "foreground-color" in style ? style["foreground-color"] : d.defaultDark
41 /// Luminance of the foreground color
42 readonly property real foregroundLuminance: foreground ? luminance(foreground) : d.defaultForegroundLuminance
44 /// Color used for the overall background
45 readonly property color background: "background-color" in style ? style["background-color"] : "transparent"
47 /// Luminance of the foreground color
48 readonly property real backgroundLuminance: background ? luminance(background) : d.defaultBackgroundLuminance
50 /*! \brief Luminance threshold for switching between fore and background color
52 \note If background colour is not fully opaque, the defaultLightLuminance it's taken into account instead of it.
54 readonly property real threshold: background.a !== 1.0 ? (foregroundLuminance + d.defaultLightLuminance) / 2
55 : (foregroundLuminance + backgroundLuminance) / 2
57 /*! \brief The lighter of foreground and background colors
59 \note If background color is not fully opaque, it's not taken into account
60 and defaults to the theme-provided light color.
62 readonly property color light: {
63 if (background.a !== 1.0) return foregroundLuminance > d.defaultLightLuminance ? foreground : d.defaultLight;
64 return foregroundLuminance > backgroundLuminance ? foreground : background;
67 /*! \brief The darker of foreground and background colors
69 \note If background color is not fully opaque, it's not taken into account
70 and defaults to the theme-provided dark color.
72 readonly property color dark: {
73 if (background.a !== 1.0) return foregroundLuminance < d.defaultDarkLuminance ? foreground : d.defaultDark;
74 return foregroundLuminance < backgroundLuminance ? foreground : background;
77 /// Source of the logo image for the header
78 readonly property url headerLogo: "logo" in d.headerStyle ? d.headerStyle["logo"] : ""
80 /// Background style for the header
81 readonly property url headerBackground: "background" in d.headerStyle ? d.headerStyle["background"] : ""
83 /// Foreground color for the header
84 readonly property color headerForeground: "foreground-color" in d.headerStyle ? d.headerStyle["foreground-color"] : foreground
87 property var d: QtObject {
88 // FIXME: should be taken from the theme
89 readonly property color defaultLight: "white"
90 readonly property color defaultDark: Theme.palette.normal.baseText
91 readonly property real defaultLightLuminance: luminance(defaultLight)
92 readonly property real defaultDarkLuminance: luminance(defaultDark)
94 readonly property var headerStyle: "page-header" in style ? style["page-header"] : { }
keysesc to close
- j k
- move down, up
- enter
- open
- esc
- back, or up a level
- 1 2 3 4
- readme, files, commits, refs
- /
- filter
- y
- copy the clone command
- c
- compare the chosen commit with another (or shift-click both)
- ?
- show or hide this list