Favourites implemented
[vlc-remote] / appsettings.cpp
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);