summaryrefslogtreecommitdiff
Unidiff
Diffstat (more/less context) (ignore whitespace changes)
-rw-r--r--core/pim/datebook/datebook.cpp25
-rw-r--r--core/pim/datebook/datebook.h7
-rw-r--r--library/datebookdb.cpp14
-rw-r--r--library/datebookdb.h1
4 files changed, 29 insertions, 18 deletions
diff --git a/core/pim/datebook/datebook.cpp b/core/pim/datebook/datebook.cpp
index 97c305c..c23129a 100644
--- a/core/pim/datebook/datebook.cpp
+++ b/core/pim/datebook/datebook.cpp
@@ -63,49 +63,49 @@
63 63
64#include <sys/stat.h> 64#include <sys/stat.h>
65#include <sys/types.h> 65#include <sys/types.h>
66#include <fcntl.h> 66#include <fcntl.h>
67#include <unistd.h> 67#include <unistd.h>
68 68
69#include <stdlib.h> 69#include <stdlib.h>
70 70
71#define DAY 1 71#define DAY 1
72#define WEEK 2 72#define WEEK 2
73#define WEEKLST 4 73#define WEEKLST 4
74#define MONTH 3 74#define MONTH 3
75 75
76 76
77DateBook::DateBook( QWidget *parent, const char *, WFlags f ) 77DateBook::DateBook( QWidget *parent, const char *, WFlags f )
78 : QMainWindow( parent, "datebook", f ), 78 : QMainWindow( parent, "datebook", f ),
79 aPreset( FALSE ), 79 aPreset( FALSE ),
80 presetTime( -1 ), 80 presetTime( -1 ),
81 startTime( 8 ), // an acceptable default 81 startTime( 8 ), // an acceptable default
82 syncing(FALSE), 82 syncing(FALSE),
83 inSearch(FALSE) 83 inSearch(FALSE)
84{ 84{
85 QTime t; 85 QTime t;
86 t.start(); 86 t.start();
87 db = new DateBookDB; 87 db = new DateBookDBHack;
88 qDebug("loading db t=%d", t.elapsed() ); 88 qDebug("loading db t=%d", t.elapsed() );
89 loadSettings(); 89 loadSettings();
90 setCaption( tr("Calendar") ); 90 setCaption( tr("Calendar") );
91 setIcon( Resource::loadPixmap( "datebook_icon" ) ); 91 setIcon( Resource::loadPixmap( "datebook_icon" ) );
92 92
93 setToolBarsMovable( FALSE ); 93 setToolBarsMovable( FALSE );
94 94
95 views = new QWidgetStack( this ); 95 views = new QWidgetStack( this );
96 setCentralWidget( views ); 96 setCentralWidget( views );
97 97
98 dayView = 0; 98 dayView = 0;
99 weekView = 0; 99 weekView = 0;
100 weekLstView = 0; 100 weekLstView = 0;
101 monthView = 0; 101 monthView = 0;
102 102
103 QPEToolBar *bar = new QPEToolBar( this ); 103 QPEToolBar *bar = new QPEToolBar( this );
104 bar->setHorizontalStretchable( TRUE ); 104 bar->setHorizontalStretchable( TRUE );
105 105
106 QPEMenuBar *mb = new QPEMenuBar( bar ); 106 QPEMenuBar *mb = new QPEMenuBar( bar );
107 mb->setMargin( 0 ); 107 mb->setMargin( 0 );
108 108
109 QPEToolBar *sub_bar = new QPEToolBar(this); 109 QPEToolBar *sub_bar = new QPEToolBar(this);
110 110
111 QPopupMenu *view = new QPopupMenu( this ); 111 QPopupMenu *view = new QPopupMenu( this );
@@ -212,49 +212,49 @@ DateBook::DateBook( QWidget *parent, const char *, WFlags f )
212 this, SLOT(receive(const QCString&, const QByteArray&)) ); 212 this, SLOT(receive(const QCString&, const QByteArray&)) );
213 qDebug("olle\n"); 213 qDebug("olle\n");
214#endif 214#endif
215#endif 215#endif
216 216
217 qDebug("done t=%d", t.elapsed() ); 217 qDebug("done t=%d", t.elapsed() );
218 218
219} 219}
220 220
221void DateBook::receive( const QCString &msg, const QByteArray &data ) 221void DateBook::receive( const QCString &msg, const QByteArray &data )
222{ 222{
223 QDataStream stream( data, IO_ReadOnly ); 223 QDataStream stream( data, IO_ReadOnly );
224 if ( msg == "timeChange(QString)" ) { 224 if ( msg == "timeChange(QString)" ) {
225 // update active view! 225 // update active view!
226 if ( dayAction->isOn() ) 226 if ( dayAction->isOn() )
227 viewDay(); 227 viewDay();
228 else if ( weekAction->isOn() ) 228 else if ( weekAction->isOn() )
229 viewWeek(); 229 viewWeek();
230 else if ( monthAction->isOn() ) 230 else if ( monthAction->isOn() )
231 viewMonth(); 231 viewMonth();
232 } 232 }
233 else if (msg == "editEvent(int)") { 233 else if (msg == "editEvent(int)") {
234 int uid; 234 int uid;
235 stream >> uid; 235 stream >> uid;
236 Event e=db->getEvent(uid); 236 Event e=db->eventByUID(uid);
237 editEvent(e); 237 editEvent(e);
238 } 238 }
239} 239}
240 240
241DateBook::~DateBook() 241DateBook::~DateBook()
242{ 242{
243} 243}
244 244
245void DateBook::slotSettings() 245void DateBook::slotSettings()
246{ 246{
247 DateBookSettings frmSettings( ampm, this ); 247 DateBookSettings frmSettings( ampm, this );
248 frmSettings.setStartTime( startTime ); 248 frmSettings.setStartTime( startTime );
249 frmSettings.setAlarmPreset( aPreset, presetTime ); 249 frmSettings.setAlarmPreset( aPreset, presetTime );
250#if defined (Q_WS_QWS) || defined(_WS_QWS_) 250#if defined (Q_WS_QWS) || defined(_WS_QWS_)
251 frmSettings.showMaximized(); 251 frmSettings.showMaximized();
252#endif 252#endif
253 253
254 if ( frmSettings.exec() ) { 254 if ( frmSettings.exec() ) {
255 aPreset = frmSettings.alarmPreset(); 255 aPreset = frmSettings.alarmPreset();
256 presetTime = frmSettings.presetTime(); 256 presetTime = frmSettings.presetTime();
257 startTime = frmSettings.startTime(); 257 startTime = frmSettings.startTime();
258 if ( dayView ) 258 if ( dayView )
259 dayView->setStartViewTime( startTime ); 259 dayView->setStartViewTime( startTime );
260 if ( weekView ) 260 if ( weekView )
@@ -944,24 +944,45 @@ void DateBook::slotDoFind( const QString& txt, const QDate &dt,
944 if ( (*it).match( r ) && !(*it <= nonrev) ) { 944 if ( (*it).match( r ) && !(*it <= nonrev) ) {
945 nonrev = *it; 945 nonrev = *it;
946 dtEnd = nonrev.start(); 946 dtEnd = nonrev.start();
947 candidtate = true; 947 candidtate = true;
948 wrapAround = true; 948 wrapAround = true;
949 break; 949 break;
950 } 950 }
951 } 951 }
952 } 952 }
953 } 953 }
954 if ( candidtate ) { 954 if ( candidtate ) {
955 dayView->setStartViewTime( dtEnd.time().hour() ); 955 dayView->setStartViewTime( dtEnd.time().hour() );
956 dayView->setDate( dtEnd.date().year(), dtEnd.date().month(), 956 dayView->setDate( dtEnd.date().year(), dtEnd.date().month(),
957 dtEnd.date().day() ); 957 dtEnd.date().day() );
958 } else { 958 } else {
959 if ( wrapAround ) { 959 if ( wrapAround ) {
960 emit signalWrapAround(); 960 emit signalWrapAround();
961 rev.setStart( QDateTime(QDate(1960, 1, 1), QTime(0, 0, 0)) ); 961 rev.setStart( QDateTime(QDate(1960, 1, 1), QTime(0, 0, 0)) );
962 nonrev.setStart( rev.start() ); 962 nonrev.setStart( rev.start() );
963 } else 963 } else
964 emit signalNotFound(); 964 emit signalNotFound();
965 wrapAround = !wrapAround; 965 wrapAround = !wrapAround;
966 } 966 }
967} 967}
968
969Event DateBookDBHack::eventByUID(int uid) {
970
971 // FIXME: Dirty Hacks to get hold of the private event lists
972 QDate start;
973 QDate end=start.addDays(-1);
974 QValueList<Event> myEventList=getNonRepeatingEvents(start,end);
975 QValueList<Event> myRepeatEvents=getRawRepeats();
976
977 QValueList<Event>::ConstIterator it;
978
979 for (it = myEventList.begin(); it != myEventList.end(); it++) {
980 if ((*it).uid() == uid) return *it;
981 }
982 for (it = myRepeatEvents.begin(); it != myRepeatEvents.end(); it++) {
983 if ((*it).uid() == uid) return *it;
984 }
985
986 qDebug("Event not found: uid=%d\n", uid);
987}
988
diff --git a/core/pim/datebook/datebook.h b/core/pim/datebook/datebook.h
index 2ffcdbe..d1fe90d 100644
--- a/core/pim/datebook/datebook.h
+++ b/core/pim/datebook/datebook.h
@@ -13,48 +13,53 @@
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#ifndef DATEBOOK_H 20#ifndef DATEBOOK_H
21#define DATEBOOK_H 21#define DATEBOOK_H
22 22
23#include <qpe/datebookdb.h> 23#include <qpe/datebookdb.h>
24 24
25#include <qmainwindow.h> 25#include <qmainwindow.h>
26 26
27class QAction; 27class QAction;
28class QWidgetStack; 28class QWidgetStack;
29class DateBookDay; 29class DateBookDay;
30class DateBookWeek; 30class DateBookWeek;
31class DateBookWeekLst; 31class DateBookWeekLst;
32class DateBookMonth; 32class DateBookMonth;
33class Event; 33class Event;
34class QDate; 34class QDate;
35class Ir; 35class Ir;
36 36
37class DateBookDBHack : public DateBookDB {
38 public:
39 Event eventByUID(int id);
40};
41
37class DateBook : public QMainWindow 42class DateBook : public QMainWindow
38{ 43{
39 Q_OBJECT 44 Q_OBJECT
40 45
41public: 46public:
42 DateBook( QWidget *parent = 0, const char *name = 0, WFlags f = 0 ); 47 DateBook( QWidget *parent = 0, const char *name = 0, WFlags f = 0 );
43 ~DateBook(); 48 ~DateBook();
44 49
45signals: 50signals:
46 void newEvent(); 51 void newEvent();
47 void signalNotFound(); 52 void signalNotFound();
48 void signalWrapAround(); 53 void signalWrapAround();
49 54
50protected: 55protected:
51 QDate currentDate(); 56 QDate currentDate();
52 void timerEvent( QTimerEvent *e ); 57 void timerEvent( QTimerEvent *e );
53 void closeEvent( QCloseEvent *e ); 58 void closeEvent( QCloseEvent *e );
54 59
55 void view(int v, const QDate &d); 60 void view(int v, const QDate &d);
56 61
57public slots: 62public slots:
58 void flush(); 63 void flush();
59 void reload(); 64 void reload();
60 65
@@ -78,44 +83,44 @@ private slots:
78 void viewWeek(); 83 void viewWeek();
79 void viewWeekLst(); 84 void viewWeekLst();
80 void viewMonth(); 85 void viewMonth();
81 86
82 void showDay( int y, int m, int d ); 87 void showDay( int y, int m, int d );
83 88
84 void editEvent( const Event &e ); 89 void editEvent( const Event &e );
85 void removeEvent( const Event &e ); 90 void removeEvent( const Event &e );
86 91
87 void receive( const QCString &msg, const QByteArray &data ); 92 void receive( const QCString &msg, const QByteArray &data );
88 void setDocument( const QString & ); 93 void setDocument( const QString & );
89 void beamEvent( const Event &e ); 94 void beamEvent( const Event &e );
90 void beamDone( Ir *ir ); 95 void beamDone( Ir *ir );
91 96
92private: 97private:
93 void addEvent( const Event &e ); 98 void addEvent( const Event &e );
94 void initDay(); 99 void initDay();
95 void initWeek(); 100 void initWeek();
96 void initWeekLst(); 101 void initWeekLst();
97 void initMonth(); 102 void initMonth();
98 void loadSettings(); 103 void loadSettings();
99 void saveSettings(); 104 void saveSettings();
100 105
101private: 106private:
102 DateBookDB *db; 107 DateBookDBHack *db;
103 QWidgetStack *views; 108 QWidgetStack *views;
104 DateBookDay *dayView; 109 DateBookDay *dayView;
105 DateBookWeek *weekView; 110 DateBookWeek *weekView;
106 DateBookMonth *monthView; 111 DateBookMonth *monthView;
107 DateBookWeekLst *weekLstView; 112 DateBookWeekLst *weekLstView;
108 QAction *dayAction, *weekAction, *weekLstAction, *monthAction; 113 QAction *dayAction, *weekAction, *weekLstAction, *monthAction;
109 bool aPreset; // have everything set to alarm? 114 bool aPreset; // have everything set to alarm?
110 int presetTime; // the standard time for the alarm 115 int presetTime; // the standard time for the alarm
111 int startTime; 116 int startTime;
112 bool ampm; 117 bool ampm;
113 bool onMonday; 118 bool onMonday;
114 119
115 bool syncing; 120 bool syncing;
116 bool inSearch; 121 bool inSearch;
117 122
118 QString checkEvent(const Event &); 123 QString checkEvent(const Event &);
119}; 124};
120 125
121#endif 126#endif
diff --git a/library/datebookdb.cpp b/library/datebookdb.cpp
index da5a797..2ac9a0c 100644
--- a/library/datebookdb.cpp
+++ b/library/datebookdb.cpp
@@ -566,62 +566,48 @@ QValueList<EffectiveEvent> DateBookDB::getEffectiveEvents( const QDate &from,
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
diff --git a/library/datebookdb.h b/library/datebookdb.h
index e4c251c..0add028 100644
--- a/library/datebookdb.h
+++ b/library/datebookdb.h
@@ -23,49 +23,48 @@
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...