From: druid23 Date: Mon, 16 Aug 2010 21:29:33 +0000 (+0100) Subject: modified: browsemainwindow.cpp X-Git-Tag: v0.5~52 X-Git-Url: https://vcs.maemo.org/git/?p=vlc-remote;a=commitdiff_plain;h=60b3d4ea6aba9d95da33830baed530cfe29418cd modified: browsemainwindow.cpp modified: browsemainwindow.ui modified: playermainwindow.ui modified: playlistmainwindow.cpp modified: playlistmainwindow.ui Fixed a couple of minor memory leaks. Removed an unused status var from each of the 3 main UIs. Relayed out Playlist window for clarity on destructive actions. Improved bwose list widget sorting to folder alpha, then file alpha. --- diff --git a/browsemainwindow.cpp b/browsemainwindow.cpp index c561533..7bb6cbb 100644 --- a/browsemainwindow.cpp +++ b/browsemainwindow.cpp @@ -18,7 +18,6 @@ #include "browsemainwindow.h" #include "ui_browsemainwindow.h" #include -#include #include "configdialog.h" #include "aboutdialog.h" #include "vlcbrowseelement.h" @@ -34,13 +33,12 @@ BrowseMainWindow::BrowseMainWindow(QWidget *parent) : setWindowTitle("Vlc remote"); QSettings settings; - - QString currentKey = settings.value("config/currentKey").toString(); - mIp = settings.value("account/"+currentKey).toString(); - + mIp = settings.value("ip").toString(); mNetManager = new QNetworkAccessManager(this); + mContents = new QList(); + ui->playButton->setIcon(QIcon::fromTheme("camera_playback")); ui->addButton->setIcon(QIcon::fromTheme("general_add")); ui->browseButton->setIcon(QIcon::fromTheme("filemanager_media_folder")); @@ -102,11 +100,11 @@ void BrowseMainWindow::onListSelectionChanged() { VlcBrowseElement BrowseMainWindow::getElementFromText(QString text) { //if (0 != QString::compare("", text)) { - for (int idx = 0; idx < mContents->count(); ++idx) { - if (0 == QString::compare(text, mContents->at(idx).name)) { - return mContents->at(idx); + for (int idx = 0; idx < mContents->count(); ++idx) { + if (0 == QString::compare(text, mContents->at(idx).name)) { + return mContents->at(idx); + } } - } //} return *(new VlcBrowseElement()); } @@ -117,15 +115,18 @@ void BrowseMainWindow::onBrowse() { // call browseDirectory this->browseDirectory(mCurrentElement.path); } + else { + ui->browseButton->setDisabled(true); + } } void BrowseMainWindow::onAddToPlaylist() { /*QNetworkReply * reply = */ mNetManager->get(QNetworkRequest(QUrl("http://"+mIp+"/requests/status.xml?command=in_enqueue&input=" + mCurrentElement.path))); - } +} void BrowseMainWindow::onPlay() { /*QNetworkReply * reply = */ mNetManager->get(QNetworkRequest(QUrl("http://"+mIp+"/requests/status.xml?command=in_play&input=" + mCurrentElement.path))); - } +} void BrowseMainWindow::browseDirectory(QString dir) { ui->listWidget->clear(); @@ -133,12 +134,17 @@ void BrowseMainWindow::browseDirectory(QString dir) { connect(reply,SIGNAL(readyRead()),this,SLOT(parseXmlDirectory())); } void BrowseMainWindow::parseXmlDirectory() { + qDebug() << "got called!"; QNetworkReply * reply = qobject_cast(sender()); QDomDocument doc; doc.setContent(reply->readAll()); QDomElement docElem = doc.documentElement(); QDomNodeList elements = docElem.elementsByTagName("element"); - mContents = new QList(); + mContents->clear(); + //mContents = new QList(); + // we can sort by filders then files alphabetically by running to lists and appending them at the end + // vlc alpha sorts everything in the incoming stream, we just need to seperate files from folders. + QList* files = new QList(); if (0 < elements.count()) { int idx = 0; do { @@ -151,9 +157,20 @@ void BrowseMainWindow::parseXmlDirectory() { dir->name = node.attributes().namedItem("name").nodeValue(); dir->extension = node.attributes().namedItem("extension").nodeValue(); ++idx; - this->mContents->append(*dir); + if (0 != QString::compare("directory", dir->type)) { + files->append(*dir); + } + else { + this->mContents->append(*dir); + } + delete dir; } while (idx < elements.count()); + if (0 < files->count()) { + mContents->append(*files); + } } + delete files; + //reply->deleteLater(); delete reply; // Update UI diff --git a/browsemainwindow.ui b/browsemainwindow.ui index 0b3b7a8..6153415 100644 --- a/browsemainwindow.ui +++ b/browsemainwindow.ui @@ -64,7 +64,6 @@ - configuration diff --git a/playermainwindow.ui b/playermainwindow.ui index 06765a4..7907b1c 100644 --- a/playermainwindow.ui +++ b/playermainwindow.ui @@ -182,7 +182,6 @@ - Configuration diff --git a/playlistmainwindow.cpp b/playlistmainwindow.cpp index cefca98..ce22140 100644 --- a/playlistmainwindow.cpp +++ b/playlistmainwindow.cpp @@ -43,6 +43,8 @@ PlayListMainWindow::PlayListMainWindow(QWidget *parent) : mNetManager = new QNetworkAccessManager(this); + mContents = new QList(); + ui->playButton->setIcon(QIcon::fromTheme("camera_playback")); ui->clearButton->setIcon(QIcon::fromTheme("general_delete")); ui->shuffleButton->setIcon(QIcon::fromTheme("mediaplayer_default_shuffle")); @@ -138,7 +140,7 @@ void PlayListMainWindow::parseXmlPlayList() { doc.setContent(reply->readAll()); QDomElement docElem = doc.documentElement(); QDomNodeList nodes = docElem.elementsByTagName("node"); - mContents = new QList(); + mContents->clear(); int depth = 0; @@ -162,6 +164,7 @@ void PlayListMainWindow::parseXmlPlayList() { el->path = leaf.attributes().namedItem("uri").nodeValue(); el->name = leaf.attributes().namedItem("name").nodeValue(); this->mContents->append(*el); + delete el; } } } diff --git a/playlistmainwindow.ui b/playlistmainwindow.ui index fb89673..dd76af9 100644 --- a/playlistmainwindow.ui +++ b/playlistmainwindow.ui @@ -37,13 +37,6 @@ - - - Clear - - - - Shuffle @@ -81,13 +74,6 @@ - - - Remove - - - - Qt::Horizontal @@ -102,6 +88,24 @@ + + + + + + Clear all + + + + + + + Remove + + + + + @@ -122,7 +126,6 @@ - configuration