@@ -30,63 +30,60 @@ import QtQuick 2.0
36− signal bothVolumeKeysPressed();
37 signal powerKeyLongPress();
36 signal powerKeyLongPress();
38 signal screenshotPressed();
37 signal screenshotPressed();
39 signal volumeDownPressed();
38 signal volumeDownPressed();
40 signal volumeUpPressed();
39 signal volumeUpPressed();
42− property bool aPowerKeyWasReleased: true
41+ QtObject {
43− property bool powerKeyPressed: false
42+ id: d
45− property bool aVolumeKeyWasReleased: true
44+ property bool aPowerKeyWasReleased: true
45+ property bool powerKeyPressed: false
46− property bool volumeDownKeyPressed: false
47+ property bool volumeDownKeyPressed: false
47− property bool volumeUpKeyPressed: false
48+ property bool volumeUpKeyPressed: false
49 // FIXME: event.isAutoRepeat is always false on Nexus 4.
51 // FIXME: event.isAutoRepeat is always false on Nexus 4.
50 // So we use powerKeyTimer.running to avoid the PowerOff key repeat
52 // So we use powerKeyTimer.running to avoid the PowerOff key repeat
51 // https://launchpad.net/bugs/1349416
53 // https://launchpad.net/bugs/1349416
52− property variant pklpt: Timer {
54+ Timer {
53 id: powerKeyLongPressTimer
55 id: powerKeyLongPressTimer
55 interval: 2000
57 interval: 2000
56 repeat: false
58 repeat: false
57 triggeredOnStart: false
59 triggeredOnStart: false
59 onTriggered: powerKeyLongPress();
60 onTriggered: powerKeyLongPress();
62 function onKeyPressed(key) {
64 function onKeyPressed(key) {
63 /* Determine what key was pressed */
65 /* Determine what key was pressed */
64 if (key == Qt.Key_PowerDown || key == Qt.Key_PowerOff) {
66 if (key == Qt.Key_PowerDown || key == Qt.Key_PowerOff) {
65 if (!powerKeyLongPressTimer.running) {
67 if (!powerKeyLongPressTimer.running) {
66 powerKeyLongPressTimer.restart();
68 powerKeyLongPressTimer.restart();
68− powerKeyPressed = true;
70+ d.powerKeyPressed = true;
69 } else if (key == Qt.Key_VolumeDown) {
71 } else if (key == Qt.Key_VolumeDown) {
70− volumeDownKeyPressed = true;
72+ d.volumeDownKeyPressed = true;
71 } else if (key == Qt.Key_VolumeUp) {
73 } else if (key == Qt.Key_VolumeUp) {
72− volumeUpKeyPressed = true;
74+ d.volumeUpKeyPressed = true;
75 /* Determine how to handle it */
77 /* Determine how to handle it */
76− if (volumeDownKeyPressed && volumeUpKeyPressed) {
77− if (aVolumeKeyWasReleased) {
78− bothVolumeKeysPressed();
80− aVolumeKeyWasReleased = false;
81− } else if (volumeDownKeyPressed) {
78+ if (d.volumeDownKeyPressed) {
82− if (powerKeyPressed && aPowerKeyWasReleased) {
79+ if (d.powerKeyPressed && d.aPowerKeyWasReleased) {
83 screenshotPressed();
80 screenshotPressed();
84− aPowerKeyWasReleased = false;
81+ d.aPowerKeyWasReleased = false;
85 // Don't emit volumeDownPressed if power key is held
82 // Don't emit volumeDownPressed if power key is held
86− } else if (aPowerKeyWasReleased){
83+ } else if (d.aPowerKeyWasReleased){
87 volumeDownPressed();
84 volumeDownPressed();
89− } else if (volumeUpKeyPressed) {
86+ } else if (d.volumeUpKeyPressed) {
90 volumeUpPressed();
87 volumeUpPressed();
@@ -94,14 +91,12 @@ QtObject {
94 function onKeyReleased(key) {
91 function onKeyReleased(key) {
95 if (key == Qt.Key_PowerDown || key == Qt.Key_PowerOff) {
92 if (key == Qt.Key_PowerDown || key == Qt.Key_PowerOff) {
96 powerKeyLongPressTimer.stop();
93 powerKeyLongPressTimer.stop();
97− powerKeyPressed = false;
94+ d.powerKeyPressed = false;
98− aPowerKeyWasReleased = true;
95+ d.aPowerKeyWasReleased = true;
99 } else if (key == Qt.Key_VolumeDown) {
96 } else if (key == Qt.Key_VolumeDown) {
100− volumeDownKeyPressed = false;
97+ d.volumeDownKeyPressed = false;
101− aVolumeKeyWasReleased = false;
102 } else if (key == Qt.Key_VolumeUp) {
98 } else if (key == Qt.Key_VolumeUp) {
103− volumeUpKeyPressed = false;
99+ d.volumeUpKeyPressed = false;
104− aVolumeKeyWasReleased = true;