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 eca2c39..f55533f 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 9529ef4..4ac2f68 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 5e3fa20..481db52 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); }