/usr/share/webcamoid/qml/OptionList.qml is in webcamoid-data 8.1.0+dfsg-7.
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 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 | /* Webcamoid, webcam capture application.
* Copyright (C) 2011-2017 Gonzalo Exequiel Pedone
*
* Webcamoid 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 3 of the License, or
* (at your option) any later version.
*
* Webcamoid 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 Webcamoid. If not, see <http://www.gnu.org/licenses/>.
*
* Web-Site: http://webcamoid.github.io/
*/
import QtQuick 2.5
import QtQuick.Controls 1.4
ListView {
id: lsvOptionList
width: 400
height: 400
clip: true
property string filter: ""
property string textRole: ""
function optionValues(index)
{
if (index < 0 || index >= lsvOptionList.count)
return []
var values = []
var option = lstOptions.get(index)
for (var key in option)
if (option[key] && typeof option[key] != "function")
values.push(String(option[key]))
return values
}
model: ListModel {
id: lstOptions
}
delegate: Rectangle {
id: rectOption
height: visible? 32: 0
anchors.right: parent.right
anchors.left: parent.left
visible: Webcamoid.matches(filter, optionValues(index))
property color gradUp: Qt.rgba(0, 0, 0, 0)
property color gradLow: Qt.rgba(0, 0, 0, 0)
gradient: Gradient {
GradientStop {
position: 0
color: rectOption.gradUp
}
GradientStop {
position: 1
color: rectOption.gradLow
}
}
Label {
id: txtOptionText
text: index >= 0 && index < lsvOptionList.count?
lsvOptionList.model.get(index)[lsvOptionList.textRole]: ""
anchors.verticalCenter: parent.verticalCenter
anchors.horizontalCenter: parent.horizontalCenter
}
MouseArea {
id: msaOption
hoverEnabled: true
cursorShape: Qt.PointingHandCursor
anchors.fill: parent
onEntered: {
txtOptionText.font.bold = true
if (index == lsvOptionList.currentIndex) {
rectOption.gradUp = Qt.rgba(0.25, 0.75, 1, 1)
rectOption.gradLow = Qt.rgba(0, 0.5, 1, 1)
} else {
rectOption.gradUp = Qt.rgba(0.67, 0.5, 1, 0.5)
rectOption.gradLow = Qt.rgba(0.5, 0.25, 1, 1)
}
}
onExited: {
txtOptionText.font.bold = false
txtOptionText.scale = 1
rectOption.gradUp = Qt.rgba(0, 0, 0, 0)
rectOption.gradLow = Qt.rgba(0, 0, 0, 0)
}
onPressed: txtOptionText.scale = 0.75
onReleased: txtOptionText.scale = 1
onClicked: {
rectOption.gradUp = Qt.rgba(0.25, 0.75, 1, 1)
rectOption.gradLow = Qt.rgba(0, 0.5, 1, 1)
lsvOptionList.currentIndex = index
lsvOptionList.positionViewAtIndex(index, ListView.Contain)
}
}
}
highlight: Rectangle {
gradient: Gradient {
GradientStop {
position: 0
color: Qt.rgba(1, 0.75, 0.25, 1)
}
GradientStop {
position: 1
color: Qt.rgba(1, 0.5, 0, 1)
}
}
}
}
|