From 7f58e62f12987fc0f5bdf2f896bbdaaeb748a676 Mon Sep 17 00:00:00 2001 From: druid23 Date: Sat, 21 Aug 2010 21:35:41 +0100 Subject: [PATCH] Additional user feedback and error handling tweaks. Progress indicators and notifications. modified: browsemainwindow.cpp modified: playlistmainwindow.cpp modified: playlistmainwindow.h --- browsemainwindow.cpp | 13 +++++++++++-- playlistmainwindow.cpp | 25 ++++++++++++++++++++++--- playlistmainwindow.h | 1 + 3 files changed, 34 insertions(+), 5 deletions(-) diff --git a/browsemainwindow.cpp b/browsemainwindow.cpp index 27b84b2..51437de 100644 --- a/browsemainwindow.cpp +++ b/browsemainwindow.cpp @@ -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; diff --git a/playlistmainwindow.cpp b/playlistmainwindow.cpp index 4d8f541..965098d 100644 --- a/playlistmainwindow.cpp +++ b/playlistmainwindow.cpp @@ -19,6 +19,9 @@ #include "ui_playlistmainwindow.h" #include #include +#if defined(Q_WS_S60) || defined(Q_WS_MAEMO_5) +#include +#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(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); diff --git a/playlistmainwindow.h b/playlistmainwindow.h index 55ecd06..6341fb6 100644 --- a/playlistmainwindow.h +++ b/playlistmainwindow.h @@ -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); -- 1.7.9.5