@@ -30,6 +30,7 @@ import Utils 0.1
30import LightDM 0.1 as LightDM
30import LightDM 0.1 as LightDM
31import Powerd 0.1
31import Powerd 0.1
32import SessionBroadcast 0.1
32import SessionBroadcast 0.1
33+import Screenshotter 0.1
33import "Greeter"
34import "Greeter"
34import "Launcher"
35import "Launcher"
35import "Panel"
36import "Panel"
@@ -128,12 +129,18 @@ Item {
128 objectName: "dashCommunicator"
129 objectName: "dashCommunicator"
134+ objectName: "screenShotter"
131 WindowKeysFilter {
137 WindowKeysFilter {
132 // Handle but do not filter out volume keys
138 // Handle but do not filter out volume keys
133 Keys.onVolumeUpPressed: { volumeControl.volumeUp(); event.accepted = false; }
139 Keys.onVolumeUpPressed: { volumeControl.volumeUp(); event.accepted = false; }
134 Keys.onVolumeDownPressed: { volumeControl.volumeDown(); event.accepted = false; }
140 Keys.onVolumeDownPressed: { volumeControl.volumeDown(); event.accepted = false; }
136 Keys.onPressed: {
142 Keys.onPressed: {
143+ screenshotAnimation.onKeyPressed(event.key);
137 if (event.key == Qt.Key_PowerOff || event.key == Qt.Key_PowerDown) {
144 if (event.key == Qt.Key_PowerOff || event.key == Qt.Key_PowerDown) {
138 dialogs.onPowerKeyPressed();
145 dialogs.onPowerKeyPressed();
139 event.accepted = true;
146 event.accepted = true;
@@ -143,6 +150,7 @@ Item {
145 Keys.onReleased: {
152 Keys.onReleased: {
153+ screenshotAnimation.onKeyReleased(event.key);
146 if (event.key == Qt.Key_PowerOff || event.key == Qt.Key_PowerDown) {
154 if (event.key == Qt.Key_PowerOff || event.key == Qt.Key_PowerDown) {
147 dialogs.onPowerKeyReleased();
155 dialogs.onPowerKeyReleased();
148 event.accepted = true;
156 event.accepted = true;
@@ -687,6 +695,65 @@ Item {
701+ id: screenshotAnimation
706+ anchors.fill: parent
711+ property bool volumeUp: false
712+ property bool volumeDown: false
715+ function onKeyPressed(key) {
716+ if (key == Qt.Key_VolumeUp)
717+ state.volumeUp = true;
718+ else if (key == Qt.Key_VolumeDown)
719+ state.volumeDown = true;
720+ if (state.volumeDown && state.volumeUp) {
723+ screenshotFadeIn.start();
727+ function onKeyReleased(key) {
728+ if (key == Qt.Key_VolumeUp)
729+ state.volumeUp = false;
730+ else if (key == Qt.Key_VolumeDown)
731+ state.volumeDown = false;
734+ NumberAnimation on opacity {
735+ id: screenshotFadeIn
739+ if (screenshotAnimation.enabled && screenshotAnimation.visible) {
740+ screenshotFadeOut.start()
745+ NumberAnimation on opacity {
746+ id: screenshotFadeOut
750+ if (screenshotAnimation.enabled && screenshotAnimation.visible) {
751+ screenShotter.takeScreenshot();
752+ screenshotAnimation.enabled = false
753+ screenshotAnimation.visible = false