summaryrefslogtreecommitdiffabout
Unidiff
Diffstat (more/less context) (show whitespace changes)
-rw-r--r--korganizer/kolistview.cpp10
-rw-r--r--korganizer/main.cpp2
-rw-r--r--korganizer/mainwindow.cpp31
-rw-r--r--korganizer/mainwindow.h1
4 files changed, 42 insertions, 2 deletions
diff --git a/korganizer/kolistview.cpp b/korganizer/kolistview.cpp
index c705c73..0b2f9a4 100644
--- a/korganizer/kolistview.cpp
+++ b/korganizer/kolistview.cpp
@@ -1,432 +1,440 @@
1/* 1/*
2 This file is part of KOrganizer. 2 This file is part of KOrganizer.
3 Copyright (c) 1999 Preston Brown 3 Copyright (c) 1999 Preston Brown
4 Copyright (c) 2000,2001 Cornelius Schumacher <schumacher@kde.org> 4 Copyright (c) 2000,2001 Cornelius Schumacher <schumacher@kde.org>
5 5
6 This program is free software; you can redistribute it and/or modify 6 This program is free software; you can redistribute it and/or modify
7 it under the terms of the GNU General Public License as published by 7 it under the terms of the GNU General Public License as published by
8 the Free Software Foundation; either version 2 of the License, or 8 the Free Software Foundation; either version 2 of the License, or
9 (at your option) any later version. 9 (at your option) any later version.
10 10
11 This program is distributed in the hope that it will be useful, 11 This program is distributed in the hope that it will be useful,
12 but WITHOUT ANY WARRANTY; without even the implied warranty of 12 but WITHOUT ANY WARRANTY; without even the implied warranty of
13 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 13 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 GNU General Public License for more details. 14 GNU General Public License for more details.
15 15
16 You should have received a copy of the GNU General Public License 16 You should have received a copy of the GNU General Public License
17 along with this program; if not, write to the Free Software 17 along with this program; if not, write to the Free Software
18 Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. 18 Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
19 19
20 As a special exception, permission is given to link this program 20 As a special exception, permission is given to link this program
21 with any edition of Qt, and distribute the resulting executable, 21 with any edition of Qt, and distribute the resulting executable,
22 without including the source code for Qt in the source distribution. 22 without including the source code for Qt in the source distribution.
23*/ 23*/
24 24
25#include <qlistview.h> 25#include <qlistview.h>
26#include <qlayout.h> 26#include <qlayout.h>
27#include <qlabel.h> 27#include <qlabel.h>
28#include <qpopupmenu.h> 28#include <qpopupmenu.h>
29#include <qprogressbar.h> 29#include <qprogressbar.h>
30#include <qfileinfo.h> 30#include <qfileinfo.h>
31#include <qmessagebox.h> 31#include <qmessagebox.h>
32#include <qdialog.h> 32#include <qdialog.h>
33#include <qtextstream.h> 33#include <qtextstream.h>
34#include <qdir.h> 34#include <qdir.h>
35#include <qwhatsthis.h> 35#include <qwhatsthis.h>
36#include <qregexp.h> 36#include <qregexp.h>
37#include <qpainter.h> 37#include <qpainter.h>
38#include <qpaintdevicemetrics.h> 38#include <qpaintdevicemetrics.h>
39 39
40#include <klocale.h> 40#include <klocale.h>
41#include <kdebug.h> 41#include <kdebug.h>
42#include <kiconloader.h> 42#include <kiconloader.h>
43#include <kglobal.h> 43#include <kglobal.h>
44 44
45#include <libkdepim/kpimglobalprefs.h> 45#include <libkdepim/kpimglobalprefs.h>
46#include <libkcal/calendar.h> 46#include <libkcal/calendar.h>
47#include <libkcal/calendarlocal.h> 47#include <libkcal/calendarlocal.h>
48#include <libkcal/icalformat.h> 48#include <libkcal/icalformat.h>
49#include <libkcal/vcalformat.h> 49#include <libkcal/vcalformat.h>
50#include <libkcal/recurrence.h> 50#include <libkcal/recurrence.h>
51#include <libkcal/filestorage.h> 51#include <libkcal/filestorage.h>
52#include <libkdepim/categoryselectdialog.h> 52#include <libkdepim/categoryselectdialog.h>
53#include <libkcal/kincidenceformatter.h> 53#include <libkcal/kincidenceformatter.h>
54#ifndef DESKTOP_VERSION 54#ifndef DESKTOP_VERSION
55#include <qpe/qpeapplication.h> 55#include <qpe/qpeapplication.h>
56#else 56#else
57#include <qapplication.h> 57#include <qapplication.h>
58#endif 58#endif
59 59
60#ifndef KORG_NOPRINTER 60#ifndef KORG_NOPRINTER
61#include "calprinter.h" 61#include "calprinter.h"
62#endif 62#endif
63#include "koglobals.h" 63#include "koglobals.h"
64#include "koprefs.h" 64#include "koprefs.h"
65#include "kfiledialog.h" 65#include "kfiledialog.h"
66 66
67#include "kolistview.h" 67#include "kolistview.h"
68#include "koeventviewer.h" 68#include "koeventviewer.h"
69 69
70extern QPixmap* sgListViewCompletedPix[6];
71
70class KOListViewWhatsThis :public QWhatsThis 72class KOListViewWhatsThis :public QWhatsThis
71{ 73{
72public: 74public:
73 KOListViewWhatsThis( QWidget *wid, KOListView* view ) : QWhatsThis( wid ), _wid(wid),_view (view) { }; 75 KOListViewWhatsThis( QWidget *wid, KOListView* view ) : QWhatsThis( wid ), _wid(wid),_view (view) { };
74 76
75protected: 77protected:
76 virtual QString text( const QPoint& p) 78 virtual QString text( const QPoint& p)
77 { 79 {
78 return _view->getWhatsThisText(p) ; 80 return _view->getWhatsThisText(p) ;
79 } 81 }
80private: 82private:
81 QWidget* _wid; 83 QWidget* _wid;
82 KOListView * _view; 84 KOListView * _view;
83}; 85};
84 86
85 87
86ListItemVisitor::ListItemVisitor(KOListViewItem *item, QDate date ) 88ListItemVisitor::ListItemVisitor(KOListViewItem *item, QDate date )
87{ 89{
88 mItem = item; 90 mItem = item;
89 mDate = date; 91 mDate = date;
90} 92}
91 93
92ListItemVisitor::~ListItemVisitor() 94ListItemVisitor::~ListItemVisitor()
93{ 95{
94} 96}
95 97
96bool ListItemVisitor::visit(Event *e) 98bool ListItemVisitor::visit(Event *e)
97{ 99{
98 bool ok = false; 100 bool ok = false;
99 QString start, end; 101 QString start, end;
100 QDate ds, de; 102 QDate ds, de;
101 if ( e->doesRecur() ) { 103 if ( e->doesRecur() ) {
102 ds = e->getNextOccurence( QDateTime( mDate, QTime(0,0,0)), &ok ).date(); 104 ds = e->getNextOccurence( QDateTime( mDate, QTime(0,0,0)), &ok ).date();
103 if ( ok ) { 105 if ( ok ) {
104 int days = e->dtStart().date().daysTo(e->dtEnd().date() ); 106 int days = e->dtStart().date().daysTo(e->dtEnd().date() );
105 start = KGlobal::locale()->formatDate(ds,true); 107 start = KGlobal::locale()->formatDate(ds,true);
106 de = ds.addDays( days); 108 de = ds.addDays( days);
107 end = KGlobal::locale()->formatDate(de,true); 109 end = KGlobal::locale()->formatDate(de,true);
108 } 110 }
109 111
110 } 112 }
111 if ( ! ok ) { 113 if ( ! ok ) {
112 start =e->dtStartDateStr(); 114 start =e->dtStartDateStr();
113 end = e->dtEndDateStr(); 115 end = e->dtEndDateStr();
114 ds = e->dtStart().date(); 116 ds = e->dtStart().date();
115 de = e->dtEnd().date(); 117 de = e->dtEnd().date();
116 } 118 }
117 mItem->setText(0,e->summary()); 119 mItem->setText(0,e->summary());
118 mItem->setText(1,start); 120 mItem->setText(1,start);
119 if ( e->doesFloat() ) 121 if ( e->doesFloat() )
120 mItem->setText(2,"---"); 122 mItem->setText(2,"---");
121 else 123 else
122 mItem->setText(2,e->dtStartTimeStr()); 124 mItem->setText(2,e->dtStartTimeStr());
123 mItem->setText(3,end); 125 mItem->setText(3,end);
124 if ( e->doesFloat() ) 126 if ( e->doesFloat() )
125 mItem->setText(4,"---"); 127 mItem->setText(4,"---");
126 else 128 else
127 mItem->setText(4,e->dtEndTimeStr()); 129 mItem->setText(4,e->dtEndTimeStr());
128 if ( e->isAlarmEnabled() ) { 130 if ( e->isAlarmEnabled() ) {
129 mItem->setText(5,e->alarms().first()->offsetText() ); 131 mItem->setText(5,e->alarms().first()->offsetText() );
130 } else { 132 } else {
131 mItem->setText(5, i18n("No")); 133 mItem->setText(5, i18n("No"));
132 } 134 }
133 mItem->setText(6, e->recurrence()->recurrenceText()); 135 mItem->setText(6, e->recurrence()->recurrenceText());
134 if( ! e->doesRecur() ) 136 if( ! e->doesRecur() )
135 mItem->setSortKey( 6, "-" ); 137 mItem->setSortKey( 6, "-" );
136 mItem->setText(7,"---"); 138 mItem->setText(7,"---");
137 mItem->setText(8,"---"); 139 mItem->setText(8,"---");
138 mItem->setText(9, e->cancelled() ? i18n("Yes") : i18n("No")); 140 mItem->setText(9, e->cancelled() ? i18n("Yes") : i18n("No"));
139 mItem->setText(10,e->categoriesStr()); 141 mItem->setText(10,e->categoriesStr());
140 mItem->setText(11, KOPrefs::instance()->calName( e->calID() )); 142 mItem->setText(11, KOPrefs::instance()->calName( e->calID() ));
141 143
142 QString key; 144 QString key;
143 QTime t = e->doesFloat() ? QTime(0,0) : e->dtStart().time(); 145 QTime t = e->doesFloat() ? QTime(0,0) : e->dtStart().time();
144 key.sprintf("%04d%02d%02d%02d%02d",ds.year(),ds.month(),ds.day(),t.hour(),t.minute()); 146 key.sprintf("%04d%02d%02d%02d%02d",ds.year(),ds.month(),ds.day(),t.hour(),t.minute());
145 mItem->setSortKey(1,key); 147 mItem->setSortKey(1,key);
146 148
147 t = e->doesFloat() ? QTime(0,0) : e->dtEnd().time(); 149 t = e->doesFloat() ? QTime(0,0) : e->dtEnd().time();
148 key.sprintf("%04d%02d%02d%02d%02d",de.year(),de.month(),de.day(),t.hour(),t.minute()); 150 key.sprintf("%04d%02d%02d%02d%02d",de.year(),de.month(),de.day(),t.hour(),t.minute());
149 mItem->setSortKey(3,key); 151 mItem->setSortKey(3,key);
150 return true; 152 return true;
151} 153}
152 154
153bool ListItemVisitor::visit(Todo *t) 155bool ListItemVisitor::visit(Todo *t)
154{ 156{
155 mItem->setText(0,i18n("Todo: %1").arg(t->summary())); 157 mItem->setText(0,t->summary());
158 if ( t->isCompleted() ) {
159 mItem->setSortKey(0,"99"+ t->summary().left(10));
160 } else
161 mItem->setSortKey(0,QString::number( t->percentComplete() )+ t->summary().left(10));
162 mItem->setPixmap( 0, *(sgListViewCompletedPix[t->percentComplete()/20]));
156 if (t->hasStartDate()) { 163 if (t->hasStartDate()) {
157 mItem->setText(1,t->dtStartDateStr()); 164 mItem->setText(1,t->dtStartDateStr());
158 if (t->doesFloat()) { 165 if (t->doesFloat()) {
159 mItem->setText(2,"---"); 166 mItem->setText(2,"---");
160 } else { 167 } else {
161 mItem->setText(2,t->dtStartTimeStr()); 168 mItem->setText(2,t->dtStartTimeStr());
162 } 169 }
163 } else { 170 } else {
164 mItem->setText(1,"---"); 171 mItem->setText(1,"---");
165 mItem->setText(2,"---"); 172 mItem->setText(2,"---");
166 } 173 }
167 mItem->setText(3,"---"); 174 mItem->setText(3,"---");
168 mItem->setText(4,"---"); 175 mItem->setText(4,"---");
169 if ( t->isAlarmEnabled() ) { 176 if ( t->isAlarmEnabled() ) {
170 mItem->setText(5,t->alarms().first()->offsetText() ); 177 mItem->setText(5,t->alarms().first()->offsetText() );
171 } else { 178 } else {
172 mItem->setText(5, i18n("No")); 179 mItem->setText(5, i18n("No"));
173 } 180 }
174 mItem->setText(6, t->recurrence()->recurrenceText()); 181 mItem->setText(6, t->recurrence()->recurrenceText());
175 if( ! t->doesRecur() ) 182 if( ! t->doesRecur() )
176 mItem->setSortKey( 6, "-" ); 183 mItem->setSortKey( 6, "-" );
177 if (t->hasDueDate()) { 184 if (t->hasDueDate()) {
178 mItem->setText(7,t->dtDueDateStr()); 185 mItem->setText(7,t->dtDueDateStr());
179 if (t->doesFloat()) { 186 if (t->doesFloat()) {
180 mItem->setText(8,"---"); 187 mItem->setText(8,"---");
181 } else { 188 } else {
182 mItem->setText(8,t->dtDueTimeStr()); 189 mItem->setText(8,t->dtDueTimeStr());
183 } 190 }
184 } else { 191 } else {
185 mItem->setText(7,"---"); 192 mItem->setText(7,"---");
186 mItem->setText(8,"---"); 193 mItem->setText(8,"---");
187 } 194 }
188 mItem->setText(9, t->cancelled() ? i18n("Yes") : i18n("No")); 195 mItem->setText(9, t->cancelled() ? i18n("Yes") : i18n("No"));
189 mItem->setText(10,t->categoriesStr()); 196 mItem->setText(10,t->categoriesStr());
190 mItem->setText(11, KOPrefs::instance()->calName( t->calID() )); 197 mItem->setText(11, KOPrefs::instance()->calName( t->calID() ));
191 198
192 QString key; 199 QString key;
193 QDate d; 200 QDate d;
194 if (t->hasDueDate()) { 201 if (t->hasDueDate()) {
195 d = t->dtDue().date(); 202 d = t->dtDue().date();
196 QTime tm = t->doesFloat() ? QTime(0,0) : t->dtDue().time(); 203 QTime tm = t->doesFloat() ? QTime(0,0) : t->dtDue().time();
197 key.sprintf("%04d%02d%02d%02d%02d",d.year(),d.month(),d.day(),tm.hour(),tm.minute()); 204 key.sprintf("%04d%02d%02d%02d%02d",d.year(),d.month(),d.day(),tm.hour(),tm.minute());
198 mItem->setSortKey(7,key); 205 mItem->setSortKey(7,key);
199 } 206 }
200 if ( t->hasStartDate() ) { 207 if ( t->hasStartDate() ) {
201 d = t->dtStart().date(); 208 d = t->dtStart().date();
202 QTime tm = t->doesFloat() ? QTime(0,0) : t->dtStart().time(); 209 QTime tm = t->doesFloat() ? QTime(0,0) : t->dtStart().time();
203 key.sprintf("%04d%02d%02d%02d%02d",d.year(),d.month(),d.day(),tm.hour(),tm.minute()); 210 key.sprintf("%04d%02d%02d%02d%02d",d.year(),d.month(),d.day(),tm.hour(),tm.minute());
204 mItem->setSortKey(1,key); 211 mItem->setSortKey(1,key);
205 } 212 }
206 return true; 213 return true;
207} 214}
208 215
209bool ListItemVisitor::visit(Journal * j) 216bool ListItemVisitor::visit(Journal * j)
210{ 217{
211 QString des = j->description().left(30); 218 QString des = j->description().left(30);
212 des = des.simplifyWhiteSpace (); 219 des = des.simplifyWhiteSpace ();
213 des.replace (QRegExp ("\\n"),"" ); 220 des.replace (QRegExp ("\\n"),"" );
214 des.replace (QRegExp ("\\r"),"" ); 221 des.replace (QRegExp ("\\r"),"" );
215 mItem->setText(0,i18n("Journal: ")+des.left(25)); 222 mItem->setText(0,i18n("Journal: ")+des.left(25));
216 mItem->setText(1,j->dtStartDateStr()); 223 mItem->setText(1,j->dtStartDateStr());
217 mItem->setText(2,"---"); 224 mItem->setText(2,"---");
218 mItem->setText(3,"---"); 225 mItem->setText(3,"---");
219 mItem->setText(4,"---"); 226 mItem->setText(4,"---");
220 mItem->setText(5,"---"); 227 mItem->setText(5,"---");
221 mItem->setText(6,"---"); 228 mItem->setText(6,"---");
222 mItem->setText(7,j->dtStartDateStr()); 229 mItem->setText(7,j->dtStartDateStr());
223 mItem->setText(8,"---"); 230 mItem->setText(8,"---");
224 mItem->setText(9,"---"); 231 mItem->setText(9,"---");
225 mItem->setText(10,i18n("Last Modified: ")+ KGlobal::locale()->formatDateTime( j->lastModified() , true) ); 232 mItem->setText(10,i18n("Last Modified: ")+ KGlobal::locale()->formatDateTime( j->lastModified() , true) );
226 mItem->setText(11, KOPrefs::instance()->calName( j->calID() )); 233 mItem->setText(11, KOPrefs::instance()->calName( j->calID() ));
227 234
228 QString key; 235 QString key;
229 QDate d = j->dtStart().date(); 236 QDate d = j->dtStart().date();
230 key.sprintf("%04d%02d%02d",d.year(),d.month(),d.day()); 237 key.sprintf("%04d%02d%02d",d.year(),d.month(),d.day());
231 mItem->setSortKey(1,key); 238 mItem->setSortKey(1,key);
232 mItem->setSortKey(7,key); 239 mItem->setSortKey(7,key);
233 240
234 return true; 241 return true;
235} 242}
236 243
237KOListView::KOListView(Calendar *calendar, QWidget *parent, 244KOListView::KOListView(Calendar *calendar, QWidget *parent,
238 const char *name) 245 const char *name)
239 : KOEventView(calendar, parent, name) 246 : KOEventView(calendar, parent, name)
240{ 247{
248
241 mActiveItem = 0; 249 mActiveItem = 0;
242 mListView = new KOListViewListView(this); 250 mListView = new KOListViewListView(this);
243 mListView->addColumn(i18n("Summary")); 251 mListView->addColumn(i18n("Summary"));
244 mListView->addColumn(i18n("Start Date")); 252 mListView->addColumn(i18n("Start Date"));
245 mListView->addColumn(i18n("Start Time")); 253 mListView->addColumn(i18n("Start Time"));
246 mListView->addColumn(i18n("End Date")); 254 mListView->addColumn(i18n("End Date"));
247 mListView->addColumn(i18n("End Time")); 255 mListView->addColumn(i18n("End Time"));
248 mListView->addColumn(i18n("Alarm")); // alarm set? 256 mListView->addColumn(i18n("Alarm")); // alarm set?
249 mListView->addColumn(i18n("Recurs")); // recurs? 257 mListView->addColumn(i18n("Recurs")); // recurs?
250 mListView->addColumn(i18n("Due Date")); 258 mListView->addColumn(i18n("Due Date"));
251 mListView->addColumn(i18n("Due Time")); 259 mListView->addColumn(i18n("Due Time"));
252 mListView->addColumn(i18n("Cancelled")); 260 mListView->addColumn(i18n("Cancelled"));
253 mListView->addColumn(i18n("Categories")); 261 mListView->addColumn(i18n("Categories"));
254 mListView->addColumn(i18n("Calendar")); 262 mListView->addColumn(i18n("Calendar"));
255 263
256 mListView->setColumnAlignment(0,AlignLeft); 264 mListView->setColumnAlignment(0,AlignLeft);
257 mListView->setColumnAlignment(1,AlignLeft); 265 mListView->setColumnAlignment(1,AlignLeft);
258 mListView->setColumnAlignment(2,AlignHCenter); 266 mListView->setColumnAlignment(2,AlignHCenter);
259 mListView->setColumnAlignment(3,AlignLeft); 267 mListView->setColumnAlignment(3,AlignLeft);
260 mListView->setColumnAlignment(4,AlignHCenter); 268 mListView->setColumnAlignment(4,AlignHCenter);
261 mListView->setColumnAlignment(5,AlignLeft); 269 mListView->setColumnAlignment(5,AlignLeft);
262 mListView->setColumnAlignment(6,AlignLeft); 270 mListView->setColumnAlignment(6,AlignLeft);
263 mListView->setColumnAlignment(7,AlignLeft); 271 mListView->setColumnAlignment(7,AlignLeft);
264 mListView->setColumnAlignment(8,AlignLeft); 272 mListView->setColumnAlignment(8,AlignLeft);
265 mListView->setColumnAlignment(9,AlignLeft); 273 mListView->setColumnAlignment(9,AlignLeft);
266 mListView->setColumnAlignment(10,AlignLeft); 274 mListView->setColumnAlignment(10,AlignLeft);
267 mListView->setColumnAlignment(11,AlignLeft); 275 mListView->setColumnAlignment(11,AlignLeft);
268 mKOListViewWhatsThis = new KOListViewWhatsThis(mListView->viewport(),this); 276 mKOListViewWhatsThis = new KOListViewWhatsThis(mListView->viewport(),this);
269 277
270 int iii = 0; 278 int iii = 0;
271 for ( iii = 0; iii< 12 ; ++iii ) 279 for ( iii = 0; iii< 12 ; ++iii )
272 mListView->setColumnWidthMode( iii, QListView::Manual ); 280 mListView->setColumnWidthMode( iii, QListView::Manual );
273 281
274 QBoxLayout *layoutTop = new QVBoxLayout(this); 282 QBoxLayout *layoutTop = new QVBoxLayout(this);
275 layoutTop->addWidget(mListView); 283 layoutTop->addWidget(mListView);
276 mListView->setFont ( KOPrefs::instance()->mListViewFont ); 284 mListView->setFont ( KOPrefs::instance()->mListViewFont );
277 mPopupMenu = eventPopup(); 285 mPopupMenu = eventPopup();
278 mPopupMenu->addAdditionalItem(QIconSet(QPixmap()), 286 mPopupMenu->addAdditionalItem(QIconSet(QPixmap()),
279 i18n("Select all"),this, 287 i18n("Select all"),this,
280 SLOT(allSelection()),true); 288 SLOT(allSelection()),true);
281 mPopupMenu->addAdditionalItem(QIconSet(QPixmap()), 289 mPopupMenu->addAdditionalItem(QIconSet(QPixmap()),
282 i18n("Deselect all"),this, 290 i18n("Deselect all"),this,
283 SLOT(clearSelection()),true); 291 SLOT(clearSelection()),true);
284 mPopupMenu->addAdditionalItem(QIconSet(QPixmap()), 292 mPopupMenu->addAdditionalItem(QIconSet(QPixmap()),
285 i18n("Delete all selected"),this, 293 i18n("Delete all selected"),this,
286 SLOT(deleteAll()),true); 294 SLOT(deleteAll()),true);
287 295
288 mPopupMenu->addAdditionalItem(QIconSet(QPixmap()), 296 mPopupMenu->addAdditionalItem(QIconSet(QPixmap()),
289 i18n("Hide all selected"),this, 297 i18n("Hide all selected"),this,
290 SLOT(hideAll()),true); 298 SLOT(hideAll()),true);
291 299
292 mPopupMenu->insertSeparator(); 300 mPopupMenu->insertSeparator();
293#ifdef DESKTOP_VERSION 301#ifdef DESKTOP_VERSION
294 mPopupMenu->addAdditionalItem(QIconSet(QPixmap()), 302 mPopupMenu->addAdditionalItem(QIconSet(QPixmap()),
295 i18n("Print complete list"),this, 303 i18n("Print complete list"),this,
296 SLOT(printList()),true); 304 SLOT(printList()),true);
297 mPopupMenu->insertSeparator(); 305 mPopupMenu->insertSeparator();
298#endif 306#endif
299 mCalPopup = new QPopupMenu ( this ); 307 mCalPopup = new QPopupMenu ( this );
300 mPopupMenu->insertItem( i18n("Set Calendar"), mCalPopup ); 308 mPopupMenu->insertItem( i18n("Set Calendar"), mCalPopup );
301 309
302 QObject::connect(mCalPopup,SIGNAL(aboutToShow()),this, 310 QObject::connect(mCalPopup,SIGNAL(aboutToShow()),this,
303 SLOT( populateCalPopup() )); 311 SLOT( populateCalPopup() ));
304 QObject::connect(mCalPopup,SIGNAL(activated( int )),this, 312 QObject::connect(mCalPopup,SIGNAL(activated( int )),this,
305 SLOT( setCalendar( int ) )); 313 SLOT( setCalendar( int ) ));
306 QPopupMenu * exportPO = new QPopupMenu ( this ); 314 QPopupMenu * exportPO = new QPopupMenu ( this );
307 mPopupMenu->insertItem( i18n("Export selected"), exportPO ); 315 mPopupMenu->insertItem( i18n("Export selected"), exportPO );
308 exportPO->insertItem( i18n("As iCal (ics) file..."),this, 316 exportPO->insertItem( i18n("As iCal (ics) file..."),this,
309 SLOT(saveToFile())); 317 SLOT(saveToFile()));
310 exportPO->insertItem( i18n("As vCal (vcs) file..."),this, 318 exportPO->insertItem( i18n("As vCal (vcs) file..."),this,
311 SLOT(saveToFileVCS())); 319 SLOT(saveToFileVCS()));
312 exportPO->insertItem( i18n("Journal/Details..."),this, 320 exportPO->insertItem( i18n("Journal/Details..."),this,
313 SLOT(saveDescriptionToFile())); 321 SLOT(saveDescriptionToFile()));
314 // mPopupMenu->insertSeparator(); 322 // mPopupMenu->insertSeparator();
315 mPopupMenu->addAdditionalItem(QIconSet(QPixmap()), 323 mPopupMenu->addAdditionalItem(QIconSet(QPixmap()),
316 i18n("Add Categ. to selected..."),this, 324 i18n("Add Categ. to selected..."),this,
317 SLOT(addCat()),true); 325 SLOT(addCat()),true);
318 mPopupMenu->addAdditionalItem(QIconSet(QPixmap()), 326 mPopupMenu->addAdditionalItem(QIconSet(QPixmap()),
319 i18n("Set Categ. for selected..."),this, 327 i18n("Set Categ. for selected..."),this,
320 SLOT(setCat()),true); 328 SLOT(setCat()),true);
321 //mPopupMenu->insertSeparator(); 329 //mPopupMenu->insertSeparator();
322 mPopupMenu->addAdditionalItem(QIconSet(QPixmap()), 330 mPopupMenu->addAdditionalItem(QIconSet(QPixmap()),
323 i18n("Set alarm for selected..."),this, 331 i18n("Set alarm for selected..."),this,
324 SLOT(setAlarm()),true); 332 SLOT(setAlarm()),true);
325 333
326 334
327 335
328#ifndef DESKTOP_VERSION 336#ifndef DESKTOP_VERSION
329 mPopupMenu->insertSeparator(); 337 mPopupMenu->insertSeparator();
330 mPopupMenu->addAdditionalItem(QIconSet(QPixmap()), 338 mPopupMenu->addAdditionalItem(QIconSet(QPixmap()),
331 i18n("Beam selected via IR"),this, 339 i18n("Beam selected via IR"),this,
332 SLOT(beamSelected()),true); 340 SLOT(beamSelected()),true);
333#endif 341#endif
334 /* 342 /*
335 mPopupMenu = new QPopupMenu; 343 mPopupMenu = new QPopupMenu;
336 mPopupMenu->insertItem(i18n("Edit Event"), this, 344 mPopupMenu->insertItem(i18n("Edit Event"), this,
337 SLOT (editEvent())); 345 SLOT (editEvent()));
338 mPopupMenu->insertItem(SmallIcon("delete"), i18n("Delete Event"), this, 346 mPopupMenu->insertItem(SmallIcon("delete"), i18n("Delete Event"), this,
339 SLOT (deleteEvent())); 347 SLOT (deleteEvent()));
340 mPopupMenu->insertSeparator(); 348 mPopupMenu->insertSeparator();
341 mPopupMenu->insertItem(i18n("Show Dates"), this, 349 mPopupMenu->insertItem(i18n("Show Dates"), this,
342 SLOT(showDates())); 350 SLOT(showDates()));
343 mPopupMenu->insertItem(i18n("Hide Dates"), this, 351 mPopupMenu->insertItem(i18n("Hide Dates"), this,
344 SLOT(hideDates())); 352 SLOT(hideDates()));
345 */ 353 */
346 QObject::connect(mListView,SIGNAL( newEvent()), 354 QObject::connect(mListView,SIGNAL( newEvent()),
347 this,SIGNAL(signalNewEvent())); 355 this,SIGNAL(signalNewEvent()));
348 QObject::connect(mListView,SIGNAL(doubleClicked(QListViewItem *)), 356 QObject::connect(mListView,SIGNAL(doubleClicked(QListViewItem *)),
349 this,SLOT(defaultItemAction(QListViewItem *))); 357 this,SLOT(defaultItemAction(QListViewItem *)));
350 QObject::connect(mListView,SIGNAL(rightButtonPressed( QListViewItem *, 358 QObject::connect(mListView,SIGNAL(rightButtonPressed( QListViewItem *,
351 const QPoint &, int )), 359 const QPoint &, int )),
352 this,SLOT(popupMenu(QListViewItem *,const QPoint &,int))); 360 this,SLOT(popupMenu(QListViewItem *,const QPoint &,int)));
353 QObject::connect(mListView,SIGNAL(currentChanged(QListViewItem *)), 361 QObject::connect(mListView,SIGNAL(currentChanged(QListViewItem *)),
354 SLOT(processSelectionChange(QListViewItem *))); 362 SLOT(processSelectionChange(QListViewItem *)));
355 QObject::connect(mListView,SIGNAL(showIncidence(Incidence *)), 363 QObject::connect(mListView,SIGNAL(showIncidence(Incidence *)),
356 SIGNAL(showIncidenceSignal(Incidence *)) ); 364 SIGNAL(showIncidenceSignal(Incidence *)) );
357 365
358 readSettings(KOGlobals::config(),"KOListView Layout"); 366 readSettings(KOGlobals::config(),"KOListView Layout");
359} 367}
360 368
361KOListView::~KOListView() 369KOListView::~KOListView()
362{ 370{
363 delete mPopupMenu; 371 delete mPopupMenu;
364#if QT_VERSION >= 0x030000 372#if QT_VERSION >= 0x030000
365 373
366#else 374#else
367 delete mKOListViewWhatsThis; 375 delete mKOListViewWhatsThis;
368#endif 376#endif
369} 377}
370 378
371QString KOListView::getWhatsThisText(QPoint p) 379QString KOListView::getWhatsThisText(QPoint p)
372{ 380{
373 KOListViewItem* item = ( KOListViewItem* ) mListView->itemAt( p ); 381 KOListViewItem* item = ( KOListViewItem* ) mListView->itemAt( p );
374 if ( item ) 382 if ( item )
375 return KIncidenceFormatter::instance()->getFormattedText( item->data(), 383 return KIncidenceFormatter::instance()->getFormattedText( item->data(),
376 KOPrefs::instance()->mWTshowDetails, 384 KOPrefs::instance()->mWTshowDetails,
377 KOPrefs::instance()->mWTshowCreated, 385 KOPrefs::instance()->mWTshowCreated,
378 KOPrefs::instance()->mWTshowChanged); 386 KOPrefs::instance()->mWTshowChanged);
379 return i18n("That is the list view" ); 387 return i18n("That is the list view" );
380 388
381} 389}
382 390
383void KOListView::setCalendar( int c ) 391void KOListView::setCalendar( int c )
384{ 392{
385 int result = QMessageBox::warning( this, i18n("KO/Pi: Information!"), 393 int result = QMessageBox::warning( this, i18n("KO/Pi: Information!"),
386 i18n("This adds the selected\nitems to the calendar\n%1\nand removes them from\ntheir current calendar!").arg( KOPrefs::instance()->calName( c ) ), 394 i18n("This adds the selected\nitems to the calendar\n%1\nand removes them from\ntheir current calendar!").arg( KOPrefs::instance()->calName( c ) ),
387 i18n("Continue"), i18n("Cancel"), 0, 395 i18n("Continue"), i18n("Cancel"), 0,
388 0, 1 ); 396 0, 1 );
389 if ( result != 0 ) { 397 if ( result != 0 ) {
390 return; 398 return;
391 } 399 }
392 400
393 QPtrList<Incidence> delSel = getSelectedIncidences() ; 401 QPtrList<Incidence> delSel = getSelectedIncidences() ;
394 int icount = delSel.count(); 402 int icount = delSel.count();
395 if ( icount ) { 403 if ( icount ) {
396 Incidence *incidence = delSel.first(); 404 Incidence *incidence = delSel.first();
397 while ( incidence ) { 405 while ( incidence ) {
398 incidence->setCalID( c ); 406 incidence->setCalID( c );
399 KOListViewItem * item = getItemForEvent( incidence ); 407 KOListViewItem * item = getItemForEvent( incidence );
400 if ( item ) { 408 if ( item ) {
401 ListItemVisitor v(item, mStartDate ); 409 ListItemVisitor v(item, mStartDate );
402 incidence->accept(v); 410 incidence->accept(v);
403 } 411 }
404 incidence = delSel.next(); 412 incidence = delSel.next();
405 } 413 }
406 } 414 }
407 QPtrList<KopiCalendarFile> calendars = KOPrefs::instance()->mCalendars; 415 QPtrList<KopiCalendarFile> calendars = KOPrefs::instance()->mCalendars;
408 KopiCalendarFile * cal = calendars.first(); 416 KopiCalendarFile * cal = calendars.first();
409 while ( cal ) { 417 while ( cal ) {
410 mCalendar->setCalendarEnabled( cal->mCalNumber,cal->isEnabled ); 418 mCalendar->setCalendarEnabled( cal->mCalNumber,cal->isEnabled );
411 mCalendar->setAlarmEnabled( cal->mCalNumber, cal->isAlarmEnabled ); 419 mCalendar->setAlarmEnabled( cal->mCalNumber, cal->isAlarmEnabled );
412 mCalendar->setReadOnly( cal->mCalNumber, cal->isReadOnly ); 420 mCalendar->setReadOnly( cal->mCalNumber, cal->isReadOnly );
413 if ( cal->isStandard ) 421 if ( cal->isStandard )
414 mCalendar->setDefaultCalendar( cal->mCalNumber ); 422 mCalendar->setDefaultCalendar( cal->mCalNumber );
415 cal = calendars.next(); 423 cal = calendars.next();
416 } 424 }
417 mCalendar->setSyncEventsReadOnly(); 425 mCalendar->setSyncEventsReadOnly();
418 mCalendar->reInitAlarmSettings(); 426 mCalendar->reInitAlarmSettings();
419 427
420} 428}
421void KOListView::populateCalPopup() 429void KOListView::populateCalPopup()
422{ 430{
423 mCalPopup->clear(); 431 mCalPopup->clear();
424 KopiCalendarFile * kkf = KOPrefs::instance()->mCalendars.first(); 432 KopiCalendarFile * kkf = KOPrefs::instance()->mCalendars.first();
425 while ( kkf ) { 433 while ( kkf ) {
426 mCalPopup->insertItem( kkf->mName, kkf->mCalNumber); 434 mCalPopup->insertItem( kkf->mName, kkf->mCalNumber);
427 kkf = KOPrefs::instance()->mCalendars.next(); 435 kkf = KOPrefs::instance()->mCalendars.next();
428 } 436 }
429} 437}
430void KOListView::updateList() 438void KOListView::updateList()
431{ 439{
432 // qDebug(" KOListView::updateList() "); 440 // qDebug(" KOListView::updateList() ");
diff --git a/korganizer/main.cpp b/korganizer/main.cpp
index ee9589c..2bf46b9 100644
--- a/korganizer/main.cpp
+++ b/korganizer/main.cpp
@@ -1,112 +1,114 @@
1 1
2 2
3#ifndef DESKTOP_VERSION 3#ifndef DESKTOP_VERSION
4#include <qpe/qpeapplication.h> 4#include <qpe/qpeapplication.h>
5#include <qcopchannel_qws.h> 5#include <qcopchannel_qws.h>
6#include <qpe/global.h> 6#include <qpe/global.h>
7#include <stdlib.h> 7#include <stdlib.h>
8#else 8#else
9#include <qapplication.h> 9#include <qapplication.h>
10#include <qstring.h> 10#include <qstring.h>
11#include <qwindowsstyle.h> 11#include <qwindowsstyle.h>
12#include <qplatinumstyle.h> 12#include <qplatinumstyle.h>
13#include <qsgistyle.h> 13#include <qsgistyle.h>
14#include <stdlib.h> 14#include <stdlib.h>
15#endif 15#endif
16#include <qtextcodec.h> 16#include <qtextcodec.h>
17 17
18#include <qdir.h> 18#include <qdir.h>
19#include <kstandarddirs.h> 19#include <kstandarddirs.h>
20#include <kglobal.h> 20#include <kglobal.h>
21#include <stdio.h> 21#include <stdio.h>
22#include "mainwindow.h" 22#include "mainwindow.h"
23#include <libkdepim/kpimglobalprefs.h> 23#include <libkdepim/kpimglobalprefs.h>
24void dumpMissing(); 24void dumpMissing();
25
26
25int main( int argc, char **argv ) 27int main( int argc, char **argv )
26{ 28{
27#ifndef DESKTOP_VERSION 29#ifndef DESKTOP_VERSION
28 QPEApplication a( argc, argv ); 30 QPEApplication a( argc, argv );
29 a.setKeepRunning (); 31 a.setKeepRunning ();
30#else 32#else
31 QApplication a( argc, argv ); 33 QApplication a( argc, argv );
32 QApplication::setStyle( new QPlatinumStyle ()); 34 QApplication::setStyle( new QPlatinumStyle ());
33#ifdef _WIN32_ 35#ifdef _WIN32_
34 QString hdir ( getenv( "HOME") ); 36 QString hdir ( getenv( "HOME") );
35 if ( hdir.isEmpty() ) { 37 if ( hdir.isEmpty() ) {
36 QString hd ("C:/" ); 38 QString hd ("C:/" );
37 //QMessageBox::information(0,"hh",QDir::homeDirPath()+" xx" +hd ); 39 //QMessageBox::information(0,"hh",QDir::homeDirPath()+" xx" +hd );
38 if ( QDir::homeDirPath().lower() == hd.lower() ) { 40 if ( QDir::homeDirPath().lower() == hd.lower() ) {
39 _putenv( "HOME=C:"); 41 _putenv( "HOME=C:");
40 //QMessageBox::information(0,"hh",QString ( getenv( "HOME") ) ); 42 //QMessageBox::information(0,"hh",QString ( getenv( "HOME") ) );
41 } 43 }
42 } else { 44 } else {
43 QDir app_dir; 45 QDir app_dir;
44 if ( !app_dir.exists(hdir) ) 46 if ( !app_dir.exists(hdir) )
45 app_dir.mkdir (hdir); 47 app_dir.mkdir (hdir);
46 } 48 }
47#endif 49#endif
48#endif 50#endif
49 bool exitHelp = false; 51 bool exitHelp = false;
50 if ( argc > 1 ) { 52 if ( argc > 1 ) {
51 QString command = argv[1]; 53 QString command = argv[1];
52 if ( command == "-help" ){ 54 if ( command == "-help" ){
53 printf("KO/Pi command line commands:\n"); 55 printf("KO/Pi command line commands:\n");
54 printf(" no command: Start KO/Pi in usual way\n"); 56 printf(" no command: Start KO/Pi in usual way\n");
55 printf(" -help: This output\n"); 57 printf(" -help: This output\n");
56 printf("Next Option: Open or Show after start:\n"); 58 printf("Next Option: Open or Show after start:\n");
57 printf(" -newTodo: New Todo dialog\n"); 59 printf(" -newTodo: New Todo dialog\n");
58 printf(" -newEvent: New Event dialog\n"); 60 printf(" -newEvent: New Event dialog\n");
59 printf(" -showList: List view\n"); 61 printf(" -showList: List view\n");
60 printf(" -showDay: Day view\n"); 62 printf(" -showDay: Day view\n");
61 printf(" -showWWeek: Work Week view\n"); 63 printf(" -showWWeek: Work Week view\n");
62 printf(" -showWeek: Week view\n"); 64 printf(" -showWeek: Week view\n");
63 printf(" -showTodo: Todo view\n"); 65 printf(" -showTodo: Todo view\n");
64 printf(" -showJournal: Journal view\n"); 66 printf(" -showJournal: Journal view\n");
65 printf(" -showKO: Next Days view\n"); 67 printf(" -showKO: Next Days view\n");
66 printf(" -showWNext: What's Next view\n"); 68 printf(" -showWNext: What's Next view\n");
67 printf(" -showNextXView: Next X View\n"); 69 printf(" -showNextXView: Next X View\n");
68 printf(" -new[Y] and -show[X] may be used togehther\n"); 70 printf(" -new[Y] and -show[X] may be used togehther\n");
69 printf(" KO/Pi is exiting now. Bye!\n"); 71 printf(" KO/Pi is exiting now. Bye!\n");
70 exitHelp = true; 72 exitHelp = true;
71 } 73 }
72 } 74 }
73 if ( ! exitHelp ) { 75 if ( ! exitHelp ) {
74 KGlobal::setAppName( "korganizer" ); 76 KGlobal::setAppName( "korganizer" );
75 QString fileName ; 77 QString fileName ;
76#ifndef DESKTOP_VERSION 78#ifndef DESKTOP_VERSION
77 fileName = getenv("QPEDIR"); 79 fileName = getenv("QPEDIR");
78 KGlobal::iconLoader()->setIconPath( fileName +"/pics/kdepim/korganizer/"); 80 KGlobal::iconLoader()->setIconPath( fileName +"/pics/kdepim/korganizer/");
79#else 81#else
80 fileName = qApp->applicationDirPath () + "/kdepim/korganizer/"; 82 fileName = qApp->applicationDirPath () + "/kdepim/korganizer/";
81 KGlobal::iconLoader()->setIconPath(QDir::convertSeparators(fileName)); 83 KGlobal::iconLoader()->setIconPath(QDir::convertSeparators(fileName));
82#endif 84#endif
83 KStandardDirs::setAppDir( QDir::convertSeparators(locateLocal("data", "korganizer"))); 85 KStandardDirs::setAppDir( QDir::convertSeparators(locateLocal("data", "korganizer")));
84 86
85 QApplication::setFont( KPimGlobalPrefs::instance()->mApplicationFont ); 87 QApplication::setFont( KPimGlobalPrefs::instance()->mApplicationFont );
86 MainWindow m; 88 MainWindow m;
87#ifndef DESKTOP_VERSION 89#ifndef DESKTOP_VERSION
88 90
89 QObject::connect( &a, SIGNAL (appMessage ( const QCString &, const QByteArray & )),&m, SLOT(recieve( const QCString&, const QByteArray& ))); 91 QObject::connect( &a, SIGNAL (appMessage ( const QCString &, const QByteArray & )),&m, SLOT(recieve( const QCString&, const QByteArray& )));
90 a.showMainWidget(&m ); 92 a.showMainWidget(&m );
91#else 93#else
92 a.setMainWidget(&m ); 94 a.setMainWidget(&m );
93 m.show(); 95 m.show();
94 //m.resize( 800, 600 ); 96 //m.resize( 800, 600 );
95 QObject::connect(&a, SIGNAL(lastWindowClosed()), &a, SLOT(quit())); 97 QObject::connect(&a, SIGNAL(lastWindowClosed()), &a, SLOT(quit()));
96#endif 98#endif
97 if ( argc > 1 ) { 99 if ( argc > 1 ) {
98 QCString command = argv[1]; 100 QCString command = argv[1];
99 if ( argc > 2 ) 101 if ( argc > 2 )
100 command += argv[2]; 102 command += argv[2];
101 qApp->processEvents(); 103 qApp->processEvents();
102 m.recieve(command, QByteArray() ); 104 m.recieve(command, QByteArray() );
103 105
104 } 106 }
105 107
106 a.exec(); 108 a.exec();
107 dumpMissing(); 109 dumpMissing();
108 110
109 KPimGlobalPrefs::instance()->writeConfig(); 111 KPimGlobalPrefs::instance()->writeConfig();
110 } 112 }
111 qDebug("KO: Bye! "); 113 qDebug("KO: Bye! ");
112} 114}
diff --git a/korganizer/mainwindow.cpp b/korganizer/mainwindow.cpp
index f945383..0367bea 100644
--- a/korganizer/mainwindow.cpp
+++ b/korganizer/mainwindow.cpp
@@ -1,328 +1,357 @@
1#include <stdlib.h> 1#include <stdlib.h>
2 2
3#include <qaction.h> 3#include <qaction.h>
4#include <qpopupmenu.h> 4#include <qpopupmenu.h>
5#include <qpainter.h> 5#include <qpainter.h>
6#include <qwhatsthis.h> 6#include <qwhatsthis.h>
7#include <qpushbutton.h> 7#include <qpushbutton.h>
8#include <qmessagebox.h> 8#include <qmessagebox.h>
9#include <qlineedit.h> 9#include <qlineedit.h>
10#include <qtextcodec.h> 10#include <qtextcodec.h>
11#include <qfile.h> 11#include <qfile.h>
12#include <qdir.h> 12#include <qdir.h>
13#include <qapp.h> 13#include <qapp.h>
14#include <qfileinfo.h> 14#include <qfileinfo.h>
15#include <qlabel.h> 15#include <qlabel.h>
16#include <qspinbox.h> 16#include <qspinbox.h>
17#include <qcheckbox.h> 17#include <qcheckbox.h>
18#include <qmap.h> 18#include <qmap.h>
19#include <qwmatrix.h> 19#include <qwmatrix.h>
20#include <qtextbrowser.h> 20#include <qtextbrowser.h>
21#include <qtextstream.h> 21#include <qtextstream.h>
22#ifndef DESKTOP_VERSION 22#ifndef DESKTOP_VERSION
23#include <qpe/global.h> 23#include <qpe/global.h>
24#include <qpe/qpemenubar.h> 24#include <qpe/qpemenubar.h>
25#include <qpe/qpetoolbar.h> 25#include <qpe/qpetoolbar.h>
26#include <qpe/resource.h> 26#include <qpe/resource.h>
27#include <qpe/qpeapplication.h> 27#include <qpe/qpeapplication.h>
28#include <qtopia/alarmserver.h> 28#include <qtopia/alarmserver.h>
29#include <qtopia/qcopenvelope_qws.h> 29#include <qtopia/qcopenvelope_qws.h>
30#include <unistd.h> // for sleep 30#include <unistd.h> // for sleep
31#else 31#else
32#include <qmenubar.h> 32#include <qmenubar.h>
33#include <qtoolbar.h> 33#include <qtoolbar.h>
34#include <qapplication.h> 34#include <qapplication.h>
35//#include <resource.h> 35//#include <resource.h>
36 36
37#endif 37#endif
38#include <libkcal/calendarlocal.h> 38#include <libkcal/calendarlocal.h>
39#include <libkcal/todo.h> 39#include <libkcal/todo.h>
40#include <libkcal/phoneformat.h> 40#include <libkcal/phoneformat.h>
41#include <libkdepim/ksyncprofile.h> 41#include <libkdepim/ksyncprofile.h>
42#include <libkdepim/phoneaccess.h> 42#include <libkdepim/phoneaccess.h>
43#include <libkcal/kincidenceformatter.h> 43#include <libkcal/kincidenceformatter.h>
44#include <libkdepim/kpimglobalprefs.h> 44#include <libkdepim/kpimglobalprefs.h>
45 45
46#include "calendarview.h" 46#include "calendarview.h"
47#include "koviewmanager.h" 47#include "koviewmanager.h"
48#include "datenavigator.h" 48#include "datenavigator.h"
49#include "koagendaview.h" 49#include "koagendaview.h"
50#include "koagenda.h" 50#include "koagenda.h"
51#include "kodialogmanager.h" 51#include "kodialogmanager.h"
52#include "kdialogbase.h" 52#include "kdialogbase.h"
53#include "kapplication.h" 53#include "kapplication.h"
54#include "kofilterview.h" 54#include "kofilterview.h"
55#include "kstandarddirs.h" 55#include "kstandarddirs.h"
56#include "koprefs.h" 56#include "koprefs.h"
57#include "kfiledialog.h" 57#include "kfiledialog.h"
58#include "koglobals.h" 58#include "koglobals.h"
59#include "kglobal.h" 59#include "kglobal.h"
60#include "ktoolbar.h" 60#include "ktoolbar.h"
61#include "klocale.h" 61#include "klocale.h"
62#include "kconfig.h" 62#include "kconfig.h"
63#include "externalapphandler.h" 63#include "externalapphandler.h"
64#include <kglobalsettings.h> 64#include <kglobalsettings.h>
65 65
66using namespace KCal; 66using namespace KCal;
67#ifndef _WIN32_ 67#ifndef _WIN32_
68#include <unistd.h> 68#include <unistd.h>
69#else 69#else
70#ifdef _OL_IMPORT_ 70#ifdef _OL_IMPORT_
71#include "koimportoldialog.h" 71#include "koimportoldialog.h"
72#endif 72#endif
73#endif 73#endif
74#include "mainwindow.h" 74#include "mainwindow.h"
75 75
76 76
77class KOex2phonePrefs : public QDialog 77class KOex2phonePrefs : public QDialog
78{ 78{
79 public: 79 public:
80 KOex2phonePrefs( QWidget *parent=0, const char *name=0 ) : 80 KOex2phonePrefs( QWidget *parent=0, const char *name=0 ) :
81 QDialog( parent, name, true ) 81 QDialog( parent, name, true )
82 { 82 {
83 setCaption( i18n("Export to phone options") ); 83 setCaption( i18n("Export to phone options") );
84 QVBoxLayout* lay = new QVBoxLayout( this ); 84 QVBoxLayout* lay = new QVBoxLayout( this );
85 lay->setSpacing( 3 ); 85 lay->setSpacing( 3 );
86 lay->setMargin( 3 ); 86 lay->setMargin( 3 );
87 QLabel *lab; 87 QLabel *lab;
88 lay->addWidget(lab = new QLabel( i18n("Please read Help-Sync Howto\nto know what settings to use."), this ) ); 88 lay->addWidget(lab = new QLabel( i18n("Please read Help-Sync Howto\nto know what settings to use."), this ) );
89 lab->setAlignment (AlignHCenter ); 89 lab->setAlignment (AlignHCenter );
90 QHBox* temphb; 90 QHBox* temphb;
91 temphb = new QHBox( this ); 91 temphb = new QHBox( this );
92 new QLabel( i18n("I/O device: "), temphb ); 92 new QLabel( i18n("I/O device: "), temphb );
93 mPhoneDevice = new QLineEdit( temphb); 93 mPhoneDevice = new QLineEdit( temphb);
94 lay->addWidget( temphb ); 94 lay->addWidget( temphb );
95 temphb = new QHBox( this ); 95 temphb = new QHBox( this );
96 new QLabel( i18n("Connection: "), temphb ); 96 new QLabel( i18n("Connection: "), temphb );
97 mPhoneConnection = new QLineEdit( temphb); 97 mPhoneConnection = new QLineEdit( temphb);
98 lay->addWidget( temphb ); 98 lay->addWidget( temphb );
99 temphb = new QHBox( this ); 99 temphb = new QHBox( this );
100 new QLabel( i18n("Model(opt.): "), temphb ); 100 new QLabel( i18n("Model(opt.): "), temphb );
101 mPhoneModel = new QLineEdit( temphb); 101 mPhoneModel = new QLineEdit( temphb);
102 lay->addWidget( temphb ); 102 lay->addWidget( temphb );
103 mWriteBackFuture= new QCheckBox( i18n("Write back events in future only"), this ); 103 mWriteBackFuture= new QCheckBox( i18n("Write back events in future only"), this );
104 mWriteBackFuture->setChecked( true ); 104 mWriteBackFuture->setChecked( true );
105 lay->addWidget( mWriteBackFuture ); 105 lay->addWidget( mWriteBackFuture );
106 temphb = new QHBox( this ); 106 temphb = new QHBox( this );
107 new QLabel( i18n("Max. weeks in future: ") , temphb ); 107 new QLabel( i18n("Max. weeks in future: ") , temphb );
108 mWriteBackFutureWeeks= new QSpinBox(1,104, 1, temphb); 108 mWriteBackFutureWeeks= new QSpinBox(1,104, 1, temphb);
109 mWriteBackFutureWeeks->setValue( 8 ); 109 mWriteBackFutureWeeks->setValue( 8 );
110 lay->addWidget( temphb ); 110 lay->addWidget( temphb );
111 lay->addWidget(lab = new QLabel( i18n("NOTE: This will remove all old\ntodo/calendar data on phone!"), this ) ); 111 lay->addWidget(lab = new QLabel( i18n("NOTE: This will remove all old\ntodo/calendar data on phone!"), this ) );
112 lab->setAlignment (AlignHCenter ); 112 lab->setAlignment (AlignHCenter );
113 QPushButton * ok = new QPushButton( i18n("Export to mobile phone!"), this ); 113 QPushButton * ok = new QPushButton( i18n("Export to mobile phone!"), this );
114 lay->addWidget( ok ); 114 lay->addWidget( ok );
115 QPushButton * cancel = new QPushButton( i18n("Cancel"), this ); 115 QPushButton * cancel = new QPushButton( i18n("Cancel"), this );
116 lay->addWidget( cancel ); 116 lay->addWidget( cancel );
117 connect ( ok,SIGNAL(clicked() ),this , SLOT ( accept() ) ); 117 connect ( ok,SIGNAL(clicked() ),this , SLOT ( accept() ) );
118 connect (cancel, SIGNAL(clicked() ), this, SLOT ( reject()) ); 118 connect (cancel, SIGNAL(clicked() ), this, SLOT ( reject()) );
119 resize( 220, 240 ); 119 resize( 220, 240 );
120 qApp->processEvents(); 120 qApp->processEvents();
121 int dw = QApplication::desktop()->width(); 121 int dw = QApplication::desktop()->width();
122 int dh = QApplication::desktop()->height(); 122 int dh = QApplication::desktop()->height();
123 move( (dw-width())/2, (dh - height() )/2 ); 123 move( (dw-width())/2, (dh - height() )/2 );
124 } 124 }
125 125
126public: 126public:
127 QLineEdit* mPhoneConnection, *mPhoneDevice, *mPhoneModel; 127 QLineEdit* mPhoneConnection, *mPhoneDevice, *mPhoneModel;
128 QCheckBox* mWriteBackFuture; 128 QCheckBox* mWriteBackFuture;
129 QSpinBox* mWriteBackFutureWeeks; 129 QSpinBox* mWriteBackFutureWeeks;
130}; 130};
131 131
132QPixmap* sgListViewCompletedPix[6];
133
134
132int globalFlagBlockStartup; 135int globalFlagBlockStartup;
133MainWindow::MainWindow( QWidget *parent, const char *name, QString msg) : 136MainWindow::MainWindow( QWidget *parent, const char *name, QString msg) :
134 QMainWindow( parent, name ) 137 QMainWindow( parent, name )
135{ 138{
136 139 sgListViewCompletedPix[5] = &listviewPix;
140 sgListViewCompletedPix[0] = &listviewPix0;
141 sgListViewCompletedPix[1] = &listviewPix20;
142 sgListViewCompletedPix[2] = &listviewPix40;
143 sgListViewCompletedPix[3] = &listviewPix60;
144 sgListViewCompletedPix[4] = &listviewPix80;
145 if ( sgListViewCompletedPix[5]->height() < 5 ) {
146 int size = 12;
147 sgListViewCompletedPix[5]->resize( 11, 11 );
148 sgListViewCompletedPix[5]->fill( Qt::white );
149 QPainter p ( sgListViewCompletedPix[5] );
150 p.drawRect( 0,0,11,11);
151 int half = size/2;
152 int heihei = size/2;
153 int x = 1;
154 p.drawLine ( 2, 5, 4 , 7 ) ;
155 p.drawLine ( 4 , 7 , 8, 3) ;
156 int iii = 0;
157 for ( iii = 0; iii < 5; ++iii ) {
158 sgListViewCompletedPix[iii]->resize( 11, 11 );
159 sgListViewCompletedPix[iii]->fill( Qt::white );
160 QPainter p ( sgListViewCompletedPix[iii] );
161 p.drawRect( 0,0,11,11);
162 if ( iii )
163 p.fillRect( 1,1,iii*2,9,Qt::gray );
164 }
165 }
137 mClosed = false; 166 mClosed = false;
138 //QString confFile = KStandardDirs::appDir() + "config/korganizerrc"; 167 //QString confFile = KStandardDirs::appDir() + "config/korganizerrc";
139 QString confFile = locateLocal("config","korganizerrc"); 168 QString confFile = locateLocal("config","korganizerrc");
140 QFileInfo finf ( confFile ); 169 QFileInfo finf ( confFile );
141 bool showWarning = !finf.exists(); 170 bool showWarning = !finf.exists();
142 setIcon(SmallIcon( "ko24" ) ); 171 setIcon(SmallIcon( "ko24" ) );
143 mBlockAtStartup = true; 172 mBlockAtStartup = true;
144 mFlagKeyPressed = false; 173 mFlagKeyPressed = false;
145 setCaption("KO/Pi"); 174 setCaption("KO/Pi");
146 KOPrefs *p = KOPrefs::instance(); 175 KOPrefs *p = KOPrefs::instance();
147 KPimGlobalPrefs::instance()->setGlobalConfig(); 176 KPimGlobalPrefs::instance()->setGlobalConfig();
148 p->mCurrentDisplayedView = 0; 177 p->mCurrentDisplayedView = 0;
149 if ( p->mHourSize > 22 ) 178 if ( p->mHourSize > 22 )
150 p->mHourSize = 22; 179 p->mHourSize = 22;
151 QMainWindow::ToolBarDock tbd; 180 QMainWindow::ToolBarDock tbd;
152 if ( p->mToolBarHor ) { 181 if ( p->mToolBarHor ) {
153 if ( p->mToolBarUp ) 182 if ( p->mToolBarUp )
154 tbd = Bottom; 183 tbd = Bottom;
155 else 184 else
156 tbd = Top; 185 tbd = Top;
157 } 186 }
158 else { 187 else {
159 if ( p->mToolBarUp ) 188 if ( p->mToolBarUp )
160 tbd = Right; 189 tbd = Right;
161 else 190 else
162 tbd = Left; 191 tbd = Left;
163 } 192 }
164 if ( KOPrefs::instance()->mUseAppColors ) 193 if ( KOPrefs::instance()->mUseAppColors )
165 QApplication::setPalette( QPalette (KOPrefs::instance()->mAppColor1, KOPrefs::instance()->mAppColor2), true ); 194 QApplication::setPalette( QPalette (KOPrefs::instance()->mAppColor1, KOPrefs::instance()->mAppColor2), true );
166 globalFlagBlockStartup = 1; 195 globalFlagBlockStartup = 1;
167 iconToolBar = new QPEToolBar( this ); 196 iconToolBar = new QPEToolBar( this );
168 addToolBar (iconToolBar , tbd ); 197 addToolBar (iconToolBar , tbd );
169 198
170#ifdef DESKTOP_VERSION 199#ifdef DESKTOP_VERSION
171 if ( KOPrefs::instance()->mShowIconFilter ) 200 if ( KOPrefs::instance()->mShowIconFilter )
172#else 201#else
173 if ( KOPrefs::instance()->mShowIconFilter || !p->mShowIconOnetoolbar ) 202 if ( KOPrefs::instance()->mShowIconFilter || !p->mShowIconOnetoolbar )
174#endif 203#endif
175 204
176{ 205{
177 if ( p->mToolBarHorF ) { 206 if ( p->mToolBarHorF ) {
178 if ( p->mToolBarUpF ) 207 if ( p->mToolBarUpF )
179 tbd = Bottom; 208 tbd = Bottom;
180 else 209 else
181 tbd = Top; 210 tbd = Top;
182 } 211 }
183 else { 212 else {
184 if ( p->mToolBarUpF ) 213 if ( p->mToolBarUpF )
185 tbd = Right; 214 tbd = Right;
186 else 215 else
187 tbd = Left; 216 tbd = Left;
188 } 217 }
189 filterToolBar = new QPEToolBar ( this ); 218 filterToolBar = new QPEToolBar ( this );
190 filterMenubar = new QMenuBar( 0 ); 219 filterMenubar = new QMenuBar( 0 );
191 QFontMetrics fm ( filterMenubar->font() ); 220 QFontMetrics fm ( filterMenubar->font() );
192 221
193 filterPopupMenu = new QPopupMenu( this ); 222 filterPopupMenu = new QPopupMenu( this );
194 filterMenubar->insertItem( i18n("No Filter"), filterPopupMenu,0 ); 223 filterMenubar->insertItem( i18n("No Filter"), filterPopupMenu,0 );
195 QString addTest = "A"; 224 QString addTest = "A";
196 filterMenubar->setMinimumWidth( fm.width( i18n("No Filter")+addTest ) ); 225 filterMenubar->setMinimumWidth( fm.width( i18n("No Filter")+addTest ) );
197#ifdef DESKTOP_VERSION 226#ifdef DESKTOP_VERSION
198 addTest = "AAABBBCCCx"; 227 addTest = "AAABBBCCCx";
199#else 228#else
200 addTest = "AAx"; 229 addTest = "AAx";
201#endif 230#endif
202 filterMenubar->setMaximumWidth( fm.width( i18n("No Filter")+addTest ) ); 231 filterMenubar->setMaximumWidth( fm.width( i18n("No Filter")+addTest ) );
203 addToolBar (filterToolBar , tbd ); 232 addToolBar (filterToolBar , tbd );
204 connect ( filterPopupMenu , SIGNAL( activated ( int ) ), this, SLOT (selectFilterPopup( int ) ) ); 233 connect ( filterPopupMenu , SIGNAL( activated ( int ) ), this, SLOT (selectFilterPopup( int ) ) );
205 connect ( filterPopupMenu , SIGNAL( aboutToShow() ), this, SLOT (fillFilterMenuPopup() ) ); 234 connect ( filterPopupMenu , SIGNAL( aboutToShow() ), this, SLOT (fillFilterMenuPopup() ) );
206 if ( !KOPrefs::instance()->mShowIconFilter && !p->mShowIconOnetoolbar ) 235 if ( !KOPrefs::instance()->mShowIconFilter && !p->mShowIconOnetoolbar )
207 filterToolBar->hide(); 236 filterToolBar->hide();
208 } else { 237 } else {
209 filterToolBar = 0; 238 filterToolBar = 0;
210 filterMenubar = 0; 239 filterMenubar = 0;
211 filterPopupMenu = 0; 240 filterPopupMenu = 0;
212 } 241 }
213 if ( p->mShowIconOnetoolbar ) { 242 if ( p->mShowIconOnetoolbar ) {
214 viewToolBar = iconToolBar ; 243 viewToolBar = iconToolBar ;
215 navigatorToolBar = iconToolBar ; 244 navigatorToolBar = iconToolBar ;
216 } else { 245 } else {
217#ifndef DESKTOP_VERSION 246#ifndef DESKTOP_VERSION
218 setToolBarsMovable( false ); 247 setToolBarsMovable( false );
219#endif 248#endif
220 if ( p->mToolBarHorV ) { 249 if ( p->mToolBarHorV ) {
221 if ( p->mToolBarUpV ) 250 if ( p->mToolBarUpV )
222 tbd = Bottom; 251 tbd = Bottom;
223 else 252 else
224 tbd = Top; 253 tbd = Top;
225 } 254 }
226 else { 255 else {
227 if ( p->mToolBarUpV ) 256 if ( p->mToolBarUpV )
228 tbd = Right; 257 tbd = Right;
229 else 258 else
230 tbd = Left; 259 tbd = Left;
231 } 260 }
232 viewToolBar = new QPEToolBar( this ); 261 viewToolBar = new QPEToolBar( this );
233 addToolBar (viewToolBar , tbd ); 262 addToolBar (viewToolBar , tbd );
234 if ( p->mToolBarHorN ) { 263 if ( p->mToolBarHorN ) {
235 if ( p->mToolBarUpN ) 264 if ( p->mToolBarUpN )
236 tbd = Bottom; 265 tbd = Bottom;
237 else 266 else
238 tbd = Top; 267 tbd = Top;
239 } 268 }
240 else { 269 else {
241 if ( p->mToolBarUpN ) 270 if ( p->mToolBarUpN )
242 tbd = Right; 271 tbd = Right;
243 else 272 else
244 tbd = Left; 273 tbd = Left;
245 } 274 }
246 navigatorToolBar = new QPEToolBar( this ); 275 navigatorToolBar = new QPEToolBar( this );
247 addToolBar (navigatorToolBar , tbd ); 276 addToolBar (navigatorToolBar , tbd );
248 } 277 }
249 278
250 279
251 280
252 mCalendarModifiedFlag = false; 281 mCalendarModifiedFlag = false;
253 QLabel* splash = new QLabel(i18n("KO/Pi is starting ... "), this ); 282 QLabel* splash = new QLabel(i18n("KO/Pi is starting ... "), this );
254 splash->setAlignment ( AlignCenter ); 283 splash->setAlignment ( AlignCenter );
255 setCentralWidget( splash ); 284 setCentralWidget( splash );
256#ifndef DESKTOP_VERSION 285#ifndef DESKTOP_VERSION
257 showMaximized(); 286 showMaximized();
258#endif 287#endif
259 288
260 //qDebug("Mainwidget x %d y %d w %d h %d", x(), y(), width(), height ()); 289 //qDebug("Mainwidget x %d y %d w %d h %d", x(), y(), width(), height ());
261 setDefaultPreferences(); 290 setDefaultPreferences();
262 mCalendar = new CalendarLocal(); 291 mCalendar = new CalendarLocal();
263 mView = new CalendarView( mCalendar, this,"mCalendar " ); 292 mView = new CalendarView( mCalendar, this,"mCalendar " );
264 mView->hide(); 293 mView->hide();
265 //mView->resize(splash->size() ); 294 //mView->resize(splash->size() );
266 initActions(); 295 initActions();
267 mSyncManager = new KSyncManager((QWidget*)this, (KSyncInterface*)mView, KSyncManager::KOPI, KOPrefs::instance(), syncMenu); 296 mSyncManager = new KSyncManager((QWidget*)this, (KSyncInterface*)mView, KSyncManager::KOPI, KOPrefs::instance(), syncMenu);
268 mSyncManager->setBlockSave(false); 297 mSyncManager->setBlockSave(false);
269 mView->setSyncManager(mSyncManager); 298 mView->setSyncManager(mSyncManager);
270#ifndef DESKTOP_VERSION 299#ifndef DESKTOP_VERSION
271 iconToolBar->show(); 300 iconToolBar->show();
272 qApp->processEvents(); 301 qApp->processEvents();
273#endif 302#endif
274 //qDebug("Splashwidget x %d y %d w %d h %d", splash-> x(), splash->y(), splash->width(),splash-> height ()); 303 //qDebug("Splashwidget x %d y %d w %d h %d", splash-> x(), splash->y(), splash->width(),splash-> height ());
275 int vh = height() ; 304 int vh = height() ;
276 int vw = width(); 305 int vw = width();
277 //qDebug("Toolbar hei %d ",iconToolBar->height() ); 306 //qDebug("Toolbar hei %d ",iconToolBar->height() );
278 if ( iconToolBar->orientation () == Qt:: Horizontal ) { 307 if ( iconToolBar->orientation () == Qt:: Horizontal ) {
279 vh -= iconToolBar->height(); 308 vh -= iconToolBar->height();
280 } else { 309 } else {
281 vw -= iconToolBar->height(); 310 vw -= iconToolBar->height();
282 } 311 }
283 //mView->setMaximumSize( splash->size() ); 312 //mView->setMaximumSize( splash->size() );
284 //mView->resize( splash->size() ); 313 //mView->resize( splash->size() );
285 //qDebug("MainView x %d y %d w %d h %d", mView->x(),mView-> y(), mView->width(), mView->height ()); 314 //qDebug("MainView x %d y %d w %d h %d", mView->x(),mView-> y(), mView->width(), mView->height ());
286 mView->readSettings(); 315 mView->readSettings();
287 bool newFile = false; 316 bool newFile = false;
288 if( !QFile::exists( defaultFileName() ) ) { 317 if( !QFile::exists( defaultFileName() ) ) {
289 QFileInfo finfo ( defaultFileName() ); 318 QFileInfo finfo ( defaultFileName() );
290 QString oldFile = QDir::convertSeparators( QDir::homeDirPath()+"/Applications/korganizer/mycalendar.ics"); 319 QString oldFile = QDir::convertSeparators( QDir::homeDirPath()+"/Applications/korganizer/mycalendar.ics");
291 QString message = "You are starting KO/Pi for the\nfirst time after updating to a\nversion >= 1.9.1. The location of the\ndefault calendar file has changed.\nA mycalendar.ics file was detected\nat the old location.\nThis file will be loaded now\nand stored at the new location!\n(Config file location has changed, too!)\nPlease read menu Help-What's New!\n"; 320 QString message = "You are starting KO/Pi for the\nfirst time after updating to a\nversion >= 1.9.1. The location of the\ndefault calendar file has changed.\nA mycalendar.ics file was detected\nat the old location.\nThis file will be loaded now\nand stored at the new location!\n(Config file location has changed, too!)\nPlease read menu Help-What's New!\n";
292 finfo.setFile( oldFile ); 321 finfo.setFile( oldFile );
293 if (finfo.exists() ) { 322 if (finfo.exists() ) {
294 KMessageBox::information( this, message); 323 KMessageBox::information( this, message);
295 mView->openCalendar( oldFile ); 324 mView->openCalendar( oldFile );
296 qApp->processEvents(); 325 qApp->processEvents();
297 } else { 326 } else {
298 oldFile = QDir::convertSeparators( QDir::homeDirPath()+"/korganizer/mycalendar.ics"); 327 oldFile = QDir::convertSeparators( QDir::homeDirPath()+"/korganizer/mycalendar.ics");
299 finfo.setFile( oldFile ); 328 finfo.setFile( oldFile );
300 if (finfo.exists() ) { 329 if (finfo.exists() ) {
301 KMessageBox::information( this, message); 330 KMessageBox::information( this, message);
302 mView->openCalendar( oldFile ); 331 mView->openCalendar( oldFile );
303 qApp->processEvents(); 332 qApp->processEvents();
304 } 333 }
305 } 334 }
306 mView->saveCalendar( defaultFileName() ); 335 mView->saveCalendar( defaultFileName() );
307 newFile = true; 336 newFile = true;
308 } 337 }
309 338
310 QTime neededSaveTime = QDateTime::currentDateTime().time(); 339 QTime neededSaveTime = QDateTime::currentDateTime().time();
311 mView->loadCalendars(); 340 mView->loadCalendars();
312 int msNeeded = neededSaveTime.msecsTo( QDateTime::currentDateTime().time() ); 341 int msNeeded = neededSaveTime.msecsTo( QDateTime::currentDateTime().time() );
313 qDebug("KO: Calendar loading time: %d ms",msNeeded ); 342 qDebug("KO: Calendar loading time: %d ms",msNeeded );
314 343
315 if ( KPimGlobalPrefs::instance()->mPreferredLanguage != KOPrefs::instance()->mOldLoadedLanguage ) { 344 if ( KPimGlobalPrefs::instance()->mPreferredLanguage != KOPrefs::instance()->mOldLoadedLanguage ) {
316 KOPrefs::instance()->setAllDefaults(); 345 KOPrefs::instance()->setAllDefaults();
317 int count = mView->addCategories(); 346 int count = mView->addCategories();
318 } 347 }
319 processIncidenceSelection( 0 ); 348 processIncidenceSelection( 0 );
320 connect( mView, SIGNAL( incidenceSelected( Incidence * ) ), 349 connect( mView, SIGNAL( incidenceSelected( Incidence * ) ),
321 SLOT( processIncidenceSelection( Incidence * ) ) ); 350 SLOT( processIncidenceSelection( Incidence * ) ) );
322 connect( mView, SIGNAL( modifiedChanged( bool ) ), 351 connect( mView, SIGNAL( modifiedChanged( bool ) ),
323 SLOT( slotModifiedChanged( bool ) ) ); 352 SLOT( slotModifiedChanged( bool ) ) );
324 353
325 354
326 connect( mView, SIGNAL( tempDisableBR(bool) ), 355 connect( mView, SIGNAL( tempDisableBR(bool) ),
327 SLOT( disableBR(bool) ) ); 356 SLOT( disableBR(bool) ) );
328 connect( &mSaveTimer, SIGNAL( timeout() ), SLOT( save() ) ); 357 connect( &mSaveTimer, SIGNAL( timeout() ), SLOT( save() ) );
diff --git a/korganizer/mainwindow.h b/korganizer/mainwindow.h
index 1105783..9a8bc7f 100644
--- a/korganizer/mainwindow.h
+++ b/korganizer/mainwindow.h
@@ -1,168 +1,169 @@
1#ifndef KORGE_MAINWINDOW_H 1#ifndef KORGE_MAINWINDOW_H
2#define KORGE_MAINWINDOW_H 2#define KORGE_MAINWINDOW_H
3 3
4#include <qmainwindow.h> 4#include <qmainwindow.h>
5#include <qtimer.h> 5#include <qtimer.h>
6#include <qdict.h> 6#include <qdict.h>
7#include <qfile.h> 7#include <qfile.h>
8#include <qmenubar.h> 8#include <qmenubar.h>
9#include <qtextstream.h> 9#include <qtextstream.h>
10#include <qregexp.h> 10#include <qregexp.h>
11 11
12#include <libkcal/incidence.h> 12#include <libkcal/incidence.h>
13#include <ksyncmanager.h> 13#include <ksyncmanager.h>
14#ifndef DESKTOP_VERSION 14#ifndef DESKTOP_VERSION
15#include <qcopchannel_qws.h> 15#include <qcopchannel_qws.h>
16#endif 16#endif
17class QAction; 17class QAction;
18class CalendarView; 18class CalendarView;
19class KSyncProfile; 19class KSyncProfile;
20#ifdef DESKTOP_VERSION 20#ifdef DESKTOP_VERSION
21 21
22#define QPEToolBar QToolBar 22#define QPEToolBar QToolBar
23#define QPEMenuBar QMenuBar 23#define QPEMenuBar QMenuBar
24#endif 24#endif
25class QPEToolBar; 25class QPEToolBar;
26class QPEMenuBar; 26class QPEMenuBar;
27 27
28 28
29namespace KCal { 29namespace KCal {
30class CalendarLocal; 30class CalendarLocal;
31} 31}
32 32
33using namespace KCal; 33using namespace KCal;
34 34
35class MainWindow : public QMainWindow 35class MainWindow : public QMainWindow
36{ 36{
37 Q_OBJECT 37 Q_OBJECT
38 public: 38 public:
39 MainWindow( QWidget *parent = 0, const char *name = 0, QString command = ""); 39 MainWindow( QWidget *parent = 0, const char *name = 0, QString command = "");
40 ~MainWindow(); 40 ~MainWindow();
41 bool beamReceiveEnabled(); 41 bool beamReceiveEnabled();
42 static QString defaultFileName(); 42 static QString defaultFileName();
43 static QString syncFileName(); 43 static QString syncFileName();
44 static QString resourcePath(); 44 static QString resourcePath();
45 public slots: 45 public slots:
46 void setUsesBigPixmaps ( bool ); 46 void setUsesBigPixmaps ( bool );
47 void setCaption ( const QString & ); 47 void setCaption ( const QString & );
48 void updateWeekNum(const KCal::DateList &); 48 void updateWeekNum(const KCal::DateList &);
49 void updateWeek(QDate); 49 void updateWeek(QDate);
50 void updateFilterToolbar(); 50 void updateFilterToolbar();
51 virtual void showMaximized (); 51 virtual void showMaximized ();
52 void configureAgenda( int ); 52 void configureAgenda( int );
53 void recieve( const QCString& msg, const QByteArray& data ); 53 void recieve( const QCString& msg, const QByteArray& data );
54 protected slots: 54 protected slots:
55 void setCaptionToDates(); 55 void setCaptionToDates();
56 void weekAction(); 56 void weekAction();
57 void about(); 57 void about();
58 void licence(); 58 void licence();
59 void faq(); 59 void faq();
60 void usertrans(); 60 void usertrans();
61 void features(); 61 void features();
62 void synchowto(); 62 void synchowto();
63 void storagehowto(); 63 void storagehowto();
64 void timetrackinghowto(); 64 void timetrackinghowto();
65 void kdesynchowto(); 65 void kdesynchowto();
66 void multisynchowto(); 66 void multisynchowto();
67 void whatsNew(); 67 void whatsNew();
68 void keyBindings(); 68 void keyBindings();
69 void aboutAutoSaving();; 69 void aboutAutoSaving();;
70 void aboutKnownBugs(); 70 void aboutKnownBugs();
71 71
72 void processIncidenceSelection( Incidence * ); 72 void processIncidenceSelection( Incidence * );
73 73
74 void importQtopia(); 74 void importQtopia();
75 void importBday(); 75 void importBday();
76 void importOL(); 76 void importOL();
77 void importIcal(); 77 void importIcal();
78 void importFile( QString, bool ); 78 void importFile( QString, bool );
79 void quickImportIcal(); 79 void quickImportIcal();
80 80
81 void slotModifiedChanged( bool ); 81 void slotModifiedChanged( bool );
82 82
83 void save(); 83 void save();
84 void saveStopTimer(); 84 void saveStopTimer();
85 void configureToolBar( int ); 85 void configureToolBar( int );
86 void printSel(); 86 void printSel();
87 void printCal(); 87 void printCal();
88 void printListView(); 88 void printListView();
89 void saveCalendar(); 89 void saveCalendar();
90 void loadCalendar(); 90 void loadCalendar();
91 void exportVCalendar(); 91 void exportVCalendar();
92 void fillFilterMenu(); 92 void fillFilterMenu();
93 void fillFilterMenuTB(); 93 void fillFilterMenuTB();
94 void selectFilter( int ); 94 void selectFilter( int );
95 void fillFilterMenuPopup(); 95 void fillFilterMenuPopup();
96 void selectFilterPopup( int ); 96 void selectFilterPopup( int );
97 void exportToPhone( int ); 97 void exportToPhone( int );
98 void toggleBeamReceive(); 98 void toggleBeamReceive();
99 void disableBR(bool); 99 void disableBR(bool);
100 signals: 100 signals:
101 void selectWeek ( int ); 101 void selectWeek ( int );
102 private slots: 102 private slots:
103 void showConfigureAgenda(); 103 void showConfigureAgenda();
104 void getFile( bool ); 104 void getFile( bool );
105 void syncFileRequest(); 105 void syncFileRequest();
106 106
107 protected: 107 protected:
108 void hideEvent ( QHideEvent * ); 108 void hideEvent ( QHideEvent * );
109 QString sentSyncFile(); 109 QString sentSyncFile();
110 void displayText( QString, QString); 110 void displayText( QString, QString);
111 void enableIncidenceActions( bool ); 111 void enableIncidenceActions( bool );
112 112
113 private: 113 private:
114 bool mBRdisabled; 114 bool mBRdisabled;
115#ifndef DESKTOP_VERSION 115#ifndef DESKTOP_VERSION
116 QCopChannel* infrared; 116 QCopChannel* infrared;
117#endif 117#endif
118 QAction* brAction; 118 QAction* brAction;
119 KSyncManager* mSyncManager; 119 KSyncManager* mSyncManager;
120 bool mClosed; 120 bool mClosed;
121 void saveOnClose(); 121 void saveOnClose();
122 bool mFlagKeyPressed; 122 bool mFlagKeyPressed;
123 bool mBlockAtStartup; 123 bool mBlockAtStartup;
124 QPEToolBar *iconToolBar; 124 QPEToolBar *iconToolBar;
125 QPEToolBar *viewToolBar; 125 QPEToolBar *viewToolBar;
126 QPEToolBar *navigatorToolBar; 126 QPEToolBar *navigatorToolBar;
127 QPEToolBar *filterToolBar; 127 QPEToolBar *filterToolBar;
128 QMenuBar *filterMenubar; 128 QMenuBar *filterMenubar;
129 QPopupMenu * filterPopupMenu; 129 QPopupMenu * filterPopupMenu;
130 void initActions(); 130 void initActions();
131 void setDefaultPreferences(); 131 void setDefaultPreferences();
132 void resizeEvent( QResizeEvent* e); 132 void resizeEvent( QResizeEvent* e);
133 void keyPressEvent ( QKeyEvent * ) ; 133 void keyPressEvent ( QKeyEvent * ) ;
134 void keyReleaseEvent ( QKeyEvent * ) ; 134 void keyReleaseEvent ( QKeyEvent * ) ;
135 QPopupMenu *configureToolBarMenu; 135 QPopupMenu *configureToolBarMenu;
136 QPopupMenu *selectFilterMenu; 136 QPopupMenu *selectFilterMenu;
137 QPopupMenu *selectFilterMenuTB; 137 QPopupMenu *selectFilterMenuTB;
138 QPopupMenu *configureAgendaMenu, *syncMenu; 138 QPopupMenu *configureAgendaMenu, *syncMenu;
139 CalendarLocal *mCalendar; 139 CalendarLocal *mCalendar;
140 CalendarView *mView; 140 CalendarView *mView;
141 QAction *mNewSubTodoAction; 141 QAction *mNewSubTodoAction;
142 QAction *mWeekAction; 142 QAction *mWeekAction;
143 QFont mWeekFont; 143 QFont mWeekFont;
144 QPixmap mWeekPixmap; 144 QPixmap mWeekPixmap;
145 QColor mWeekBgColor; 145 QColor mWeekBgColor;
146 146
147 QAction *mShowAction; 147 QAction *mShowAction;
148 QAction *mEditAction; 148 QAction *mEditAction;
149 QAction *mDeleteAction; 149 QAction *mDeleteAction;
150 QAction *mCloneAction; 150 QAction *mCloneAction;
151 QAction *mMoveAction; 151 QAction *mMoveAction;
152 QAction *mBeamAction; 152 QAction *mBeamAction;
153 QAction *mCancelAction; 153 QAction *mCancelAction;
154 154
155 QAction *mToggleNav; 155 QAction *mToggleNav;
156 QAction *mToggleFilter; 156 QAction *mToggleFilter;
157 QAction *mToggleAllday; 157 QAction *mToggleAllday;
158 QAction *actionFilterMenuTB; 158 QAction *actionFilterMenuTB;
159 159
160 void closeEvent( QCloseEvent* ce ); 160 void closeEvent( QCloseEvent* ce );
161 QTimer mSaveTimer; 161 QTimer mSaveTimer;
162 //bool mBlockSaveFlag; 162 //bool mBlockSaveFlag;
163 bool mCalendarModifiedFlag; 163 bool mCalendarModifiedFlag;
164 QPixmap loadPixmap( QString ); 164 QPixmap loadPixmap( QString );
165 QPixmap listviewPix, listviewPix0, listviewPix20, listviewPix40, listviewPix60, listviewPix80;
165}; 166};
166 167
167 168
168#endif 169#endif