本文整理汇总了C++中Todo::addAttendee方法的典型用法代码示例。如果您正苦于以下问题:C++ Todo::addAttendee方法的具体用法?C++ Todo::addAttendee怎么用?C++ Todo::addAttendee使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Todo
的用法示例。
在下文中一共展示了Todo::addAttendee方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: contentsDropEvent
void KOTodoListView::contentsDropEvent( QDropEvent *e )
{
#ifndef KORG_NODND
kdDebug(5850) << "KOTodoListView::contentsDropEvent" << endl;
if ( !mCalendar || !mChanger ||
( !ICalDrag::canDecode( e ) && !VCalDrag::canDecode( e ) &&
!QTextDrag::canDecode( e ) ) ) {
e->ignore();
return;
}
DndFactory factory( mCalendar );
Todo *todo = factory.createDropTodo(e);
if ( todo ) {
e->acceptAction();
KOTodoViewItem *destination =
(KOTodoViewItem *)itemAt(contentsToViewport(e->pos()));
Todo *destinationEvent = 0;
if (destination) destinationEvent = destination->todo();
Todo *existingTodo = mCalendar->todo(todo->uid());
if( existingTodo ) {
kdDebug(5850) << "Drop existing Todo " << existingTodo << " onto " << destinationEvent << endl;
Incidence *to = destinationEvent;
while(to) {
if (to->uid() == todo->uid()) {
KMessageBox::information(this,
i18n("Cannot move to-do to itself or a child of itself."),
i18n("Drop To-do"), "NoDropTodoOntoItself" );
delete todo;
return;
}
to = to->relatedTo();
}
Todo*oldTodo = existingTodo->clone();
if ( mChanger->beginChange( existingTodo ) ) {
existingTodo->setRelatedTo( destinationEvent );
mChanger->changeIncidence( oldTodo, existingTodo, KOGlobals::RELATION_MODIFIED );
mChanger->endChange( existingTodo );
} else {
KMessageBox::sorry( this, i18n("Unable to change to-do's parent, "
"because the to-do cannot be locked.") );
}
delete oldTodo;
delete todo;
} else {
// kdDebug(5850) << "Drop new Todo" << endl;
todo->setRelatedTo(destinationEvent);
if ( !mChanger->addIncidence( todo, this ) ) {
KODialogManager::errorSaveIncidence( this, todo );
delete todo;
return;
}
}
}
else {
QString text;
KOTodoViewItem *todoi = dynamic_cast<KOTodoViewItem *>(itemAt( contentsToViewport(e->pos()) ));
if ( ! todoi ) {
// Not dropped on a todo item:
e->ignore();
kdDebug( 5850 ) << "KOTodoListView::contentsDropEvent(): Not dropped on a todo item" << endl;
kdDebug( 5850 ) << "TODO: Create a new todo with the given data" << endl;
// FIXME: Create a new todo with the given text/contact/whatever
} else if ( QTextDrag::decode(e, text) ) {
//QListViewItem *qlvi = itemAt( contentsToViewport(e->pos()) );
kdDebug(5850) << "Dropped : " << text << endl;
Todo*todo = todoi->todo();
if( mChanger->beginChange( todo ) ) {
Todo*oldtodo = todo->clone();
if( text.startsWith( "file:" ) ) {
todo->addAttachment( new Attachment( text ) );
} else {
QStringList emails = KPIM::splitEmailAddrList( text );
for(QStringList::ConstIterator it = emails.begin();it!=emails.end();++it) {
kdDebug(5850) << " Email: " << (*it) << endl;
int pos = (*it).find("<");
QString name = (*it).left(pos);
QString email = (*it).mid(pos);
if (!email.isEmpty() && todoi) {
todo->addAttendee( new Attendee( name, email ) );
}
}
}
mChanger->changeIncidence( oldtodo, todo );
mChanger->endChange( todo );
} else {
KMessageBox::sorry( this, i18n("Unable to add attendees to the to-do, "
"because the to-do cannot be locked.") );
}
}
else {
kdDebug(5850) << "KOTodoListView::contentsDropEvent(): Todo from drop not decodable" << endl;
e->ignore();
}
//.........这里部分代码省略.........
示例2: acceptReply
bool Scheduler::acceptReply(IncidenceBase *incidence,ScheduleMessage::Status /* status */, Method method)
{
if(incidence->type()=="FreeBusy") {
return acceptFreeBusy(incidence, method);
}
bool ret = false;
Event *ev = mCalendar->event(incidence->uid());
Todo *to = mCalendar->todo(incidence->uid());
// try harder to find the correct incidence
if ( !ev && !to ) {
const Incidence::List list = mCalendar->incidences();
for ( Incidence::List::ConstIterator it = list.begin(), end = list.end(); it != end; ++it ) {
if ( (*it)->schedulingID() == incidence->uid() ) {
ev = dynamic_cast<Event*>( *it );
to = dynamic_cast<Todo*>( *it );
break;
}
}
}
if (ev || to) {
//get matching attendee in calendar
kdDebug(5800) << "Scheduler::acceptTransaction match found!" << endl;
Attendee::List attendeesIn = incidence->attendees();
Attendee::List attendeesEv;
Attendee::List attendeesNew;
if (ev) attendeesEv = ev->attendees();
if (to) attendeesEv = to->attendees();
Attendee::List::ConstIterator inIt;
Attendee::List::ConstIterator evIt;
for ( inIt = attendeesIn.begin(); inIt != attendeesIn.end(); ++inIt ) {
Attendee *attIn = *inIt;
bool found = false;
for ( evIt = attendeesEv.begin(); evIt != attendeesEv.end(); ++evIt ) {
Attendee *attEv = *evIt;
if (attIn->email().lower()==attEv->email().lower()) {
//update attendee-info
kdDebug(5800) << "Scheduler::acceptTransaction update attendee" << endl;
attEv->setStatus(attIn->status());
attEv->setDelegate(attIn->delegate());
attEv->setDelegator(attIn->delegator());
ret = true;
found = true;
}
}
if ( !found && attIn->status() != Attendee::Declined )
attendeesNew.append( attIn );
}
bool attendeeAdded = false;
for ( Attendee::List::ConstIterator it = attendeesNew.constBegin(); it != attendeesNew.constEnd(); ++it ) {
Attendee* attNew = *it;
QString msg = i18n("%1 wants to attend %2 but was not invited.").arg( attNew->fullName() )
.arg( ev ? ev->summary() : to->summary() );
if ( !attNew->delegator().isEmpty() )
msg = i18n("%1 wants to attend %2 on behalf of %3.").arg( attNew->fullName() )
.arg( ev ? ev->summary() : to->summary() )
.arg( attNew->delegator() );
if ( KMessageBox::questionYesNo( 0, msg, i18n("Uninvited attendee"),
KGuiItem(i18n("Accept Attendance")), KGuiItem(i18n("Reject Attendance")) )
!= KMessageBox::Yes )
{
KCal::Incidence *cancel = dynamic_cast<Incidence*>( incidence );
if ( cancel )
cancel->addComment( i18n( "The organizer rejected your attendance at this meeting." ) );
performTransaction( cancel ? cancel : incidence, Scheduler::Cancel, attNew->fullName() );
delete cancel;
continue;
}
Attendee *a = new Attendee( attNew->name(), attNew->email(), attNew->RSVP(),
attNew->status(), attNew->role(), attNew->uid() );
a->setDelegate( attNew->delegate() );
a->setDelegator( attNew->delegator() );
if ( ev )
ev->addAttendee( a );
else if ( to )
to->addAttendee( a );
ret = true;
attendeeAdded = true;
}
// send update about new participants
if ( attendeeAdded ) {
if ( ev ) {
ev->setRevision( ev->revision() + 1 );
performTransaction( ev, Scheduler::Request );
}
if ( to ) {
to->setRevision( ev->revision() + 1 );
performTransaction( to, Scheduler::Request );
}
}
if ( ret ) {
// We set at least one of the attendees, so the incidence changed
// Note: This should not result in a sequence number bump
if ( ev )
ev->updated();
//.........这里部分代码省略.........