Просмотр исходного кода

Windows: Log change of power state

Daniel Molkentin 12 лет назад
Родитель
Сommit
0c959e8661
2 измененных файлов с 33 добавлено и 0 удалено
  1. 28 0
      src/mirall/application.cpp
  2. 5 0
      src/mirall/application.h

+ 28 - 0
src/mirall/application.cpp

@@ -34,6 +34,10 @@
 
 #include "mirall/inotify.h"
 
+#if defined(Q_OS_WIN)
+#include <windows.h>
+#endif
+
 #include <QtCore>
 #include <QtGui>
 #include <QHash>
@@ -1024,6 +1028,30 @@ void Application::setHelp()
     _helpOnly = true;
 }
 
+#if defined(Q_OS_WIN)
+bool Application::winEventFilter(MSG *pMsg, long *result)
+{
+    if (pMsg->message == WM_POWERBROADCAST) {
+        switch(pMsg->wParam) {
+        case PBT_APMPOWERSTATUSCHANGE:
+            qDebug() << "WM_POWERBROADCAST: Power state changed";
+            break;
+        case PBT_APMSUSPEND:
+            qDebug() << "WM_POWERBROADCAST: Entering low power state";
+            break;
+        case PBT_APMRESUMEAUTOMATIC:
+            qDebug() << "WM_POWERBROADCAST: Resuming from low power state";
+            break;
+        default:
+            break;
+        }
+        return true;
+    }
+
+    SharedTools::QtSingleApplication::winEventFilter(pMsg, result);
+}
+#endif
+
 QString substLang(const QString &lang)
 {
     // Map the more apropriate script codes

+ 5 - 0
src/mirall/application.h

@@ -84,6 +84,11 @@ protected:
     //folders have to be disabled while making config changes
     void computeOverallSyncStatus();
 
+    // reimplemented
+#if defined(Q_WS_WIN)
+    bool winEventFilter( MSG * message, long * result );
+#endif
+
 protected slots:
     void slotTrayClicked( QSystemTrayIcon::ActivationReason );
     void slotFolderOpenAction(const QString & );