/usr/lib/x86_64-linux-gnu/qt5/qml/org/kde/kquickcontrols/ColorButton.qml is in qml-module-org-kde-kquickcontrols 5.44.0-0ubuntu3.
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 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 | /*
* Copyright (C) 2015 David Edmundson <davidedmundson@kde.org>
*
* 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; either version 2 of
* the License or (at your option) version 3 or any later version
* accepted by the membership of KDE e.V. (or its successor approved
* by the membership of KDE e.V.), which shall act as a proxy
* defined in Section 14 of version 3 of the license.
*
* 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.2
import QtQuick.Controls 1.2 as QtControls
import QtQuick.Dialogs 1.0 as QtDialogs
/**
* @short A pushbutton to display or allow user selection of a color.
*
* This widget can be used to display or allow user selection of a color.
*
* @inherits QtQuick.Controls.Button
*/
QtControls.Button {
id: colorPicker
/**
* The user selected color
*/
property alias color: colorDialog.color
/**
* Title to show in the dialog
*/
property alias dialogTitle: colorDialog.title
/**
* The color which the user has currently selected whilst the dialog is open
* For the color that is set when the dialog is accepted, use the color property.
*/
property alias currentColor: colorDialog.currentColor
/**
* Allow the user to configure an alpha value
*/
property alias showAlphaChannel: colorDialog.showAlphaChannel
readonly property real _buttonMarigns: 4 // same as QStyles. Remove if we can get this provided by the QQC theme
implicitWidth: 40 + _buttonMarigns*2 //to perfectly clone kcolorbutton from kwidgetaddons
//create a checkerboard background for alpha to be adjusted
Canvas {
anchors.fill: colorBlock
visible: colorDialog.color.a < 1
onPaint: {
var ctx = getContext('2d');
ctx.fillStyle = "white";
ctx.fillRect(0,0, ctx.width, ctx.height)
ctx.fillStyle = "black";
//in blocks of 16x16 draw two black squares of 8x8 in top left and bottom right
for (var j=0;j<width;j+=16) {
for (var i=0;i<height;i+=16) {
//top left, bottom right
ctx.fillRect(j,i,8,8);
ctx.fillRect(j+8,i+8,8,8);
}
}
}
}
Rectangle {
id: colorBlock
anchors.centerIn: parent
height: parent.height - _buttonMarigns*2
width: parent.width - _buttonMarigns*2
color: enabled ? colorDialog.color : disabledPalette.button
SystemPalette {
id: disabledPalette
colorGroup: SystemPalette.Disabled
}
}
QtDialogs.ColorDialog {
id: colorDialog
}
onClicked: {
colorDialog.open()
}
}
|