⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 task.cpp

📁 Trolltech公司发布的图形界面操作系统。可在qt-embedded-2.3.10平台上编译为嵌入式图形界面操作系统。
💻 CPP
📖 第 1 页 / 共 2 页
字号:
	// check this key/value for a CHARSET field.	VObjectIterator tnit;	initPropIterator( &tnit, o );	QTextCodec *tc = 0;	while( moreIteration( &tnit ) ) {	    VObject *otc = nextVObject( &tnit );	    if ( qstrcmp(vObjectName(otc), VCCharSetProp ) == 0) {		tc = QTextCodec::codecForName(vObjectStringZValue(otc));		break;	    }	}	QString value;	if (tc)	    value = tc->toUnicode( vObjectStringZValue( o ) );	else	    value = vObjectStringZValue( o );	if ( name == VCDueProp ) {	    t.setDueDate( TimeConversion::fromISO8601( QCString(value) ).date() );	}	else if ( name == VCSummaryProp ) {	    summary = value;	}	else if ( name == VCDescriptionProp ) {	    description = value;	}	else if (name == VCAttachProp ) { 	    attach = value;	}	else if ( name == VCStatusProp ) {	    if ( value == "COMPLETED" )		t.setCompleted( TRUE );	}	else if ( name == VCCompletedProp ) {	    t.setCompletedDate(		    TimeConversion::fromISO8601( QCString(value) ).date() );	}	else if ( name == VCPriorityProp ) {	    t.setPriority( (PimTask::PriorityValue) value.toInt() );	}	else if (name == "X-Qtopia-STATUS" ) { 	    t.setStatus( (PimTask::TaskStatus) value.toInt() );	}	else if (name == "X-Qtopia-PERCOMP" ) { 	    t.setPercentCompleted( value.toInt() );	}	else if (name == "X-Qtopia-STARTED" ) { 	    t.setStartedDate(		    TimeConversion::fromISO8601( QCString(value) ).date() );	} else {	    qpe_setVObjectProperty(name,value,"Todo List",&t); // No tr	}    }    // Find best mapping from (Summary,Description,Attach) to our (Description,Notes)    // Similar code in event.cpp    if ( !!summary && !!description && summary != description ) {	t.setDescription( summary );	t.setNotes( description );	// all 3 - drop attach    } else if ( !!summary ) {	t.setDescription( summary );	t.setNotes( attach );    } else {	t.setDescription( description );	t.setNotes( attach );    }    return t;}/*!   Write the list of \a tasks as vCalendar objects to the file   specified by \a filename.   \sa readVCalendar()*/void PimTask::writeVCalendar( const QString &filename, const QValueList<PimTask> &tasks){  QFileDirect f( filename.utf8().data() );  if ( !f.open( IO_WriteOnly ) ) {    qWarning("Unable to open vcard write");    return;  }    QValueList<PimTask>::ConstIterator it;    for( it = tasks.begin(); it != tasks.end(); ++it ) {	VObject *obj = createVObject( *it );	writeVObject(f.directHandle() , obj );	cleanVObject( obj );    }    cleanStrTbl();}/*!   Write the \a task as a vCalendar to the file specified by \a filename.   \sa readVCalendar()*/void PimTask::writeVCalendar( const QString &filename, const PimTask &task){  QFileDirect f( filename.utf8().data() );  if ( !f.open( IO_WriteOnly ) ) {    qWarning("Unable to open vcard write");    return;  }  VObject *obj = createVObject( task );  writeVObject(f.directHandle() , obj );  cleanVObject( obj );  cleanStrTbl();}/*!  Reads the file specified by \a filename as a list of vCalendar objects  and returns the list of near equivalent tasks.  \sa writeVCalendar()*/QValueList<PimTask> PimTask::readVCalendar( const QString &filename ){    VObject *obj = Parse_MIME_FromFileName( (char *)filename.utf8().data() );    QValueList<PimTask> tasks;    qpe_startVObjectInput();    while ( obj ) {	QCString name = vObjectName( obj );	if ( name == VCCalProp ) {	    VObjectIterator nit;	    initPropIterator( &nit, obj );	    while( moreIteration( &nit ) ) {		VObject *o = nextVObject( &nit );		QCString name = vObjectName( o );		if ( name == VCTodoProp )		    tasks.append( parseVObject( o ) );	    }	} else if ( name == VCTodoProp ) {	    // shouldn't happen, but just to be sure	    tasks.append( parseVObject( obj ) );	}	VObject *t = obj;	obj = nextVObjectInList(obj);	cleanVObject( t );    }    qpe_endVObjectInput();    return tasks;}/*!  Returns a rich text formatted QString of the PimTask.*/QString PimTask::toRichText() const{    QString text;    text = "<center><b>" + Qtopia::escapeString(mDesc) + "</b></center><br>"; // No tr    if ( mDue )	text += "<b>" + qApp->translate("QtopiaPim", "Due:") + "</b> " + mDueDate.toString() + "<br>";    if ( !mStartedDate.isNull() && mStatus != NotStarted)	text += "<b>" + qApp->translate("QtopiaPim", "Started:") + "</b> " + mStartedDate.toString() + "<br>";    if ( !mCompletedDate.isNull() && isCompleted() )	text += "<b>" + qApp->translate("QtopiaPim", "Completed:") + "</b> " + mCompletedDate.toString() + "<br>";    //if ( !isCompleted() ) { //We remember old status and treat completed separately    // such remembering is already done by, status();        QString statusString = statusToTrString( status() );    text += "<b>" + qApp->translate("QtopiaPim", "Status:") + "</b> " + statusString + "<br>";    text +="<b>" + qApp->translate("QtopiaPim", "Priority:") + "</b> " + QString::number( mPriority ) + "<br>";    if ( (mStatus != NotStarted && !isCompleted() ) )	text += "<b>" + qApp->translate("QtopiaPim", "Completed:") + "</b> " + QString::number(mPercentCompleted) + " " +	    qApp->translate("QtopiaPim", "percent", "Word or symbol after numbers for percentage") + "<br>";    if ( !mNotes.isEmpty() )	text += "<br> <b> " + qApp->translate("QtopiaPim", "Notes:") + "</b> "	    + Qtopia::escapeMultiLineString(mNotes);    return text;}static int dueDateYear = -1;static int dueDateMonth = -1;static int dueDateDay = -1;/*!  \internal    // Reimplemenmted to handle post processing of reading a task*/void PimTask::setFields(const QMap<int,QString> &m){    dueDateYear = -1;    dueDateMonth = -1;    dueDateDay = -1;    PimRecord::setFields( m );    if ( dueDateYear != -1 && dueDateMonth != -1 && dueDateDay != -1 ) {	mDueDate.setYMD(dueDateYear, dueDateMonth, dueDateDay);    }}/*!  \internal*/void PimTask::setField(int key,const QString &s){    switch( key ) {	case HasDate: if ( s == "1" ) mDue = TRUE; break;	case Description: setDescription( s ); break;	case Priority: setPriority( (PriorityValue) (s).toInt() ); break;	case CompletedField: setCompleted( s == "1" ); break;	case PercentCompleted: setPercentCompleted( s.toInt() ); break;	case DueDateYear: dueDateYear = s.toInt(); break;	case DueDateMonth: dueDateMonth = s.toInt(); break;	case DueDateDay: dueDateDay = s.toInt(); break;	case Status: setStatus( xmlToStatus(s) ); break;	case StartedDate: setStartedDate( PimXmlIO::xmlToDate( s ) ); break;	case CompletedDate: setCompletedDate( PimXmlIO::xmlToDate(s) ); break;	case Notes: setNotes( s ); break;	default: PimRecord::setField(key, s);    }}/*!  \internal*/QString PimTask::field(int key) const{    switch( key ) {	case HasDate: return QString::number( mDue );	case Description: return mDesc;	case Priority:  return QString::number( mPriority );	case PercentCompleted: return QString::number( mPercentCompleted );	case CompletedField: return QString::number( mCompleted );	case DueDateYear: return QString::number( mDueDate.year() );	case DueDateMonth: return QString::number( mDueDate.month() );	case DueDateDay: return QString::number( mDueDate.day() );	case Status: return statusToXml( mStatus );	case StartedDate: return PimXmlIO::dateToXml( mStartedDate );	case CompletedDate:  return PimXmlIO::dateToXml( mCompletedDate );	case Notes: return mNotes;	default: return PimRecord::field(key);    }}static QMap<int, int> *uniquenessMapPtr = 0;static QMap<QCString, int> *identifierToKeyMapPtr = 0;static QMap<int, QCString> *keyToIdentifierMapPtr = 0;static QMap<int, QString> * trFieldsMapPtr = 0;QMap<int, QString> PimTask::fields() const{    QMap<int, QString> m = PimRecord::fields();    if (!keyToIdentifierMapPtr)	initMaps();    QMap<int, QCString>::Iterator it;    for (it = keyToIdentifierMapPtr->begin(); 	    it != keyToIdentifierMapPtr->end(); ++it) {	int i = it.key();	QString str = field(i);	if (!str.isEmpty())	    m.insert(i, str);    }    return m;}PimTask::TaskStatus PimTask::xmlToStatus(const QString &s){    if ( s == "InProgress" )	return InProgress;    else if ( s == "Completed" ) // No tr	return Completed;    else if ( s == "Waiting" ) // No tr	return Waiting;    else if ( s == "Deferred" ) // No tr	return Deferred;    else	return NotStarted;}QString PimTask::statusToXml(TaskStatus status){    switch( status ) {	default: return "NotStarted";	case InProgress: return "InProgress";    	case Completed: return "Completed"; // No tr	case Waiting: return "Waiting"; // No tr	case Deferred: return "Deferred"; // No tr    }}#ifndef QT_NO_DATASTREAMQDataStream &operator>>( QDataStream &s, PimTask &c ){    s >> (PimRecord&)c;    uchar val;    s >> val;    c.mDue = val == 0 ? FALSE : TRUE;    s >> c.mDueDate;    s >> val;    c.mCompleted = val == 0 ? FALSE : TRUE;    int p;    s >> p;    c.mPriority = (PimTask::PriorityValue) p;    s >> c.mDesc;    s >> c.mStartedDate;    s >> c.mCompletedDate;    int i;    s >> i;    c.mStatus = (PimTask::TaskStatus)i;    s >> c.mNotes;    return s;}QDataStream &operator<<( QDataStream &s, const PimTask &c ){    s << (const PimRecord&)c;    s << (c.mDue ? (uchar)1 : (uchar)0);    s << c.mDueDate;    s << (c.mCompleted ? (uchar)1 : (uchar)0);    s << c.mPriority;    s << c.mDesc;    s << c.mStartedDate;    s << c.mCompletedDate;    int i = (int) c.mStatus;    s << i;    s << c.mNotes;    return s;}static const QtopiaPimMapEntry todolistentries[] = {    { "HasDate", NULL, PimTask::HasDate, 0 },    { "Description", // No tr	    QT_TRANSLATE_NOOP("PimTask", "Description"), PimTask::Description, 50 },    { "Priority", QT_TRANSLATE_NOOP("PimTask", "Priority"), PimTask::Priority, 0 },    { "Completed", QT_TRANSLATE_NOOP("PimTask", "Completed"), PimTask::CompletedField, 0},    { "PercentCompleted", QT_TRANSLATE_NOOP("PimTask", "Percent Completed"), PimTask::PercentCompleted, 0},    { "DateYear", NULL, PimTask::DueDateYear, 0 },    { "DateMonth", NULL, PimTask::DueDateMonth, 0 },    { "DateDay", NULL, PimTask::DueDateDay, 0 },    { "Status", QT_TRANSLATE_NOOP("PimTask", "Status"), PimTask::Status, 0 },    { "StartedDate", QT_TRANSLATE_NOOP("PimTask", "Started Date"), PimTask::StartedDate, 50 },    { "CompletedDate", QT_TRANSLATE_NOOP("PimTask", "Completed Date"), PimTask::CompletedDate, 0 },    { "Notes", QT_TRANSLATE_NOOP("PimTask", "Notes"), PimTask::Notes, 0 },    { 0, 0, 0, 0 }};static const QtopiaPimMapEntry todolistentries_opie[] = {    { "HasDate", NULL, PimTask::HasDate, 0 },    { "Summary", // No tr	    QT_TRANSLATE_NOOP("PimTask", "Description"), PimTask::Description, 50 },    { "Priority", QT_TRANSLATE_NOOP("PimTask", "Priority"), PimTask::Priority, 0 },    { "Completed", QT_TRANSLATE_NOOP("PimTask", "Completed"), PimTask::CompletedField, 0},    { "PercentCompleted", QT_TRANSLATE_NOOP("PimTask", "Percent Completed"), PimTask::PercentCompleted, 0},    { "DateYear", NULL, PimTask::DueDateYear, 0 },    { "DateMonth", NULL, PimTask::DueDateMonth, 0 },    { "DateDay", NULL, PimTask::DueDateDay, 0 },    { "Status", QT_TRANSLATE_NOOP("PimTask", "Status"), PimTask::Status, 0 },    { "StartedDate", QT_TRANSLATE_NOOP("PimTask", "Started Date"), PimTask::StartedDate, 50 },    { "CompletedDate", QT_TRANSLATE_NOOP("PimTask", "Completed Date"), PimTask::CompletedDate, 0 },    { "Description", QT_TRANSLATE_NOOP("PimTask", "Notes"), PimTask::Notes, 0 },    { 0, 0, 0, 0 }};void PimTask::initMaps(){    PimTask::initMaps( FALSE );}void PimTask::initMaps( bool isOpieDevice ){    delete keyToIdentifierMapPtr;    keyToIdentifierMapPtr = new QMap<int, QCString>;    delete identifierToKeyMapPtr;    identifierToKeyMapPtr = new QMap<QCString, int>;    delete trFieldsMapPtr;    trFieldsMapPtr = new QMap<int,QString>;    delete uniquenessMapPtr;    uniquenessMapPtr = new QMap<int, int>;    PimRecord::initMaps("PimTask", (isOpieDevice?todolistentries_opie:todolistentries),	    *uniquenessMapPtr, *identifierToKeyMapPtr, *keyToIdentifierMapPtr, *trFieldsMapPtr );}/*!  \internal*/const QMap<int, QCString> &PimTask::keyToIdentifierMap(){    if ( !keyToIdentifierMapPtr )	initMaps();    return *keyToIdentifierMapPtr;}/*!  \internal*/const QMap<QCString,int> &PimTask::identifierToKeyMap(){    if ( !identifierToKeyMapPtr )	initMaps();    return *identifierToKeyMapPtr;}/*!  \internal*/const QMap<int, QString> & PimTask::trFieldsMap(){    if ( !trFieldsMapPtr )	initMaps();    return *trFieldsMapPtr;}/*!  \internal*/const QMap<int,int> & PimTask::uniquenessMap(){    if ( !uniquenessMapPtr )	initMaps();    return *uniquenessMapPtr;}#endif

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -