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 /// Color used for the overall background
42 readonly property color background: "background-color" in style ? style["background-color"] : "transparent"
44 /*! \brief Luminance threshold for switching between fore and background color
46 \note If background colour is not fully opaque, the defaultLightLuminance it's taken into account instead of it.
48 readonly property real threshold: background.a !== 1.0 ? (d.foregroundLuminance + d.defaultLightLuminance) / 2: (d.foregroundLuminance + d.backgroundLuminance) / 2
50 /*! \brief The lighter of foreground and background colors
52 \note If background color is not fully opaque, it's not taken into account
53 and defaults to the theme-provided light color.
55 readonly property color light: {
56 if (background.a !== 1.0) return d.foregroundLuminance > d.defaultLightLuminance ? foreground : d.defaultLight;
57 return d.foregroundLuminance > d.backgroundLuminance ? foreground : background;
60 /*! \brief The darker of foreground and background colors
62 \note If background color is not fully opaque, it's not taken into account
63 and defaults to the theme-provided dark color.
65 readonly property color dark: {
66 if (background.a !== 1.0) return d.foregroundLuminance < d.defaultDarkLuminance ? foreground : d.defaultDark;
67 return d.foregroundLuminance < d.backgroundLuminance ? foreground : background;
70 /// Source of the logo image for the header
71 readonly property url headerLogo: "logo" in d.headerStyle ? d.headerStyle["logo"] : ""
73 /// Background style for the header
74 readonly property url headerBackground: "background" in d.headerStyle ? d.headerStyle["background"] : ""
76 /// Foreground color for the header
77 readonly property color headerForeground: "foreground-color" in d.headerStyle ? d.headerStyle["foreground-color"] : foreground
80 property var d: QtObject {
81 readonly property real foregroundLuminance: luminance(foreground)
82 readonly property real backgroundLuminance: luminance(background)
84 // FIXME: should be taken from the theme
85 readonly property color defaultLight: "white"
86 readonly property color defaultDark: "grey"
87 readonly property real defaultLightLuminance: luminance(defaultLight)
88 readonly property real defaultDarkLuminance: luminance(defaultDark)
90 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