From dfb7b11c5f32c619045a63741ff3f9a7d8aeffae Mon Sep 17 00:00:00 2001 From: druid23 Date: Sat, 4 Sep 2010 22:24:46 +0100 Subject: [PATCH] Refactored FavouritesMainWindow, reparented to PlayerMainWindow - fixes Bug [#6293] 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 | 30 ++++-------------------------- src/browsemainwindow.h | 5 +++-- src/favouritesmainwindow.cpp | 8 +++++--- src/favouritesmainwindow.h | 2 ++ src/playermainwindow.cpp | 22 ++++++++++++++++------ src/playermainwindow.h | 3 +++ 6 files changed, 33 insertions(+), 37 deletions(-) diff --git a/src/browsemainwindow.cpp b/src/browsemainwindow.cpp index 76a5065..811e8f4 100644 --- a/src/browsemainwindow.cpp +++ b/src/browsemainwindow.cpp @@ -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 diff --git a/src/browsemainwindow.h b/src/browsemainwindow.h index 052421a..df4649c 100644 --- a/src/browsemainwindow.h +++ b/src/browsemainwindow.h @@ -23,7 +23,6 @@ #include #include #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; diff --git a/src/favouritesmainwindow.cpp b/src/favouritesmainwindow.cpp index e6e2c26..d72b145 100644 --- a/src/favouritesmainwindow.cpp +++ b/src/favouritesmainwindow.cpp @@ -22,7 +22,6 @@ #include #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(); +} diff --git a/src/favouritesmainwindow.h b/src/favouritesmainwindow.h index 76964b0..9d72a99 100644 --- a/src/favouritesmainwindow.h +++ b/src/favouritesmainwindow.h @@ -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; diff --git a/src/playermainwindow.cpp b/src/playermainwindow.cpp index 33d001c..26ea30e 100644 --- a/src/playermainwindow.cpp +++ b/src/playermainwindow.cpp @@ -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")); @@ -78,6 +77,11 @@ 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 @@ -104,6 +108,11 @@ 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 @@ -159,6 +168,11 @@ } } + void PlayerMainWindow::showFavourites() { + mFavouritesMainWindow->show(); + mFavouritesMainWindow->init(); + } + void PlayerMainWindow::setPortrait() { #if defined(Q_WS_S60) || defined(Q_WS_MAEMO_5) @@ -333,10 +347,6 @@ 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 diff --git a/src/playermainwindow.h b/src/playermainwindow.h index 73c22b2..84bcbf4 100644 --- a/src/playermainwindow.h +++ b/src/playermainwindow.h @@ -24,6 +24,7 @@ #include #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; -- 1.7.9.5