summaryrefslogtreecommitdiff
path: root/library
Unidiff
Diffstat (limited to 'library') (more/less context) (ignore whitespace changes)
-rw-r--r--library/datebookdb.cpp14
-rw-r--r--library/datebookdb.h1
2 files changed, 0 insertions, 15 deletions
diff --git a/library/datebookdb.cpp b/library/datebookdb.cpp
index da5a797..2ac9a0c 100644
--- a/library/datebookdb.cpp
+++ b/library/datebookdb.cpp
@@ -542,110 +542,96 @@ QValueList<EffectiveEvent> DateBookDB::getEffectiveEvents( const QDate &from,
542 QDate sub_it = QMAX( repeat.date(), from ); 542 QDate sub_it = QMAX( repeat.date(), from );
543 QDate startDate = repeat.date(); 543 QDate startDate = repeat.date();
544 QDate endDate = startDate.addDays( duration ); 544 QDate endDate = startDate.addDays( duration );
545 545
546 while ( sub_it <= endDate && sub_it <= to ) { 546 while ( sub_it <= endDate && sub_it <= to ) {
547 EffectiveEvent tmpEffEv = effEv; 547 EffectiveEvent tmpEffEv = effEv;
548 Event tmpEv = *it; 548 Event tmpEv = *it;
549 tmpEffEv.setEvent( tmpEv ); 549 tmpEffEv.setEvent( tmpEv );
550 550
551 if ( sub_it != startDate ) 551 if ( sub_it != startDate )
552 tmpEffEv.setStart( QTime(0,0,0) ); 552 tmpEffEv.setStart( QTime(0,0,0) );
553 if ( sub_it != endDate ) 553 if ( sub_it != endDate )
554 tmpEffEv.setEnd( QTime(23,59,59) ); 554 tmpEffEv.setEnd( QTime(23,59,59) );
555 tmpEffEv.setDate( sub_it ); 555 tmpEffEv.setDate( sub_it );
556 tmpEffEv.setEffectiveDates( startDate, endDate ); 556 tmpEffEv.setEffectiveDates( startDate, endDate );
557 tmpList.append( tmpEffEv ); 557 tmpList.append( tmpEffEv );
558 sub_it = sub_it.addDays( 1 ); 558 sub_it = sub_it.addDays( 1 );
559 } 559 }
560 itDate = endDate; 560 itDate = endDate;
561 } else { 561 } else {
562 Event tmpEv = *it; 562 Event tmpEv = *it;
563 effEv.setEvent( tmpEv ); 563 effEv.setEvent( tmpEv );
564 tmpList.append( effEv ); 564 tmpList.append( effEv );
565 itDate = repeat.date().addDays( 1 ); 565 itDate = repeat.date().addDays( 1 );
566 } 566 }
567 } 567 }
568 } 568 }
569 569
570 qHeapSort( tmpList ); 570 qHeapSort( tmpList );
571 return tmpList; 571 return tmpList;
572} 572}
573 573
574QValueList<EffectiveEvent> DateBookDB::getEffectiveEvents( const QDateTime &dt) 574QValueList<EffectiveEvent> DateBookDB::getEffectiveEvents( const QDateTime &dt)
575{ 575{
576 QValueList<EffectiveEvent> day = getEffectiveEvents(dt.date(), dt.date()); 576 QValueList<EffectiveEvent> day = getEffectiveEvents(dt.date(), dt.date());
577 QValueListConstIterator<EffectiveEvent> it; 577 QValueListConstIterator<EffectiveEvent> it;
578 QValueList<EffectiveEvent> tmpList; 578 QValueList<EffectiveEvent> tmpList;
579 QDateTime dtTmp; 579 QDateTime dtTmp;
580 580
581 for (it = day.begin(); it != day.end(); ++it ) { 581 for (it = day.begin(); it != day.end(); ++it ) {
582 dtTmp = QDateTime( (*it).date(), (*it).start() ); 582 dtTmp = QDateTime( (*it).date(), (*it).start() );
583 // at the moment we don't have second granularity, be nice about that.. 583 // at the moment we don't have second granularity, be nice about that..
584 if ( QABS(dt.secsTo(dtTmp)) < 60 ) 584 if ( QABS(dt.secsTo(dtTmp)) < 60 )
585 tmpList.append( *it ); 585 tmpList.append( *it );
586 } 586 }
587 return tmpList; 587 return tmpList;
588} 588}
589 589
590Event DateBookDB::getEvent( int uid ) {
591 QValueList<Event>::ConstIterator it;
592
593 for (it = eventList.begin(); it != eventList.end(); it++) {
594 if ((*it).uid() == uid) return *it;
595 }
596 for (it = repeatEvents.begin(); it != repeatEvents.end(); it++) {
597 if ((*it).uid() == uid) return *it;
598 }
599
600 qDebug("Event not found: uid=%d\n", uid);
601}
602
603
604void DateBookDB::addEvent( const Event &ev, bool doalarm ) 590void DateBookDB::addEvent( const Event &ev, bool doalarm )
605{ 591{
606 // write to the journal... 592 // write to the journal...
607 saveJournalEntry( ev, ACTION_ADD, -1, false ); 593 saveJournalEntry( ev, ACTION_ADD, -1, false );
608 addJFEvent( ev, doalarm ); 594 addJFEvent( ev, doalarm );
609 d->clean = false; 595 d->clean = false;
610} 596}
611 597
612void DateBookDB::addJFEvent( const Event &ev, bool doalarm ) 598void DateBookDB::addJFEvent( const Event &ev, bool doalarm )
613{ 599{
614 if ( doalarm && ev.hasAlarm() ) 600 if ( doalarm && ev.hasAlarm() )
615 addEventAlarm( ev ); 601 addEventAlarm( ev );
616 if ( ev.hasRepeat() ) 602 if ( ev.hasRepeat() )
617 repeatEvents.append( ev ); 603 repeatEvents.append( ev );
618 else 604 else
619 eventList.append( ev ); 605 eventList.append( ev );
620} 606}
621 607
622void DateBookDB::editEvent( const Event &old, Event &editedEv ) 608void DateBookDB::editEvent( const Event &old, Event &editedEv )
623{ 609{
624 int oldIndex=0; 610 int oldIndex=0;
625 bool oldHadRepeat = old.hasRepeat(); 611 bool oldHadRepeat = old.hasRepeat();
626 Event orig; 612 Event orig;
627 613
628 // write to the journal... 614 // write to the journal...
629 if ( oldHadRepeat ) { 615 if ( oldHadRepeat ) {
630 if ( origRepeat( old, orig ) ) // should work always... 616 if ( origRepeat( old, orig ) ) // should work always...
631 oldIndex = repeatEvents.findIndex( orig ); 617 oldIndex = repeatEvents.findIndex( orig );
632 } else 618 } else
633 oldIndex = eventList.findIndex( old ); 619 oldIndex = eventList.findIndex( old );
634 saveJournalEntry( editedEv, ACTION_REPLACE, oldIndex, oldHadRepeat ); 620 saveJournalEntry( editedEv, ACTION_REPLACE, oldIndex, oldHadRepeat );
635 621
636 // Delete old event 622 // Delete old event
637 if ( old.hasAlarm() ) 623 if ( old.hasAlarm() )
638 delEventAlarm( old ); 624 delEventAlarm( old );
639 if ( oldHadRepeat ) { 625 if ( oldHadRepeat ) {
640 if ( editedEv.hasRepeat() ) { // This mean that origRepeat was run above and 626 if ( editedEv.hasRepeat() ) { // This mean that origRepeat was run above and
641 // orig is initialized 627 // orig is initialized
642 // assumption, when someone edits a repeating event, they 628 // assumption, when someone edits a repeating event, they
643 // want to change them all, maybe not perfect, but it works 629 // want to change them all, maybe not perfect, but it works
644 // for the moment... 630 // for the moment...
645 repeatEvents.remove( orig ); 631 repeatEvents.remove( orig );
646 } else 632 } else
647 removeRepeat( old ); 633 removeRepeat( old );
648 } else { 634 } else {
649 QValueList<Event>::Iterator it = eventList.find( old ); 635 QValueList<Event>::Iterator it = eventList.find( old );
650 if ( it != eventList.end() ) 636 if ( it != eventList.end() )
651 eventList.remove( it ); 637 eventList.remove( it );
diff --git a/library/datebookdb.h b/library/datebookdb.h
index e4c251c..0add028 100644
--- a/library/datebookdb.h
+++ b/library/datebookdb.h
@@ -1,88 +1,87 @@
1/********************************************************************** 1/**********************************************************************
2** Copyright (C) 2000 Trolltech AS. All rights reserved. 2** Copyright (C) 2000 Trolltech AS. All rights reserved.
3** 3**
4** This file is part of Qtopia Environment. 4** This file is part of Qtopia Environment.
5** 5**
6** This file may be distributed and/or modified under the terms of the 6** This file may be distributed and/or modified under the terms of the
7** GNU General Public License version 2 as published by the Free Software 7** GNU General Public License version 2 as published by the Free Software
8** Foundation and appearing in the file LICENSE.GPL included in the 8** Foundation and appearing in the file LICENSE.GPL included in the
9** packaging of this file. 9** packaging of this file.
10** 10**
11** This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE 11** This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE
12** WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. 12** WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
13** 13**
14** See http://www.trolltech.com/gpl/ for GPL licensing information. 14** See http://www.trolltech.com/gpl/ for GPL licensing information.
15** 15**
16** Contact info@trolltech.com if any conditions of this licensing are 16** Contact info@trolltech.com if any conditions of this licensing are
17** not clear to you. 17** not clear to you.
18** 18**
19**********************************************************************/ 19**********************************************************************/
20 20
21#ifndef DATEBOOKDB_H 21#ifndef DATEBOOKDB_H
22#define DATEBOOKDB_H 22#define DATEBOOKDB_H
23 23
24#include <qdatetime.h> 24#include <qdatetime.h>
25#include <qfile.h> 25#include <qfile.h>
26#include <qvaluelist.h> 26#include <qvaluelist.h>
27#include <qpe/event.h> 27#include <qpe/event.h>
28 28
29// journal actions... 29// journal actions...
30enum journal_action { ACTION_ADD, ACTION_REMOVE, ACTION_REPLACE }; 30enum journal_action { ACTION_ADD, ACTION_REMOVE, ACTION_REPLACE };
31 31
32class DateBookDBPrivate; 32class DateBookDBPrivate;
33class DateBookDB 33class DateBookDB
34{ 34{
35public: 35public:
36 DateBookDB(); 36 DateBookDB();
37 ~DateBookDB(); 37 ~DateBookDB();
38 38
39 // very depreciated now!!! 39 // very depreciated now!!!
40 QValueList<Event> getEvents( const QDate &from, const QDate &to ); 40 QValueList<Event> getEvents( const QDate &from, const QDate &to );
41 QValueList<Event> getEvents( const QDateTime &start ); 41 QValueList<Event> getEvents( const QDateTime &start );
42 42
43 // USE THESE!!! 43 // USE THESE!!!
44 QValueList<EffectiveEvent> getEffectiveEvents( const QDate &from, 44 QValueList<EffectiveEvent> getEffectiveEvents( const QDate &from,
45 const QDate &to ); 45 const QDate &to );
46 QValueList<EffectiveEvent> getEffectiveEvents( const QDateTime &start ); 46 QValueList<EffectiveEvent> getEffectiveEvents( const QDateTime &start );
47 Event getEvent( int uid );
48 47
49 QValueList<Event> getRawRepeats() const; 48 QValueList<Event> getRawRepeats() const;
50 QValueList<Event> getNonRepeatingEvents( const QDate &from, 49 QValueList<Event> getNonRepeatingEvents( const QDate &from,
51 const QDate &to ) const; 50 const QDate &to ) const;
52 51
53 // Use these when dealing with adding removing events... 52 // Use these when dealing with adding removing events...
54 void addEvent( const Event &ev, bool doalarm=TRUE ); 53 void addEvent( const Event &ev, bool doalarm=TRUE );
55 void removeEvent( const Event &ev ); 54 void removeEvent( const Event &ev );
56 void editEvent( const Event &old, Event &ev ); 55 void editEvent( const Event &old, Event &ev );
57 // add/remove event without journaling ( these ended up in public by accident, never 56 // add/remove event without journaling ( these ended up in public by accident, never
58 // use them unless you know what you are doing...), 57 // use them unless you know what you are doing...),
59 // please put them in private if we ever can change the class... 58 // please put them in private if we ever can change the class...
60 void addJFEvent( const Event &ev, bool doalarm=TRUE ); 59 void addJFEvent( const Event &ev, bool doalarm=TRUE );
61 void removeJFEvent( const Event &ev ); 60 void removeJFEvent( const Event &ev );
62 61
63 bool save(); 62 bool save();
64 void reload(); 63 void reload();
65private: 64private:
66 //find the real repeat... 65 //find the real repeat...
67 bool origRepeat( const Event &ev, Event &orig ) const; 66 bool origRepeat( const Event &ev, Event &orig ) const;
68 bool removeRepeat( const Event &ev ); 67 bool removeRepeat( const Event &ev );
69 void init(); 68 void init();
70 void loadFile( const QString &strFile ); 69 void loadFile( const QString &strFile );
71 // depreciated... 70 // depreciated...
72 void saveJournalEntry( const Event &ev, journal_action action ); 71 void saveJournalEntry( const Event &ev, journal_action action );
73 // new version, uncomment the "= -1" when we remove the above 72 // new version, uncomment the "= -1" when we remove the above
74 // function.. 73 // function..
75 bool saveJournalEntry( const Event &ev, journal_action action, 74 bool saveJournalEntry( const Event &ev, journal_action action,
76 int key/* = -1*/, bool origHadRepeat = false ); 75 int key/* = -1*/, bool origHadRepeat = false );
77 76
78 QValueList<Event> eventList; // non-repeating events... 77 QValueList<Event> eventList; // non-repeating events...
79 QValueList<Event> repeatEvents; // the repeating events... 78 QValueList<Event> repeatEvents; // the repeating events...
80 DateBookDBPrivate *d; 79 DateBookDBPrivate *d;
81 QFile journalFile; 80 QFile journalFile;
82 81
83 intrecordIdMax; // ADDITION 82 intrecordIdMax; // ADDITION
84}; 83};
85 84
86/* helper functions, also useful to other apps. */ 85/* helper functions, also useful to other apps. */
87bool nextOccurance( const Event &e, const QDate &from, QDateTime &next); 86bool nextOccurance( const Event &e, const QDate &from, QDateTime &next);
88#endif 87#endif