Last french translation for v0.5 release
[vlc-remote] / browsemainwindow.cpp
index 13a85e4..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 = mCurrentElement.name;
+        dir.path = mCurrentElement.path;
+        AppSettings::setHomeDirectory(dir);
+    }
+    else if (0 < mCurrentDir.length()) {
         VlcDirectory dir;
-        dir.name = "Home";
+        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));
@@ -286,6 +341,7 @@ void BrowseMainWindow::updateList() {
         QIcon icon_image  = QIcon::fromTheme("general_image");
         QIcon icon_flash  = QIcon::fromTheme("filemanager_flash_file");
         QIcon icon_real   = QIcon::fromTheme("filemanager_real_music");
+        QIcon icon_playl  = QIcon::fromTheme("filemanager_playlist");
         QIcon icon_unknown= QIcon::fromTheme("filemanager_unknown_file");
         for (int idx = 0; idx < ct; ++idx) {
             VlcBrowseElement dir = mContents->at(idx);
@@ -319,6 +375,15 @@ void BrowseMainWindow::updateList() {
                     item_good = true;
                     item = new QListWidgetItem(icon_audio, dir.name, ui->listWidget, 0); // .mp3, .m4a, .ogg, .oga, .wav, .flac
                 }
+                else if ( 0 == QString::compare(dir.extension, "m3u")  ||
+                          0 == QString::compare(dir.extension, "wpl")  ||
+                          0 == QString::compare(dir.extension, "pls")  ||
+                          0 == QString::compare(dir.extension, "asx")  ||
+                          0 == QString::compare(dir.extension, "xspf") ||
+                          0 == QString::compare(dir.extension, "cmml")  ) {
+                    item_good = true;
+                    item = new QListWidgetItem(icon_playl, dir.name, ui->listWidget, 0); // .m3u, .wpl, .pls, .asx, .xspf, .cmml
+                }
                 else if ( 0 == QString::compare(dir.extension, "avi")  ||
                           0 == QString::compare(dir.extension, "mpeg") ||
                           0 == QString::compare(dir.extension, "mpg")  ||