summaryrefslogtreecommitdiffabout
Unidiff
Diffstat (more/less context) (ignore whitespace changes)
-rw-r--r--korganizer/kolistview.cpp7
-rw-r--r--korganizer/mainwindow.cpp13
-rw-r--r--korganizer/mainwindow.h2
3 files changed, 18 insertions, 4 deletions
diff --git a/korganizer/kolistview.cpp b/korganizer/kolistview.cpp
index 5690bdb..5f90dc6 100644
--- a/korganizer/kolistview.cpp
+++ b/korganizer/kolistview.cpp
@@ -1,1004 +1,1007 @@
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]; 70extern QPixmap* sgListViewCompletedPix[6];
71extern QPixmap* sgListViewJournalPix;
71 72
72class KOListViewWhatsThis :public QWhatsThis 73class KOListViewWhatsThis :public QWhatsThis
73{ 74{
74public: 75public:
75 KOListViewWhatsThis( QWidget *wid, KOListView* view ) : QWhatsThis( wid ), _wid(wid),_view (view) { }; 76 KOListViewWhatsThis( QWidget *wid, KOListView* view ) : QWhatsThis( wid ), _wid(wid),_view (view) { };
76 77
77protected: 78protected:
78 virtual QString text( const QPoint& p) 79 virtual QString text( const QPoint& p)
79 { 80 {
80 return _view->getWhatsThisText(p) ; 81 return _view->getWhatsThisText(p) ;
81 } 82 }
82private: 83private:
83 QWidget* _wid; 84 QWidget* _wid;
84 KOListView * _view; 85 KOListView * _view;
85}; 86};
86 87
87 88
88ListItemVisitor::ListItemVisitor(KOListViewItem *item, QDate date ) 89ListItemVisitor::ListItemVisitor(KOListViewItem *item, QDate date )
89{ 90{
90 mItem = item; 91 mItem = item;
91 mDate = date; 92 mDate = date;
92} 93}
93 94
94ListItemVisitor::~ListItemVisitor() 95ListItemVisitor::~ListItemVisitor()
95{ 96{
96} 97}
97 98
98bool ListItemVisitor::visit(Event *e) 99bool ListItemVisitor::visit(Event *e)
99{ 100{
100 bool ok = false; 101 bool ok = false;
101 QString start, end; 102 QString start, end;
102 QDate ds, de; 103 QDate ds, de;
103 if ( e->doesRecur() ) { 104 if ( e->doesRecur() ) {
104 ds = e->getNextOccurence( QDateTime( mDate, QTime(0,0,0)), &ok ).date(); 105 ds = e->getNextOccurence( QDateTime( mDate, QTime(0,0,0)), &ok ).date();
105 if ( ok ) { 106 if ( ok ) {
106 int days = e->dtStart().date().daysTo(e->dtEnd().date() ); 107 int days = e->dtStart().date().daysTo(e->dtEnd().date() );
107 start = KGlobal::locale()->formatDate(ds,true); 108 start = KGlobal::locale()->formatDate(ds,true);
108 de = ds.addDays( days); 109 de = ds.addDays( days);
109 end = KGlobal::locale()->formatDate(de,true); 110 end = KGlobal::locale()->formatDate(de,true);
110 } 111 }
111 112
112 } 113 }
113 if ( ! ok ) { 114 if ( ! ok ) {
114 start =e->dtStartDateStr(); 115 start =e->dtStartDateStr();
115 end = e->dtEndDateStr(); 116 end = e->dtEndDateStr();
116 ds = e->dtStart().date(); 117 ds = e->dtStart().date();
117 de = e->dtEnd().date(); 118 de = e->dtEnd().date();
118 } 119 }
119 mItem->setText(0,e->summary()); 120 mItem->setText(0,e->summary());
120 mItem->setText(1,start); 121 mItem->setText(1,start);
121 if ( e->doesFloat() ) 122 if ( e->doesFloat() )
122 mItem->setText(2,"---"); 123 mItem->setText(2,"---");
123 else 124 else
124 mItem->setText(2,e->dtStartTimeStr()); 125 mItem->setText(2,e->dtStartTimeStr());
125 mItem->setText(3,end); 126 mItem->setText(3,end);
126 if ( e->doesFloat() ) 127 if ( e->doesFloat() )
127 mItem->setText(4,"---"); 128 mItem->setText(4,"---");
128 else 129 else
129 mItem->setText(4,e->dtEndTimeStr()); 130 mItem->setText(4,e->dtEndTimeStr());
130 if ( e->isAlarmEnabled() ) { 131 if ( e->isAlarmEnabled() ) {
131 mItem->setText(5,e->alarms().first()->offsetText() ); 132 mItem->setText(5,e->alarms().first()->offsetText() );
132 } else { 133 } else {
133 mItem->setText(5, i18n("No")); 134 mItem->setText(5, i18n("No"));
134 } 135 }
135 mItem->setText(6, e->recurrence()->recurrenceText()); 136 mItem->setText(6, e->recurrence()->recurrenceText());
136 if( ! e->doesRecur() ) 137 if( ! e->doesRecur() )
137 mItem->setSortKey( 6, "-" ); 138 mItem->setSortKey( 6, "-" );
138 mItem->setText(7,"---"); 139 mItem->setText(7,"---");
139 mItem->setText(8,"---"); 140 mItem->setText(8,"---");
140 mItem->setText(9, e->cancelled() ? i18n("Yes") : i18n("No")); 141 mItem->setText(9, e->cancelled() ? i18n("Yes") : i18n("No"));
141 mItem->setText(10,e->categoriesStr()); 142 mItem->setText(10,e->categoriesStr());
142 mItem->setText(11, KOPrefs::instance()->calName( e->calID() )); 143 mItem->setText(11, KOPrefs::instance()->calName( e->calID() ));
143 mItem->setText(12, KGlobal::locale()->formatDateTime( e->lastModified(), true, true )); 144 mItem->setText(12, KGlobal::locale()->formatDateTime( e->lastModified(), true, true ));
144 145
145 QString key; 146 QString key;
146 QDate d = e->lastModified().date(); 147 QDate d = e->lastModified().date();
147 QTime t = e->lastModified().time(); 148 QTime t = e->lastModified().time();
148 key.sprintf("%04d%02d%02d%02d%02d%02d",d.year(),d.month(),d.day(),t.hour(),t.minute(),t.second() ); 149 key.sprintf("%04d%02d%02d%02d%02d%02d",d.year(),d.month(),d.day(),t.hour(),t.minute(),t.second() );
149 mItem->setSortKey(12,key); 150 mItem->setSortKey(12,key);
150 t = e->doesFloat() ? QTime(0,0) : e->dtStart().time(); 151 t = e->doesFloat() ? QTime(0,0) : e->dtStart().time();
151 key.sprintf("%04d%02d%02d%02d%02d",ds.year(),ds.month(),ds.day(),t.hour(),t.minute()); 152 key.sprintf("%04d%02d%02d%02d%02d",ds.year(),ds.month(),ds.day(),t.hour(),t.minute());
152 mItem->setSortKey(1,key); 153 mItem->setSortKey(1,key);
153 154
154 t = e->doesFloat() ? QTime(0,0) : e->dtEnd().time(); 155 t = e->doesFloat() ? QTime(0,0) : e->dtEnd().time();
155 key.sprintf("%04d%02d%02d%02d%02d",de.year(),de.month(),de.day(),t.hour(),t.minute()); 156 key.sprintf("%04d%02d%02d%02d%02d",de.year(),de.month(),de.day(),t.hour(),t.minute());
156 mItem->setSortKey(3,key); 157 mItem->setSortKey(3,key);
157 return true; 158 return true;
158} 159}
159 160
160bool ListItemVisitor::visit(Todo *t) 161bool ListItemVisitor::visit(Todo *t)
161{ 162{
162 mItem->setText(0,t->summary()); 163 mItem->setText(0,t->summary());
163 if ( t->isCompleted() ) { 164 if ( t->isCompleted() ) {
164 mItem->setSortKey(0,"99"+ t->summary().left(10)); 165 mItem->setSortKey(0,"99"+ t->summary().left(10));
165 } else 166 } else
166 mItem->setSortKey(0,QString::number( t->percentComplete() )+ t->summary().left(10)); 167 mItem->setSortKey(0,QString::number( t->percentComplete()+1 )+ t->summary().left(10));
167 mItem->setPixmap( 0, *(sgListViewCompletedPix[t->percentComplete()/20])); 168 mItem->setPixmap( 0, *(sgListViewCompletedPix[t->percentComplete()/20]));
168 if (t->hasStartDate()) { 169 if (t->hasStartDate()) {
169 mItem->setText(1,t->dtStartDateStr()); 170 mItem->setText(1,t->dtStartDateStr());
170 if (t->doesFloat()) { 171 if (t->doesFloat()) {
171 mItem->setText(2,"---"); 172 mItem->setText(2,"---");
172 } else { 173 } else {
173 mItem->setText(2,t->dtStartTimeStr()); 174 mItem->setText(2,t->dtStartTimeStr());
174 } 175 }
175 } else { 176 } else {
176 mItem->setText(1,"---"); 177 mItem->setText(1,"---");
177 mItem->setText(2,"---"); 178 mItem->setText(2,"---");
178 } 179 }
179 mItem->setText(3,"---"); 180 mItem->setText(3,"---");
180 mItem->setText(4,"---"); 181 mItem->setText(4,"---");
181 if ( t->isAlarmEnabled() ) { 182 if ( t->isAlarmEnabled() ) {
182 mItem->setText(5,t->alarms().first()->offsetText() ); 183 mItem->setText(5,t->alarms().first()->offsetText() );
183 } else { 184 } else {
184 mItem->setText(5, i18n("No")); 185 mItem->setText(5, i18n("No"));
185 } 186 }
186 mItem->setText(6, t->recurrence()->recurrenceText()); 187 mItem->setText(6, t->recurrence()->recurrenceText());
187 if( ! t->doesRecur() ) 188 if( ! t->doesRecur() )
188 mItem->setSortKey( 6, "-" ); 189 mItem->setSortKey( 6, "-" );
189 if (t->hasDueDate()) { 190 if (t->hasDueDate()) {
190 mItem->setText(7,t->dtDueDateStr()); 191 mItem->setText(7,t->dtDueDateStr());
191 if (t->doesFloat()) { 192 if (t->doesFloat()) {
192 mItem->setText(8,"---"); 193 mItem->setText(8,"---");
193 } else { 194 } else {
194 mItem->setText(8,t->dtDueTimeStr()); 195 mItem->setText(8,t->dtDueTimeStr());
195 } 196 }
196 } else { 197 } else {
197 mItem->setText(7,"---"); 198 mItem->setText(7,"---");
198 mItem->setText(8,"---"); 199 mItem->setText(8,"---");
199 } 200 }
200 mItem->setText(9, t->cancelled() ? i18n("Yes") : i18n("No")); 201 mItem->setText(9, t->cancelled() ? i18n("Yes") : i18n("No"));
201 mItem->setText(10,t->categoriesStr()); 202 mItem->setText(10,t->categoriesStr());
202 mItem->setText(11, KOPrefs::instance()->calName( t->calID() )); 203 mItem->setText(11, KOPrefs::instance()->calName( t->calID() ));
203 mItem->setText(12, KGlobal::locale()->formatDateTime( t->lastModified(), true, true )); 204 mItem->setText(12, KGlobal::locale()->formatDateTime( t->lastModified(), true, true ));
204 QString key; 205 QString key;
205 QDate d = t->lastModified().date(); 206 QDate d = t->lastModified().date();
206 QTime tm = t->lastModified().time(); 207 QTime tm = t->lastModified().time();
207 key.sprintf("%04d%02d%02d%02d%02d%02d",d.year(),d.month(),d.day(),tm.hour(),tm.minute(),tm.second() ); 208 key.sprintf("%04d%02d%02d%02d%02d%02d",d.year(),d.month(),d.day(),tm.hour(),tm.minute(),tm.second() );
208 mItem->setSortKey(12,key); 209 mItem->setSortKey(12,key);
209 if (t->hasDueDate()) { 210 if (t->hasDueDate()) {
210 d = t->dtDue().date(); 211 d = t->dtDue().date();
211 tm = t->doesFloat() ? QTime(0,0) : t->dtDue().time(); 212 tm = t->doesFloat() ? QTime(0,0) : t->dtDue().time();
212 key.sprintf("%04d%02d%02d%02d%02d",d.year(),d.month(),d.day(),tm.hour(),tm.minute()); 213 key.sprintf("%04d%02d%02d%02d%02d",d.year(),d.month(),d.day(),tm.hour(),tm.minute());
213 mItem->setSortKey(7,key); 214 mItem->setSortKey(7,key);
214 } 215 }
215 if ( t->hasStartDate() ) { 216 if ( t->hasStartDate() ) {
216 d = t->dtStart().date(); 217 d = t->dtStart().date();
217 tm = t->doesFloat() ? QTime(0,0) : t->dtStart().time(); 218 tm = t->doesFloat() ? QTime(0,0) : t->dtStart().time();
218 key.sprintf("%04d%02d%02d%02d%02d",d.year(),d.month(),d.day(),tm.hour(),tm.minute()); 219 key.sprintf("%04d%02d%02d%02d%02d",d.year(),d.month(),d.day(),tm.hour(),tm.minute());
219 mItem->setSortKey(1,key); 220 mItem->setSortKey(1,key);
220 } 221 }
221 return true; 222 return true;
222} 223}
223 224
224bool ListItemVisitor::visit(Journal * j) 225bool ListItemVisitor::visit(Journal * j)
225{ 226{
226 227
227 QString des; 228 QString des;
229 mItem->setPixmap( 0, *sgListViewJournalPix);
228 if ( !j->summary().isEmpty() ) { 230 if ( !j->summary().isEmpty() ) {
229 des = j->summary(); 231 des = j->summary();
230 } else { 232 } else {
231 des = j->description().left(30); 233 des = j->description().left(30);
232 des = des.simplifyWhiteSpace (); 234 des = des.simplifyWhiteSpace ();
233 des.replace (QRegExp ("\\n"),"" ); 235 des.replace (QRegExp ("\\n"),"" );
234 des.replace (QRegExp ("\\r"),"" ); 236 des.replace (QRegExp ("\\r"),"" );
235 } 237 }
236 mItem->setText(0,i18n("Journal: ")+des.left(25)); 238 mItem->setText(0,des.left(25));
239 mItem->setSortKey(0,"0"+ des.left(25));
237 mItem->setText(1,j->dtStartDateStr()); 240 mItem->setText(1,j->dtStartDateStr());
238 mItem->setText(2,"---"); 241 mItem->setText(2,"---");
239 mItem->setText(3,"---"); 242 mItem->setText(3,"---");
240 mItem->setText(4,"---"); 243 mItem->setText(4,"---");
241 mItem->setText(5,"---"); 244 mItem->setText(5,"---");
242 mItem->setText(6,"---"); 245 mItem->setText(6,"---");
243 mItem->setText(7,j->dtStartDateStr()); 246 mItem->setText(7,j->dtStartDateStr());
244 mItem->setText(8,"---"); 247 mItem->setText(8,"---");
245 mItem->setText(9,"---"); 248 mItem->setText(9,"---");
246 mItem->setText(10,j->categoriesStr()); 249 mItem->setText(10,j->categoriesStr());
247 mItem->setText(11, KOPrefs::instance()->calName( j->calID() )); 250 mItem->setText(11, KOPrefs::instance()->calName( j->calID() ));
248 mItem->setText(12, KGlobal::locale()->formatDateTime( j->lastModified(), true, true )); 251 mItem->setText(12, KGlobal::locale()->formatDateTime( j->lastModified(), true, true ));
249 252
250 QString key; 253 QString key;
251 QDate d = j->lastModified().date(); 254 QDate d = j->lastModified().date();
252 QTime tm = j->lastModified().time(); 255 QTime tm = j->lastModified().time();
253 key.sprintf("%04d%02d%02d%02d%02d%02d",d.year(),d.month(),d.day(),tm.hour(),tm.minute(),tm.second() ); 256 key.sprintf("%04d%02d%02d%02d%02d%02d",d.year(),d.month(),d.day(),tm.hour(),tm.minute(),tm.second() );
254 mItem->setSortKey(12,key); 257 mItem->setSortKey(12,key);
255 d = j->dtStart().date(); 258 d = j->dtStart().date();
256 key.sprintf("%04d%02d%02d",d.year(),d.month(),d.day()); 259 key.sprintf("%04d%02d%02d",d.year(),d.month(),d.day());
257 mItem->setSortKey(1,key); 260 mItem->setSortKey(1,key);
258 mItem->setSortKey(7,key); 261 mItem->setSortKey(7,key);
259 262
260 return true; 263 return true;
261} 264}
262 265
263KOListView::KOListView(Calendar *calendar, QWidget *parent, 266KOListView::KOListView(Calendar *calendar, QWidget *parent,
264 const char *name) 267 const char *name)
265 : KOEventView(calendar, parent, name) 268 : KOEventView(calendar, parent, name)
266{ 269{
267 270
268 mActiveItem = 0; 271 mActiveItem = 0;
269 mForceShowCompletedTodos = false; 272 mForceShowCompletedTodos = false;
270 mListView = new KOListViewListView(this); 273 mListView = new KOListViewListView(this);
271 mListView->addColumn(i18n("Summary")); 274 mListView->addColumn(i18n("Summary"));
272 mListView->addColumn(i18n("Start Date")); 275 mListView->addColumn(i18n("Start Date"));
273 mListView->addColumn(i18n("Start Time")); 276 mListView->addColumn(i18n("Start Time"));
274 mListView->addColumn(i18n("End Date")); 277 mListView->addColumn(i18n("End Date"));
275 mListView->addColumn(i18n("End Time")); 278 mListView->addColumn(i18n("End Time"));
276 mListView->addColumn(i18n("Alarm")); // alarm set? 279 mListView->addColumn(i18n("Alarm")); // alarm set?
277 mListView->addColumn(i18n("Recurs")); // recurs? 280 mListView->addColumn(i18n("Recurs")); // recurs?
278 mListView->addColumn(i18n("Due Date")); 281 mListView->addColumn(i18n("Due Date"));
279 mListView->addColumn(i18n("Due Time")); 282 mListView->addColumn(i18n("Due Time"));
280 mListView->addColumn(i18n("Cancelled")); 283 mListView->addColumn(i18n("Cancelled"));
281 mListView->addColumn(i18n("Categories")); 284 mListView->addColumn(i18n("Categories"));
282 mListView->addColumn(i18n("Calendar")); 285 mListView->addColumn(i18n("Calendar"));
283 mListView->addColumn(i18n("Last Modified")); 286 mListView->addColumn(i18n("Last Modified"));
284 287
285 mListView->setColumnAlignment(0,AlignLeft); 288 mListView->setColumnAlignment(0,AlignLeft);
286 mListView->setColumnAlignment(1,AlignLeft); 289 mListView->setColumnAlignment(1,AlignLeft);
287 mListView->setColumnAlignment(2,AlignHCenter); 290 mListView->setColumnAlignment(2,AlignHCenter);
288 mListView->setColumnAlignment(3,AlignLeft); 291 mListView->setColumnAlignment(3,AlignLeft);
289 mListView->setColumnAlignment(4,AlignHCenter); 292 mListView->setColumnAlignment(4,AlignHCenter);
290 mListView->setColumnAlignment(5,AlignLeft); 293 mListView->setColumnAlignment(5,AlignLeft);
291 mListView->setColumnAlignment(6,AlignLeft); 294 mListView->setColumnAlignment(6,AlignLeft);
292 mListView->setColumnAlignment(7,AlignLeft); 295 mListView->setColumnAlignment(7,AlignLeft);
293 mListView->setColumnAlignment(8,AlignLeft); 296 mListView->setColumnAlignment(8,AlignLeft);
294 mListView->setColumnAlignment(9,AlignLeft); 297 mListView->setColumnAlignment(9,AlignLeft);
295 mListView->setColumnAlignment(10,AlignLeft); 298 mListView->setColumnAlignment(10,AlignLeft);
296 mListView->setColumnAlignment(11,AlignLeft); 299 mListView->setColumnAlignment(11,AlignLeft);
297 mListView->setColumnAlignment(12,AlignLeft); 300 mListView->setColumnAlignment(12,AlignLeft);
298 mKOListViewWhatsThis = new KOListViewWhatsThis(mListView->viewport(),this); 301 mKOListViewWhatsThis = new KOListViewWhatsThis(mListView->viewport(),this);
299 302
300 int iii = 0; 303 int iii = 0;
301 for ( iii = 0; iii< 13 ; ++iii ) 304 for ( iii = 0; iii< 13 ; ++iii )
302 mListView->setColumnWidthMode( iii, QListView::Manual ); 305 mListView->setColumnWidthMode( iii, QListView::Manual );
303 306
304 QBoxLayout *layoutTop = new QVBoxLayout(this); 307 QBoxLayout *layoutTop = new QVBoxLayout(this);
305 layoutTop->addWidget(mListView); 308 layoutTop->addWidget(mListView);
306 mListView->setFont ( KOPrefs::instance()->mListViewFont ); 309 mListView->setFont ( KOPrefs::instance()->mListViewFont );
307 mPopupMenu = eventPopup(); 310 mPopupMenu = eventPopup();
308 QPopupMenu* selPopup = new QPopupMenu ( this ); 311 QPopupMenu* selPopup = new QPopupMenu ( this );
309 mPopupMenu->insertSeparator(); 312 mPopupMenu->insertSeparator();
310 313
311 selPopup->insertItem(i18n("All"),this, 314 selPopup->insertItem(i18n("All"),this,
312 SLOT(allSelection())); 315 SLOT(allSelection()));
313 selPopup->insertItem(i18n("None"),this, 316 selPopup->insertItem(i18n("None"),this,
314 SLOT(clearSelection())); 317 SLOT(clearSelection()));
315 selPopup->insertItem(i18n("Delete selected..."),this, 318 selPopup->insertItem(i18n("Delete selected..."),this,
316 SLOT(deleteAll())); 319 SLOT(deleteAll()));
317 mPopupMenu->insertItem(i18n("Selection"), selPopup ); 320 mPopupMenu->insertItem(i18n("Selection"), selPopup );
318 mPopupMenu->addAdditionalItem(QIconSet(QPixmap()), 321 mPopupMenu->addAdditionalItem(QIconSet(QPixmap()),
319 i18n("Hide all selected"),this, 322 i18n("Hide all selected"),this,
320 SLOT(hideAll()),true); 323 SLOT(hideAll()),true);
321 324
322 selPopup->insertSeparator(); 325 selPopup->insertSeparator();
323 QPopupMenu * exportPO = new QPopupMenu ( this ); 326 QPopupMenu * exportPO = new QPopupMenu ( this );
324 selPopup->insertItem( i18n("Export"), exportPO ); 327 selPopup->insertItem( i18n("Export"), exportPO );
325#ifdef DESKTOP_VERSION 328#ifdef DESKTOP_VERSION
326 mPopupMenu->insertSeparator(); 329 mPopupMenu->insertSeparator();
327 mPopupMenu->addAdditionalItem(QIconSet(QPixmap()), 330 mPopupMenu->addAdditionalItem(QIconSet(QPixmap()),
328 i18n("Print complete list..."),this, 331 i18n("Print complete list..."),this,
329 SLOT(printList()),true); 332 SLOT(printList()),true);
330#endif 333#endif
331 mCalPopup = new QPopupMenu ( this ); 334 mCalPopup = new QPopupMenu ( this );
332 selPopup->insertItem( i18n("Set Calendar"), mCalPopup ); 335 selPopup->insertItem( i18n("Set Calendar"), mCalPopup );
333 336
334 selPopup->insertItem(i18n("Set categories")+"...",this, 337 selPopup->insertItem(i18n("Set categories")+"...",this,
335 SLOT(setCat()) ); 338 SLOT(setCat()) );
336 selPopup->insertItem( i18n("Set alarm..."),this, 339 selPopup->insertItem( i18n("Set alarm..."),this,
337 SLOT(setAlarm())); 340 SLOT(setAlarm()));
338#if 0 341#if 0
339 mPopupMenu->addAdditionalItem(QIconSet(QPixmap()), 342 mPopupMenu->addAdditionalItem(QIconSet(QPixmap()),
340 i18n("Set categories")+"...",this, 343 i18n("Set categories")+"...",this,
341 SLOT(setCat()),true); 344 SLOT(setCat()),true);
342 mPopupMenu->addAdditionalItem(QIconSet(QPixmap()), 345 mPopupMenu->addAdditionalItem(QIconSet(QPixmap()),
343 i18n("Set alarm..."),this, 346 i18n("Set alarm..."),this,
344 SLOT(setAlarm()),true); 347 SLOT(setAlarm()),true);
345#endif 348#endif
346 QObject::connect(mCalPopup,SIGNAL(aboutToShow()),this, 349 QObject::connect(mCalPopup,SIGNAL(aboutToShow()),this,
347 SLOT( populateCalPopup() )); 350 SLOT( populateCalPopup() ));
348 QObject::connect(mCalPopup,SIGNAL(activated( int )),this, 351 QObject::connect(mCalPopup,SIGNAL(activated( int )),this,
349 SLOT( setCalendar( int ) )); 352 SLOT( setCalendar( int ) ));
350 QObject::connect(mPopupMenu,SIGNAL(categoryChanged( Incidence * )),this, 353 QObject::connect(mPopupMenu,SIGNAL(categoryChanged( Incidence * )),this,
351 SLOT( catChanged( Incidence * ) )); 354 SLOT( catChanged( Incidence * ) ));
352 exportPO->insertItem( i18n("As iCal (ics) file..."),this, 355 exportPO->insertItem( i18n("As iCal (ics) file..."),this,
353 SLOT(saveToFile())); 356 SLOT(saveToFile()));
354 exportPO->insertItem( i18n("As vCal (vcs) file..."),this, 357 exportPO->insertItem( i18n("As vCal (vcs) file..."),this,
355 SLOT(saveToFileVCS())); 358 SLOT(saveToFileVCS()));
356 exportPO->insertItem( i18n("Journal/Details..."),this, 359 exportPO->insertItem( i18n("Journal/Details..."),this,
357 SLOT(saveDescriptionToFile())); 360 SLOT(saveDescriptionToFile()));
358 // mPopupMenu->insertSeparator(); 361 // mPopupMenu->insertSeparator();
359 // mPopupMenu->addAdditionalItem(QIconSet(QPixmap()), 362 // mPopupMenu->addAdditionalItem(QIconSet(QPixmap()),
360 // i18n("Add Categ. to selected..."),this, 363 // i18n("Add Categ. to selected..."),this,
361 // SLOT(addCat()),true); 364 // SLOT(addCat()),true);
362 //mPopupMenu->insertSeparator(); 365 //mPopupMenu->insertSeparator();
363#ifndef DESKTOP_VERSION 366#ifndef DESKTOP_VERSION
364 selPopup->insertSeparator(); 367 selPopup->insertSeparator();
365 selPopup->insertItem( i18n("Beam via IR..."),this, 368 selPopup->insertItem( i18n("Beam via IR..."),this,
366 SLOT(beamSelected())); 369 SLOT(beamSelected()));
367#if 0 370#if 0
368 mPopupMenu->addAdditionalItem(QIconSet(QPixmap()), 371 mPopupMenu->addAdditionalItem(QIconSet(QPixmap()),
369 i18n("Beam via IR"),this, 372 i18n("Beam via IR"),this,
370 SLOT(beamSelected()),true); 373 SLOT(beamSelected()),true);
371#endif 374#endif
372#endif 375#endif
373 /* 376 /*
374 mPopupMenu = new QPopupMenu; 377 mPopupMenu = new QPopupMenu;
375 mPopupMenu->insertItem(i18n("Edit Event"), this, 378 mPopupMenu->insertItem(i18n("Edit Event"), this,
376 SLOT (editEvent())); 379 SLOT (editEvent()));
377 mPopupMenu->insertItem(SmallIcon("delete"), i18n("Delete Event"), this, 380 mPopupMenu->insertItem(SmallIcon("delete"), i18n("Delete Event"), this,
378 SLOT (deleteEvent())); 381 SLOT (deleteEvent()));
379 mPopupMenu->insertSeparator(); 382 mPopupMenu->insertSeparator();
380 mPopupMenu->insertItem(i18n("Show Dates"), this, 383 mPopupMenu->insertItem(i18n("Show Dates"), this,
381 SLOT(showDates())); 384 SLOT(showDates()));
382 mPopupMenu->insertItem(i18n("Hide Dates"), this, 385 mPopupMenu->insertItem(i18n("Hide Dates"), this,
383 SLOT(hideDates())); 386 SLOT(hideDates()));
384 */ 387 */
385 QObject::connect(mListView,SIGNAL( newEvent()), 388 QObject::connect(mListView,SIGNAL( newEvent()),
386 this,SIGNAL(signalNewEvent())); 389 this,SIGNAL(signalNewEvent()));
387 QObject::connect(mListView,SIGNAL(doubleClicked(QListViewItem *)), 390 QObject::connect(mListView,SIGNAL(doubleClicked(QListViewItem *)),
388 this,SLOT(defaultItemAction(QListViewItem *))); 391 this,SLOT(defaultItemAction(QListViewItem *)));
389 QObject::connect(mListView,SIGNAL(rightButtonPressed( QListViewItem *, 392 QObject::connect(mListView,SIGNAL(rightButtonPressed( QListViewItem *,
390 const QPoint &, int )), 393 const QPoint &, int )),
391 this,SLOT(popupMenu(QListViewItem *,const QPoint &,int))); 394 this,SLOT(popupMenu(QListViewItem *,const QPoint &,int)));
392 QObject::connect(mListView,SIGNAL(currentChanged(QListViewItem *)), 395 QObject::connect(mListView,SIGNAL(currentChanged(QListViewItem *)),
393 SLOT(processSelectionChange(QListViewItem *))); 396 SLOT(processSelectionChange(QListViewItem *)));
394 QObject::connect(mListView,SIGNAL(showIncidence(Incidence *)), 397 QObject::connect(mListView,SIGNAL(showIncidence(Incidence *)),
395 SIGNAL(showIncidenceSignal(Incidence *)) ); 398 SIGNAL(showIncidenceSignal(Incidence *)) );
396 399
397 readSettings(KOGlobals::config(),"KOListView Layout"); 400 readSettings(KOGlobals::config(),"KOListView Layout");
398} 401}
399 402
400KOListView::~KOListView() 403KOListView::~KOListView()
401{ 404{
402 delete mPopupMenu; 405 delete mPopupMenu;
403#if QT_VERSION >= 0x030000 406#if QT_VERSION >= 0x030000
404 407
405#else 408#else
406 delete mKOListViewWhatsThis; 409 delete mKOListViewWhatsThis;
407#endif 410#endif
408} 411}
409 412
410void KOListView::catChanged( Incidence* inc) 413void KOListView::catChanged( Incidence* inc)
411{ 414{
412 KOListViewItem* item = getItemForEvent(inc); 415 KOListViewItem* item = getItemForEvent(inc);
413 if (item) { 416 if (item) {
414 ListItemVisitor v(item, mStartDate ); 417 ListItemVisitor v(item, mStartDate );
415 inc->accept(v); 418 inc->accept(v);
416 } 419 }
417} 420}
418QString KOListView::getWhatsThisText(QPoint p) 421QString KOListView::getWhatsThisText(QPoint p)
419{ 422{
420 KOListViewItem* item = ( KOListViewItem* ) mListView->itemAt( p ); 423 KOListViewItem* item = ( KOListViewItem* ) mListView->itemAt( p );
421 if ( item ) 424 if ( item )
422 return KIncidenceFormatter::instance()->getFormattedText( item->data(), 425 return KIncidenceFormatter::instance()->getFormattedText( item->data(),
423 KOPrefs::instance()->mWTshowDetails, 426 KOPrefs::instance()->mWTshowDetails,
424 KOPrefs::instance()->mWTshowCreated, 427 KOPrefs::instance()->mWTshowCreated,
425 KOPrefs::instance()->mWTshowChanged); 428 KOPrefs::instance()->mWTshowChanged);
426 return i18n("That is the list view" ); 429 return i18n("That is the list view" );
427 430
428} 431}
429 432
430void KOListView::setCalendar( int c ) 433void KOListView::setCalendar( int c )
431{ 434{
432 int result = QMessageBox::warning( this, i18n("KO/Pi: Information!"), 435 int result = QMessageBox::warning( this, i18n("KO/Pi: Information!"),
433 i18n("This adds the selected\nitems to the calendar\n%1\nand removes them from\ntheir current calendar!").arg( KOPrefs::instance()->calName( c ) ), 436 i18n("This adds the selected\nitems to the calendar\n%1\nand removes them from\ntheir current calendar!").arg( KOPrefs::instance()->calName( c ) ),
434 i18n("Continue"), i18n("Cancel"), 0, 437 i18n("Continue"), i18n("Cancel"), 0,
435 0, 1 ); 438 0, 1 );
436 if ( result != 0 ) { 439 if ( result != 0 ) {
437 return; 440 return;
438 } 441 }
439 442
440 QPtrList<Incidence> delSel = getSelectedIncidences() ; 443 QPtrList<Incidence> delSel = getSelectedIncidences() ;
441 int icount = delSel.count(); 444 int icount = delSel.count();
442 if ( icount ) { 445 if ( icount ) {
443 Incidence *incidence = delSel.first(); 446 Incidence *incidence = delSel.first();
444 while ( incidence ) { 447 while ( incidence ) {
445 incidence->setCalID( c ); 448 incidence->setCalID( c );
446 KOListViewItem * item = getItemForEvent( incidence ); 449 KOListViewItem * item = getItemForEvent( incidence );
447 if ( item ) { 450 if ( item ) {
448 ListItemVisitor v(item, mStartDate ); 451 ListItemVisitor v(item, mStartDate );
449 incidence->accept(v); 452 incidence->accept(v);
450 } 453 }
451 incidence = delSel.next(); 454 incidence = delSel.next();
452 } 455 }
453 } 456 }
454 QPtrList<KopiCalendarFile> calendars = KOPrefs::instance()->mCalendars; 457 QPtrList<KopiCalendarFile> calendars = KOPrefs::instance()->mCalendars;
455 KopiCalendarFile * cal = calendars.first(); 458 KopiCalendarFile * cal = calendars.first();
456 while ( cal ) { 459 while ( cal ) {
457 mCalendar->setCalendarEnabled( cal->mCalNumber,cal->isEnabled ); 460 mCalendar->setCalendarEnabled( cal->mCalNumber,cal->isEnabled );
458 mCalendar->setAlarmEnabled( cal->mCalNumber, cal->isAlarmEnabled ); 461 mCalendar->setAlarmEnabled( cal->mCalNumber, cal->isAlarmEnabled );
459 mCalendar->setReadOnly( cal->mCalNumber, cal->isReadOnly ); 462 mCalendar->setReadOnly( cal->mCalNumber, cal->isReadOnly );
460 if ( cal->isStandard ) 463 if ( cal->isStandard )
461 mCalendar->setDefaultCalendar( cal->mCalNumber ); 464 mCalendar->setDefaultCalendar( cal->mCalNumber );
462 cal = calendars.next(); 465 cal = calendars.next();
463 } 466 }
464 mCalendar->setSyncEventsReadOnly(); 467 mCalendar->setSyncEventsReadOnly();
465 mCalendar->reInitAlarmSettings(); 468 mCalendar->reInitAlarmSettings();
466 469
467} 470}
468void KOListView::populateCalPopup() 471void KOListView::populateCalPopup()
469{ 472{
470 mCalPopup->clear(); 473 mCalPopup->clear();
471 KopiCalendarFile * kkf = KOPrefs::instance()->mCalendars.first(); 474 KopiCalendarFile * kkf = KOPrefs::instance()->mCalendars.first();
472 while ( kkf ) { 475 while ( kkf ) {
473 int index = mCalPopup->insertItem( kkf->mName+"...", kkf->mCalNumber); 476 int index = mCalPopup->insertItem( kkf->mName+"...", kkf->mCalNumber);
474 if ( kkf->mErrorOnLoad || kkf->isReadOnly ) 477 if ( kkf->mErrorOnLoad || kkf->isReadOnly )
475 mCalPopup->setItemEnabled( index, false ); 478 mCalPopup->setItemEnabled( index, false );
476 kkf = KOPrefs::instance()->mCalendars.next(); 479 kkf = KOPrefs::instance()->mCalendars.next();
477 } 480 }
478} 481}
479void KOListView::updateList() 482void KOListView::updateList()
480{ 483{
481 // qDebug(" KOListView::updateList() "); 484 // qDebug(" KOListView::updateList() ");
482 485
483} 486}
484 487
485void KOListView::clearList() 488void KOListView::clearList()
486{ 489{
487 clear (); 490 clear ();
488} 491}
489 492
490void KOListView::setCat() 493void KOListView::setCat()
491{ 494{
492 495
493 bool set = true; 496 bool set = true;
494 int result = KMessageBox::warningYesNoCancel(this, 497 int result = KMessageBox::warningYesNoCancel(this,
495 i18n("Do you want to <b>add</b> categories to the selected items or <b>reset</b> the list (i.e. remove current categories)?"), 498 i18n("Do you want to <b>add</b> categories to the selected items or <b>reset</b> the list (i.e. remove current categories)?"),
496 i18n("Set categories"), 499 i18n("Set categories"),
497 i18n("Add"), 500 i18n("Add"),
498 i18n("Reset")); 501 i18n("Reset"));
499 if (result == KMessageBox::Cancel) return; 502 if (result == KMessageBox::Cancel) return;
500 if (result == KMessageBox::Yes) set = false; 503 if (result == KMessageBox::Yes) set = false;
501 setCategories( set ); 504 setCategories( set );
502} 505}
503 506
504void KOListView::setAlarm() 507void KOListView::setAlarm()
505{ 508{
506 KOAlarmPrefs kap( this); 509 KOAlarmPrefs kap( this);
507 if ( !kap.exec() ) 510 if ( !kap.exec() )
508 return; 511 return;
509 QPtrList<Incidence> delSel = getSelectedIncidences( true, true, false, true ); // no journals, only due todos 512 QPtrList<Incidence> delSel = getSelectedIncidences( true, true, false, true ); // no journals, only due todos
510 Incidence* inc = delSel.first(); 513 Incidence* inc = delSel.first();
511 int count = 0; 514 int count = 0;
512 while ( inc ) { 515 while ( inc ) {
513 ++count; 516 ++count;
514 if (kap.mAlarmButton->isChecked()) { 517 if (kap.mAlarmButton->isChecked()) {
515 if (inc->alarms().count() == 0) 518 if (inc->alarms().count() == 0)
516 inc->newAlarm(); 519 inc->newAlarm();
517 QPtrList<Alarm> alarms = inc->alarms(); 520 QPtrList<Alarm> alarms = inc->alarms();
518 Alarm *alarm; 521 Alarm *alarm;
519 for (alarm = alarms.first(); alarm; alarm = alarms.next() ) { 522 for (alarm = alarms.first(); alarm; alarm = alarms.next() ) {
520 alarm->setEnabled(true); 523 alarm->setEnabled(true);
521 int j = kap.mAlarmTimeEdit->value()* -60; 524 int j = kap.mAlarmTimeEdit->value()* -60;
522 if (kap.mAlarmIncrCombo->currentItem() == 1) 525 if (kap.mAlarmIncrCombo->currentItem() == 1)
523 j = j * 60; 526 j = j * 60;
524 else if (kap.mAlarmIncrCombo->currentItem() == 2) 527 else if (kap.mAlarmIncrCombo->currentItem() == 2)
525 j = j * (60 * 24); 528 j = j * (60 * 24);
526 alarm->setStartOffset( j ); 529 alarm->setStartOffset( j );
527 530
528 if (!kap.mAlarmProgram.isEmpty() && kap.mAlarmProgramButton->isOn()) { 531 if (!kap.mAlarmProgram.isEmpty() && kap.mAlarmProgramButton->isOn()) {
529 alarm->setProcedureAlarm(kap.mAlarmProgram); 532 alarm->setProcedureAlarm(kap.mAlarmProgram);
530 } 533 }
531 else if (!kap.mAlarmSound.isEmpty() && kap.mAlarmSoundButton->isOn()) 534 else if (!kap.mAlarmSound.isEmpty() && kap.mAlarmSoundButton->isOn())
532 alarm->setAudioAlarm(kap.mAlarmSound); 535 alarm->setAudioAlarm(kap.mAlarmSound);
533 else 536 else
534 alarm->setType(Alarm::Invalid); 537 alarm->setType(Alarm::Invalid);
535 //alarm->setAudioAlarm("default"); 538 //alarm->setAudioAlarm("default");
536 // TODO: Deal with multiple alarms 539 // TODO: Deal with multiple alarms
537 break; // For now, stop after the first alarm 540 break; // For now, stop after the first alarm
538 } 541 }
539 } else { 542 } else {
540 Alarm* alarm = inc->alarms().first(); 543 Alarm* alarm = inc->alarms().first();
541 if ( alarm ) { 544 if ( alarm ) {
542 alarm->setEnabled(false); 545 alarm->setEnabled(false);
543 alarm->setType(Alarm::Invalid); 546 alarm->setType(Alarm::Invalid);
544 } 547 }
545 } 548 }
546 KOListViewItem* item = getItemForEvent(inc); 549 KOListViewItem* item = getItemForEvent(inc);
547 if (item) { 550 if (item) {
548 ListItemVisitor v(item, mStartDate ); 551 ListItemVisitor v(item, mStartDate );
549 inc->accept(v); 552 inc->accept(v);
550 } 553 }
551 inc = delSel.next(); 554 inc = delSel.next();
552 } 555 }
553 topLevelWidget()->setCaption( i18n("Changed alarm for %1 items").arg( count ) ); 556 topLevelWidget()->setCaption( i18n("Changed alarm for %1 items").arg( count ) );
554 qDebug("KO: Set alarm for %d items", count); 557 qDebug("KO: Set alarm for %d items", count);
555 calendar()->reInitAlarmSettings(); 558 calendar()->reInitAlarmSettings();
556 QTimer::singleShot( 1, this, SLOT ( resetFocus() ) ); 559 QTimer::singleShot( 1, this, SLOT ( resetFocus() ) );
557} 560}
558void KOListView::setCategories( bool removeOld ) 561void KOListView::setCategories( bool removeOld )
559{ 562{
560 563
561 KPIM::CategorySelectDialog* csd = new KPIM::CategorySelectDialog( KOPrefs::instance(), 0 ); 564 KPIM::CategorySelectDialog* csd = new KPIM::CategorySelectDialog( KOPrefs::instance(), 0 );
562 csd->setColorEnabled(); 565 csd->setColorEnabled();
563 if (! csd->exec()) { 566 if (! csd->exec()) {
564 delete csd; 567 delete csd;
565 return; 568 return;
566 } 569 }
567 QStringList catList = csd->selectedCategories(); 570 QStringList catList = csd->selectedCategories();
568 delete csd; 571 delete csd;
569 QPtrList<Incidence> delSel = getSelectedIncidences(); // all inc allowed; 572 QPtrList<Incidence> delSel = getSelectedIncidences(); // all inc allowed;
570 Incidence* inc = delSel.first(); 573 Incidence* inc = delSel.first();
571 while ( inc ) { 574 while ( inc ) {
572 if ( removeOld ) { 575 if ( removeOld ) {
573 inc->setCategories( catList, false ); 576 inc->setCategories( catList, false );
574 } else { 577 } else {
575 inc->addCategories( catList, false ); 578 inc->addCategories( catList, false );
576 } 579 }
577 KOListViewItem* item = getItemForEvent(inc); 580 KOListViewItem* item = getItemForEvent(inc);
578 if (item) { 581 if (item) {
579 ListItemVisitor v(item, mStartDate ); 582 ListItemVisitor v(item, mStartDate );
580 inc->accept(v); 583 inc->accept(v);
581 } 584 }
582 inc = delSel.next(); 585 inc = delSel.next();
583 } 586 }
584 QTimer::singleShot( 1, this, SLOT ( resetFocus() ) ); 587 QTimer::singleShot( 1, this, SLOT ( resetFocus() ) );
585} 588}
586 589
587void KOListView::beamSelected() 590void KOListView::beamSelected()
588{ 591{
589 QPtrList<Incidence> delSel = getSelectedIncidences() ; 592 QPtrList<Incidence> delSel = getSelectedIncidences() ;
590 if ( delSel.count() ) 593 if ( delSel.count() )
591 emit beamIncidenceList( delSel ); 594 emit beamIncidenceList( delSel );
592} 595}
593 596
594void KOListView::saveDescriptionToFile() 597void KOListView::saveDescriptionToFile()
595{ 598{
596 599
597 int result = QMessageBox::warning( this, i18n("KO/Pi: Information!"), 600 int result = QMessageBox::warning( this, i18n("KO/Pi: Information!"),
598 i18n("This saves the text/details of selected\nJournals and Events/Todos\nto a text file."), 601 i18n("This saves the text/details of selected\nJournals and Events/Todos\nto a text file."),
599 i18n("Continue"), i18n("Cancel"), 0, 602 i18n("Continue"), i18n("Cancel"), 0,
600 0, 1 ); 603 0, 1 );
601 if ( result != 0 ) { 604 if ( result != 0 ) {
602 return; 605 return;
603 } 606 }
604 QPtrList<Incidence> delSel = getSelectedIncidences() ; 607 QPtrList<Incidence> delSel = getSelectedIncidences() ;
605 int icount = delSel.count(); 608 int icount = delSel.count();
606 if ( icount ) { 609 if ( icount ) {
607 QString fn = KOPrefs::instance()->mLastSaveFile; 610 QString fn = KOPrefs::instance()->mLastSaveFile;
608 fn = KFileDialog::getSaveFileName( fn, i18n("Save filename"), this ); 611 fn = KFileDialog::getSaveFileName( fn, i18n("Save filename"), this );
609 612
610 if ( fn == "" ) 613 if ( fn == "" )
611 return; 614 return;
612 QFileInfo info; 615 QFileInfo info;
613 info.setFile( fn ); 616 info.setFile( fn );
614 QString mes; 617 QString mes;
615 bool createbup = true; 618 bool createbup = true;
616 if ( info. exists() ) { 619 if ( info. exists() ) {
617 mes = i18n("File already exists!\nOld file from:\n%1\nOverwrite?\n").arg (KGlobal::locale()->formatDateTime(info.lastModified (), true, false ) ); 620 mes = i18n("File already exists!\nOld file from:\n%1\nOverwrite?\n").arg (KGlobal::locale()->formatDateTime(info.lastModified (), true, false ) );
618 int result = QMessageBox::warning( this, i18n("KO/Pi: Warning!"),mes, 621 int result = QMessageBox::warning( this, i18n("KO/Pi: Warning!"),mes,
619 i18n("Overwrite!"), i18n("Cancel"), 0, 622 i18n("Overwrite!"), i18n("Cancel"), 0,
620 0, 1 ); 623 0, 1 );
621 if ( result != 0 ) { 624 if ( result != 0 ) {
622 createbup = false; 625 createbup = false;
623 } 626 }
624 } 627 }
625 if ( createbup ) { 628 if ( createbup ) {
626 QString text = i18n("KO/Pi Description/Journal save file.\nSave date: ") + 629 QString text = i18n("KO/Pi Description/Journal save file.\nSave date: ") +
627 KGlobal::locale()->formatDateTime(QDateTime::currentDateTime(), false); 630 KGlobal::locale()->formatDateTime(QDateTime::currentDateTime(), false);
628 Incidence *incidence = delSel.first(); 631 Incidence *incidence = delSel.first();
629 icount = 0; 632 icount = 0;
630 while ( incidence ) { 633 while ( incidence ) {
631 if ( incidence->typeID() == journalID ) { 634 if ( incidence->typeID() == journalID ) {
632 text += "\n************************************\n"; 635 text += "\n************************************\n";
633 if ( !incidence->summary().isEmpty() ) 636 if ( !incidence->summary().isEmpty() )
634 text += i18n("Journal: %1 from ").arg( incidence->summary() ) +incidence->dtStartDateStr( false ); 637 text += i18n("Journal: %1 from ").arg( incidence->summary() ) +incidence->dtStartDateStr( false );
635 else 638 else
636 text += i18n("Journal from: ") +incidence->dtStartDateStr( false ); 639 text += i18n("Journal from: ") +incidence->dtStartDateStr( false );
637 if ( !incidence->location().isEmpty() ) 640 if ( !incidence->location().isEmpty() )
638 text +="\n(" + i18n("Location: ") + incidence->location()+ ")"; 641 text +="\n(" + i18n("Location: ") + incidence->location()+ ")";
639 text +="\n" + i18n("Last modified: ") +KGlobal::locale()->formatDateTime(incidence->lastModified(), false); 642 text +="\n" + i18n("Last modified: ") +KGlobal::locale()->formatDateTime(incidence->lastModified(), false);
640 text +="\n" + i18n("Description: ") + "\n"+ incidence->description(); 643 text +="\n" + i18n("Description: ") + "\n"+ incidence->description();
641 ++icount; 644 ++icount;
642 645
643 } else { 646 } else {
644 if ( !incidence->description().isEmpty() ) { 647 if ( !incidence->description().isEmpty() ) {
645 text += "\n************************************\n"; 648 text += "\n************************************\n";
646 if ( incidence->typeID() == todoID ) 649 if ( incidence->typeID() == todoID )
647 text += i18n("To-Do: "); 650 text += i18n("To-Do: ");
648 text += incidence->summary(); 651 text += incidence->summary();
649 if ( !incidence->location().isEmpty() ) 652 if ( !incidence->location().isEmpty() )
650 text +="\n(" + i18n("Location: ") + incidence->location()+ ")"; 653 text +="\n(" + i18n("Location: ") + incidence->location()+ ")";
651 if ( incidence->hasStartDate() ) 654 if ( incidence->hasStartDate() )
652 text +="\n"+ i18n("Start Date: ") + incidence->dtStartStr( false ); 655 text +="\n"+ i18n("Start Date: ") + incidence->dtStartStr( false );
653 text +="\n"+ i18n("Last modified: ") +KGlobal::locale()->formatDateTime(incidence->lastModified(), false); 656 text +="\n"+ i18n("Last modified: ") +KGlobal::locale()->formatDateTime(incidence->lastModified(), false);
654 text += "\n" + i18n("Description: ") + "\n" + incidence->description(); 657 text += "\n" + i18n("Description: ") + "\n" + incidence->description();
655 ++icount; 658 ++icount;
656 659
657 } 660 }
658 } 661 }
659 incidence = delSel.next(); 662 incidence = delSel.next();
660 } 663 }
661 QFile file( fn ); 664 QFile file( fn );
662 if (!file.open( IO_WriteOnly ) ) { 665 if (!file.open( IO_WriteOnly ) ) {
663 topLevelWidget()->setCaption(i18n("File open error - nothing saved!") ); 666 topLevelWidget()->setCaption(i18n("File open error - nothing saved!") );
664 return; 667 return;
665 } 668 }
666 QTextStream ts( &file ); 669 QTextStream ts( &file );
667 ts << text; 670 ts << text;
668 file.close(); 671 file.close();
669 //qDebug("%s ", text.latin1()); 672 //qDebug("%s ", text.latin1());
670 mes = i18n("KO/Pi:Saved %1 descriptions/journals").arg(icount ); 673 mes = i18n("KO/Pi:Saved %1 descriptions/journals").arg(icount );
671 KOPrefs::instance()->mLastSaveFile = fn; 674 KOPrefs::instance()->mLastSaveFile = fn;
672 topLevelWidget()->setCaption(mes); 675 topLevelWidget()->setCaption(mes);
673 } 676 }
674 } 677 }
675} 678}
676void KOListView::saveToFileVCS() 679void KOListView::saveToFileVCS()
677{ 680{
678 writeToFile( false ); 681 writeToFile( false );
679} 682}
680void KOListView::saveToFile() 683void KOListView::saveToFile()
681{ 684{
682 writeToFile( true ); 685 writeToFile( true );
683} 686}
684QPtrList<Incidence> KOListView::getSelectedIncidences( bool includeEvents, bool includeTodos, bool includeJournals, bool onlyDueTodos ) 687QPtrList<Incidence> KOListView::getSelectedIncidences( bool includeEvents, bool includeTodos, bool includeJournals, bool onlyDueTodos )
685{ 688{
686 QPtrList<Incidence> delSel ; 689 QPtrList<Incidence> delSel ;
687 bool addSubTodos = false; 690 bool addSubTodos = false;
688 bool askSubTodos = true; 691 bool askSubTodos = true;
689 QListViewItem *item = mListView->firstChild (); 692 QListViewItem *item = mListView->firstChild ();
690 while ( item ) { 693 while ( item ) {
691 if ( item->isSelected() ) { 694 if ( item->isSelected() ) {
692 Incidence* inc = ((KOListViewItem *)item)->data(); 695 Incidence* inc = ((KOListViewItem *)item)->data();
693 if ( ( addSubTodos && delSel.findRef( inc ) == -1) || !addSubTodos ) { 696 if ( ( addSubTodos && delSel.findRef( inc ) == -1) || !addSubTodos ) {
694 if ( (inc->typeID() == todoID && includeTodos) || 697 if ( (inc->typeID() == todoID && includeTodos) ||
695 (inc->typeID() == eventID && includeEvents) || 698 (inc->typeID() == eventID && includeEvents) ||
696 (inc->typeID() == journalID && includeJournals) ) { 699 (inc->typeID() == journalID && includeJournals) ) {
697 if ( inc->typeID() == todoID && onlyDueTodos ) { 700 if ( inc->typeID() == todoID && onlyDueTodos ) {
698 if ( ((Todo*)inc)->hasDueDate() ) 701 if ( ((Todo*)inc)->hasDueDate() )
699 delSel.append( inc ); 702 delSel.append( inc );
700 } else 703 } else
701 delSel.append( inc ); 704 delSel.append( inc );
702 705
703 } 706 }
704 } 707 }
705 if ( inc->typeID() == todoID ) { 708 if ( inc->typeID() == todoID ) {
706 Todo * todo = (Todo*) inc; 709 Todo * todo = (Todo*) inc;
707 if ( todo->relations().count() ) { 710 if ( todo->relations().count() ) {
708 if ( askSubTodos ) { 711 if ( askSubTodos ) {
709 int result = KMessageBox::warningYesNoCancel(this, 712 int result = KMessageBox::warningYesNoCancel(this,
710 i18n("One (or more) selected\ntodo has subtodos!\nDo you want to select\nall subtodos of all\nselected todos as well?"), 713 i18n("One (or more) selected\ntodo has subtodos!\nDo you want to select\nall subtodos of all\nselected todos as well?"),
711 i18n("Todo has subtodos"), 714 i18n("Todo has subtodos"),
712 i18n("Yes"), 715 i18n("Yes"),
713 i18n("No")); 716 i18n("No"));
714 if ( result == KMessageBox::Cancel ) { 717 if ( result == KMessageBox::Cancel ) {
715 delSel.clear(); 718 delSel.clear();
716 return delSel; 719 return delSel;
717 } 720 }
718 if (result == KMessageBox::Yes) 721 if (result == KMessageBox::Yes)
719 addSubTodos = true; 722 addSubTodos = true;
720 askSubTodos = false; 723 askSubTodos = false;
721 } 724 }
722 if ( addSubTodos ) { 725 if ( addSubTodos ) {
723 QPtrList<Incidence> tempSel ; 726 QPtrList<Incidence> tempSel ;
724 inc->addRelationsToList( &tempSel ); 727 inc->addRelationsToList( &tempSel );
725 Incidence* tempinc = tempSel.first(); 728 Incidence* tempinc = tempSel.first();
726 while ( tempinc ) { 729 while ( tempinc ) {
727 if ( delSel.findRef( tempinc ) == -1 ) { 730 if ( delSel.findRef( tempinc ) == -1 ) {
728 if ( tempinc->typeID() == todoID && onlyDueTodos ) { 731 if ( tempinc->typeID() == todoID && onlyDueTodos ) {
729 if ( ((Todo*)tempinc)->hasDueDate() ) 732 if ( ((Todo*)tempinc)->hasDueDate() )
730 delSel.append( tempinc ); 733 delSel.append( tempinc );
731 } else 734 } else
732 delSel.append( tempinc ); 735 delSel.append( tempinc );
733 } 736 }
734 tempinc = tempSel.next(); 737 tempinc = tempSel.next();
735 } 738 }
736 } 739 }
737 } 740 }
738 } 741 }
739 } 742 }
740 item = item->nextSibling(); 743 item = item->nextSibling();
741 } 744 }
742 return delSel; 745 return delSel;
743} 746}
744 747
745void KOListView::writeToFile( bool iCal ) 748void KOListView::writeToFile( bool iCal )
746{ 749{
747 QPtrList<Incidence> delSel = getSelectedIncidences(); // all inc allowed; 750 QPtrList<Incidence> delSel = getSelectedIncidences(); // all inc allowed;
748 if ( !iCal ) { 751 if ( !iCal ) {
749 bool journal = false; 752 bool journal = false;
750 Incidence *incidence = delSel.first(); 753 Incidence *incidence = delSel.first();
751 while ( incidence ) { 754 while ( incidence ) {
752 if ( incidence->typeID() == journalID ) { 755 if ( incidence->typeID() == journalID ) {
753 journal = true; 756 journal = true;
754 break; 757 break;
755 } 758 }
756 incidence = delSel.next(); 759 incidence = delSel.next();
757 } 760 }
758 if ( journal ) { 761 if ( journal ) {
759 int result = KMessageBox::warningContinueCancel(this, 762 int result = KMessageBox::warningContinueCancel(this,
760 i18n("The journal entries can not be\nexported to a vCalendar file."), 763 i18n("The journal entries can not be\nexported to a vCalendar file."),
761 i18n("Data Loss Warning"),i18n("Proceed"),i18n("Cancel"), 764 i18n("Data Loss Warning"),i18n("Proceed"),i18n("Cancel"),
762 true); 765 true);
763 if (result != KMessageBox::Continue) return; 766 if (result != KMessageBox::Continue) return;
764 } 767 }
765 } 768 }
766 if ( delSel.count() ) { 769 if ( delSel.count() ) {
767 QString fn = KOPrefs::instance()->mLastSaveFile; 770 QString fn = KOPrefs::instance()->mLastSaveFile;
768 QString extension; 771 QString extension;
769 if ( iCal ) { 772 if ( iCal ) {
770 if ( fn.right( 4 ).lower() == ".vcs" ) { 773 if ( fn.right( 4 ).lower() == ".vcs" ) {
771 fn = fn.left( fn.length() -3) + "ics"; 774 fn = fn.left( fn.length() -3) + "ics";
772 } 775 }
773 } else { 776 } else {
774 if ( fn.right( 4 ).lower() == ".ics" ) { 777 if ( fn.right( 4 ).lower() == ".ics" ) {
775 fn = fn.left( fn.length() -3) + "vcs"; 778 fn = fn.left( fn.length() -3) + "vcs";
776 } 779 }
777 } 780 }
778 fn = KFileDialog::getSaveFileName( fn, i18n("Save filename"), this ); 781 fn = KFileDialog::getSaveFileName( fn, i18n("Save filename"), this );
779 782
780 if ( fn == "" ) 783 if ( fn == "" )
781 return; 784 return;
782 QFileInfo info; 785 QFileInfo info;
783 info.setFile( fn ); 786 info.setFile( fn );
784 QString mes; 787 QString mes;
785 bool createbup = true; 788 bool createbup = true;
786 if ( info. exists() ) { 789 if ( info. exists() ) {
787 mes = i18n("File already exists!\nOld file from:\n%1\nOverwrite?\n").arg (KGlobal::locale()->formatDateTime(info.lastModified (), true, false ) ); 790 mes = i18n("File already exists!\nOld file from:\n%1\nOverwrite?\n").arg (KGlobal::locale()->formatDateTime(info.lastModified (), true, false ) );
788 int result = QMessageBox::warning( this, i18n("KO/Pi: Warning!"),mes, 791 int result = QMessageBox::warning( this, i18n("KO/Pi: Warning!"),mes,
789 i18n("Overwrite!"), i18n("Cancel"), 0, 792 i18n("Overwrite!"), i18n("Cancel"), 0,
790 0, 1 ); 793 0, 1 );
791 if ( result != 0 ) { 794 if ( result != 0 ) {
792 createbup = false; 795 createbup = false;
793 } 796 }
794 } 797 }
795 if ( createbup ) { 798 if ( createbup ) {
796 CalendarLocal cal; 799 CalendarLocal cal;
797 cal.setTimeZoneId(KPimGlobalPrefs::instance()->mTimeZoneId); 800 cal.setTimeZoneId(KPimGlobalPrefs::instance()->mTimeZoneId);
798 Incidence *incidence = delSel.first(); 801 Incidence *incidence = delSel.first();
799 while ( incidence ) { 802 while ( incidence ) {
800 cal.addIncidence( incidence->clone() ); 803 cal.addIncidence( incidence->clone() );
801 incidence = delSel.next(); 804 incidence = delSel.next();
802 } 805 }
803 if ( iCal ) { 806 if ( iCal ) {
804 ICalFormat format; 807 ICalFormat format;
805 format.save( &cal, fn ); 808 format.save( &cal, fn );
806 } else { 809 } else {
807 810
808 VCalFormat format; 811 VCalFormat format;
809 format.save( &cal, fn ); 812 format.save( &cal, fn );
810 } 813 }
811 mes = i18n("KO/Pi:Saved %1").arg(fn ); 814 mes = i18n("KO/Pi:Saved %1").arg(fn );
812 KOPrefs::instance()->mLastSaveFile = fn; 815 KOPrefs::instance()->mLastSaveFile = fn;
813 topLevelWidget()->setCaption(mes); 816 topLevelWidget()->setCaption(mes);
814 } 817 }
815 } 818 }
816 QTimer::singleShot( 1, this, SLOT ( resetFocus() ) ); 819 QTimer::singleShot( 1, this, SLOT ( resetFocus() ) );
817} 820}
818void KOListView::hideAll() 821void KOListView::hideAll()
819{ 822{
820 QPtrList<QListViewItem> delSel ; 823 QPtrList<QListViewItem> delSel ;
821 QListViewItem *item = mListView->firstChild (); 824 QListViewItem *item = mListView->firstChild ();
822 while ( item ) { 825 while ( item ) {
823 if ( item->isSelected() ) { 826 if ( item->isSelected() ) {
824 delSel.append(item); 827 delSel.append(item);
825 } 828 }
826 item = item->nextSibling(); 829 item = item->nextSibling();
827 } 830 }
828 item = delSel.first() ; 831 item = delSel.first() ;
829 while ( item ) { 832 while ( item ) {
830 QListViewItem * del = item; 833 QListViewItem * del = item;
831 item = delSel.next(); 834 item = delSel.next();
832 delete del; 835 delete del;
833 } 836 }
834} 837}
835void KOListView::printList() 838void KOListView::printList()
836{ 839{
837 mListView->printList(); 840 mListView->printList();
838} 841}
839void KOListView::deleteAll() 842void KOListView::deleteAll()
840{ 843{
841 QPtrList<Incidence> delSel = getSelectedIncidences(); // all inc allowed;; 844 QPtrList<Incidence> delSel = getSelectedIncidences(); // all inc allowed;;
842 if ( delSel.count() ) { 845 if ( delSel.count() ) {
843 int icount = delSel.count(); 846 int icount = delSel.count();
844 Incidence *incidence = delSel.first(); 847 Incidence *incidence = delSel.first();
845 Incidence *toDelete; 848 Incidence *toDelete;
846 KOPrefs *p = KOPrefs::instance(); 849 KOPrefs *p = KOPrefs::instance();
847 bool confirm = p->mConfirm; 850 bool confirm = p->mConfirm;
848 QString mess; 851 QString mess;
849 mess = mess.sprintf( i18n("You have %d item(s) selected.\n"), icount ); 852 mess = mess.sprintf( i18n("You have %d item(s) selected.\n"), icount );
850 if ( KMessageBox::Continue == KMessageBox::warningContinueCancel(this, mess + i18n("All selected items will be\npermanently deleted.\n(Deleting items will take\nsome time on a PDA)\n"), i18n("KO/Pi Confirmation"),i18n("Delete")) ) { 853 if ( KMessageBox::Continue == KMessageBox::warningContinueCancel(this, mess + i18n("All selected items will be\npermanently deleted.\n(Deleting items will take\nsome time on a PDA)\n"), i18n("KO/Pi Confirmation"),i18n("Delete")) ) {
851 p->mConfirm = false; 854 p->mConfirm = false;
852 int delCounter = 0; 855 int delCounter = 0;
853 QDialog dia ( this, "p-dialog", true ); 856 QDialog dia ( this, "p-dialog", true );
854 QLabel lab (i18n("Close dialog to abort deletion!"), &dia ); 857 QLabel lab (i18n("Close dialog to abort deletion!"), &dia );
855 QVBoxLayout lay( &dia ); 858 QVBoxLayout lay( &dia );
856 lay.setMargin(7); 859 lay.setMargin(7);
857 lay.setSpacing(7); 860 lay.setSpacing(7);
858 lay.addWidget( &lab); 861 lay.addWidget( &lab);
859 QProgressBar bar( icount, &dia ); 862 QProgressBar bar( icount, &dia );
860 lay.addWidget( &bar); 863 lay.addWidget( &bar);
861 int w = 220; 864 int w = 220;
862 int h = 50; 865 int h = 50;
863 int dw = QApplication::desktop()->width(); 866 int dw = QApplication::desktop()->width();
864 int dh = QApplication::desktop()->height(); 867 int dh = QApplication::desktop()->height();
865 dia.setGeometry( (dw-w)/2, (dh - h )/2 ,w,h ); 868 dia.setGeometry( (dw-w)/2, (dh - h )/2 ,w,h );
866 //dia.resize( 240,50 ); 869 //dia.resize( 240,50 );
867 dia.show(); 870 dia.show();
868 KOPrefs::instance()->mGlobalUpdateDisabled = true; 871 KOPrefs::instance()->mGlobalUpdateDisabled = true;
869 while ( incidence ) { 872 while ( incidence ) {
870 bar.setProgress( delCounter ); 873 bar.setProgress( delCounter );
871 mess = mess.sprintf( i18n("Deleting item %d ..."), ++delCounter ); 874 mess = mess.sprintf( i18n("Deleting item %d ..."), ++delCounter );
872 dia.setCaption( mess ); 875 dia.setCaption( mess );
873 qApp->processEvents(); 876 qApp->processEvents();
874 toDelete = (incidence); 877 toDelete = (incidence);
875 incidence = delSel.next(); 878 incidence = delSel.next();
876 emit deleteIncidenceSignal(toDelete ); 879 emit deleteIncidenceSignal(toDelete );
877 if ( dia.result() != 0 ) 880 if ( dia.result() != 0 )
878 break; 881 break;
879 882
880 } 883 }
881 KOPrefs::instance()->mGlobalUpdateDisabled = false; 884 KOPrefs::instance()->mGlobalUpdateDisabled = false;
882 emit deleteIncidenceSignal( 0 ); 885 emit deleteIncidenceSignal( 0 );
883 mess = mess.sprintf( i18n("%d items remaining in list."), count() ); 886 mess = mess.sprintf( i18n("%d items remaining in list."), count() );
884 topLevelWidget ()->setCaption( mess ); 887 topLevelWidget ()->setCaption( mess );
885 p->mConfirm = confirm; 888 p->mConfirm = confirm;
886 } 889 }
887 } 890 }
888 891
889 892
890} 893}
891int KOListView::maxDatesHint() 894int KOListView::maxDatesHint()
892{ 895{
893 return 0; 896 return 0;
894} 897}
895 898
896int KOListView::currentDateCount() 899int KOListView::currentDateCount()
897{ 900{
898 return 0; 901 return 0;
899} 902}
900 903
901QPtrList<Incidence> KOListView::selectedIncidences() 904QPtrList<Incidence> KOListView::selectedIncidences()
902{ 905{
903 QPtrList<Incidence> eventList; 906 QPtrList<Incidence> eventList;
904 QListViewItem *item = mListView->firstChild (); 907 QListViewItem *item = mListView->firstChild ();
905 while ( item ) { 908 while ( item ) {
906 if ( item->isSelected() ) { 909 if ( item->isSelected() ) {
907 eventList.append(((KOListViewItem *)item)->data()); 910 eventList.append(((KOListViewItem *)item)->data());
908 } 911 }
909 912
910 item = item->nextSibling(); 913 item = item->nextSibling();
911 } 914 }
912 915
913 // // QListViewItem *item = mListView->selectedItem(); 916 // // QListViewItem *item = mListView->selectedItem();
914 //if (item) eventList.append(((KOListViewItem *)item)->data()); 917 //if (item) eventList.append(((KOListViewItem *)item)->data());
915 918
916 return eventList; 919 return eventList;
917} 920}
918 921
919DateList KOListView::selectedDates() 922DateList KOListView::selectedDates()
920{ 923{
921 DateList eventList; 924 DateList eventList;
922 return eventList; 925 return eventList;
923} 926}
924 927
925void KOListView::showDates(bool show) 928void KOListView::showDates(bool show)
926{ 929{
927 // Shouldn't we set it to a value greater 0? When showDates is called with 930 // Shouldn't we set it to a value greater 0? When showDates is called with
928 // show == true at first, then the columnwidths are set to zero. 931 // show == true at first, then the columnwidths are set to zero.
929 static int oldColWidth1 = 0; 932 static int oldColWidth1 = 0;
930 static int oldColWidth3 = 0; 933 static int oldColWidth3 = 0;
931 934
932 if (!show) { 935 if (!show) {
933 oldColWidth1 = mListView->columnWidth(1); 936 oldColWidth1 = mListView->columnWidth(1);
934 oldColWidth3 = mListView->columnWidth(3); 937 oldColWidth3 = mListView->columnWidth(3);
935 mListView->setColumnWidth(1, 0); 938 mListView->setColumnWidth(1, 0);
936 mListView->setColumnWidth(3, 0); 939 mListView->setColumnWidth(3, 0);
937 } else { 940 } else {
938 mListView->setColumnWidth(1, oldColWidth1); 941 mListView->setColumnWidth(1, oldColWidth1);
939 mListView->setColumnWidth(3, oldColWidth3); 942 mListView->setColumnWidth(3, oldColWidth3);
940 } 943 }
941 mListView->repaint(); 944 mListView->repaint();
942} 945}
943 946
944void KOListView::printPreview(CalPrinter *calPrinter, const QDate &fd, 947void KOListView::printPreview(CalPrinter *calPrinter, const QDate &fd,
945 const QDate &td) 948 const QDate &td)
946{ 949{
947#ifndef KORG_NOPRINTER 950#ifndef KORG_NOPRINTER
948 calPrinter->preview(CalPrinter::Day, fd, td); 951 calPrinter->preview(CalPrinter::Day, fd, td);
949#endif 952#endif
950} 953}
951 954
952void KOListView::showDates() 955void KOListView::showDates()
953{ 956{
954 showDates(true); 957 showDates(true);
955} 958}
956 959
957void KOListView::hideDates() 960void KOListView::hideDates()
958{ 961{
959 showDates(false); 962 showDates(false);
960} 963}
961 964
962void KOListView::resetFocus() 965void KOListView::resetFocus()
963{ 966{
964 topLevelWidget()->setActiveWindow(); 967 topLevelWidget()->setActiveWindow();
965 topLevelWidget()->raise(); 968 topLevelWidget()->raise();
966 mListView->setFocus(); 969 mListView->setFocus();
967} 970}
968void KOListView::updateView() 971void KOListView::updateView()
969{ 972{
970 mListView->setFocus(); 973 mListView->setFocus();
971 if ( mListView->firstChild () ) 974 if ( mListView->firstChild () )
972 mListView->setCurrentItem( mListView->firstChild () ); 975 mListView->setCurrentItem( mListView->firstChild () );
973} 976}
974void KOListView::updateConfig() 977void KOListView::updateConfig()
975{ 978{
976 979
977 mListView->setFont ( KOPrefs::instance()->mListViewFont ); 980 mListView->setFont ( KOPrefs::instance()->mListViewFont );
978 updateView(); 981 updateView();
979 982
980} 983}
981void KOListView::setStartDate(const QDate &start) 984void KOListView::setStartDate(const QDate &start)
982{ 985{
983 mStartDate = start; 986 mStartDate = start;
984} 987}
985 988
986void KOListView::showDates(const QDate &start, const QDate &end) 989void KOListView::showDates(const QDate &start, const QDate &end)
987{ 990{
988 clear(); 991 clear();
989 mStartDate = start; 992 mStartDate = start;
990 QDate date = start; 993 QDate date = start;
991 while( date <= end ) { 994 while( date <= end ) {
992 addEvents(calendar()->events(date)); 995 addEvents(calendar()->events(date));
993 addTodos(calendar()->todos(date)); 996 addTodos(calendar()->todos(date));
994 addJournals( calendar()->journals4Date(date) ); 997 addJournals( calendar()->journals4Date(date) );
995 date = date.addDays( 1 ); 998 date = date.addDays( 1 );
996 } 999 }
997 emit incidenceSelected( 0 ); 1000 emit incidenceSelected( 0 );
998 updateView(); 1001 updateView();
999 1002
1000} 1003}
1001 1004
1002void KOListView::addEvents(QPtrList<Event> eventList) 1005void KOListView::addEvents(QPtrList<Event> eventList)
1003{ 1006{
1004 1007
diff --git a/korganizer/mainwindow.cpp b/korganizer/mainwindow.cpp
index e960424..9c2ac82 100644
--- a/korganizer/mainwindow.cpp
+++ b/korganizer/mainwindow.cpp
@@ -1,930 +1,941 @@
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 "kojournalview.h" 50#include "kojournalview.h"
51#include "koagenda.h" 51#include "koagenda.h"
52#include "kodialogmanager.h" 52#include "kodialogmanager.h"
53#include "kdialogbase.h" 53#include "kdialogbase.h"
54#include "kapplication.h" 54#include "kapplication.h"
55#include "kofilterview.h" 55#include "kofilterview.h"
56#include "kstandarddirs.h" 56#include "kstandarddirs.h"
57#include "koprefs.h" 57#include "koprefs.h"
58#include "kfiledialog.h" 58#include "kfiledialog.h"
59#include "koglobals.h" 59#include "koglobals.h"
60#include "kglobal.h" 60#include "kglobal.h"
61#include "ktoolbar.h" 61#include "ktoolbar.h"
62#include "klocale.h" 62#include "klocale.h"
63#include "kconfig.h" 63#include "kconfig.h"
64#include "externalapphandler.h" 64#include "externalapphandler.h"
65#include <kglobalsettings.h> 65#include <kglobalsettings.h>
66 66
67using namespace KCal; 67using namespace KCal;
68#ifndef _WIN32_ 68#ifndef _WIN32_
69#include <unistd.h> 69#include <unistd.h>
70#else 70#else
71#ifdef _OL_IMPORT_ 71#ifdef _OL_IMPORT_
72#include "koimportoldialog.h" 72#include "koimportoldialog.h"
73#endif 73#endif
74#endif 74#endif
75#include "mainwindow.h" 75#include "mainwindow.h"
76 76
77 77
78class KOex2phonePrefs : public QDialog 78class KOex2phonePrefs : public QDialog
79{ 79{
80 public: 80 public:
81 KOex2phonePrefs( QWidget *parent=0, const char *name=0 ) : 81 KOex2phonePrefs( QWidget *parent=0, const char *name=0 ) :
82 QDialog( parent, name, true ) 82 QDialog( parent, name, true )
83 { 83 {
84 setCaption( i18n("Export to phone options") ); 84 setCaption( i18n("Export to phone options") );
85 QVBoxLayout* lay = new QVBoxLayout( this ); 85 QVBoxLayout* lay = new QVBoxLayout( this );
86 lay->setSpacing( 3 ); 86 lay->setSpacing( 3 );
87 lay->setMargin( 3 ); 87 lay->setMargin( 3 );
88 QLabel *lab; 88 QLabel *lab;
89 lay->addWidget(lab = new QLabel( i18n("Please read Help-Sync Howto\nto know what settings to use."), this ) ); 89 lay->addWidget(lab = new QLabel( i18n("Please read Help-Sync Howto\nto know what settings to use."), this ) );
90 lab->setAlignment (AlignHCenter ); 90 lab->setAlignment (AlignHCenter );
91 QHBox* temphb; 91 QHBox* temphb;
92 temphb = new QHBox( this ); 92 temphb = new QHBox( this );
93 new QLabel( i18n("I/O device: "), temphb ); 93 new QLabel( i18n("I/O device: "), temphb );
94 mPhoneDevice = new QLineEdit( temphb); 94 mPhoneDevice = new QLineEdit( temphb);
95 lay->addWidget( temphb ); 95 lay->addWidget( temphb );
96 temphb = new QHBox( this ); 96 temphb = new QHBox( this );
97 new QLabel( i18n("Connection: "), temphb ); 97 new QLabel( i18n("Connection: "), temphb );
98 mPhoneConnection = new QLineEdit( temphb); 98 mPhoneConnection = new QLineEdit( temphb);
99 lay->addWidget( temphb ); 99 lay->addWidget( temphb );
100 temphb = new QHBox( this ); 100 temphb = new QHBox( this );
101 new QLabel( i18n("Model(opt.): "), temphb ); 101 new QLabel( i18n("Model(opt.): "), temphb );
102 mPhoneModel = new QLineEdit( temphb); 102 mPhoneModel = new QLineEdit( temphb);
103 lay->addWidget( temphb ); 103 lay->addWidget( temphb );
104 mWriteBackFuture= new QCheckBox( i18n("Write back events in future only"), this ); 104 mWriteBackFuture= new QCheckBox( i18n("Write back events in future only"), this );
105 mWriteBackFuture->setChecked( true ); 105 mWriteBackFuture->setChecked( true );
106 lay->addWidget( mWriteBackFuture ); 106 lay->addWidget( mWriteBackFuture );
107 temphb = new QHBox( this ); 107 temphb = new QHBox( this );
108 new QLabel( i18n("Max. weeks in future: ") , temphb ); 108 new QLabel( i18n("Max. weeks in future: ") , temphb );
109 mWriteBackFutureWeeks= new QSpinBox(1,104, 1, temphb); 109 mWriteBackFutureWeeks= new QSpinBox(1,104, 1, temphb);
110 mWriteBackFutureWeeks->setValue( 8 ); 110 mWriteBackFutureWeeks->setValue( 8 );
111 lay->addWidget( temphb ); 111 lay->addWidget( temphb );
112 lay->addWidget(lab = new QLabel( i18n("NOTE: This will remove all old\ntodo/calendar data on phone!"), this ) ); 112 lay->addWidget(lab = new QLabel( i18n("NOTE: This will remove all old\ntodo/calendar data on phone!"), this ) );
113 lab->setAlignment (AlignHCenter ); 113 lab->setAlignment (AlignHCenter );
114 QPushButton * ok = new QPushButton( i18n("Export to mobile phone!"), this ); 114 QPushButton * ok = new QPushButton( i18n("Export to mobile phone!"), this );
115 lay->addWidget( ok ); 115 lay->addWidget( ok );
116 QPushButton * cancel = new QPushButton( i18n("Cancel"), this ); 116 QPushButton * cancel = new QPushButton( i18n("Cancel"), this );
117 lay->addWidget( cancel ); 117 lay->addWidget( cancel );
118 connect ( ok,SIGNAL(clicked() ),this , SLOT ( accept() ) ); 118 connect ( ok,SIGNAL(clicked() ),this , SLOT ( accept() ) );
119 connect (cancel, SIGNAL(clicked() ), this, SLOT ( reject()) ); 119 connect (cancel, SIGNAL(clicked() ), this, SLOT ( reject()) );
120 resize( 220, 240 ); 120 resize( 220, 240 );
121 qApp->processEvents(); 121 qApp->processEvents();
122 int dw = QApplication::desktop()->width(); 122 int dw = QApplication::desktop()->width();
123 int dh = QApplication::desktop()->height(); 123 int dh = QApplication::desktop()->height();
124 move( (dw-width())/2, (dh - height() )/2 ); 124 move( (dw-width())/2, (dh - height() )/2 );
125 } 125 }
126 126
127public: 127public:
128 QLineEdit* mPhoneConnection, *mPhoneDevice, *mPhoneModel; 128 QLineEdit* mPhoneConnection, *mPhoneDevice, *mPhoneModel;
129 QCheckBox* mWriteBackFuture; 129 QCheckBox* mWriteBackFuture;
130 QSpinBox* mWriteBackFutureWeeks; 130 QSpinBox* mWriteBackFutureWeeks;
131}; 131};
132 132
133QPixmap* sgListViewCompletedPix[6]; 133QPixmap* sgListViewCompletedPix[6];
134QPixmap* sgListViewJournalPix;
134 135
135 136
136int globalFlagBlockStartup; 137int globalFlagBlockStartup;
137MainWindow::MainWindow( QWidget *parent, const char *name ) : 138MainWindow::MainWindow( QWidget *parent, const char *name ) :
138 QMainWindow( parent, name ) 139 QMainWindow( parent, name )
139{ 140{
140 sgListViewCompletedPix[5] = &listviewPix; 141 sgListViewCompletedPix[5] = &listviewPix;
141 sgListViewCompletedPix[0] = &listviewPix0; 142 sgListViewCompletedPix[0] = &listviewPix0;
142 sgListViewCompletedPix[1] = &listviewPix20; 143 sgListViewCompletedPix[1] = &listviewPix20;
143 sgListViewCompletedPix[2] = &listviewPix40; 144 sgListViewCompletedPix[2] = &listviewPix40;
144 sgListViewCompletedPix[3] = &listviewPix60; 145 sgListViewCompletedPix[3] = &listviewPix60;
145 sgListViewCompletedPix[4] = &listviewPix80; 146 sgListViewCompletedPix[4] = &listviewPix80;
146 if ( sgListViewCompletedPix[5]->height() < 5 ) {
147 //int size = 12; 147 //int size = 12;
148 {
148 sgListViewCompletedPix[5]->resize( 11, 11 ); 149 sgListViewCompletedPix[5]->resize( 11, 11 );
149 sgListViewCompletedPix[5]->fill( Qt::white ); 150 sgListViewCompletedPix[5]->fill( Qt::white );
150 QPainter p ( sgListViewCompletedPix[5] ); 151 QPainter p ( sgListViewCompletedPix[5] );
151 p.drawRect( 0,0,11,11); 152 p.drawRect( 0,0,11,11);
152 p.drawLine ( 2, 5, 4 , 7 ) ; 153 p.drawLine ( 2, 5, 4 , 7 ) ;
153 p.drawLine ( 4 , 7 , 8, 3) ; 154 p.drawLine ( 4 , 7 , 8, 3) ;
154 int iii = 0; 155 int iii = 0;
155 for ( iii = 0; iii < 5; ++iii ) { 156 for ( iii = 0; iii < 5; ++iii ) {
156 sgListViewCompletedPix[iii]->resize( 11, 11 ); 157 sgListViewCompletedPix[iii]->resize( 11, 11 );
157 sgListViewCompletedPix[iii]->fill( Qt::white ); 158 sgListViewCompletedPix[iii]->fill( Qt::white );
158 QPainter p ( sgListViewCompletedPix[iii] ); 159 QPainter p ( sgListViewCompletedPix[iii] );
159 p.drawRect( 0,0,11,11); 160 p.drawRect( 0,0,11,11);
160 if ( iii ) 161 if ( iii )
161 p.fillRect( 1,1,iii*2,9,Qt::gray ); 162 p.fillRect( 1,1,iii*2,9,Qt::gray );
162 } 163 }
164 sgListViewJournalPix = &journalPix;
165 sgListViewJournalPix->resize( 11, 11 );
166 sgListViewJournalPix->fill( Qt::white );
167 {
168 QPainter p ( sgListViewJournalPix );
169 p.drawRect( 0,0,11,11);
170 p.drawLine( 2,3,5,3);
171 p.drawLine( 2,5,8,5);
172 p.drawLine( 2,7,6,7);
173 }
163 } 174 }
164 mClosed = false; 175 mClosed = false;
165 //QString confFile = KStandardDirs::appDir() + "config/korganizerrc"; 176 //QString confFile = KStandardDirs::appDir() + "config/korganizerrc";
166 QString confFile = locateLocal("config","korganizerrc"); 177 QString confFile = locateLocal("config","korganizerrc");
167 QFileInfo finf ( confFile ); 178 QFileInfo finf ( confFile );
168 bool showWarning = !finf.exists(); 179 bool showWarning = !finf.exists();
169 setIcon(SmallIcon( "ko24" ) ); 180 setIcon(SmallIcon( "ko24" ) );
170 mBlockAtStartup = true; 181 mBlockAtStartup = true;
171 mFlagKeyPressed = false; 182 mFlagKeyPressed = false;
172 setCaption("KO/Pi"); 183 setCaption("KO/Pi");
173 KOPrefs *p = KOPrefs::instance(); 184 KOPrefs *p = KOPrefs::instance();
174 //KPimGlobalPrefs::instance()->setGlobalConfig(); 185 //KPimGlobalPrefs::instance()->setGlobalConfig();
175 p->mCurrentDisplayedView = 0; 186 p->mCurrentDisplayedView = 0;
176 if ( p->mHourSize > 22 ) 187 if ( p->mHourSize > 22 )
177 p->mHourSize = 22; 188 p->mHourSize = 22;
178 QMainWindow::ToolBarDock tbd; 189 QMainWindow::ToolBarDock tbd;
179 if ( p->mToolBarHor ) { 190 if ( p->mToolBarHor ) {
180 if ( p->mToolBarUp ) 191 if ( p->mToolBarUp )
181 tbd = Bottom; 192 tbd = Bottom;
182 else 193 else
183 tbd = Top; 194 tbd = Top;
184 } 195 }
185 else { 196 else {
186 if ( p->mToolBarUp ) 197 if ( p->mToolBarUp )
187 tbd = Right; 198 tbd = Right;
188 else 199 else
189 tbd = Left; 200 tbd = Left;
190 } 201 }
191 if ( KOPrefs::instance()->mUseAppColors ) 202 if ( KOPrefs::instance()->mUseAppColors )
192 QApplication::setPalette( QPalette (KOPrefs::instance()->mAppColor1, KOPrefs::instance()->mAppColor2), true ); 203 QApplication::setPalette( QPalette (KOPrefs::instance()->mAppColor1, KOPrefs::instance()->mAppColor2), true );
193 globalFlagBlockStartup = 1; 204 globalFlagBlockStartup = 1;
194 iconToolBar = new QPEToolBar( this ); 205 iconToolBar = new QPEToolBar( this );
195 addToolBar (iconToolBar , tbd ); 206 addToolBar (iconToolBar , tbd );
196 207
197#ifdef DESKTOP_VERSION 208#ifdef DESKTOP_VERSION
198 if ( KOPrefs::instance()->mShowIconFilter ) 209 if ( KOPrefs::instance()->mShowIconFilter )
199#else 210#else
200 if ( KOPrefs::instance()->mShowIconFilter || !p->mShowIconOnetoolbar ) 211 if ( KOPrefs::instance()->mShowIconFilter || !p->mShowIconOnetoolbar )
201#endif 212#endif
202 213
203{ 214{
204 if ( p->mToolBarHorF ) { 215 if ( p->mToolBarHorF ) {
205 if ( p->mToolBarUpF ) 216 if ( p->mToolBarUpF )
206 tbd = Bottom; 217 tbd = Bottom;
207 else 218 else
208 tbd = Top; 219 tbd = Top;
209 } 220 }
210 else { 221 else {
211 if ( p->mToolBarUpF ) 222 if ( p->mToolBarUpF )
212 tbd = Right; 223 tbd = Right;
213 else 224 else
214 tbd = Left; 225 tbd = Left;
215 } 226 }
216 filterToolBar = new QPEToolBar ( this ); 227 filterToolBar = new QPEToolBar ( this );
217 filterMenubar = new QMenuBar( 0 ); 228 filterMenubar = new QMenuBar( 0 );
218 QFontMetrics fm ( filterMenubar->font() ); 229 QFontMetrics fm ( filterMenubar->font() );
219 230
220 filterPopupMenu = new QPopupMenu( this ); 231 filterPopupMenu = new QPopupMenu( this );
221 filterMenubar->insertItem( i18n("No Filter"), filterPopupMenu,0 ); 232 filterMenubar->insertItem( i18n("No Filter"), filterPopupMenu,0 );
222 QString addTest = "A"; 233 QString addTest = "A";
223 filterMenubar->setMinimumWidth( fm.width( i18n("No Filter")+addTest ) ); 234 filterMenubar->setMinimumWidth( fm.width( i18n("No Filter")+addTest ) );
224#ifdef DESKTOP_VERSION 235#ifdef DESKTOP_VERSION
225 addTest = "AAABBBCCCx"; 236 addTest = "AAABBBCCCx";
226#else 237#else
227 addTest = "AAx"; 238 addTest = "AAx";
228#endif 239#endif
229 filterMenubar->setMaximumWidth( fm.width( i18n("No Filter")+addTest ) ); 240 filterMenubar->setMaximumWidth( fm.width( i18n("No Filter")+addTest ) );
230 addToolBar (filterToolBar , tbd ); 241 addToolBar (filterToolBar , tbd );
231 connect ( filterPopupMenu , SIGNAL( activated ( int ) ), this, SLOT (selectFilterPopup( int ) ) ); 242 connect ( filterPopupMenu , SIGNAL( activated ( int ) ), this, SLOT (selectFilterPopup( int ) ) );
232 connect ( filterPopupMenu , SIGNAL( aboutToShow() ), this, SLOT (fillFilterMenuPopup() ) ); 243 connect ( filterPopupMenu , SIGNAL( aboutToShow() ), this, SLOT (fillFilterMenuPopup() ) );
233 if ( !KOPrefs::instance()->mShowIconFilter && !p->mShowIconOnetoolbar ) 244 if ( !KOPrefs::instance()->mShowIconFilter && !p->mShowIconOnetoolbar )
234 filterToolBar->hide(); 245 filterToolBar->hide();
235 } else { 246 } else {
236 filterToolBar = 0; 247 filterToolBar = 0;
237 filterMenubar = 0; 248 filterMenubar = 0;
238 filterPopupMenu = 0; 249 filterPopupMenu = 0;
239 } 250 }
240 if ( p->mShowIconOnetoolbar ) { 251 if ( p->mShowIconOnetoolbar ) {
241 viewToolBar = iconToolBar ; 252 viewToolBar = iconToolBar ;
242 navigatorToolBar = iconToolBar ; 253 navigatorToolBar = iconToolBar ;
243 } else { 254 } else {
244#ifndef DESKTOP_VERSION 255#ifndef DESKTOP_VERSION
245 setToolBarsMovable( false ); 256 setToolBarsMovable( false );
246#endif 257#endif
247 if ( p->mToolBarHorV ) { 258 if ( p->mToolBarHorV ) {
248 if ( p->mToolBarUpV ) 259 if ( p->mToolBarUpV )
249 tbd = Bottom; 260 tbd = Bottom;
250 else 261 else
251 tbd = Top; 262 tbd = Top;
252 } 263 }
253 else { 264 else {
254 if ( p->mToolBarUpV ) 265 if ( p->mToolBarUpV )
255 tbd = Right; 266 tbd = Right;
256 else 267 else
257 tbd = Left; 268 tbd = Left;
258 } 269 }
259 viewToolBar = new QPEToolBar( this ); 270 viewToolBar = new QPEToolBar( this );
260 addToolBar (viewToolBar , tbd ); 271 addToolBar (viewToolBar , tbd );
261 if ( p->mToolBarHorN ) { 272 if ( p->mToolBarHorN ) {
262 if ( p->mToolBarUpN ) 273 if ( p->mToolBarUpN )
263 tbd = Bottom; 274 tbd = Bottom;
264 else 275 else
265 tbd = Top; 276 tbd = Top;
266 } 277 }
267 else { 278 else {
268 if ( p->mToolBarUpN ) 279 if ( p->mToolBarUpN )
269 tbd = Right; 280 tbd = Right;
270 else 281 else
271 tbd = Left; 282 tbd = Left;
272 } 283 }
273 navigatorToolBar = new QPEToolBar( this ); 284 navigatorToolBar = new QPEToolBar( this );
274 addToolBar (navigatorToolBar , tbd ); 285 addToolBar (navigatorToolBar , tbd );
275 } 286 }
276 287
277 288
278 289
279 mCalendarModifiedFlag = false; 290 mCalendarModifiedFlag = false;
280 QLabel* splash = new QLabel(i18n("KO/Pi is starting ... "), this ); 291 QLabel* splash = new QLabel(i18n("KO/Pi is starting ... "), this );
281 splash->setAlignment ( AlignCenter ); 292 splash->setAlignment ( AlignCenter );
282 setCentralWidget( splash ); 293 setCentralWidget( splash );
283#ifndef DESKTOP_VERSION 294#ifndef DESKTOP_VERSION
284 showMaximized(); 295 showMaximized();
285#endif 296#endif
286 297
287 //qDebug("Mainwidget x %d y %d w %d h %d", x(), y(), width(), height ()); 298 //qDebug("Mainwidget x %d y %d w %d h %d", x(), y(), width(), height ());
288 setDefaultPreferences(); 299 setDefaultPreferences();
289 mCalendar = new CalendarLocal(); 300 mCalendar = new CalendarLocal();
290 mView = new CalendarView( mCalendar, this,"mCalendar " ); 301 mView = new CalendarView( mCalendar, this,"mCalendar " );
291 mView->hide(); 302 mView->hide();
292 //mView->resize(splash->size() ); 303 //mView->resize(splash->size() );
293 initActions(); 304 initActions();
294 mSyncManager = new KSyncManager((QWidget*)this, (KSyncInterface*)mView, KSyncManager::KOPI, KOPrefs::instance(), syncMenu); 305 mSyncManager = new KSyncManager((QWidget*)this, (KSyncInterface*)mView, KSyncManager::KOPI, KOPrefs::instance(), syncMenu);
295 mSyncManager->setBlockSave(false); 306 mSyncManager->setBlockSave(false);
296 mView->setSyncManager(mSyncManager); 307 mView->setSyncManager(mSyncManager);
297#ifndef DESKTOP_VERSION 308#ifndef DESKTOP_VERSION
298 iconToolBar->show(); 309 iconToolBar->show();
299 qApp->processEvents(); 310 qApp->processEvents();
300#endif 311#endif
301 //qDebug("Splashwidget x %d y %d w %d h %d", splash-> x(), splash->y(), splash->width(),splash-> height ()); 312 //qDebug("Splashwidget x %d y %d w %d h %d", splash-> x(), splash->y(), splash->width(),splash-> height ());
302 int vh = height() ; 313 int vh = height() ;
303 int vw = width(); 314 int vw = width();
304 //qDebug("Toolbar hei %d ",iconToolBar->height() ); 315 //qDebug("Toolbar hei %d ",iconToolBar->height() );
305 if ( iconToolBar->orientation () == Qt:: Horizontal ) { 316 if ( iconToolBar->orientation () == Qt:: Horizontal ) {
306 vh -= iconToolBar->height(); 317 vh -= iconToolBar->height();
307 } else { 318 } else {
308 vw -= iconToolBar->height(); 319 vw -= iconToolBar->height();
309 } 320 }
310 //mView->setMaximumSize( splash->size() ); 321 //mView->setMaximumSize( splash->size() );
311 //mView->resize( splash->size() ); 322 //mView->resize( splash->size() );
312 //qDebug("MainView x %d y %d w %d h %d", mView->x(),mView-> y(), mView->width(), mView->height ()); 323 //qDebug("MainView x %d y %d w %d h %d", mView->x(),mView-> y(), mView->width(), mView->height ());
313 mView->readSettings(); 324 mView->readSettings();
314 bool newFile = false; 325 bool newFile = false;
315 if( !QFile::exists( defaultFileName() ) ) { 326 if( !QFile::exists( defaultFileName() ) ) {
316 QFileInfo finfo ( defaultFileName() ); 327 QFileInfo finfo ( defaultFileName() );
317 QString oldFile = QDir::convertSeparators( QDir::homeDirPath()+"/Applications/korganizer/mycalendar.ics"); 328 QString oldFile = QDir::convertSeparators( QDir::homeDirPath()+"/Applications/korganizer/mycalendar.ics");
318 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"; 329 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";
319 finfo.setFile( oldFile ); 330 finfo.setFile( oldFile );
320 if (finfo.exists() ) { 331 if (finfo.exists() ) {
321 KMessageBox::information( this, message); 332 KMessageBox::information( this, message);
322 mView->openCalendar( oldFile ); 333 mView->openCalendar( oldFile );
323 qApp->processEvents(); 334 qApp->processEvents();
324 } else { 335 } else {
325 oldFile = QDir::convertSeparators( QDir::homeDirPath()+"/korganizer/mycalendar.ics"); 336 oldFile = QDir::convertSeparators( QDir::homeDirPath()+"/korganizer/mycalendar.ics");
326 finfo.setFile( oldFile ); 337 finfo.setFile( oldFile );
327 if (finfo.exists() ) { 338 if (finfo.exists() ) {
328 KMessageBox::information( this, message); 339 KMessageBox::information( this, message);
329 mView->openCalendar( oldFile ); 340 mView->openCalendar( oldFile );
330 qApp->processEvents(); 341 qApp->processEvents();
331 } 342 }
332 } 343 }
333 mView->saveCalendar( defaultFileName() ); 344 mView->saveCalendar( defaultFileName() );
334 newFile = true; 345 newFile = true;
335 } 346 }
336 347
337 QTime neededSaveTime = QDateTime::currentDateTime().time(); 348 QTime neededSaveTime = QDateTime::currentDateTime().time();
338 mView->loadCalendars(); 349 mView->loadCalendars();
339 int msNeeded = neededSaveTime.msecsTo( QDateTime::currentDateTime().time() ); 350 int msNeeded = neededSaveTime.msecsTo( QDateTime::currentDateTime().time() );
340 qDebug("KO: Calendar loading time: %d ms",msNeeded ); 351 qDebug("KO: Calendar loading time: %d ms",msNeeded );
341 352
342 if ( KPimGlobalPrefs::instance()->mPreferredLanguage != KOPrefs::instance()->mOldLoadedLanguage ) { 353 if ( KPimGlobalPrefs::instance()->mPreferredLanguage != KOPrefs::instance()->mOldLoadedLanguage ) {
343 KOPrefs::instance()->setAllDefaults(); 354 KOPrefs::instance()->setAllDefaults();
344 } 355 }
345 processIncidenceSelection( 0 ); 356 processIncidenceSelection( 0 );
346 connect( mView, SIGNAL( incidenceSelected( Incidence * ) ), 357 connect( mView, SIGNAL( incidenceSelected( Incidence * ) ),
347 SLOT( processIncidenceSelection( Incidence * ) ) ); 358 SLOT( processIncidenceSelection( Incidence * ) ) );
348 connect( mView, SIGNAL( modifiedChanged( bool ) ), 359 connect( mView, SIGNAL( modifiedChanged( bool ) ),
349 SLOT( slotModifiedChanged( bool ) ) ); 360 SLOT( slotModifiedChanged( bool ) ) );
350 361
351 362
352 connect( mView, SIGNAL( tempDisableBR(bool) ), 363 connect( mView, SIGNAL( tempDisableBR(bool) ),
353 SLOT( disableBR(bool) ) ); 364 SLOT( disableBR(bool) ) );
354 connect( &mSaveTimer, SIGNAL( timeout() ), SLOT( save() ) ); 365 connect( &mSaveTimer, SIGNAL( timeout() ), SLOT( save() ) );
355 mView->setModified( false ); 366 mView->setModified( false );
356 mBlockAtStartup = false; 367 mBlockAtStartup = false;
357 mView->setModified( false ); 368 mView->setModified( false );
358 setCentralWidget( mView ); 369 setCentralWidget( mView );
359 globalFlagBlockStartup = 0; 370 globalFlagBlockStartup = 0;
360 mView->show(); 371 mView->show();
361 delete splash; 372 delete splash;
362 if ( newFile ) 373 if ( newFile )
363 mView->updateConfig(); 374 mView->updateConfig();
364 // qApp->processEvents(); 375 // qApp->processEvents();
365 //qDebug("MainView x %d y %d w %d h %d", mView->x(),mView-> y(), mView->width(), mView->height ()); 376 //qDebug("MainView x %d y %d w %d h %d", mView->x(),mView-> y(), mView->width(), mView->height ());
366 //fillSyncMenu(); 377 //fillSyncMenu();
367 378
368 379
369 connect(mSyncManager , SIGNAL( save() ), this, SLOT( save() ) ); 380 connect(mSyncManager , SIGNAL( save() ), this, SLOT( save() ) );
370 connect(mView , SIGNAL( save() ), this, SLOT( save() ) ); 381 connect(mView , SIGNAL( save() ), this, SLOT( save() ) );
371 connect(mView , SIGNAL( saveStopTimer() ), this, SLOT( saveStopTimer() ) ); 382 connect(mView , SIGNAL( saveStopTimer() ), this, SLOT( saveStopTimer() ) );
372 connect(mSyncManager , SIGNAL( request_file() ), this, SLOT( syncFileRequest() ) ); 383 connect(mSyncManager , SIGNAL( request_file() ), this, SLOT( syncFileRequest() ) );
373 connect(mSyncManager , SIGNAL( getFile( bool )), this, SLOT(getFile( bool ) ) ); 384 connect(mSyncManager , SIGNAL( getFile( bool )), this, SLOT(getFile( bool ) ) );
374 mSyncManager->setDefaultFileName( sentSyncFile()); 385 mSyncManager->setDefaultFileName( sentSyncFile());
375 connect ( syncMenu, SIGNAL( activated ( int ) ), mSyncManager, SLOT (slotSyncMenu( int ) ) ); 386 connect ( syncMenu, SIGNAL( activated ( int ) ), mSyncManager, SLOT (slotSyncMenu( int ) ) );
376 mSyncManager->fillSyncMenu(); 387 mSyncManager->fillSyncMenu();
377 388
378 389
379 390
380 mView->viewManager()->agendaView()->setStartHour( KOPrefs::instance()->mDayBegins ); 391 mView->viewManager()->agendaView()->setStartHour( KOPrefs::instance()->mDayBegins );
381 if ( showWarning ) { 392 if ( showWarning ) {
382 KMessageBox::information( this, 393 KMessageBox::information( this,
383 "You are starting KO/Pi for the first time.\nPlease read menu: Help-What's New,\nif you did an update!\nPlease choose your timezone in the \nConfigure Dialog TAB Time Zone!\nPlease choose your language\nin the TAB Locale!\nYou get the Configure Dialog\nvia Menu: Actions - Configure....\nClick OK to show the Configure Dialog!\n", "KO/Pi information"); 394 "You are starting KO/Pi for the first time.\nPlease read menu: Help-What's New,\nif you did an update!\nPlease choose your timezone in the \nConfigure Dialog TAB Time Zone!\nPlease choose your language\nin the TAB Locale!\nYou get the Configure Dialog\nvia Menu: Actions - Configure....\nClick OK to show the Configure Dialog!\n", "KO/Pi information");
384 qApp->processEvents(); 395 qApp->processEvents();
385 mView->dialogManager()->showSyncOptions(); 396 mView->dialogManager()->showSyncOptions();
386 } 397 }
387 398
388 //US listen for result adressed from Ka/Pi 399 //US listen for result adressed from Ka/Pi
389#ifndef DESKTOP_VERSION 400#ifndef DESKTOP_VERSION
390 connect(qApp, SIGNAL (appMessage ( const QCString &, const QByteArray & )), ExternalAppHandler::instance(), SLOT (appMessage ( const QCString &, const QByteArray & ))); 401 connect(qApp, SIGNAL (appMessage ( const QCString &, const QByteArray & )), ExternalAppHandler::instance(), SLOT (appMessage ( const QCString &, const QByteArray & )));
391#endif 402#endif
392#ifndef DESKTOP_VERSION 403#ifndef DESKTOP_VERSION
393 infrared = 0; 404 infrared = 0;
394#endif 405#endif
395 updateFilterToolbar(); 406 updateFilterToolbar();
396 updateWeek( mView->startDate() ); 407 updateWeek( mView->startDate() );
397 connect( mView->dateNavigator(), SIGNAL( datesSelected( const KCal::DateList & ) ), 408 connect( mView->dateNavigator(), SIGNAL( datesSelected( const KCal::DateList & ) ),
398 SLOT( updateWeekNum( const KCal::DateList & ) ) ); 409 SLOT( updateWeekNum( const KCal::DateList & ) ) );
399 mBRdisabled = false; 410 mBRdisabled = false;
400 //toggleBeamReceive(); 411 //toggleBeamReceive();
401 412
402 QTimer::singleShot( 1000, mView, SLOT ( checkFiles() )); 413 QTimer::singleShot( 1000, mView, SLOT ( checkFiles() ));
403} 414}
404MainWindow::~MainWindow() 415MainWindow::~MainWindow()
405{ 416{
406 //qDebug("MainWindow::~MainWindow() "); 417 //qDebug("MainWindow::~MainWindow() ");
407 //save toolbar location 418 //save toolbar location
408 delete mCalendar; 419 delete mCalendar;
409 delete mSyncManager; 420 delete mSyncManager;
410#ifndef DESKTOP_VERSION 421#ifndef DESKTOP_VERSION
411 if ( infrared ) 422 if ( infrared )
412 delete infrared; 423 delete infrared;
413#endif 424#endif
414 425
415 426
416} 427}
417 428
418void MainWindow::disableBR(bool b) 429void MainWindow::disableBR(bool b)
419{ 430{
420#ifndef DESKTOP_VERSION 431#ifndef DESKTOP_VERSION
421 if ( b ) { 432 if ( b ) {
422 if ( infrared ) { 433 if ( infrared ) {
423 toggleBeamReceive(); 434 toggleBeamReceive();
424 mBRdisabled = true; 435 mBRdisabled = true;
425 } 436 }
426 mBRdisabled = true; 437 mBRdisabled = true;
427 } else { 438 } else {
428 if ( mBRdisabled ) { 439 if ( mBRdisabled ) {
429 mBRdisabled = false; 440 mBRdisabled = false;
430 //makes no sense,because other cal ap is probably running 441 //makes no sense,because other cal ap is probably running
431 // toggleBeamReceive(); 442 // toggleBeamReceive();
432 } 443 }
433 } 444 }
434#endif 445#endif
435 446
436} 447}
437bool MainWindow::beamReceiveEnabled() 448bool MainWindow::beamReceiveEnabled()
438{ 449{
439#ifndef DESKTOP_VERSION 450#ifndef DESKTOP_VERSION
440 return ( infrared != 0 ); 451 return ( infrared != 0 );
441#endif 452#endif
442 return false; 453 return false;
443} 454}
444 455
445void MainWindow::toggleBeamReceive() 456void MainWindow::toggleBeamReceive()
446{ 457{
447 if ( mBRdisabled ) 458 if ( mBRdisabled )
448 return; 459 return;
449#ifndef DESKTOP_VERSION 460#ifndef DESKTOP_VERSION
450 if ( infrared ) { 461 if ( infrared ) {
451 qDebug("KO: Disable BeamReceive "); 462 qDebug("KO: Disable BeamReceive ");
452 delete infrared; 463 delete infrared;
453 infrared = 0; 464 infrared = 0;
454 brAction->setOn(false); 465 brAction->setOn(false);
455 return; 466 return;
456 } 467 }
457 qDebug("KO: Enable BeamReceive "); 468 qDebug("KO: Enable BeamReceive ");
458 brAction->setOn(true); 469 brAction->setOn(true);
459 infrared = new QCopChannel("QPE/Application/datebook",this, "channel" ) ; 470 infrared = new QCopChannel("QPE/Application/datebook",this, "channel" ) ;
460 QObject::connect( infrared, SIGNAL (received ( const QCString &, const QByteArray & )),this, SLOT(recieve( const QCString&, const QByteArray& ))); 471 QObject::connect( infrared, SIGNAL (received ( const QCString &, const QByteArray & )),this, SLOT(recieve( const QCString&, const QByteArray& )));
461#endif 472#endif
462} 473}
463void MainWindow::showMaximized () 474void MainWindow::showMaximized ()
464{ 475{
465#ifndef DESKTOP_VERSION 476#ifndef DESKTOP_VERSION
466 if ( ! globalFlagBlockStartup ) 477 if ( ! globalFlagBlockStartup )
467 if ( mClosed ) 478 if ( mClosed )
468 mView->goToday(); 479 mView->goToday();
469#endif 480#endif
470 QWidget::showMaximized () ; 481 QWidget::showMaximized () ;
471 mClosed = false; 482 mClosed = false;
472} 483}
473void MainWindow::closeEvent( QCloseEvent* ce ) 484void MainWindow::closeEvent( QCloseEvent* ce )
474{ 485{
475 486
476 487
477 488
478 if ( ! KOPrefs::instance()->mAskForQuit ) { 489 if ( ! KOPrefs::instance()->mAskForQuit ) {
479 saveOnClose(); 490 saveOnClose();
480 mClosed = true; 491 mClosed = true;
481 ce->accept(); 492 ce->accept();
482 return; 493 return;
483 494
484 } 495 }
485 496
486 switch( QMessageBox::information( this, "KO/Pi", 497 switch( QMessageBox::information( this, "KO/Pi",
487 i18n("Do you really want\nto close KO/Pi?"), 498 i18n("Do you really want\nto close KO/Pi?"),
488 i18n("Close"), i18n("No"), 499 i18n("Close"), i18n("No"),
489 0, 0 ) ) { 500 0, 0 ) ) {
490 case 0: 501 case 0:
491 saveOnClose(); 502 saveOnClose();
492 mClosed = true; 503 mClosed = true;
493 ce->accept(); 504 ce->accept();
494 break; 505 break;
495 case 1: 506 case 1:
496 ce->ignore(); 507 ce->ignore();
497 break; 508 break;
498 case 2: 509 case 2:
499 510
500 default: 511 default:
501 break; 512 break;
502 } 513 }
503 514
504 515
505} 516}
506 517
507void MainWindow::recieve( const QCString& cmsg, const QByteArray& data ) 518void MainWindow::recieve( const QCString& cmsg, const QByteArray& data )
508{ 519{
509 QDataStream stream( data, IO_ReadOnly ); 520 QDataStream stream( data, IO_ReadOnly );
510 // QMessageBox::about( this, "About KOrganizer/Pi", "*" +msg +"*" ); 521 // QMessageBox::about( this, "About KOrganizer/Pi", "*" +msg +"*" );
511 //QString datamess; 522 //QString datamess;
512 //qDebug("message "); 523 //qDebug("message ");
513 qDebug("KO: QCOP message received: %s ", cmsg.data() ); 524 qDebug("KO: QCOP message received: %s ", cmsg.data() );
514 525
515 if ( cmsg == "setDocument(QString)" ) { 526 if ( cmsg == "setDocument(QString)" ) {
516 QDataStream stream( data, IO_ReadOnly ); 527 QDataStream stream( data, IO_ReadOnly );
517 QString fileName; 528 QString fileName;
518 stream >> fileName; 529 stream >> fileName;
519 //qDebug("filename %s ", fileName.latin1()); 530 //qDebug("filename %s ", fileName.latin1());
520 showMaximized(); 531 showMaximized();
521 raise(); 532 raise();
522 KOPrefs::instance()->mLastSyncedLocalFile = fileName ; 533 KOPrefs::instance()->mLastSyncedLocalFile = fileName ;
523 mSyncManager->slotSyncMenu( 1002 ); 534 mSyncManager->slotSyncMenu( 1002 );
524 return; 535 return;
525 } 536 }
526 537
527 if ( cmsg == "-writeFile" ) { 538 if ( cmsg == "-writeFile" ) {
528 // I made from the "-writeFile" an "-writeAlarm" 539 // I made from the "-writeFile" an "-writeAlarm"
529 mView->viewManager()->showWhatsNextView(); 540 mView->viewManager()->showWhatsNextView();
530 mCalendar->checkAlarmForIncidence( 0, true); 541 mCalendar->checkAlarmForIncidence( 0, true);
531 showMaximized(); 542 showMaximized();
532 raise(); 543 raise();
533 return; 544 return;
534 545
535 } 546 }
536 if ( cmsg == "-writeFileSilent" ) { 547 if ( cmsg == "-writeFileSilent" ) {
537 // I made from the "-writeFile" an "-writeAlarm" 548 // I made from the "-writeFile" an "-writeAlarm"
538 // mView->viewManager()->showWhatsNextView(); 549 // mView->viewManager()->showWhatsNextView();
539 mCalendar->checkAlarmForIncidence( 0, true); 550 mCalendar->checkAlarmForIncidence( 0, true);
540 //showMaximized(); 551 //showMaximized();
541 //raise(); 552 //raise();
542 hide(); 553 hide();
543 return; 554 return;
544 } 555 }
545 if ( cmsg == "-newCountdown" ) { 556 if ( cmsg == "-newCountdown" ) {
546 qDebug("newCountdown "); 557 qDebug("newCountdown ");
547 558
548 } 559 }
549 QString msg ; 560 QString msg ;
550 QString allmsg = cmsg; 561 QString allmsg = cmsg;
551 while ( allmsg.length() > 0 ) { 562 while ( allmsg.length() > 0 ) {
552 int nextC = allmsg.find( "-", 1 ); 563 int nextC = allmsg.find( "-", 1 );
553 if ( nextC == -1 ) { 564 if ( nextC == -1 ) {
554 msg = allmsg; 565 msg = allmsg;
555 allmsg = ""; 566 allmsg = "";
556 } else{ 567 } else{
557 msg = allmsg.left( nextC ); 568 msg = allmsg.left( nextC );
558 allmsg = allmsg.mid( nextC, allmsg.length()-nextC ); 569 allmsg = allmsg.mid( nextC, allmsg.length()-nextC );
559 } 570 }
560 //qDebug("msg: %s all: %s ", msg.latin1(), allmsg.latin1() ); 571 //qDebug("msg: %s all: %s ", msg.latin1(), allmsg.latin1() );
561 if ( msg == "-newEvent" ) { 572 if ( msg == "-newEvent" ) {
562 QTimer::singleShot( 0, mView, SLOT ( newEvent())); 573 QTimer::singleShot( 0, mView, SLOT ( newEvent()));
563 } 574 }
564 if ( msg == "-newTodo" ) { 575 if ( msg == "-newTodo" ) {
565 QTimer::singleShot( 0, mView, SLOT ( newTodo())); 576 QTimer::singleShot( 0, mView, SLOT ( newTodo()));
566 } 577 }
567 if ( msg == "-showWN" ) { 578 if ( msg == "-showWN" ) {
568 mView->viewManager()->showWhatsNextView(); 579 mView->viewManager()->showWhatsNextView();
569 } 580 }
570 if ( msg == "-showTodo" ) { 581 if ( msg == "-showTodo" ) {
571 mView->viewManager()->showTodoView(); 582 mView->viewManager()->showTodoView();
572 } 583 }
573 if ( msg == "-showList" ) { 584 if ( msg == "-showList" ) {
574 mView->viewManager()->showListView(); 585 mView->viewManager()->showListView();
575 } 586 }
576 else if ( msg == "-showDay" ) { 587 else if ( msg == "-showDay" ) {
577 mView->viewManager()->showDayView(); 588 mView->viewManager()->showDayView();
578 } 589 }
579 else if ( msg == "-showWWeek" ) { 590 else if ( msg == "-showWWeek" ) {
580 mView->viewManager()->showWorkWeekView(); 591 mView->viewManager()->showWorkWeekView();
581 } 592 }
582 else if ( msg == "-ringSync" ) { 593 else if ( msg == "-ringSync" ) {
583 QTimer::singleShot( 0, this, SLOT (startMultiSync())); 594 QTimer::singleShot( 0, this, SLOT (startMultiSync()));
584 } 595 }
585 else if ( msg == "-showWeek" ) { 596 else if ( msg == "-showWeek" ) {
586 mView->viewManager()->showWeekView(); 597 mView->viewManager()->showWeekView();
587 } 598 }
588 else if ( msg == "-showTodo" ) { 599 else if ( msg == "-showTodo" ) {
589 mView->viewManager()->showTodoView(); 600 mView->viewManager()->showTodoView();
590 } 601 }
591 else if ( msg == "-showJournal" ) { 602 else if ( msg == "-showJournal" ) {
592 mView->dateNavigator()->selectDates( 1 ); 603 mView->dateNavigator()->selectDates( 1 );
593 mView->dateNavigator()->selectToday(); 604 mView->dateNavigator()->selectToday();
594 mView->viewManager()->showJournalView(); 605 mView->viewManager()->showJournalView();
595 } 606 }
596 else if ( msg == "-showKO" ) { 607 else if ( msg == "-showKO" ) {
597 mView->viewManager()->showNextXView(); 608 mView->viewManager()->showNextXView();
598 } 609 }
599 else if ( msg == "-showWNext" ) { 610 else if ( msg == "-showWNext" ) {
600 mView->viewManager()->showWhatsNextView(); 611 mView->viewManager()->showWhatsNextView();
601 } 612 }
602 else if ( msg == "nextView()" ) { 613 else if ( msg == "nextView()" ) {
603 mView->viewManager()->showNextView(); 614 mView->viewManager()->showNextView();
604 } 615 }
605 else if ( msg == "-showNextXView" ) { 616 else if ( msg == "-showNextXView" ) {
606 mView->viewManager()->showNextXView(); 617 mView->viewManager()->showNextXView();
607 } 618 }
608 619
609 620
610 } 621 }
611 622
612 showMaximized(); 623 showMaximized();
613 raise(); 624 raise();
614} 625}
615void MainWindow::startMultiSync() 626void MainWindow::startMultiSync()
616{ 627{
617 QString question = i18n("Do you really want\nto multiple sync\nwith all checked profiles?\nSyncing takes some\ntime - all profiles\nare synced twice!"); 628 QString question = i18n("Do you really want\nto multiple sync\nwith all checked profiles?\nSyncing takes some\ntime - all profiles\nare synced twice!");
618 if ( QMessageBox::information( this, i18n("KDE-Pim Sync"), 629 if ( QMessageBox::information( this, i18n("KDE-Pim Sync"),
619 question, 630 question,
620 i18n("Yes"), i18n("No"), 631 i18n("Yes"), i18n("No"),
621 0, 0 ) != 0 ) { 632 0, 0 ) != 0 ) {
622 setCaption(i18n("Aborted! Nothing synced!")); 633 setCaption(i18n("Aborted! Nothing synced!"));
623 return; 634 return;
624 } 635 }
625 mSyncManager->multiSync( false ); 636 mSyncManager->multiSync( false );
626#ifndef DESKTOP_VERSION 637#ifndef DESKTOP_VERSION
627 QCopEnvelope e("QPE/Application/kapi", "doRingSync"); 638 QCopEnvelope e("QPE/Application/kapi", "doRingSync");
628#endif 639#endif
629} 640}
630QPixmap MainWindow::loadPixmap( QString name ) 641QPixmap MainWindow::loadPixmap( QString name )
631{ 642{
632 return SmallIcon( name ); 643 return SmallIcon( name );
633 644
634} 645}
635void MainWindow::setUsesBigPixmaps ( bool b ) 646void MainWindow::setUsesBigPixmaps ( bool b )
636{ 647{
637 qDebug("KO: MainWindow::setUsesBigPixmaps %d called", b); 648 qDebug("KO: MainWindow::setUsesBigPixmaps %d called", b);
638 if ( b ) 649 if ( b )
639 qDebug("KO: BigPixmaps are not supported "); 650 qDebug("KO: BigPixmaps are not supported ");
640} 651}
641void MainWindow::initActions() 652void MainWindow::initActions()
642{ 653{
643 //KOPrefs::instance()->mShowFullMenu 654 //KOPrefs::instance()->mShowFullMenu
644 iconToolBar->clear(); 655 iconToolBar->clear();
645 KOPrefs *p = KOPrefs::instance(); 656 KOPrefs *p = KOPrefs::instance();
646 //QPEMenuBar *menuBar1;// = new QPEMenuBar( iconToolBar ); 657 //QPEMenuBar *menuBar1;// = new QPEMenuBar( iconToolBar );
647 658
648 QPopupMenu *viewMenu = new QPopupMenu( this ); 659 QPopupMenu *viewMenu = new QPopupMenu( this );
649 QPopupMenu *actionMenu = new QPopupMenu( this ); 660 QPopupMenu *actionMenu = new QPopupMenu( this );
650 mCurrentItemMenu = new QPopupMenu ( this ); 661 mCurrentItemMenu = new QPopupMenu ( this );
651 QPopupMenu *importMenu = new QPopupMenu( this ); 662 QPopupMenu *importMenu = new QPopupMenu( this );
652 QPopupMenu *importMenu_X = new QPopupMenu( this ); 663 QPopupMenu *importMenu_X = new QPopupMenu( this );
653 QPopupMenu *exportMenu_X = new QPopupMenu( this ); 664 QPopupMenu *exportMenu_X = new QPopupMenu( this );
654 QPopupMenu *beamMenu_X = new QPopupMenu( this ); 665 QPopupMenu *beamMenu_X = new QPopupMenu( this );
655 selectFilterMenu = new QPopupMenu( this ); 666 selectFilterMenu = new QPopupMenu( this );
656 selectFilterMenu->setCheckable( true ); 667 selectFilterMenu->setCheckable( true );
657 syncMenu = new QPopupMenu( this ); 668 syncMenu = new QPopupMenu( this );
658 configureAgendaMenu = new QPopupMenu( this ); 669 configureAgendaMenu = new QPopupMenu( this );
659 configureToolBarMenu = new QPopupMenu( this ); 670 configureToolBarMenu = new QPopupMenu( this );
660 QPopupMenu *helpMenu = new QPopupMenu( this ); 671 QPopupMenu *helpMenu = new QPopupMenu( this );
661 QIconSet icon; 672 QIconSet icon;
662 int pixWid = 22, pixHei = 22; 673 int pixWid = 22, pixHei = 22;
663 QString pathString = ""; 674 QString pathString = "";
664 if ( !p->mToolBarMiniIcons ) { 675 if ( !p->mToolBarMiniIcons ) {
665 if ( QApplication::desktop()->width() < 480 /*|| QApplication::desktop()->height() < 320*/) { 676 if ( QApplication::desktop()->width() < 480 /*|| QApplication::desktop()->height() < 320*/) {
666 pathString += "icons16/"; 677 pathString += "icons16/";
667 pixWid = 18; pixHei = 16; 678 pixWid = 18; pixHei = 16;
668 } 679 }
669 } else { 680 } else {
670 pathString += "iconsmini/"; 681 pathString += "iconsmini/";
671 pixWid = 18; pixHei = 16; 682 pixWid = 18; pixHei = 16;
672 } 683 }
673 if ( KOPrefs::instance()->mShowFullMenu ) { 684 if ( KOPrefs::instance()->mShowFullMenu ) {
674 QMenuBar *menuBar1; 685 QMenuBar *menuBar1;
675 menuBar1 = menuBar(); 686 menuBar1 = menuBar();
676 menuBar1->insertItem( i18n("File"), importMenu ); 687 menuBar1->insertItem( i18n("File"), importMenu );
677 menuBar1->insertItem( i18n("View"), viewMenu ); 688 menuBar1->insertItem( i18n("View"), viewMenu );
678 menuBar1->insertItem( i18n("Edit"), mCurrentItemMenu ); 689 menuBar1->insertItem( i18n("Edit"), mCurrentItemMenu );
679 menuBar1->insertItem( i18n("Action"), actionMenu ); 690 menuBar1->insertItem( i18n("Action"), actionMenu );
680#ifdef DESKTOP_VERSION 691#ifdef DESKTOP_VERSION
681 menuBar1->insertItem( i18n("Synchronize"), syncMenu ); 692 menuBar1->insertItem( i18n("Synchronize"), syncMenu );
682 menuBar1->insertItem( i18n("AgendaSize"),configureAgendaMenu ); 693 menuBar1->insertItem( i18n("AgendaSize"),configureAgendaMenu );
683#else 694#else
684 menuBar1->insertItem( i18n("Sync"), syncMenu ); 695 menuBar1->insertItem( i18n("Sync"), syncMenu );
685 menuBar1->insertItem( i18n("Agenda"),configureAgendaMenu ); 696 menuBar1->insertItem( i18n("Agenda"),configureAgendaMenu );
686#endif 697#endif
687 //menuBar1->insertItem( i18n("Toolbar"),configureToolBarMenu ); 698 //menuBar1->insertItem( i18n("Toolbar"),configureToolBarMenu );
688 menuBar1->insertItem( i18n("Filter"),selectFilterMenu ); 699 menuBar1->insertItem( i18n("Filter"),selectFilterMenu );
689 menuBar1->insertItem( i18n("Help"), helpMenu ); 700 menuBar1->insertItem( i18n("Help"), helpMenu );
690 } else { 701 } else {
691 QPEMenuBar *menuBar1; 702 QPEMenuBar *menuBar1;
692 menuBar1 = new QPEMenuBar( iconToolBar ); 703 menuBar1 = new QPEMenuBar( iconToolBar );
693 QPopupMenu *menuBar = new QPopupMenu( this ); 704 QPopupMenu *menuBar = new QPopupMenu( this );
694 icon = loadPixmap( pathString + "z_menu" ); 705 icon = loadPixmap( pathString + "z_menu" );
695 menuBar1->insertItem( icon.pixmap(), menuBar); 706 menuBar1->insertItem( icon.pixmap(), menuBar);
696 //menuBar1->insertItem( i18n("ME"), menuBar); 707 //menuBar1->insertItem( i18n("ME"), menuBar);
697 menuBar->insertItem( i18n("File"), importMenu ); 708 menuBar->insertItem( i18n("File"), importMenu );
698 menuBar->insertItem( i18n("View"), viewMenu ); 709 menuBar->insertItem( i18n("View"), viewMenu );
699 menuBar->insertItem( i18n("Edit"), mCurrentItemMenu ); 710 menuBar->insertItem( i18n("Edit"), mCurrentItemMenu );
700 menuBar->insertItem( i18n("Action"), actionMenu ); 711 menuBar->insertItem( i18n("Action"), actionMenu );
701 menuBar->insertItem( i18n("Synchronize"), syncMenu ); 712 menuBar->insertItem( i18n("Synchronize"), syncMenu );
702 menuBar->insertItem( i18n("AgendaSize"),configureAgendaMenu ); 713 menuBar->insertItem( i18n("AgendaSize"),configureAgendaMenu );
703 menuBar->insertItem( i18n("Toolbar"),configureToolBarMenu ); 714 menuBar->insertItem( i18n("Toolbar"),configureToolBarMenu );
704 menuBar->insertItem( i18n("Filter"),selectFilterMenu ); 715 menuBar->insertItem( i18n("Filter"),selectFilterMenu );
705 menuBar->insertItem( i18n("Help"), helpMenu ); 716 menuBar->insertItem( i18n("Help"), helpMenu );
706 //menuBar1->setMaximumWidth( menuBar1->sizeHint().width() ); 717 //menuBar1->setMaximumWidth( menuBar1->sizeHint().width() );
707 menuBar1->setMaximumSize( menuBar1->sizeHint( )); 718 menuBar1->setMaximumSize( menuBar1->sizeHint( ));
708 } 719 }
709 connect ( selectFilterMenu, SIGNAL( activated ( int ) ), this, SLOT (selectFilter( int ) ) ); 720 connect ( selectFilterMenu, SIGNAL( activated ( int ) ), this, SLOT (selectFilter( int ) ) );
710 connect ( selectFilterMenu, SIGNAL( aboutToShow() ), this, SLOT (fillFilterMenu() ) ); 721 connect ( selectFilterMenu, SIGNAL( aboutToShow() ), this, SLOT (fillFilterMenu() ) );
711 722
712 723
713 mWeekBgColor = iconToolBar->backgroundColor(); 724 mWeekBgColor = iconToolBar->backgroundColor();
714 mWeekPixmap.resize( pixWid , pixHei ); 725 mWeekPixmap.resize( pixWid , pixHei );
715 mWeekPixmap.fill( mWeekBgColor ); 726 mWeekPixmap.fill( mWeekBgColor );
716 icon = mWeekPixmap; 727 icon = mWeekPixmap;
717 mWeekAction = new QAction( i18n("Select week number"),icon, i18n("Select week number"), 0, this ); 728 mWeekAction = new QAction( i18n("Select week number"),icon, i18n("Select week number"), 0, this );
718 if ( p-> mShowIconWeekNum ) 729 if ( p-> mShowIconWeekNum )
719 mWeekAction->addTo( iconToolBar ); 730 mWeekAction->addTo( iconToolBar );
720 mWeekFont = font(); 731 mWeekFont = font();
721 732
722 int fontPoint = mWeekFont.pointSize(); 733 int fontPoint = mWeekFont.pointSize();
723 QFontMetrics f( mWeekFont ); 734 QFontMetrics f( mWeekFont );
724 int fontWid = f.width( "30" ); 735 int fontWid = f.width( "30" );
725 while ( fontWid > pixWid ) { 736 while ( fontWid > pixWid ) {
726 --fontPoint; 737 --fontPoint;
727 mWeekFont.setPointSize( fontPoint ); 738 mWeekFont.setPointSize( fontPoint );
728 QFontMetrics f( mWeekFont ); 739 QFontMetrics f( mWeekFont );
729 fontWid = f.width( "30" ); 740 fontWid = f.width( "30" );
730 //qDebug("dec-- "); 741 //qDebug("dec-- ");
731 } 742 }
732 743
733 connect( mWeekAction, SIGNAL( activated() ), 744 connect( mWeekAction, SIGNAL( activated() ),
734 this, SLOT( weekAction() ) ); 745 this, SLOT( weekAction() ) );
735 746
736 connect( this, SIGNAL( selectWeek ( int ) ), mView->dateNavigator(), SLOT( selectWeek ( int ) ) ); 747 connect( this, SIGNAL( selectWeek ( int ) ), mView->dateNavigator(), SLOT( selectWeek ( int ) ) );
737 if ( p->mShowIconFilterview ) { 748 if ( p->mShowIconFilterview ) {
738 icon = loadPixmap( pathString + "filter" ); 749 icon = loadPixmap( pathString + "filter" );
739 actionFilterMenuTB = new QAction( i18n("Filter selector"), icon, i18n("Filter selector"), 0, this ); 750 actionFilterMenuTB = new QAction( i18n("Filter selector"), icon, i18n("Filter selector"), 0, this );
740 connect( actionFilterMenuTB, SIGNAL( activated() ), 751 connect( actionFilterMenuTB, SIGNAL( activated() ),
741 this, SLOT( fillFilterMenuTB() ) ); 752 this, SLOT( fillFilterMenuTB() ) );
742 actionFilterMenuTB->addTo( iconToolBar ); 753 actionFilterMenuTB->addTo( iconToolBar );
743 selectFilterMenuTB = new QPopupMenu( this ); 754 selectFilterMenuTB = new QPopupMenu( this );
744 selectFilterMenuTB->setCheckable( true ); 755 selectFilterMenuTB->setCheckable( true );
745 connect ( selectFilterMenuTB, SIGNAL( activated ( int ) ), this, SLOT (selectFilter( int ) ) ); 756 connect ( selectFilterMenuTB, SIGNAL( activated ( int ) ), this, SLOT (selectFilter( int ) ) );
746 } 757 }
747 758
748 //#endif 759 //#endif
749 // ****************** 760 // ******************
750 QAction *action; 761 QAction *action;
751 // QPopupMenu *configureMenu= new QPopupMenu( menuBar ); 762 // QPopupMenu *configureMenu= new QPopupMenu( menuBar );
752 configureToolBarMenu->setCheckable( true ); 763 configureToolBarMenu->setCheckable( true );
753 764
754 765
755 configureAgendaMenu->setCheckable( true ); 766 configureAgendaMenu->setCheckable( true );
756 int iii ; 767 int iii ;
757 for ( iii = 1;iii<= 10 ;++iii ){ 768 for ( iii = 1;iii<= 10 ;++iii ){
758 configureAgendaMenu->insertItem(i18n("Size %1").arg(iii), (iii+1)*2 ); 769 configureAgendaMenu->insertItem(i18n("Size %1").arg(iii), (iii+1)*2 );
759 } 770 }
760 //configureMenu->insertItem( "AgendaSize",configureAgendaMenu ); 771 //configureMenu->insertItem( "AgendaSize",configureAgendaMenu );
761 772
762 connect( configureAgendaMenu, SIGNAL( aboutToShow()), 773 connect( configureAgendaMenu, SIGNAL( aboutToShow()),
763 this, SLOT( showConfigureAgenda( ) ) ); 774 this, SLOT( showConfigureAgenda( ) ) );
764 icon = loadPixmap( pathString + "today" ); 775 icon = loadPixmap( pathString + "today" );
765 QAction* today_action = new QAction( i18n("Go to Today"), icon, i18n("Go to Today"), 0, this ); 776 QAction* today_action = new QAction( i18n("Go to Today"), icon, i18n("Go to Today"), 0, this );
766 today_action->addTo( actionMenu ); 777 today_action->addTo( actionMenu );
767 connect( today_action, SIGNAL( activated() ), 778 connect( today_action, SIGNAL( activated() ),
768 mView, SLOT( goToday() ) ); 779 mView, SLOT( goToday() ) );
769 780
770 icon = loadPixmap( pathString + "picker" ); 781 icon = loadPixmap( pathString + "picker" );
771 QAction* dPickerAction = new QAction( i18n("Select Date..."), icon, i18n("Select Date..."), 0, this ); 782 QAction* dPickerAction = new QAction( i18n("Select Date..."), icon, i18n("Select Date..."), 0, this );
772 dPickerAction->addTo( actionMenu ); 783 dPickerAction->addTo( actionMenu );
773 connect( dPickerAction, SIGNAL( activated() ), 784 connect( dPickerAction, SIGNAL( activated() ),
774 mView, SLOT( showDatePicker() ) ); 785 mView, SLOT( showDatePicker() ) );
775 786
776 icon = loadPixmap( pathString + "search" ); 787 icon = loadPixmap( pathString + "search" );
777 QAction* search_action = new QAction( i18n("Search"), icon, i18n("Search..."), 0, this ); 788 QAction* search_action = new QAction( i18n("Search"), icon, i18n("Search..."), 0, this );
778 search_action->addTo( actionMenu ); 789 search_action->addTo( actionMenu );
779 connect( search_action, SIGNAL( activated() ), 790 connect( search_action, SIGNAL( activated() ),
780 mView->dialogManager(), SLOT( showSearchDialog() ) ); 791 mView->dialogManager(), SLOT( showSearchDialog() ) );
781 792
782 actionMenu->insertSeparator(); 793 actionMenu->insertSeparator();
783 794
784 795
785 796
786 action = new QAction( i18n("Undo Delete"), i18n("Undo Delete..."), 0, this ); 797 action = new QAction( i18n("Undo Delete"), i18n("Undo Delete..."), 0, this );
787 action->addTo( mCurrentItemMenu ); 798 action->addTo( mCurrentItemMenu );
788 connect( action, SIGNAL( activated() ), 799 connect( action, SIGNAL( activated() ),
789 mView, SLOT( undo_delete() ) ); 800 mView, SLOT( undo_delete() ) );
790 mCurrentItemMenu->insertSeparator(); 801 mCurrentItemMenu->insertSeparator();
791 icon = loadPixmap( pathString + "newevent" ); 802 icon = loadPixmap( pathString + "newevent" );
792 configureToolBarMenu->insertItem(i18n("Stretched TB"), 5 ); 803 configureToolBarMenu->insertItem(i18n("Stretched TB"), 5 );
793 configureToolBarMenu->insertItem(i18n("Only one toolbar"), 6 ); 804 configureToolBarMenu->insertItem(i18n("Only one toolbar"), 6 );
794 configureToolBarMenu->insertSeparator(); 805 configureToolBarMenu->insertSeparator();
795 configureToolBarMenu->insertItem(i18n("Filtermenu"), 7 ); 806 configureToolBarMenu->insertItem(i18n("Filtermenu"), 7 );
796 configureToolBarMenu->insertSeparator(); 807 configureToolBarMenu->insertSeparator();
797 configureToolBarMenu->insertItem(i18n("Week Number"), 400); 808 configureToolBarMenu->insertItem(i18n("Week Number"), 400);
798 configureToolBarMenu->insertItem(icon, i18n("New Event..."), 10 ); 809 configureToolBarMenu->insertItem(icon, i18n("New Event..."), 10 );
799 810
800 //actionMenu->insertItem ( i18n("Selected Item"), mCurrentItemMenu); 811 //actionMenu->insertItem ( i18n("Selected Item"), mCurrentItemMenu);
801 mShowAction = new QAction( "show_incidence", i18n("Show"), 0, this ); 812 mShowAction = new QAction( "show_incidence", i18n("Show"), 0, this );
802 mShowAction->addTo( mCurrentItemMenu ); 813 mShowAction->addTo( mCurrentItemMenu );
803 connect( mShowAction, SIGNAL( activated() ), 814 connect( mShowAction, SIGNAL( activated() ),
804 mView, SLOT( showIncidence() ) ); 815 mView, SLOT( showIncidence() ) );
805 816
806 mEditAction = new QAction( "edit_incidence", i18n("Edit..."), 0, this ); 817 mEditAction = new QAction( "edit_incidence", i18n("Edit..."), 0, this );
807 mEditAction->addTo( mCurrentItemMenu ); 818 mEditAction->addTo( mCurrentItemMenu );
808 connect( mEditAction, SIGNAL( activated() ), 819 connect( mEditAction, SIGNAL( activated() ),
809 mView, SLOT( editIncidence() ) ); 820 mView, SLOT( editIncidence() ) );
810 821
811 mDeleteAction = new QAction( "delete_incidence", i18n("Delete..."), 0, this ); 822 mDeleteAction = new QAction( "delete_incidence", i18n("Delete..."), 0, this );
812 mDeleteAction->addTo( mCurrentItemMenu ); 823 mDeleteAction->addTo( mCurrentItemMenu );
813 connect( mDeleteAction, SIGNAL( activated() ), 824 connect( mDeleteAction, SIGNAL( activated() ),
814 mView, SLOT( deleteIncidence() ) ); 825 mView, SLOT( deleteIncidence() ) );
815 826
816 827
817 mCloneAction = new QAction( "clone_incidence", i18n("Clone..."), 0, this ); 828 mCloneAction = new QAction( "clone_incidence", i18n("Clone..."), 0, this );
818 mCloneAction->addTo( mCurrentItemMenu ); 829 mCloneAction->addTo( mCurrentItemMenu );
819 connect( mCloneAction, SIGNAL( activated() ), 830 connect( mCloneAction, SIGNAL( activated() ),
820 mView, SLOT( cloneIncidence() ) ); 831 mView, SLOT( cloneIncidence() ) );
821 mMoveAction = new QAction( "Move_incidence", i18n("Move..."), 0, this ); 832 mMoveAction = new QAction( "Move_incidence", i18n("Move..."), 0, this );
822 mMoveAction->addTo( mCurrentItemMenu ); 833 mMoveAction->addTo( mCurrentItemMenu );
823 connect( mMoveAction, SIGNAL( activated() ), 834 connect( mMoveAction, SIGNAL( activated() ),
824 mView, SLOT( moveIncidence() ) ); 835 mView, SLOT( moveIncidence() ) );
825#ifndef DESKTOP_VERSION 836#ifndef DESKTOP_VERSION
826 mBeamAction = new QAction( "Beam_incidence", i18n("Beam..."), 0, this ); 837 mBeamAction = new QAction( "Beam_incidence", i18n("Beam..."), 0, this );
827 mBeamAction->addTo(mCurrentItemMenu ); 838 mBeamAction->addTo(mCurrentItemMenu );
828 connect( mBeamAction, SIGNAL( activated() ), 839 connect( mBeamAction, SIGNAL( activated() ),
829 mView, SLOT( beamIncidence() ) ); 840 mView, SLOT( beamIncidence() ) );
830#endif 841#endif
831 mCancelAction = new QAction( "Cancel_incidence", i18n("Toggle Cancel"), 0, this ); 842 mCancelAction = new QAction( "Cancel_incidence", i18n("Toggle Cancel"), 0, this );
832 mCancelAction->addTo( mCurrentItemMenu ); 843 mCancelAction->addTo( mCurrentItemMenu );
833 connect( mCancelAction, SIGNAL( activated() ), 844 connect( mCancelAction, SIGNAL( activated() ),
834 mView, SLOT( toggleCancelIncidence() ) ); 845 mView, SLOT( toggleCancelIncidence() ) );
835 846
836 QAction* ne_action = new QAction( i18n("New Event..."), icon, i18n("New Event..."), 0, this ); 847 QAction* ne_action = new QAction( i18n("New Event..."), icon, i18n("New Event..."), 0, this );
837 ne_action->addTo( actionMenu ); 848 ne_action->addTo( actionMenu );
838 connect( ne_action, SIGNAL( activated() ), 849 connect( ne_action, SIGNAL( activated() ),
839 mView, SLOT( newEvent() ) ); 850 mView, SLOT( newEvent() ) );
840 icon = loadPixmap( pathString + "newtodo" ); 851 icon = loadPixmap( pathString + "newtodo" );
841 configureToolBarMenu->insertItem(icon, i18n("New Todo..."), 20 ); 852 configureToolBarMenu->insertItem(icon, i18n("New Todo..."), 20 );
842 QAction* nt_action = new QAction( i18n("New Todo..."), icon, i18n("New Todo..."), 0, this ); 853 QAction* nt_action = new QAction( i18n("New Todo..."), icon, i18n("New Todo..."), 0, this );
843 nt_action->addTo( actionMenu ); 854 nt_action->addTo( actionMenu );
844 connect( nt_action, SIGNAL( activated() ), 855 connect( nt_action, SIGNAL( activated() ),
845 mView, SLOT( newTodo() ) ); 856 mView, SLOT( newTodo() ) );
846 857
847 858
848 859
849 // *********************** 860 // ***********************
850 if ( KOPrefs::instance()->mVerticalScreen ) { 861 if ( KOPrefs::instance()->mVerticalScreen ) {
851 icon = SmallIcon( "1updownarrow" ); 862 icon = SmallIcon( "1updownarrow" );
852 } else { 863 } else {
853 icon = SmallIcon("1leftrightarrow" ); 864 icon = SmallIcon("1leftrightarrow" );
854 } 865 }
855 configureToolBarMenu->insertItem(icon, i18n("Toggle Fullscreen"), 28 ); 866 configureToolBarMenu->insertItem(icon, i18n("Toggle Fullscreen"), 28 );
856 QAction* FSaction = new QAction( i18n("Toggle Fullscreen"), icon, i18n("Toggle Fullscreen"), 0, this ); 867 QAction* FSaction = new QAction( i18n("Toggle Fullscreen"), icon, i18n("Toggle Fullscreen"), 0, this );
857 FSaction->addTo( viewMenu ); 868 FSaction->addTo( viewMenu );
858 connect( FSaction, SIGNAL( activated() ), mView, SLOT( toggleExpand() )); 869 connect( FSaction, SIGNAL( activated() ), mView, SLOT( toggleExpand() ));
859 870
860 871
861 icon = loadPixmap( pathString + "filter" ); 872 icon = loadPixmap( pathString + "filter" );
862 configureToolBarMenu->insertItem(icon, i18n("Filter menu icon"), 26 ); 873 configureToolBarMenu->insertItem(icon, i18n("Filter menu icon"), 26 );
863 icon = loadPixmap( pathString + "configure" ); 874 icon = loadPixmap( pathString + "configure" );
864 action = new QAction( i18n("Toggle Resource View"), icon, i18n("Toggle Resource View"), 0, this ); 875 action = new QAction( i18n("Toggle Resource View"), icon, i18n("Toggle Resource View"), 0, this );
865 action->addTo( viewMenu ); 876 action->addTo( viewMenu );
866 connect( action, SIGNAL( activated() ), 877 connect( action, SIGNAL( activated() ),
867 mView, SLOT( toggleFilter() ) ); 878 mView, SLOT( toggleFilter() ) );
868 mToggleFilter = action; 879 mToggleFilter = action;
869 icon = loadPixmap( pathString + "navi" ); 880 icon = loadPixmap( pathString + "navi" );
870 configureToolBarMenu->insertItem(icon, i18n("Toggle DateNavigator"), 22 ); 881 configureToolBarMenu->insertItem(icon, i18n("Toggle DateNavigator"), 22 );
871 action = new QAction( i18n("Toggle DateNavigator"), icon, i18n("Toggle DateNavigator"), 0, this ); 882 action = new QAction( i18n("Toggle DateNavigator"), icon, i18n("Toggle DateNavigator"), 0, this );
872 action->addTo( viewMenu ); 883 action->addTo( viewMenu );
873 connect( action, SIGNAL( activated() ), 884 connect( action, SIGNAL( activated() ),
874 mView, SLOT( toggleDateNavigatorWidget() ) ); 885 mView, SLOT( toggleDateNavigatorWidget() ) );
875 mToggleNav = action ; 886 mToggleNav = action ;
876 icon = loadPixmap( pathString + "allday" ); 887 icon = loadPixmap( pathString + "allday" );
877 configureToolBarMenu->insertItem(icon, i18n("Toggle Allday"), 24 ); 888 configureToolBarMenu->insertItem(icon, i18n("Toggle Allday"), 24 );
878 action = new QAction( i18n("Toggle Allday"), icon,i18n("Toggle Allday"), 0, this ); 889 action = new QAction( i18n("Toggle Allday"), icon,i18n("Toggle Allday"), 0, this );
879 action->addTo( viewMenu ); 890 action->addTo( viewMenu );
880 connect( action, SIGNAL( activated() ), 891 connect( action, SIGNAL( activated() ),
881 mView, SLOT( toggleAllDaySize() ) ); 892 mView, SLOT( toggleAllDaySize() ) );
882 mToggleAllday = action; 893 mToggleAllday = action;
883 894
884 895
885 connect( mView->viewManager(), SIGNAL( signalFullScreen( bool ) ), 896 connect( mView->viewManager(), SIGNAL( signalFullScreen( bool ) ),
886 mToggleNav, SLOT( setEnabled ( bool ) ) ); 897 mToggleNav, SLOT( setEnabled ( bool ) ) );
887 //connect( mView->viewManager(), SIGNAL( signalFullScreen( bool ) ), 898 //connect( mView->viewManager(), SIGNAL( signalFullScreen( bool ) ),
888 // mToggleFilter, SLOT( setEnabled ( bool ) ) ); 899 // mToggleFilter, SLOT( setEnabled ( bool ) ) );
889 connect( mView->viewManager(), SIGNAL( signalAgendaView( bool ) ), 900 connect( mView->viewManager(), SIGNAL( signalAgendaView( bool ) ),
890 mToggleAllday, SLOT( setEnabled ( bool ) ) ); 901 mToggleAllday, SLOT( setEnabled ( bool ) ) );
891 // connect( mView->viewManager(), SIGNAL( signalAgendaView( bool ) ), 902 // connect( mView->viewManager(), SIGNAL( signalAgendaView( bool ) ),
892 // configureAgendaMenu, SLOT( setEnabled ( bool ) ) ); 903 // configureAgendaMenu, SLOT( setEnabled ( bool ) ) );
893 904
894 905
895 dPickerAction->addTo( iconToolBar ); 906 dPickerAction->addTo( iconToolBar );
896 viewMenu->insertSeparator(); 907 viewMenu->insertSeparator();
897 908
898 if ( p-> mShowIconToggleFull ) 909 if ( p-> mShowIconToggleFull )
899 FSaction->addTo( iconToolBar ); 910 FSaction->addTo( iconToolBar );
900 if ( p->mShowIconNavigator ) mToggleNav ->addTo( iconToolBar ); 911 if ( p->mShowIconNavigator ) mToggleNav ->addTo( iconToolBar );
901 912
902 //******************** 913 //********************
903 if ( p->mShowIconAllday ) mToggleAllday->addTo( iconToolBar ); 914 if ( p->mShowIconAllday ) mToggleAllday->addTo( iconToolBar );
904 915
905 916
906 icon = loadPixmap( pathString + "whatsnext" ); 917 icon = loadPixmap( pathString + "whatsnext" );
907 configureToolBarMenu->insertItem(icon, i18n("What's Next"), 110 ); 918 configureToolBarMenu->insertItem(icon, i18n("What's Next"), 110 );
908 QAction* whatsnext_action = new QAction( i18n("What's Next"), icon, i18n("What's Next"), 0, this ); 919 QAction* whatsnext_action = new QAction( i18n("What's Next"), icon, i18n("What's Next"), 0, this );
909 whatsnext_action->addTo( viewMenu ); 920 whatsnext_action->addTo( viewMenu );
910 connect( whatsnext_action, SIGNAL( activated() ), 921 connect( whatsnext_action, SIGNAL( activated() ),
911 mView->viewManager(), SLOT( showWhatsNextView() ) ); 922 mView->viewManager(), SLOT( showWhatsNextView() ) );
912 923
913 icon = loadPixmap( pathString + "xdays" ); 924 icon = loadPixmap( pathString + "xdays" );
914 configureToolBarMenu->insertItem(icon, i18n("Next days"), 100 ); 925 configureToolBarMenu->insertItem(icon, i18n("Next days"), 100 );
915 QAction* xdays_action = new QAction( i18n("Next days"), icon, i18n("Next days"), 0, this ); 926 QAction* xdays_action = new QAction( i18n("Next days"), icon, i18n("Next days"), 0, this );
916 xdays_action->addTo( viewMenu ); 927 xdays_action->addTo( viewMenu );
917 connect( xdays_action, SIGNAL( activated() ), 928 connect( xdays_action, SIGNAL( activated() ),
918 mView->viewManager(), SLOT( showNextXView() ) ); 929 mView->viewManager(), SLOT( showNextXView() ) );
919 930
920 931
921 icon = loadPixmap( pathString + "journal" ); 932 icon = loadPixmap( pathString + "journal" );
922 configureToolBarMenu->insertItem(icon, i18n("Journal"), 90 ); 933 configureToolBarMenu->insertItem(icon, i18n("Journal"), 90 );
923 QAction* viewjournal_action = new QAction( i18n("Journal"), icon, i18n("Journal"), 0, this ); 934 QAction* viewjournal_action = new QAction( i18n("Journal"), icon, i18n("Journal"), 0, this );
924 viewjournal_action->addTo( viewMenu ); 935 viewjournal_action->addTo( viewMenu );
925 connect( viewjournal_action, SIGNAL( activated() ), 936 connect( viewjournal_action, SIGNAL( activated() ),
926 mView->viewManager(), SLOT( showJournalView() ) ); 937 mView->viewManager(), SLOT( showJournalView() ) );
927 938
928 939
929 icon = loadPixmap( pathString + "day" ); 940 icon = loadPixmap( pathString + "day" );
930 configureToolBarMenu->insertItem(icon, i18n("Day View"), 40 ); 941 configureToolBarMenu->insertItem(icon, i18n("Day View"), 40 );
diff --git a/korganizer/mainwindow.h b/korganizer/mainwindow.h
index adab95d..41d5807 100644
--- a/korganizer/mainwindow.h
+++ b/korganizer/mainwindow.h
@@ -1,173 +1,173 @@
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 ); 39 MainWindow( QWidget *parent = 0, const char *name = 0 );
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 calHint(); 55 void calHint();
56 void startMultiSync(); 56 void startMultiSync();
57 void setCaptionToDates(); 57 void setCaptionToDates();
58 void weekAction(); 58 void weekAction();
59 void about(); 59 void about();
60 void licence(); 60 void licence();
61 void faq(); 61 void faq();
62 void usertrans(); 62 void usertrans();
63 void features(); 63 void features();
64 void synchowto(); 64 void synchowto();
65 void storagehowto(); 65 void storagehowto();
66 void timetrackinghowto(); 66 void timetrackinghowto();
67 void kdesynchowto(); 67 void kdesynchowto();
68 void multisynchowto(); 68 void multisynchowto();
69 void whatsNew(); 69 void whatsNew();
70 void keyBindings(); 70 void keyBindings();
71 void aboutAutoSaving();; 71 void aboutAutoSaving();;
72 void aboutKnownBugs(); 72 void aboutKnownBugs();
73 73
74 void processIncidenceSelection( Incidence * ); 74 void processIncidenceSelection( Incidence * );
75 75
76 void importQtopia(); 76 void importQtopia();
77 void importBday(); 77 void importBday();
78 void importOL(); 78 void importOL();
79 void importIcal(); 79 void importIcal();
80 void importFile( QString, bool ); 80 void importFile( QString, bool );
81 void quickImportIcal(); 81 void quickImportIcal();
82 82
83 void slotModifiedChanged( bool ); 83 void slotModifiedChanged( bool );
84 84
85 void save(); 85 void save();
86 void backupAllFiles(); 86 void backupAllFiles();
87 void saveStopTimer(); 87 void saveStopTimer();
88 void configureToolBar( int ); 88 void configureToolBar( int );
89 void printSel(); 89 void printSel();
90 void printCal(); 90 void printCal();
91 void printListView(); 91 void printListView();
92 void saveCalendar(); 92 void saveCalendar();
93 void loadCalendar(); 93 void loadCalendar();
94 void exportVCalendar(); 94 void exportVCalendar();
95 void fillFilterMenu(); 95 void fillFilterMenu();
96 void fillFilterMenuTB(); 96 void fillFilterMenuTB();
97 void selectFilter( int ); 97 void selectFilter( int );
98 void fillFilterMenuPopup(); 98 void fillFilterMenuPopup();
99 void selectFilterPopup( int ); 99 void selectFilterPopup( int );
100 void exportToPhone( int ); 100 void exportToPhone( int );
101 void toggleBeamReceive(); 101 void toggleBeamReceive();
102 void disableBR(bool); 102 void disableBR(bool);
103 signals: 103 signals:
104 void selectWeek ( int ); 104 void selectWeek ( int );
105 private slots: 105 private slots:
106 void showConfigureAgenda(); 106 void showConfigureAgenda();
107 void getFile( bool ); 107 void getFile( bool );
108 void syncFileRequest(); 108 void syncFileRequest();
109 109
110 protected: 110 protected:
111 void hideEvent ( QHideEvent * ); 111 void hideEvent ( QHideEvent * );
112 QString sentSyncFile(); 112 QString sentSyncFile();
113 void displayText( QString, QString); 113 void displayText( QString, QString);
114 void enableIncidenceActions( bool ); 114 void enableIncidenceActions( bool );
115 115
116 private: 116 private:
117 bool mBRdisabled; 117 bool mBRdisabled;
118#ifndef DESKTOP_VERSION 118#ifndef DESKTOP_VERSION
119 QCopChannel* infrared; 119 QCopChannel* infrared;
120#endif 120#endif
121 QAction* brAction; 121 QAction* brAction;
122 KSyncManager* mSyncManager; 122 KSyncManager* mSyncManager;
123 bool mClosed; 123 bool mClosed;
124 void saveOnClose(); 124 void saveOnClose();
125 bool mFlagKeyPressed; 125 bool mFlagKeyPressed;
126 bool mBlockAtStartup; 126 bool mBlockAtStartup;
127 QPEToolBar *iconToolBar; 127 QPEToolBar *iconToolBar;
128 QPEToolBar *viewToolBar; 128 QPEToolBar *viewToolBar;
129 QPEToolBar *navigatorToolBar; 129 QPEToolBar *navigatorToolBar;
130 QPEToolBar *filterToolBar; 130 QPEToolBar *filterToolBar;
131 QMenuBar *filterMenubar; 131 QMenuBar *filterMenubar;
132 QPopupMenu * filterPopupMenu; 132 QPopupMenu * filterPopupMenu;
133 QPopupMenu * mCurrentItemMenu; 133 QPopupMenu * mCurrentItemMenu;
134 void initActions(); 134 void initActions();
135 void setDefaultPreferences(); 135 void setDefaultPreferences();
136 void resizeEvent( QResizeEvent* e); 136 void resizeEvent( QResizeEvent* e);
137 void keyPressEvent ( QKeyEvent * ) ; 137 void keyPressEvent ( QKeyEvent * ) ;
138 void keyReleaseEvent ( QKeyEvent * ) ; 138 void keyReleaseEvent ( QKeyEvent * ) ;
139 QPopupMenu *configureToolBarMenu; 139 QPopupMenu *configureToolBarMenu;
140 QPopupMenu *selectFilterMenu; 140 QPopupMenu *selectFilterMenu;
141 QPopupMenu *selectFilterMenuTB; 141 QPopupMenu *selectFilterMenuTB;
142 QPopupMenu *configureAgendaMenu, *syncMenu; 142 QPopupMenu *configureAgendaMenu, *syncMenu;
143 CalendarLocal *mCalendar; 143 CalendarLocal *mCalendar;
144 CalendarView *mView; 144 CalendarView *mView;
145 QAction *mNewSubTodoAction; 145 QAction *mNewSubTodoAction;
146 QAction *mWeekAction; 146 QAction *mWeekAction;
147 QFont mWeekFont; 147 QFont mWeekFont;
148 QPixmap mWeekPixmap; 148 QPixmap mWeekPixmap;
149 QColor mWeekBgColor; 149 QColor mWeekBgColor;
150 150
151 QAction *mShowAction; 151 QAction *mShowAction;
152 QAction *mEditAction; 152 QAction *mEditAction;
153 QAction *mDeleteAction; 153 QAction *mDeleteAction;
154 QAction *mCloneAction; 154 QAction *mCloneAction;
155 QAction *mMoveAction; 155 QAction *mMoveAction;
156 QAction *mBeamAction; 156 QAction *mBeamAction;
157 QAction *mCancelAction; 157 QAction *mCancelAction;
158 158
159 QAction *mToggleNav; 159 QAction *mToggleNav;
160 QAction *mToggleFilter; 160 QAction *mToggleFilter;
161 QAction *mToggleAllday; 161 QAction *mToggleAllday;
162 QAction *actionFilterMenuTB; 162 QAction *actionFilterMenuTB;
163 163
164 void closeEvent( QCloseEvent* ce ); 164 void closeEvent( QCloseEvent* ce );
165 QTimer mSaveTimer; 165 QTimer mSaveTimer;
166 //bool mBlockSaveFlag; 166 //bool mBlockSaveFlag;
167 bool mCalendarModifiedFlag; 167 bool mCalendarModifiedFlag;
168 QPixmap loadPixmap( QString ); 168 QPixmap loadPixmap( QString );
169 QPixmap listviewPix, listviewPix0, listviewPix20, listviewPix40, listviewPix60, listviewPix80; 169 QPixmap listviewPix, listviewPix0, listviewPix20, listviewPix40, listviewPix60, listviewPix80, journalPix;
170}; 170};
171 171
172 172
173#endif 173#endif