From: druid23 Date: Tue, 24 Aug 2010 01:53:45 +0000 (+0100) Subject: Favourites implemented X-Git-Tag: v0.5~4 X-Git-Url: https://vcs.maemo.org/git/?a=commitdiff_plain;h=627cb1c8892ff6cd883f6597d57a2c0a7d53e227;p=vlc-remote Favourites implemented modified: appsettings.cpp modified: browsemainwindow.cpp modified: browsemainwindow.h modified: browsemainwindow.ui modified: newaccountdialog.cpp modified: playermainwindow.cpp modified: vlcRemote.pro --- diff --git a/appsettings.cpp b/appsettings.cpp index 2c59e8a..babef8c 100644 --- a/appsettings.cpp +++ b/appsettings.cpp @@ -15,9 +15,8 @@ * Free Software Foundation, Inc., * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ +#include #include "appsettings.h" -// initialize static storage for settings reference -//QSettings AppSettings::settings; AppSettings::AppSettings() { } @@ -47,9 +46,38 @@ bool AppSettings::setHomeDirectory(VlcDirectory dir) { sets.setValue("config/accounts/" + getCurrentKey() + "/homeDirPath", dir.path); return true; } -QList* AppSettings::getFavourites() { return new QList(); } -bool AppSettings::addFavourite(VlcDirectory dir) { return true; } -bool AppSettings::deleteFavourite(VlcDirectory dir) { return true; } +QList* AppSettings::getFavourites() { + QSettings sets; + QList * favourites = new QList(); + + sets.beginGroup("config/accounts/" + getCurrentKey() + "/favourites"); + foreach ( QString key, sets.allKeys()) + { + VlcDirectory dir; + // key is name + dir.name = key; + // value is path + dir.path = sets.value(key, "~/").toString(); + favourites->append(dir); + } + sets.endGroup(); + return favourites; +} +bool AppSettings::addFavourite(VlcDirectory dir) { + QSettings sets; + // should check for existing first otherwise it overwrites + if (0 < sets.value("config/accounts/" + getCurrentKey() + "/favourites/" + dir.name, "").toString().length()) { + dir.name = "_" + dir.name; + return addFavourite(dir); + } + sets.setValue("config/accounts/" + getCurrentKey() + "/favourites/" + dir.name, dir.path); + return true; +} +bool AppSettings::deleteFavourite(VlcDirectory dir) { + QSettings sets; + sets.remove("config/accounts/" + getCurrentKey() + "/favourites/" + dir.name); + return true; +} Orientation AppSettings::setOrientation(Orientation orientation) { QSettings sets; sets.setValue("config/orientation", (int)orientation); diff --git a/browsemainwindow.cpp b/browsemainwindow.cpp index c87713e..d77844d 100644 --- a/browsemainwindow.cpp +++ b/browsemainwindow.cpp @@ -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); + setAttribute(Qt::WA_Maemo5StackedWindow); + 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())); @@ -103,15 +115,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 items = ui->listWidget->selectedItems(); diff --git a/browsemainwindow.h b/browsemainwindow.h index aa51ef9..052421a 100644 --- a/browsemainwindow.h +++ b/browsemainwindow.h @@ -23,6 +23,7 @@ #include #include #include "vlcbrowseelement.h" +#include "favouritesmainwindow.h" namespace Ui { class BrowseMainWindow; @@ -63,6 +64,7 @@ protected: private: Ui::BrowseMainWindow *ui; + FavouritesMainWindow *mFavouritesMainWindow; QNetworkAccessManager * mNetManager; QString mCurrentDir; QString mIp; diff --git a/browsemainwindow.ui b/browsemainwindow.ui index b867e99..6ae1aee 100644 --- a/browsemainwindow.ui +++ b/browsemainwindow.ui @@ -63,8 +63,8 @@ - - + + diff --git a/newaccountdialog.cpp b/newaccountdialog.cpp index 8be1fbc..3a3acd3 100644 --- a/newaccountdialog.cpp +++ b/newaccountdialog.cpp @@ -23,6 +23,7 @@ NewAccountDialog::NewAccountDialog(QWidget *parent) { + Q_UNUSED(parent); this->setWindowTitle(tr("Add account")); mKeyLineEdit = new QLineEdit; @@ -75,6 +76,7 @@ void NewAccountDialog::save() void NewAccountDialog::edit(QString &key, QString &ip) { + Q_UNUSED(ip); this->setWindowTitle(tr("Edit account")); QSettings settings; diff --git a/playermainwindow.cpp b/playermainwindow.cpp index 8a30cd3..af879d1 100644 --- a/playermainwindow.cpp +++ b/playermainwindow.cpp @@ -437,6 +437,7 @@ } void PlayerMainWindow::playlistIdUpdated(int id, bool hasart, QString extension) { + Q_UNUSED(extension); if (hasart) { getCoverArt(id); } diff --git a/vlcRemote.pro b/vlcRemote.pro index 8b4c0c9..35196ae 100644 --- a/vlcRemote.pro +++ b/vlcRemote.pro @@ -19,7 +19,8 @@ SOURCES += main.cpp \ vlcbrowseelement.cpp \ vlcplaylistelementsimple.cpp \ vlcstatus.cpp \ - appsettings.cpp + appsettings.cpp \ + favouritesmainwindow.cpp HEADERS += playlistmainwindow.h \ playermainwindow.h \ configdialog.h \ @@ -30,13 +31,15 @@ HEADERS += playlistmainwindow.h \ vlcbrowseelement.h \ vlcplaylistelementsimple.h \ vlcstatus.h \ - appsettings.h + appsettings.h \ + favouritesmainwindow.h FORMS += playlistmainwindow.ui \ playermainwindow.ui \ configdialog.ui \ aboutdialog.ui \ accountdialog.ui \ - browsemainwindow.ui + browsemainwindow.ui \ + favouritesmainwindow.ui OTHER_FILES += vlc-remote.desktop RESOURCES += ressources.qrc TRANSLATIONS = vlcremote_fr_FR.ts