33FreeBusy::FreeBusy(
const TQDateTime &start, 
const TQDateTime &end)
 
   39FreeBusy::FreeBusy( 
Calendar *calendar, 
const TQDateTime &start, 
const TQDateTime &end )
 
   41  kdDebug(5800) << 
"FreeBusy::FreeBusy" << endl;
 
   50  int extraDays, i, x, duration;
 
   51  duration = start.daysTo(end);
 
   56  Event::List::ConstIterator it;
 
   57  for( it = eventList.begin(); it != eventList.end(); ++it ) {
 
   64    Event *floatingEvent = 0;
 
   65    if ( event->doesFloat() ) {
 
   67      kdDebug(5800) << 
"Floating event\n";
 
   68      floatingEvent = 
new Event( *event );
 
   71      TQDateTime start( floatingEvent->
dtStart().date(), TQTime( 0, 0 ) );
 
   72      TQDateTime end( floatingEvent->
dtEnd().date(), TQTime( 23, 59, 59, 999 ) );
 
   77      kdDebug(5800) << 
"Use: " << start.toString() << 
" to " << end.toString()
 
   80      event = floatingEvent;
 
   88    if ( event->transparency() == Event::Transparent )
 
   92    for( i = 0; i <= duration; ++i ) {
 
   93      day=(start.addDays(i).date());
 
   94      tmpStart.setDate(day);
 
   97      if( event->doesRecur() ) {
 
   98        if ( event->isMultiDay() ) {
 
  101          extraDays = 
event->
dtStart().date().daysTo(event->dtEnd().date());
 
  102          for ( x = 0; x <= extraDays; ++x ) {
 
  103            if ( event->recursOn(day.addDays(-x))) {
 
  104              tmpStart.setDate(day.addDays(-x));
 
  105              tmpStart.setTime(event->dtStart().time());
 
  106              tmpEnd=tmpStart.addSecs( (event->duration()) );
 
  108              addLocalPeriod( tmpStart, tmpEnd );
 
  113          if (event->recursOn(day)) {
 
  114            tmpStart.setTime(event->dtStart().time());
 
  115            tmpEnd.setTime(event->dtEnd().time());
 
  117            addLocalPeriod (tmpStart, tmpEnd);
 
  124    addLocalPeriod(event->dtStart(), event->dtEnd());
 
  127    delete floatingEvent;
 
  137bool FreeBusy::setDtEnd( 
const TQDateTime &end )
 
  143TQDateTime FreeBusy::dtEnd()
 const 
  148PeriodList FreeBusy::busyPeriods()
 const 
  153bool FreeBusy::addLocalPeriod(
const TQDateTime &eventStart, 
const TQDateTime &eventEnd ) {
 
  159  if ( !( ( ( 
dtStart().secsTo(eventStart) >= 0 ) &&
 
  160            ( eventStart.secsTo(dtEnd()) >= 0 ) )
 
  161       || ( ( 
dtStart().secsTo(eventEnd) >= 0 ) &&
 
  162            ( eventEnd.secsTo(dtEnd()) >= 0 ) ) ) )
 
  165  if ( eventStart.secsTo( 
dtStart() ) >= 0 ) {
 
  168    tmpStart = eventStart;
 
  171  if ( eventEnd.secsTo( dtEnd() ) <= 0 ) {
 
  177  Period p(tmpStart, tmpEnd);
 
  178  mBusyPeriods.append( p );
 
  183FreeBusy::FreeBusy( PeriodList busyPeriods)
 
  185  mBusyPeriods = busyPeriods;
 
  188void FreeBusy::sortList()
 
  190  qHeapSort( mBusyPeriods );
 
  196  mBusyPeriods += list;
 
  202  mBusyPeriods.append( 
Period(start, end) );
 
  208  mBusyPeriods.append( 
Period(start, dur) );
 
  212void FreeBusy::merge( 
FreeBusy *freeBusy )
 
  217  if ( freeBusy->dtEnd() > dtEnd() )
 
  218    setDtEnd( freeBusy->dtEnd() );
 
  220  TQValueList<Period> periods = freeBusy->busyPeriods();
 
  221  TQValueList<Period>::ConstIterator it;
 
  222  for ( it = periods.begin(); it != periods.end(); ++it )
 
  230    dtEnd() == freebusy.dtEnd() &&
 
  231    mCalendar == freebusy.mCalendar &&
 
  232    mBusyPeriods == freebusy.mBusyPeriods;
 
This is the main "calendar" object class.
 
virtual Event::List rawEvents(EventSortField sortField=EventSortUnsorted, SortDirection sortDirection=SortDirectionAscending)=0
Return a sorted, unfiltered list of all Events for this Calendar.
 
This class represents a duration.
 
This class provides an Event in the sense of RFC2445.
 
virtual TQDateTime dtEnd() const
Return end date and time.
 
void setDtEnd(const TQDateTime &dtEnd)
Set end date and time.
 
This class provides information about free/busy time of a calendar user.
 
void addPeriod(const TQDateTime &start, const TQDateTime &end)
Adds a period to the freebusy list and sorts the list.
 
void addPeriods(const PeriodList &)
Adds a list of periods to the freebusy object and then sorts that list.
 
bool operator==(const FreeBusy &freebusy) const
Compare this with freebusy for equality.
 
This class provides the base class common to all calendar components.
 
virtual TQDateTime dtStart() const
returns an event's starting date/time as a TQDateTime.
 
virtual void setDtStart(const TQDateTime &dtStart)
for setting the event's starting date/time with a TQDateTime.
 
void setFloats(bool f)
Set whether the incidence floats, i.e.
 
virtual void setDtStart(const TQDateTime &dtStart)
Set starting date/time.
 
This class represents a period of time.
 
Namespace KCal is for global classes, objects and/or functions in libkcal.