summaryrefslogtreecommitdiff
path: root/core/pim
authoreilers <eilers>2003-08-01 14:19:44 (UTC)
committer eilers <eilers>2003-08-01 14:19:44 (UTC)
commit34991bac7d96b1c17601be6a5607819342571e0c (patch) (unidiff)
tree65d0bc2db22bcc1dc1b5eafdafd53b9cb08a6395 /core/pim
parent5346424fc26bde232a15aa34fbb720f86218b26f (diff)
downloadopie-34991bac7d96b1c17601be6a5607819342571e0c.zip
opie-34991bac7d96b1c17601be6a5607819342571e0c.tar.gz
opie-34991bac7d96b1c17601be6a5607819342571e0c.tar.bz2
Merging changes from BRANCH_1_0 to HEAD..
Diffstat (limited to 'core/pim') (more/less context) (ignore whitespace changes)
-rw-r--r--core/pim/datebook/datebook.cpp50
-rw-r--r--core/pim/datebook/datebook.pro6
-rw-r--r--core/pim/datebook/datebookday.cpp127
-rw-r--r--core/pim/datebook/datebookday.h6
-rw-r--r--core/pim/datebook/datebookdayallday.cpp226
-rw-r--r--core/pim/datebook/datebookdayallday.h80
-rw-r--r--core/pim/datebook/datebooksettings.h5
-rw-r--r--core/pim/datebook/datebookweek.cpp65
-rw-r--r--core/pim/datebook/datebookweekheaderimpl.cpp12
-rw-r--r--core/pim/datebook/datebookweeklst.cpp10
-rw-r--r--core/pim/datebook/dateentryimpl.cpp2
-rw-r--r--core/pim/datebook/opie-datebook.control6
-rw-r--r--core/pim/datebook/repeatentry.cpp50
13 files changed, 564 insertions, 81 deletions
diff --git a/core/pim/datebook/datebook.cpp b/core/pim/datebook/datebook.cpp
index b7e89b0..10a9b59 100644
--- a/core/pim/datebook/datebook.cpp
+++ b/core/pim/datebook/datebook.cpp
@@ -230,3 +230,7 @@ void DateBook::receive( const QCString &msg, const QByteArray &data )
230 editEvent(e); 230 editEvent(e);
231 } 231 }else if (msg == "viewDefault(QDate)"){
232 QDate day;
233 stream >> day;
234 viewDefault(day);
235 }
232} 236}
@@ -438,5 +442,15 @@ void DateBook::duplicateEvent( const Event &e )
438 if (!error.isNull()) { 442 if (!error.isNull()) {
439 if (QMessageBox::warning(this, "error box", error, "Fix it", "Continue", 0, 0, 1) == 0) 443 if (QMessageBox::warning(this, tr("error box"), error, tr("Fix it"), tr("Continue"), 0, 0, 1) == 0)
440 continue; 444 continue;
441 } 445 }
446 /*
447 * The problem:
448 * DateBookDB does remove repeating events not by uid but by the time
449 * the recurrence was created
450 * so we need to update that time as well
451 */
452 Event::RepeatPattern rp = newEv.repeatPattern();
453 rp.createTime = ::time( NULL );
454 newEv.setRepeat( TRUE, rp ); // has repeat and repeatPattern...
455
442 db->addEvent(newEv); 456 db->addEvent(newEv);
@@ -478,3 +492,3 @@ void DateBook::editEvent( const Event &e )
478 if (!error.isNull()) { 492 if (!error.isNull()) {
479 if (QMessageBox::warning(this, "error box", error, "Fix it", "Continue", 0, 0, 1) == 0) continue; 493 if (QMessageBox::warning(this, tr("error box"), error, tr("Fix it"), tr("Continue"), 0, 0, 1) == 0) continue;
480 } 494 }
@@ -521,4 +535,4 @@ void DateBook::initDay()
521 views->addWidget( dayView, DAY ); 535 views->addWidget( dayView, DAY );
536 dayView->setJumpToCurTime( bJumpToCurTime );
522 dayView->setStartViewTime( startTime ); 537 dayView->setStartViewTime( startTime );
523 dayView->setJumpToCurTime( bJumpToCurTime );
524 dayView->setRowStyle( rowStyle ); 538 dayView->setRowStyle( rowStyle );
@@ -699,2 +713,3 @@ void DateBook::appMessage(const QCString& msg, const QByteArray& data)
699 } else if ( msg == "nextView()" ) { 713 } else if ( msg == "nextView()" ) {
714 needShow = true;
700 if ( !qApp-> activeWindow ( )) { 715 if ( !qApp-> activeWindow ( )) {
@@ -715,12 +730,27 @@ void DateBook::appMessage(const QCString& msg, const QByteArray& data)
715 } 730 }
716 } 731 } else if (msg == "editEvent(int)") {
732 /* simple copy from receive */
733 QDataStream stream(data,IO_ReadOnly);
734 int uid;
735 stream >> uid;
736 Event e=db->eventByUID(uid);
737 editEvent(e);
738 } else if (msg == "viewDefault(QDate)"){
739 /* simple copy from receive */
740 QDataStream stream(data,IO_ReadOnly);
741 QDate day;
742 stream >> day;
743 viewDefault(day);
744 needShow = true;
745 }
746
717 if ( needShow ) { 747 if ( needShow ) {
718#if defined(Q_WS_QWS) || defined(_WS_QWS_) 748#if defined(Q_WS_QWS) || defined(_WS_QWS_)
719 showMaximized(); 749 // showMaximized();
720#else 750#else
721 show(); 751 // show();
722#endif 752#endif
723 raise(); 753 // raise();
724 QPEApplication::setKeepRunning(); 754 QPEApplication::setKeepRunning();
725 setActiveWindow(); 755 // setActiveWindow();
726 } 756 }
@@ -919,3 +949,3 @@ void DateBook::slotFind()
919 viewDay(); 949 viewDay();
920 FindDialog frmFind( "Calendar", this ); 950 FindDialog frmFind( "Calendar", this ); // no tr needed
921 frmFind.setUseDate( true ); 951 frmFind.setUseDate( true );
diff --git a/core/pim/datebook/datebook.pro b/core/pim/datebook/datebook.pro
index e8e0a98..ae30c8d 100644
--- a/core/pim/datebook/datebook.pro
+++ b/core/pim/datebook/datebook.pro
@@ -13,3 +13,4 @@ HEADERS = datebookday.h \
13 noteentryimpl.h \ 13 noteentryimpl.h \
14 onoteedit.h 14 onoteedit.h \
15 datebookdayallday.h
15 SOURCES= main.cpp \ 16 SOURCES= main.cpp \
@@ -25,3 +26,4 @@ SOURCES = main.cpp \
25 noteentryimpl.cpp \ 26 noteentryimpl.cpp \
26 onoteedit.cpp 27 onoteedit.cpp \
28 datebookdayallday.cpp
27 INTERFACES= dateentry.ui \ 29 INTERFACES= dateentry.ui \
diff --git a/core/pim/datebook/datebookday.cpp b/core/pim/datebook/datebookday.cpp
index 0b213e9..f4008e9 100644
--- a/core/pim/datebook/datebookday.cpp
+++ b/core/pim/datebook/datebookday.cpp
@@ -23,2 +23,3 @@
23#include "datebookdayheaderimpl.h" 23#include "datebookdayheaderimpl.h"
24#include "datebookdayallday.h"
24 25
@@ -213,3 +214,7 @@ void DateBookDayViewQuickLineEdit::slotReturnPressed()
213 } 214 }
214 this->close(true);// Close and also delete this widget 215 /* we need to return to this object.. */
216 QTimer::singleShot(500, this, SLOT(finallyCallClose()) );// Close and also delete this widget
217}
218void DateBookDayViewQuickLineEdit::finallyCallClose() {
219 close(true); // also deletes this widget...
215} 220}
@@ -229,2 +234,6 @@ DateBookDay::DateBookDay( bool ampm, bool startOnMonday, DateBookDB *newDb, QWid
229 header->setDate( currDate.year(), currDate.month(), currDate.day() ); 234 header->setDate( currDate.year(), currDate.month(), currDate.day() );
235
236 m_allDays = new DatebookdayAllday(newDb, this, "all day event list" );
237 m_allDays->hide();
238
230 view = new DateBookDayView( ampm, this, "day view" ); 239 view = new DateBookDayView( ampm, this, "day view" );
@@ -247,2 +256,3 @@ DateBookDay::DateBookDay( bool ampm, bool startOnMonday, DateBookDB *newDb, QWid
247 rowStyle = -1; // initialize with bogus values 256 rowStyle = -1; // initialize with bogus values
257 jumpToCurTime = false;
248} 258}
@@ -345,4 +355,9 @@ void DateBookDay::getEvents()
345 355
356 /* clear the AllDay List */
357 m_allDays->hide(); // just in case
358 m_allDays->removeAllEvents();
359
346 QValueList<EffectiveEvent> eventList = db->getEffectiveEvents( currDate, currDate ); 360 QValueList<EffectiveEvent> eventList = db->getEffectiveEvents( currDate, currDate );
347 QValueListIterator<EffectiveEvent> it; 361 QValueListIterator<EffectiveEvent> it;
362 QObject* object = 0;
348 for ( it = eventList.begin(); it != eventList.end(); ++it ) { 363 for ( it = eventList.begin(); it != eventList.end(); ++it ) {
@@ -350,8 +365,17 @@ void DateBookDay::getEvents()
350 if(!((ev.end().hour()==0) && (ev.end().minute()==0) && (ev.startDate()!=ev.date()))) {// Skip events ending at 00:00 starting at another day. 365 if(!((ev.end().hour()==0) && (ev.end().minute()==0) && (ev.startDate()!=ev.date()))) {// Skip events ending at 00:00 starting at another day.
366 if (ev.event().type() == Event::AllDay ) {
367 object = m_allDays->addEvent( ev );
368 if (!object)
369 continue;
370 }else {
351 DateBookDayWidget* w = new DateBookDayWidget( *it, this ); 371 DateBookDayWidget* w = new DateBookDayWidget( *it, this );
352 connect( w, SIGNAL( deleteMe( const Event & ) ), this, SIGNAL( removeEvent( const Event & ) ) ); 372 widgetList.append( w );
353 connect( w, SIGNAL( duplicateMe( const Event & ) ), this, SIGNAL( duplicateEvent( const Event & ) ) ); 373 object = w;
354 connect( w, SIGNAL( editMe( const Event & ) ), this, SIGNAL( editEvent( const Event & ) ) ); 374 }
355 connect( w, SIGNAL( beamMe( const Event & ) ), this, SIGNAL( beamEvent( const Event & ) ) ); 375
356 widgetList.append( w ); 376 connect( object, SIGNAL( deleteMe( const Event & ) ), this, SIGNAL( removeEvent( const Event & ) ) );
377 connect( object, SIGNAL( duplicateMe( const Event & ) ), this, SIGNAL( duplicateEvent( const Event & ) ) );
378 connect( object, SIGNAL( editMe( const Event & ) ), this, SIGNAL( editEvent( const Event & ) ) );
379 connect( object, SIGNAL( beamMe( const Event & ) ), this, SIGNAL( beamEvent( const Event & ) ) );
380
357 } 381 }
@@ -398,5 +422,12 @@ void DateBookDay::relayoutPage( bool fromResize )
398 setUpdatesEnabled( FALSE ); 422 setUpdatesEnabled( FALSE );
399 if ( !fromResize ) 423 if ( !fromResize ) {
400 getEvents(); // no need we already have them! 424 getEvents(); // no need we already have them!
401 425
426 if (m_allDays->items() > 0 )
427 m_allDays->show();
428 /*
429 * else if ( m_allDays->items() == 0 ) already hide in getEvents
430 */
431 }
432
402 widgetList.sort(); 433 widgetList.sort();
@@ -732,2 +763,24 @@ void DateBookDayWidget::paintEvent( QPaintEvent *e )
732 763
764/*
765 * we need to find the real start date for a uid
766 * we need to check from one day to another...
767 */
768QDate DateBookDay::findRealStart( int uid, const QDate& isIncluded , DateBookDB* db) {
769 QDate dt( isIncluded );
770 QDate fnd = dt;
771
772 bool doAgain = true;
773 do{
774 dt = dt.addDays( -1 );
775 QValueList<EffectiveEvent> events = db->getEffectiveEvents( dt, dt );
776 for (QValueList<EffectiveEvent>::Iterator it = events.begin(); it != events.end(); ++it ) {
777 EffectiveEvent ev = (*it);
778 if ( uid == ev.event().uid() && ev.start() != QTime(0, 0, 0 ) )
779 return ev.date();
780 }
781 }while (doAgain );
782
783 return fnd;
784}
785
733void DateBookDayWidget::mousePressEvent( QMouseEvent *e ) 786void DateBookDayWidget::mousePressEvent( QMouseEvent *e )
@@ -749,2 +802,3 @@ void DateBookDayWidget::mousePressEvent( QMouseEvent *e )
749 if(Ir::supported()) m.insertItem( tr( "Beam" ), 3 ); 802 if(Ir::supported()) m.insertItem( tr( "Beam" ), 3 );
803 if(Ir::supported() && ev.event().doRepeat() ) m.insertItem( tr( "Beam this occurence"), 5 );
750 int r = m.exec( e->globalPos() ); 804 int r = m.exec( e->globalPos() );
@@ -758,3 +812,60 @@ void DateBookDayWidget::mousePressEvent( QMouseEvent *e )
758 emit duplicateMe( ev.event() ); 812 emit duplicateMe( ev.event() );
759 } 813 } else if ( r == 5 ) {
814 // create an Event and beam it...
815 /*
816 * Start with the easy stuff. If start and end date is the same we can just use
817 * the values of effective events
818 * If it is a multi day event we need to find the real start and end date...
819 */
820 if ( ev.event().start().date() == ev.event().end().date() ) {
821 Event event( ev.event() );
822
823 QDateTime dt( ev.date(), ev.start() );
824 event.setStart( dt );
825
826 dt.setTime( ev.end() );
827 event.setEnd( dt );
828 emit beamMe( event );
829 }else {
830 /*
831 * at least the the Times are right now
832 */
833 QDateTime start( ev.event().start() );
834 QDateTime end ( ev.event().end () );
835
836
837 /*
838 * ok we know the start date or we need to find it
839 */
840 if ( ev.start() != QTime( 0, 0, 0 ) ) {
841 start.setDate( ev.date() );
842 }else {
843 QDate dt = DateBookDay::findRealStart( ev.event().uid(), ev.date(), dateBook->db );
844 start.setDate( dt );
845 }
846
847
848 /*
849 * ok we know now the end date...
850 * else
851 * get to know the offset btw the real start and real end
852 * and then add it to the new start date...
853 */
854 if ( ev.end() != QTime(23, 59, 59 ) ) {
855 end.setDate( ev.date() );
856 }else{
857 int days = ev.event().start().date().daysTo( ev.event().end().date() );
858 end.setDate( start.date().addDays( days ) );
859 }
860
861
862
863 Event event( ev.event() );
864 event.setStart( start );
865 event.setEnd ( end );
866
867
868 emit beamMe( event );
869 }
870 }
760} 871}
diff --git a/core/pim/datebook/datebookday.h b/core/pim/datebook/datebookday.h
index 961f60f..3898cbc 100644
--- a/core/pim/datebook/datebookday.h
+++ b/core/pim/datebook/datebookday.h
@@ -34,2 +34,3 @@ class DateBookDayHeader;
34class DateBookDB; 34class DateBookDB;
35class DatebookdayAllday;
35class QDateTime; 36class QDateTime;
@@ -50,2 +51,3 @@ protected slots:
50 void slotReturnPressed(void); 51 void slotReturnPressed(void);
52 void finallyCallClose();
51signals: 53signals:
@@ -178,2 +180,3 @@ class DateBookDay : public QVBox
178 180
181 friend class DateBookDayWidget; // for beam this occurence and access to DateBookDB
179public: 182public:
@@ -190,2 +193,4 @@ public:
190 void setRowStyle( int style ); 193 void setRowStyle( int style );
194 static QDate findRealStart( int uid, const QDate& isIncluded,
195 DateBookDB* );
191 196
@@ -220,2 +225,3 @@ private:
220 DateBookDayHeader *header; 225 DateBookDayHeader *header;
226 DatebookdayAllday *m_allDays;
221 DateBookDB *db; 227 DateBookDB *db;
diff --git a/core/pim/datebook/datebookdayallday.cpp b/core/pim/datebook/datebookdayallday.cpp
new file mode 100644
index 0000000..985f31a
--- a/dev/null
+++ b/core/pim/datebook/datebookdayallday.cpp
@@ -0,0 +1,226 @@
1/****************************************************************************
2** GPL by Rajko Albrecht
3**
4**
5**
6**
7**
8****************************************************************************/
9#include "datebookdayallday.h"
10
11#include <qpushbutton.h>
12#include <qlayout.h>
13#include <qvariant.h>
14#include <qtooltip.h>
15#include <qwhatsthis.h>
16#include <qobjectlist.h>
17#include <qpe/event.h>
18#include <qpe/ir.h>
19#include <qpe/datebookdb.h>
20#include <qpe/resource.h>
21#include <qpopupmenu.h>
22#include <qtimer.h>
23#include <qregexp.h>
24#include <qdatetime.h>
25
26#include "datebookday.h"
27
28/*
29 * Constructs a DatebookdayAllday which is a child of 'parent', with the
30 * name 'name' and widget flags set to 'f'
31 */
32DatebookdayAllday::DatebookdayAllday(DateBookDB* db, QWidget* parent, const char* name, WFlags fl )
33 : QWidget( parent, name,fl ),item_count(0),dateBook(db)
34{
35 if ( !name )
36 setName( "DatebookdayAllday" );
37 setMinimumSize( QSize( 0, 0 ) );
38
39 datebookdayalldayLayout = new QVBoxLayout( this );
40 datebookdayalldayLayout->setSpacing( 0 );
41 datebookdayalldayLayout->setMargin( 0 );
42
43 lblDesc = new DatebookEventDesc(parent->parentWidget(),"");
44 lblDesc->setBackgroundColor(Qt::yellow);
45 lblDesc->hide();
46 subWidgets.setAutoDelete(true);
47}
48
49/*
50 * Destroys the object and frees any allocated resources
51 */
52DatebookdayAllday::~DatebookdayAllday()
53{
54 // no need to delete child widgets, Qt does it all for us
55}
56
57DatebookAlldayDisp* DatebookdayAllday::addEvent(const EffectiveEvent&ev)
58{
59 DatebookAlldayDisp * lb;
60 lb = new DatebookAlldayDisp(dateBook,ev,this,NULL);
61 datebookdayalldayLayout->addWidget(lb);
62 subWidgets.append(lb);
63
64 connect(lb,SIGNAL(displayMe(const Event &)),lblDesc,SLOT(disp_event(const Event&)));
65 ++item_count;
66
67 return lb;
68}
69
70void DatebookdayAllday::removeAllEvents()
71{
72 subWidgets.clear();
73 item_count = 0;
74}
75
76DatebookAlldayDisp::DatebookAlldayDisp(DateBookDB *db,const EffectiveEvent& ev,
77 QWidget* parent,const char* name,WFlags f)
78 : QLabel(parent,name,f),m_Ev(ev),dateBook(db)
79{
80 QString strDesc = m_Ev.description();
81 strDesc = strDesc.replace(QRegExp("<"),"&#60;");
82 setBackgroundColor(yellow);
83 setText(strDesc);
84 setFrameStyle(QFrame::Raised|QFrame::Panel);
85 QSize s = sizeHint();
86 setMaximumSize( QSize( 32767, s.height()-4 ) );
87 setMinimumSize( QSize( 0, s.height()-4 ) );
88}
89
90DatebookAlldayDisp::~DatebookAlldayDisp()
91{
92}
93
94void DatebookAlldayDisp::beam_single_event()
95{
96 // create an Event and beam it...
97 /*
98 * Start with the easy stuff. If start and end date is the same we can just use
99 * the values of effective m_Events
100 * If it is a multi day m_Event we need to find the real start and end date...
101 */
102 if ( m_Ev.event().start().date() == m_Ev.event().end().date() ) {
103 Event m_Event( m_Ev.event() );
104
105 QDateTime dt( m_Ev.date(), m_Ev.start() );
106 m_Event.setStart( dt );
107
108 dt.setTime( m_Ev.end() );
109 m_Event.setEnd( dt );
110 emit beamMe( m_Event );
111 }else {
112 /*
113 * at least the the Times are right now
114 */
115 QDateTime start( m_Ev.event().start() );
116 QDateTime end ( m_Ev.event().end () );
117
118 /*
119 * ok we know the start date or we need to find it
120 */
121 if ( m_Ev.start() != QTime( 0, 0, 0 ) ) {
122 start.setDate( m_Ev.date() );
123 }else {
124 QDate dt = DateBookDay::findRealStart( m_Ev.event().uid(), m_Ev.date(), dateBook );
125 start.setDate( dt );
126 }
127
128 /*
129 * ok we know now the end date...
130 * else
131 * get to know the offset btw the real start and real end
132 * and then add it to the new start date...
133 */
134 if ( m_Ev.end() != QTime(23, 59, 59 ) ) {
135 end.setDate( m_Ev.date() );
136 }else{
137 int days = m_Ev.event().start().date().daysTo( m_Ev.event().end().date() );
138 end.setDate( start.date().addDays( days ) );
139 }
140 Event m_Event( m_Ev.event() );
141 m_Event.setStart( start );
142 m_Event.setEnd ( end );
143 emit beamMe( m_Event );
144 }
145}
146
147void DatebookAlldayDisp::mousePressEvent(QMouseEvent*e)
148{
149 QColor b = backgroundColor();
150 setBackgroundColor(green);
151 update();
152 QPopupMenu m;
153 m.insertItem( DateBookDayWidget::tr( "Edit" ), 1 );
154 m.insertItem( DateBookDayWidget::tr( "Duplicate" ), 4 );
155 m.insertItem( DateBookDayWidget::tr( "Delete" ), 2 );
156 if(Ir::supported()) m.insertItem( DateBookDayWidget::tr( "Beam" ), 3 );
157 if(Ir::supported() && m_Ev.event().doRepeat() ) m.insertItem( DateBookDayWidget::tr( "Beam this occurence"), 5 );
158 m.insertItem( tr( "Info"),6);
159 int r = m.exec( e->globalPos() );
160 setBackgroundColor(b);
161 update();
162 switch (r) {
163 case 1:
164 emit editMe( m_Ev.event() );
165 break;
166 case 2:
167 emit deleteMe( m_Ev.event() );
168 break;
169 case 3:
170 emit beamMe( m_Ev.event() );
171 break;
172 case 4:
173 emit duplicateMe( m_Ev.event() );
174 break;
175 case 5:
176 beam_single_event();
177 break;
178 case 6:
179 emit displayMe( m_Ev.event() );
180 break;
181 default:
182 break;
183 }
184}
185
186DatebookEventDesc::DatebookEventDesc(QWidget*parent,const char*name)
187 :QLabel(parent,name)
188{
189 m_Timer=new QTimer(this);
190 connect(m_Timer,SIGNAL(timeout()),this,SLOT(hide()));
191 setFrameStyle(QFrame::Sunken|QFrame::Panel);
192 setTextFormat(RichText);
193}
194
195DatebookEventDesc::~DatebookEventDesc()
196{
197}
198
199void DatebookEventDesc::mousePressEvent(QMouseEvent*)
200{
201 hide();
202 if (m_Timer->isActive()) m_Timer->stop();
203}
204
205void DatebookEventDesc::disp_event(const Event&e)
206{
207 if (m_Timer->isActive()) m_Timer->stop();
208 QString text;
209 text = "<b><i>"+e.description()+"</i></b><br>";
210 if (e.notes().length()>0) {
211 text+="<b>"+e.notes()+"</b><br>";
212 }
213 if (e.location().length()>0) {
214 text+="<i>"+e.location()+"</i><br>";
215 }
216 text = text.replace(QRegExp("\n"),"<br>");
217 setText(text);
218 QSize s = sizeHint();
219 s+=QSize(10,10);
220 resize(s);
221 move( QMAX(0,(parentWidget()->width()-width()) / 2),
222 (parentWidget()->height()-height())/2 );
223 show();
224 m_Timer->start(2000,true);
225}
226
diff --git a/core/pim/datebook/datebookdayallday.h b/core/pim/datebook/datebookdayallday.h
new file mode 100644
index 0000000..c781785
--- a/dev/null
+++ b/core/pim/datebook/datebookdayallday.h
@@ -0,0 +1,80 @@
1#ifndef DATEBOOKDAYALLDAYBASE_H
2#define DATEBOOKDAYALLDAYBASE_H
3
4#include <qvariant.h>
5#include <qframe.h>
6#include <qlabel.h>
7#include <qlist.h>
8#include <qpe/event.h>
9
10class QVBoxLayout;
11class QHBoxLayout;
12class QGridLayout;
13class DatebookAlldayDisp;
14class DatebookEventDesc;
15class DateBookDB;
16
17class DatebookdayAllday : public QWidget
18{
19 Q_OBJECT
20
21public:
22 DatebookdayAllday(DateBookDB* db,
23 QWidget* parent = 0, const char* name = 0, WFlags fl = 0);
24 ~DatebookdayAllday();
25 DatebookAlldayDisp* addEvent(const EffectiveEvent&e);
26 const unsigned int items()const{return item_count;}
27
28public slots:
29 void removeAllEvents();
30
31protected:
32 QVBoxLayout* datebookdayalldayLayout;
33 DatebookEventDesc * lblDesc;
34 unsigned int item_count;
35 QList<DatebookAlldayDisp> subWidgets;
36 DateBookDB *dateBook;
37};
38
39class DatebookAlldayDisp : public QLabel
40{
41 Q_OBJECT
42
43public:
44 DatebookAlldayDisp(DateBookDB* db,const EffectiveEvent& e,
45 QWidget* parent=0,const char* name = 0, WFlags fl=0);
46 virtual ~DatebookAlldayDisp();
47
48signals:
49 void deleteMe( const Event &e );
50 void duplicateMe( const Event &e );
51 void editMe( const Event &e );
52 void beamMe( const Event &e );
53 void displayMe(const Event &e);
54
55public slots:
56
57protected:
58 EffectiveEvent m_Ev;
59 DateBookDB* dateBook;
60 void mousePressEvent( QMouseEvent *e );
61 void beam_single_event();
62};
63
64class DatebookEventDesc: public QLabel
65{
66 Q_OBJECT
67
68public:
69 DatebookEventDesc(QWidget* Parent=0,const char* name = 0);
70 virtual ~DatebookEventDesc();
71
72public slots:
73 void disp_event(const Event&e);
74
75protected:
76 void mousePressEvent(QMouseEvent*e);
77 QTimer* m_Timer;
78};
79
80#endif // DATEBOOKDAYALLDAYBASE_H
diff --git a/core/pim/datebook/datebooksettings.h b/core/pim/datebook/datebooksettings.h
index c3036e1..cf8a0ff 100644
--- a/core/pim/datebook/datebooksettings.h
+++ b/core/pim/datebook/datebooksettings.h
@@ -27,2 +27,3 @@ class DateBookSettings : public DateBookSettingsBase
27{ 27{
28 Q_OBJECT
28public: 29public:
@@ -38,3 +39,3 @@ public:
38 int alarmType() const; 39 int alarmType() const;
39 40
40 void setJumpToCurTime( bool bJump ); 41 void setJumpToCurTime( bool bJump );
@@ -43,3 +44,3 @@ public:
43 int rowStyle() const; 44 int rowStyle() const;
44 45
45private slots: 46private slots:
diff --git a/core/pim/datebook/datebookweek.cpp b/core/pim/datebook/datebookweek.cpp
index 2ad7aa9..ab7e963 100644
--- a/core/pim/datebook/datebookweek.cpp
+++ b/core/pim/datebook/datebookweek.cpp
@@ -22,9 +22,6 @@
22 22
23#include <qpe/calendar.h>
24#include <qpe/datebookdb.h> 23#include <qpe/datebookdb.h>
25#include <qpe/event.h>
26#include <qpe/qpeapplication.h> 24#include <qpe/qpeapplication.h>
27#include <qpe/timestring.h> 25#include <qpe/calendar.h>
28 26
29#include <qdatetime.h>
30#include <qheader.h> 27#include <qheader.h>
@@ -32,7 +29,3 @@
32#include <qlayout.h> 29#include <qlayout.h>
33#include <qpainter.h>
34#include <qpopupmenu.h>
35#include <qtimer.h> 30#include <qtimer.h>
36#include <qspinbox.h>
37#include <qstyle.h>
38 31
@@ -91,2 +84,6 @@ void DateBookWeekView::initNames()
91{ 84{
85#warning Please review this ! (eilers)
86
87 // Ok, I am Mr. Pedantic, but shouldn't we count until 6 instead of 7, if bOnMonday is false ? (eilers)
88
92 static bool bFirst = true; 89 static bool bFirst = true;
@@ -94,18 +91,12 @@ void DateBookWeekView::initNames()
94 if ( bOnMonday ) { 91 if ( bOnMonday ) {
95 header->addLabel( tr("Mo", "Monday" ) ); 92 for ( int i = 1; i<=7; i++ ) {
96 header->addLabel( tr("Tu", "Tuesday") ); 93 header->addLabel( Calendar::nameOfDay( i ) );
97 header->addLabel( tr("We", "Wednesday" ) ); 94 }
98 header->addLabel( tr("Th", "Thursday" ) ); 95
99 header->addLabel( tr("Fr", "Friday" ) );
100 header->addLabel( tr("Sa", "Saturday" ) );
101 header->addLabel( tr("Su", "Sunday" ) );
102 } else { 96 } else {
103 header->addLabel( tr("Su", "Sunday" ) ); 97 header->addLabel( Calendar::nameOfDay( 7 ) );
104 header->addLabel( tr("Mo", "Monday") ); 98 for ( int i = 1; i<7; i++ ) {
105 header->addLabel( tr("Tu", "Tuesday") ); 99 header->addLabel( Calendar::nameOfDay( i ) );
106 header->addLabel( tr("We", "Wednesday" ) ); 100 }
107 header->addLabel( tr("Th", "Thursday" ) ); 101 }
108 header->addLabel( tr("Fr", "Friday" ) );
109 header->addLabel( tr("Sa", "Saturday" ) );
110 }
111 bFirst = false; 102 bFirst = false;
@@ -114,17 +105,12 @@ void DateBookWeekView::initNames()
114 if ( bOnMonday ) { 105 if ( bOnMonday ) {
115 header->setLabel( 1, tr("Mo", "Monday") ); 106 for ( int i = 1; i<=7; i++ ) {
116 header->setLabel( 2, tr("Tu", "Tuesday") ); 107 header->setLabel( i, Calendar::nameOfDay( i ) );
117 header->setLabel( 3, tr("We", "Wednesday" ) ); 108 }
118 header->setLabel( 4, tr("Th", "Thursday" ) ); 109
119 header->setLabel( 5, tr("Fr", "Friday" ) );
120 header->setLabel( 6, tr("Sa", "Saturday" ) );
121 header->setLabel( 7, tr("Su", "Sunday" ) );
122 } else { 110 } else {
123 header->setLabel( 1, tr("Su", "Sunday" ) ); 111 header->setLabel( 1, Calendar::nameOfDay( 7 ) );
124 header->setLabel( 2, tr("Mo", "Monday") ); 112 for ( int i = 1; i<7; i++ ) {
125 header->setLabel( 3, tr("Tu", "Tuesday") ); 113 header->setLabel( i+1, Calendar::nameOfDay( i ) );
126 header->setLabel( 4, tr("We", "Wednesday" ) ); 114 }
127 header->setLabel( 5, tr("Th", "Thursday" ) ); 115
128 header->setLabel( 6, tr("Fr", "Friday" ) );
129 header->setLabel( 7, tr("Sa", "Saturday" ) );
130 } 116 }
@@ -404,3 +390,4 @@ void DateBookWeek::showDay( int day )
404 // Calculate offset to first day of week. 390 // Calculate offset to first day of week.
405 int dayoffset=d.dayOfWeek(); 391 int dayoffset=d.dayOfWeek() % 7;
392
406 if(bStartOnMonday) dayoffset--; 393 if(bStartOnMonday) dayoffset--;
@@ -577,2 +564,4 @@ QDate DateBookWeek::weekDate() const
577 if(bStartOnMonday) dayoffset--; 564 if(bStartOnMonday) dayoffset--;
565 else if( dayoffset == 7 )
566 dayoffset = 0;
578 567
diff --git a/core/pim/datebook/datebookweekheaderimpl.cpp b/core/pim/datebook/datebookweekheaderimpl.cpp
index ff7626f..770410e 100644
--- a/core/pim/datebook/datebookweekheaderimpl.cpp
+++ b/core/pim/datebook/datebookweekheaderimpl.cpp
@@ -72,2 +72,3 @@ void DateBookWeekHeader::nextMonth()
72{ 72{
73 qWarning("nextMonth() " );
73 setDate(date.addDays(28)); 74 setDate(date.addDays(28));
@@ -76,2 +77,3 @@ void DateBookWeekHeader::prevMonth()
76{ 77{
78 qWarning("prevMonth() " );
77 setDate(date.addDays(-28)); 79 setDate(date.addDays(-28));
@@ -80,2 +82,3 @@ void DateBookWeekHeader::nextWeek()
80{ 82{
83 qWarning("nextWeek() " );
81 setDate(date.addDays(7)); 84 setDate(date.addDays(7));
@@ -84,2 +87,3 @@ void DateBookWeekHeader::prevWeek()
84{ 87{
88 qWarning("prevWeek() ");
85 setDate(date.addDays(-7)); 89 setDate(date.addDays(-7));
@@ -96,5 +100,9 @@ void DateBookWeekHeader::setDate(const QDate &d) {
96 dayofweek=d.dayOfWeek(); 100 dayofweek=d.dayOfWeek();
97 if(bStartOnMonday) dayofweek--; 101 if(bStartOnMonday)
102 dayofweek--;
103 else if( dayofweek == 7 )
104 /* we already have the right day -7 would lead to the current week..*/
105 dayofweek = 0;
106
98 date=date.addDays(-dayofweek); 107 date=date.addDays(-dayofweek);
99
100 calcWeek(date,week,year,bStartOnMonday); 108 calcWeek(date,week,year,bStartOnMonday);
diff --git a/core/pim/datebook/datebookweeklst.cpp b/core/pim/datebook/datebookweeklst.cpp
index 7817042..aad1f3a 100644
--- a/core/pim/datebook/datebookweeklst.cpp
+++ b/core/pim/datebook/datebookweeklst.cpp
@@ -63,3 +63,8 @@ void DateBookWeekLstHeader::setDate(const QDate &d) {
63 dayofweek=d.dayOfWeek(); 63 dayofweek=d.dayOfWeek();
64 if(bStartOnMonday) dayofweek--; 64 if(bStartOnMonday)
65 dayofweek--;
66 else if( dayofweek == 7 )
67 /* we already have the right day -7 would lead to the same week */
68 dayofweek = 0;
69
65 date=date.addDays(-dayofweek); 70 date=date.addDays(-dayofweek);
@@ -119,3 +124,3 @@ DateBookWeekLstDayHdr::DateBookWeekLstDayHdr(const QDate &d, bool /* onM */,
119 124
120 static const char *wdays={"MTWTFSSM"}; 125 static const QString wdays=tr("MTWTFSSM", "Week days");
121 char day=wdays[d.dayOfWeek()-1]; 126 char day=wdays[d.dayOfWeek()-1];
@@ -239,2 +244,3 @@ DateBookWeekLstView::DateBookWeekLstView(QValueList<EffectiveEvent> &ev,
239 if(bStartOnMonday) dayoffset--; 244 if(bStartOnMonday) dayoffset--;
245 else if( dayoffset == 7 ) dayoffset = 0;
240 246
diff --git a/core/pim/datebook/dateentryimpl.cpp b/core/pim/datebook/dateentryimpl.cpp
index 13d2ce2..d9e5225 100644
--- a/core/pim/datebook/dateentryimpl.cpp
+++ b/core/pim/datebook/dateentryimpl.cpp
@@ -404,2 +404,4 @@ void DateEntry::slotRepeat()
404 } 404 }
405 // deleting sounds like a nice idea...
406 delete e;
405} 407}
diff --git a/core/pim/datebook/opie-datebook.control b/core/pim/datebook/opie-datebook.control
index 1a28448..fe5a086 100644
--- a/core/pim/datebook/opie-datebook.control
+++ b/core/pim/datebook/opie-datebook.control
@@ -1,3 +1,3 @@
1Package: opie-datebook 1Package: opie-datebook
2Files: bin/datebook apps/1Pim/datebook.desktop pics/datebook 2Files: bin/datebook apps/1Pim/datebook.desktop
3Priority: optional 3Priority: optional
@@ -7,5 +7,5 @@ Maintainer: Warwick Allison <warwick@trolltech.com>
7Architecture: arm 7Architecture: arm
8Version: $QPE_VERSION-$SUB_VERSION 8Depends: task-opie-minimal, libopie1, opie-pics
9Depends: task-opie-minimal, libopie1
10Description: A datebook/appointment manager 9Description: A datebook/appointment manager
11 A datebook/appointment manager for the Opie environment. 10 A datebook/appointment manager for the Opie environment.
11Version: $QPE_VERSION$EXTRAVERSION
diff --git a/core/pim/datebook/repeatentry.cpp b/core/pim/datebook/repeatentry.cpp
index 5637c4d..b1a162d 100644
--- a/core/pim/datebook/repeatentry.cpp
+++ b/core/pim/datebook/repeatentry.cpp
@@ -35,15 +35,32 @@
35// Global Templates for use in setting up the repeat label... 35// Global Templates for use in setting up the repeat label...
36const QString strDayTemplate = QObject::tr("Every"); 36// the problem is these strings get initialized before QPEApplication can install the translator -zecke
37const QString strYearTemplate = QObject::tr("%1 %2 every "); 37namespace {
38const QString strMonthDateTemplate = QObject::tr("The %1 every "); 38QString strDayTemplate;
39const QString strMonthDayTemplate = QObject::tr("The %1 %1 of every"); 39QString strYearTemplate;
40const QString strWeekTemplate = QObject::tr("Every "); 40QString strMonthDateTemplate;
41const QString dayLabel[] = { QObject::tr("Monday"), 41QString strMonthDayTemplate;
42 QObject::tr("Tuesday"), 42QString strWeekTemplate;
43 QObject::tr("Wednesday"), 43QString dayLabel[7];
44 QObject::tr("Thursday"), 44}
45 QObject::tr("Friday"),
46 QObject::tr("Saturday"),
47 QObject::tr("Sunday") };
48 45
46/*
47 * static linkage to not polute the symbol table...
48 * The problem is that const and static linkage are resolved prior to installing a translator
49 * leading to that the above strings are translted but to the original we delay the init of these strings...
50 * -zecke
51 */
52static void fillStrings() {
53 strDayTemplate = QObject::tr("Every");
54 strYearTemplate = QObject::tr("%1 %2 every ");
55 strMonthDateTemplate = QObject::tr("The %1 every ");
56 strMonthDayTemplate = QObject::tr("The %1 %1 of every");
57 strWeekTemplate = QObject::tr("Every ");
58 dayLabel[0] = QObject::tr("Monday");
59 dayLabel[1] = QObject::tr("Tuesday");
60 dayLabel[2] = QObject::tr("Wednesday");
61 dayLabel[3] = QObject::tr("Thursday");
62 dayLabel[4] = QObject::tr("Friday");
63 dayLabel[5] = QObject::tr("Saturday");
64 dayLabel[6] = QObject::tr("Sunday");
65}
49 66
@@ -61,2 +78,5 @@ RepeatEntry::RepeatEntry( bool startOnMonday,
61{ 78{
79 if (strDayTemplate.isEmpty() )
80 fillStrings();
81
62 init(); 82 init();
@@ -76,2 +96,4 @@ RepeatEntry::RepeatEntry( bool startOnMonday, const Event::RepeatPattern &rp,
76{ 96{
97 if (strDayTemplate.isEmpty() )
98 fillStrings();
77 // do some stuff with the repeat pattern 99 // do some stuff with the repeat pattern
@@ -408,3 +430,3 @@ void RepeatEntry::setupRepeatLabel( int x )
408 else 430 else
409 strVar2 = tr( "day" ); 431 strVar2 = tr( "day" );
410 break; 432 break;
@@ -502,3 +524,3 @@ void RepeatEntry::slotWeekLabel()
502 } 524 }
503 str = str.prepend( "on " ); 525 str = str.prepend( tr("on ") );
504 lblWeekVar->setText( str ); 526 lblWeekVar->setText( str );