Refactored FavouritesMainWindow, reparented to PlayerMainWindow - fixes Bug [#6293]
authordruid23 <usr@dru-id.co.uk>
Sat, 4 Sep 2010 21:24:46 +0000 (22:24 +0100)
committerdruid23 <usr@dru-id.co.uk>
Sat, 4 Sep 2010 21:24:46 +0000 (22:24 +0100)
Opening / Closing favourites window causes window stacking problems for browsing
modified:   src/browsemainwindow.cpp
modified:   src/browsemainwindow.h
modified:   src/favouritesmainwindow.cpp
modified:   src/favouritesmainwindow.h
modified:   src/playermainwindow.cpp
modified:   src/playermainwindow.h

src/browsemainwindow.cpp
src/browsemainwindow.h
src/favouritesmainwindow.cpp
src/favouritesmainwindow.h
src/playermainwindow.cpp
src/playermainwindow.h

index 76a5065..811e8f4 100644 (file)
@@ -25,7 +25,6 @@
 #include "aboutdialog.h"
 #include "vlcbrowseelement.h"
 #include "appsettings.h"
-#include "favouritesmainwindow.h"
 
 BrowseMainWindow::BrowseMainWindow(QWidget *parent) :
         QMainWindow(parent),
@@ -33,7 +32,6 @@ 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");
 
@@ -52,16 +50,6 @@ 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->listWidget,SIGNAL(doubleClicked(QModelIndex)),this,SLOT(onBrowse()));
     connect(ui->browseButton,SIGNAL(clicked()),this,SLOT(onBrowse()));
     connect(ui->addButton,SIGNAL(clicked()),this,SLOT(onAddToPlaylist()));
@@ -74,8 +62,6 @@ 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();
 
 
@@ -138,8 +124,10 @@ void BrowseMainWindow::setHomeFolder() {
     }
 }
 void BrowseMainWindow::showFavourites() {
-    mFavouritesMainWindow->show();
-    mFavouritesMainWindow->init();
+    emit showFavouritesWindow();
+#if defined(Q_WS_S60) || defined(Q_WS_MAEMO_5)
+    this->hide();
+#endif
 }
 void BrowseMainWindow::setFavourite() {
     if (0 < mCurrentElement.name.length() && (0 == QString::compare("directory", mCurrentElement.type) || 0 == QString::compare("dir", mCurrentElement.type))) {
@@ -215,29 +203,19 @@ void BrowseMainWindow::onAddToPlaylist() {
     QUrl url = QUrl("http://"+mIp+"/requests/status.xml?command=in_enqueue");
     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("\\", "\\\\").replace("'", "\\'")));
     mNetManager->get(QNetworkRequest(url));
-    //mNetManager->get(QNetworkRequest(QUrl("http://"+mIp+"/requests/status.xml?command=in_play&input=" + mCurrentElement.path.replace("\\", "\\\\"))));
 }
 
 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));
     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
index 052421a..df4649c 100644 (file)
@@ -23,7 +23,6 @@
 #include <QtXml>
 #include <QListWidgetItem>
 #include "vlcbrowseelement.h"
-#include "favouritesmainwindow.h"
 
 namespace Ui {
     class BrowseMainWindow;
@@ -62,9 +61,11 @@ protected:
     VlcBrowseElement getElementFromText(QString text);
     QString getExtension(QString path, QString extension);
 
+signals:
+    void showFavouritesWindow();
+
 private:
     Ui::BrowseMainWindow *ui;
-    FavouritesMainWindow *mFavouritesMainWindow;
     QNetworkAccessManager * mNetManager;
     QString mCurrentDir;
     QString mIp;
index e6e2c26..d72b145 100644 (file)
@@ -22,7 +22,6 @@
 #include <QMaemo5InformationBox>
 #endif
 #include "appsettings.h"
-//#include "browsemainwindow.h"
 
 FavouritesMainWindow::FavouritesMainWindow(QWidget *parent) :
         QMainWindow(parent),
@@ -159,8 +158,6 @@ void FavouritesMainWindow::onEdit() {
 void FavouritesMainWindow::onBrowse() {
     if (-1 < mCurrentItemIndex) {
         emit browseDirectory(mCurrentFavourite.path);
-        //this->close();
-        //((BrowseMainWindow *)this->parent())->browseDirectory(mCurrentFavourite.path);
     }
 }
 void FavouritesMainWindow::onDelete() {
@@ -169,3 +166,8 @@ void FavouritesMainWindow::onDelete() {
         init();
     }
 }
+void FavouritesMainWindow::closeEvent(QCloseEvent * event) {
+    Q_UNUSED(event);
+    emit closeSignal();
+    this->close();
+}
index 76964b0..9d72a99 100644 (file)
@@ -52,10 +52,12 @@ protected slots:
 
 signals:
     void browseDirectory(QString path);
+    void closeSignal();
 
 protected:
     void changeEvent(QEvent *e);
     void updateList();
+    void closeEvent(QCloseEvent * event);
 
 private:
     Ui::FavouritesMainWindow *ui;
index 33d001c..26ea30e 100644 (file)
@@ -24,7 +24,6 @@
   #include "aboutdialog.h"
   #include "accountdialog.h"
   #include "appsettings.h"
-  //#include "vlcstatus.h"
 
   PlayerMainWindow::PlayerMainWindow(QWidget *parent) :
          QMainWindow(parent),
@@ -39,6 +38,7 @@
       mNetManager = new QNetworkAccessManager(this);
       mPlayListMainWindow = new PlayListMainWindow;
       mBrowserMainWindow = new BrowseMainWindow;
+      mFavouritesMainWindow = new FavouritesMainWindow;
 
       mVolume = 100;
       mMuted = false;
@@ -52,7 +52,6 @@
       ui->nextButton->setIcon(QIcon::fromTheme("pdf_viewer_last_page"));
       ui->playpauseButton->setIcon(QIcon::fromTheme("camera_playback"));
       ui->stopButton->setIcon(QIcon::fromTheme("camera_video_stop"));
-      //ui->pauseButton->setIcon(QIcon::fromTheme("camera_video_pause"));
       ui->fullscreenButton->setIcon(QIcon::fromTheme("general_fullsize"));
       ui->volDown->setIcon(QIcon::fromTheme("statusarea_volumelevel1"));
       ui->volUp->setIcon(QIcon::fromTheme("statusarea_volumelevel4"));
       setAttribute(Qt::WA_Maemo5StackedWindow, true);
       mBrowserMainWindow->setWindowFlags(mBrowserMainWindow->windowFlags() | Qt::Window);
 
+      mFavouritesMainWindow->setParent(this);
+      mFavouritesMainWindow->setAttribute(Qt::WA_Maemo5StackedWindow, true);
+      setAttribute(Qt::WA_Maemo5StackedWindow, true);
+      mFavouritesMainWindow->setWindowFlags(mFavouritesMainWindow->windowFlags() | Qt::Window);
+
       connect(QApplication::desktop(), SIGNAL(resized(int)), this, SLOT(orientationChanged()));
 
   #endif
       connect(ui->slider,SIGNAL(sliderMoved(int)),this,SLOT(slide(int)));
 
       connect(mPlayListMainWindow, SIGNAL(idUpdated(int,bool,QString)), this, SLOT(playlistIdUpdated(int, bool, QString)));
+      connect(mBrowserMainWindow, SIGNAL(showFavouritesWindow()), this, SLOT(showFavourites()));
+
+      connect(mFavouritesMainWindow, SIGNAL(browseDirectory(QString)), mFavouritesMainWindow, SLOT(close()));
+      connect(mFavouritesMainWindow, SIGNAL(browseDirectory(QString)), mBrowserMainWindow, SLOT(browseDirectory(QString)));
+      connect(mFavouritesMainWindow, SIGNAL(closeSignal()), mBrowserMainWindow, SLOT(show()));
 
 
       // check if last used connection is still valid or showConfig
       }
   }
 
+  void PlayerMainWindow::showFavourites() {
+      mFavouritesMainWindow->show();
+      mFavouritesMainWindow->init();
+  }
+
   void PlayerMainWindow::setPortrait()
   {
     #if defined(Q_WS_S60) || defined(Q_WS_MAEMO_5)
       QString album = metaInfoNode.namedItem("album").toElement().text();
       QString now_playing = metaInfoNode.namedItem("now_playing").toElement().text();
       QString art_url = metaInfoNode.namedItem("art_url").toElement().text();
-      //metaInfoNode.clear();
-      //infoNode.clear();
-      //docElem.clear();
-      //doc.clear();
       // Populate the current status structure
       // now would be a good time to work out if we are a new track / file or not.
       // key if we are going to look for album art later
index 73c22b2..84bcbf4 100644 (file)
@@ -24,6 +24,7 @@
 #include <QTimer>
 #include "playlistmainwindow.h"
 #include "browsemainwindow.h"
+#include "favouritesmainwindow.h"
 #include "vlcstatus.h"
 
 namespace Ui {
@@ -40,6 +41,7 @@ public slots:
     void askStatus();
     void showConfig();
     void showAbout();
+    void showFavourites();
     void play();
     void playpause();
     void stop();
@@ -75,6 +77,7 @@ private:
     Ui::PlayerMainWindow *ui;
     PlayListMainWindow * mPlayListMainWindow;
     BrowseMainWindow * mBrowserMainWindow;
+    FavouritesMainWindow * mFavouritesMainWindow;
     QNetworkAccessManager * mNetManager;
     QString mIp;
     QTimer * mTimer;