summaryrefslogtreecommitdiff
authoralwin <alwin>2005-03-19 13:44:30 (UTC)
committer alwin <alwin>2005-03-19 13:44:30 (UTC)
commit34e42590a8ef21c1377f89c7b82f25bcf0aec3cb (patch) (unidiff)
treef5afdae31945ca2bac7339a339499fa87ece50d9
parentd9e8b9e797e3162ab564bb3b0f04663ef1167541 (diff)
downloadopie-34e42590a8ef21c1377f89c7b82f25bcf0aec3cb.zip
opie-34e42590a8ef21c1377f89c7b82f25bcf0aec3cb.tar.gz
opie-34e42590a8ef21c1377f89c7b82f25bcf0aec3cb.tar.bz2
so....
I looked for a problem. could not found due the kind of code structure. so I had reorganized the code into a more sensefull structure so every one should be able to find some code sequences when searching for a bug. yes - now I found the problem and can thinking about resolving it.
Diffstat (more/less context) (ignore whitespace changes)
-rw-r--r--core/pim/datebook/datebook.cpp5
-rw-r--r--core/pim/datebook/datebook.h3
-rw-r--r--core/pim/datebook/datebook.pro18
-rw-r--r--core/pim/datebook/datebooktypes.h3
-rw-r--r--core/pim/datebook/datebookweeklst.cpp442
-rw-r--r--core/pim/datebook/datebookweeklst.h178
-rw-r--r--core/pim/datebook/modules/weeklst/.cvsignore4
-rw-r--r--core/pim/datebook/modules/weeklst/datebookweeklst.cpp138
-rw-r--r--core/pim/datebook/modules/weeklst/datebookweeklst.h65
-rw-r--r--core/pim/datebook/modules/weeklst/datebookweeklstdayhdr.cpp53
-rw-r--r--core/pim/datebook/modules/weeklst/datebookweeklstdayhdr.h26
-rw-r--r--core/pim/datebook/modules/weeklst/datebookweeklstdayhdrbase.ui (renamed from core/pim/datebook/datebookweeklstdayhdr.ui)0
-rw-r--r--core/pim/datebook/modules/weeklst/datebookweeklstdblview.cpp41
-rw-r--r--core/pim/datebook/modules/weeklst/datebookweeklstdblview.h31
-rw-r--r--core/pim/datebook/modules/weeklst/datebookweeklstevent.cpp85
-rw-r--r--core/pim/datebook/modules/weeklst/datebookweeklstevent.h34
-rw-r--r--core/pim/datebook/modules/weeklst/datebookweeklstheader.cpp96
-rw-r--r--core/pim/datebook/modules/weeklst/datebookweeklstheader.h34
-rw-r--r--core/pim/datebook/modules/weeklst/datebookweeklstheaderbase.ui (renamed from core/pim/datebook/datebookweeklstheader.ui)0
-rw-r--r--core/pim/datebook/modules/weeklst/datebookweeklstview.cpp73
-rw-r--r--core/pim/datebook/modules/weeklst/datebookweeklstview.h36
21 files changed, 736 insertions, 629 deletions
diff --git a/core/pim/datebook/datebook.cpp b/core/pim/datebook/datebook.cpp
index 70dd7b5..0579279 100644
--- a/core/pim/datebook/datebook.cpp
+++ b/core/pim/datebook/datebook.cpp
@@ -1,249 +1,250 @@
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** $Id$ 19** $Id$
20** 20**
21**********************************************************************/ 21**********************************************************************/
22 22
23#define QTOPIA_INTERNAL_FD 23#define QTOPIA_INTERNAL_FD
24 24
25#include "datebook.h" 25#include "datebook.h"
26#include "datebookday.h" 26#include "datebookday.h"
27#include "datebooksettings.h" 27#include "datebooksettings.h"
28#include "datebookweek.h" 28#include "datebookweek.h"
29#include "datebookweeklst.h" 29#include "modules/weeklst/datebookweeklst.h"
30#include "dateentryimpl.h" 30#include "dateentryimpl.h"
31 31
32#include <opie2/odebug.h> 32#include <opie2/odebug.h>
33#include <opie2/oholidaypluginif.h> 33#include <opie2/oholidaypluginif.h>
34#include <opie2/oholidayplugin.h> 34#include <opie2/oholidayplugin.h>
35#include <opie2/opluginloader.h> 35#include <opie2/opluginloader.h>
36#include <opie2/todayplugininterface.h> 36#include <opie2/todayplugininterface.h>
37 37
38#include <qpe/datebookmonth.h> 38#include <qpe/datebookmonth.h>
39#include <qpe/qpeapplication.h> 39#include <qpe/qpeapplication.h>
40#include <qpe/config.h> 40#include <qpe/config.h>
41#include <qpe/finddialog.h> 41#include <qpe/finddialog.h>
42#include <qpe/ir.h> 42#include <qpe/ir.h>
43#include <qpe/qpemessagebox.h> 43#include <qpe/qpemessagebox.h>
44#include <qpe/resource.h> 44#include <qpe/resource.h>
45#include <qpe/sound.h> 45#include <qpe/sound.h>
46#include <qpe/tzselect.h> 46#include <qpe/tzselect.h>
47#include <qtopia/qlibrary.h>
47 48
48#include <qaction.h> 49#include <qaction.h>
49#include <qcopchannel_qws.h> 50#include <qcopchannel_qws.h>
50#include <qlayout.h> 51#include <qlayout.h>
51#include <qmessagebox.h> 52#include <qmessagebox.h>
52#include <qtimer.h> 53#include <qtimer.h>
53#include <qtl.h> 54#include <qtl.h>
54#include <qtoolbar.h> 55#include <qtoolbar.h>
55#include <qwidgetstack.h> 56#include <qwidgetstack.h>
56#include <qdir.h> 57#include <qdir.h>
57#include <qtopia/qlibrary.h> 58#include <qlabel.h>
58 59
59#include <sys/stat.h> 60#include <sys/stat.h>
60#include <sys/types.h> 61#include <sys/types.h>
61#include <fcntl.h> 62#include <fcntl.h>
62#include <unistd.h> 63#include <unistd.h>
63 64
64#include <stdlib.h> 65#include <stdlib.h>
65 66
66DateBook::DateBook( QWidget *parent, const char *, WFlags f ) 67DateBook::DateBook( QWidget *parent, const char *, WFlags f )
67 : QMainWindow( parent, "datebook", f ), 68 : QMainWindow( parent, "datebook", f ),
68 aPreset( FALSE ), 69 aPreset( FALSE ),
69 presetTime( -1 ), 70 presetTime( -1 ),
70 startTime( 8 ), // an acceptable default 71 startTime( 8 ), // an acceptable default
71 rowStyle( 0 ), 72 rowStyle( 0 ),
72 bJumpToCurTime(FALSE), 73 bJumpToCurTime(FALSE),
73 syncing(FALSE), 74 syncing(FALSE),
74 inSearch(FALSE), 75 inSearch(FALSE),
75 alarmCounter(0) 76 alarmCounter(0)
76{ 77{
77 bool needEvilHack= false; // if we need an Evil Hack 78 bool needEvilHack= false; // if we need an Evil Hack
78 QTime t; 79 QTime t;
79 t.start(); 80 t.start();
80 db = new DateBookDBHoliday; 81 db = new DateBookDBHoliday;
81 odebug << "loading db t=" << t.elapsed() << oendl; 82 odebug << "loading db t=" << t.elapsed() << oendl;
82 db_holiday = new DateBookHoliday(); 83 db_holiday = new DateBookHoliday();
83 db->db_holiday=db_holiday; 84 db->db_holiday=db_holiday;
84 85
85 loadSettings(); 86 loadSettings();
86 setCaption( tr("Calendar") ); 87 setCaption( tr("Calendar") );
87 setIcon( Resource::loadPixmap( "datebook_icon" ) ); 88 setIcon( Resource::loadPixmap( "datebook_icon" ) );
88 89
89 setToolBarsMovable( FALSE ); 90 setToolBarsMovable( FALSE );
90 91
91 views = new QWidgetStack( this ); 92 views = new QWidgetStack( this );
92 setCentralWidget( views ); 93 setCentralWidget( views );
93 94
94 dayView = 0; 95 dayView = 0;
95 weekView = 0; 96 weekView = 0;
96 weekLstView = 0; 97 weekLstView = 0;
97 monthView = 0; 98 monthView = 0;
98 99
99// QToolBar *bar = new QToolBar( this ); 100// QToolBar *bar = new QToolBar( this );
100// bar->setHorizontalStretchable( TRUE ); 101// bar->setHorizontalStretchable( TRUE );
101 102
102// QMenuBar *mb = new QMenuBar( bar ); 103// QMenuBar *mb = new QMenuBar( bar );
103// mb->setMargin( 0 ); 104// mb->setMargin( 0 );
104 105
105// QPopupMenu *view = new QPopupMenu( this ); 106// QPopupMenu *view = new QPopupMenu( this );
106// mb->insertItem( tr( "View" ), view ); 107// mb->insertItem( tr( "View" ), view );
107 108
108 QToolBar *sub_bar = new QToolBar(this); 109 QToolBar *sub_bar = new QToolBar(this);
109 sub_bar->setHorizontalStretchable(TRUE); 110 sub_bar->setHorizontalStretchable(TRUE);
110 111
111 QActionGroup *g = new QActionGroup( this ); 112 QActionGroup *g = new QActionGroup( this );
112 g->setExclusive( TRUE ); 113 g->setExclusive( TRUE );
113 114
114 QAction *a = new QAction( tr( "New" ), Resource::loadPixmap( "new" ), QString::null, 0, this, 0 ); 115 QAction *a = new QAction( tr( "New" ), Resource::loadPixmap( "new" ), QString::null, 0, this, 0 );
115 connect( a, SIGNAL( activated() ), this, SLOT( fileNew() ) ); 116 connect( a, SIGNAL( activated() ), this, SLOT( fileNew() ) );
116 a->addTo( sub_bar ); 117 a->addTo( sub_bar );
117 118
118 sub_bar->addSeparator(); 119 sub_bar->addSeparator();
119 120
120 a = new QAction( tr( "Today" ), Resource::loadPixmap( "datebook/to_day" ), QString::null, 0, g, 0 ); 121 a = new QAction( tr( "Today" ), Resource::loadPixmap( "datebook/to_day" ), QString::null, 0, g, 0 );
121 connect( a, SIGNAL( activated() ), this, SLOT( slotToday() ) ); 122 connect( a, SIGNAL( activated() ), this, SLOT( slotToday() ) );
122 a->addTo( sub_bar ); 123 a->addTo( sub_bar );
123// a->addTo( view ); 124// a->addTo( view );
124 125
125 sub_bar->addSeparator(); 126 sub_bar->addSeparator();
126 127
127 a = new QAction( tr( "Day" ), Resource::loadPixmap( "day" ), QString::null, 0, g, 0 ); 128 a = new QAction( tr( "Day" ), Resource::loadPixmap( "day" ), QString::null, 0, g, 0 );
128 connect( a, SIGNAL( activated() ), this, SLOT( viewDay() ) ); 129 connect( a, SIGNAL( activated() ), this, SLOT( viewDay() ) );
129 a->addTo( sub_bar ); 130 a->addTo( sub_bar );
130// a->addTo( view ); 131// a->addTo( view );
131 a->setToggleAction( TRUE ); 132 a->setToggleAction( TRUE );
132 a->setOn( TRUE ); 133 a->setOn( TRUE );
133 dayAction = a; 134 dayAction = a;
134 135
135 a = new QAction( tr( "Week" ), Resource::loadPixmap( "week" ), QString::null, 0, g, 0 ); 136 a = new QAction( tr( "Week" ), Resource::loadPixmap( "week" ), QString::null, 0, g, 0 );
136 connect( a, SIGNAL( activated() ), this, SLOT( viewWeek() ) ); 137 connect( a, SIGNAL( activated() ), this, SLOT( viewWeek() ) );
137 a->addTo( sub_bar ); 138 a->addTo( sub_bar );
138// a->addTo( view ); 139// a->addTo( view );
139 a->setToggleAction( TRUE ); 140 a->setToggleAction( TRUE );
140 weekAction = a; 141 weekAction = a;
141 142
142 a = new QAction( tr( "WeekLst" ), Resource::loadPixmap( "datebook/weeklst" ), QString::null, 0, g, 0 ); 143 a = new QAction( tr( "WeekLst" ), Resource::loadPixmap( "datebook/weeklst" ), QString::null, 0, g, 0 );
143 connect( a, SIGNAL( activated() ), this, SLOT( viewWeekLst() ) ); 144 connect( a, SIGNAL( activated() ), this, SLOT( viewWeekLst() ) );
144 a->addTo( sub_bar ); 145 a->addTo( sub_bar );
145// a->addTo( view ); 146// a->addTo( view );
146 a->setToggleAction( TRUE ); 147 a->setToggleAction( TRUE );
147 weekLstAction = a; 148 weekLstAction = a;
148 149
149 a = new QAction( tr( "Month" ), Resource::loadPixmap( "month" ), QString::null, 0, g, 0 ); 150 a = new QAction( tr( "Month" ), Resource::loadPixmap( "month" ), QString::null, 0, g, 0 );
150 connect( a, SIGNAL( activated() ), this, SLOT( viewMonth() ) ); 151 connect( a, SIGNAL( activated() ), this, SLOT( viewMonth() ) );
151 a->addTo( sub_bar ); 152 a->addTo( sub_bar );
152// a->addTo( view ); 153// a->addTo( view );
153 a->setToggleAction( TRUE ); 154 a->setToggleAction( TRUE );
154 monthAction = a; 155 monthAction = a;
155 156
156 sub_bar->addSeparator(); 157 sub_bar->addSeparator();
157 158
158 a = new QAction( tr( "Find" ), Resource::loadPixmap( "mag" ), QString::null, 0, this, 0 ); 159 a = new QAction( tr( "Find" ), Resource::loadPixmap( "mag" ), QString::null, 0, this, 0 );
159 connect( a, SIGNAL(activated()), this, SLOT(slotFind()) ); 160 connect( a, SIGNAL(activated()), this, SLOT(slotFind()) );
160 a->addTo( sub_bar ); 161 a->addTo( sub_bar );
161 162
162 a = new QAction( tr( "Edit..." ), Resource::loadPixmap("SettingsIcon"), QString::null, 0, this, 0 ); 163 a = new QAction( tr( "Edit..." ), Resource::loadPixmap("SettingsIcon"), QString::null, 0, this, 0 );
163 connect( a, SIGNAL( activated() ), this, SLOT( slotSettings() ) ); 164 connect( a, SIGNAL( activated() ), this, SLOT( slotSettings() ) );
164 a->addTo( sub_bar ); 165 a->addTo( sub_bar );
165 166
166 if(defaultView==DAY) viewDay(); 167 if(defaultView==DAY) viewDay();
167 if(defaultView==WEEK) needEvilHack=true; // viewWeek(); 168 if(defaultView==WEEK) needEvilHack=true; // viewWeek();
168 if(defaultView==WEEKLST) viewWeekLst(); 169 if(defaultView==WEEKLST) viewWeekLst();
169 if(defaultView==MONTH) viewMonth(); 170 if(defaultView==MONTH) viewMonth();
170 171
171 connect( qApp, SIGNAL(clockChanged(bool)), this, SLOT(changeClock(bool)) ); 172 connect( qApp, SIGNAL(clockChanged(bool)), this, SLOT(changeClock(bool)) );
172 connect( qApp, SIGNAL(weekChanged(bool)), this, SLOT(changeWeek(bool)) ); 173 connect( qApp, SIGNAL(weekChanged(bool)), this, SLOT(changeWeek(bool)) );
173 174
174#if defined(Q_WS_QWS) && !defined(QT_NO_COP) 175#if defined(Q_WS_QWS) && !defined(QT_NO_COP)
175 connect( qApp, SIGNAL(appMessage(const QCString&,const QByteArray&)), this, SLOT(appMessage(const QCString&,const QByteArray&)) ); 176 connect( qApp, SIGNAL(appMessage(const QCString&,const QByteArray&)), this, SLOT(appMessage(const QCString&,const QByteArray&)) );
176#endif 177#endif
177 178
178 // listen on QPE/System 179 // listen on QPE/System
179#if defined(Q_WS_QWS) 180#if defined(Q_WS_QWS)
180#if !defined(QT_NO_COP) 181#if !defined(QT_NO_COP)
181 QCopChannel *channel = new QCopChannel( "QPE/System", this ); 182 QCopChannel *channel = new QCopChannel( "QPE/System", this );
182 connect( channel, SIGNAL(received(const QCString&,const QByteArray&)), this, SLOT(receive(const QCString&,const QByteArray&)) ); 183 connect( channel, SIGNAL(received(const QCString&,const QByteArray&)), this, SLOT(receive(const QCString&,const QByteArray&)) );
183 channel = new QCopChannel( "QPE/Datebook", this ); 184 channel = new QCopChannel( "QPE/Datebook", this );
184 connect( channel, SIGNAL(received(const QCString&,const QByteArray&)), this, SLOT(receive(const QCString&,const QByteArray&)) ); 185 connect( channel, SIGNAL(received(const QCString&,const QByteArray&)), this, SLOT(receive(const QCString&,const QByteArray&)) );
185#endif 186#endif
186#endif 187#endif
187 188
188 odebug << "done t=" << t.elapsed() << oendl; 189 odebug << "done t=" << t.elapsed() << oendl;
189 190
190 connect( qApp, SIGNAL( flush() ), this, SLOT( flush() ) ); 191 connect( qApp, SIGNAL( flush() ), this, SLOT( flush() ) );
191 connect( qApp, SIGNAL( reload()), this, SLOT( reload() ) ); 192 connect( qApp, SIGNAL( reload()), this, SLOT( reload() ) );
192 /* 193 /*
193 * Here is a problem description: 194 * Here is a problem description:
194 * When Weekview is the default view 195 * When Weekview is the default view
195 * a DateBookWeekView get's created 196 * a DateBookWeekView get's created
196 * redraw() get's called. So what? 197 * redraw() get's called. So what?
197 * Remember that we're still in the c'tor 198 * Remember that we're still in the c'tor
198 * and no final layout has happened? Ok 199 * and no final layout has happened? Ok
199 * now all Events get arranged. Their x 200 * now all Events get arranged. Their x
200 * position get's determined by a QHeader 201 * position get's determined by a QHeader
201 * position. But the QHeader isn't layouted or 202 * position. But the QHeader isn't layouted or
202 * at the right position. redraw() is a slot 203 * at the right position. redraw() is a slot
203 * so we'll call it then via a singleShot 204 * so we'll call it then via a singleShot
204 * from view() 205 * from view()
205 */ 206 */
206 if( needEvilHack ){ 207 if( needEvilHack ){
207 QTimer::singleShot( 500, this, SLOT(viewWeek()) ); 208 QTimer::singleShot( 500, this, SLOT(viewWeek()) );
208 } 209 }
209} 210}
210 211
211void DateBook::receive( const QCString &msg, const QByteArray &data ) 212void DateBook::receive( const QCString &msg, const QByteArray &data )
212{ 213{
213 QDataStream stream( data, IO_ReadOnly ); 214 QDataStream stream( data, IO_ReadOnly );
214 if ( msg == "timeChange(QString)" ) { 215 if ( msg == "timeChange(QString)" ) {
215 // update active view! 216 // update active view!
216 if ( dayAction->isOn() ) 217 if ( dayAction->isOn() )
217 viewDay(); 218 viewDay();
218 else if ( weekAction->isOn() ) 219 else if ( weekAction->isOn() )
219 viewWeek(); 220 viewWeek();
220 else if ( monthAction->isOn() ) 221 else if ( monthAction->isOn() )
221 viewMonth(); 222 viewMonth();
222 } 223 }
223 else if (msg == "editEvent(int)") { 224 else if (msg == "editEvent(int)") {
224 int uid; 225 int uid;
225 stream >> uid; 226 stream >> uid;
226 Event e=db->eventByUID(uid); 227 Event e=db->eventByUID(uid);
227 editEvent(e); 228 editEvent(e);
228 }else if (msg == "viewDefault(QDate)"){ 229 }else if (msg == "viewDefault(QDate)"){
229 QDate day; 230 QDate day;
230 stream >> day; 231 stream >> day;
231 viewDefault(day); 232 viewDefault(day);
232 } 233 }
233} 234}
234 235
235DateBook::~DateBook() 236DateBook::~DateBook()
236{ 237{
237 delete db_holiday; 238 delete db_holiday;
238} 239}
239 240
240void DateBook::slotSettings() 241void DateBook::slotSettings()
241{ 242{
242 DateBookSettings frmSettings( ampm, this ); 243 DateBookSettings frmSettings( ampm, this );
243 frmSettings.setStartTime( startTime ); 244 frmSettings.setStartTime( startTime );
244 frmSettings.setAlarmPreset( aPreset, presetTime ); 245 frmSettings.setAlarmPreset( aPreset, presetTime );
245 frmSettings.setJumpToCurTime( bJumpToCurTime ); 246 frmSettings.setJumpToCurTime( bJumpToCurTime );
246 frmSettings.setRowStyle( rowStyle ); 247 frmSettings.setRowStyle( rowStyle );
247 frmSettings.comboDefaultView->setCurrentItem(defaultView-1); 248 frmSettings.comboDefaultView->setCurrentItem(defaultView-1);
248 frmSettings.comboWeekListView->setCurrentItem(weeklistviewconfig); 249 frmSettings.comboWeekListView->setCurrentItem(weeklistviewconfig);
249 frmSettings.setPluginList(db_holiday->pluginManager(),db_holiday->pluginLoader()); 250 frmSettings.setPluginList(db_holiday->pluginManager(),db_holiday->pluginLoader());
diff --git a/core/pim/datebook/datebook.h b/core/pim/datebook/datebook.h
index 3d7f5b5..fb8b083 100644
--- a/core/pim/datebook/datebook.h
+++ b/core/pim/datebook/datebook.h
@@ -1,137 +1,134 @@
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#ifndef DATEBOOK_H 20#ifndef DATEBOOK_H
21#define DATEBOOK_H 21#define DATEBOOK_H
22 22
23#include "datebooktypes.h" 23#include "datebooktypes.h"
24 24
25#include <qpe/datebookdb.h> 25#include <qpe/datebookdb.h>
26 26
27#include <qmainwindow.h> 27#include <qmainwindow.h>
28 28
29enum { DAY=1,WEEK,WEEKLST,MONTH }; // defaultView values
30enum { NONE=0,NORMAL,EXTENDED }; // WeekLstView's modes.
31
32class QAction; 29class QAction;
33class QWidgetStack; 30class QWidgetStack;
34class DateBookDay; 31class DateBookDay;
35class DateBookWeek; 32class DateBookWeek;
36class DateBookWeekLst; 33class DateBookWeekLst;
37class DateBookMonth; 34class DateBookMonth;
38class Event; 35class Event;
39class QDate; 36class QDate;
40class Ir; 37class Ir;
41 38
42class DateBook : public QMainWindow 39class DateBook : public QMainWindow
43{ 40{
44 Q_OBJECT 41 Q_OBJECT
45 42
46public: 43public:
47 static QString appName() { return QString::fromLatin1("datebook"); } 44 static QString appName() { return QString::fromLatin1("datebook"); }
48 DateBook( QWidget *parent = 0, const char *name = 0, WFlags f = 0 ); 45 DateBook( QWidget *parent = 0, const char *name = 0, WFlags f = 0 );
49 ~DateBook(); 46 ~DateBook();
50 47
51signals: 48signals:
52 void newEvent(); 49 void newEvent();
53 void signalNotFound(); 50 void signalNotFound();
54 void signalWrapAround(); 51 void signalWrapAround();
55 52
56protected: 53protected:
57 QDate currentDate(); 54 QDate currentDate();
58 void timerEvent( QTimerEvent *e ); 55 void timerEvent( QTimerEvent *e );
59 void closeEvent( QCloseEvent *e ); 56 void closeEvent( QCloseEvent *e );
60 57
61 void view(int v, const QDate &d); 58 void view(int v, const QDate &d);
62 59
63public slots: 60public slots:
64 void flush(); 61 void flush();
65 void reload(); 62 void reload();
66 63
67private slots: 64private slots:
68 void fileNew(); 65 void fileNew();
69 void slotNewEntry(const QDateTime &start, const QDateTime &end, const QString &str, const QString &location=0); 66 void slotNewEntry(const QDateTime &start, const QDateTime &end, const QString &str, const QString &location=0);
70 void slotSettings(); 67 void slotSettings();
71 void slotToday(); // view today 68 void slotToday(); // view today
72 void changeClock( bool newClock ); 69 void changeClock( bool newClock );
73 void changeWeek( bool newDay ); 70 void changeWeek( bool newDay );
74 void appMessage(const QCString& msg, const QByteArray& data); 71 void appMessage(const QCString& msg, const QByteArray& data);
75 // handle key events in the day view... 72 // handle key events in the day view...
76 void slotNewEventFromKey( const QString &str ); 73 void slotNewEventFromKey( const QString &str );
77 void slotFind(); 74 void slotFind();
78 void slotDoFind( const QString &, const QDate &, bool, bool, int ); 75 void slotDoFind( const QString &, const QDate &, bool, bool, int );
79 76
80 void viewDefault(const QDate &d); 77 void viewDefault(const QDate &d);
81 78
82 void viewDay(); 79 void viewDay();
83 void viewWeek(); 80 void viewWeek();
84 void viewWeekLst(); 81 void viewWeekLst();
85 void viewMonth(); 82 void viewMonth();
86 83
87 void showDay( int y, int m, int d ); 84 void showDay( int y, int m, int d );
88 85
89 void insertEvent( const Event &e ); 86 void insertEvent( const Event &e );
90 void editEvent( const Event &e ); 87 void editEvent( const Event &e );
91 void duplicateEvent( const Event &e ); 88 void duplicateEvent( const Event &e );
92 void removeEvent( const Event &e ); 89 void removeEvent( const Event &e );
93 90
94 void receive( const QCString &msg, const QByteArray &data ); 91 void receive( const QCString &msg, const QByteArray &data );
95 void setDocument( const QString & ); 92 void setDocument( const QString & );
96 void beamEvent( const Event &e ); 93 void beamEvent( const Event &e );
97 void beamDone( Ir *ir ); 94 void beamDone( Ir *ir );
98 95
99private: 96private:
100 void addEvent( const Event &e ); 97 void addEvent( const Event &e );
101 void initDay(); 98 void initDay();
102 void initWeek(); 99 void initWeek();
103 void initWeekLst(); 100 void initWeekLst();
104 void initMonth(); 101 void initMonth();
105 void loadSettings(); 102 void loadSettings();
106 void saveSettings(); 103 void saveSettings();
107 104
108private: 105private:
109 DateBookDBHoliday *db; 106 DateBookDBHoliday *db;
110 DateBookHoliday*db_holiday; 107 DateBookHoliday*db_holiday;
111 QWidgetStack *views; 108 QWidgetStack *views;
112 DateBookDay *dayView; 109 DateBookDay *dayView;
113 DateBookWeek *weekView; 110 DateBookWeek *weekView;
114 DateBookMonth *monthView; 111 DateBookMonth *monthView;
115 DateBookWeekLst *weekLstView; 112 DateBookWeekLst *weekLstView;
116 QAction *dayAction, *weekAction, *weekLstAction, *monthAction; 113 QAction *dayAction, *weekAction, *weekLstAction, *monthAction;
117 int weeklistviewconfig; 114 int weeklistviewconfig;
118 bool aPreset; // have everything set to alarm? 115 bool aPreset; // have everything set to alarm?
119 int presetTime; // the standard time for the alarm 116 int presetTime; // the standard time for the alarm
120 int startTime; 117 int startTime;
121 int rowStyle; 118 int rowStyle;
122 int defaultView; 119 int defaultView;
123 QArray<int> defaultCategories; 120 QArray<int> defaultCategories;
124 QString defaultLocation; 121 QString defaultLocation;
125 bool bJumpToCurTime; //should jump to current time in dayview? 122 bool bJumpToCurTime; //should jump to current time in dayview?
126 bool ampm; 123 bool ampm;
127 bool onMonday; 124 bool onMonday;
128 125
129 bool syncing; 126 bool syncing;
130 bool inSearch; 127 bool inSearch;
131 128
132 int alarmCounter; 129 int alarmCounter;
133 130
134 QString checkEvent(const Event &); 131 QString checkEvent(const Event &);
135}; 132};
136 133
137#endif 134#endif
diff --git a/core/pim/datebook/datebook.pro b/core/pim/datebook/datebook.pro
index 046bcdf..26f4d8d 100644
--- a/core/pim/datebook/datebook.pro
+++ b/core/pim/datebook/datebook.pro
@@ -1,42 +1,52 @@
1 CONFIG += qt warn_on quick-app 1 CONFIG += qt warn_on quick-app
2 HEADERS= datebookday.h \ 2 HEADERS= datebookday.h \
3 datebook.h \ 3 datebook.h \
4 dateentryimpl.h \ 4 dateentryimpl.h \
5 datebookdayheaderimpl.h \ 5 datebookdayheaderimpl.h \
6 datebooksettings.h \ 6 datebooksettings.h \
7 datebookweek.h \ 7 datebookweek.h \
8 datebookweeklst.h \ 8 modules/weeklst/datebookweeklst.h \
9 modules/weeklst/datebookweeklstdayhdr.h \
10 modules/weeklst/datebookweeklstheader.h \
11 modules/weeklst/datebookweeklstevent.h \
12 modules/weeklst/datebookweeklstview.h \
13 modules/weeklst/datebookweeklstdblview.h \
9 datebookweekheaderimpl.h \ 14 datebookweekheaderimpl.h \
10 repeatentry.h \ 15 repeatentry.h \
11 noteentryimpl.h \ 16 noteentryimpl.h \
12 onoteedit.h \ 17 onoteedit.h \
13 datebookdayallday.h \ 18 datebookdayallday.h \
14 namespace_hack.h \ 19 namespace_hack.h \
15 datebooktypes.h 20 datebooktypes.h
16 SOURCES= main.cpp \ 21 SOURCES= main.cpp \
17 datebookday.cpp \ 22 datebookday.cpp \
18 datebook.cpp \ 23 datebook.cpp \
19 dateentryimpl.cpp \ 24 dateentryimpl.cpp \
20 datebookdayheaderimpl.cpp \ 25 datebookdayheaderimpl.cpp \
21 datebooksettings.cpp \ 26 datebooksettings.cpp \
22 datebookweek.cpp \ 27 datebookweek.cpp \
23 datebookweeklst.cpp \ 28 modules/weeklst/datebookweeklst.cpp \
29 modules/weeklst/datebookweeklstdayhdr.cpp \
30 modules/weeklst/datebookweeklstheader.cpp \
31 modules/weeklst/datebookweeklstevent.cpp \
32 modules/weeklst/datebookweeklstview.cpp \
33 modules/weeklst/datebookweeklstdblview.cpp \
24 datebookweekheaderimpl.cpp \ 34 datebookweekheaderimpl.cpp \
25 repeatentry.cpp \ 35 repeatentry.cpp \
26 noteentryimpl.cpp \ 36 noteentryimpl.cpp \
27 onoteedit.cpp \ 37 onoteedit.cpp \
28 datebookdayallday.cpp 38 datebookdayallday.cpp
29 INTERFACES= dateentry.ui \ 39 INTERFACES= dateentry.ui \
30 datebookdayheader.ui \ 40 datebookdayheader.ui \
31 datebookweekheader.ui \ 41 datebookweekheader.ui \
32 datebookweeklstheader.ui \ 42 modules/weeklst/datebookweeklstheaderbase.ui \
33 datebookweeklstdayhdr.ui \ 43 modules/weeklst/datebookweeklstdayhdrbase.ui \
34 repeatentrybase.ui \ 44 repeatentrybase.ui \
35 datebooksettingsbase.ui \ 45 datebooksettingsbase.ui \
36 noteentry.ui 46 noteentry.ui
37INCLUDEPATH += $(OPIEDIR)/include 47INCLUDEPATH += $(OPIEDIR)/include
38 DEPENDPATH+= $(OPIEDIR)/include 48 DEPENDPATH+= $(OPIEDIR)/include
39LIBS += -lqpe -lopieui2 -lopiecore2 -lopiepim2 49LIBS += -lqpe -lopieui2 -lopiecore2 -lopiepim2
40 TARGET = datebook 50 TARGET = datebook
41 51
42include( $(OPIEDIR)/include.pro ) 52include( $(OPIEDIR)/include.pro )
diff --git a/core/pim/datebook/datebooktypes.h b/core/pim/datebook/datebooktypes.h
index 2966814..9453be8 100644
--- a/core/pim/datebook/datebooktypes.h
+++ b/core/pim/datebook/datebooktypes.h
@@ -1,70 +1,73 @@
1#ifndef _DATEBOOK_TYPES_H 1#ifndef _DATEBOOK_TYPES_H
2#define _DATEBOOK_TYPES_H 2#define _DATEBOOK_TYPES_H
3 3
4#include <qpe/datebookdb.h> 4#include <qpe/datebookdb.h>
5 5
6#include <qvaluelist.h> 6#include <qvaluelist.h>
7#include <qstringlist.h> 7#include <qstringlist.h>
8 8
9namespace Opie { 9namespace Opie {
10namespace Datebook { 10namespace Datebook {
11 class HolidayPlugin; 11 class HolidayPlugin;
12 class HolidayPluginIf; 12 class HolidayPluginIf;
13} 13}
14namespace Core { 14namespace Core {
15 class OPluginLoader; 15 class OPluginLoader;
16 class OPluginManager; 16 class OPluginManager;
17} 17}
18} 18}
19 19
20class QLibrary; 20class QLibrary;
21 21
22enum { DAY=1,WEEK,WEEKLST,MONTH }; // defaultView values
23enum { NONE=0,NORMAL,EXTENDED }; // WeekLstView's modes.
24
22class DateBookDBHack : virtual public DateBookDB { 25class DateBookDBHack : virtual public DateBookDB {
23 public: 26 public:
24 virtual ~DateBookDBHack(){} 27 virtual ~DateBookDBHack(){}
25 Event eventByUID(int id); 28 Event eventByUID(int id);
26}; 29};
27 30
28class DateBookHoliday 31class DateBookHoliday
29{ 32{
30public: 33public:
31 DateBookHoliday(); 34 DateBookHoliday();
32 virtual ~DateBookHoliday(); 35 virtual ~DateBookHoliday();
33 36
34 QStringList holidaylist(const QDate&); 37 QStringList holidaylist(const QDate&);
35 QStringList holidaylist(unsigned year, unsigned month, unsigned day); 38 QStringList holidaylist(unsigned year, unsigned month, unsigned day);
36 virtual QValueList<EffectiveEvent> getEffectiveEvents(const QDate &from,const QDate &to ); 39 virtual QValueList<EffectiveEvent> getEffectiveEvents(const QDate &from,const QDate &to );
37 virtual QValueList<EffectiveEvent> getEffectiveEvents(const QDateTime &start); 40 virtual QValueList<EffectiveEvent> getEffectiveEvents(const QDateTime &start);
38 41
39 void reloadPlugins(); 42 void reloadPlugins();
40 43
41 Opie::Core::OPluginLoader*pluginLoader(){return m_pluginLoader;} 44 Opie::Core::OPluginLoader*pluginLoader(){return m_pluginLoader;}
42 Opie::Core::OPluginManager*pluginManager(){return m_pluginManager;} 45 Opie::Core::OPluginManager*pluginManager(){return m_pluginManager;}
43 46
44protected: 47protected:
45 void init(); 48 void init();
46 void deinit(); 49 void deinit();
47 50
48 struct HPlugin { 51 struct HPlugin {
49 Opie::Datebook::HolidayPlugin*_plugin; 52 Opie::Datebook::HolidayPlugin*_plugin;
50 //QLibrary*_lib; 53 //QLibrary*_lib;
51 //Opie::Datebook::HolidayPluginIf*_if; 54 //Opie::Datebook::HolidayPluginIf*_if;
52 }; 55 };
53 QValueList<HPlugin*>_pluginlist; 56 QValueList<HPlugin*>_pluginlist;
54 Opie::Core::OPluginLoader*m_pluginLoader; 57 Opie::Core::OPluginLoader*m_pluginLoader;
55 Opie::Core::OPluginManager*m_pluginManager; 58 Opie::Core::OPluginManager*m_pluginManager;
56}; 59};
57 60
58class DateBookDBHoliday:virtual public DateBookDBHack { 61class DateBookDBHoliday:virtual public DateBookDBHack {
59public: 62public:
60 DateBookDBHoliday():DateBookDBHack(){db_holiday=0;} 63 DateBookDBHoliday():DateBookDBHack(){db_holiday=0;}
61 virtual ~DateBookDBHoliday(){} 64 virtual ~DateBookDBHoliday(){}
62 virtual QValueList<EffectiveEvent> getEffectiveEvents(const QDate &from,const QDate &to ); 65 virtual QValueList<EffectiveEvent> getEffectiveEvents(const QDate &from,const QDate &to );
63 virtual QValueList<EffectiveEvent> getEffectiveEvents(const QDateTime &start); 66 virtual QValueList<EffectiveEvent> getEffectiveEvents(const QDateTime &start);
64 virtual QValueList<EffectiveEvent> getEffectiveEventsNoHoliday(const QDate &from,const QDate &to ); 67 virtual QValueList<EffectiveEvent> getEffectiveEventsNoHoliday(const QDate &from,const QDate &to );
65 virtual QValueList<EffectiveEvent> getEffectiveEventsNoHoliday(const QDateTime &start); 68 virtual QValueList<EffectiveEvent> getEffectiveEventsNoHoliday(const QDateTime &start);
66 69
67 DateBookHoliday*db_holiday; 70 DateBookHoliday*db_holiday;
68}; 71};
69 72
70#endif 73#endif
diff --git a/core/pim/datebook/datebookweeklst.cpp b/core/pim/datebook/datebookweeklst.cpp
deleted file mode 100644
index 3c871ea..0000000
--- a/core/pim/datebook/datebookweeklst.cpp
+++ b/dev/null
@@ -1,442 +0,0 @@
1#include "namespace_hack.h"
2#include "datebookweeklst.h"
3
4#include "datebook.h"
5#include "datebooktypes.h"
6
7#include <opie2/odebug.h>
8
9#include <qpe/datebookmonth.h>
10#include <qpe/config.h>
11#include <qpe/ir.h>
12#include <qpe/resource.h>
13
14#include <qlayout.h>
15#include <qtoolbutton.h>
16#include <qtl.h>
17
18bool calcWeek(const QDate &d, int &week, int &year,bool startOnMonday = false);
19
20using namespace Opie::Ui;
21DateBookWeekLstHeader::DateBookWeekLstHeader(bool onM, QWidget* parent, const char* name, WFlags fl)
22 : DateBookWeekLstHeaderBase(parent, name, fl)
23{
24 setBackgroundMode( PaletteButton );
25 labelDate->setBackgroundMode( PaletteButton );
26 forwardweek->setBackgroundMode( PaletteButton );
27 forwardweek->setPixmap( Resource::loadPixmap("forward") );
28 forwardmonth->setBackgroundMode( PaletteButton );
29 forwardmonth->setPixmap( Resource::loadPixmap("fastforward") );
30 backweek->setBackgroundMode( PaletteButton );
31 backweek->setPixmap( Resource::loadPixmap("back") );
32 backmonth->setBackgroundMode( PaletteButton );
33 backmonth->setPixmap( Resource::loadPixmap("fastback") );
34 DateBookWeekLstHeaderBaseLayout->setSpacing(0);
35 DateBookWeekLstHeaderBaseLayout->setMargin(0);
36 //setSizePolicy(QSizePolicy(QSizePolicy::Fixed,QSizePolicy::Expanding));
37 setSizePolicy(QSizePolicy(QSizePolicy::Expanding,QSizePolicy::Fixed));
38
39 connect(backmonth, SIGNAL(clicked()), this, SLOT(prevMonth()));
40 connect(backweek, SIGNAL(clicked()), this, SLOT(prevWeek()));
41 connect(forwardweek, SIGNAL(clicked()), this, SLOT(nextWeek()));
42 connect(forwardmonth, SIGNAL(clicked()), this, SLOT(nextMonth()));
43 connect(labelDate, SIGNAL(clicked()), this, SLOT(pickDate()));
44 connect(dbl, SIGNAL(toggled(bool)), this, SIGNAL(setDbl(bool)));
45 bStartOnMonday=onM;
46}
47DateBookWeekLstHeader::~DateBookWeekLstHeader(){}
48
49void DateBookWeekLstHeader::setDate(const QDate &d) {
50 int year,week,dayofweek;
51 date=d;
52 dayofweek=d.dayOfWeek();
53 if(bStartOnMonday)
54 dayofweek--;
55 else if( dayofweek == 7 )
56 /* we already have the right day -7 would lead to the same week */
57 dayofweek = 0;
58
59 date=date.addDays(-dayofweek);
60
61 calcWeek(date,week,year,bStartOnMonday);
62 QDate start=date;
63 QDate stop=start.addDays(6);
64 labelDate->setText( QString::number(start.day()) + "." +
65 Calendar::nameOfMonth( start.month() ) + "-" +
66 QString::number(stop.day()) + "." +
67 Calendar::nameOfMonth( stop.month()) +" ("+
68 tr("w")+":"+QString::number( week ) +")");
69 date = d; // bugfix: 0001126 - date has to be the selected date, not monday!
70 emit dateChanged(date);
71}
72
73void DateBookWeekLstHeader::pickDate() {
74 static QPopupMenu *m1 = 0;
75 static DateBookMonth *picker = 0;
76 if ( !m1 ) {
77 m1 = new QPopupMenu( this );
78 picker = new DateBookMonth( m1, 0, TRUE );
79 m1->insertItem( picker );
80 connect( picker, SIGNAL( dateClicked(int,int,int) ),this, SLOT( setDate(int,int,int) ) );
81 //connect( m1, SIGNAL( aboutToHide() ),
82 //this, SLOT( gotHide() ) );
83 }
84 picker->setDate( date.year(), date.month(), date.day() );
85 m1->popup(mapToGlobal(labelDate->pos()+QPoint(0,labelDate->height())));
86 picker->setFocus();
87}
88void DateBookWeekLstHeader::setDate(int y, int m, int d) {
89 setDate(QDate(y,m,d));
90}
91
92void DateBookWeekLstHeader::nextWeek() {
93 setDate(date.addDays(7));
94}
95void DateBookWeekLstHeader::prevWeek() {
96 setDate(date.addDays(-7));
97}
98void DateBookWeekLstHeader::nextMonth()
99{
100 setDate(date.addDays(28));
101}
102void DateBookWeekLstHeader::prevMonth()
103{
104 setDate(date.addDays(-28));
105}
106
107DateBookWeekLstDayHdr::DateBookWeekLstDayHdr(const QDate &d, bool /* onM */,
108 QWidget* parent,
109 const char* name,
110 WFlags fl )
111 : DateBookWeekLstDayHdrBase(parent, name, fl) {
112
113 date=d;
114
115 static const QString wdays=tr("MTWTFSSM", "Week days");
116 char day=wdays[d.dayOfWeek()-1];
117
118 //dont use dayOfWeek() to save space !
119 label->setText( QString(QObject::tr(QString(QChar(day)))) + " " +QString::number(d.day()) );
120
121 add->setText("+");
122
123 if (d == QDate::currentDate()) {
124 QPalette pal=label->palette();
125 pal.setColor(QColorGroup::Foreground, QColor(0,0,255));
126 label->setPalette(pal);
127
128 /*
129 QFont f=label->font();
130 f.setItalic(true);
131 label->setFont(f);
132 label->setPalette(QPalette(QColor(0,0,255),label->backgroundColor()));
133 */
134 } else if (d.dayOfWeek() == 7) { // FIXME: Match any holiday
135 QPalette pal=label->palette();
136 pal.setColor(QColorGroup::Foreground, QColor(255,0,0));
137 label->setPalette(pal);
138 }
139
140 connect (label, SIGNAL(clicked()), this, SLOT(showDay()));
141 connect (add, SIGNAL(clicked()), this, SLOT(newEvent()));
142}
143
144void DateBookWeekLstDayHdr::showDay() {
145 emit showDate(date.year(), date.month(), date.day());
146}
147
148void DateBookWeekLstDayHdr::newEvent() {
149 QDateTime start, stop;
150 start=stop=date;
151 start.setTime(QTime(10,0));
152 stop.setTime(QTime(12,0));
153
154 emit addEvent(start,stop,"",0);
155}
156DateBookWeekLstEvent::DateBookWeekLstEvent(const EffectiveEvent &ev,
157 int weeklistviewconfig,
158 QWidget* parent,
159 const char* name,
160 WFlags fl ) : OClickableLabel(parent,name,fl), event(ev)
161{
162 // old values... lastday = "__|__", middle=" |---", Firstday="00:00",
163 QString s,start,middle,end,day;
164
165 odebug << "weeklistviewconfig=" << weeklistviewconfig << oendl;
166 if(weeklistviewconfig==NONE) { // No times displayed.
167// start.sprintf("%.2d:%.2d-",ev.start().hour(),ev.start().minute());
168// middle.sprintf("<--->");
169// end.sprintf("-%.2d:%.2d",ev.end().hour(),ev.end().minute());
170// day.sprintf("%.2d:%.2d-%.2d:%.2d",ev.start().hour(),ev.start().minute(),ev.end().hour(),ev.end().minute());
171 } else if(weeklistviewconfig==NORMAL) { // "Normal", only display start time.
172 start.sprintf("%.2d:%.2d",ev.start().hour(),ev.start().minute());
173 middle.sprintf(" |---");
174 end.sprintf("__|__");
175 day.sprintf("%.2d:%.2d",ev.start().hour(),ev.start().minute());
176 } else if(weeklistviewconfig==EXTENDED) { // Extended mode, display start and end times.
177 start.sprintf("%.2d:%.2d-",ev.start().hour(),ev.start().minute());
178 middle.sprintf("<--->");
179 end.sprintf("-%.2d:%.2d",ev.end().hour(),ev.end().minute());
180 day.sprintf("%.2d:%.2d-%.2d:%.2d",ev.start().hour(),ev.start().minute(),ev.end().hour(),ev.end().minute());
181 }
182
183 if(ev.event().type() == Event::Normal) {
184 if(ev.startDate()==ev.date() && ev.endDate()==ev.date()) { // day event.
185 s=day;
186 } else if(ev.startDate()==ev.date()) { // start event.
187 s=start;
188 } else if(ev.endDate()==ev.date()) { // end event.
189 s=end;
190 } else { // middle day.
191 s=middle;
192 }
193 } else {
194 s="";
195 }
196 setText(QString(s) + " " + ev.description());
197// connect(this, SIGNAL(clicked()), this, SLOT(editMe()));
198 setAlignment( int( QLabel::WordBreak | QLabel::AlignLeft ) );
199}
200void DateBookWeekLstEvent::editMe() {
201 emit editEvent(event.event());
202}
203void DateBookWeekLstEvent::duplicateMe()
204{
205 emit duplicateEvent(event.event());
206}
207void DateBookWeekLstEvent::deleteMe()
208{
209 emit removeEvent(event.event());
210 emit redraw();
211}
212void DateBookWeekLstEvent::beamMe()
213{
214 emit beamEvent( event.event() );
215}
216void DateBookWeekLstEvent::mousePressEvent( QMouseEvent *e )
217{
218 if (!event.event().isValidUid()) {
219 // this is just such a holiday event.
220 return;
221 }
222 popmenue = new QPopupMenu;
223
224 popmenue->insertItem( tr( "Edit" ), this, SLOT(editMe()));
225 popmenue->insertItem( tr( "Duplicate" ), this, SLOT(duplicateMe()));
226 popmenue->insertItem( tr( "Delete" ), this, SLOT(deleteMe()));
227 if(Ir::supported())
228 popmenue->insertItem( tr( "Beam" ), this, SLOT(beamMe()));
229 popmenue->popup( mapToGlobal( e->pos() ));
230}
231
232DateBookWeekLstView::DateBookWeekLstView(QValueList<EffectiveEvent> &ev,
233 const QDate &d, bool onM,
234 QWidget* parent,
235 const char* name, WFlags fl)
236 : QWidget( parent, name, fl )
237{
238 Config config("DateBook");
239 config.setGroup("Main");
240 int weeklistviewconfig=config.readNumEntry("weeklistviewconfig", NORMAL);
241 odebug << "weeklistviewconfig: " << weeklistviewconfig << oendl;
242
243 bStartOnMonday=onM;
244 setPalette(white);
245 setSizePolicy(QSizePolicy(QSizePolicy::Expanding,QSizePolicy::Expanding));
246
247 QVBoxLayout *layout = new QVBoxLayout( this );
248
249 qBubbleSort(ev);
250 QValueListIterator<EffectiveEvent> it;
251 it=ev.begin();
252
253 int dayOrder[7];
254 if (bStartOnMonday) {
255 for (int d=0; d<7; d++) dayOrder[d]=d+1;
256 } else {
257 for (int d=0; d<7; d++) dayOrder[d]=d;
258 dayOrder[0]=7;
259 }
260
261 // Calculate offset to first day of week.
262 int dayoffset=d.dayOfWeek();
263 if(bStartOnMonday) dayoffset--;
264 else if( dayoffset == 7 ) dayoffset = 0;
265
266 for (int i=0; i<7; i++) {
267 // Header
268 DateBookWeekLstDayHdr *hdr=new DateBookWeekLstDayHdr(d.addDays(i-dayoffset), bStartOnMonday,this);
269 connect(hdr, SIGNAL(showDate(int,int,int)), this, SIGNAL(showDate(int,int,int)));
270 connect(hdr, SIGNAL(addEvent(const QDateTime&,const QDateTime&,const QString&,const QString&)),
271 this, SIGNAL(addEvent(const QDateTime&,const QDateTime&,const QString&,const QString&)));
272 layout->addWidget(hdr);
273
274 // Events
275 while ( (*it).date().dayOfWeek() == dayOrder[i] && it!=ev.end() ) {
276 if(!(((*it).end().hour()==0) && ((*it).end().minute()==0) && ((*it).startDate()!=(*it).date()))) { // Skip events ending at 00:00 starting at another day.
277 DateBookWeekLstEvent *l=new DateBookWeekLstEvent(*it,weeklistviewconfig,this);
278 layout->addWidget(l);
279 connect (l, SIGNAL(editEvent(const Event&)), this, SIGNAL(editEvent(const Event&)));
280 connect (l, SIGNAL(duplicateEvent(const Event &)), this, SIGNAL(duplicateEvent(const Event &)));
281 connect (l, SIGNAL(removeEvent(const Event &)), this, SIGNAL(removeEvent(const Event &)));
282 connect (l, SIGNAL(beamEvent(const Event &)), this, SIGNAL(beamEvent(const Event &)));
283 connect (l, SIGNAL(redraw()), this, SIGNAL(redraw()));
284 }
285 it++;
286 }
287 layout->addItem(new QSpacerItem(1,1, QSizePolicy::Minimum, QSizePolicy::Expanding));
288 }
289}
290DateBookWeekLstView::~DateBookWeekLstView(){}
291void DateBookWeekLstView::keyPressEvent(QKeyEvent *e) {e->ignore();}
292
293DateBookWeekLstDblView::DateBookWeekLstDblView(QValueList<EffectiveEvent> &ev1,
294 QValueList<EffectiveEvent> &ev2,
295 QDate &d, bool onM,
296 QWidget* parent,
297 const char* name, WFlags fl)
298 : QWidget( parent, name, fl )
299{
300 QHBoxLayout *layout = new QHBoxLayout( this );
301
302 DateBookWeekLstView *w=new DateBookWeekLstView(ev1,d,onM,this);
303 layout->addWidget(w);
304 connect (w, SIGNAL(editEvent(const Event&)), this, SIGNAL(editEvent(const Event&)));
305 connect (w, SIGNAL(duplicateEvent(const Event &)), this, SIGNAL(duplicateEvent(const Event &)));
306 connect (w, SIGNAL(removeEvent(const Event &)), this, SIGNAL(removeEvent(const Event &)));
307 connect (w, SIGNAL(beamEvent(const Event &)), this, SIGNAL(beamEvent(const Event &)));
308 connect (w, SIGNAL(redraw()), this, SIGNAL(redraw()));
309 connect (w, SIGNAL(showDate(int,int,int)), this, SIGNAL(showDate(int,int,int)));
310 connect (w, SIGNAL(addEvent(const QDateTime&,const QDateTime&,const QString&,const QString&)),
311 this, SIGNAL(addEvent(const QDateTime&,const QDateTime&,const QString&,const QString&)));
312
313
314 w=new DateBookWeekLstView(ev2,d.addDays(7),onM,this);
315 layout->addWidget(w);
316 connect (w, SIGNAL(editEvent(const Event&)), this, SIGNAL(editEvent(const Event&)));
317 connect (w, SIGNAL(duplicateEvent(const Event &)), this, SIGNAL(duplicateEvent(const Event &)));
318 connect (w, SIGNAL(removeEvent(const Event &)), this, SIGNAL(removeEvent(const Event &)));
319 connect (w, SIGNAL(beamEvent(const Event &)), this, SIGNAL(beamEvent(const Event &)));
320 connect (w, SIGNAL(redraw()), this, SIGNAL(redraw()));
321 connect (w, SIGNAL(showDate(int,int,int)), this, SIGNAL(showDate(int,int,int)));
322 connect (w, SIGNAL(addEvent(const QDateTime&,const QDateTime&,const QString&,const QString&)),
323 this, SIGNAL(addEvent(const QDateTime&,const QDateTime&,const QString&,const QString&)));
324}
325
326DateBookWeekLst::DateBookWeekLst( bool ap, bool onM, DateBookDBHoliday *newDB,
327 QWidget *parent,
328 const char *name )
329 : QWidget( parent, name ),
330 db( newDB ),
331 startTime( 0 ),
332 ampm( ap ),
333 bStartOnMonday(onM)
334{
335 setFocusPolicy(StrongFocus);
336 layout = new QVBoxLayout( this );
337 layout->setMargin(0);
338
339 header=new DateBookWeekLstHeader(onM, this);
340 layout->addWidget( header );
341 connect(header, SIGNAL(dateChanged(QDate&)), this, SLOT(dateChanged(QDate&)));
342 connect(header, SIGNAL(setDbl(bool)), this, SLOT(setDbl(bool)));
343
344 scroll=new QScrollView(this);
345 scroll->setResizePolicy(QScrollView::AutoOneFit);
346 layout->addWidget(scroll);
347
348 view=NULL;
349 Config config("DateBook");
350 config.setGroup("Main");
351 dbl=config.readBoolEntry("weeklst_dbl", false);
352 header->dbl->setOn(dbl);
353}
354DateBookWeekLst::~DateBookWeekLst(){
355 Config config("DateBook");
356 config.setGroup("Main");
357 config.writeEntry("weeklst_dbl", dbl);
358}
359
360void DateBookWeekLst::setDate(const QDate &d) {
361 bdate=d;
362 header->setDate(d);
363}
364
365void DateBookWeekLst::setDbl(bool on) {
366 dbl=on;
367 redraw();
368}
369void DateBookWeekLst::redraw() {getEvents();}
370
371QDate DateBookWeekLst::date() {
372 return bdate;
373}
374
375// return the date at the beginning of the week...
376// copied from DateBookWeek
377QDate DateBookWeekLst::weekDate() const
378{
379 QDate d=bdate;
380
381 // Calculate offset to first day of week.
382 int dayoffset=d.dayOfWeek();
383 if(bStartOnMonday) dayoffset--;
384 else if( dayoffset == 7 )
385 dayoffset = 0;
386
387 return d.addDays(-dayoffset);
388}
389
390void DateBookWeekLst::getEvents() {
391 QDate start = weekDate(); //date();
392 QDate stop = start.addDays(6);
393 QValueList<EffectiveEvent> el = db->getEffectiveEvents(start, stop);
394
395 if (view) delete view;
396 if (dbl) {
397 QDate start2=start.addDays(7);
398 stop=start2.addDays(6);
399 QValueList<EffectiveEvent> el2 = db->getEffectiveEvents(start2, stop);
400 view=new DateBookWeekLstDblView(el,el2,start,bStartOnMonday,scroll);
401 } else {
402 view=new DateBookWeekLstView(el,start,bStartOnMonday,scroll);
403 }
404
405 connect (view, SIGNAL(editEvent(const Event&)), this, SIGNAL(editEvent(const Event&)));
406 connect (view, SIGNAL(duplicateEvent(const Event &)), this, SIGNAL(duplicateEvent(const Event &)));
407 connect (view, SIGNAL(removeEvent(const Event &)), this, SIGNAL(removeEvent(const Event &)));
408 connect (view, SIGNAL(beamEvent(const Event &)), this, SIGNAL(beamEvent(const Event &)));
409 connect (view, SIGNAL(redraw()), this, SLOT(redraw()));
410 connect (view, SIGNAL(showDate(int,int,int)), this, SIGNAL(showDate(int,int,int)));
411 connect (view, SIGNAL(addEvent(const QDateTime&,const QDateTime&,const QString&,const QString&)),
412 this, SIGNAL(addEvent(const QDateTime&,const QDateTime&,const QString&,const QString&)));
413
414 scroll->addChild(view);
415 view->show();
416 scroll->updateScrollBars();
417}
418
419void DateBookWeekLst::dateChanged(QDate &newdate) {
420 bdate=newdate;
421 getEvents();
422}
423
424void DateBookWeekLst::keyPressEvent(QKeyEvent *e)
425{
426 switch(e->key()) {
427 case Key_Up:
428 scroll->scrollBy(0, -20);
429 break;
430 case Key_Down:
431 scroll->scrollBy(0, 20);
432 break;
433 case Key_Left:
434 header->prevWeek();
435 break;
436 case Key_Right:
437 header->nextWeek();
438 break;
439 default:
440 e->ignore();
441 }
442}
diff --git a/core/pim/datebook/datebookweeklst.h b/core/pim/datebook/datebookweeklst.h
deleted file mode 100644
index 38d7777..0000000
--- a/core/pim/datebook/datebookweeklst.h
+++ b/dev/null
@@ -1,178 +0,0 @@
1#ifndef DATEBOOKWEEKLST
2#define DATEBOOKWEEKLST
3
4#include <qwidget.h>
5#include <qdatetime.h>
6#include <qpe/event.h>
7#include <qlabel.h>
8#include <qscrollview.h>
9
10#include "datebookweeklstheader.h"
11#include "datebookweeklstdayhdr.h"
12
13#include <opie2/oclickablelabel.h>
14
15class QDateTime;
16class DateBookDB;
17class DateBookDBHoliday;
18
19class DateBookWeekLstHeader: public DateBookWeekLstHeaderBase
20{
21 Q_OBJECT
22public:
23 DateBookWeekLstHeader(bool onM, QWidget* parent = 0, const char* name = 0,
24 WFlags fl = 0 );
25 ~DateBookWeekLstHeader();
26 void setDate(const QDate &d);
27
28public slots:
29 void nextWeek();
30 void prevWeek();
31 void nextMonth();
32 void prevMonth();
33 void pickDate();
34 void setDate(int y, int m, int d);
35signals:
36 void dateChanged(QDate &newdate);
37 void setDbl(bool on);
38private:
39 QDate date;
40// bool onMonday;
41 bool bStartOnMonday;
42};
43
44class DateBookWeekLstDayHdr: public DateBookWeekLstDayHdrBase
45{
46 Q_OBJECT
47public:
48 DateBookWeekLstDayHdr(const QDate &d, bool onM,
49 QWidget* parent = 0, const char* name = 0,
50 WFlags fl = 0 );
51public slots:
52 void showDay();
53 void newEvent();
54signals:
55 void showDate(int y, int m, int d);
56 void addEvent(const QDateTime &start, const QDateTime &stop,
57 const QString &str, const QString &location);
58private:
59 QDate date;
60};
61
62class DateBookWeekLstEvent: public Opie::Ui::OClickableLabel
63{
64 Q_OBJECT
65public:
66 DateBookWeekLstEvent(const EffectiveEvent &ev, int weeklistviewconfig =1,
67 QWidget* parent = 0, const char* name = 0,
68 WFlags fl = 0);
69signals:
70 void editEvent(const Event &e);
71 void duplicateEvent(const Event &e);
72 void removeEvent(const Event &e);
73 void beamEvent(const Event &e);
74 void redraw();
75private slots:
76 void editMe();
77 void duplicateMe();
78 void deleteMe();
79 void beamMe();
80private:
81 const EffectiveEvent event;
82 QPopupMenu* popmenue;
83protected:
84 void mousePressEvent( QMouseEvent *e );
85};
86
87class DateBookWeekLstView: public QWidget
88{
89 Q_OBJECT
90public:
91 DateBookWeekLstView(QValueList<EffectiveEvent> &ev, const QDate &d, bool onM,
92 QWidget* parent = 0, const char* name = 0,
93 WFlags fl = 0 );
94 ~DateBookWeekLstView();
95signals:
96 void editEvent(const Event &e);
97 void duplicateEvent(const Event &e);
98 void removeEvent(const Event &e);
99 void beamEvent(const Event &e);
100 void redraw();
101 void showDate(int y, int m, int d);
102 void addEvent(const QDateTime &start, const QDateTime &stop,
103 const QString &str, const QString &location);
104private:
105 bool bStartOnMonday;
106protected slots:
107 void keyPressEvent(QKeyEvent *);
108};
109
110class DateBookWeekLstDblView: public QWidget {
111 Q_OBJECT
112public:
113 DateBookWeekLstDblView(QValueList<EffectiveEvent> &ev1,
114 QValueList<EffectiveEvent> &ev2,
115 QDate &d, bool onM,
116 QWidget* parent = 0, const char* name = 0,
117 WFlags fl = 0 );
118signals:
119 void editEvent(const Event &e);
120 void duplicateEvent(const Event &e);
121 void removeEvent(const Event &e);
122 void beamEvent(const Event &e);
123 void redraw();
124 void showDate(int y, int m, int d);
125 void addEvent(const QDateTime &start, const QDateTime &stop,
126 const QString &str, const QString &location);
127};
128
129class DateBookWeekLst : public QWidget
130{
131 Q_OBJECT
132
133public:
134 DateBookWeekLst( bool ampm, bool onM, DateBookDBHoliday *newDB,
135 QWidget *parent = 0,
136 const char *name = 0 );
137 ~DateBookWeekLst();
138 void setDate( int y, int w );
139 void setDate(const QDate &d );
140 int week() const { return _week; };
141 QDate date();
142 QDate weekDate() const;
143
144public slots:
145 void redraw();
146 void dateChanged(QDate &date);
147
148protected slots:
149 void keyPressEvent(QKeyEvent *);
150 void setDbl(bool on);
151
152signals:
153 void showDate(int y, int m, int d);
154 void addEvent(const QDateTime &start, const QDateTime &stop,
155 const QString &str, const QString &location);
156 void editEvent(const Event &e);
157 void duplicateEvent(const Event &e);
158 void removeEvent(const Event &e);
159 void beamEvent(const Event &e);
160
161private:
162 DateBookDBHoliday *db;
163 int startTime;
164 bool ampm;
165 bool bStartOnMonday;
166 bool dbl;
167 QDate bdate;
168 int year, _week,dow;
169 DateBookWeekLstHeader *header;
170 QWidget *view;
171 QVBoxLayout *layout;
172 QScrollView *scroll;
173
174 void getEvents();
175};
176
177#endif
178
diff --git a/core/pim/datebook/modules/weeklst/.cvsignore b/core/pim/datebook/modules/weeklst/.cvsignore
new file mode 100644
index 0000000..2da0b2b
--- a/dev/null
+++ b/core/pim/datebook/modules/weeklst/.cvsignore
@@ -0,0 +1,4 @@
1datebookweeklstdayhdrbase.cpp
2datebookweeklstdayhdrbase.h
3datebookweeklstheaderbase.cpp
4datebookweeklstheaderbase.h
diff --git a/core/pim/datebook/modules/weeklst/datebookweeklst.cpp b/core/pim/datebook/modules/weeklst/datebookweeklst.cpp
new file mode 100644
index 0000000..47bc597
--- a/dev/null
+++ b/core/pim/datebook/modules/weeklst/datebookweeklst.cpp
@@ -0,0 +1,138 @@
1#include "namespace_hack.h"
2#include "datebookweeklst.h"
3#include "datebookweeklstheader.h"
4#include "datebookweeklstview.h"
5#include "datebookweeklstdblview.h"
6
7#include "datebook.h"
8
9#include <opie2/odebug.h>
10
11#include <qpe/datebookmonth.h>
12#include <qpe/config.h>
13#include <qpe/resource.h>
14
15#include <qlayout.h>
16#include <qtoolbutton.h>
17
18using namespace Opie::Ui;
19
20DateBookWeekLst::DateBookWeekLst( bool ap, bool onM, DateBookDBHoliday *newDB,
21 QWidget *parent,
22 const char *name )
23 : QWidget( parent, name ),
24 db( newDB ),
25 startTime( 0 ),
26 ampm( ap ),
27 bStartOnMonday(onM)
28{
29 setFocusPolicy(StrongFocus);
30 layout = new QVBoxLayout( this );
31 layout->setMargin(0);
32
33 header=new DateBookWeekLstHeader(onM, this);
34 layout->addWidget( header );
35 connect(header, SIGNAL(dateChanged(QDate&)), this, SLOT(dateChanged(QDate&)));
36 connect(header, SIGNAL(setDbl(bool)), this, SLOT(setDbl(bool)));
37
38 scroll=new QScrollView(this);
39 scroll->setResizePolicy(QScrollView::AutoOneFit);
40 layout->addWidget(scroll);
41
42 view=NULL;
43 Config config("DateBook");
44 config.setGroup("Main");
45 dbl=config.readBoolEntry("weeklst_dbl", false);
46 header->dbl->setOn(dbl);
47}
48DateBookWeekLst::~DateBookWeekLst(){
49 Config config("DateBook");
50 config.setGroup("Main");
51 config.writeEntry("weeklst_dbl", dbl);
52}
53
54void DateBookWeekLst::setDate(const QDate &d) {
55 bdate=d;
56 header->setDate(d);
57}
58
59void DateBookWeekLst::setDbl(bool on) {
60 dbl=on;
61 redraw();
62}
63void DateBookWeekLst::redraw() {getEvents();}
64
65QDate DateBookWeekLst::date() {
66 return bdate;
67}
68
69// return the date at the beginning of the week...
70// copied from DateBookWeek
71QDate DateBookWeekLst::weekDate() const
72{
73 QDate d=bdate;
74
75 // Calculate offset to first day of week.
76 int dayoffset=d.dayOfWeek();
77 if(bStartOnMonday) dayoffset--;
78 else if( dayoffset == 7 )
79 dayoffset = 0;
80
81 return d.addDays(-dayoffset);
82}
83
84void DateBookWeekLst::getEvents() {
85 QDate start = weekDate(); //date();
86 QDate stop = start.addDays(6);
87 QValueList<EffectiveEvent> el = db->getEffectiveEvents(start, stop);
88
89 setUpdatesEnabled(false);
90 if (view) delete view;
91 if (dbl) {
92 QDate start2=start.addDays(7);
93 stop=start2.addDays(6);
94 QValueList<EffectiveEvent> el2 = db->getEffectiveEvents(start2, stop);
95 view=new DateBookWeekLstDblView(el,el2,start,bStartOnMonday,scroll);
96 } else {
97 view=new DateBookWeekLstView(el,start,bStartOnMonday,scroll);
98 }
99
100 connect (view, SIGNAL(editEvent(const Event&)), this, SIGNAL(editEvent(const Event&)));
101 connect (view, SIGNAL(duplicateEvent(const Event &)), this, SIGNAL(duplicateEvent(const Event &)));
102 connect (view, SIGNAL(removeEvent(const Event &)), this, SIGNAL(removeEvent(const Event &)));
103 connect (view, SIGNAL(beamEvent(const Event &)), this, SIGNAL(beamEvent(const Event &)));
104 connect (view, SIGNAL(redraw()), this, SLOT(redraw()));
105 connect (view, SIGNAL(showDate(int,int,int)), this, SIGNAL(showDate(int,int,int)));
106 connect (view, SIGNAL(addEvent(const QDateTime&,const QDateTime&,const QString&,const QString&)),
107 this, SIGNAL(addEvent(const QDateTime&,const QDateTime&,const QString&,const QString&)));
108
109 scroll->addChild(view);
110 view->show();
111 scroll->updateScrollBars();
112 setUpdatesEnabled(true);
113}
114
115void DateBookWeekLst::dateChanged(QDate &newdate) {
116 bdate=newdate;
117 getEvents();
118}
119
120void DateBookWeekLst::keyPressEvent(QKeyEvent *e)
121{
122 switch(e->key()) {
123 case Key_Up:
124 scroll->scrollBy(0, -20);
125 break;
126 case Key_Down:
127 scroll->scrollBy(0, 20);
128 break;
129 case Key_Left:
130 header->prevWeek();
131 break;
132 case Key_Right:
133 header->nextWeek();
134 break;
135 default:
136 e->ignore();
137 }
138}
diff --git a/core/pim/datebook/modules/weeklst/datebookweeklst.h b/core/pim/datebook/modules/weeklst/datebookweeklst.h
new file mode 100644
index 0000000..3922fa1
--- a/dev/null
+++ b/core/pim/datebook/modules/weeklst/datebookweeklst.h
@@ -0,0 +1,65 @@
1#ifndef DATEBOOKWEEKLST
2#define DATEBOOKWEEKLST
3
4#include <qpe/event.h>
5
6#include <qwidget.h>
7#include <qdatetime.h>
8
9class DateBookDB;
10class DateBookDBHoliday;
11class DateBookWeekLstHeader;
12class DateBookWeekLstEvent;
13class DateBookWeekLstView;
14class QVBoxLayout;
15class QScrollView;
16
17class DateBookWeekLst : public QWidget
18{
19 Q_OBJECT
20
21public:
22 DateBookWeekLst( bool ampm, bool onM, DateBookDBHoliday *newDB,
23 QWidget *parent = 0,
24 const char *name = 0 );
25 ~DateBookWeekLst();
26 void setDate( int y, int w );
27 void setDate(const QDate &d );
28 int week() const { return _week; };
29 QDate date();
30 QDate weekDate() const;
31
32public slots:
33 void redraw();
34 void dateChanged(QDate &date);
35
36protected slots:
37 void keyPressEvent(QKeyEvent *);
38 void setDbl(bool on);
39
40signals:
41 void showDate(int y, int m, int d);
42 void addEvent(const QDateTime &start, const QDateTime &stop,
43 const QString &str, const QString &location);
44 void editEvent(const Event &e);
45 void duplicateEvent(const Event &e);
46 void removeEvent(const Event &e);
47 void beamEvent(const Event &e);
48
49private:
50 DateBookDBHoliday *db;
51 int startTime;
52 bool ampm;
53 bool bStartOnMonday;
54 bool dbl;
55 QDate bdate;
56 int year, _week,dow;
57 DateBookWeekLstHeader *header;
58 QWidget *view;
59 QVBoxLayout *layout;
60 QScrollView *scroll;
61
62 void getEvents();
63};
64
65#endif
diff --git a/core/pim/datebook/modules/weeklst/datebookweeklstdayhdr.cpp b/core/pim/datebook/modules/weeklst/datebookweeklstdayhdr.cpp
new file mode 100644
index 0000000..d173444
--- a/dev/null
+++ b/core/pim/datebook/modules/weeklst/datebookweeklstdayhdr.cpp
@@ -0,0 +1,53 @@
1#include "datebookweeklstdayhdr.h"
2
3#include "namespace_hack.h"
4
5DateBookWeekLstDayHdr::DateBookWeekLstDayHdr(const QDate &d, bool /* onM */,
6 QWidget* parent,
7 const char* name,
8 WFlags fl )
9 : DateBookWeekLstDayHdrBase(parent, name, fl) {
10
11 date=d;
12
13 static const QString wdays=tr("MTWTFSSM", "Week days");
14 char day=wdays[d.dayOfWeek()-1];
15
16 //dont use dayOfWeek() to save space !
17 label->setText( QString(QObject::tr(QString(QChar(day)))) + " " +QString::number(d.day()) );
18
19 add->setText("+");
20
21 if (d == QDate::currentDate()) {
22 QPalette pal=label->palette();
23 pal.setColor(QColorGroup::Foreground, QColor(0,0,255));
24 label->setPalette(pal);
25
26 /*
27 QFont f=label->font();
28 f.setItalic(true);
29 label->setFont(f);
30 label->setPalette(QPalette(QColor(0,0,255),label->backgroundColor()));
31 */
32 } else if (d.dayOfWeek() == 7) { // FIXME: Match any holiday
33 QPalette pal=label->palette();
34 pal.setColor(QColorGroup::Foreground, QColor(255,0,0));
35 label->setPalette(pal);
36 }
37
38 connect (label, SIGNAL(clicked()), this, SLOT(showDay()));
39 connect (add, SIGNAL(clicked()), this, SLOT(newEvent()));
40}
41
42void DateBookWeekLstDayHdr::showDay() {
43 emit showDate(date.year(), date.month(), date.day());
44}
45
46void DateBookWeekLstDayHdr::newEvent() {
47 QDateTime start, stop;
48 start=stop=date;
49 start.setTime(QTime(10,0));
50 stop.setTime(QTime(12,0));
51
52 emit addEvent(start,stop,"",0);
53}
diff --git a/core/pim/datebook/modules/weeklst/datebookweeklstdayhdr.h b/core/pim/datebook/modules/weeklst/datebookweeklstdayhdr.h
new file mode 100644
index 0000000..de046d8
--- a/dev/null
+++ b/core/pim/datebook/modules/weeklst/datebookweeklstdayhdr.h
@@ -0,0 +1,26 @@
1#ifndef _DATEBOOKWEEKLSTDAYHDR_H
2#define _DATEBOOKWEEKLSTDAYHDR_H
3
4#include "datebookweeklstdayhdrbase.h"
5
6#include <qdatetime.h>
7
8class DateBookWeekLstDayHdr: public DateBookWeekLstDayHdrBase
9{
10 Q_OBJECT
11public:
12 DateBookWeekLstDayHdr(const QDate &d, bool onM,
13 QWidget* parent = 0, const char* name = 0,
14 WFlags fl = 0 );
15public slots:
16 void showDay();
17 void newEvent();
18signals:
19 void showDate(int y, int m, int d);
20 void addEvent(const QDateTime &start, const QDateTime &stop,
21 const QString &str, const QString &location);
22private:
23 QDate date;
24};
25
26#endif
diff --git a/core/pim/datebook/datebookweeklstdayhdr.ui b/core/pim/datebook/modules/weeklst/datebookweeklstdayhdrbase.ui
index 74ea584..74ea584 100644
--- a/core/pim/datebook/datebookweeklstdayhdr.ui
+++ b/core/pim/datebook/modules/weeklst/datebookweeklstdayhdrbase.ui
diff --git a/core/pim/datebook/modules/weeklst/datebookweeklstdblview.cpp b/core/pim/datebook/modules/weeklst/datebookweeklstdblview.cpp
new file mode 100644
index 0000000..1cea602
--- a/dev/null
+++ b/core/pim/datebook/modules/weeklst/datebookweeklstdblview.cpp
@@ -0,0 +1,41 @@
1#include "datebookweeklstdblview.h"
2#include "datebookweeklstview.h"
3
4#include <qlayout.h>
5
6DateBookWeekLstDblView::DateBookWeekLstDblView(QValueList<EffectiveEvent> &ev1,
7 QValueList<EffectiveEvent> &ev2,
8 QDate &d, bool onM,
9 QWidget* parent,
10 const char* name, WFlags fl)
11 : QWidget( parent, name, fl )
12{
13 QHBoxLayout *layout = new QHBoxLayout( this );
14
15 DateBookWeekLstView *w=new DateBookWeekLstView(ev1,d,onM,this);
16 layout->addWidget(w);
17 connect (w, SIGNAL(editEvent(const Event&)), this, SIGNAL(editEvent(const Event&)));
18 connect (w, SIGNAL(duplicateEvent(const Event &)), this, SIGNAL(duplicateEvent(const Event &)));
19 connect (w, SIGNAL(removeEvent(const Event &)), this, SIGNAL(removeEvent(const Event &)));
20 connect (w, SIGNAL(beamEvent(const Event &)), this, SIGNAL(beamEvent(const Event &)));
21 connect (w, SIGNAL(redraw()), this, SIGNAL(redraw()));
22 connect (w, SIGNAL(showDate(int,int,int)), this, SIGNAL(showDate(int,int,int)));
23 connect (w, SIGNAL(addEvent(const QDateTime&,const QDateTime&,const QString&,const QString&)),
24 this, SIGNAL(addEvent(const QDateTime&,const QDateTime&,const QString&,const QString&)));
25
26
27 w=new DateBookWeekLstView(ev2,d.addDays(7),onM,this);
28 layout->addWidget(w);
29 connect (w, SIGNAL(editEvent(const Event&)), this, SIGNAL(editEvent(const Event&)));
30 connect (w, SIGNAL(duplicateEvent(const Event &)), this, SIGNAL(duplicateEvent(const Event &)));
31 connect (w, SIGNAL(removeEvent(const Event &)), this, SIGNAL(removeEvent(const Event &)));
32 connect (w, SIGNAL(beamEvent(const Event &)), this, SIGNAL(beamEvent(const Event &)));
33 connect (w, SIGNAL(redraw()), this, SIGNAL(redraw()));
34 connect (w, SIGNAL(showDate(int,int,int)), this, SIGNAL(showDate(int,int,int)));
35 connect (w, SIGNAL(addEvent(const QDateTime&,const QDateTime&,const QString&,const QString&)),
36 this, SIGNAL(addEvent(const QDateTime&,const QDateTime&,const QString&,const QString&)));
37}
38
39DateBookWeekLstDblView::~DateBookWeekLstDblView()
40{
41}
diff --git a/core/pim/datebook/modules/weeklst/datebookweeklstdblview.h b/core/pim/datebook/modules/weeklst/datebookweeklstdblview.h
new file mode 100644
index 0000000..57e9690
--- a/dev/null
+++ b/core/pim/datebook/modules/weeklst/datebookweeklstdblview.h
@@ -0,0 +1,31 @@
1#ifndef _DATEBOOKWEEKLSTDBLVIEW_H
2#define _DATEBOOKWEEKLSTDBLVIEW_H
3
4#include <qpe/event.h>
5
6#include <qwidget.h>
7#include <qvaluelist.h>
8#include <qdatetime.h>
9#include <qstring.h>
10
11class DateBookWeekLstDblView: public QWidget {
12 Q_OBJECT
13public:
14 DateBookWeekLstDblView(QValueList<EffectiveEvent> &ev1,
15 QValueList<EffectiveEvent> &ev2,
16 QDate &d, bool onM,
17 QWidget* parent = 0, const char* name = 0,
18 WFlags fl = 0 );
19 virtual ~DateBookWeekLstDblView();
20signals:
21 void editEvent(const Event &e);
22 void duplicateEvent(const Event &e);
23 void removeEvent(const Event &e);
24 void beamEvent(const Event &e);
25 void redraw();
26 void showDate(int y, int m, int d);
27 void addEvent(const QDateTime &start, const QDateTime &stop,
28 const QString &str, const QString &location);
29};
30
31#endif
diff --git a/core/pim/datebook/modules/weeklst/datebookweeklstevent.cpp b/core/pim/datebook/modules/weeklst/datebookweeklstevent.cpp
new file mode 100644
index 0000000..797f766
--- a/dev/null
+++ b/core/pim/datebook/modules/weeklst/datebookweeklstevent.cpp
@@ -0,0 +1,85 @@
1#include "datebookweeklstevent.h"
2#include "datebooktypes.h"
3
4#include <opie2/odebug.h>
5
6#include <qpe/ir.h>
7
8#include <qstring.h>
9#include <qpopupmenu.h>
10
11DateBookWeekLstEvent::DateBookWeekLstEvent(const EffectiveEvent &ev,
12 int weeklistviewconfig,
13 QWidget* parent,
14 const char* name,
15 WFlags fl ) : OClickableLabel(parent,name,fl), event(ev)
16{
17 // old values... lastday = "__|__", middle=" |---", Firstday="00:00",
18 QString s,start,middle,end,day;
19
20 odebug << "weeklistviewconfig=" << weeklistviewconfig << oendl;
21 if(weeklistviewconfig==NONE) { // No times displayed.
22// start.sprintf("%.2d:%.2d-",ev.start().hour(),ev.start().minute());
23// middle.sprintf("<--->");
24// end.sprintf("-%.2d:%.2d",ev.end().hour(),ev.end().minute());
25// day.sprintf("%.2d:%.2d-%.2d:%.2d",ev.start().hour(),ev.start().minute(),ev.end().hour(),ev.end().minute());
26 } else if(weeklistviewconfig==NORMAL) { // "Normal", only display start time.
27 start.sprintf("%.2d:%.2d",ev.start().hour(),ev.start().minute());
28 middle.sprintf(" |---");
29 end.sprintf("__|__");
30 day.sprintf("%.2d:%.2d",ev.start().hour(),ev.start().minute());
31 } else if(weeklistviewconfig==EXTENDED) { // Extended mode, display start and end times.
32 start.sprintf("%.2d:%.2d-",ev.start().hour(),ev.start().minute());
33 middle.sprintf("<--->");
34 end.sprintf("-%.2d:%.2d",ev.end().hour(),ev.end().minute());
35 day.sprintf("%.2d:%.2d-%.2d:%.2d",ev.start().hour(),ev.start().minute(),ev.end().hour(),ev.end().minute());
36 }
37
38 if(ev.event().type() == Event::Normal) {
39 if(ev.startDate()==ev.date() && ev.endDate()==ev.date()) { // day event.
40 s=day;
41 } else if(ev.startDate()==ev.date()) { // start event.
42 s=start;
43 } else if(ev.endDate()==ev.date()) { // end event.
44 s=end;
45 } else { // middle day.
46 s=middle;
47 }
48 } else {
49 s="";
50 }
51 setText(QString(s) + " " + ev.description());
52// connect(this, SIGNAL(clicked()), this, SLOT(editMe()));
53 setAlignment( int( QLabel::WordBreak | QLabel::AlignLeft ) );
54}
55void DateBookWeekLstEvent::editMe() {
56 emit editEvent(event.event());
57}
58void DateBookWeekLstEvent::duplicateMe()
59{
60 emit duplicateEvent(event.event());
61}
62void DateBookWeekLstEvent::deleteMe()
63{
64 emit removeEvent(event.event());
65 emit redraw();
66}
67void DateBookWeekLstEvent::beamMe()
68{
69 emit beamEvent( event.event() );
70}
71void DateBookWeekLstEvent::mousePressEvent( QMouseEvent *e )
72{
73 if (!event.event().isValidUid()) {
74 // this is just such a holiday event.
75 return;
76 }
77 popmenue = new QPopupMenu;
78
79 popmenue->insertItem( tr( "Edit" ), this, SLOT(editMe()));
80 popmenue->insertItem( tr( "Duplicate" ), this, SLOT(duplicateMe()));
81 popmenue->insertItem( tr( "Delete" ), this, SLOT(deleteMe()));
82 if(Ir::supported())
83 popmenue->insertItem( tr( "Beam" ), this, SLOT(beamMe()));
84 popmenue->popup( mapToGlobal( e->pos() ));
85}
diff --git a/core/pim/datebook/modules/weeklst/datebookweeklstevent.h b/core/pim/datebook/modules/weeklst/datebookweeklstevent.h
new file mode 100644
index 0000000..77f6283
--- a/dev/null
+++ b/core/pim/datebook/modules/weeklst/datebookweeklstevent.h
@@ -0,0 +1,34 @@
1#ifndef _DATEBOOKWEEKLSTEVENT_H
2#define _DATEBOOKWEEKLSTEVENT_H
3
4#include <opie2/oclickablelabel.h>
5
6#include <qpe/event.h>
7
8class DateBookWeekLstEvent: public Opie::Ui::OClickableLabel
9{
10 Q_OBJECT
11public:
12 DateBookWeekLstEvent(const EffectiveEvent &ev, int weeklistviewconfig =1,
13 QWidget* parent = 0, const char* name = 0,
14 WFlags fl = 0);
15signals:
16 void editEvent(const Event &e);
17 void duplicateEvent(const Event &e);
18 void removeEvent(const Event &e);
19 void beamEvent(const Event &e);
20 void redraw();
21private slots:
22 void editMe();
23 void duplicateMe();
24 void deleteMe();
25 void beamMe();
26private:
27 const EffectiveEvent event;
28 QPopupMenu* popmenue;
29protected:
30 void mousePressEvent( QMouseEvent *e );
31};
32
33
34#endif
diff --git a/core/pim/datebook/modules/weeklst/datebookweeklstheader.cpp b/core/pim/datebook/modules/weeklst/datebookweeklstheader.cpp
new file mode 100644
index 0000000..81e0c31
--- a/dev/null
+++ b/core/pim/datebook/modules/weeklst/datebookweeklstheader.cpp
@@ -0,0 +1,96 @@
1#include "datebookweeklstheader.h"
2
3#include <qpe/resource.h>
4#include <qpe/datebookmonth.h>
5
6#include <qtoolbutton.h>
7#include <qlayout.h>
8
9/* implenented in datebookweek.cpp - HELL */
10bool calcWeek(const QDate &d, int &week, int &year,bool startOnMonday = false);
11
12DateBookWeekLstHeader::DateBookWeekLstHeader(bool onM, QWidget* parent, const char* name, WFlags fl)
13 : DateBookWeekLstHeaderBase(parent, name, fl)
14{
15 setBackgroundMode( PaletteButton );
16 labelDate->setBackgroundMode( PaletteButton );
17 forwardweek->setBackgroundMode( PaletteButton );
18 forwardweek->setPixmap( Resource::loadPixmap("forward") );
19 forwardmonth->setBackgroundMode( PaletteButton );
20 forwardmonth->setPixmap( Resource::loadPixmap("fastforward") );
21 backweek->setBackgroundMode( PaletteButton );
22 backweek->setPixmap( Resource::loadPixmap("back") );
23 backmonth->setBackgroundMode( PaletteButton );
24 backmonth->setPixmap( Resource::loadPixmap("fastback") );
25 DateBookWeekLstHeaderBaseLayout->setSpacing(0);
26 DateBookWeekLstHeaderBaseLayout->setMargin(0);
27 //setSizePolicy(QSizePolicy(QSizePolicy::Fixed,QSizePolicy::Expanding));
28 setSizePolicy(QSizePolicy(QSizePolicy::Expanding,QSizePolicy::Fixed));
29
30 connect(backmonth, SIGNAL(clicked()), this, SLOT(prevMonth()));
31 connect(backweek, SIGNAL(clicked()), this, SLOT(prevWeek()));
32 connect(forwardweek, SIGNAL(clicked()), this, SLOT(nextWeek()));
33 connect(forwardmonth, SIGNAL(clicked()), this, SLOT(nextMonth()));
34 connect(labelDate, SIGNAL(clicked()), this, SLOT(pickDate()));
35 connect(dbl, SIGNAL(toggled(bool)), this, SIGNAL(setDbl(bool)));
36 bStartOnMonday=onM;
37}
38DateBookWeekLstHeader::~DateBookWeekLstHeader(){}
39
40void DateBookWeekLstHeader::setDate(const QDate &d) {
41 int year,week,dayofweek;
42 date=d;
43 dayofweek=d.dayOfWeek();
44 if(bStartOnMonday)
45 dayofweek--;
46 else if( dayofweek == 7 )
47 /* we already have the right day -7 would lead to the same week */
48 dayofweek = 0;
49
50 date=date.addDays(-dayofweek);
51
52 calcWeek(date,week,year,bStartOnMonday);
53 QDate start=date;
54 QDate stop=start.addDays(6);
55 labelDate->setText( QString::number(start.day()) + "." +
56 Calendar::nameOfMonth( start.month() ) + "-" +
57 QString::number(stop.day()) + "." +
58 Calendar::nameOfMonth( stop.month()) +" ("+
59 tr("w")+":"+QString::number( week ) +")");
60 date = d; // bugfix: 0001126 - date has to be the selected date, not monday!
61 emit dateChanged(date);
62}
63
64void DateBookWeekLstHeader::pickDate() {
65 static QPopupMenu *m1 = 0;
66 static DateBookMonth *picker = 0;
67 if ( !m1 ) {
68 m1 = new QPopupMenu( this );
69 picker = new DateBookMonth( m1, 0, TRUE );
70 m1->insertItem( picker );
71 connect( picker, SIGNAL( dateClicked(int,int,int) ),this, SLOT( setDate(int,int,int) ) );
72 //connect( m1, SIGNAL( aboutToHide() ),
73 //this, SLOT( gotHide() ) );
74 }
75 picker->setDate( date.year(), date.month(), date.day() );
76 m1->popup(mapToGlobal(labelDate->pos()+QPoint(0,labelDate->height())));
77 picker->setFocus();
78}
79void DateBookWeekLstHeader::setDate(int y, int m, int d) {
80 setDate(QDate(y,m,d));
81}
82
83void DateBookWeekLstHeader::nextWeek() {
84 setDate(date.addDays(7));
85}
86void DateBookWeekLstHeader::prevWeek() {
87 setDate(date.addDays(-7));
88}
89void DateBookWeekLstHeader::nextMonth()
90{
91 setDate(date.addDays(28));
92}
93void DateBookWeekLstHeader::prevMonth()
94{
95 setDate(date.addDays(-28));
96}
diff --git a/core/pim/datebook/modules/weeklst/datebookweeklstheader.h b/core/pim/datebook/modules/weeklst/datebookweeklstheader.h
new file mode 100644
index 0000000..818b825
--- a/dev/null
+++ b/core/pim/datebook/modules/weeklst/datebookweeklstheader.h
@@ -0,0 +1,34 @@
1#ifndef _DATEBOOKWEEKLSTHEADER_H
2#define _DATEBOOKWEEKLSTHEADER_H
3
4#include "datebookweeklstheaderbase.h"
5
6#include <qdatetime.h>
7
8class DateBookWeekLstHeader: public DateBookWeekLstHeaderBase
9{
10 Q_OBJECT
11public:
12 DateBookWeekLstHeader(bool onM, QWidget* parent = 0, const char* name = 0,
13 WFlags fl = 0 );
14 ~DateBookWeekLstHeader();
15 void setDate(const QDate &d);
16
17public slots:
18 void nextWeek();
19 void prevWeek();
20 void nextMonth();
21 void prevMonth();
22 void pickDate();
23 void setDate(int y, int m, int d);
24signals:
25 void dateChanged(QDate &newdate);
26 void setDbl(bool on);
27protected:
28 QDate date;
29// bool onMonday;
30 bool bStartOnMonday;
31
32};
33
34#endif
diff --git a/core/pim/datebook/datebookweeklstheader.ui b/core/pim/datebook/modules/weeklst/datebookweeklstheaderbase.ui
index e925ec3..e925ec3 100644
--- a/core/pim/datebook/datebookweeklstheader.ui
+++ b/core/pim/datebook/modules/weeklst/datebookweeklstheaderbase.ui
diff --git a/core/pim/datebook/modules/weeklst/datebookweeklstview.cpp b/core/pim/datebook/modules/weeklst/datebookweeklstview.cpp
new file mode 100644
index 0000000..efb4c01
--- a/dev/null
+++ b/core/pim/datebook/modules/weeklst/datebookweeklstview.cpp
@@ -0,0 +1,73 @@
1#include "datebookweeklstview.h"
2#include "datebooktypes.h"
3#include "datebookweeklstdayhdr.h"
4#include "datebookweeklstheader.h"
5#include "datebookweeklstevent.h"
6
7#include <opie2/odebug.h>
8
9#include <qpe/config.h>
10
11#include <qlayout.h>
12#include <qtl.h>
13
14DateBookWeekLstView::DateBookWeekLstView(QValueList<EffectiveEvent> &ev,
15 const QDate &d, bool onM,
16 QWidget* parent,
17 const char* name, WFlags fl)
18 : QWidget( parent, name, fl )
19{
20 Config config("DateBook");
21 config.setGroup("Main");
22 int weeklistviewconfig=config.readNumEntry("weeklistviewconfig", NORMAL);
23 odebug << "weeklistviewconfig: " << weeklistviewconfig << oendl;
24
25 bStartOnMonday=onM;
26 setPalette(white);
27 setSizePolicy(QSizePolicy(QSizePolicy::Expanding,QSizePolicy::Expanding));
28
29 QVBoxLayout *layout = new QVBoxLayout( this );
30
31 qBubbleSort(ev);
32 QValueListIterator<EffectiveEvent> it;
33 it=ev.begin();
34
35 int dayOrder[7];
36 if (bStartOnMonday) {
37 for (int d=0; d<7; d++) dayOrder[d]=d+1;
38 } else {
39 for (int d=0; d<7; d++) dayOrder[d]=d;
40 dayOrder[0]=7;
41 }
42
43 // Calculate offset to first day of week.
44 int dayoffset=d.dayOfWeek();
45 if(bStartOnMonday) dayoffset--;
46 else if( dayoffset == 7 ) dayoffset = 0;
47
48 for (int i=0; i<7; i++) {
49 // Header
50 DateBookWeekLstDayHdr *hdr=new DateBookWeekLstDayHdr(d.addDays(i-dayoffset), bStartOnMonday,this);
51 connect(hdr, SIGNAL(showDate(int,int,int)), this, SIGNAL(showDate(int,int,int)));
52 connect(hdr, SIGNAL(addEvent(const QDateTime&,const QDateTime&,const QString&,const QString&)),
53 this, SIGNAL(addEvent(const QDateTime&,const QDateTime&,const QString&,const QString&)));
54 layout->addWidget(hdr);
55
56 // Events
57 while ( (*it).date().dayOfWeek() == dayOrder[i] && it!=ev.end() ) {
58 if(!(((*it).end().hour()==0) && ((*it).end().minute()==0) && ((*it).startDate()!=(*it).date()))) { // Skip events ending at 00:00 starting at another day.
59 DateBookWeekLstEvent *l=new DateBookWeekLstEvent(*it,weeklistviewconfig,this);
60 layout->addWidget(l);
61 connect (l, SIGNAL(editEvent(const Event&)), this, SIGNAL(editEvent(const Event&)));
62 connect (l, SIGNAL(duplicateEvent(const Event &)), this, SIGNAL(duplicateEvent(const Event &)));
63 connect (l, SIGNAL(removeEvent(const Event &)), this, SIGNAL(removeEvent(const Event &)));
64 connect (l, SIGNAL(beamEvent(const Event &)), this, SIGNAL(beamEvent(const Event &)));
65 connect (l, SIGNAL(redraw()), this, SIGNAL(redraw()));
66 }
67 it++;
68 }
69 layout->addItem(new QSpacerItem(1,1, QSizePolicy::Minimum, QSizePolicy::Expanding));
70 }
71}
72DateBookWeekLstView::~DateBookWeekLstView(){}
73void DateBookWeekLstView::keyPressEvent(QKeyEvent *e) {e->ignore();}
diff --git a/core/pim/datebook/modules/weeklst/datebookweeklstview.h b/core/pim/datebook/modules/weeklst/datebookweeklstview.h
new file mode 100644
index 0000000..2428f1f
--- a/dev/null
+++ b/core/pim/datebook/modules/weeklst/datebookweeklstview.h
@@ -0,0 +1,36 @@
1#ifndef _DATEBOOKWEEKLISTVIEW_H
2#define _DATEBOOKWEEKLISTVIEW_H
3
4#include <qpe/event.h>
5
6#include <qwidget.h>
7#include <qvaluelist.h>
8#include <qstring.h>
9#include <qdatetime.h>
10
11class QKeyEvent;
12
13class DateBookWeekLstView: public QWidget
14{
15 Q_OBJECT
16public:
17 DateBookWeekLstView(QValueList<EffectiveEvent> &ev, const QDate &d, bool onM,
18 QWidget* parent = 0, const char* name = 0,
19 WFlags fl = 0 );
20 ~DateBookWeekLstView();
21signals:
22 void editEvent(const Event &e);
23 void duplicateEvent(const Event &e);
24 void removeEvent(const Event &e);
25 void beamEvent(const Event &e);
26 void redraw();
27 void showDate(int y, int m, int d);
28 void addEvent(const QDateTime &start, const QDateTime &stop,
29 const QString &str, const QString &location);
30private:
31 bool bStartOnMonday;
32protected slots:
33 void keyPressEvent(QKeyEvent *);
34};
35
36#endif