Merge branch 'master' into qt5
[toast/confclerk.git] / src / gui / eventdialog.cpp
index fe9daba4745d721002c6006e70357d64979c05a9..90910c85d8834b0be3c6fe5632df8980779c039f 100644 (file)
@@ -1,6 +1,6 @@
 /*
  * Copyright (C) 2010 Ixonos Plc.
- * Copyright (C) 2011-2015 Philipp Spitzer, gregor herrmann, Stefan Stahl
+ * Copyright (C) 2011-2017 Philipp Spitzer, gregor herrmann, Stefan Stahl
  *
  * This file is part of ConfClerk.
  *
@@ -48,11 +48,19 @@ EventDialog::EventDialog(int conferenceId, int eventId, QWidget *parent): QDialo
 
     // abstract
     info += QString("<h2>%1</h2>\n").arg(tr("Abstract"));
-    info += Qt::convertFromPlainText(event.abstract(), Qt::WhiteSpaceNormal);
+    if (Qt::mightBeRichText(event.abstract())) {
+        info += event.abstract();
+    } else {
+        info += Qt::convertFromPlainText(event.abstract(), Qt::WhiteSpaceNormal);
+    }
 
     // description
     info += QString("<h2>%1</h2>\n").arg(tr("Description"));
-    info += Qt::convertFromPlainText(event.description(), Qt::WhiteSpaceNormal);
+    if (Qt::mightBeRichText(event.description())) {
+        info += event.description();
+    } else {
+        info += Qt::convertFromPlainText(event.description(), Qt::WhiteSpaceNormal);
+    }
 
     // links
     info += QString("<h2>%1</h2>\n<ul>\n").arg(tr("Links"));
@@ -80,10 +88,7 @@ EventDialog::EventDialog(int conferenceId, int eventId, QWidget *parent): QDialo
     connect(favouriteButton, SIGNAL(clicked()), SLOT(favouriteClicked()));
     connect(alarmButton, SIGNAL(clicked()), SLOT(alarmClicked()));
 
-    if(event.isFavourite())
-    {
-        favouriteButton->setIcon(QIcon(":/icons/favourite-on.png"));
-    }
+    updateFavouriteButton(event);
 
     if(event.hasAlarm())
     {
@@ -94,25 +99,12 @@ EventDialog::EventDialog(int conferenceId, int eventId, QWidget *parent): QDialo
 void EventDialog::favouriteClicked()
 {
     Event event = Event::getById(mEventId, mConferenceId);
-
-    QList<Event> conflicts = Event::conflictEvents(event.id(), mConferenceId);
-    if(event.isFavourite())
-    {
-        event.setFavourite(false);
-        favouriteButton->setIcon(QIcon(":/icons/favourite-off.png"));
-    }
-    else
-    {
-        event.setFavourite(true);
-        favouriteButton->setIcon(QIcon(":/icons/favourite-on.png"));
-    }
+    event.cycleFavourite();
     event.update("favourite");
+    updateFavouriteButton(event);
 
-    if(event.isFavourite())
-    {
-        // event has became 'favourite' and so 'conflicts' list may have changed
-        conflicts = Event::conflictEvents(event.id(), mConferenceId);
-    }
+    // 'conflicts' list may have changed
+    QList<Event> conflicts = Event::conflictEvents(event.id(), mConferenceId);
 
     // have to emit 'eventChanged' signal on all events in conflict
     for(int i=0; i<conflicts.count(); i++)
@@ -154,3 +146,12 @@ void EventDialog::alarmClicked()
     emit eventChanged(event.id(), false);
 }
 
+
+void EventDialog::updateFavouriteButton(const Event& event) {
+    switch (event.favourite()) {
+        case Favourite_no: favouriteButton->setIcon(QIcon(":/icons/favourite-no.png")); break;
+        case Favourite_weak: favouriteButton->setIcon(QIcon(":/icons/favourite-weak.png")); break;
+        case Favourite_strong: favouriteButton->setIcon(QIcon(":/icons/favourite-strong.png")); break;
+    }
+}
+