本文整理汇总了C++中Todo类的典型用法代码示例。如果您正苦于以下问题:C++ Todo类的具体用法?C++ Todo怎么用?C++ Todo使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。
在下文中一共展示了Todo类的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: calendar
void KOTodoView::changeIncidenceDisplay(Incidence *incidence, int action)
{
// The todo view only displays todos, so exit on all other incidences
if ( incidence->type() != "Todo" )
return;
CalFilter *filter = calendar()->filter();
bool isFiltered = filter && !filter->filterIncidence( incidence );
Todo *todo = static_cast<Todo *>(incidence);
if ( todo ) {
KOTodoViewItem *todoItem = 0;
if ( mTodoMap.contains( todo ) ) {
todoItem = mTodoMap[todo];
}
switch ( action ) {
case KOGlobals::INCIDENCEADDED:
case KOGlobals::INCIDENCEEDITED:
// If it's already there, edit it, otherwise just add
if ( todoItem ) {
if ( isFiltered ) {
scheduleRemoveTodoItem( todoItem );
} else {
// correctly update changes in relations
Todo*parent = dynamic_cast<Todo*>( todo->relatedTo() );
KOTodoViewItem*parentItem = 0;
if ( parent && mTodoMap.contains(parent) ) {
parentItem = mTodoMap[ parent ];
}
if ( todoItem->parent() != parentItem ) {
// The relations changed
if ( parentItem ) {
parentItem->insertItem( todoItem );
} else {
mTodoListView->insertItem( todoItem );
}
}
todoItem->construct();
}
} else {
if ( !isFiltered ) {
insertTodoItem( todo );
}
}
mTodoListView->sort();
break;
case KOGlobals::INCIDENCEDELETED:
if ( todoItem ) {
scheduleRemoveTodoItem( todoItem );
}
break;
default:
QTimer::singleShot( 0, this, SLOT( updateView() ) );
}
} else {
// use a QTimer here, because when marking todos finished using
// the checkbox, this slot gets called, but we cannot update the views
// because we're still inside KOTodoViewItem::stateChange
QTimer::singleShot(0,this,SLOT(updateView()));
}
}
示例2: pasteIncidence
Incidence * pasteIncidence( Incidence *inc,
const QDate &newDate,
const QTime *newTime = 0 )
{
if ( inc ) {
inc = inc->clone();
inc->recreate();
}
if ( inc && newDate.isValid() ) {
if ( inc->type() == "Event" ) {
Event *anEvent = static_cast<Event*>( inc );
// Calculate length of event
int daysOffset = anEvent->dtStart().date().daysTo(
anEvent->dtEnd().date() );
// new end date if event starts at the same time on the new day
KDateTime endDate( anEvent->dtEnd() );
endDate.setDate( newDate.addDays( daysOffset ) );
KDateTime startDate( anEvent->dtStart() );
startDate.setDate( newDate );
if ( newTime ) {
// additional offset for new time of day
int addSecsOffset( anEvent->dtStart().time().secsTo( *newTime ) );
endDate=endDate.addSecs( addSecsOffset );
startDate.setTime( *newTime );
}
anEvent->setDtStart( startDate );
anEvent->setDtEnd( endDate );
} else if ( inc->type() == "Todo" ) {
Todo *anTodo = static_cast<Todo*>( inc );
KDateTime dueDate( anTodo->dtDue() );
dueDate.setDate( newDate );
if ( newTime ) {
dueDate.setTime( *newTime );
}
anTodo->setDtDue( dueDate );
} else if ( inc->type() == "Journal" ) {
Journal *anJournal = static_cast<Journal*>( inc );
KDateTime startDate( anJournal->dtStart() );
startDate.setDate( newDate );
if ( newTime ) {
startDate.setTime( *newTime );
} else {
startDate.setTime( QTime( 0, 0, 0 ) );
}
anJournal->setDtStart( startDate );
} else {
kDebug() << "Trying to paste unknown incidence of type" << inc->type();
}
}
return inc;
}
示例3: if
void KOTodoView::setNewDate( QDate date )
{
if ( !mActiveItem || !mChanger ) return;
Todo *todo = mActiveItem->todo();
if ( !todo ) return;
if ( !todo->isReadOnly() && mChanger->beginChange( todo ) ) {
Todo *oldTodo = todo->clone();
QDateTime dt;
dt.setDate( date );
if ( !todo->doesFloat() )
dt.setTime( todo->dtDue().time() );
if ( date.isNull() )
todo->setHasDueDate( false );
else if ( !todo->hasDueDate() )
todo->setHasDueDate( true );
todo->setDtDue( dt );
mActiveItem->construct();
mChanger->changeIncidence( oldTodo, todo, KOGlobals::COMPLETION_MODIFIED );
mChanger->endChange( todo );
delete oldTodo;
} else {
kdDebug(5850) << "No active item, active item is read-only, or locking failed" << endl;
}
}
示例4: setNewPriority
void KOTodoView::setNewPriority(int index)
{
if ( !mActiveItem || !mChanger ) return;
Todo *todo = mActiveItem->todo();
if ( !todo->isReadOnly () &&
mChanger->beginChange( todo ) ) {
Todo *oldTodo = todo->clone();
todo->setPriority(mPriority[index]);
mActiveItem->construct();
mChanger->changeIncidence( oldTodo, todo, KOGlobals::PRIORITY_MODIFIED );
mChanger->endChange( todo );
delete oldTodo;
}
}
示例5: Todo
void KOTodoView::addQuickTodo()
{
if ( ! mQuickAdd->text().stripWhiteSpace().isEmpty() ) {
Todo *todo = new Todo();
todo->setSummary( mQuickAdd->text() );
todo->setOrganizer( Person( KOPrefs::instance()->fullName(),
KOPrefs::instance()->email() ) );
if ( !mChanger->addIncidence( todo, this ) ) {
KODialogManager::errorSaveIncidence( this, todo );
delete todo;
return;
}
mQuickAdd->setText( QString::null );
}
}
示例6: Todo
void TodoTest::testValidity()
{
QDate dt = QDate::currentDate();
Todo *todo = new Todo();
todo->setDtStart(KDateTime(dt));
todo->setDtDue(KDateTime(dt).addDays(1));
todo->setSummary(QStringLiteral("To-do1 Summary"));
todo->setDescription(QStringLiteral("This is a description of the first to-do"));
todo->setLocation(QStringLiteral("the place"));
todo->setPercentComplete(5);
//KDE5: QVERIFY( todo->typeStr() == i18n( "to-do" ) );
QVERIFY(todo->summary() == QLatin1String("To-do1 Summary"));
QVERIFY(todo->location() == QLatin1String("the place"));
QVERIFY(todo->percentComplete() == 5);
}
示例7: appendTodo
void KOWhatsNextView::appendTodo( Incidence *ev )
{
if ( mTodos.find( ev ) != mTodos.end() ) return;
mTodos.append( ev );
mText += "<li><a href=\"todo:" + ev->uid() + "\">";
mText += ev->summary();
mText += "</a>";
if ( ev->type()=="Todo" ) {
Todo *todo = static_cast<Todo*>(ev);
if ( todo->hasDueDate() ) {
mText += i18n(" (Due: %1)")
.arg( (todo->doesFloat())?(todo->dtDueDateStr()):(todo->dtDueStr()) );
}
}
mText += "</li>\n";
}
示例8: testRoles
void TodoTest::testRoles()
{
const KDateTime today = KDateTime::currentUtcDateTime();
const KDateTime yesterday = today.addDays(-1);
Todo todo;
todo.setDtStart(today.addDays(-1));
todo.setDtDue(today);
QCOMPARE(todo.dateTime(Incidence::RoleDisplayStart), today);
QCOMPARE(todo.dateTime(Incidence::RoleDisplayEnd), today);
todo.setDtDue(KDateTime());
QCOMPARE(todo.dateTime(Incidence::RoleDisplayStart), yesterday);
QCOMPARE(todo.dateTime(Incidence::RoleDisplayEnd), yesterday);
}
示例9: QLatin1String
void ComparisonVisitorTest::testTodoComparison()
{
const QString summary = QLatin1String( "Testing comparison" );
const QString desc = QLatin1String( "Testing ComparisonVisitor" );
Todo reference;
reference.setSummary( summary );
reference.setDescription( desc );
reference.setPercentComplete( 50 );
// create a copy of the reference incidence
Todo todo( reference );
IncidenceBase *baseReference = &reference;
IncidenceBase *baseIncidence = &todo;
QVERIFY( mComparator.compare( baseIncidence, baseReference ) );
// change a property of Todo (but not of IncidenceBase)
todo.setPercentComplete( 100 );
QVERIFY( !mComparator.compare( baseIncidence, baseReference ) );
}
示例10: changedCategories
void KOTodoView::changedCategories(int index)
{
if ( !mActiveItem || !mChanger ) return;
Todo *todo = mActiveItem->todo();
if ( !todo ) return;
if ( !todo->isReadOnly() && mChanger->beginChange( todo ) ) {
Todo *oldTodo = todo->clone();
QStringList categories = todo->categories ();
if ( categories.find( mCategory[index] ) != categories.end() )
categories.remove( mCategory[index] );
else
categories.insert( categories.end(), mCategory[index] );
categories.sort();
todo->setCategories( categories );
mActiveItem->construct();
mChanger->changeIncidence( oldTodo, todo, KOGlobals::CATEGORY_MODIFIED );
mChanger->endChange( todo );
delete oldTodo;
} else {
kdDebug(5850) << "No active item, active item is read-only, or locking failed" << endl;
}
}
示例11: kdDebug
void KOTodoView::setNewPercentage( KOTodoViewItem *item, int percentage )
{
kdDebug(5850) << "KOTodoView::setNewPercentage( " << percentage << "), item = " << item << endl;
if ( !item || !mChanger ) return;
Todo *todo = item->todo();
if ( !todo ) return;
if ( !todo->isReadOnly () && mChanger->beginChange( todo ) ) {
Todo *oldTodo = todo->clone();
/* Old code to make sub-items's percentage related to this one's:
QListViewItem *myChild = firstChild();
KOTodoViewItem *item;
while( myChild ) {
item = static_cast<KOTodoViewItem*>(myChild);
item->stateChange(state);
myChild = myChild->nextSibling();
}*/
if ( percentage == 100 ) {
todo->setCompleted( QDateTime::currentDateTime() );
// If the todo does recur, it doesn't get set as completed. However, the
// item is still checked. Uncheck it again.
if ( !todo->isCompleted() ) item->setState( QCheckListItem::Off );
else todo->setPercentComplete( percentage );
} else {
todo->setCompleted( false );
todo->setPercentComplete( percentage );
}
item->construct();
if ( todo->doesRecur() && percentage == 100 )
mChanger->changeIncidence( oldTodo, todo, KOGlobals::COMPLETION_MODIFIED_WITH_RECURRENCE );
else
mChanger->changeIncidence( oldTodo, todo, KOGlobals::COMPLETION_MODIFIED );
mChanger->endChange( todo );
delete oldTodo;
} else {
item->construct();
kdDebug(5850) << "No active item, active item is read-only, or locking failed" << endl;
}
}
示例12: dtDue
bool Todo::operator==( const Todo &todo ) const
{
return
Incidence::operator==( todo ) &&
dtDue() == todo.dtDue() &&
hasDueDate() == todo.hasDueDate() &&
hasStartDate() == todo.hasStartDate() &&
completed() == todo.completed() &&
hasCompletedDate() == todo.hasCompletedDate() &&
percentComplete() == todo.percentComplete();
}
示例13: dt
void KOTodoView::copyTodoToDate( QDate date )
{
QDateTime dt( date );
if ( mActiveItem && mChanger ) {
Todo *newTodo = mActiveItem->todo()->clone();
newTodo->recreate();
newTodo->setHasDueDate( !date.isNull() );
newTodo->setDtDue( dt );
newTodo->setPercentComplete( 0 );
// avoid forking
if ( newTodo->doesRecur() )
newTodo->recurrence()->unsetRecurs();
mChanger->addIncidence( newTodo, this );
}
}
示例14: kdDebug
/** Dissociate a single occurrence or all future occurrences from a recurring sequence.
The new incidence is returned, but not automatically inserted into the calendar,
which is left to the calling application */
Incidence *Calendar::dissociateOccurrence(Incidence *incidence, QDate date,
bool single)
{
if(!incidence || !incidence->doesRecur())
return 0;
Incidence *newInc = incidence->clone();
newInc->recreate();
newInc->setRelatedTo(incidence);
Recurrence *recur = newInc->recurrence();
if(single)
{
recur->clear();
}
else
{
// Adjust the recurrence for the future incidences. In particular
// adjust the "end after n occurrences" rules! "No end date" and "end by ..."
// don't need to be modified.
int duration = recur->duration();
if(duration > 0)
{
int doneduration = recur->durationTo(date.addDays(-1));
if(doneduration >= duration)
{
kdDebug(5850) << "The dissociated event already occurred more often "
<< "than it was supposed to ever occur. ERROR!" << endl;
recur->clear();
}
else
{
recur->setDuration(duration - doneduration);
}
}
}
// Adjust the date of the incidence
if(incidence->type() == "Event")
{
Event *ev = static_cast<Event *>(newInc);
QDateTime start(ev->dtStart());
int daysTo = start.date().daysTo(date);
ev->setDtStart(start.addDays(daysTo));
ev->setDtEnd(ev->dtEnd().addDays(daysTo));
}
else if(incidence->type() == "Todo")
{
Todo *td = static_cast<Todo *>(newInc);
bool haveOffset = false;
int daysTo = 0;
if(td->hasDueDate())
{
QDateTime due(td->dtDue());
daysTo = due.date().daysTo(date);
td->setDtDue(due.addDays(daysTo), true);
haveOffset = true;
}
if(td->hasStartDate())
{
QDateTime start(td->dtStart());
if(!haveOffset)
daysTo = start.date().daysTo(date);
td->setDtStart(start.addDays(daysTo));
haveOffset = true;
}
}
recur = incidence->recurrence();
if(recur)
{
if(single)
{
recur->addExDate(date);
}
else
{
// Make sure the recurrence of the past events ends
// at the corresponding day
recur->setEndDate(date.addDays(-1));
}
}
return newInc;
}
示例15: kil
void KOWhatsNextView::updateView()
{
KIconLoader kil("kdepim");
QString *ipath = new QString();
kil.loadIcon("kdepim",KIcon::NoGroup,32,KIcon::DefaultState,ipath);
mText = "<table width=\"100%\">\n";
mText += "<tr bgcolor=\"#3679AD\"><td><h1>";
mText += "<img src=\"";
mText += *ipath;
mText += "\">";
mText += "<font color=\"white\"> ";
mText += i18n("What's Next?") + "</font></h1>";
mText += "</td></tr>\n<tr><td>";
mText += "<h2>";
if ( mStartDate.daysTo( mEndDate ) < 1 ) {
mText += KGlobal::locale()->formatDate( mStartDate );
} else {
mText += i18n("Date from - to", "%1 - %2")
.arg( KGlobal::locale()->formatDate( mStartDate ) )
.arg( KGlobal::locale()->formatDate( mEndDate ) );
}
mText+="</h2>\n";
Event::List events;
for ( QDate date = mStartDate; date <= mEndDate; date = date.addDays( 1 ) )
events += calendar()->events(date, EventSortStartDate, SortDirectionAscending);
if (events.count() > 0) {
mText += "<p></p>";
kil.loadIcon("appointment",KIcon::NoGroup,22,KIcon::DefaultState,ipath);
mText += "<h2><img src=\"";
mText += *ipath;
mText += "\">";
mText += i18n("Events:") + "</h2>\n";
mText += "<table>\n";
Event::List::ConstIterator it;
for( it = events.begin(); it != events.end(); ++it ) {
Event *ev = *it;
if ( !ev->doesRecur() ){
appendEvent(ev);
} else {
// FIXME: This should actually be cleaned up. Libkcal should
// provide a method to return a list of all recurrences in a
// given time span.
Recurrence *recur = ev->recurrence();
int duration = ev->dtStart().secsTo( ev->dtEnd() );
QDateTime start = recur->getPreviousDateTime(
QDateTime( mStartDate, QTime() ) );
QDateTime end = start.addSecs( duration );
if ( end.date() >= mStartDate ) {
appendEvent( ev, start, end );
}
start = recur->getNextDateTime( start );
while ( start.isValid() && start.date() <= mEndDate ) {
appendEvent( ev, start );
start = recur->getNextDateTime( start );
}
}
}
mText += "</table>\n";
}
mTodos.clear();
Todo::List todos = calendar()->todos( TodoSortDueDate, SortDirectionAscending );
if ( todos.count() > 0 ) {
kil.loadIcon("todo",KIcon::NoGroup,22,KIcon::DefaultState,ipath);
mText += "<h2><img src=\"";
mText += *ipath;
mText += "\">";
mText += i18n("To-do:") + "</h2>\n";
mText += "<ul>\n";
Todo::List::ConstIterator it;
for( it = todos.begin(); it != todos.end(); ++it ) {
Todo *todo = *it;
if ( !todo->isCompleted() && todo->hasDueDate() && todo->dtDue().date() <= mEndDate )
appendTodo(todo);
}
bool gotone = false;
int priority = 1;
while (!gotone && priority<=9 ) {
for( it = todos.begin(); it != todos.end(); ++it ) {
Todo *todo = *it;
if (!todo->isCompleted() && (todo->priority() == priority) ) {
appendTodo(todo);
gotone = true;
}
}
priority++;
kdDebug(5850) << "adding the todos..." << endl;
}
mText += "</ul>\n";
}
QStringList myEmails( KOPrefs::instance()->allEmails() );
int replies = 0;
events = calendar()->events( QDate::currentDate(), QDate(2975,12,6) );
Event::List::ConstIterator it2;
for( it2 = events.begin(); it2 != events.end(); ++it2 ) {
//.........这里部分代码省略.........