/* * Copyright (C) 2010 Ixonos Plc. * Copyright (C) 2011-2024 Philipp Spitzer, gregor herrmann, Stefan Stahl * * This file is part of ConfClerk. * * ConfClerk is free software: you can redistribute it and/or modify it * under the terms of the GNU General Public License as published by the Free * Software Foundation, either version 2 of the License, or (at your option) * any later version. * * ConfClerk is distributed in the hope that it will be useful, but * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY * or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for * more details. * * You should have received a copy of the GNU General Public License along with * ConfClerk. If not, see . */ #include "eventdialog.h" #include "conference.h" #include #ifdef MAEMO #include "alarm.h" #include "appsettings.h" #endif QString toHtmlEscaped(const QString& string) { #if QT_VERSION >= 0x050000 return string.toHtmlEscaped(); #else return Qt::escape(string); #endif } EventDialog::EventDialog(int conferenceId, int eventId, QWidget *parent): QDialog(parent), mConferenceId(conferenceId), mEventId(eventId) { setupUi(this); #ifdef MAEMO showFullScreen(); #endif Event event = Event::getById(mEventId, mConferenceId); QString info; // title info.append(QString("

%1

\n").arg(toHtmlEscaped(event.title()))); // persons info += QString("

%1

\n").arg(tr("Persons")); QStringList persons = event.persons(); for (int i = 0; i != persons.size(); ++i) persons[i] = toHtmlEscaped(persons[i]); info += QString("

%1

\n").arg(persons.join(", ")); // abstract info += QString("

%1

\n").arg(tr("Abstract")); if (Qt::mightBeRichText(event.abstract())) { info += event.abstract(); } else { info += Qt::convertFromPlainText(event.abstract(), Qt::WhiteSpaceNormal); } // description info += QString("

%1

\n").arg(tr("Description")); if (Qt::mightBeRichText(event.description())) { info += event.description(); } else { QString description = Qt::convertFromPlainText(event.description(), Qt::WhiteSpaceNormal); // make links clickable QRegExp rx("()]*[^][{}\\s\"<>().,:!])?/?)>?"); info += description.replace(rx, "\\1"); } // links info += QString("

%1

\n\n"); eventInfoTextBrowser->setHtml(info); // make sure colours are the same as usual eventInfoTextBrowser->setPalette(qApp->palette()); // reduce font size, on maemo #ifdef MAEMO QFont font = eventInfoTextBrowser->font(); font.setPointSizeF(font.pointSizeF()*0.8); eventInfoTextBrowser->setFont(font); #endif connect(favouriteButton, SIGNAL(clicked()), SLOT(favouriteClicked())); connect(alarmButton, SIGNAL(clicked()), SLOT(alarmClicked())); updateFavouriteButton(event); if(event.hasAlarm()) { alarmButton->setIcon(QIcon(":/icons/alarm-on.png")); } } void EventDialog::favouriteClicked() { Event event = Event::getById(mEventId, mConferenceId); event.cycleFavourite(); event.update("favourite"); updateFavouriteButton(event); // 'conflicts' list may have changed QList conflicts = Event::conflictEvents(event.id(), mConferenceId); // have to emit 'eventChanged' signal on all events in conflict for(int i=0; isetIcon(QIcon(":/icons/alarm-off.png")); #ifdef MAEMO // remove alarm from the 'alarmd' alarms list Alarm alarm; alarm.deleteAlarm(event.conferenceId(), event.id()); // TODO: test if removing was successfull #endif /* MAEMO */ } else { event.setHasAlarm(true); alarmButton->setIcon(QIcon(":/icons/alarm-on.png")); #ifdef MAEMO // add alarm to the 'alarmd' Alarm alarm; alarm.addAlarm(event.conferenceId(), event.id(), event.title(), event.start().addSecs(-AppSettings::preEventAlarmSec())); #endif /* MAEMO */ } event.update("alarm"); // since the Alarm icon has changed, update TreeView accordingly // all TreeViews have to listen on this signal 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; } }