favourite is now tristate instead of bool.
authorPhilipp Spitzer <philipp@spitzer.priv.at>
Fri, 20 Jan 2017 19:33:09 +0000 (20:33 +0100)
committerPhilipp Spitzer <philipp@spitzer.priv.at>
Fri, 20 Jan 2017 19:33:09 +0000 (20:33 +0100)
src/dbschema001.sql
src/mvc/event.cpp
src/mvc/event.h

index eca2c39d42ca219f928927e486e8300d38b36e4c..f55533f3fd7a5bfea957c97b88165c5f765a8068 100644 (file)
@@ -49,7 +49,7 @@ CREATE TABLE event (
        subtitle VARCHAR,
        abstract VARCHAR,
        description VARCHAR,
-       favourite INTEGER DEFAULT 0,
+        favourite INTEGER DEFAULT 0, -- 0 ... no favourite, 1 ... strong favourite, 2 ... weak favourite/alternative to strong favourite
        alarm INTEGER DEFAULT 0,
        PRIMARY KEY (xid_conference, id)
 );
index 9529ef4b5d06341762b2c9742394fec64489f59d..4ac2f6806b1c45b3deb8fe3ffcf0d72a9ea8950d 100644 (file)
@@ -31,7 +31,7 @@ QSqlRecord const Event::sColumns = Event::toRecord(QList<QSqlField>()
     << QSqlField("xid_track", QVariant::Int)
     << QSqlField("type", QVariant::String)
     << QSqlField("language", QVariant::String)
-    << QSqlField("favourite", QVariant::Bool)
+    << QSqlField("favourite", QVariant::Int)
     << QSqlField("alarm", QVariant::Bool)
     << QSqlField("tag", QVariant::String)
     << QSqlField("title", QVariant::String)
index 5e3fa20e8ac788317cc029570218bb92a8fb1af2..481db5255322c373ab831af67c753b107c0b98a7 100644 (file)
@@ -35,6 +35,10 @@ class NoSuchEventException
 {
 };
 
+
+enum Favourite {Favourite_no=0, Favourite_weak=2, Favourite_strong=1};
+
+
 class Event : public OrmRecord<Event>
 {
 public:
@@ -59,7 +63,8 @@ public:
     int trackId() const { return value("xid_track").toInt(); }
     QString type() const { return value("type").toString(); }
     QString language() const { return value("language").toString(); }
-    bool isFavourite() const { return value("favourite").toBool(); }
+    Favourite favourite() const { return static_cast<Favourite>(value("favourite").toInt()); }
+    bool isFavourite() const { return favourite() > 0; } // deprecated
     bool hasAlarm() const { return value("alarm").toBool(); }
     bool hasTimeConflict() const;
     QString tag() const { return value("tag").toString(); }
@@ -81,7 +86,8 @@ public:
     void setTrackId(int trackId) { setValue("xid_track", trackId); }
     void setType(const QString & type) { setValue("type", type); }
     void setLanguage(const QString & language) { setValue("language", language); }
-    void setFavourite(bool favourite) { setValue("favourite", (int)((favourite))); }
+    void setFavourite(Favourite favourite) { setValue("favourite", (int) favourite); }
+    void setFavourite(bool favourite) { setFavourite(favourite ? Favourite_strong : Favourite_no); } // deprecated
     void setHasAlarm(bool alarm) { setValue("alarm", (int)((alarm))); }
     void setTag(const QString& tag) { setValue("tag", tag); }
     void setTitle(const QString& title) { setValue("title", title); }