-
Notifications
You must be signed in to change notification settings - Fork 1
/
MainPage.qml
123 lines (111 loc) · 3.92 KB
/
MainPage.qml
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
/*******************************************************************************
**
** Copyright (C) 2022 ru.auroraos
**
** This file is part of the Фонарик для F+ R570Е project.
**
** Redistribution and use in source and binary forms,
** with or without modification, are permitted provided
** that the following conditions are met:
**
** * Redistributions of source code must retain the above copyright notice,
** this list of conditions and the following disclaimer.
** * Redistributions in binary form must reproduce the above copyright notice,
** this list of conditions and the following disclaimer
** in the documentation and/or other materials provided with the distribution.
** * Neither the name of the copyright holder nor the names of its contributors
** may be used to endorse or promote products derived from this software
** without specific prior written permission.
**
** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
** AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
** THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
** FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
** IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
** FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY,
** OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
** PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
** LOSS OF USE, DATA, OR PROFITS;
** OR BUSINESS INTERRUPTION)
** HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
** WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
** (INCLUDING NEGLIGENCE OR OTHERWISE)
** ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
** EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
**
*******************************************************************************/
import QtQuick 2.0
import Sailfish.Silica 1.0
import Nemo.DBus 2.0
import QtMultimedia 5.6
Page {
property bool flashlightOn
objectName: "mainPage"
allowedOrientations: Orientation.All
PageHeader {
id: header
objectName: "pageHeader"
title: qsTr("PPT Фонарик")
extraContent.children: [
IconButton {
objectName: "aboutButton"
icon.source: "image://theme/icon-m-about"
anchors.verticalCenter: parent.verticalCenter
onClicked: pageStack.push(Qt.resolvedUrl("AboutPage.qml"))
}
]
}
Image {
id: image
anchors {
horizontalCenter: parent.horizontalCenter
verticalCenter: parent.verticalCenter
}
sourceSize.width: page.width
fillMode: Image.PreserveAspectFit
source: "../flashlight.png"
}
Button {
id: action
anchors{
top: image.bottom
horizontalCenter: parent.horizontalCenter
}
text: flashlightOn ? qsTr("ВКЛ") : qsTr("ВЫКЛ")
onClicked: {
toggleFlashlight()
}
}
function toggleFlashlight() {
flashlightOn = !flashlightOn;
flashlight.typedCall("toggleFlashlight",[],function (result) {
console.log('toggleFlashlight success: ' + result);
},function (error) {
console.log('toggleFlashlight error: ' + error)
} );
}
BackgroundItem {
DBusInterface {
id: flashlight
service: 'com.jolla.settings.system.flashlight'
iface: 'com.jolla.settings.system.flashlight'
path: '/com/jolla/settings/system/flashlight'
bus: DBus.SessionBus
signalsEnabled: true
function flashlightOnChanged(stateOn) {
flashlightOn = stateOn
}
}
Component.onCompleted: {
flashlightOn = flashlight.getProperty("flashlightOn")
}
}
Connections{
target: ppt
onTogglePptState: {
if (state === 1){
toggleFlashlight()
}
}
}
}