Fix for Bug [#6295] Application polls vlc server even when the UI is not visible...
authordruid23 <usr@dru-id.co.uk>
Sun, 12 Sep 2010 12:19:53 +0000 (13:19 +0100)
committerdruid23 <usr@dru-id.co.uk>
Sun, 12 Sep 2010 12:19:53 +0000 (13:19 +0100)
modified:   src/playermainwindow.cpp
modified:   src/playermainwindow.h
modified:   src/src.pro

src/playermainwindow.cpp
src/playermainwindow.h
src/src.pro

index 8e16fcc..a2de15d 100644 (file)
@@ -15,7 +15,7 @@
   *   Free Software Foundation, Inc.,
   *   51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
   */
-  #include <QDebug>
+  //#include <QDebug>
   #include <QTime>
   #include <QtGui>
   #include "playermainwindow.h"
   #include "settingsdialog.h"
   #include "appsettings.h"
 #if defined(Q_WS_S60) || defined(Q_WS_MAEMO_5)
-#include <QMaemo5InformationBox>
+  #include <QMaemo5InformationBox>
+  #include <mce/dbus-names.h>
+  #include <mce/mode-names.h>
+  #include <QDBusConnection>
+  #include <QDBusMessage>
+  #include <QDBusInterface>
 #endif
 #include <QMessageBox>
 
+#if defined(Q_WS_S60) || defined(Q_WS_MAEMO_5)
+QDBusConnection PlayerMainWindow::dBusConnection = QDBusConnection::systemBus();
+QDBusInterface* PlayerMainWindow::dBusInterface = new QDBusInterface(MCE_SERVICE, MCE_REQUEST_PATH,
+                                   MCE_REQUEST_IF, dBusConnection);
+#endif
+
   PlayerMainWindow::PlayerMainWindow(QWidget *parent) :
          QMainWindow(parent),
          ui(new Ui::PlayerMainWindow)
@@ -71,6 +82,9 @@
 
 
   #if defined(Q_WS_S60) || defined(Q_WS_MAEMO_5)
+      // Handle screen state on / off
+      dBusConnection.connect(MCE_SERVICE, MCE_SIGNAL_PATH, MCE_SIGNAL_IF,
+                                 MCE_DISPLAY_SIG, this, SLOT(displayStateChanged(const QDBusMessage &)));
 
       mPlayListMainWindow->setParent(this);
       mPlayListMainWindow->setAttribute(Qt::WA_Maemo5StackedWindow, true);
       }
   }
 
+#if defined(Q_WS_S60) || defined(Q_WS_MAEMO_5)
+  void PlayerMainWindow::displayStateChanged(const QDBusMessage &message)
+  {
+      QString state = message.arguments().at(0).toString();
+      if (!state.isEmpty()) {
+          if (state == MCE_DISPLAY_ON_STRING) {
+              mTimer->start(AppSettings::getStatusPollTimeout());
+          }
+          else if (state == MCE_DISPLAY_OFF_STRING) {
+              mTimer->stop();
+          }
+      }
+  }
+#endif
+
   void PlayerMainWindow::showFavourites() {
       mFavouritesMainWindow->show();
       mFavouritesMainWindow->init();
 
   void PlayerMainWindow::askStatus()
   {
-      //qDebug() << "Status requested. at:" << QTime::currentTime().toString("hh::mm:ss");
       if (AppSettings::isConnected()) {
           QNetworkReply * reply =  mNetManager->get(QNetworkRequest(QUrl("http://"+mIp+"/requests/status.xml")));
           connect(reply,SIGNAL(readyRead()),this,SLOT(parseXmlStatus()));
       }
   }
   void PlayerMainWindow::error(QNetworkReply::NetworkError code) {
-      qDebug() << "Error Code: " << code;
+      Q_UNUSED(code);
+      //qDebug() << "Error Code: " << code;
   }
   void PlayerMainWindow::readReady() {
     QNetworkReply * reply = qobject_cast<QNetworkReply*>(sender());
     delete reply;
   }
   void PlayerMainWindow::getCoverArt(int id) {
-      qDebug() << "getCoverArt id=!" << id;
     mResponse.clear();
     QNetworkReply * reply =  mNetManager->get(QNetworkRequest(QUrl("http://"+mIp+"/art?id=" + QString::number(id))));
     connect(reply,SIGNAL(readyRead()),this,SLOT(readReady()));
         }
     }
     else {
-        qDebug() << "image load failed!";
-        qDebug() << "data.length" << data.length();
         ui->labelArtPortrait->setVisible(false);
         ui->labelArtLandscape->setVisible(false);
     }
index 063508d..16ee1fe 100644 (file)
 #include "browsemainwindow.h"
 #include "favouritesmainwindow.h"
 #include "vlcstatus.h"
+#if defined(Q_WS_S60) || defined(Q_WS_MAEMO_5)
+  #include <mce/dbus-names.h>
+  #include <mce/mode-names.h>
+  #include <QDBusConnection>
+  #include <QDBusMessage>
+  #include <QDBusInterface>
+#endif
 
 namespace Ui {
     class PlayerMainWindow;
@@ -38,6 +45,7 @@ public:
     ~PlayerMainWindow();
 
 public slots:
+    void displayStateChanged(const QDBusMessage &message);
     void askStatus();
     void showSettings();
     void showConfig();
@@ -92,7 +100,8 @@ private:
     bool mIsLandscape;
     bool mHasImage;
     bool mIsFirstStatusCall;
-
+    static QDBusConnection dBusConnection;
+    static QDBusInterface* dBusInterface;
 };
 
 #endif // PLAYERMAINWINDOW_H
index a13c497..55d86ca 100644 (file)
@@ -5,7 +5,8 @@ QT += core \
     gui \
     network \
     xml \
-    maemo5
+    maemo5 \
+    dbus
 TARGET = vlc-remote
 TEMPLATE = app
 SOURCES += main.cpp \