Merge branch 'master' of https://vcs.maemo.org/git/vlc-remote
[vlc-remote] / browsemainwindow.cpp
index c87713e..a07b131 100644 (file)
@@ -25,6 +25,7 @@
 #include "aboutdialog.h"
 #include "vlcbrowseelement.h"
 #include "appsettings.h"
+#include "favouritesmainwindow.h"
 
 BrowseMainWindow::BrowseMainWindow(QWidget *parent) :
         QMainWindow(parent),
@@ -32,6 +33,7 @@ BrowseMainWindow::BrowseMainWindow(QWidget *parent) :
 {
 
     ui->setupUi(this);
+    mFavouritesMainWindow = new FavouritesMainWindow;
     mCurrentDir = "~/"; //AppSettings::getHomeDirectory().path; // This works on win as well as linux, would guess mac too.
     setWindowTitle("Vlc remote");
 
@@ -50,6 +52,16 @@ BrowseMainWindow::BrowseMainWindow(QWidget *parent) :
     ui->playButton->setDisabled(true);
     ui->addButton->setDisabled(true);
 
+
+#if defined(Q_WS_S60) || defined(Q_WS_MAEMO_5)
+
+    mFavouritesMainWindow->setParent(this);
+    mFavouritesMainWindow->setAttribute(Qt::WA_Maemo5StackedWindow, true);
+    setAttribute(Qt::WA_Maemo5StackedWindow, true);
+    mFavouritesMainWindow->setWindowFlags(mFavouritesMainWindow->windowFlags() | Qt::Window);
+
+#endif
+
     connect(ui->browseButton,SIGNAL(clicked()),this,SLOT(onBrowse()));
     connect(ui->addButton,SIGNAL(clicked()),this,SLOT(onAddToPlaylist()));
     connect(ui->playButton,SIGNAL(clicked()),this,SLOT(onPlay()));
@@ -61,6 +73,8 @@ BrowseMainWindow::BrowseMainWindow(QWidget *parent) :
     connect(ui->actionViewFavourites, SIGNAL(triggered()), this, SLOT(showFavourites()));
     connect(ui->actionSetFavourite, SIGNAL(triggered()), this, SLOT(setFavourite()));
 
+    connect(this->mFavouritesMainWindow, SIGNAL(browseDirectory(QString)), this, SLOT(browseDirectory(QString)));
+
     init();
 
 
@@ -103,15 +117,49 @@ void BrowseMainWindow::showUserHomeFolder() {
     browseDirectory("~/");
 }
 void BrowseMainWindow::setHomeFolder() {
-    if (0 < mCurrentDir.length()) {
+    if (0 < mCurrentElement.name.length() && (0 == QString::compare("directory", mCurrentElement.type) || 0 == QString::compare("dir", mCurrentElement.type))) {
         VlcDirectory dir;
-        dir.name = "Home";
+        dir.name = mCurrentElement.name;
+        dir.path = mCurrentElement.path;
+        AppSettings::setHomeDirectory(dir);
+    }
+    else if (0 < mCurrentDir.length()) {
+        VlcDirectory dir;
+        QString name = mCurrentDir;
+        int idx = mCurrentDir.lastIndexOf('/');
+        if (0 > idx) idx = mCurrentDir.lastIndexOf('\\');
+        if (0 < idx) {
+            name = mCurrentDir.right(mCurrentDir.length() - (idx + 1));
+        }
+        dir.name = name;
         dir.path = mCurrentDir;
         AppSettings::setHomeDirectory(dir);
     }
 }
-void BrowseMainWindow::showFavourites() {}
-void BrowseMainWindow::setFavourite() {}
+void BrowseMainWindow::showFavourites() {
+    mFavouritesMainWindow->show();
+    mFavouritesMainWindow->init();
+}
+void BrowseMainWindow::setFavourite() {
+    if (0 < mCurrentElement.name.length() && (0 == QString::compare("directory", mCurrentElement.type) || 0 == QString::compare("dir", mCurrentElement.type))) {
+        VlcDirectory dir;
+        dir.name = mCurrentElement.name;
+        dir.path = mCurrentElement.path;
+        AppSettings::addFavourite(dir);
+    }
+    else if (0 < mCurrentDir.length()) {
+        VlcDirectory dir;
+        QString name = mCurrentDir;
+        int idx = mCurrentDir.lastIndexOf('/');
+        if (0 > idx) idx = mCurrentDir.lastIndexOf('\\');
+        if (0 < idx) {
+            name = mCurrentDir.right(mCurrentDir.length() - (idx + 1));
+        }
+        dir.name = name;
+        dir.path = mCurrentDir;
+        AppSettings::addFavourite(dir);
+    }
+}
 
 void BrowseMainWindow::onListSelectionChanged() {
     QList<QListWidgetItem *> items = ui->listWidget->selectedItems();
@@ -177,6 +225,13 @@ void BrowseMainWindow::onPlay() {
 }
 
 void BrowseMainWindow::browseDirectory(QString dir) {
+    if (mFavouritesMainWindow) {
+        setParent(this->parentWidget());
+#if defined(Q_WS_S60) || defined(Q_WS_MAEMO_5)
+        setAttribute(Qt::WA_Maemo5StackedWindow, true);
+#endif
+        mFavouritesMainWindow->hide();
+    }
     mResponse.clear();
     QUrl url = QUrl("http://"+mIp+"/requests/browse.xml");
     url.addEncodedQueryItem(QByteArray("dir"), QUrl::toPercentEncoding(dir));