/usr/lib/x86_64-linux-gnu/qt5/qml/Ubuntu/Components/1.0/Icon.qml is in qml-module-ubuntu-components 1.3.1918+16.04.20160404-0ubuntu1.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 | /*
* Copyright (C) 2014 Canonical, Ltd.
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; version 3.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
import QtQuick 2.4
Item {
id: icon
property string name
/*!
\qmlproperty color color
*/
property alias color: colorizedImage.keyColorOut
/*!
\qmlproperty color keyColor
*/
property alias keyColor: colorizedImage.keyColorIn
implicitWidth: image.implicitWidth
implicitHeight: image.implicitHeight
Image {
id: image
objectName: "image"
anchors.fill: parent
fillMode: Image.PreserveAspectFit
sourceSize {
width: icon.width
height: icon.height
}
source: {
if (icon.hasOwnProperty("source"))
return icon.source;
else if (icon.name)
return "image://theme/%1".arg(icon.name);
else
return "";
}
cache: true
visible: !colorizedImage.visible
}
ShaderEffect {
id: colorizedImage
objectName: "shader"
anchors.fill: parent
// Whether or not a color has been set.
visible: image.status == Image.Ready && keyColorOut != Qt.rgba(0.0, 0.0, 0.0, 0.0)
property Image source: image
property color keyColorOut: Qt.rgba(0.0, 0.0, 0.0, 0.0)
property color keyColorIn: "#808080"
property real threshold: 0.1
fragmentShader: "
varying highp vec2 qt_TexCoord0;
uniform sampler2D source;
uniform highp vec4 keyColorOut;
uniform highp vec4 keyColorIn;
uniform lowp float threshold;
uniform lowp float qt_Opacity;
void main() {
lowp vec4 sourceColor = texture2D(source, qt_TexCoord0);
gl_FragColor = mix(vec4(keyColorOut.rgb, 1.0) * sourceColor.a, sourceColor, step(threshold, distance(sourceColor.rgb / sourceColor.a, keyColorIn.rgb))) * qt_Opacity;
}"
}
}
|