Incidence *ICalFormat::fromString(const QString &text) { CalendarLocal cal(mTimeZoneId); fromString(&cal, text); Incidence *ical = 0; Event::List elist = cal.events(); if(elist.count() > 0) { ical = elist.first(); } else { Todo::List tlist = cal.todos(); if(tlist.count() > 0) { ical = tlist.first(); } else { Journal::List jlist = cal.journals(); if(jlist.count() > 0) { ical = jlist.first(); } } } return ical ? ical->clone() : 0; }
void KNotesPlugin::processDropEvent( QDropEvent *event ) { const QMimeData *md = event->mimeData(); if ( KVCardDrag::canDecode( md ) ) { KABC::Addressee::List contacts; KVCardDrag::fromMimeData( md, contacts ); KABC::Addressee::List::ConstIterator it; QStringList attendees; for ( it = contacts.constBegin(); it != contacts.constEnd(); ++it ) { QString email = (*it).fullEmail(); if ( email.isEmpty() ) { attendees.append( (*it).realName() + "<>" ); } else { attendees.append( email ); } } event->accept(); static_cast<KNotesPart *>( part() )->newNote( i18nc( "@item", "Meeting" ), attendees.join( ", " ) ); return; } if ( ICalDrag::canDecode( event->mimeData() ) ) { CalendarLocal cal( KSystemTimeZones::local() ); if ( ICalDrag::fromMimeData( event->mimeData(), &cal ) ) { Journal::List journals = cal.journals(); if ( !journals.isEmpty() ) { event->accept(); Journal *j = journals.first(); static_cast<KNotesPart *>( part() )-> newNote( i18nc( "@item", "Note: %1", j->summary() ), j->description() ); return; } // else fall through to text decoding } } if ( md->hasText() ) { static_cast<KNotesPart *>( part() )->newNote( i18nc( "@item", "New Note" ), md->text() ); return; } if ( MailList::canDecode( md ) ) { MailList mails = MailList::fromMimeData( md ); event->accept(); if ( mails.count() != 1 ) { KMessageBox::sorry( core(), i18nc( "@info", "Dropping multiple mails is not supported." ) ); } else { MailSummary mail = mails.first(); QString txt = i18nc( "@item", "From: %1\nTo: %2\nSubject: %3", mail.from(), mail.to(), mail.subject() ); static_cast<KNotesPart *>( part() )->newNote( i18nc( "@item", "Mail: %1", mail.subject() ), txt ); } return; } kWarning() << QString( "Cannot handle drop events of type '%1'." ).arg( event->format() ); }