on xenial help sign in
Initial re-implementation of screenshot logic
commitac73c260cc5b16a77ff562638c6368f11caf4ff6 authorJosh Arenson <joshua.arenson@canonical.com> dateMon 8 Dec 2014, 18:15 (12 years ago) parent562c50e
3 files changed+57−10
qml/Components/PhysicalKeysFilter.qml+43−6 qml/Components/VolumeKeyFilter.qml+4 qml/Shell.qml+10−4
qml/Components/PhysicalKeysFilter.qml+43−6
@@ -36,20 +36,57 @@ import QtQuick 2.0
3636QtObject {
3737 id: root
3838
39− signal volumeUpPressed()
4039 signal volumeDownPressed()
40+ signal volumeUpPressed()
4141 signal screenshotPressed()
4242
43+ property bool powerKeyPressed: false
44+
4345 property bool aVolumeKeyWasReleased: true
4446 property bool volumeDownKeyPressed: false
4547 property bool volumeUpKeyPressed: false
4648
4749 function onKeyPressed(key) {
48− switch(key) {
49− case Qt.Key_VolumeDown:
50− volumeDownKeyPressed = true;
51− case Qt.Key_VolumeUp:
52− volumeUpKeyPressed = true;
50+ if (key == Qt.Key_PowerDown || key == Qt.Key_PowerOff) {
51+ console.log("JOSH: Pressed power key");
52+ powerKeyPressed = true;
53+ }
54+ else if (key == Qt.Key_VolumeDown) {
55+ volumeDownKeyPressed = true;
56+ }
57+ else if (key == Qt.Key_VolumeUp) {
58+ volumeUpKeyPressed = true;
59+ }
60+
61+ if (volumeDownKeyPressed && volumeUpKeyPressed) {
62+ if (aVolumeKeyWasReleased) {
63+ bothVolumeKeysPressed();
64+ }
65+ aVolumeKeyWasReleased = false;
66+ }
67+ else if (volumeDownKeyPressed) {
68+ console.log("JOSH: VolumeDown!");
69+ if (powerKeyPressed) {
70+ console.log("JOSH: TAKE A SCREENSHOT");
71+ }
72+ volumeDownPressed();
73+ }
74+ else if (volumeUpKeyPressed) {
75+ volumeUpPressed();
76+ }
77+ }
78+
79+ function onKeyReleased(key) {
80+ if (key == Qt.Key_PowerDown || key == Qt.Key_PowerOff) {
81+ powerKeyPressed = false;
82+ }
83+ else if (key == Qt.Key_VolumeDown) {
84+ volumeDownKeyPressed = false;
85+ aVolumeKeyWasReleased = false;
86+ }
87+ else if (key == Qt.Key_VolumeUp) {
88+ volumeUpKeyPressed = false;
89+ aVolumeKeyWasReleased = true;
5390 }
5491 }
5592}
qml/Components/VolumeKeyFilter.qml+4
@@ -33,6 +33,10 @@ QtObject {
3333 property bool aVolumeKeyWasReleased: true
3434
3535 function onKeyPressed(key) {
36+ if (key == Qt.Key_PowerOff || key == Qt.Key_PowerDown) {
37+ console.log("JOSH: POWER KEY");
38+ }
39+
3640 if (key == Qt.Key_VolumeUp)
3741 volumeUpKeyPressed = true;
3842 else if (key == Qt.Key_VolumeDown)
qml/Shell.qml+10−4
@@ -156,6 +156,10 @@ Item {
156156
157157 PhysicalKeysFilter {
158158 id: physicalKeysFilter
159+
160+ onVolumeDownPressed: volumeControl.volumeDown()
161+ onVolumeUpPressed: volumeControl.volumeUp()
162+ //onBothVolumeKeysPressed: screenGrabber.capture()
159163 }
160164
161165 ScreenGrabber {
@@ -170,30 +174,32 @@ Item {
170174 value: launcher.shown || launcher.dashSwipe
171175 }
172176
173− VolumeKeyFilter {
177+ /*VolumeKeyFilter {
174178 id: volumeKeyFilter
175179 onVolumeDownPressed: volumeControl.volumeDown()
176180 onVolumeUpPressed: volumeControl.volumeUp()
177181 onBothVolumeKeysPressed: screenGrabber.capture()
178− }
182+ }*/
179183
180184 WindowKeysFilter {
181185 Keys.onPressed: {
186+ physicalKeysFilter.onKeyPressed(event.key);
182187 if (event.key == Qt.Key_PowerOff || event.key == Qt.Key_PowerDown) {
183188 dialogs.onPowerKeyPressed();
184189 event.accepted = true;
185190 } else {
186− volumeKeyFilter.onKeyPressed(event.key);
191+ //volumeKeyFilter.onKeyPressed(event.key);
187192 event.accepted = false;
188193 }
189194 }
190195
191196 Keys.onReleased: {
197+ physicalKeysFilter.onKeyReleased(event.key);
192198 if (event.key == Qt.Key_PowerOff || event.key == Qt.Key_PowerDown) {
193199 dialogs.onPowerKeyReleased();
194200 event.accepted = true;
195201 } else {
196− volumeKeyFilter.onKeyReleased(event.key);
202+ //volumeKeyFilter.onKeyReleased(event.key);
197203 event.accepted = false;
198204 }
199205 }