Additional user feedback and error handling tweaks. Progress indicators and notificat...
[vlc-remote] / playlistmainwindow.cpp
index 4d8f541..965098d 100644 (file)
@@ -19,6 +19,9 @@
 #include "ui_playlistmainwindow.h"
 #include <QPushButton>
 #include <QSettings>
+#if defined(Q_WS_S60) || defined(Q_WS_MAEMO_5)
+#include <QMaemo5InformationBox>
+#endif
 #include "configdialog.h"
 #include "aboutdialog.h"
 #include "appsettings.h"
@@ -140,11 +143,24 @@ void PlayListMainWindow::requestPlayList() {
   mResponse.clear();
   ui->removeButton->setDisabled(true);
   ui->playButton->setDisabled(true);
+#if defined(Q_WS_S60) || defined(Q_WS_MAEMO_5)
+    this->setAttribute(Qt::WA_Maemo5ShowProgressIndicator, true);
+#endif
   QNetworkReply * reply =  mNetManager->get(QNetworkRequest(QUrl("http://"+mIp+"/requests/playlist.xml")));
   disconnect(mNetManager,SIGNAL(finished(QNetworkReply *)),this,SLOT(requestPlayList()));
   connect(reply,SIGNAL(readyRead()),this,SLOT(readReady()));
+  connect(reply,SIGNAL(error(QNetworkReply::NetworkError)),this,SLOT(error(QNetworkReply::NetworkError)));
   connect(mNetManager,SIGNAL(finished(QNetworkReply *)),this,SLOT(finished(QNetworkReply *)));
 }
+void PlayListMainWindow::error(QNetworkReply::NetworkError code) {
+#if defined(Q_WS_S60) || defined(Q_WS_MAEMO_5)
+    this->setAttribute(Qt::WA_Maemo5ShowProgressIndicator, false);
+#endif
+    qDebug() << code;
+#if defined(Q_WS_S60) || defined(Q_WS_MAEMO_5)
+    QMaemo5InformationBox::information(this, tr("Playlist could not be retrieved."), QMaemo5InformationBox::DefaultTimeout);
+#endif
+}
 void PlayListMainWindow::readReady() {
   QNetworkReply * reply = qobject_cast<QNetworkReply*>(sender());
   // append to buffer
@@ -155,6 +171,9 @@ void PlayListMainWindow::finished(QNetworkReply * reply) {
   this->parseXmlPlayList();
   // only interested in finished signals
   disconnect(mNetManager,SIGNAL(finished(QNetworkReply *)),this,SLOT(finished(QNetworkReply *)));
+#if defined(Q_WS_S60) || defined(Q_WS_MAEMO_5)
+    this->setAttribute(Qt::WA_Maemo5ShowProgressIndicator, false);
+#endif
 }
 
 void PlayListMainWindow::parseXmlPlayList() {
@@ -374,9 +393,9 @@ void PlayListMainWindow::updateList() {
           else if ( 0 == QString::compare(el.extension, "flv")  ) {
               item = new QListWidgetItem(icon_flash, el.name, ui->listWidget, LIST_ITEM_TYPE_OFFSET + el.id); // .flv
           }
-          else if ( 0 == QString::compare(el.extension, "")  ) {
-              item = new QListWidgetItem(icon_unknown, el.name, ui->listWidget, LIST_ITEM_TYPE_OFFSET + el.id); // .flv
-          }
+          //else if ( 0 == QString::compare(el.extension, "")  ) {
+          //    item = new QListWidgetItem(icon_unknown, el.name, ui->listWidget, LIST_ITEM_TYPE_OFFSET + el.id); // .flv
+          //}
           else {
               if (el.name.contains("Flash")) {
                   item = new QListWidgetItem(icon_flash, el.name, ui->listWidget, LIST_ITEM_TYPE_OFFSET + el.id);