Playlist tweak - minimizing impact of refresh on the UI.
[vlc-remote] / playlistmainwindow.cpp
index 965098d..ca4ce3b 100644 (file)
@@ -138,8 +138,6 @@ void PlayListMainWindow::onClear() {
     connect(mNetManager,SIGNAL(finished(QNetworkReply *)),this,SLOT(requestPlayList()));
 }
 void PlayListMainWindow::requestPlayList() {
-  mContents->clear();
-  ui->listWidget->clear();
   mResponse.clear();
   ui->removeButton->setDisabled(true);
   ui->playButton->setDisabled(true);
@@ -177,6 +175,7 @@ void PlayListMainWindow::finished(QNetworkReply * reply) {
 }
 
 void PlayListMainWindow::parseXmlPlayList() {
+  mContents->clear();
   QDomDocument doc;
   doc.setContent(this->mResponse);
   QDomElement docElem = doc.documentElement();
@@ -298,7 +297,10 @@ void PlayListMainWindow::parsePlayListItem(QDomNode *node, QString *extension, b
         else {
             el->type = "node";
             el->extension = getExtension(el->path, NULL);
-            this->mContents->append(*el);
+            // empty nodes appear in the playlist when they can't be played!
+            if (node->hasChildNodes()) {
+                this->mContents->append(*el);
+            }
             delete el;
             // now parse the child nodes as leaf.
             if (node->hasChildNodes()) {
@@ -343,6 +345,7 @@ VlcPlayListElementSimple PlayListMainWindow::getElementFromText(QString text) {
 }
 
 void PlayListMainWindow::updateList() {
+  ui->listWidget->clear();
   int ct = this->mContents->count();
   if (0 < ct) {
     QIcon icon_audio  = QIcon::fromTheme("general_audio_file");