Skip to content

Commit

Permalink
Merge branch 'fix_reminder_none' into 'master'
Browse files Browse the repository at this point in the history
[calendar-plugin] Fix saving event with no reminder. Fixes JB#41760

See merge request mer-core/nemo-qml-plugin-calendar!20
  • Loading branch information
pvuorela committed Apr 25, 2018
2 parents 95f8cfb + 537ce11 commit 9d24101
Show file tree
Hide file tree
Showing 4 changed files with 23 additions and 10 deletions.
3 changes: 2 additions & 1 deletion lightweight/calendardataservice/calendardataservice.h
Expand Up @@ -41,7 +41,8 @@

class NemoCalendarAgendaModel;

class CalendarDataService : public QObject {
class CalendarDataService : public QObject
{
Q_OBJECT

public:
Expand Down
4 changes: 3 additions & 1 deletion src/calendarimportevent.cpp
Expand Up @@ -100,10 +100,12 @@ NemoCalendarEvent::Reminder CalendarImportEvent::reminder() const

int CalendarImportEvent::reminderSeconds() const
{
// FIXME: this doesn't know how to say "no reminder".
if (!mEvent)
return 0;

return NemoCalendarUtils::getReminderSeconds(mEvent);
bool hasReminder = false;
return NemoCalendarUtils::getReminderSeconds(mEvent, &hasReminder);
}

QString CalendarImportEvent::uniqueId() const
Expand Down
24 changes: 17 additions & 7 deletions src/calendarutils.cpp
Expand Up @@ -84,7 +84,7 @@ NemoCalendarEvent::Secrecy NemoCalendarUtils::convertSecrecy(const KCalCore::Eve
}
}

int NemoCalendarUtils::getReminderSeconds(const KCalCore::Event::Ptr &event)
int NemoCalendarUtils::getReminderSeconds(const KCalCore::Event::Ptr &event, bool *hasReminder)
{
KCalCore::Alarm::List alarms = event->alarms();

Expand All @@ -94,22 +94,32 @@ int NemoCalendarUtils::getReminderSeconds(const KCalCore::Event::Ptr &event)
if (alarms.at(ii)->type() == KCalCore::Alarm::Procedure)
continue;

if (alarm)
return NemoCalendarEvent::ReminderNone;
else
if (alarm) {
*hasReminder = false;
return 0;
} else {
alarm = alarms.at(ii);
}
}

if (!alarm)
return NemoCalendarEvent::ReminderNone;
if (!alarm) {
*hasReminder = false;
return 0;
}

KCalCore::Duration d = alarm->startOffset();
*hasReminder = true;
return d.asSeconds();
}

NemoCalendarEvent::Reminder NemoCalendarUtils::getReminder(const KCalCore::Event::Ptr &event)
{
int sec = getReminderSeconds(event);
bool hasReminder = false;
int sec = getReminderSeconds(event, &hasReminder);

if (!hasReminder) {
return NemoCalendarEvent::ReminderNone;
}

switch (sec) {
case 0:
Expand Down
2 changes: 1 addition & 1 deletion src/calendarutils.h
Expand Up @@ -44,7 +44,7 @@ namespace NemoCalendarUtils {

NemoCalendarEvent::Recur convertRecurrence(const KCalCore::Event::Ptr &event);
NemoCalendarEvent::Secrecy convertSecrecy(const KCalCore::Event::Ptr &event);
int getReminderSeconds(const KCalCore::Event::Ptr &event);
int getReminderSeconds(const KCalCore::Event::Ptr &event, bool *hasReminder);
NemoCalendarEvent::Reminder getReminder(const KCalCore::Event::Ptr &event);
QList<NemoCalendarData::Attendee> getEventAttendees(const KCalCore::Event::Ptr &event);
QList<QObject*> convertAttendeeList(const QList<NemoCalendarData::Attendee> &list);
Expand Down

0 comments on commit 9d24101

Please sign in to comment.