Additional user feedback and error handling tweaks. Progress indicators and notificat...
authordruid23 <usr@dru-id.co.uk>
Sat, 21 Aug 2010 20:35:41 +0000 (21:35 +0100)
committerdruid23 <usr@dru-id.co.uk>
Sat, 21 Aug 2010 20:35:41 +0000 (21:35 +0100)
modified:   browsemainwindow.cpp
modified:   playlistmainwindow.cpp
modified:   playlistmainwindow.h

browsemainwindow.cpp
playlistmainwindow.cpp
playlistmainwindow.h

index 27b84b2..51437de 100644 (file)
@@ -160,14 +160,14 @@ void BrowseMainWindow::onBrowse() {
 
 void BrowseMainWindow::onAddToPlaylist() {
     QUrl url = QUrl("http://"+mIp+"/requests/status.xml?command=in_enqueue");
-    url.addEncodedQueryItem(QByteArray("input"), QUrl::toPercentEncoding(mCurrentElement.path.replace("\\", "\\\\")));
+    url.addEncodedQueryItem(QByteArray("input"), QUrl::toPercentEncoding(mCurrentElement.path.replace("\\", "\\\\").replace("'", "\\'")));
     mNetManager->get(QNetworkRequest(url));
     //mNetManager->get(QNetworkRequest(QUrl("http://"+mIp+"/requests/status.xml?command=in_enqueue&input=" + mCurrentElement.path.replace("\\", "\\\\"))));
 }
 
 void BrowseMainWindow::onPlay() {
     QUrl url = QUrl("http://"+mIp+"/requests/status.xml?command=in_play");
-    url.addEncodedQueryItem(QByteArray("input"), QUrl::toPercentEncoding(mCurrentElement.path.replace("\\", "\\\\")));
+    url.addEncodedQueryItem(QByteArray("input"), QUrl::toPercentEncoding(mCurrentElement.path.replace("\\", "\\\\").replace("'", "\\'")));
     mNetManager->get(QNetworkRequest(url));
     //mNetManager->get(QNetworkRequest(QUrl("http://"+mIp+"/requests/status.xml?command=in_play&input=" + mCurrentElement.path.replace("\\", "\\\\"))));
 }
@@ -178,11 +178,17 @@ void BrowseMainWindow::browseDirectory(QString dir) {
     url.addEncodedQueryItem(QByteArray("dir"), QUrl::toPercentEncoding(dir));
     QNetworkReply * reply = mNetManager->get(QNetworkRequest(url));
     //QNetworkReply * reply =  mNetManager->get(QNetworkRequest(QUrl("http://"+mIp+"/requests/browse.xml?dir=" + dir.replace("&", "%26").replace("\\", "\\\\"))));
+#if defined(Q_WS_S60) || defined(Q_WS_MAEMO_5)
+    this->setAttribute(Qt::WA_Maemo5ShowProgressIndicator, true);
+#endif
     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 BrowseMainWindow::error(QNetworkReply::NetworkError code) {
+#if defined(Q_WS_S60) || defined(Q_WS_MAEMO_5)
+    this->setAttribute(Qt::WA_Maemo5ShowProgressIndicator, false);
+#endif
     qDebug() << code;
 }
 void BrowseMainWindow::readReady() {
@@ -195,6 +201,9 @@ void BrowseMainWindow::finished(QNetworkReply * reply) {
     this->parseXmlDirectory();
     // 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 BrowseMainWindow::parseXmlDirectory() {
     QDomDocument doc;
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);
index 55ecd06..6341fb6 100644 (file)
@@ -50,6 +50,7 @@ public slots:
     void onListSelectionChanged();
     void finished(QNetworkReply * reply);
     void readReady();
+    void error(QNetworkReply::NetworkError code);
     void showPlayList();
     void updateUiWithCurrentStatus(VlcStatus * status);