Пример #1
0
Maemo::Timed::Event::Recurrence & Maemo::Timed::Event::addRecurrence()
{
  Maemo::Timed::event_recurrence_pimple_t *pr = new Maemo::Timed::event_recurrence_pimple_t ;
  pr->recurrence_no = p->r.size() ;
  pr->eio = & p->eio ;
  p->r.push_back(pr) ;
  p->eio.recrs.resize(pr->recurrence_no+1) ;
  return *getRecurrence(pr) ;
}
QByteArray KMoneyThingFile::dump()
{
  QByteArray output;
  QDataStream stream(output, IO_WriteOnly);
  
  stream << (QString) "KMoneyThing Document" << (QString) "pre1_draft";
  stream << (QString) "<name>" << mName << (QString) "</name>";
  stream << (QString) "<locale>" << mLocale << (QString) "</locale>";
  for (Q_UINT32 aI = 0; aI < accounts(); aI++)
  {
    KMoneyThingAccount* account = getAccount(aI);
    stream << (QString) "<account>";
    stream << (QString) "<type>" << account->type() << (QString) "</type>";
    stream << (QString) "<name>" << account->name() << (QString) "</name>";
    stream << (QString) "<description>" << account->description() << (QString) "</description>";
    stream << (QString) "<accountNumber>" << account->accountNumber() << (QString) "</accountNumber>";
    stream << (QString) "<institution>" << account->institution() << (QString) "</institution>";
    stream << (QString) "<locale>" << account->locale() << (QString) "</locale>";
    stream << (QString) "<balance>" << account->balance() << (QString) "</balance>";
    stream << (QString) "<startingBalance>" << account->startingBalance() << (QString) "</startingBalance>";
    for (Q_UINT32 tI = 0; tI < account->transactions(); tI++)
    {
      KMoneyThingTransaction* transaction = account->getTransaction(tI);
      stream << (QString) "<transaction>";
      stream << (QString) "<name>" << transaction->name() << (QString) "</name>";
      stream << (QString) "<type>" << transaction->type() << (QString) "</type>";
      stream << (QString) "<category>" << transaction->category() << (QString) "</category>";
      stream << (QString) "<payee>" << transaction->payee() << (QString) "</payee>";
      stream << (QString) "<state>" << transaction->state() << (QString) "</state>";
      stream << (QString) "<statement>" << transaction->statementId() << (QString) "</statement>";
      stream << (QString) "<split>" << transaction->split() << (QString) "</split>";
      stream << (QString) "<foreign>" << transaction->foreign() << (QString) "</foreign>";
      stream << (QString) "<exRate>" << transaction->exchangeRate() << (QString) "</exRate>";
      stream << (QString) "<accCurIn>" << transaction->accountCurrencyIn() << (QString) "</accCurIn>";
      stream << (QString) "<accCurOut>" << transaction->accountCurrencyOut() << (QString) "</accCurOut>";
      stream << (QString) "<trCurIn>" << transaction->transactionCurrencyIn() << (QString) "</trCurIn>";
      stream << (QString) "<trCurOut>" << transaction->transactionCurrencyOut() << (QString) "</trCurOut>";
      stream << (QString) "<trCurName>" << transaction->transactionCurrencyName() << (QString) "</trCurName>";
      for (Q_UINT32 stI = 0; stI < transaction->subTransactions(); stI++)
      {
        KMoneyThingSubTransaction* subTransaction = transaction->getSubTransaction(stI);
        stream << (QString) "<subTransaction>";
        stream << (QString) "<name>" << subTransaction->name() << (QString) "</name>";
        stream << (QString) "<category>" << subTransaction->category() << (QString) "</category>";
        stream << (QString) "<trCurIn>" << subTransaction->transactionCurrencyIn() << (QString) "</trCurIn>";
        stream << (QString) "<trCurOut>" << subTransaction->transactionCurrencyOut() << (QString) "</trCurOut>";
        stream << (QString) "</subTransaction>";
      }
      for (Q_UINT32 rI = 0; rI < transaction->references(); rI++)
      {
        KMoneyThingTransaction::Reference* reference = transaction->getReference(rI);
        stream << (QString) "<reference>";
        stream << (QString) "<refAccount>" << reference->accountName << (QString) "</refAccount>";
        stream << (QString) "<refTransaction>" << reference->transactionID << (QString) "</refTransaction>";
        stream << (QString) "</reference>";
      }
      stream << (QString) "</transaction>";
    }
    stream << (QString) "</account>";
  }
  for (Q_UINT32 cI = 0; cI < categories(); cI++)
    stream << (QString) "<category>" << getCategory(cI) << (QString) "</category>";
  for (Q_UINT32 rI = 0; rI < recurrences(); rI++)
  {
    KMoneyThingRecurringTransaction* transaction = getRecurrence(rI);
    stream << (QString) "<recurrence>";
    // If KMoneyThingTransaction is changed, copy its new code from above,
    // overwriting from ***HERE*** ...
    stream << (QString) "<name>" << transaction->name() << (QString) "</name>";
    stream << (QString) "<type>" << transaction->type() << (QString) "</type>";
    stream << (QString) "<category>" << transaction->category() << (QString) "</category>";
    stream << (QString) "<state>" << transaction->state() << (QString) "</state>";
    stream << (QString) "<statement>" << transaction->statementId() << (QString) "</statement>";
    stream << (QString) "<split>" << transaction->split() << (QString) "</split>";
    stream << (QString) "<foreign>" << transaction->foreign() << (QString) "</foreign>";
    stream << (QString) "<exRate>" << transaction->exchangeRate() << (QString) "</exRate>";
    stream << (QString) "<accCurIn>" << transaction->accountCurrencyIn() << (QString) "</accCurIn>";
    stream << (QString) "<accCurOut>" << transaction->accountCurrencyOut() << (QString) "</accCurOut>";
    stream << (QString) "<trCurIn>" << transaction->transactionCurrencyIn() << (QString) "</trCurIn>";
    stream << (QString) "<trCurOut>" << transaction->transactionCurrencyOut() << (QString) "</trCurOut>";
    stream << (QString) "<trCurName>" << transaction->transactionCurrencyName() << (QString) "</trCurName>";
    for (Q_UINT32 stI = 0; stI < transaction->subTransactions(); stI++)
    {
      KMoneyThingSubTransaction* subTransaction = transaction->getSubTransaction(stI);
      stream << (QString) "<subTransaction>";
      stream << (QString) "<name>" << subTransaction->name() << (QString) "</name>";
      stream << (QString) "<category>" << subTransaction->category() << (QString) "</category>";
      stream << (QString) "<trCurIn>" << subTransaction->transactionCurrencyIn() << (QString) "</trCurIn>";
      stream << (QString) "<trCurOut>" << subTransaction->transactionCurrencyOut() << (QString) "</trCurOut>";
      stream << (QString) "</subTransaction>";
    }
    for (Q_UINT32 rI = 0; rI < transaction->references(); rI++)
    {
      KMoneyThingTransaction::Reference* reference = transaction->getReference(rI);
      stream << (QString) "<reference>";
      stream << (QString) "<refAccount>" << reference->accountName << (QString) "</refAccount>";
      stream << (QString) "<refTransaction>" << reference->transactionID << (QString) "</refTransaction>";
      stream << (QString) "</reference>";
    }
    // ... to ***HERE***
    stream << (QString) "<recurrency>" << transaction->recurrence() << (QString) "</recurrency>";
    stream << (QString) "<xDays>" << transaction->xDays() << (QString) "</xDays>";
    stream << (QString) "<firstDate>" << transaction->firstDate() << (QString) "</firstDate>";
    stream << (QString) "<daysOn>";
    for (char i = 0; i < 7; i++)
      stream << transaction->isDayOn(i);
    stream << (QString) "</daysOn>";
    stream << (QString) "</recurrence>";
  }
  
  stream.device()->close();
  return qCompress(output);
}
Пример #3
0
Maemo::Timed::Event::Recurrence & Maemo::Timed::Event::recurrence(int index)
{
  return *getRecurrence(p->r.at(index)) ;
}
Пример #4
0
string CTodo::toString()
{
    CAlarm *pAlarm;
    CRecurrence *cRec;
    string szRet;
    string szTemp;
    time_t temp = 0;
    std::stringstream ss;
    ss << "ID=";
    if (getId().c_str()){
	szTemp= getId().substr(0,100);
	ss << szTemp;
	szTemp.clear();
    }
    else
	ss << NULL_STRING;

    ss << ",CalendarId=";
    ss << getCalendarId();

    ss << ",summary=";
    if (getSummary().c_str()){
	szTemp= getSummary().substr(0,100);
	ss << szTemp;
	szTemp.clear();
    }

    else
	ss << NULL_STRING;
    ss << ",description=";
    if (getDescription().c_str()){
	szTemp= getDescription().substr(0,100);
	ss << szTemp;
	szTemp.clear();
    }

    else
	ss << NULL_STRING;
    ss << ",location=";
    if (getLocation().c_str()){
	szTemp= getLocation().substr(0,100);
	ss << szTemp;
	szTemp.clear();
    }

    else
	ss << NULL_STRING;
    ss << ",UId=";
    if (getGUid().c_str()){
	szTemp= getGUid().substr(0,100);
	ss << szTemp;
	szTemp.clear();
    }
    else
	ss << NULL_STRING;

    ss << ",TimeZone=";
    if (getTzid().c_str()){
	szTemp= getTzid().substr(0,100);
	ss << szTemp;
	szTemp.clear();
    }
    else
	ss << NULL_STRING;
    ss << ",Type=";
    ss << getType() ;
    ss << ",Flags=";
    switch (getFlags()){
	case HAS_ATTENDEE:
	    ss << "Has Attendee";
	    break;
	case HAS_ORGANIZER:
	    ss << "Has Organizer";
	    break;
	case HAS_RECURRENCE:
	    ss << "Has Recurrence";
	    break;
	case HAS_ALARM:
	    ss << "Has Alarm";
	    break;
	case HAS_RECURRENCE_ALARM :
	    ss << "Has Recurrent Alarm";
	    break;
	case HAS_PARTICIPANT :
	    ss << "Has Participant";
	    break;
	case HAS_CATEGORIES :
	    ss << "Has Categories";
	    break;
	case HAS_COMMENT:
	    ss << "Has Comment ";
	    break;
	case HAS_EXTRA:
	    ss << "Has Extra ";
	    break;
	default:
	    break;
    }

    ss << ",Status=";
    ss << getStatus();
    ss << ",Start date=";
    temp = getDateStart();
    ss << ctime(&temp);
    ss << ",End date=";
    temp = getDateEnd();
    ss << ctime(&temp);
    ss << ",Last modified=";
    temp = getLastModified();
    ss << ctime(&temp);
    ss << ",created=";
    temp = getCreatedTime();
    ss << ctime(&temp);
    ss << ",until=";
    temp = getUntil();
    ss << ctime(&temp);

    ss << ",All day=";
    ss << getAllDay();
    ss << ",Geo=";
    if (szGeo.c_str()){
	szTemp= szGeo.substr(0,100);
	ss << szTemp;
	szTemp.clear();
    }
    else
	ss << NULL_STRING;

    ss << ",TodoDue=";
    ss << iDue;
    ss << ",Completed=";
    ss << iCompleted;
    ss << ",Percent";
    ss << iPercentComplete;
    ss << ",Priority";
    ss << iPriority;
    pAlarm=getAlarm();
    if(pAlarm)
	ss << pAlarm->toString();
    else
	ss << ",Alarm=NULL";
    cRec=getRecurrence();
    if(cRec)
	ss << cRec->toString();
    else
	ss << ",Rec=NULL";

    szRet.append(ss.str());
    return szRet;
}