KCal::Event* IncidenceConverter::convertFromAppointment( ngwt__Appointment* appointment )
{
  kDebug() <<"IncidenceConverter::convertFromAppointment()";
  if ( !appointment )
    return 0;

  KCal::Event *event = new KCal::Event();

  if ( !convertFromCalendarItem( appointment, event ) ) {
    delete event;
    return 0;
  }

  if ( appointment->allDayEvent && (*appointment->allDayEvent) )
  {
    event->setAllDay( true );

    if ( appointment->startDay != 0 )
      event->setDtStart( stringToKDateTime( appointment->startDay ).addDays( 1 ) );

    if ( appointment->endDay != 0 )
      //TODO: Use KDateTime::fromString()?
      event->setDtEnd( stringToKDateTime( appointment->endDay) );
    kDebug() <<" all day event.";
  }
  else
  {
    event->setAllDay( false );

    if ( appointment->startDate != 0 ) {
      event->setDtStart( charToKDateTime( appointment->startDate, mTimeSpec ) );
    }

    if ( appointment->endDate != 0 ) {
      event->setDtEnd( charToKDateTime( appointment->endDate, mTimeSpec ) );
    }
  }

  kDebug() <<"start date:" << event->dtStart();
  kDebug() <<"end date:" << event->dtEnd();

  if ( appointment->alarm ) {
    KCal::Alarm *alarm = event->newAlarm();
    alarm->setStartOffset( appointment->alarm->__item * -1 );
    alarm->setEnabled( appointment->alarm->enabled );
  }

  if ( appointment->place )
    event->setLocation( stringToQString( appointment->place ) );

  if ( appointment->acceptLevel ) {
    if ( *appointment->acceptLevel == Tentative )
      event->setTransparency( KCal::Event::Transparent );
    else
      event->setTransparency( KCal::Event::Opaque );
  }

  return event;
}
Esempio n. 2
0
KCal::Todo *IncidenceConverter::convertFromTask(ngwt__Task *task)
{
    if(!task)
        return 0;

    KCal::Todo *todo = new KCal::Todo();

    if(!convertFromCalendarItem(task, todo))
    {
        delete todo;
        return 0;
    }

    if(task->startDate)
    {
        todo->setHasStartDate(true);
        todo->setDtStart(stringToQDateTime(task->startDate));
    }

    if(task->dueDate)
    {
        todo->setHasDueDate(true);
        todo->setDtDue(stringToQDateTime(task->dueDate));
    }

    if(task->taskPriority)
    {
        QString priority = stringToQString(task->taskPriority);

        // FIXME: Store priority string somewhere

        int p = priority.toInt();
        if(p == 0) p = 3;

        todo->setPriority(p);
    }

    if(task->completed)
        todo->setCompleted(*task->completed);

    todo->setLocation(i18n("Novell GroupWise does not support locations for to-dos."));
    return todo;
}
KCal::Journal* IncidenceConverter::convertFromNote( ngwt__Note* note)
{
  kDebug();
  if ( !note )
    return 0;

  KCal::Journal *journal = new KCal::Journal();

  if ( !convertFromCalendarItem( note, journal ) ) {
    kDebug() << "Couldn't convert Note to Journal!";
    delete journal;
    return 0;
  }

  if ( note->startDate ) {
    kDebug() << "Journal start date is: " << note->startDate->c_str();
    journal->setDtStart( stringToKDateTime( note->startDate, mTimeSpec ) );
  }

  return journal;
}