Favourites implemented
authordruid23 <usr@dru-id.co.uk>
Tue, 24 Aug 2010 01:53:45 +0000 (02:53 +0100)
committerdruid23 <usr@dru-id.co.uk>
Tue, 24 Aug 2010 01:53:45 +0000 (02:53 +0100)
modified:   appsettings.cpp
modified:   browsemainwindow.cpp
modified:   browsemainwindow.h
modified:   browsemainwindow.ui
modified:   newaccountdialog.cpp
modified:   playermainwindow.cpp
modified:   vlcRemote.pro

appsettings.cpp
browsemainwindow.cpp
browsemainwindow.h
browsemainwindow.ui
newaccountdialog.cpp
playermainwindow.cpp
vlcRemote.pro

index 2c59e8a..babef8c 100644 (file)
@@ -15,9 +15,8 @@
 *   Free Software Foundation, Inc.,
 *   51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
 */
+#include <QStringList>
 #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<VlcDirectory>* AppSettings::getFavourites() { return new QList<VlcDirectory>(); }
-bool AppSettings::addFavourite(VlcDirectory dir) { return true; }
-bool AppSettings::deleteFavourite(VlcDirectory dir) { return true; }
+QList<VlcDirectory>* AppSettings::getFavourites() {
+    QSettings sets;
+    QList<VlcDirectory> * favourites = new QList<VlcDirectory>();
+
+    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);
index c87713e..d77844d 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);
+    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<QListWidgetItem *> items = ui->listWidget->selectedItems();
index aa51ef9..052421a 100644 (file)
@@ -23,6 +23,7 @@
 #include <QtXml>
 #include <QListWidgetItem>
 #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;
index b867e99..6ae1aee 100644 (file)
@@ -63,8 +63,8 @@
    <addaction name="actionGoUserHome"/>
    <addaction name="actionGoHome"/>
    <addaction name="actionSetHome"/>
-   <!--addaction name="actionViewFavourites"/-->
-   <!--addaction name="actionSetFavourite"/-->
+   <addaction name="actionViewFavourites"/>
+   <addaction name="actionSetFavourite"/>
   </widget>
   <action name="actionGoUserHome">
    <property name="text">
index 8be1fbc..3a3acd3 100644 (file)
@@ -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;
index 8a30cd3..af879d1 100644 (file)
 
   }
   void PlayerMainWindow::playlistIdUpdated(int id, bool hasart, QString extension) {
+      Q_UNUSED(extension);
       if (hasart) {
           getCoverArt(id);
       }
index 8b4c0c9..35196ae 100644 (file)
@@ -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