summaryrefslogtreecommitdiffabout
path: root/korganizer
Unidiff
Diffstat (limited to 'korganizer') (more/less context) (ignore whitespace changes)
-rw-r--r--korganizer/calendarview.cpp6
-rw-r--r--korganizer/koprefs.cpp2
-rw-r--r--korganizer/koprefsdialog.cpp106
-rw-r--r--korganizer/mainwindow.cpp2
4 files changed, 70 insertions, 46 deletions
diff --git a/korganizer/calendarview.cpp b/korganizer/calendarview.cpp
index bc8625d..3635cfa 100644
--- a/korganizer/calendarview.cpp
+++ b/korganizer/calendarview.cpp
@@ -1,3616 +1,3620 @@
1/* 1/*
2 This file is part of KOrganizer. 2 This file is part of KOrganizer.
3 3
4 Requires the Qt and KDE widget libraries, available at no cost at 4 Requires the Qt and KDE widget libraries, available at no cost at
5 http://www.troll.no and http://www.kde.org respectively 5 http://www.troll.no and http://www.kde.org respectively
6 6
7 Copyright (c) 1997, 1998, 1999 7 Copyright (c) 1997, 1998, 1999
8 Preston Brown (preston.brown@yale.edu) 8 Preston Brown (preston.brown@yale.edu)
9 Fester Zigterman (F.J.F.ZigtermanRustenburg@student.utwente.nl) 9 Fester Zigterman (F.J.F.ZigtermanRustenburg@student.utwente.nl)
10 Ian Dawes (iadawes@globalserve.net) 10 Ian Dawes (iadawes@globalserve.net)
11 Laszlo Boloni (boloni@cs.purdue.edu) 11 Laszlo Boloni (boloni@cs.purdue.edu)
12 12
13 Copyright (c) 2000, 2001, 2002 13 Copyright (c) 2000, 2001, 2002
14 Cornelius Schumacher <schumacher@kde.org> 14 Cornelius Schumacher <schumacher@kde.org>
15 15
16 This program is free software; you can redistribute it and/or modify 16 This program is free software; you can redistribute it and/or modify
17 it under the terms of the GNU General Public License as published by 17 it under the terms of the GNU General Public License as published by
18 the Free Software Foundation; either version 2 of the License, or 18 the Free Software Foundation; either version 2 of the License, or
19 (at your option) any later version. 19 (at your option) any later version.
20 20
21 This program is distributed in the hope that it will be useful, 21 This program is distributed in the hope that it will be useful,
22 but WITHOUT ANY WARRANTY; without even the implied warranty of 22 but WITHOUT ANY WARRANTY; without even the implied warranty of
23 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.See the 23 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.See the
24 GNU General Public License for more details. 24 GNU General Public License for more details.
25 25
26 You should have received a copy of the GNU General Public License 26 You should have received a copy of the GNU General Public License
27 along with this program; if not, write to the Free Software 27 along with this program; if not, write to the Free Software
28 Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. 28 Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
29*/ 29*/
30 30
31#include <stdlib.h> 31#include <stdlib.h>
32 32
33#include <qapplication.h> 33#include <qapplication.h>
34#include <qradiobutton.h> 34#include <qradiobutton.h>
35#include <qbuttongroup.h> 35#include <qbuttongroup.h>
36#include <qlayout.h> 36#include <qlayout.h>
37#include <qclipboard.h> 37#include <qclipboard.h>
38#include <qcursor.h> 38#include <qcursor.h>
39#include <qmessagebox.h> 39#include <qmessagebox.h>
40#include <qprogressbar.h> 40#include <qprogressbar.h>
41#include <qmultilineedit.h> 41#include <qmultilineedit.h>
42#include <qtimer.h> 42#include <qtimer.h>
43#include <qwidgetstack.h> 43#include <qwidgetstack.h>
44#include <qptrlist.h> 44#include <qptrlist.h>
45#include <qregexp.h> 45#include <qregexp.h>
46#include <qgroupbox.h> 46#include <qgroupbox.h>
47#include <qfile.h> 47#include <qfile.h>
48#include <qdir.h> 48#include <qdir.h>
49#ifndef KORG_NOSPLITTER 49#ifndef KORG_NOSPLITTER
50#include <qsplitter.h> 50#include <qsplitter.h>
51#endif 51#endif
52 52
53#include <kglobal.h> 53#include <kglobal.h>
54#include <kdebug.h> 54#include <kdebug.h>
55#include <kstandarddirs.h> 55#include <kstandarddirs.h>
56#include <kfiledialog.h> 56#include <kfiledialog.h>
57#include <kmessagebox.h> 57#include <kmessagebox.h>
58#include <knotifyclient.h> 58#include <knotifyclient.h>
59#include <kconfig.h> 59#include <kconfig.h>
60 60
61#include <libkdepim/ksyncprefsdialog.h> 61#include <libkdepim/ksyncprefsdialog.h>
62#include <krun.h> 62#include <krun.h>
63#include <kdirwatch.h> 63#include <kdirwatch.h>
64#include <libkdepim/kdatepicker.h> 64#include <libkdepim/kdatepicker.h>
65#include <libkdepim/ksyncprofile.h> 65#include <libkdepim/ksyncprofile.h>
66#include <libkdepim/kpimglobalprefs.h>
66 67
67#include <libkcal/vcaldrag.h> 68#include <libkcal/vcaldrag.h>
68#include <libkcal/icaldrag.h> 69#include <libkcal/icaldrag.h>
69#include <libkcal/icalformat.h> 70#include <libkcal/icalformat.h>
70#include <libkcal/vcalformat.h> 71#include <libkcal/vcalformat.h>
71#include <libkcal/scheduler.h> 72#include <libkcal/scheduler.h>
72#include <libkcal/calendarlocal.h> 73#include <libkcal/calendarlocal.h>
73#include <libkcal/journal.h> 74#include <libkcal/journal.h>
74#include <libkcal/calfilter.h> 75#include <libkcal/calfilter.h>
75#include <libkcal/attendee.h> 76#include <libkcal/attendee.h>
76#include <libkcal/dndfactory.h> 77#include <libkcal/dndfactory.h>
77#include <libkcal/freebusy.h> 78#include <libkcal/freebusy.h>
78#include <libkcal/filestorage.h> 79#include <libkcal/filestorage.h>
79#include <libkcal/calendarresources.h> 80#include <libkcal/calendarresources.h>
80#include <libkcal/qtopiaformat.h> 81#include <libkcal/qtopiaformat.h>
81#include "../kalarmd/alarmdialog.h" 82#include "../kalarmd/alarmdialog.h"
82 83
83#ifndef DESKTOP_VERSION 84#ifndef DESKTOP_VERSION
84#include <libkcal/sharpformat.h> 85#include <libkcal/sharpformat.h>
85#endif 86#endif
86#include <libkcal/phoneformat.h> 87#include <libkcal/phoneformat.h>
87#ifndef KORG_NOMAIL 88#ifndef KORG_NOMAIL
88#include "komailclient.h" 89#include "komailclient.h"
89#endif 90#endif
90#ifndef KORG_NOPRINTER 91#ifndef KORG_NOPRINTER
91#include "calprinter.h" 92#include "calprinter.h"
92#endif 93#endif
93#ifndef KORG_NOPLUGINS 94#ifndef KORG_NOPLUGINS
94#include "kocore.h" 95#include "kocore.h"
95#endif 96#endif
96#include "koeventeditor.h" 97#include "koeventeditor.h"
97#include "kotodoeditor.h" 98#include "kotodoeditor.h"
98#include "koprefs.h" 99#include "koprefs.h"
99#include "koeventviewerdialog.h" 100#include "koeventviewerdialog.h"
100#include "publishdialog.h" 101#include "publishdialog.h"
101#include "kofilterview.h" 102#include "kofilterview.h"
102#include "koglobals.h" 103#include "koglobals.h"
103#include "koviewmanager.h" 104#include "koviewmanager.h"
104#include "koagendaview.h" 105#include "koagendaview.h"
105#include "kodialogmanager.h" 106#include "kodialogmanager.h"
106#include "outgoingdialog.h" 107#include "outgoingdialog.h"
107#include "incomingdialog.h" 108#include "incomingdialog.h"
108#include "statusdialog.h" 109#include "statusdialog.h"
109#include "kdatenavigator.h" 110#include "kdatenavigator.h"
110#include "kotodoview.h" 111#include "kotodoview.h"
111#include "datenavigator.h" 112#include "datenavigator.h"
112#include "resourceview.h" 113#include "resourceview.h"
113#include "navigatorbar.h" 114#include "navigatorbar.h"
114#include "searchdialog.h" 115#include "searchdialog.h"
115#include "mainwindow.h" 116#include "mainwindow.h"
116 117
117#include "calendarview.h" 118#include "calendarview.h"
118#ifndef DESKTOP_VERSION 119#ifndef DESKTOP_VERSION
119#include <qtopia/alarmserver.h> 120#include <qtopia/alarmserver.h>
120#endif 121#endif
121#ifndef _WIN32_ 122#ifndef _WIN32_
122#include <stdlib.h> 123#include <stdlib.h>
123#include <stdio.h> 124#include <stdio.h>
124#include <unistd.h> 125#include <unistd.h>
125#else 126#else
126#include <qprocess.h> 127#include <qprocess.h>
127#endif 128#endif
128using namespace KOrg; 129using namespace KOrg;
129using namespace KCal; 130using namespace KCal;
130extern int globalFlagBlockAgenda; 131extern int globalFlagBlockAgenda;
131extern int globalFlagBlockStartup; 132extern int globalFlagBlockStartup;
132 133
133 134
134 135
135class KOBeamPrefs : public QDialog 136class KOBeamPrefs : public QDialog
136{ 137{
137 public: 138 public:
138 KOBeamPrefs( QWidget *parent=0, const char *name=0 ) : 139 KOBeamPrefs( QWidget *parent=0, const char *name=0 ) :
139 QDialog( parent, name, true ) 140 QDialog( parent, name, true )
140 { 141 {
141 setCaption( i18n("Beam Options") ); 142 setCaption( i18n("Beam Options") );
142 QVBoxLayout* lay = new QVBoxLayout( this ); 143 QVBoxLayout* lay = new QVBoxLayout( this );
143 lay->setSpacing( 3 ); 144 lay->setSpacing( 3 );
144 lay->setMargin( 3 ); 145 lay->setMargin( 3 );
145 QButtonGroup* format = new QButtonGroup( 1, Horizontal, i18n("File format"), this ); 146 QButtonGroup* format = new QButtonGroup( 1, Horizontal, i18n("File format"), this );
146 lay->addWidget( format ); 147 lay->addWidget( format );
147 format->setExclusive ( true ) ; 148 format->setExclusive ( true ) ;
148 QButtonGroup* time = new QButtonGroup(1, Horizontal, i18n("Time format"), this ); 149 QButtonGroup* time = new QButtonGroup(1, Horizontal, i18n("Time format"), this );
149 lay->addWidget( time ); time->setExclusive ( true ) ; 150 lay->addWidget( time ); time->setExclusive ( true ) ;
150 vcal = new QRadioButton(" vCalendar ", format ); 151 vcal = new QRadioButton(" vCalendar ", format );
151 ical = new QRadioButton(" iCalendar ", format ); 152 ical = new QRadioButton(" iCalendar ", format );
152 vcal->setChecked( true ); 153 vcal->setChecked( true );
153 tz = new QRadioButton(i18n(" With timezone "), time ); 154 tz = new QRadioButton(i18n(" With timezone "), time );
154 local = new QRadioButton(i18n(" Local time "), time ); 155 local = new QRadioButton(i18n(" Local time "), time );
155 tz->setChecked( true ); 156 tz->setChecked( true );
156 QPushButton * ok = new QPushButton( i18n("Beam via IR!"), this ); 157 QPushButton * ok = new QPushButton( i18n("Beam via IR!"), this );
157 lay->addWidget( ok ); 158 lay->addWidget( ok );
158 QPushButton * cancel = new QPushButton( i18n("Cancel"), this ); 159 QPushButton * cancel = new QPushButton( i18n("Cancel"), this );
159 lay->addWidget( cancel ); 160 lay->addWidget( cancel );
160 connect ( ok,SIGNAL(clicked() ),this , SLOT ( accept() ) ); 161 connect ( ok,SIGNAL(clicked() ),this , SLOT ( accept() ) );
161 connect (cancel, SIGNAL(clicked() ), this, SLOT ( reject()) ); 162 connect (cancel, SIGNAL(clicked() ), this, SLOT ( reject()) );
162 resize( 200, 200 ); 163 resize( 200, 200 );
163 } 164 }
164 165
165 bool beamVcal() { return vcal->isChecked(); } 166 bool beamVcal() { return vcal->isChecked(); }
166 bool beamLocal() { return local->isChecked(); } 167 bool beamLocal() { return local->isChecked(); }
167private: 168private:
168 QRadioButton* vcal, *ical, *local, *tz; 169 QRadioButton* vcal, *ical, *local, *tz;
169}; 170};
170class KOCatPrefs : public QDialog 171class KOCatPrefs : public QDialog
171{ 172{
172 public: 173 public:
173 KOCatPrefs( QWidget *parent=0, const char *name=0 ) : 174 KOCatPrefs( QWidget *parent=0, const char *name=0 ) :
174 QDialog( parent, name, true ) 175 QDialog( parent, name, true )
175 { 176 {
176 setCaption( i18n("Manage new Categories") ); 177 setCaption( i18n("Manage new Categories") );
177 QVBoxLayout* lay = new QVBoxLayout( this ); 178 QVBoxLayout* lay = new QVBoxLayout( this );
178 lay->setSpacing( 3 ); 179 lay->setSpacing( 3 );
179 lay->setMargin( 3 ); 180 lay->setMargin( 3 );
180 QLabel * lab = new QLabel( i18n("After importing/loading/syncing\nthere may be new categories in\nevents or todos\nwhich are not in the category list.\nPlease choose what to do:\n "), this ); 181 QLabel * lab = new QLabel( i18n("After importing/loading/syncing\nthere may be new categories in\nevents or todos\nwhich are not in the category list.\nPlease choose what to do:\n "), this );
181 lay->addWidget( lab ); 182 lay->addWidget( lab );
182 QButtonGroup* format = new QButtonGroup( 1, Horizontal, i18n("New categories not in list:"), this ); 183 QButtonGroup* format = new QButtonGroup( 1, Horizontal, i18n("New categories not in list:"), this );
183 lay->addWidget( format ); 184 lay->addWidget( format );
184 format->setExclusive ( true ) ; 185 format->setExclusive ( true ) ;
185 addCatBut = new QRadioButton(i18n("Add to category list"), format ); 186 addCatBut = new QRadioButton(i18n("Add to category list"), format );
186 new QRadioButton(i18n("Remove from Events/Todos"), format ); 187 new QRadioButton(i18n("Remove from Events/Todos"), format );
187 addCatBut->setChecked( true ); 188 addCatBut->setChecked( true );
188 QPushButton * ok = new QPushButton( i18n("OK"), this ); 189 QPushButton * ok = new QPushButton( i18n("OK"), this );
189 lay->addWidget( ok ); 190 lay->addWidget( ok );
190 QPushButton * cancel = new QPushButton( i18n("Cancel"), this ); 191 QPushButton * cancel = new QPushButton( i18n("Cancel"), this );
191 lay->addWidget( cancel ); 192 lay->addWidget( cancel );
192 connect ( ok,SIGNAL(clicked() ),this , SLOT ( accept() ) ); 193 connect ( ok,SIGNAL(clicked() ),this , SLOT ( accept() ) );
193 connect (cancel, SIGNAL(clicked() ), this, SLOT ( reject()) ); 194 connect (cancel, SIGNAL(clicked() ), this, SLOT ( reject()) );
194 resize( 200, 200 ); 195 resize( 200, 200 );
195 } 196 }
196 197
197 bool addCat() { return addCatBut->isChecked(); } 198 bool addCat() { return addCatBut->isChecked(); }
198private: 199private:
199 QRadioButton* addCatBut; 200 QRadioButton* addCatBut;
200}; 201};
201 202
202 203
203 204
204CalendarView::CalendarView( CalendarResources *calendar, 205CalendarView::CalendarView( CalendarResources *calendar,
205 QWidget *parent, const char *name ) 206 QWidget *parent, const char *name )
206 : CalendarViewBase( parent, name ), 207 : CalendarViewBase( parent, name ),
207 mCalendar( calendar ), 208 mCalendar( calendar ),
208 mResourceManager( calendar->resourceManager() ) 209 mResourceManager( calendar->resourceManager() )
209{ 210{
210 211
211 mEventEditor = 0; 212 mEventEditor = 0;
212 mTodoEditor = 0; 213 mTodoEditor = 0;
213 214
214 init(); 215 init();
215} 216}
216 217
217CalendarView::CalendarView( Calendar *calendar, 218CalendarView::CalendarView( Calendar *calendar,
218 QWidget *parent, const char *name ) 219 QWidget *parent, const char *name )
219 : CalendarViewBase( parent, name ), 220 : CalendarViewBase( parent, name ),
220 mCalendar( calendar ), 221 mCalendar( calendar ),
221 mResourceManager( 0 ) 222 mResourceManager( 0 )
222{ 223{
223 224
224 mEventEditor = 0; 225 mEventEditor = 0;
225 mTodoEditor = 0; 226 mTodoEditor = 0;
226 init();} 227 init();}
227 228
228void CalendarView::init() 229void CalendarView::init()
229{ 230{
230 beamDialog = new KOBeamPrefs(); 231 beamDialog = new KOBeamPrefs();
231 mDatePickerMode = 0; 232 mDatePickerMode = 0;
232 mCurrentSyncDevice = ""; 233 mCurrentSyncDevice = "";
233 writeLocale(); 234 writeLocale();
234 mViewManager = new KOViewManager( this ); 235 mViewManager = new KOViewManager( this );
235 mDialogManager = new KODialogManager( this ); 236 mDialogManager = new KODialogManager( this );
236 mEventViewerDialog = 0; 237 mEventViewerDialog = 0;
237 mModified = false; 238 mModified = false;
238 mReadOnly = false; 239 mReadOnly = false;
239 mSelectedIncidence = 0; 240 mSelectedIncidence = 0;
240 mCalPrinter = 0; 241 mCalPrinter = 0;
241 mFilters.setAutoDelete(true); 242 mFilters.setAutoDelete(true);
242 243
243 mCalendar->registerObserver( this ); 244 mCalendar->registerObserver( this );
244 // TODO: Make sure that view is updated, when calendar is changed. 245 // TODO: Make sure that view is updated, when calendar is changed.
245 246
246 mStorage = new FileStorage( mCalendar ); 247 mStorage = new FileStorage( mCalendar );
247 mNavigator = new DateNavigator( this, "datevav", mViewManager ); 248 mNavigator = new DateNavigator( this, "datevav", mViewManager );
248 249
249 QBoxLayout *topLayout = (QBoxLayout*)layout(); 250 QBoxLayout *topLayout = (QBoxLayout*)layout();
250#ifndef KORG_NOSPLITTER 251#ifndef KORG_NOSPLITTER
251 // create the main layout frames. 252 // create the main layout frames.
252 mPanner = new QSplitter(QSplitter::Horizontal,this,"CalendarView::Panner"); 253 mPanner = new QSplitter(QSplitter::Horizontal,this,"CalendarView::Panner");
253 topLayout->addWidget(mPanner); 254 topLayout->addWidget(mPanner);
254 255
255 mLeftSplitter = new QSplitter(QSplitter::Vertical,mPanner, 256 mLeftSplitter = new QSplitter(QSplitter::Vertical,mPanner,
256 "CalendarView::LeftFrame"); 257 "CalendarView::LeftFrame");
257 mPanner->setResizeMode(mLeftSplitter,QSplitter::KeepSize); 258 mPanner->setResizeMode(mLeftSplitter,QSplitter::KeepSize);
258 259
259 mDateNavigator = new KDateNavigator(mLeftSplitter, mCalendar, TRUE, 260 mDateNavigator = new KDateNavigator(mLeftSplitter, mCalendar, TRUE,
260 "CalendarView::DateNavigator", QDate::currentDate() ); 261 "CalendarView::DateNavigator", QDate::currentDate() );
261 mLeftSplitter->setResizeMode(mDateNavigator,QSplitter::KeepSize); 262 mLeftSplitter->setResizeMode(mDateNavigator,QSplitter::KeepSize);
262 mTodoList = new KOTodoView(mCalendar, mLeftSplitter, "todolist_small2"); 263 mTodoList = new KOTodoView(mCalendar, mLeftSplitter, "todolist_small2");
263 mFilterView = new KOFilterView(&mFilters,mLeftSplitter,"CalendarView::FilterView"); 264 mFilterView = new KOFilterView(&mFilters,mLeftSplitter,"CalendarView::FilterView");
264 265
265#ifdef KORG_NORESOURCEVIEW 266#ifdef KORG_NORESOURCEVIEW
266 mResourceView = 0; 267 mResourceView = 0;
267#else 268#else
268 if ( mResourceManager ) { 269 if ( mResourceManager ) {
269 mResourceView = new ResourceView( mResourceManager, mLeftSplitter ); 270 mResourceView = new ResourceView( mResourceManager, mLeftSplitter );
270 mResourceView->updateView(); 271 mResourceView->updateView();
271 connect( mResourceView, SIGNAL( resourcesChanged() ), 272 connect( mResourceView, SIGNAL( resourcesChanged() ),
272 SLOT( updateView() ) ); 273 SLOT( updateView() ) );
273 } else { 274 } else {
274 mResourceView = 0; 275 mResourceView = 0;
275 } 276 }
276#endif 277#endif
277 QWidget *rightBox = new QWidget( mPanner ); 278 QWidget *rightBox = new QWidget( mPanner );
278 QBoxLayout *rightLayout = new QVBoxLayout( rightBox ); 279 QBoxLayout *rightLayout = new QVBoxLayout( rightBox );
279 280
280 mNavigatorBar = new NavigatorBar( QDate::currentDate(), rightBox, "useBigPixmaps" ); 281 mNavigatorBar = new NavigatorBar( QDate::currentDate(), rightBox, "useBigPixmaps" );
281 rightLayout->addWidget( mNavigatorBar ); 282 rightLayout->addWidget( mNavigatorBar );
282 283
283 mRightFrame = new QWidgetStack( rightBox ); 284 mRightFrame = new QWidgetStack( rightBox );
284 rightLayout->addWidget( mRightFrame, 1 ); 285 rightLayout->addWidget( mRightFrame, 1 );
285 286
286 mLeftFrame = mLeftSplitter; 287 mLeftFrame = mLeftSplitter;
287#else 288#else
288 QWidget *mainBox = new QWidget( this ); 289 QWidget *mainBox = new QWidget( this );
289 QWidget *leftFrame = new QWidget( mainBox ); 290 QWidget *leftFrame = new QWidget( mainBox );
290 291
291 QBoxLayout * mainBoxLayout; 292 QBoxLayout * mainBoxLayout;
292 QBoxLayout * leftFrameLayout; 293 QBoxLayout * leftFrameLayout;
293 if ( KOPrefs::instance()->mVerticalScreen ) { 294 if ( KOPrefs::instance()->mVerticalScreen ) {
294 mainBoxLayout = new QVBoxLayout(mainBox); 295 mainBoxLayout = new QVBoxLayout(mainBox);
295 leftFrameLayout = new QHBoxLayout(leftFrame ); 296 leftFrameLayout = new QHBoxLayout(leftFrame );
296 } else { 297 } else {
297 mainBoxLayout = new QHBoxLayout(mainBox); 298 mainBoxLayout = new QHBoxLayout(mainBox);
298 leftFrameLayout = new QVBoxLayout(leftFrame ); 299 leftFrameLayout = new QVBoxLayout(leftFrame );
299 } 300 }
300 topLayout->addWidget( mainBox ); 301 topLayout->addWidget( mainBox );
301 mainBoxLayout->addWidget (leftFrame); 302 mainBoxLayout->addWidget (leftFrame);
302 mDateNavigator = new KDateNavigator(leftFrame, mCalendar, TRUE, 303 mDateNavigator = new KDateNavigator(leftFrame, mCalendar, TRUE,
303 "CalendarView::DateNavigator", QDate::currentDate()); 304 "CalendarView::DateNavigator", QDate::currentDate());
304 // mDateNavigator->blockSignals( true ); 305 // mDateNavigator->blockSignals( true );
305 leftFrameLayout->addWidget( mDateNavigator ); 306 leftFrameLayout->addWidget( mDateNavigator );
306 mFilterView = new KOFilterView(&mFilters,leftFrame,"CalendarView::FilterView"); 307 mFilterView = new KOFilterView(&mFilters,leftFrame,"CalendarView::FilterView");
307 mTodoList = new KOTodoView(mCalendar, leftFrame, "todolist"); 308 mTodoList = new KOTodoView(mCalendar, leftFrame, "todolist");
308 309
309 if ( QApplication::desktop()->width() < 480 ) { 310 if ( QApplication::desktop()->width() < 480 ) {
310 leftFrameLayout->addWidget(mFilterView); 311 leftFrameLayout->addWidget(mFilterView);
311 leftFrameLayout->addWidget(mTodoList, 2 ); 312 leftFrameLayout->addWidget(mTodoList, 2 );
312 313
313 } else { 314 } else {
314 leftFrameLayout->addWidget(mTodoList,2 ); 315 leftFrameLayout->addWidget(mTodoList,2 );
315 leftFrameLayout->addWidget(mFilterView ); 316 leftFrameLayout->addWidget(mFilterView );
316 } 317 }
317 mFilterView->hide(); 318 mFilterView->hide();
318 QWidget *rightBox = new QWidget( mainBox ); 319 QWidget *rightBox = new QWidget( mainBox );
319 mainBoxLayout->addWidget ( rightBox, 10 ); 320 mainBoxLayout->addWidget ( rightBox, 10 );
320 QBoxLayout *rightLayout = new QVBoxLayout( rightBox ); 321 QBoxLayout *rightLayout = new QVBoxLayout( rightBox );
321 mNavigatorBar = new NavigatorBar( QDate::currentDate(), rightBox, "useBigPixmaps" ); 322 mNavigatorBar = new NavigatorBar( QDate::currentDate(), rightBox, "useBigPixmaps" );
322 mRightFrame = new QWidgetStack( rightBox ); 323 mRightFrame = new QWidgetStack( rightBox );
323 rightLayout->addWidget( mNavigatorBar ); 324 rightLayout->addWidget( mNavigatorBar );
324 rightLayout->addWidget( mRightFrame, 10 ); 325 rightLayout->addWidget( mRightFrame, 10 );
325 326
326 mLeftFrame = leftFrame; 327 mLeftFrame = leftFrame;
327 if ( KOPrefs::instance()->mVerticalScreen ) { 328 if ( KOPrefs::instance()->mVerticalScreen ) {
328 mTodoList->setFixedHeight( mDateNavigator->sizeHint().height() ); 329 mTodoList->setFixedHeight( mDateNavigator->sizeHint().height() );
329 leftFrame->setFixedHeight( mDateNavigator->sizeHint().height() ); 330 leftFrame->setFixedHeight( mDateNavigator->sizeHint().height() );
330 } else { 331 } else {
331 mTodoList->setFixedWidth( mDateNavigator->sizeHint().width() ); 332 mTodoList->setFixedWidth( mDateNavigator->sizeHint().width() );
332 leftFrame->setFixedWidth( mDateNavigator->sizeHint().width() ); 333 leftFrame->setFixedWidth( mDateNavigator->sizeHint().width() );
333 } 334 }
334 335
335 //qDebug("Calendarview Size %d %d ", width(), height()); 336 //qDebug("Calendarview Size %d %d ", width(), height());
336#endif 337#endif
337 338
338 connect( mNavigator, SIGNAL( datesSelected( const KCal::DateList & ) ), 339 connect( mNavigator, SIGNAL( datesSelected( const KCal::DateList & ) ),
339 SLOT( showDates( const KCal::DateList & ) ) ); 340 SLOT( showDates( const KCal::DateList & ) ) );
340 connect( mNavigator, SIGNAL( datesSelected( const KCal::DateList & ) ), 341 connect( mNavigator, SIGNAL( datesSelected( const KCal::DateList & ) ),
341 mDateNavigator, SLOT( selectDates( const KCal::DateList & ) ) ); 342 mDateNavigator, SLOT( selectDates( const KCal::DateList & ) ) );
342 343
343 connect( mNavigatorBar, SIGNAL( goPrevYear() ), 344 connect( mNavigatorBar, SIGNAL( goPrevYear() ),
344 mNavigator, SLOT( selectPreviousYear() ) ); 345 mNavigator, SLOT( selectPreviousYear() ) );
345 connect( mNavigatorBar, SIGNAL( goNextYear() ), 346 connect( mNavigatorBar, SIGNAL( goNextYear() ),
346 mNavigator, SLOT( selectNextYear() ) ); 347 mNavigator, SLOT( selectNextYear() ) );
347 connect( mNavigatorBar, SIGNAL( goPrevMonth() ), 348 connect( mNavigatorBar, SIGNAL( goPrevMonth() ),
348 mNavigator, SLOT( selectPreviousMonth() ) ); 349 mNavigator, SLOT( selectPreviousMonth() ) );
349 connect( mNavigatorBar, SIGNAL( goNextMonth() ), 350 connect( mNavigatorBar, SIGNAL( goNextMonth() ),
350 mNavigator, SLOT( selectNextMonth() ) ); 351 mNavigator, SLOT( selectNextMonth() ) );
351 352
352 connect( mNavigator, SIGNAL( datesSelected( const KCal::DateList & ) ), 353 connect( mNavigator, SIGNAL( datesSelected( const KCal::DateList & ) ),
353 mNavigatorBar, SLOT( selectDates( const KCal::DateList & ) ) ); 354 mNavigatorBar, SLOT( selectDates( const KCal::DateList & ) ) );
354 355
355 connect( mDateNavigator, SIGNAL( weekClicked( const QDate & ) ), 356 connect( mDateNavigator, SIGNAL( weekClicked( const QDate & ) ),
356 mNavigator, SLOT( selectWeek( const QDate & ) ) ); 357 mNavigator, SLOT( selectWeek( const QDate & ) ) );
357 358
358 connect( mDateNavigator, SIGNAL( goPrevYear() ), 359 connect( mDateNavigator, SIGNAL( goPrevYear() ),
359 mNavigator, SLOT( selectPreviousYear() ) ); 360 mNavigator, SLOT( selectPreviousYear() ) );
360 connect( mDateNavigator, SIGNAL( goNextYear() ), 361 connect( mDateNavigator, SIGNAL( goNextYear() ),
361 mNavigator, SLOT( selectNextYear() ) ); 362 mNavigator, SLOT( selectNextYear() ) );
362 connect( mDateNavigator, SIGNAL( goPrevMonth() ), 363 connect( mDateNavigator, SIGNAL( goPrevMonth() ),
363 mNavigator, SLOT( selectPreviousMonth() ) ); 364 mNavigator, SLOT( selectPreviousMonth() ) );
364 connect( mDateNavigator, SIGNAL( goNextMonth() ), 365 connect( mDateNavigator, SIGNAL( goNextMonth() ),
365 mNavigator, SLOT( selectNextMonth() ) ); 366 mNavigator, SLOT( selectNextMonth() ) );
366 367
367 connect( mDateNavigator, SIGNAL( goPrevious() ), 368 connect( mDateNavigator, SIGNAL( goPrevious() ),
368 mNavigator, SLOT( selectPrevious() ) ); 369 mNavigator, SLOT( selectPrevious() ) );
369 connect( mDateNavigator, SIGNAL( goNext() ), 370 connect( mDateNavigator, SIGNAL( goNext() ),
370 mNavigator, SLOT( selectNext() ) ); 371 mNavigator, SLOT( selectNext() ) );
371 connect( mDateNavigator, SIGNAL( monthSelected ( int ) ), 372 connect( mDateNavigator, SIGNAL( monthSelected ( int ) ),
372 mNavigator, SLOT( slotMonthSelect( int ) ) ); 373 mNavigator, SLOT( slotMonthSelect( int ) ) );
373 connect( mNavigatorBar, SIGNAL( monthSelected ( int ) ), 374 connect( mNavigatorBar, SIGNAL( monthSelected ( int ) ),
374 mNavigator, SLOT( slotMonthSelect( int ) ) ); 375 mNavigator, SLOT( slotMonthSelect( int ) ) );
375 376
376 connect( mDateNavigator, SIGNAL( datesSelected( const KCal::DateList & ) ), 377 connect( mDateNavigator, SIGNAL( datesSelected( const KCal::DateList & ) ),
377 mNavigator, SLOT( selectDates( const KCal::DateList & ) ) ); 378 mNavigator, SLOT( selectDates( const KCal::DateList & ) ) );
378 379
379 connect( mDateNavigator, SIGNAL( eventDropped( Event * ) ), 380 connect( mDateNavigator, SIGNAL( eventDropped( Event * ) ),
380 SLOT( eventAdded( Event *) ) ); 381 SLOT( eventAdded( Event *) ) );
381 382
382 connect(mDateNavigator,SIGNAL(dayPassed(QDate)),SLOT(updateView())); 383 connect(mDateNavigator,SIGNAL(dayPassed(QDate)),SLOT(updateView()));
383 384
384 connect( this, SIGNAL( configChanged() ), 385 connect( this, SIGNAL( configChanged() ),
385 mDateNavigator, SLOT( updateConfig() ) ); 386 mDateNavigator, SLOT( updateConfig() ) );
386 387
387 connect( mTodoList, SIGNAL( newTodoSignal() ), 388 connect( mTodoList, SIGNAL( newTodoSignal() ),
388 SLOT( newTodo() ) ); 389 SLOT( newTodo() ) );
389 connect( mTodoList, SIGNAL( newSubTodoSignal( Todo *) ), 390 connect( mTodoList, SIGNAL( newSubTodoSignal( Todo *) ),
390 SLOT( newSubTodo( Todo * ) ) ); 391 SLOT( newSubTodo( Todo * ) ) );
391 connect( mTodoList, SIGNAL( editTodoSignal( Todo * ) ), 392 connect( mTodoList, SIGNAL( editTodoSignal( Todo * ) ),
392 SLOT( editTodo( Todo * ) ) ); 393 SLOT( editTodo( Todo * ) ) );
393 connect( mTodoList, SIGNAL( showTodoSignal( Todo * ) ), 394 connect( mTodoList, SIGNAL( showTodoSignal( Todo * ) ),
394 SLOT( showTodo( Todo *) ) ); 395 SLOT( showTodo( Todo *) ) );
395 connect( mTodoList, SIGNAL( deleteTodoSignal( Todo *) ), 396 connect( mTodoList, SIGNAL( deleteTodoSignal( Todo *) ),
396 SLOT( deleteTodo( Todo *) ) ); 397 SLOT( deleteTodo( Todo *) ) );
397 connect( this, SIGNAL( configChanged()), mTodoList, SLOT( updateConfig() ) ); 398 connect( this, SIGNAL( configChanged()), mTodoList, SLOT( updateConfig() ) );
398 connect( mTodoList, SIGNAL( purgeCompletedSignal() ), 399 connect( mTodoList, SIGNAL( purgeCompletedSignal() ),
399 SLOT( purgeCompleted() ) ); 400 SLOT( purgeCompleted() ) );
400 connect( mTodoList, SIGNAL( todoModifiedSignal( Todo *, int ) ), 401 connect( mTodoList, SIGNAL( todoModifiedSignal( Todo *, int ) ),
401 SIGNAL( todoModified( Todo *, int ) ) ); 402 SIGNAL( todoModified( Todo *, int ) ) );
402 403
403 connect( mTodoList, SIGNAL( cloneTodoSignal( Incidence * ) ), 404 connect( mTodoList, SIGNAL( cloneTodoSignal( Incidence * ) ),
404 this, SLOT ( cloneIncidence( Incidence * ) ) ); 405 this, SLOT ( cloneIncidence( Incidence * ) ) );
405 connect( mTodoList, SIGNAL( cancelTodoSignal( Incidence * ) ), 406 connect( mTodoList, SIGNAL( cancelTodoSignal( Incidence * ) ),
406 this, SLOT (cancelIncidence( Incidence * ) ) ); 407 this, SLOT (cancelIncidence( Incidence * ) ) );
407 408
408 connect( mTodoList, SIGNAL( moveTodoSignal( Incidence * ) ), 409 connect( mTodoList, SIGNAL( moveTodoSignal( Incidence * ) ),
409 this, SLOT ( moveIncidence( Incidence * ) ) ); 410 this, SLOT ( moveIncidence( Incidence * ) ) );
410 connect( mTodoList, SIGNAL( beamTodoSignal( Incidence * ) ), 411 connect( mTodoList, SIGNAL( beamTodoSignal( Incidence * ) ),
411 this, SLOT ( beamIncidence( Incidence * ) ) ); 412 this, SLOT ( beamIncidence( Incidence * ) ) );
412 413
413 connect( mTodoList, SIGNAL( unparentTodoSignal( Todo * ) ), 414 connect( mTodoList, SIGNAL( unparentTodoSignal( Todo * ) ),
414 this, SLOT ( todo_unsub( Todo * ) ) ); 415 this, SLOT ( todo_unsub( Todo * ) ) );
415 416
416 connect( this, SIGNAL( todoModified( Todo *, int )), mTodoList, 417 connect( this, SIGNAL( todoModified( Todo *, int )), mTodoList,
417 SLOT( updateTodo( Todo *, int ) ) ); 418 SLOT( updateTodo( Todo *, int ) ) );
418 connect( this, SIGNAL( todoModified( Todo *, int )), this, 419 connect( this, SIGNAL( todoModified( Todo *, int )), this,
419 SLOT( changeTodoDisplay( Todo *, int ) ) ); 420 SLOT( changeTodoDisplay( Todo *, int ) ) );
420 421
421 422
422 connect( mFilterView, SIGNAL( filterChanged() ), SLOT( updateFilter() ) ); 423 connect( mFilterView, SIGNAL( filterChanged() ), SLOT( updateFilter() ) );
423 connect( mFilterView, SIGNAL( editFilters() ), SLOT( editFilters() ) ); 424 connect( mFilterView, SIGNAL( editFilters() ), SLOT( editFilters() ) );
424 connect( mCalendar, SIGNAL( addAlarm(const QDateTime &, const QString & ) ), SLOT( addAlarm(const QDateTime &, const QString & ) ) ); 425 connect( mCalendar, SIGNAL( addAlarm(const QDateTime &, const QString & ) ), SLOT( addAlarm(const QDateTime &, const QString & ) ) );
425 connect( mCalendar, SIGNAL( removeAlarm(const QDateTime &, const QString & ) ), SLOT( removeAlarm(const QDateTime &, const QString & ) ) ); 426 connect( mCalendar, SIGNAL( removeAlarm(const QDateTime &, const QString & ) ), SLOT( removeAlarm(const QDateTime &, const QString & ) ) );
426 427
427 428
428 429
429 430
430 431
431 connect(QApplication::clipboard(),SIGNAL(dataChanged()), 432 connect(QApplication::clipboard(),SIGNAL(dataChanged()),
432 SLOT(checkClipboard())); 433 SLOT(checkClipboard()));
433 connect( mTodoList,SIGNAL( incidenceSelected( Incidence * ) ), 434 connect( mTodoList,SIGNAL( incidenceSelected( Incidence * ) ),
434 SLOT( processTodoListSelection( Incidence * ) ) ); 435 SLOT( processTodoListSelection( Incidence * ) ) );
435 connect(mTodoList,SIGNAL(isModified(bool)),SLOT(setModified(bool))); 436 connect(mTodoList,SIGNAL(isModified(bool)),SLOT(setModified(bool)));
436 437
437 // kdDebug() << "CalendarView::CalendarView() done" << endl; 438 // kdDebug() << "CalendarView::CalendarView() done" << endl;
438 439
439 mDateFrame = new QVBox(0,0,WType_Popup); 440 mDateFrame = new QVBox(0,0,WType_Popup);
440 //mDateFrame->setFrameStyle(QFrame::PopupPanel | QFrame::Raised); 441 //mDateFrame->setFrameStyle(QFrame::PopupPanel | QFrame::Raised);
441 mDateFrame->setFrameStyle( QFrame::WinPanel |QFrame::Raised ); 442 mDateFrame->setFrameStyle( QFrame::WinPanel |QFrame::Raised );
442 mDateFrame->setLineWidth(3); 443 mDateFrame->setLineWidth(3);
443 mDateFrame->hide(); 444 mDateFrame->hide();
444 mDateFrame->setCaption( i18n( "Pick a date to display")); 445 mDateFrame->setCaption( i18n( "Pick a date to display"));
445 mDatePicker = new KDatePicker ( mDateFrame , QDate::currentDate() ); 446 mDatePicker = new KDatePicker ( mDateFrame , QDate::currentDate() );
446 447
447 connect(mDatePicker,SIGNAL(dateSelected(QDate)),SLOT(slotSelectPickerDate(QDate))); 448 connect(mDatePicker,SIGNAL(dateSelected(QDate)),SLOT(slotSelectPickerDate(QDate)));
448 449
449 mEventEditor = mDialogManager->getEventEditor(); 450 mEventEditor = mDialogManager->getEventEditor();
450 mTodoEditor = mDialogManager->getTodoEditor(); 451 mTodoEditor = mDialogManager->getTodoEditor();
451 452
452 mFlagEditDescription = false; 453 mFlagEditDescription = false;
453 454
454 mSuspendTimer = new QTimer( this ); 455 mSuspendTimer = new QTimer( this );
455 mAlarmTimer = new QTimer( this ); 456 mAlarmTimer = new QTimer( this );
456 mRecheckAlarmTimer = new QTimer( this ); 457 mRecheckAlarmTimer = new QTimer( this );
457 connect( mRecheckAlarmTimer, SIGNAL( timeout () ), SLOT( recheckTimerAlarm() ) ); 458 connect( mRecheckAlarmTimer, SIGNAL( timeout () ), SLOT( recheckTimerAlarm() ) );
458 connect( mSuspendTimer, SIGNAL( timeout () ), SLOT( suspendAlarm() ) ); 459 connect( mSuspendTimer, SIGNAL( timeout () ), SLOT( suspendAlarm() ) );
459 connect( mAlarmTimer, SIGNAL( timeout () ), SLOT( timerAlarm() ) ); 460 connect( mAlarmTimer, SIGNAL( timeout () ), SLOT( timerAlarm() ) );
460 mAlarmDialog = new AlarmDialog( this ); 461 mAlarmDialog = new AlarmDialog( this );
461 connect( mAlarmDialog, SIGNAL( addAlarm(const QDateTime &, const QString & ) ), SLOT( addSuspendAlarm(const QDateTime &, const QString & ) ) ); 462 connect( mAlarmDialog, SIGNAL( addAlarm(const QDateTime &, const QString & ) ), SLOT( addSuspendAlarm(const QDateTime &, const QString & ) ) );
462 mAlarmDialog->setServerNotification( false ); 463 mAlarmDialog->setServerNotification( false );
463 mAlarmDialog->setSuspendTime( KOPrefs::instance()->mAlarmSuspendTime ); 464 mAlarmDialog->setSuspendTime( KOPrefs::instance()->mAlarmSuspendTime );
464} 465}
465 466
466 467
467CalendarView::~CalendarView() 468CalendarView::~CalendarView()
468{ 469{
469 // kdDebug() << "~CalendarView()" << endl; 470 // kdDebug() << "~CalendarView()" << endl;
470 //qDebug("CalendarView::~CalendarView() "); 471 //qDebug("CalendarView::~CalendarView() ");
471 delete mDialogManager; 472 delete mDialogManager;
472 delete mViewManager; 473 delete mViewManager;
473 delete mStorage; 474 delete mStorage;
474 delete mDateFrame ; 475 delete mDateFrame ;
475 delete beamDialog; 476 delete beamDialog;
476 //kdDebug() << "~CalendarView() done" << endl; 477 //kdDebug() << "~CalendarView() done" << endl;
477} 478}
478void CalendarView::timerAlarm() 479void CalendarView::timerAlarm()
479{ 480{
480 //qDebug("CalendarView::timerAlarm() "); 481 //qDebug("CalendarView::timerAlarm() ");
481 computeAlarm(mAlarmNotification ); 482 computeAlarm(mAlarmNotification );
482} 483}
483 484
484void CalendarView::suspendAlarm() 485void CalendarView::suspendAlarm()
485{ 486{
486 //qDebug(" CalendarView::suspendAlarm() "); 487 //qDebug(" CalendarView::suspendAlarm() ");
487 computeAlarm(mSuspendAlarmNotification ); 488 computeAlarm(mSuspendAlarmNotification );
488 489
489} 490}
490 491
491void CalendarView::startAlarm( QString mess , QString filename) 492void CalendarView::startAlarm( QString mess , QString filename)
492{ 493{
493 mAlarmDialog->eventNotification( mess, KOPrefs::instance()->mAlarmPlayBeeps, filename, true,KOPrefs::instance()->mAlarmBeepInterval ,KOPrefs::instance()->mAlarmSuspendCount ); 494 mAlarmDialog->eventNotification( mess, KOPrefs::instance()->mAlarmPlayBeeps, filename, true,KOPrefs::instance()->mAlarmBeepInterval ,KOPrefs::instance()->mAlarmSuspendCount );
494 QTimer::singleShot( 3000, this, SLOT( checkNextTimerAlarm() ) ); 495 QTimer::singleShot( 3000, this, SLOT( checkNextTimerAlarm() ) );
495 496
496} 497}
497 498
498void CalendarView::checkNextTimerAlarm() 499void CalendarView::checkNextTimerAlarm()
499{ 500{
500 mCalendar->checkAlarmForIncidence( 0, true ); 501 mCalendar->checkAlarmForIncidence( 0, true );
501} 502}
502 503
503void CalendarView::computeAlarm( QString msg ) 504void CalendarView::computeAlarm( QString msg )
504{ 505{
505 506
506 QString mess = msg; 507 QString mess = msg;
507 QString mAlarmMessage = mess.mid( 9 ); 508 QString mAlarmMessage = mess.mid( 9 );
508 QString filename = MainWindow::resourcePath(); 509 QString filename = MainWindow::resourcePath();
509 filename += "koalarm.wav"; 510 filename += "koalarm.wav";
510 QString tempfilename; 511 QString tempfilename;
511 if ( mess.left( 13 ) == "suspend_alarm") { 512 if ( mess.left( 13 ) == "suspend_alarm") {
512 bool error = false; 513 bool error = false;
513 int len = mess.mid( 13 ).find("+++"); 514 int len = mess.mid( 13 ).find("+++");
514 if ( len < 2 ) 515 if ( len < 2 )
515 error = true; 516 error = true;
516 else { 517 else {
517 tempfilename = mess.mid( 13, len ); 518 tempfilename = mess.mid( 13, len );
518 if ( !QFile::exists( tempfilename ) ) 519 if ( !QFile::exists( tempfilename ) )
519 error = true; 520 error = true;
520 } 521 }
521 if ( ! error ) { 522 if ( ! error ) {
522 filename = tempfilename; 523 filename = tempfilename;
523 } 524 }
524 mAlarmMessage = mess.mid( 13+len+3 ); 525 mAlarmMessage = mess.mid( 13+len+3 );
525 //qDebug("suspend file %s ",tempfilename.latin1() ); 526 //qDebug("suspend file %s ",tempfilename.latin1() );
526 startAlarm( mAlarmMessage, filename); 527 startAlarm( mAlarmMessage, filename);
527 return; 528 return;
528 } 529 }
529 if ( mess.left( 11 ) == "timer_alarm") { 530 if ( mess.left( 11 ) == "timer_alarm") {
530 //mTimerTime = 0; 531 //mTimerTime = 0;
531 startAlarm( mess.mid( 11 ), filename ); 532 startAlarm( mess.mid( 11 ), filename );
532 return; 533 return;
533 } 534 }
534 if ( mess.left( 10 ) == "proc_alarm") { 535 if ( mess.left( 10 ) == "proc_alarm") {
535 bool error = false; 536 bool error = false;
536 int len = mess.mid( 10 ).find("+++"); 537 int len = mess.mid( 10 ).find("+++");
537 if ( len < 2 ) 538 if ( len < 2 )
538 error = true; 539 error = true;
539 else { 540 else {
540 tempfilename = mess.mid( 10, len ); 541 tempfilename = mess.mid( 10, len );
541 if ( !QFile::exists( tempfilename ) ) 542 if ( !QFile::exists( tempfilename ) )
542 error = true; 543 error = true;
543 } 544 }
544 if ( error ) { 545 if ( error ) {
545 mAlarmMessage = "Procedure Alarm\nError - File not found\n"; 546 mAlarmMessage = "Procedure Alarm\nError - File not found\n";
546 mAlarmMessage += mess.mid( 10+len+3+9 ); 547 mAlarmMessage += mess.mid( 10+len+3+9 );
547 } else { 548 } else {
548 //QCopEnvelope e("QPE/Application/kopi", "-writeFileSilent"); 549 //QCopEnvelope e("QPE/Application/kopi", "-writeFileSilent");
549 //qDebug("-----system command %s ",tempfilename.latin1() ); 550 //qDebug("-----system command %s ",tempfilename.latin1() );
550#ifndef _WIN32_ 551#ifndef _WIN32_
551 if ( vfork () == 0 ) { 552 if ( vfork () == 0 ) {
552 execl ( tempfilename.latin1(), 0 ); 553 execl ( tempfilename.latin1(), 0 );
553 return; 554 return;
554 } 555 }
555#else 556#else
556 QProcess* p = new QProcess(); 557 QProcess* p = new QProcess();
557 p->addArgument( tempfilename.latin1() ); 558 p->addArgument( tempfilename.latin1() );
558 p->start(); 559 p->start();
559 return; 560 return;
560#endif 561#endif
561 562
562 return; 563 return;
563 } 564 }
564 565
565 //qDebug("+++++++system command %s ",tempfilename.latin1() ); 566 //qDebug("+++++++system command %s ",tempfilename.latin1() );
566 } 567 }
567 if ( mess.left( 11 ) == "audio_alarm") { 568 if ( mess.left( 11 ) == "audio_alarm") {
568 bool error = false; 569 bool error = false;
569 int len = mess.mid( 11 ).find("+++"); 570 int len = mess.mid( 11 ).find("+++");
570 if ( len < 2 ) 571 if ( len < 2 )
571 error = true; 572 error = true;
572 else { 573 else {
573 tempfilename = mess.mid( 11, len ); 574 tempfilename = mess.mid( 11, len );
574 if ( !QFile::exists( tempfilename ) ) 575 if ( !QFile::exists( tempfilename ) )
575 error = true; 576 error = true;
576 } 577 }
577 if ( ! error ) { 578 if ( ! error ) {
578 filename = tempfilename; 579 filename = tempfilename;
579 } 580 }
580 mAlarmMessage = mess.mid( 11+len+3+9 ); 581 mAlarmMessage = mess.mid( 11+len+3+9 );
581 //qDebug("audio file command %s ",tempfilename.latin1() ); 582 //qDebug("audio file command %s ",tempfilename.latin1() );
582 } 583 }
583 if ( mess.left( 9 ) == "cal_alarm") { 584 if ( mess.left( 9 ) == "cal_alarm") {
584 mAlarmMessage = mess.mid( 9 ) ; 585 mAlarmMessage = mess.mid( 9 ) ;
585 } 586 }
586 587
587 startAlarm( mAlarmMessage, filename ); 588 startAlarm( mAlarmMessage, filename );
588 589
589 590
590} 591}
591 592
592void CalendarView::addSuspendAlarm(const QDateTime &qdt, const QString &noti ) 593void CalendarView::addSuspendAlarm(const QDateTime &qdt, const QString &noti )
593{ 594{
594 //qDebug("+++++addSUSPENDAlarm %s %s ", qdt.toString().latin1() , noti.latin1() ); 595 //qDebug("+++++addSUSPENDAlarm %s %s ", qdt.toString().latin1() , noti.latin1() );
595 596
596 mSuspendAlarmNotification = noti; 597 mSuspendAlarmNotification = noti;
597 int ms = QDateTime::currentDateTime().secsTo( qdt )*1000; 598 int ms = QDateTime::currentDateTime().secsTo( qdt )*1000;
598 //qDebug("Suspend Alarm timer started with secs: %d ", ms/1000); 599 //qDebug("Suspend Alarm timer started with secs: %d ", ms/1000);
599 mSuspendTimer->start( ms , true ); 600 mSuspendTimer->start( ms , true );
600 601
601} 602}
602 603
603void CalendarView::addAlarm(const QDateTime &qdt, const QString &noti ) 604void CalendarView::addAlarm(const QDateTime &qdt, const QString &noti )
604{ 605{
605 //qDebug("+++++addAlarm %s %s ", qdt.toString().latin1() , noti.latin1() ); 606 //qDebug("+++++addAlarm %s %s ", qdt.toString().latin1() , noti.latin1() );
606 if ( ! KOPrefs::instance()->mUseInternalAlarmNotification ) { 607 if ( ! KOPrefs::instance()->mUseInternalAlarmNotification ) {
607#ifndef DESKTOP_VERSION 608#ifndef DESKTOP_VERSION
608 AlarmServer::addAlarm ( qdt,"koalarm", noti.latin1() ); 609 AlarmServer::addAlarm ( qdt,"koalarm", noti.latin1() );
609#endif 610#endif
610 return; 611 return;
611 } 612 }
612 int maxSec; 613 int maxSec;
613 //maxSec = 5; //testing only 614 //maxSec = 5; //testing only
614 maxSec = 86400+3600; // one day+1hour 615 maxSec = 86400+3600; // one day+1hour
615 mAlarmNotification = noti; 616 mAlarmNotification = noti;
616 int sec = QDateTime::currentDateTime().secsTo( qdt ); 617 int sec = QDateTime::currentDateTime().secsTo( qdt );
617 if ( sec > maxSec ) { 618 if ( sec > maxSec ) {
618 mRecheckAlarmTimer->start( maxSec * 1000 ); 619 mRecheckAlarmTimer->start( maxSec * 1000 );
619 // qDebug("recheck Alarm timer started with secs: %d next alarm in sec:%d", maxSec,sec ); 620 // qDebug("recheck Alarm timer started with secs: %d next alarm in sec:%d", maxSec,sec );
620 return; 621 return;
621 } else { 622 } else {
622 mRecheckAlarmTimer->stop(); 623 mRecheckAlarmTimer->stop();
623 } 624 }
624 //qDebug("Alarm timer started with secs: %d ", sec); 625 //qDebug("Alarm timer started with secs: %d ", sec);
625 mAlarmTimer->start( sec *1000 , true ); 626 mAlarmTimer->start( sec *1000 , true );
626 627
627} 628}
628// called by mRecheckAlarmTimer to get next alarm 629// called by mRecheckAlarmTimer to get next alarm
629// we need this, because a QTimer has only a max range of 25 days 630// we need this, because a QTimer has only a max range of 25 days
630void CalendarView::recheckTimerAlarm() 631void CalendarView::recheckTimerAlarm()
631{ 632{
632 mAlarmTimer->stop(); 633 mAlarmTimer->stop();
633 mRecheckAlarmTimer->stop(); 634 mRecheckAlarmTimer->stop();
634 mCalendar->checkAlarmForIncidence( 0, true ); 635 mCalendar->checkAlarmForIncidence( 0, true );
635} 636}
636void CalendarView::removeAlarm(const QDateTime &qdt, const QString &noti ) 637void CalendarView::removeAlarm(const QDateTime &qdt, const QString &noti )
637{ 638{
638 //qDebug("-----removeAlarm %s %s ", qdt.toString().latin1() , noti.latin1() ); 639 //qDebug("-----removeAlarm %s %s ", qdt.toString().latin1() , noti.latin1() );
639 if ( ! KOPrefs::instance()->mUseInternalAlarmNotification ) { 640 if ( ! KOPrefs::instance()->mUseInternalAlarmNotification ) {
640#ifndef DESKTOP_VERSION 641#ifndef DESKTOP_VERSION
641 AlarmServer::deleteAlarm (qdt ,"koalarm" ,noti.latin1() ); 642 AlarmServer::deleteAlarm (qdt ,"koalarm" ,noti.latin1() );
642#endif 643#endif
643 return; 644 return;
644 } 645 }
645 mAlarmTimer->stop(); 646 mAlarmTimer->stop();
646} 647}
647void CalendarView::selectWeekNum ( int num ) 648void CalendarView::selectWeekNum ( int num )
648{ 649{
649 dateNavigator()->selectWeek( num ); 650 dateNavigator()->selectWeek( num );
650 mViewManager->showWeekView(); 651 mViewManager->showWeekView();
651} 652}
652KOViewManager *CalendarView::viewManager() 653KOViewManager *CalendarView::viewManager()
653{ 654{
654 return mViewManager; 655 return mViewManager;
655} 656}
656 657
657KODialogManager *CalendarView::dialogManager() 658KODialogManager *CalendarView::dialogManager()
658{ 659{
659 return mDialogManager; 660 return mDialogManager;
660} 661}
661 662
662QDate CalendarView::startDate() 663QDate CalendarView::startDate()
663{ 664{
664 DateList dates = mNavigator->selectedDates(); 665 DateList dates = mNavigator->selectedDates();
665 666
666 return dates.first(); 667 return dates.first();
667} 668}
668 669
669QDate CalendarView::endDate() 670QDate CalendarView::endDate()
670{ 671{
671 DateList dates = mNavigator->selectedDates(); 672 DateList dates = mNavigator->selectedDates();
672 673
673 return dates.last(); 674 return dates.last();
674} 675}
675 676
676 677
677void CalendarView::createPrinter() 678void CalendarView::createPrinter()
678{ 679{
679#ifndef KORG_NOPRINTER 680#ifndef KORG_NOPRINTER
680 if (!mCalPrinter) { 681 if (!mCalPrinter) {
681 mCalPrinter = new CalPrinter(this, mCalendar); 682 mCalPrinter = new CalPrinter(this, mCalendar);
682 connect(this, SIGNAL(configChanged()), mCalPrinter, SLOT(updateConfig())); 683 connect(this, SIGNAL(configChanged()), mCalPrinter, SLOT(updateConfig()));
683 } 684 }
684#endif 685#endif
685} 686}
686 687
687void CalendarView::confSync() 688void CalendarView::confSync()
688{ 689{
689 static KSyncPrefsDialog* sp = 0; 690 static KSyncPrefsDialog* sp = 0;
690 if ( ! sp ) { 691 if ( ! sp ) {
691 sp = new KSyncPrefsDialog( this, "syncprefs", true ); 692 sp = new KSyncPrefsDialog( this, "syncprefs", true );
692 } 693 }
693 sp->usrReadConfig(); 694 sp->usrReadConfig();
694#ifndef DESKTOP_VERSION 695#ifndef DESKTOP_VERSION
695 sp->showMaximized(); 696 sp->showMaximized();
696#else 697#else
697 sp->show(); 698 sp->show();
698#endif 699#endif
699 sp->exec(); 700 sp->exec();
700 KOPrefs::instance()->mSyncProfileNames = sp->getSyncProfileNames(); 701 KOPrefs::instance()->mSyncProfileNames = sp->getSyncProfileNames();
701 KOPrefs::instance()->mLocalMachineName = sp->getLocalMachineName (); 702 KOPrefs::instance()->mLocalMachineName = sp->getLocalMachineName ();
702} 703}
703 704
704 705
705//KOPrefs::instance()->mWriteBackFile 706//KOPrefs::instance()->mWriteBackFile
706//KOPrefs::instance()->mWriteBackExistingOnly 707//KOPrefs::instance()->mWriteBackExistingOnly
707 708
708// 0 syncPrefsGroup->addRadio(i18n("Take local entry on conflict")); 709// 0 syncPrefsGroup->addRadio(i18n("Take local entry on conflict"));
709// 1 syncPrefsGroup->addRadio(i18n("Take remote entry on conflict")); 710// 1 syncPrefsGroup->addRadio(i18n("Take remote entry on conflict"));
710// 2 syncPrefsGroup->addRadio(i18n("Take newest entry on conflict")); 711// 2 syncPrefsGroup->addRadio(i18n("Take newest entry on conflict"));
711// 3 syncPrefsGroup->addRadio(i18n("Ask for every entry on conflict")); 712// 3 syncPrefsGroup->addRadio(i18n("Ask for every entry on conflict"));
712// 4 syncPrefsGroup->addRadio(i18n("Force take local entry always")); 713// 4 syncPrefsGroup->addRadio(i18n("Force take local entry always"));
713// 5 syncPrefsGroup->addRadio(i18n("Force take remote entry always")); 714// 5 syncPrefsGroup->addRadio(i18n("Force take remote entry always"));
714 715
715int CalendarView::takeEvent( Incidence* local, Incidence* remote, int mode , bool full ) 716int CalendarView::takeEvent( Incidence* local, Incidence* remote, int mode , bool full )
716{ 717{
717 718
718 //void setZaurusId(int id); 719 //void setZaurusId(int id);
719 // int zaurusId() const; 720 // int zaurusId() const;
720 // void setZaurusUid(int id); 721 // void setZaurusUid(int id);
721 // int zaurusUid() const; 722 // int zaurusUid() const;
722 // void setZaurusStat(int id); 723 // void setZaurusStat(int id);
723 // int zaurusStat() const; 724 // int zaurusStat() const;
724 // 0 equal 725 // 0 equal
725 // 1 take local 726 // 1 take local
726 // 2 take remote 727 // 2 take remote
727 // 3 cancel 728 // 3 cancel
728 QDateTime lastSync = mLastCalendarSync; 729 QDateTime lastSync = mLastCalendarSync;
729 QDateTime localMod = local->lastModified(); 730 QDateTime localMod = local->lastModified();
730 QDateTime remoteMod = remote->lastModified(); 731 QDateTime remoteMod = remote->lastModified();
731 if ( mGlobalSyncMode == SYNC_MODE_EXTERNAL ) { 732 if ( mGlobalSyncMode == SYNC_MODE_EXTERNAL ) {
732 bool remCh, locCh; 733 bool remCh, locCh;
733 remCh = ( remote->getCsum(mCurrentSyncDevice) != local->getCsum(mCurrentSyncDevice) ); 734 remCh = ( remote->getCsum(mCurrentSyncDevice) != local->getCsum(mCurrentSyncDevice) );
734 //if ( remCh ) 735 //if ( remCh )
735 //qDebug("loc %s rem %s", local->getCsum(mCurrentSyncDevice).latin1(), remote->getCsum(mCurrentSyncDevice).latin1() ); 736 //qDebug("loc %s rem %s", local->getCsum(mCurrentSyncDevice).latin1(), remote->getCsum(mCurrentSyncDevice).latin1() );
736 locCh = ( localMod > mLastCalendarSync ); 737 locCh = ( localMod > mLastCalendarSync );
737 if ( !remCh && ! locCh ) { 738 if ( !remCh && ! locCh ) {
738 //qDebug("both not changed "); 739 //qDebug("both not changed ");
739 lastSync = localMod.addDays(1); 740 lastSync = localMod.addDays(1);
740 if ( mode <= SYNC_PREF_ASK ) 741 if ( mode <= SYNC_PREF_ASK )
741 return 0; 742 return 0;
742 } else { 743 } else {
743 if ( locCh ) { 744 if ( locCh ) {
744 //qDebug("loc changed %d %s %s", local->revision() , localMod.toString().latin1(), mLastCalendarSync.toString().latin1()); 745 //qDebug("loc changed %d %s %s", local->revision() , localMod.toString().latin1(), mLastCalendarSync.toString().latin1());
745 lastSync = localMod.addDays( -1 ); 746 lastSync = localMod.addDays( -1 );
746 if ( !remCh ) 747 if ( !remCh )
747 remoteMod = ( lastSync.addDays( -1 ) ); 748 remoteMod = ( lastSync.addDays( -1 ) );
748 } else { 749 } else {
749 //qDebug(" not loc changed "); 750 //qDebug(" not loc changed ");
750 lastSync = localMod.addDays( 1 ); 751 lastSync = localMod.addDays( 1 );
751 if ( remCh ) 752 if ( remCh )
752 remoteMod =( lastSync.addDays( 1 ) ); 753 remoteMod =( lastSync.addDays( 1 ) );
753 754
754 } 755 }
755 } 756 }
756 full = true; 757 full = true;
757 if ( mode < SYNC_PREF_ASK ) 758 if ( mode < SYNC_PREF_ASK )
758 mode = SYNC_PREF_ASK; 759 mode = SYNC_PREF_ASK;
759 } else { 760 } else {
760 if ( localMod == remoteMod ) 761 if ( localMod == remoteMod )
761 if ( local->revision() == remote->revision() ) 762 if ( local->revision() == remote->revision() )
762 return 0; 763 return 0;
763 764
764 } 765 }
765 // qDebug(" %d %d conflict on %s %s ", mode, full, local->summary().latin1(), remote->summary().latin1() ); 766 // qDebug(" %d %d conflict on %s %s ", mode, full, local->summary().latin1(), remote->summary().latin1() );
766 767
767 //qDebug("%s %d %s %d", localMod.toString().latin1() , local->revision(), remoteMod.toString().latin1(), remote->revision()); 768 //qDebug("%s %d %s %d", localMod.toString().latin1() , local->revision(), remoteMod.toString().latin1(), remote->revision());
768 //qDebug("%d %d %d %d ", localMod.time().second(), localMod.time().msec(), remoteMod.time().second(), remoteMod.time().msec() ); 769 //qDebug("%d %d %d %d ", localMod.time().second(), localMod.time().msec(), remoteMod.time().second(), remoteMod.time().msec() );
769 //full = true; //debug only 770 //full = true; //debug only
770 if ( full ) { 771 if ( full ) {
771 bool equ = false; 772 bool equ = false;
772 if ( local->type() == "Event" ) { 773 if ( local->type() == "Event" ) {
773 equ = (*((Event*) local) == *((Event*) remote)); 774 equ = (*((Event*) local) == *((Event*) remote));
774 } 775 }
775 else if ( local->type() =="Todo" ) 776 else if ( local->type() =="Todo" )
776 equ = (*((Todo*) local) == (*(Todo*) remote)); 777 equ = (*((Todo*) local) == (*(Todo*) remote));
777 else if ( local->type() =="Journal" ) 778 else if ( local->type() =="Journal" )
778 equ = (*((Journal*) local) == *((Journal*) remote)); 779 equ = (*((Journal*) local) == *((Journal*) remote));
779 if ( equ ) { 780 if ( equ ) {
780 //qDebug("equal "); 781 //qDebug("equal ");
781 if ( mGlobalSyncMode == SYNC_MODE_EXTERNAL ) { 782 if ( mGlobalSyncMode == SYNC_MODE_EXTERNAL ) {
782 local->setCsum( mCurrentSyncDevice, remote->getCsum(mCurrentSyncDevice) ); 783 local->setCsum( mCurrentSyncDevice, remote->getCsum(mCurrentSyncDevice) );
783 } 784 }
784 if ( mode < SYNC_PREF_FORCE_LOCAL ) 785 if ( mode < SYNC_PREF_FORCE_LOCAL )
785 return 0; 786 return 0;
786 787
787 }//else //debug only 788 }//else //debug only
788 //qDebug("not equal %s %s ", local->summary().latin1(), remote->summary().latin1()); 789 //qDebug("not equal %s %s ", local->summary().latin1(), remote->summary().latin1());
789 } 790 }
790 int result; 791 int result;
791 bool localIsNew; 792 bool localIsNew;
792 //qDebug("%s -- %s mLastCalendarSync %s lastsync %s --- local %s remote %s ",local->summary().latin1(), remote->summary().latin1(),mLastCalendarSync.toString().latin1() ,lastSync.toString().latin1() , localMod.toString().latin1() , remoteMod.toString().latin1() ); 793 //qDebug("%s -- %s mLastCalendarSync %s lastsync %s --- local %s remote %s ",local->summary().latin1(), remote->summary().latin1(),mLastCalendarSync.toString().latin1() ,lastSync.toString().latin1() , localMod.toString().latin1() , remoteMod.toString().latin1() );
793 794
794 if ( full && mode < SYNC_PREF_NEWEST ) 795 if ( full && mode < SYNC_PREF_NEWEST )
795 mode = SYNC_PREF_ASK; 796 mode = SYNC_PREF_ASK;
796 797
797 switch( mode ) { 798 switch( mode ) {
798 case SYNC_PREF_LOCAL: 799 case SYNC_PREF_LOCAL:
799 if ( lastSync > remoteMod ) 800 if ( lastSync > remoteMod )
800 return 1; 801 return 1;
801 if ( lastSync > localMod ) 802 if ( lastSync > localMod )
802 return 2; 803 return 2;
803 return 1; 804 return 1;
804 break; 805 break;
805 case SYNC_PREF_REMOTE: 806 case SYNC_PREF_REMOTE:
806 if ( lastSync > remoteMod ) 807 if ( lastSync > remoteMod )
807 return 1; 808 return 1;
808 if ( lastSync > localMod ) 809 if ( lastSync > localMod )
809 return 2; 810 return 2;
810 return 2; 811 return 2;
811 break; 812 break;
812 case SYNC_PREF_NEWEST: 813 case SYNC_PREF_NEWEST:
813 if ( localMod > remoteMod ) 814 if ( localMod > remoteMod )
814 return 1; 815 return 1;
815 else 816 else
816 return 2; 817 return 2;
817 break; 818 break;
818 case SYNC_PREF_ASK: 819 case SYNC_PREF_ASK:
819 //qDebug("lsy %s --- lo %s --- re %s ", lastSync.toString().latin1(), localMod.toString().latin1(), remoteMod.toString().latin1() ); 820 //qDebug("lsy %s --- lo %s --- re %s ", lastSync.toString().latin1(), localMod.toString().latin1(), remoteMod.toString().latin1() );
820 if ( lastSync > remoteMod ) 821 if ( lastSync > remoteMod )
821 return 1; 822 return 1;
822 if ( lastSync > localMod ) 823 if ( lastSync > localMod )
823 return 2; 824 return 2;
824 //qDebug("lsy %s --- lo %s --- re %s ", lastSync.toString().latin1(), localMod.toString().latin1(), remoteMod.toString().latin1() ); 825 //qDebug("lsy %s --- lo %s --- re %s ", lastSync.toString().latin1(), localMod.toString().latin1(), remoteMod.toString().latin1() );
825 localIsNew = localMod >= remoteMod; 826 localIsNew = localMod >= remoteMod;
826 if ( localIsNew ) 827 if ( localIsNew )
827 getEventViewerDialog()->setColorMode( 1 ); 828 getEventViewerDialog()->setColorMode( 1 );
828 else 829 else
829 getEventViewerDialog()->setColorMode( 2 ); 830 getEventViewerDialog()->setColorMode( 2 );
830 getEventViewerDialog()->setIncidence(local); 831 getEventViewerDialog()->setIncidence(local);
831 if ( localIsNew ) 832 if ( localIsNew )
832 getEventViewerDialog()->setColorMode( 2 ); 833 getEventViewerDialog()->setColorMode( 2 );
833 else 834 else
834 getEventViewerDialog()->setColorMode( 1 ); 835 getEventViewerDialog()->setColorMode( 1 );
835 getEventViewerDialog()->addIncidence(remote); 836 getEventViewerDialog()->addIncidence(remote);
836 getEventViewerDialog()->setColorMode( 0 ); 837 getEventViewerDialog()->setColorMode( 0 );
837 //qDebug("local %d remote %d ",local->relatedTo(),remote->relatedTo() ); 838 //qDebug("local %d remote %d ",local->relatedTo(),remote->relatedTo() );
838 getEventViewerDialog()->setCaption( mCurrentSyncDevice +i18n(" : Conflict! Please choose entry!")); 839 getEventViewerDialog()->setCaption( mCurrentSyncDevice +i18n(" : Conflict! Please choose entry!"));
839 getEventViewerDialog()->showMe(); 840 getEventViewerDialog()->showMe();
840 result = getEventViewerDialog()->executeS( localIsNew ); 841 result = getEventViewerDialog()->executeS( localIsNew );
841 return result; 842 return result;
842 843
843 break; 844 break;
844 case SYNC_PREF_FORCE_LOCAL: 845 case SYNC_PREF_FORCE_LOCAL:
845 return 1; 846 return 1;
846 break; 847 break;
847 case SYNC_PREF_FORCE_REMOTE: 848 case SYNC_PREF_FORCE_REMOTE:
848 return 2; 849 return 2;
849 break; 850 break;
850 851
851 default: 852 default:
852 // SYNC_PREF_TAKE_BOTH not implemented 853 // SYNC_PREF_TAKE_BOTH not implemented
853 break; 854 break;
854 } 855 }
855 return 0; 856 return 0;
856} 857}
857Event* CalendarView::getLastSyncEvent() 858Event* CalendarView::getLastSyncEvent()
858{ 859{
859 Event* lse; 860 Event* lse;
860 //qDebug("CurrentSyncDevice %s ",mCurrentSyncDevice .latin1() ); 861 //qDebug("CurrentSyncDevice %s ",mCurrentSyncDevice .latin1() );
861 lse = mCalendar->event( "last-syncEvent-"+mCurrentSyncDevice ); 862 lse = mCalendar->event( "last-syncEvent-"+mCurrentSyncDevice );
862 if (!lse) { 863 if (!lse) {
863 lse = new Event(); 864 lse = new Event();
864 lse->setUid( "last-syncEvent-"+mCurrentSyncDevice ); 865 lse->setUid( "last-syncEvent-"+mCurrentSyncDevice );
865 QString sum = ""; 866 QString sum = "";
866 if ( KOPrefs::instance()->mExternSyncProfiles.contains( mCurrentSyncDevice ) ) 867 if ( KOPrefs::instance()->mExternSyncProfiles.contains( mCurrentSyncDevice ) )
867 sum = "E: "; 868 sum = "E: ";
868 lse->setSummary(sum+mCurrentSyncDevice + i18n(" - sync event")); 869 lse->setSummary(sum+mCurrentSyncDevice + i18n(" - sync event"));
869 lse->setDtStart( mLastCalendarSync ); 870 lse->setDtStart( mLastCalendarSync );
870 lse->setDtEnd( mLastCalendarSync.addSecs( 7200 ) ); 871 lse->setDtEnd( mLastCalendarSync.addSecs( 7200 ) );
871 lse->setCategories( i18n("SyncEvent") ); 872 lse->setCategories( i18n("SyncEvent") );
872 lse->setReadOnly( true ); 873 lse->setReadOnly( true );
873 mCalendar->addEvent( lse ); 874 mCalendar->addEvent( lse );
874 } 875 }
875 876
876 return lse; 877 return lse;
877 878
878} 879}
879// probaly useless 880// probaly useless
880void CalendarView::setupExternSyncProfiles() 881void CalendarView::setupExternSyncProfiles()
881{ 882{
882 Event* lse; 883 Event* lse;
883 mExternLastSyncEvent.clear(); 884 mExternLastSyncEvent.clear();
884 int i; 885 int i;
885 for ( i = 0; i < KOPrefs::instance()->mExternSyncProfiles.count(); ++i ) { 886 for ( i = 0; i < KOPrefs::instance()->mExternSyncProfiles.count(); ++i ) {
886 lse = mCalendar->event( "last-syncEvent-"+ KOPrefs::instance()->mExternSyncProfiles[i] ); 887 lse = mCalendar->event( "last-syncEvent-"+ KOPrefs::instance()->mExternSyncProfiles[i] );
887 if ( lse ) 888 if ( lse )
888 mExternLastSyncEvent.append( lse ); 889 mExternLastSyncEvent.append( lse );
889 else 890 else
890 qDebug("Last Sync event not found for %s ", KOPrefs::instance()->mExternSyncProfiles[i].latin1()); 891 qDebug("Last Sync event not found for %s ", KOPrefs::instance()->mExternSyncProfiles[i].latin1());
891 } 892 }
892 893
893} 894}
894// we check, if the to delete event has a id for a profile 895// we check, if the to delete event has a id for a profile
895// if yes, we set this id in the profile to delete 896// if yes, we set this id in the profile to delete
896void CalendarView::checkExternSyncEvent( QPtrList<Event> lastSync , Incidence* toDelete ) 897void CalendarView::checkExternSyncEvent( QPtrList<Event> lastSync , Incidence* toDelete )
897{ 898{
898 if ( lastSync.count() == 0 ) { 899 if ( lastSync.count() == 0 ) {
899 //qDebug(" lastSync.count() == 0"); 900 //qDebug(" lastSync.count() == 0");
900 return; 901 return;
901 } 902 }
902 if ( toDelete->type() == "Journal" ) 903 if ( toDelete->type() == "Journal" )
903 return; 904 return;
904 905
905 Event* eve = lastSync.first(); 906 Event* eve = lastSync.first();
906 907
907 while ( eve ) { 908 while ( eve ) {
908 QString id = toDelete->getID( eve->uid().mid( 15 ) ); // this is the sync profile name 909 QString id = toDelete->getID( eve->uid().mid( 15 ) ); // this is the sync profile name
909 if ( !id.isEmpty() ) { 910 if ( !id.isEmpty() ) {
910 QString des = eve->description(); 911 QString des = eve->description();
911 QString pref = "e"; 912 QString pref = "e";
912 if ( toDelete->type() == "Todo" ) 913 if ( toDelete->type() == "Todo" )
913 pref = "t"; 914 pref = "t";
914 des += pref+ id + ","; 915 des += pref+ id + ",";
915 eve->setReadOnly( false ); 916 eve->setReadOnly( false );
916 eve->setDescription( des ); 917 eve->setDescription( des );
917 //qDebug("setdes %s ", des.latin1()); 918 //qDebug("setdes %s ", des.latin1());
918 eve->setReadOnly( true ); 919 eve->setReadOnly( true );
919 } 920 }
920 eve = lastSync.next(); 921 eve = lastSync.next();
921 } 922 }
922 923
923} 924}
924void CalendarView::checkExternalId( Incidence * inc ) 925void CalendarView::checkExternalId( Incidence * inc )
925{ 926{
926 QPtrList<Event> lastSync = mCalendar->getExternLastSyncEvents() ; 927 QPtrList<Event> lastSync = mCalendar->getExternLastSyncEvents() ;
927 checkExternSyncEvent( lastSync, inc ); 928 checkExternSyncEvent( lastSync, inc );
928 929
929} 930}
930bool CalendarView::synchronizeCalendar( Calendar* local, Calendar* remote, int mode ) 931bool CalendarView::synchronizeCalendar( Calendar* local, Calendar* remote, int mode )
931{ 932{
932 bool syncOK = true; 933 bool syncOK = true;
933 int addedEvent = 0; 934 int addedEvent = 0;
934 int addedEventR = 0; 935 int addedEventR = 0;
935 int deletedEventR = 0; 936 int deletedEventR = 0;
936 int deletedEventL = 0; 937 int deletedEventL = 0;
937 int changedLocal = 0; 938 int changedLocal = 0;
938 int changedRemote = 0; 939 int changedRemote = 0;
939 //QPtrList<Event> el = local->rawEvents(); 940 //QPtrList<Event> el = local->rawEvents();
940 Event* eventR; 941 Event* eventR;
941 QString uid; 942 QString uid;
942 int take; 943 int take;
943 Event* eventL; 944 Event* eventL;
944 Event* eventRSync; 945 Event* eventRSync;
945 Event* eventLSync; 946 Event* eventLSync;
946 QPtrList<Event> eventRSyncSharp = remote->getExternLastSyncEvents(); 947 QPtrList<Event> eventRSyncSharp = remote->getExternLastSyncEvents();
947 QPtrList<Event> eventLSyncSharp = local->getExternLastSyncEvents(); 948 QPtrList<Event> eventLSyncSharp = local->getExternLastSyncEvents();
948 bool fullDateRange = false; 949 bool fullDateRange = false;
949 local->resetTempSyncStat(); 950 local->resetTempSyncStat();
950 mLastCalendarSync = QDateTime::currentDateTime(); 951 mLastCalendarSync = QDateTime::currentDateTime();
951 QDateTime modifiedCalendar = mLastCalendarSync;; 952 QDateTime modifiedCalendar = mLastCalendarSync;;
952 eventLSync = getLastSyncEvent(); 953 eventLSync = getLastSyncEvent();
953 eventR = remote->event("last-syncEvent-"+mCurrentSyncName ); 954 eventR = remote->event("last-syncEvent-"+mCurrentSyncName );
954 if ( eventR ) { 955 if ( eventR ) {
955 eventRSync = (Event*) eventR->clone(); 956 eventRSync = (Event*) eventR->clone();
956 remote->deleteEvent(eventR ); 957 remote->deleteEvent(eventR );
957 958
958 } else { 959 } else {
959 if ( mGlobalSyncMode == SYNC_MODE_EXTERNAL ) { 960 if ( mGlobalSyncMode == SYNC_MODE_EXTERNAL ) {
960 eventRSync = (Event*)eventLSync->clone(); 961 eventRSync = (Event*)eventLSync->clone();
961 } else { 962 } else {
962 fullDateRange = true; 963 fullDateRange = true;
963 eventRSync = new Event(); 964 eventRSync = new Event();
964 eventRSync->setSummary(mCurrentSyncName + i18n(" - sync event")); 965 eventRSync->setSummary(mCurrentSyncName + i18n(" - sync event"));
965 eventRSync->setUid("last-syncEvent-"+mCurrentSyncName ); 966 eventRSync->setUid("last-syncEvent-"+mCurrentSyncName );
966 eventRSync->setDtStart( mLastCalendarSync ); 967 eventRSync->setDtStart( mLastCalendarSync );
967 eventRSync->setDtEnd( mLastCalendarSync.addSecs( 7200 ) ); 968 eventRSync->setDtEnd( mLastCalendarSync.addSecs( 7200 ) );
968 eventRSync->setCategories( i18n("SyncEvent") ); 969 eventRSync->setCategories( i18n("SyncEvent") );
969 } 970 }
970 } 971 }
971 if ( eventLSync->dtStart() == mLastCalendarSync ) 972 if ( eventLSync->dtStart() == mLastCalendarSync )
972 fullDateRange = true; 973 fullDateRange = true;
973 974
974 if ( ! fullDateRange ) { 975 if ( ! fullDateRange ) {
975 if ( eventLSync->dtStart() != eventRSync->dtStart() ) { 976 if ( eventLSync->dtStart() != eventRSync->dtStart() ) {
976 977
977 // qDebug("set fulldate to true %s %s" ,eventLSync->dtStart().toString().latin1(), eventRSync->dtStart().toString().latin1() ); 978 // qDebug("set fulldate to true %s %s" ,eventLSync->dtStart().toString().latin1(), eventRSync->dtStart().toString().latin1() );
978 //qDebug("%d %d %d %d ", eventLSync->dtStart().time().second(), eventLSync->dtStart().time().msec() , eventRSync->dtStart().time().second(), eventRSync->dtStart().time().msec()); 979 //qDebug("%d %d %d %d ", eventLSync->dtStart().time().second(), eventLSync->dtStart().time().msec() , eventRSync->dtStart().time().second(), eventRSync->dtStart().time().msec());
979 fullDateRange = true; 980 fullDateRange = true;
980 } 981 }
981 } 982 }
982 if ( fullDateRange ) 983 if ( fullDateRange )
983 mLastCalendarSync = QDateTime::currentDateTime().addDays( -100*365); 984 mLastCalendarSync = QDateTime::currentDateTime().addDays( -100*365);
984 else 985 else
985 mLastCalendarSync = eventLSync->dtStart(); 986 mLastCalendarSync = eventLSync->dtStart();
986 // for resyncing if own file has changed 987 // for resyncing if own file has changed
987 if ( mCurrentSyncDevice == "deleteaftersync" ) { 988 if ( mCurrentSyncDevice == "deleteaftersync" ) {
988 mLastCalendarSync = loadedFileVersion; 989 mLastCalendarSync = loadedFileVersion;
989 qDebug("setting mLastCalendarSync "); 990 qDebug("setting mLastCalendarSync ");
990 } 991 }
991 //qDebug("*************************** "); 992 //qDebug("*************************** ");
992 qDebug("mLastCalendarSync %s ",mLastCalendarSync.toString().latin1() ); 993 qDebug("mLastCalendarSync %s ",mLastCalendarSync.toString().latin1() );
993 QPtrList<Incidence> er = remote->rawIncidences(); 994 QPtrList<Incidence> er = remote->rawIncidences();
994 Incidence* inR = er.first(); 995 Incidence* inR = er.first();
995 Incidence* inL; 996 Incidence* inL;
996 QProgressBar bar( er.count(),0 ); 997 QProgressBar bar( er.count(),0 );
997 bar.setCaption (i18n("Syncing - close to abort!") ); 998 bar.setCaption (i18n("Syncing - close to abort!") );
998 999
999 int w = 300; 1000 int w = 300;
1000 if ( QApplication::desktop()->width() < 320 ) 1001 if ( QApplication::desktop()->width() < 320 )
1001 w = 220; 1002 w = 220;
1002 int h = bar.sizeHint().height() ; 1003 int h = bar.sizeHint().height() ;
1003 int dw = QApplication::desktop()->width(); 1004 int dw = QApplication::desktop()->width();
1004 int dh = QApplication::desktop()->height(); 1005 int dh = QApplication::desktop()->height();
1005 bar.setGeometry( (dw-w)/2, (dh - h )/2 ,w,h ); 1006 bar.setGeometry( (dw-w)/2, (dh - h )/2 ,w,h );
1006 bar.show(); 1007 bar.show();
1007 int modulo = (er.count()/10)+1; 1008 int modulo = (er.count()/10)+1;
1008 int incCounter = 0; 1009 int incCounter = 0;
1009 while ( inR ) { 1010 while ( inR ) {
1010 if ( ! bar.isVisible() ) 1011 if ( ! bar.isVisible() )
1011 return false; 1012 return false;
1012 if ( incCounter % modulo == 0 ) 1013 if ( incCounter % modulo == 0 )
1013 bar.setProgress( incCounter ); 1014 bar.setProgress( incCounter );
1014 ++incCounter; 1015 ++incCounter;
1015 uid = inR->uid(); 1016 uid = inR->uid();
1016 bool skipIncidence = false; 1017 bool skipIncidence = false;
1017 if ( uid.left(15) == QString("last-syncEvent-") ) 1018 if ( uid.left(15) == QString("last-syncEvent-") )
1018 skipIncidence = true; 1019 skipIncidence = true;
1019 QString idS; 1020 QString idS;
1020 qApp->processEvents(); 1021 qApp->processEvents();
1021 if ( !skipIncidence ) { 1022 if ( !skipIncidence ) {
1022 inL = local->incidence( uid ); 1023 inL = local->incidence( uid );
1023 if ( inL ) { // maybe conflict - same uid in both calendars 1024 if ( inL ) { // maybe conflict - same uid in both calendars
1024 int maxrev = inL->revision(); 1025 int maxrev = inL->revision();
1025 if ( maxrev < inR->revision() ) 1026 if ( maxrev < inR->revision() )
1026 maxrev = inR->revision(); 1027 maxrev = inR->revision();
1027 if ( (take = takeEvent( inL, inR, mode, fullDateRange )) > 0 ) { 1028 if ( (take = takeEvent( inL, inR, mode, fullDateRange )) > 0 ) {
1028 //qDebug("take %d %s ", take, inL->summary().latin1()); 1029 //qDebug("take %d %s ", take, inL->summary().latin1());
1029 if ( take == 3 ) 1030 if ( take == 3 )
1030 return false; 1031 return false;
1031 if ( take == 1 ) {// take local 1032 if ( take == 1 ) {// take local
1032 if ( mGlobalSyncMode == SYNC_MODE_EXTERNAL ) 1033 if ( mGlobalSyncMode == SYNC_MODE_EXTERNAL )
1033 inL->setCsum( mCurrentSyncDevice, inR->getCsum(mCurrentSyncDevice) ); 1034 inL->setCsum( mCurrentSyncDevice, inR->getCsum(mCurrentSyncDevice) );
1034 else 1035 else
1035 idS = inR->IDStr(); 1036 idS = inR->IDStr();
1036 remote->deleteIncidence( inR ); 1037 remote->deleteIncidence( inR );
1037 if ( inL->revision() < maxrev ) 1038 if ( inL->revision() < maxrev )
1038 inL->setRevision( maxrev ); 1039 inL->setRevision( maxrev );
1039 inR = inL->clone(); 1040 inR = inL->clone();
1040 inR->setTempSyncStat( SYNC_TEMPSTATE_INITIAL ); 1041 inR->setTempSyncStat( SYNC_TEMPSTATE_INITIAL );
1041 if ( mGlobalSyncMode != SYNC_MODE_EXTERNAL ) 1042 if ( mGlobalSyncMode != SYNC_MODE_EXTERNAL )
1042 inR->setIDStr( idS ); 1043 inR->setIDStr( idS );
1043 remote->addIncidence( inR ); 1044 remote->addIncidence( inR );
1044 ++changedRemote; 1045 ++changedRemote;
1045 } else { 1046 } else {
1046 if ( inR->revision() < maxrev ) 1047 if ( inR->revision() < maxrev )
1047 inR->setRevision( maxrev ); 1048 inR->setRevision( maxrev );
1048 idS = inL->IDStr(); 1049 idS = inL->IDStr();
1049 local->deleteIncidence( inL ); 1050 local->deleteIncidence( inL );
1050 inL = inR->clone(); 1051 inL = inR->clone();
1051 inL->setIDStr( idS ); 1052 inL->setIDStr( idS );
1052 if ( mGlobalSyncMode == SYNC_MODE_EXTERNAL ) { 1053 if ( mGlobalSyncMode == SYNC_MODE_EXTERNAL ) {
1053 inL->setCsum( mCurrentSyncDevice, inR->getCsum(mCurrentSyncDevice) ); 1054 inL->setCsum( mCurrentSyncDevice, inR->getCsum(mCurrentSyncDevice) );
1054 inL->setID( mCurrentSyncDevice, inR->getID(mCurrentSyncDevice) ); 1055 inL->setID( mCurrentSyncDevice, inR->getID(mCurrentSyncDevice) );
1055 } 1056 }
1056 local->addIncidence( inL ); 1057 local->addIncidence( inL );
1057 ++changedLocal; 1058 ++changedLocal;
1058 } 1059 }
1059 } 1060 }
1060 } else { // no conflict 1061 } else { // no conflict
1061 if ( mGlobalSyncMode == SYNC_MODE_EXTERNAL ) { 1062 if ( mGlobalSyncMode == SYNC_MODE_EXTERNAL ) {
1062 QString des = eventLSync->description(); 1063 QString des = eventLSync->description();
1063 QString pref = "e"; 1064 QString pref = "e";
1064 if ( inR->type() == "Todo" ) 1065 if ( inR->type() == "Todo" )
1065 pref = "t"; 1066 pref = "t";
1066 if ( des.find(pref+ inR->getID(mCurrentSyncDevice) +"," ) >= 0 && mode != 5) { // delete it 1067 if ( des.find(pref+ inR->getID(mCurrentSyncDevice) +"," ) >= 0 && mode != 5) { // delete it
1067 inR->setTempSyncStat( SYNC_TEMPSTATE_DELETE ); 1068 inR->setTempSyncStat( SYNC_TEMPSTATE_DELETE );
1068 //remote->deleteIncidence( inR ); 1069 //remote->deleteIncidence( inR );
1069 ++deletedEventR; 1070 ++deletedEventR;
1070 } else { 1071 } else {
1071 inR->setLastModified( modifiedCalendar ); 1072 inR->setLastModified( modifiedCalendar );
1072 inL = inR->clone(); 1073 inL = inR->clone();
1073 local->addIncidence( inL ); 1074 local->addIncidence( inL );
1074 ++addedEvent; 1075 ++addedEvent;
1075 } 1076 }
1076 } else { 1077 } else {
1077 if ( inR->lastModified() > mLastCalendarSync || mode == 5 ) { 1078 if ( inR->lastModified() > mLastCalendarSync || mode == 5 ) {
1078 inR->setLastModified( modifiedCalendar ); 1079 inR->setLastModified( modifiedCalendar );
1079 local->addIncidence( inR->clone() ); 1080 local->addIncidence( inR->clone() );
1080 ++addedEvent; 1081 ++addedEvent;
1081 } else { 1082 } else {
1082 checkExternSyncEvent(eventRSyncSharp, inR); 1083 checkExternSyncEvent(eventRSyncSharp, inR);
1083 remote->deleteIncidence( inR ); 1084 remote->deleteIncidence( inR );
1084 ++deletedEventR; 1085 ++deletedEventR;
1085 } 1086 }
1086 } 1087 }
1087 } 1088 }
1088 } 1089 }
1089 inR = er.next(); 1090 inR = er.next();
1090 } 1091 }
1091 QPtrList<Incidence> el = local->rawIncidences(); 1092 QPtrList<Incidence> el = local->rawIncidences();
1092 inL = el.first(); 1093 inL = el.first();
1093 modulo = (el.count()/10)+1; 1094 modulo = (el.count()/10)+1;
1094 bar.setCaption (i18n("Add / remove events") ); 1095 bar.setCaption (i18n("Add / remove events") );
1095 bar.setTotalSteps ( el.count() ) ; 1096 bar.setTotalSteps ( el.count() ) ;
1096 bar.show(); 1097 bar.show();
1097 incCounter = 0; 1098 incCounter = 0;
1098 1099
1099 while ( inL ) { 1100 while ( inL ) {
1100 1101
1101 qApp->processEvents(); 1102 qApp->processEvents();
1102 if ( ! bar.isVisible() ) 1103 if ( ! bar.isVisible() )
1103 return false; 1104 return false;
1104 if ( incCounter % modulo == 0 ) 1105 if ( incCounter % modulo == 0 )
1105 bar.setProgress( incCounter ); 1106 bar.setProgress( incCounter );
1106 ++incCounter; 1107 ++incCounter;
1107 uid = inL->uid(); 1108 uid = inL->uid();
1108 bool skipIncidence = false; 1109 bool skipIncidence = false;
1109 if ( uid.left(15) == QString("last-syncEvent-") ) 1110 if ( uid.left(15) == QString("last-syncEvent-") )
1110 skipIncidence = true; 1111 skipIncidence = true;
1111 if ( mGlobalSyncMode == SYNC_MODE_EXTERNAL && inL->type() == "Journal" ) 1112 if ( mGlobalSyncMode == SYNC_MODE_EXTERNAL && inL->type() == "Journal" )
1112 skipIncidence = true; 1113 skipIncidence = true;
1113 if ( !skipIncidence ) { 1114 if ( !skipIncidence ) {
1114 inR = remote->incidence( uid ); 1115 inR = remote->incidence( uid );
1115 if ( ! inR ) { 1116 if ( ! inR ) {
1116 if ( mGlobalSyncMode == SYNC_MODE_EXTERNAL ) { 1117 if ( mGlobalSyncMode == SYNC_MODE_EXTERNAL ) {
1117 if ( !inL->getID(mCurrentSyncDevice).isEmpty() && mode != 4 ) { 1118 if ( !inL->getID(mCurrentSyncDevice).isEmpty() && mode != 4 ) {
1118 checkExternSyncEvent(eventLSyncSharp, inL); 1119 checkExternSyncEvent(eventLSyncSharp, inL);
1119 local->deleteIncidence( inL ); 1120 local->deleteIncidence( inL );
1120 ++deletedEventL; 1121 ++deletedEventL;
1121 } else { 1122 } else {
1122 if ( ! KOPrefs::instance()->mWriteBackExistingOnly ) { 1123 if ( ! KOPrefs::instance()->mWriteBackExistingOnly ) {
1123 inL->removeID(mCurrentSyncDevice ); 1124 inL->removeID(mCurrentSyncDevice );
1124 ++addedEventR; 1125 ++addedEventR;
1125 //qDebug("remote added Incidence %s ", inL->summary().latin1()); 1126 //qDebug("remote added Incidence %s ", inL->summary().latin1());
1126 inL->setLastModified( modifiedCalendar ); 1127 inL->setLastModified( modifiedCalendar );
1127 inR = inL->clone(); 1128 inR = inL->clone();
1128 inR->setTempSyncStat( SYNC_TEMPSTATE_INITIAL ); 1129 inR->setTempSyncStat( SYNC_TEMPSTATE_INITIAL );
1129 remote->addIncidence( inR ); 1130 remote->addIncidence( inR );
1130 } 1131 }
1131 } 1132 }
1132 } else { 1133 } else {
1133 if ( inL->lastModified() < mLastCalendarSync && mode != 4 ) { 1134 if ( inL->lastModified() < mLastCalendarSync && mode != 4 ) {
1134 checkExternSyncEvent(eventLSyncSharp, inL); 1135 checkExternSyncEvent(eventLSyncSharp, inL);
1135 local->deleteIncidence( inL ); 1136 local->deleteIncidence( inL );
1136 ++deletedEventL; 1137 ++deletedEventL;
1137 } else { 1138 } else {
1138 if ( ! KOPrefs::instance()->mWriteBackExistingOnly ) { 1139 if ( ! KOPrefs::instance()->mWriteBackExistingOnly ) {
1139 ++addedEventR; 1140 ++addedEventR;
1140 inL->setLastModified( modifiedCalendar ); 1141 inL->setLastModified( modifiedCalendar );
1141 remote->addIncidence( inL->clone() ); 1142 remote->addIncidence( inL->clone() );
1142 } 1143 }
1143 } 1144 }
1144 } 1145 }
1145 } 1146 }
1146 } 1147 }
1147 inL = el.next(); 1148 inL = el.next();
1148 } 1149 }
1149 int delFut = 0; 1150 int delFut = 0;
1150 if ( KOPrefs::instance()->mWriteBackInFuture ) { 1151 if ( KOPrefs::instance()->mWriteBackInFuture ) {
1151 er = remote->rawIncidences(); 1152 er = remote->rawIncidences();
1152 inR = er.first(); 1153 inR = er.first();
1153 QDateTime dt; 1154 QDateTime dt;
1154 QDateTime cur = QDateTime::currentDateTime().addDays( -7 ); 1155 QDateTime cur = QDateTime::currentDateTime().addDays( -7 );
1155 QDateTime end = cur.addDays( (KOPrefs::instance()->mWriteBackInFuture +1 ) *7 ); 1156 QDateTime end = cur.addDays( (KOPrefs::instance()->mWriteBackInFuture +1 ) *7 );
1156 while ( inR ) { 1157 while ( inR ) {
1157 if ( inR->type() == "Todo" ) { 1158 if ( inR->type() == "Todo" ) {
1158 Todo * t = (Todo*)inR; 1159 Todo * t = (Todo*)inR;
1159 if ( t->hasDueDate() ) 1160 if ( t->hasDueDate() )
1160 dt = t->dtDue(); 1161 dt = t->dtDue();
1161 else 1162 else
1162 dt = cur.addSecs( 62 ); 1163 dt = cur.addSecs( 62 );
1163 } 1164 }
1164 else if (inR->type() == "Event" ) { 1165 else if (inR->type() == "Event" ) {
1165 bool ok; 1166 bool ok;
1166 dt = inR->getNextOccurence( cur, &ok ); 1167 dt = inR->getNextOccurence( cur, &ok );
1167 if ( !ok ) 1168 if ( !ok )
1168 dt = cur.addSecs( -62 ); 1169 dt = cur.addSecs( -62 );
1169 } 1170 }
1170 else 1171 else
1171 dt = inR->dtStart(); 1172 dt = inR->dtStart();
1172 if ( dt < cur || dt > end ) { 1173 if ( dt < cur || dt > end ) {
1173 remote->deleteIncidence( inR ); 1174 remote->deleteIncidence( inR );
1174 ++delFut; 1175 ++delFut;
1175 } 1176 }
1176 inR = er.next(); 1177 inR = er.next();
1177 } 1178 }
1178 } 1179 }
1179 bar.hide(); 1180 bar.hide();
1180 mLastCalendarSync = QDateTime::currentDateTime().addSecs( 1 ); 1181 mLastCalendarSync = QDateTime::currentDateTime().addSecs( 1 );
1181 eventLSync->setReadOnly( false ); 1182 eventLSync->setReadOnly( false );
1182 eventLSync->setDtStart( mLastCalendarSync ); 1183 eventLSync->setDtStart( mLastCalendarSync );
1183 eventRSync->setDtStart( mLastCalendarSync ); 1184 eventRSync->setDtStart( mLastCalendarSync );
1184 eventLSync->setDtEnd( mLastCalendarSync.addSecs( 3600 ) ); 1185 eventLSync->setDtEnd( mLastCalendarSync.addSecs( 3600 ) );
1185 eventRSync->setDtEnd( mLastCalendarSync.addSecs( 3600 ) ); 1186 eventRSync->setDtEnd( mLastCalendarSync.addSecs( 3600 ) );
1186 eventRSync->setLocation( i18n("Remote from: ")+mCurrentSyncName ) ; 1187 eventRSync->setLocation( i18n("Remote from: ")+mCurrentSyncName ) ;
1187 eventLSync->setLocation(i18n("Local from: ") + mCurrentSyncName ); 1188 eventLSync->setLocation(i18n("Local from: ") + mCurrentSyncName );
1188 eventLSync->setReadOnly( true ); 1189 eventLSync->setReadOnly( true );
1189 if ( mGlobalSyncMode == SYNC_MODE_NORMAL) 1190 if ( mGlobalSyncMode == SYNC_MODE_NORMAL)
1190 remote->addEvent( eventRSync ); 1191 remote->addEvent( eventRSync );
1191 QString mes; 1192 QString mes;
1192 mes .sprintf( i18n("Synchronization summary:\n\n %d items added to local\n %d items added to remote\n %d items updated on local\n %d items updated on remote\n %d items deleted on local\n %d items deleted on remote\n"),addedEvent, addedEventR, changedLocal, changedRemote, deletedEventL, deletedEventR ); 1193 mes .sprintf( i18n("Synchronization summary:\n\n %d items added to local\n %d items added to remote\n %d items updated on local\n %d items updated on remote\n %d items deleted on local\n %d items deleted on remote\n"),addedEvent, addedEventR, changedLocal, changedRemote, deletedEventL, deletedEventR );
1193 QString delmess; 1194 QString delmess;
1194 if ( delFut ) { 1195 if ( delFut ) {
1195 delmess.sprintf( i18n("%d items skipped on remote,\nbecause they are in the past or\nmore than %d weeks in the future.\n"),delFut, KOPrefs::instance()->mWriteBackInFuture ); 1196 delmess.sprintf( i18n("%d items skipped on remote,\nbecause they are in the past or\nmore than %d weeks in the future.\n"),delFut, KOPrefs::instance()->mWriteBackInFuture );
1196 mes += delmess; 1197 mes += delmess;
1197 } 1198 }
1198 if ( KOPrefs::instance()->mShowSyncSummary ) { 1199 if ( KOPrefs::instance()->mShowSyncSummary ) {
1199 KMessageBox::information(this, mes, i18n("KO/Pi Synchronization") ); 1200 KMessageBox::information(this, mes, i18n("KO/Pi Synchronization") );
1200 } 1201 }
1201 qDebug( mes ); 1202 qDebug( mes );
1202 mCalendar->checkAlarmForIncidence( 0, true ); 1203 mCalendar->checkAlarmForIncidence( 0, true );
1203 return syncOK; 1204 return syncOK;
1204} 1205}
1205 1206
1206void CalendarView::setSyncDevice( QString s ) 1207void CalendarView::setSyncDevice( QString s )
1207{ 1208{
1208 mCurrentSyncDevice= s; 1209 mCurrentSyncDevice= s;
1209} 1210}
1210void CalendarView::setSyncName( QString s ) 1211void CalendarView::setSyncName( QString s )
1211{ 1212{
1212 mCurrentSyncName= s; 1213 mCurrentSyncName= s;
1213} 1214}
1214bool CalendarView::syncCalendar(QString filename, int mode) 1215bool CalendarView::syncCalendar(QString filename, int mode)
1215{ 1216{
1216 mGlobalSyncMode = SYNC_MODE_NORMAL; 1217 mGlobalSyncMode = SYNC_MODE_NORMAL;
1217 CalendarLocal* calendar = new CalendarLocal(); 1218 CalendarLocal* calendar = new CalendarLocal();
1218 calendar->setTimeZoneId(KOPrefs::instance()->mTimeZoneId); 1219 calendar->setTimeZoneId(KOPrefs::instance()->mTimeZoneId);
1219 FileStorage* storage = new FileStorage( calendar ); 1220 FileStorage* storage = new FileStorage( calendar );
1220 bool syncOK = false; 1221 bool syncOK = false;
1221 storage->setFileName( filename ); 1222 storage->setFileName( filename );
1222 // qDebug("loading ... "); 1223 // qDebug("loading ... ");
1223 if ( storage->load(KOPrefs::instance()->mUseQuicksave) ) { 1224 if ( storage->load(KOPrefs::instance()->mUseQuicksave) ) {
1224 getEventViewerDialog()->setSyncMode( true ); 1225 getEventViewerDialog()->setSyncMode( true );
1225 syncOK = synchronizeCalendar( mCalendar, calendar, mode ); 1226 syncOK = synchronizeCalendar( mCalendar, calendar, mode );
1226 getEventViewerDialog()->setSyncMode( false ); 1227 getEventViewerDialog()->setSyncMode( false );
1227 if ( syncOK ) { 1228 if ( syncOK ) {
1228 if ( KOPrefs::instance()->mWriteBackFile ) 1229 if ( KOPrefs::instance()->mWriteBackFile )
1229 { 1230 {
1230 storage->setSaveFormat( new ICalFormat( KOPrefs::instance()->mUseQuicksave) ); 1231 storage->setSaveFormat( new ICalFormat( KOPrefs::instance()->mUseQuicksave) );
1231 storage->save(); 1232 storage->save();
1232 } 1233 }
1233 } 1234 }
1234 setModified( true ); 1235 setModified( true );
1235 } 1236 }
1236 delete storage; 1237 delete storage;
1237 delete calendar; 1238 delete calendar;
1238 if ( syncOK ) 1239 if ( syncOK )
1239 updateView(); 1240 updateView();
1240 return syncOK; 1241 return syncOK;
1241} 1242}
1242void CalendarView::syncPhone() 1243void CalendarView::syncPhone()
1243{ 1244{
1244 syncExternal( 1 ); 1245 syncExternal( 1 );
1245} 1246}
1246void CalendarView::syncExternal( int mode ) 1247void CalendarView::syncExternal( int mode )
1247{ 1248{
1248 mGlobalSyncMode = SYNC_MODE_EXTERNAL; 1249 mGlobalSyncMode = SYNC_MODE_EXTERNAL;
1249 //mCurrentSyncDevice = "sharp-DTM"; 1250 //mCurrentSyncDevice = "sharp-DTM";
1250 if ( KOPrefs::instance()->mAskForPreferences ) 1251 if ( KOPrefs::instance()->mAskForPreferences )
1251 edit_sync_options(); 1252 edit_sync_options();
1252 qApp->processEvents(); 1253 qApp->processEvents();
1253 CalendarLocal* calendar = new CalendarLocal(); 1254 CalendarLocal* calendar = new CalendarLocal();
1254 calendar->setTimeZoneId(KOPrefs::instance()->mTimeZoneId); 1255 calendar->setTimeZoneId(KOPrefs::instance()->mTimeZoneId);
1255 bool syncOK = false; 1256 bool syncOK = false;
1256 bool loadSuccess = false; 1257 bool loadSuccess = false;
1257 PhoneFormat* phoneFormat = 0; 1258 PhoneFormat* phoneFormat = 0;
1258#ifndef DESKTOP_VERSION 1259#ifndef DESKTOP_VERSION
1259 SharpFormat* sharpFormat = 0; 1260 SharpFormat* sharpFormat = 0;
1260 if ( mode == 0 ) { // sharp 1261 if ( mode == 0 ) { // sharp
1261 sharpFormat = new SharpFormat () ; 1262 sharpFormat = new SharpFormat () ;
1262 loadSuccess = sharpFormat->load( calendar, mCalendar ); 1263 loadSuccess = sharpFormat->load( calendar, mCalendar );
1263 1264
1264 } else 1265 } else
1265#endif 1266#endif
1266 if ( mode == 1 ) { // phone 1267 if ( mode == 1 ) { // phone
1267 phoneFormat = new PhoneFormat (mCurrentSyncDevice, 1268 phoneFormat = new PhoneFormat (mCurrentSyncDevice,
1268 KOPrefs::instance()->mPhoneDevice, 1269 KOPrefs::instance()->mPhoneDevice,
1269 KOPrefs::instance()->mPhoneConnection, 1270 KOPrefs::instance()->mPhoneConnection,
1270 KOPrefs::instance()->mPhoneModel); 1271 KOPrefs::instance()->mPhoneModel);
1271 loadSuccess = phoneFormat->load( calendar,mCalendar); 1272 loadSuccess = phoneFormat->load( calendar,mCalendar);
1272 1273
1273 } else 1274 } else
1274 return; 1275 return;
1275 if ( loadSuccess ) { 1276 if ( loadSuccess ) {
1276 getEventViewerDialog()->setSyncMode( true ); 1277 getEventViewerDialog()->setSyncMode( true );
1277 syncOK = synchronizeCalendar( mCalendar, calendar, KOPrefs::instance()->mSyncAlgoPrefs ); 1278 syncOK = synchronizeCalendar( mCalendar, calendar, KOPrefs::instance()->mSyncAlgoPrefs );
1278 getEventViewerDialog()->setSyncMode( false ); 1279 getEventViewerDialog()->setSyncMode( false );
1279 qApp->processEvents(); 1280 qApp->processEvents();
1280 if ( syncOK ) { 1281 if ( syncOK ) {
1281 if ( KOPrefs::instance()->mWriteBackFile ) 1282 if ( KOPrefs::instance()->mWriteBackFile )
1282 { 1283 {
1283 QPtrList<Incidence> iL = mCalendar->rawIncidences(); 1284 QPtrList<Incidence> iL = mCalendar->rawIncidences();
1284 Incidence* inc = iL.first(); 1285 Incidence* inc = iL.first();
1285 if ( phoneFormat ) { 1286 if ( phoneFormat ) {
1286 while ( inc ) { 1287 while ( inc ) {
1287 inc->removeID(mCurrentSyncDevice); 1288 inc->removeID(mCurrentSyncDevice);
1288 inc = iL.next(); 1289 inc = iL.next();
1289 } 1290 }
1290 } 1291 }
1291#ifndef DESKTOP_VERSION 1292#ifndef DESKTOP_VERSION
1292 if ( sharpFormat ) 1293 if ( sharpFormat )
1293 sharpFormat->save(calendar); 1294 sharpFormat->save(calendar);
1294#endif 1295#endif
1295 if ( phoneFormat ) 1296 if ( phoneFormat )
1296 phoneFormat->save(calendar); 1297 phoneFormat->save(calendar);
1297 iL = calendar->rawIncidences(); 1298 iL = calendar->rawIncidences();
1298 inc = iL.first(); 1299 inc = iL.first();
1299 Incidence* loc; 1300 Incidence* loc;
1300 while ( inc ) { 1301 while ( inc ) {
1301 if ( inc->tempSyncStat() == SYNC_TEMPSTATE_NEW_ID ) { 1302 if ( inc->tempSyncStat() == SYNC_TEMPSTATE_NEW_ID ) {
1302 loc = mCalendar->incidence(inc->uid() ); 1303 loc = mCalendar->incidence(inc->uid() );
1303 if ( loc ) { 1304 if ( loc ) {
1304 loc->setID(mCurrentSyncDevice, inc->getID(mCurrentSyncDevice) ); 1305 loc->setID(mCurrentSyncDevice, inc->getID(mCurrentSyncDevice) );
1305 loc->setCsum( mCurrentSyncDevice, inc->getCsum(mCurrentSyncDevice) ); 1306 loc->setCsum( mCurrentSyncDevice, inc->getCsum(mCurrentSyncDevice) );
1306 } 1307 }
1307 } 1308 }
1308 inc = iL.next(); 1309 inc = iL.next();
1309 } 1310 }
1310 Incidence* lse = getLastSyncEvent(); 1311 Incidence* lse = getLastSyncEvent();
1311 if ( lse ) { 1312 if ( lse ) {
1312 lse->setReadOnly( false ); 1313 lse->setReadOnly( false );
1313 lse->setDescription( "" ); 1314 lse->setDescription( "" );
1314 lse->setReadOnly( true ); 1315 lse->setReadOnly( true );
1315 } 1316 }
1316 } 1317 }
1317 } 1318 }
1318 setModified( true ); 1319 setModified( true );
1319 } else { 1320 } else {
1320 QString question = i18n("Sorry, the database access\ncommand failed!\n\nNothing synced!\n") ; 1321 QString question = i18n("Sorry, the database access\ncommand failed!\n\nNothing synced!\n") ;
1321 QMessageBox::information( 0, i18n("KO/Pi Import - ERROR"), 1322 QMessageBox::information( 0, i18n("KO/Pi Import - ERROR"),
1322 question, i18n("Ok")) ; 1323 question, i18n("Ok")) ;
1323 1324
1324 } 1325 }
1325 delete calendar; 1326 delete calendar;
1326 updateView(); 1327 updateView();
1327 return ;//syncOK; 1328 return ;//syncOK;
1328 1329
1329} 1330}
1330void CalendarView::syncSharp() 1331void CalendarView::syncSharp()
1331{ 1332{
1332 syncExternal( 0 ); 1333 syncExternal( 0 );
1333 1334
1334} 1335}
1335 1336
1336 1337
1337//#include <kabc/stdaddressbook.h> 1338//#include <kabc/stdaddressbook.h>
1338bool CalendarView::importBday() 1339bool CalendarView::importBday()
1339{ 1340{
1340#if 0 1341#if 0
1341 KABC::StdAddressBook* AddressBook = KABC::StdAddressBook::self( true ); 1342 KABC::StdAddressBook* AddressBook = KABC::StdAddressBook::self( true );
1342 KABC::AddressBook::Iterator it; 1343 KABC::AddressBook::Iterator it;
1343 int count = 0; 1344 int count = 0;
1344 for( it = AddressBook->begin(); it != AddressBook->end(); ++it ) { 1345 for( it = AddressBook->begin(); it != AddressBook->end(); ++it ) {
1345 ++count; 1346 ++count;
1346 } 1347 }
1347 QProgressBar bar(count,0 ); 1348 QProgressBar bar(count,0 );
1348 int w = 300; 1349 int w = 300;
1349 if ( QApplication::desktop()->width() < 320 ) 1350 if ( QApplication::desktop()->width() < 320 )
1350 w = 220; 1351 w = 220;
1351 int h = bar.sizeHint().height() ; 1352 int h = bar.sizeHint().height() ;
1352 int dw = QApplication::desktop()->width(); 1353 int dw = QApplication::desktop()->width();
1353 int dh = QApplication::desktop()->height(); 1354 int dh = QApplication::desktop()->height();
1354 bar.setGeometry( (dw-w)/2, (dh - h )/2 ,w,h ); 1355 bar.setGeometry( (dw-w)/2, (dh - h )/2 ,w,h );
1355 bar.show(); 1356 bar.show();
1356 bar.setCaption (i18n("Reading addressbook - close to abort!") ); 1357 bar.setCaption (i18n("Reading addressbook - close to abort!") );
1357 qApp->processEvents(); 1358 qApp->processEvents();
1358 count = 0; 1359 count = 0;
1359 int addCount = 0; 1360 int addCount = 0;
1360 KCal::Attendee* a = 0; 1361 KCal::Attendee* a = 0;
1361 for( it = AddressBook->begin(); it != AddressBook->end(); ++it ) { 1362 for( it = AddressBook->begin(); it != AddressBook->end(); ++it ) {
1362 if ( ! bar.isVisible() ) 1363 if ( ! bar.isVisible() )
1363 return false; 1364 return false;
1364 bar.setProgress( count++ ); 1365 bar.setProgress( count++ );
1365 qApp->processEvents(); 1366 qApp->processEvents();
1366 //qDebug("add BDay %s %s", (*it).realName().latin1(),(*it).birthday().date().toString().latin1() ); 1367 //qDebug("add BDay %s %s", (*it).realName().latin1(),(*it).birthday().date().toString().latin1() );
1367 if ( (*it).birthday().date().isValid() ){ 1368 if ( (*it).birthday().date().isValid() ){
1368 a = new KCal::Attendee( (*it).realName(), (*it).preferredEmail(),false,KCal::Attendee::NeedsAction,KCal::Attendee::ReqParticipant,(*it).uid()) ; 1369 a = new KCal::Attendee( (*it).realName(), (*it).preferredEmail(),false,KCal::Attendee::NeedsAction,KCal::Attendee::ReqParticipant,(*it).uid()) ;
1369 if ( addAnniversary( (*it).birthday().date(), (*it).assembledName(), a, true ) ) 1370 if ( addAnniversary( (*it).birthday().date(), (*it).assembledName(), a, true ) )
1370 ++addCount; 1371 ++addCount;
1371 } 1372 }
1372 QDate anni = KGlobal::locale()->readDate( (*it).custom("KADDRESSBOOK", "X-Anniversary" ), "%Y-%m-%d"); 1373 QDate anni = KGlobal::locale()->readDate( (*it).custom("KADDRESSBOOK", "X-Anniversary" ), "%Y-%m-%d");
1373 if ( anni.isValid() ){ 1374 if ( anni.isValid() ){
1374 a = new KCal::Attendee( (*it).realName(), (*it).preferredEmail(),false,KCal::Attendee::NeedsAction,KCal::Attendee::ReqParticipant,(*it).uid()) ; 1375 a = new KCal::Attendee( (*it).realName(), (*it).preferredEmail(),false,KCal::Attendee::NeedsAction,KCal::Attendee::ReqParticipant,(*it).uid()) ;
1375 if ( addAnniversary( anni, (*it).assembledName(), a, false ) ) 1376 if ( addAnniversary( anni, (*it).assembledName(), a, false ) )
1376 ++addCount; 1377 ++addCount;
1377 } 1378 }
1378 } 1379 }
1379 updateView(); 1380 updateView();
1380 topLevelWidget()->setCaption(QString::number( addCount )+ i18n(" birthdays/anniversaries added!")); 1381 topLevelWidget()->setCaption(QString::number( addCount )+ i18n(" birthdays/anniversaries added!"));
1381#endif 1382#endif
1382 return true; 1383 return true;
1383} 1384}
1384 1385
1385bool CalendarView::addAnniversary( QDate date, QString name, KCal::Attendee* a, bool birthday) 1386bool CalendarView::addAnniversary( QDate date, QString name, KCal::Attendee* a, bool birthday)
1386{ 1387{
1387 //qDebug("addAnni "); 1388 //qDebug("addAnni ");
1388 Event * ev = new Event(); 1389 Event * ev = new Event();
1389 if ( a ) { 1390 if ( a ) {
1390 ev->addAttendee( a ); 1391 ev->addAttendee( a );
1391 } 1392 }
1392 QString kind; 1393 QString kind;
1393 if ( birthday ) 1394 if ( birthday )
1394 kind = i18n( "Birthday" ); 1395 kind = i18n( "Birthday" );
1395 else 1396 else
1396 kind = i18n( "Anniversary" ); 1397 kind = i18n( "Anniversary" );
1397 ev->setSummary( name + " - " + kind ); 1398 ev->setSummary( name + " - " + kind );
1398 ev->setOrganizer( "nobody@nowhere" ); 1399 ev->setOrganizer( "nobody@nowhere" );
1399 ev->setCategories( kind ); 1400 ev->setCategories( kind );
1400 ev->setDtStart( QDateTime(date) ); 1401 ev->setDtStart( QDateTime(date) );
1401 ev->setDtEnd( QDateTime(date) ); 1402 ev->setDtEnd( QDateTime(date) );
1402 ev->setFloats( true ); 1403 ev->setFloats( true );
1403 Recurrence * rec = ev->recurrence(); 1404 Recurrence * rec = ev->recurrence();
1404 rec->setYearly(Recurrence::rYearlyMonth,1,-1); 1405 rec->setYearly(Recurrence::rYearlyMonth,1,-1);
1405 rec->addYearlyNum( date.month() ); 1406 rec->addYearlyNum( date.month() );
1406 if ( !mCalendar->addAnniversaryNoDup( ev ) ) { 1407 if ( !mCalendar->addAnniversaryNoDup( ev ) ) {
1407 delete ev; 1408 delete ev;
1408 return false; 1409 return false;
1409 } 1410 }
1410 return true; 1411 return true;
1411 1412
1412} 1413}
1413bool CalendarView::importQtopia( const QString &categories, 1414bool CalendarView::importQtopia( const QString &categories,
1414 const QString &datebook, 1415 const QString &datebook,
1415 const QString &todolist ) 1416 const QString &todolist )
1416{ 1417{
1417 1418
1418 QtopiaFormat qtopiaFormat; 1419 QtopiaFormat qtopiaFormat;
1419 qtopiaFormat.setCategoriesList ( &(KOPrefs::instance()->mCustomCategories)); 1420 qtopiaFormat.setCategoriesList ( &(KOPrefs::instance()->mCustomCategories));
1420 if ( !categories.isEmpty() ) qtopiaFormat.load( mCalendar, categories ); 1421 if ( !categories.isEmpty() ) qtopiaFormat.load( mCalendar, categories );
1421 if ( !datebook.isEmpty() ) qtopiaFormat.load( mCalendar, datebook ); 1422 if ( !datebook.isEmpty() ) qtopiaFormat.load( mCalendar, datebook );
1422 if ( !todolist.isEmpty() ) qtopiaFormat.load( mCalendar, todolist ); 1423 if ( !todolist.isEmpty() ) qtopiaFormat.load( mCalendar, todolist );
1423 1424
1424 updateView(); 1425 updateView();
1425 return true; 1426 return true;
1426 1427
1427#if 0 1428#if 0
1428 mGlobalSyncMode = SYNC_MODE_QTOPIA; 1429 mGlobalSyncMode = SYNC_MODE_QTOPIA;
1429 mCurrentSyncDevice = "qtopia-XML"; 1430 mCurrentSyncDevice = "qtopia-XML";
1430 if ( KOPrefs::instance()->mAskForPreferences ) 1431 if ( KOPrefs::instance()->mAskForPreferences )
1431 edit_sync_options(); 1432 edit_sync_options();
1432 qApp->processEvents(); 1433 qApp->processEvents();
1433 CalendarLocal* calendar = new CalendarLocal(); 1434 CalendarLocal* calendar = new CalendarLocal();
1434 calendar->setTimeZoneId(KOPrefs::instance()->mTimeZoneId); 1435 calendar->setTimeZoneId(KOPrefs::instance()->mTimeZoneId);
1435 bool syncOK = false; 1436 bool syncOK = false;
1436 QtopiaFormat qtopiaFormat; 1437 QtopiaFormat qtopiaFormat;
1437 qtopiaFormat.setCategoriesList ( &(KOPrefs::instance()->mCustomCategories)); 1438 qtopiaFormat.setCategoriesList ( &(KOPrefs::instance()->mCustomCategories));
1438 bool loadOk = true; 1439 bool loadOk = true;
1439 if ( !categories.isEmpty() ) 1440 if ( !categories.isEmpty() )
1440 loadOk = qtopiaFormat.load( calendar, categories ); 1441 loadOk = qtopiaFormat.load( calendar, categories );
1441 if ( loadOk && !datebook.isEmpty() ) 1442 if ( loadOk && !datebook.isEmpty() )
1442 loadOk = qtopiaFormat.load( calendar, datebook ); 1443 loadOk = qtopiaFormat.load( calendar, datebook );
1443 if ( loadOk && !todolist.isEmpty() ) 1444 if ( loadOk && !todolist.isEmpty() )
1444 loadOk = qtopiaFormat.load( calendar, todolist ); 1445 loadOk = qtopiaFormat.load( calendar, todolist );
1445 1446
1446 if ( loadOk ) { 1447 if ( loadOk ) {
1447 getEventViewerDialog()->setSyncMode( true ); 1448 getEventViewerDialog()->setSyncMode( true );
1448 syncOK = synchronizeCalendar( mCalendar, calendar, KOPrefs::instance()->mSyncAlgoPrefs ); 1449 syncOK = synchronizeCalendar( mCalendar, calendar, KOPrefs::instance()->mSyncAlgoPrefs );
1449 getEventViewerDialog()->setSyncMode( false ); 1450 getEventViewerDialog()->setSyncMode( false );
1450 qApp->processEvents(); 1451 qApp->processEvents();
1451 if ( syncOK ) { 1452 if ( syncOK ) {
1452 if ( KOPrefs::instance()->mWriteBackFile ) 1453 if ( KOPrefs::instance()->mWriteBackFile )
1453 { 1454 {
1454 // write back XML file 1455 // write back XML file
1455 1456
1456 } 1457 }
1457 setModified( true ); 1458 setModified( true );
1458 } 1459 }
1459 } else { 1460 } else {
1460 QString question = i18n("Sorry, the file loading\ncommand failed!\n\nNothing synced!\n") ; 1461 QString question = i18n("Sorry, the file loading\ncommand failed!\n\nNothing synced!\n") ;
1461 QMessageBox::information( 0, i18n("KO/Pi Sync - ERROR"), 1462 QMessageBox::information( 0, i18n("KO/Pi Sync - ERROR"),
1462 question, i18n("Ok")) ; 1463 question, i18n("Ok")) ;
1463 } 1464 }
1464 delete calendar; 1465 delete calendar;
1465 updateView(); 1466 updateView();
1466 return syncOK; 1467 return syncOK;
1467 1468
1468 1469
1469#endif 1470#endif
1470 1471
1471} 1472}
1472 1473
1473void CalendarView::setSyncEventsReadOnly() 1474void CalendarView::setSyncEventsReadOnly()
1474{ 1475{
1475 Event * ev; 1476 Event * ev;
1476 QPtrList<Event> eL = mCalendar->rawEvents(); 1477 QPtrList<Event> eL = mCalendar->rawEvents();
1477 ev = eL.first(); 1478 ev = eL.first();
1478 while ( ev ) { 1479 while ( ev ) {
1479 if ( ev->uid().left(15) == QString("last-syncEvent-") ) 1480 if ( ev->uid().left(15) == QString("last-syncEvent-") )
1480 ev->setReadOnly( true ); 1481 ev->setReadOnly( true );
1481 ev = eL.next(); 1482 ev = eL.next();
1482 } 1483 }
1483} 1484}
1484bool CalendarView::openCalendar(QString filename, bool merge) 1485bool CalendarView::openCalendar(QString filename, bool merge)
1485{ 1486{
1486 1487
1487 if (filename.isEmpty()) { 1488 if (filename.isEmpty()) {
1488 return false; 1489 return false;
1489 } 1490 }
1490 1491
1491 if (!QFile::exists(filename)) { 1492 if (!QFile::exists(filename)) {
1492 KMessageBox::error(this,i18n("File does not exist:\n '%1'.").arg(filename)); 1493 KMessageBox::error(this,i18n("File does not exist:\n '%1'.").arg(filename));
1493 return false; 1494 return false;
1494 } 1495 }
1495 1496
1496 globalFlagBlockAgenda = 1; 1497 globalFlagBlockAgenda = 1;
1497 if (!merge) mCalendar->close(); 1498 if (!merge) mCalendar->close();
1498 1499
1499 mStorage->setFileName( filename ); 1500 mStorage->setFileName( filename );
1500 1501
1501 if ( mStorage->load(KOPrefs::instance()->mUseQuicksave) ) { 1502 if ( mStorage->load(KOPrefs::instance()->mUseQuicksave) ) {
1502 if ( merge ) ;//setModified( true ); 1503 if ( merge ) ;//setModified( true );
1503 else { 1504 else {
1504 //setModified( true ); 1505 //setModified( true );
1505 mViewManager->setDocumentId( filename ); 1506 mViewManager->setDocumentId( filename );
1506 mDialogManager->setDocumentId( filename ); 1507 mDialogManager->setDocumentId( filename );
1507 mTodoList->setDocumentId( filename ); 1508 mTodoList->setDocumentId( filename );
1508 } 1509 }
1509 globalFlagBlockAgenda = 2; 1510 globalFlagBlockAgenda = 2;
1510 // if ( getLastSyncEvent() ) 1511 // if ( getLastSyncEvent() )
1511 // getLastSyncEvent()->setReadOnly( true ); 1512 // getLastSyncEvent()->setReadOnly( true );
1512 mCalendar->reInitAlarmSettings(); 1513 mCalendar->reInitAlarmSettings();
1513 setSyncEventsReadOnly(); 1514 setSyncEventsReadOnly();
1514 updateUnmanagedViews(); 1515 updateUnmanagedViews();
1515 updateView(); 1516 updateView();
1516 if ( filename != MainWindow::defaultFileName() ) 1517 if ( filename != MainWindow::defaultFileName() )
1517 saveCalendar( MainWindow::defaultFileName() ); 1518 saveCalendar( MainWindow::defaultFileName() );
1518 loadedFileVersion = QDateTime::currentDateTime(); 1519 loadedFileVersion = QDateTime::currentDateTime();
1519 return true; 1520 return true;
1520 } else { 1521 } else {
1521 // while failing to load, the calendar object could 1522 // while failing to load, the calendar object could
1522 // have become partially populated. Clear it out. 1523 // have become partially populated. Clear it out.
1523 if ( !merge ) mCalendar->close(); 1524 if ( !merge ) mCalendar->close();
1524 1525
1525 KMessageBox::error(this,i18n("Couldn't load calendar\n '%1'.").arg(filename)); 1526 KMessageBox::error(this,i18n("Couldn't load calendar\n '%1'.").arg(filename));
1526 1527
1527 globalFlagBlockAgenda = 2; 1528 globalFlagBlockAgenda = 2;
1528 updateView(); 1529 updateView();
1529 } 1530 }
1530 return false; 1531 return false;
1531} 1532}
1532void CalendarView::setLoadedFileVersion(QDateTime dt) 1533void CalendarView::setLoadedFileVersion(QDateTime dt)
1533{ 1534{
1534 loadedFileVersion = dt; 1535 loadedFileVersion = dt;
1535} 1536}
1536bool CalendarView::checkFileChanged(QString fn) 1537bool CalendarView::checkFileChanged(QString fn)
1537{ 1538{
1538 QFileInfo finf ( fn ); 1539 QFileInfo finf ( fn );
1539 if ( !finf.exists() ) 1540 if ( !finf.exists() )
1540 return true; 1541 return true;
1541 QDateTime dt = finf.lastModified (); 1542 QDateTime dt = finf.lastModified ();
1542 if ( dt <= loadedFileVersion ) 1543 if ( dt <= loadedFileVersion )
1543 return false; 1544 return false;
1544 return true; 1545 return true;
1545 1546
1546} 1547}
1547bool CalendarView::checkFileVersion(QString fn) 1548bool CalendarView::checkFileVersion(QString fn)
1548{ 1549{
1549 QFileInfo finf ( fn ); 1550 QFileInfo finf ( fn );
1550 if ( !finf.exists() ) 1551 if ( !finf.exists() )
1551 return true; 1552 return true;
1552 QDateTime dt = finf.lastModified (); 1553 QDateTime dt = finf.lastModified ();
1553 //qDebug("loaded file version %s",loadedFileVersion.toString().latin1()); 1554 //qDebug("loaded file version %s",loadedFileVersion.toString().latin1());
1554 //qDebug("file on disk version %s",dt.toString().latin1()); 1555 //qDebug("file on disk version %s",dt.toString().latin1());
1555 if ( dt <= loadedFileVersion ) 1556 if ( dt <= loadedFileVersion )
1556 return true; 1557 return true;
1557 int km = KMessageBox::warningYesNoCancel(this, i18n("\nThe file on disk has changed!\nFile size: %1 bytes.\nLast modified: %2\nDo you want to:\n\n - Save and overwrite file?\n - Sync with file, then save?\n - Cancel without saving? \n").arg( QString::number( finf.size())).arg( KGlobal::locale()->formatDateTime(finf.lastModified (), true, false)) , 1558 int km = KMessageBox::warningYesNoCancel(this, i18n("\nThe file on disk has changed!\nFile size: %1 bytes.\nLast modified: %2\nDo you want to:\n\n - Save and overwrite file?\n - Sync with file, then save?\n - Cancel without saving? \n").arg( QString::number( finf.size())).arg( KGlobal::locale()->formatDateTime(finf.lastModified (), true, false)) ,
1558 i18n("KO/Pi Warning"),i18n("Overwrite"), 1559 i18n("KO/Pi Warning"),i18n("Overwrite"),
1559 i18n("Sync+save")); 1560 i18n("Sync+save"));
1560 1561
1561 if ( km == KMessageBox::Cancel ) 1562 if ( km == KMessageBox::Cancel )
1562 return false; 1563 return false;
1563 if ( km == KMessageBox::Yes ) 1564 if ( km == KMessageBox::Yes )
1564 return true; 1565 return true;
1565 1566
1566 setSyncDevice("deleteaftersync" ); 1567 setSyncDevice("deleteaftersync" );
1567 KOPrefs::instance()->mAskForPreferences = true; 1568 KOPrefs::instance()->mAskForPreferences = true;
1568 KOPrefs::instance()->mSyncAlgoPrefs = 3; 1569 KOPrefs::instance()->mSyncAlgoPrefs = 3;
1569 KOPrefs::instance()->mWriteBackFile = false; 1570 KOPrefs::instance()->mWriteBackFile = false;
1570 KOPrefs::instance()->mWriteBackExistingOnly = false; 1571 KOPrefs::instance()->mWriteBackExistingOnly = false;
1571 KOPrefs::instance()->mShowSyncSummary = false; 1572 KOPrefs::instance()->mShowSyncSummary = false;
1572 syncCalendar( fn, 3 ); 1573 syncCalendar( fn, 3 );
1573 Event * e = getLastSyncEvent(); 1574 Event * e = getLastSyncEvent();
1574 mCalendar->deleteEvent ( e ); 1575 mCalendar->deleteEvent ( e );
1575 updateView(); 1576 updateView();
1576 return true; 1577 return true;
1577} 1578}
1578 1579
1579bool CalendarView::saveCalendar( QString filename ) 1580bool CalendarView::saveCalendar( QString filename )
1580{ 1581{
1581 1582
1582 // Store back all unsaved data into calendar object 1583 // Store back all unsaved data into calendar object
1583 // qDebug("file %s %d ", filename.latin1() , mViewManager->currentView() ); 1584 // qDebug("file %s %d ", filename.latin1() , mViewManager->currentView() );
1584 if ( mViewManager->currentView() ) 1585 if ( mViewManager->currentView() )
1585 mViewManager->currentView()->flushView(); 1586 mViewManager->currentView()->flushView();
1586 1587
1587 //mStorage->setFileName( filename ); 1588 //mStorage->setFileName( filename );
1588 1589
1589 mStorage->setSaveFormat( new ICalFormat( KOPrefs::instance()->mUseQuicksave) ); 1590 mStorage->setSaveFormat( new ICalFormat( KOPrefs::instance()->mUseQuicksave) );
1590 mStorage->setFileName( filename ); 1591 mStorage->setFileName( filename );
1591 bool success; 1592 bool success;
1592 success = mStorage->save(); 1593 success = mStorage->save();
1593 if ( !success ) { 1594 if ( !success ) {
1594 return false; 1595 return false;
1595 } 1596 }
1596 1597
1597 return true; 1598 return true;
1598} 1599}
1599 1600
1600void CalendarView::closeCalendar() 1601void CalendarView::closeCalendar()
1601{ 1602{
1602 1603
1603 // child windows no longer valid 1604 // child windows no longer valid
1604 emit closingDown(); 1605 emit closingDown();
1605 1606
1606 mCalendar->close(); 1607 mCalendar->close();
1607 setModified(false); 1608 setModified(false);
1608 updateView(); 1609 updateView();
1609} 1610}
1610 1611
1611void CalendarView::archiveCalendar() 1612void CalendarView::archiveCalendar()
1612{ 1613{
1613 mDialogManager->showArchiveDialog(); 1614 mDialogManager->showArchiveDialog();
1614} 1615}
1615 1616
1616 1617
1617void CalendarView::readSettings() 1618void CalendarView::readSettings()
1618{ 1619{
1619 1620
1620 1621
1621 // mViewManager->showAgendaView(); 1622 // mViewManager->showAgendaView();
1622 QString str; 1623 QString str;
1623 //qDebug("CalendarView::readSettings() "); 1624 //qDebug("CalendarView::readSettings() ");
1624 // read settings from the KConfig, supplying reasonable 1625 // read settings from the KConfig, supplying reasonable
1625 // defaults where none are to be found 1626 // defaults where none are to be found
1626 KConfig *config = KOGlobals::config(); 1627 KConfig *config = KOGlobals::config();
1627#ifndef KORG_NOSPLITTER 1628#ifndef KORG_NOSPLITTER
1628 config->setGroup("KOrganizer Geometry"); 1629 config->setGroup("KOrganizer Geometry");
1629 1630
1630 QValueList<int> sizes = config->readIntListEntry("Separator1"); 1631 QValueList<int> sizes = config->readIntListEntry("Separator1");
1631 if (sizes.count() != 2) { 1632 if (sizes.count() != 2) {
1632 sizes << mDateNavigator->minimumSizeHint().width(); 1633 sizes << mDateNavigator->minimumSizeHint().width();
1633 sizes << 300; 1634 sizes << 300;
1634 } 1635 }
1635 mPanner->setSizes(sizes); 1636 mPanner->setSizes(sizes);
1636 1637
1637 sizes = config->readIntListEntry("Separator2"); 1638 sizes = config->readIntListEntry("Separator2");
1638 if ( ( mResourceView && sizes.count() == 4 ) || 1639 if ( ( mResourceView && sizes.count() == 4 ) ||
1639 ( !mResourceView && sizes.count() == 3 ) ) { 1640 ( !mResourceView && sizes.count() == 3 ) ) {
1640 mLeftSplitter->setSizes(sizes); 1641 mLeftSplitter->setSizes(sizes);
1641 } 1642 }
1642#endif 1643#endif
1643 globalFlagBlockAgenda = 1; 1644 globalFlagBlockAgenda = 1;
1644 mViewManager->showAgendaView(); 1645 mViewManager->showAgendaView();
1645 //mViewManager->readSettings( config ); 1646 //mViewManager->readSettings( config );
1646 mTodoList->restoreLayout(config,QString("Todo Layout")); 1647 mTodoList->restoreLayout(config,QString("Todo Layout"));
1647 readFilterSettings(config); 1648 readFilterSettings(config);
1648 config->setGroup( "Views" ); 1649 config->setGroup( "Views" );
1649 int dateCount = config->readNumEntry( "ShownDatesCount", 7 ); 1650 int dateCount = config->readNumEntry( "ShownDatesCount", 7 );
1650 if ( dateCount == 5 ) mNavigator->selectWorkWeek(); 1651 if ( dateCount == 5 ) mNavigator->selectWorkWeek();
1651 else if ( dateCount == 7 ) mNavigator->selectWeek(); 1652 else if ( dateCount == 7 ) mNavigator->selectWeek();
1652 else mNavigator->selectDates( dateCount ); 1653 else mNavigator->selectDates( dateCount );
1653 // mViewManager->readSettings( config ); 1654 // mViewManager->readSettings( config );
1654 updateConfig(); 1655 updateConfig();
1655 globalFlagBlockAgenda = 2; 1656 globalFlagBlockAgenda = 2;
1656 mViewManager->readSettings( config ); 1657 mViewManager->readSettings( config );
1657#ifdef DESKTOP_VERSION 1658#ifdef DESKTOP_VERSION
1658 config->setGroup("WidgetLayout"); 1659 config->setGroup("WidgetLayout");
1659 QStringList list; 1660 QStringList list;
1660 list = config->readListEntry("MainLayout"); 1661 list = config->readListEntry("MainLayout");
1661 int x,y,w,h; 1662 int x,y,w,h;
1662 if ( ! list.isEmpty() ) { 1663 if ( ! list.isEmpty() ) {
1663 x = list[0].toInt(); 1664 x = list[0].toInt();
1664 y = list[1].toInt(); 1665 y = list[1].toInt();
1665 w = list[2].toInt(); 1666 w = list[2].toInt();
1666 h = list[3].toInt(); 1667 h = list[3].toInt();
1667 topLevelWidget()->setGeometry(x,y,w,h); 1668 topLevelWidget()->setGeometry(x,y,w,h);
1668 1669
1669 } else { 1670 } else {
1670 topLevelWidget()->setGeometry( 40 ,40 , 640, 440); 1671 topLevelWidget()->setGeometry( 40 ,40 , 640, 440);
1671 } 1672 }
1672 list = config->readListEntry("EditEventLayout"); 1673 list = config->readListEntry("EditEventLayout");
1673 if ( ! list.isEmpty() ) { 1674 if ( ! list.isEmpty() ) {
1674 x = list[0].toInt(); 1675 x = list[0].toInt();
1675 y = list[1].toInt(); 1676 y = list[1].toInt();
1676 w = list[2].toInt(); 1677 w = list[2].toInt();
1677 h = list[3].toInt(); 1678 h = list[3].toInt();
1678 mEventEditor->setGeometry(x,y,w,h); 1679 mEventEditor->setGeometry(x,y,w,h);
1679 1680
1680 } 1681 }
1681 list = config->readListEntry("EditTodoLayout"); 1682 list = config->readListEntry("EditTodoLayout");
1682 if ( ! list.isEmpty() ) { 1683 if ( ! list.isEmpty() ) {
1683 x = list[0].toInt(); 1684 x = list[0].toInt();
1684 y = list[1].toInt(); 1685 y = list[1].toInt();
1685 w = list[2].toInt(); 1686 w = list[2].toInt();
1686 h = list[3].toInt(); 1687 h = list[3].toInt();
1687 mTodoEditor->setGeometry(x,y,w,h); 1688 mTodoEditor->setGeometry(x,y,w,h);
1688 1689
1689 } 1690 }
1690 list = config->readListEntry("ViewerLayout"); 1691 list = config->readListEntry("ViewerLayout");
1691 if ( ! list.isEmpty() ) { 1692 if ( ! list.isEmpty() ) {
1692 x = list[0].toInt(); 1693 x = list[0].toInt();
1693 y = list[1].toInt(); 1694 y = list[1].toInt();
1694 w = list[2].toInt(); 1695 w = list[2].toInt();
1695 h = list[3].toInt(); 1696 h = list[3].toInt();
1696 getEventViewerDialog()->setGeometry(x,y,w,h); 1697 getEventViewerDialog()->setGeometry(x,y,w,h);
1697 } 1698 }
1698#endif 1699#endif
1699 1700
1700} 1701}
1701 1702
1702 1703
1703void CalendarView::writeSettings() 1704void CalendarView::writeSettings()
1704{ 1705{
1705 // kdDebug() << "CalendarView::writeSettings" << endl; 1706 // kdDebug() << "CalendarView::writeSettings" << endl;
1706 1707
1707 KConfig *config = KOGlobals::config(); 1708 KConfig *config = KOGlobals::config();
1708 1709
1709#ifndef KORG_NOSPLITTER 1710#ifndef KORG_NOSPLITTER
1710 config->setGroup("KOrganizer Geometry"); 1711 config->setGroup("KOrganizer Geometry");
1711 1712
1712 QValueList<int> list = mPanner->sizes(); 1713 QValueList<int> list = mPanner->sizes();
1713 config->writeEntry("Separator1",list); 1714 config->writeEntry("Separator1",list);
1714 1715
1715 list = mLeftSplitter->sizes(); 1716 list = mLeftSplitter->sizes();
1716 config->writeEntry("Separator2",list); 1717 config->writeEntry("Separator2",list);
1717#endif 1718#endif
1718 1719
1719 mViewManager->writeSettings( config ); 1720 mViewManager->writeSettings( config );
1720 mTodoList->saveLayout(config,QString("Todo Layout")); 1721 mTodoList->saveLayout(config,QString("Todo Layout"));
1721 mDialogManager->writeSettings( config ); 1722 mDialogManager->writeSettings( config );
1722 //KOPrefs::instance()->usrWriteConfig(); 1723 //KOPrefs::instance()->usrWriteConfig();
1723 KOPrefs::instance()->writeConfig(); 1724 KOPrefs::instance()->writeConfig();
1724 1725
1725 writeFilterSettings(config); 1726 writeFilterSettings(config);
1726 1727
1727 config->setGroup( "Views" ); 1728 config->setGroup( "Views" );
1728 config->writeEntry( "ShownDatesCount", mNavigator->selectedDates().count() ); 1729 config->writeEntry( "ShownDatesCount", mNavigator->selectedDates().count() );
1729 1730
1730#ifdef DESKTOP_VERSION 1731#ifdef DESKTOP_VERSION
1731 config->setGroup("WidgetLayout"); 1732 config->setGroup("WidgetLayout");
1732 QStringList list ;//= config->readListEntry("MainLayout"); 1733 QStringList list ;//= config->readListEntry("MainLayout");
1733 int x,y,w,h; 1734 int x,y,w,h;
1734 QWidget* wid; 1735 QWidget* wid;
1735 wid = topLevelWidget(); 1736 wid = topLevelWidget();
1736 x = wid->geometry().x(); 1737 x = wid->geometry().x();
1737 y = wid->geometry().y(); 1738 y = wid->geometry().y();
1738 w = wid->width(); 1739 w = wid->width();
1739 h = wid->height(); 1740 h = wid->height();
1740 list.clear(); 1741 list.clear();
1741 list << QString::number( x ); 1742 list << QString::number( x );
1742 list << QString::number( y ); 1743 list << QString::number( y );
1743 list << QString::number( w ); 1744 list << QString::number( w );
1744 list << QString::number( h ); 1745 list << QString::number( h );
1745 config->writeEntry("MainLayout",list ); 1746 config->writeEntry("MainLayout",list );
1746 1747
1747 wid = mEventEditor; 1748 wid = mEventEditor;
1748 x = wid->geometry().x(); 1749 x = wid->geometry().x();
1749 y = wid->geometry().y(); 1750 y = wid->geometry().y();
1750 w = wid->width(); 1751 w = wid->width();
1751 h = wid->height(); 1752 h = wid->height();
1752 list.clear(); 1753 list.clear();
1753 list << QString::number( x ); 1754 list << QString::number( x );
1754 list << QString::number( y ); 1755 list << QString::number( y );
1755 list << QString::number( w ); 1756 list << QString::number( w );
1756 list << QString::number( h ); 1757 list << QString::number( h );
1757 config->writeEntry("EditEventLayout",list ); 1758 config->writeEntry("EditEventLayout",list );
1758 1759
1759 wid = mTodoEditor; 1760 wid = mTodoEditor;
1760 x = wid->geometry().x(); 1761 x = wid->geometry().x();
1761 y = wid->geometry().y(); 1762 y = wid->geometry().y();
1762 w = wid->width(); 1763 w = wid->width();
1763 h = wid->height(); 1764 h = wid->height();
1764 list.clear(); 1765 list.clear();
1765 list << QString::number( x ); 1766 list << QString::number( x );
1766 list << QString::number( y ); 1767 list << QString::number( y );
1767 list << QString::number( w ); 1768 list << QString::number( w );
1768 list << QString::number( h ); 1769 list << QString::number( h );
1769 config->writeEntry("EditTodoLayout",list ); 1770 config->writeEntry("EditTodoLayout",list );
1770 wid = getEventViewerDialog(); 1771 wid = getEventViewerDialog();
1771 x = wid->geometry().x(); 1772 x = wid->geometry().x();
1772 y = wid->geometry().y(); 1773 y = wid->geometry().y();
1773 w = wid->width(); 1774 w = wid->width();
1774 h = wid->height(); 1775 h = wid->height();
1775 list.clear(); 1776 list.clear();
1776 list << QString::number( x ); 1777 list << QString::number( x );
1777 list << QString::number( y ); 1778 list << QString::number( y );
1778 list << QString::number( w ); 1779 list << QString::number( w );
1779 list << QString::number( h ); 1780 list << QString::number( h );
1780 config->writeEntry("ViewerLayout",list ); 1781 config->writeEntry("ViewerLayout",list );
1781 wid = mDialogManager->getSearchDialog(); 1782 wid = mDialogManager->getSearchDialog();
1782 if ( wid ) { 1783 if ( wid ) {
1783 x = wid->geometry().x(); 1784 x = wid->geometry().x();
1784 y = wid->geometry().y(); 1785 y = wid->geometry().y();
1785 w = wid->width(); 1786 w = wid->width();
1786 h = wid->height(); 1787 h = wid->height();
1787 list.clear(); 1788 list.clear();
1788 list << QString::number( x ); 1789 list << QString::number( x );
1789 list << QString::number( y ); 1790 list << QString::number( y );
1790 list << QString::number( w ); 1791 list << QString::number( w );
1791 list << QString::number( h ); 1792 list << QString::number( h );
1792 config->writeEntry("SearchLayout",list ); 1793 config->writeEntry("SearchLayout",list );
1793 } 1794 }
1794#endif 1795#endif
1795 1796
1796 1797
1797 config->sync(); 1798 config->sync();
1798} 1799}
1799 1800
1800void CalendarView::readFilterSettings(KConfig *config) 1801void CalendarView::readFilterSettings(KConfig *config)
1801{ 1802{
1802 // kdDebug() << "CalendarView::readFilterSettings()" << endl; 1803 // kdDebug() << "CalendarView::readFilterSettings()" << endl;
1803 1804
1804 mFilters.clear(); 1805 mFilters.clear();
1805 1806
1806 config->setGroup("General"); 1807 config->setGroup("General");
1807 QStringList filterList = config->readListEntry("CalendarFilters"); 1808 QStringList filterList = config->readListEntry("CalendarFilters");
1808 1809
1809 QStringList::ConstIterator it = filterList.begin(); 1810 QStringList::ConstIterator it = filterList.begin();
1810 QStringList::ConstIterator end = filterList.end(); 1811 QStringList::ConstIterator end = filterList.end();
1811 while(it != end) { 1812 while(it != end) {
1812 // kdDebug() << " filter: " << (*it) << endl; 1813 // kdDebug() << " filter: " << (*it) << endl;
1813 1814
1814 CalFilter *filter; 1815 CalFilter *filter;
1815 filter = new CalFilter(*it); 1816 filter = new CalFilter(*it);
1816 config->setGroup("Filter_" + (*it)); 1817 config->setGroup("Filter_" + (*it));
1817 //qDebug("readFilterSettings %d ",config->readNumEntry("Criteria",0) ); 1818 //qDebug("readFilterSettings %d ",config->readNumEntry("Criteria",0) );
1818 filter->setCriteria(config->readNumEntry("Criteria",0)); 1819 filter->setCriteria(config->readNumEntry("Criteria",0));
1819 filter->setCategoryList(config->readListEntry("CategoryList")); 1820 filter->setCategoryList(config->readListEntry("CategoryList"));
1820 mFilters.append(filter); 1821 mFilters.append(filter);
1821 1822
1822 ++it; 1823 ++it;
1823 } 1824 }
1824 1825
1825 if (mFilters.count() == 0) { 1826 if (mFilters.count() == 0) {
1826 CalFilter *filter = new CalFilter(i18n("Default")); 1827 CalFilter *filter = new CalFilter(i18n("Default"));
1827 mFilters.append(filter); 1828 mFilters.append(filter);
1828 } 1829 }
1829 mFilterView->updateFilters(); 1830 mFilterView->updateFilters();
1830 config->setGroup("FilterView"); 1831 config->setGroup("FilterView");
1831 1832
1832 mFilterView->blockSignals(true); 1833 mFilterView->blockSignals(true);
1833 mFilterView->setFiltersEnabled(config->readBoolEntry("FilterEnabled")); 1834 mFilterView->setFiltersEnabled(config->readBoolEntry("FilterEnabled"));
1834 mFilterView->setSelectedFilter(config->readEntry("Current Filter")); 1835 mFilterView->setSelectedFilter(config->readEntry("Current Filter"));
1835 mFilterView->blockSignals(false); 1836 mFilterView->blockSignals(false);
1836 // We do it manually to avoid it being done twice by the above calls 1837 // We do it manually to avoid it being done twice by the above calls
1837 updateFilter(); 1838 updateFilter();
1838} 1839}
1839 1840
1840void CalendarView::writeFilterSettings(KConfig *config) 1841void CalendarView::writeFilterSettings(KConfig *config)
1841{ 1842{
1842 // kdDebug() << "CalendarView::writeFilterSettings()" << endl; 1843 // kdDebug() << "CalendarView::writeFilterSettings()" << endl;
1843 1844
1844 QStringList filterList; 1845 QStringList filterList;
1845 1846
1846 CalFilter *filter = mFilters.first(); 1847 CalFilter *filter = mFilters.first();
1847 while(filter) { 1848 while(filter) {
1848 // kdDebug() << " fn: " << filter->name() << endl; 1849 // kdDebug() << " fn: " << filter->name() << endl;
1849 filterList << filter->name(); 1850 filterList << filter->name();
1850 config->setGroup("Filter_" + filter->name()); 1851 config->setGroup("Filter_" + filter->name());
1851 config->writeEntry("Criteria",filter->criteria()); 1852 config->writeEntry("Criteria",filter->criteria());
1852 config->writeEntry("CategoryList",filter->categoryList()); 1853 config->writeEntry("CategoryList",filter->categoryList());
1853 filter = mFilters.next(); 1854 filter = mFilters.next();
1854 } 1855 }
1855 config->setGroup("General"); 1856 config->setGroup("General");
1856 config->writeEntry("CalendarFilters",filterList); 1857 config->writeEntry("CalendarFilters",filterList);
1857 1858
1858 config->setGroup("FilterView"); 1859 config->setGroup("FilterView");
1859 config->writeEntry("FilterEnabled",mFilterView->filtersEnabled()); 1860 config->writeEntry("FilterEnabled",mFilterView->filtersEnabled());
1860 config->writeEntry("Current Filter",mFilterView->selectedFilter()->name()); 1861 config->writeEntry("Current Filter",mFilterView->selectedFilter()->name());
1861} 1862}
1862 1863
1863 1864
1864void CalendarView::goToday() 1865void CalendarView::goToday()
1865{ 1866{
1866 mNavigator->selectToday(); 1867 mNavigator->selectToday();
1867} 1868}
1868 1869
1869void CalendarView::goNext() 1870void CalendarView::goNext()
1870{ 1871{
1871 mNavigator->selectNext(); 1872 mNavigator->selectNext();
1872} 1873}
1873 1874
1874void CalendarView::goPrevious() 1875void CalendarView::goPrevious()
1875{ 1876{
1876 mNavigator->selectPrevious(); 1877 mNavigator->selectPrevious();
1877} 1878}
1878void CalendarView::goNextMonth() 1879void CalendarView::goNextMonth()
1879{ 1880{
1880 mNavigator->selectNextMonth(); 1881 mNavigator->selectNextMonth();
1881} 1882}
1882 1883
1883void CalendarView::goPreviousMonth() 1884void CalendarView::goPreviousMonth()
1884{ 1885{
1885 mNavigator->selectPreviousMonth(); 1886 mNavigator->selectPreviousMonth();
1886} 1887}
1887void CalendarView::writeLocale() 1888void CalendarView::writeLocale()
1888{ 1889{
1890 //KPimGlobalPrefs::instance()->setGlobalConfig();
1891#if 0
1889 KGlobal::locale()->setHore24Format( !KOPrefs::instance()->mPreferredTime ); 1892 KGlobal::locale()->setHore24Format( !KOPrefs::instance()->mPreferredTime );
1890 KGlobal::locale()->setWeekStartMonday( !KOPrefs::instance()->mWeekStartsOnSunday ); 1893 KGlobal::locale()->setWeekStartMonday( !KOPrefs::instance()->mWeekStartsOnSunday );
1891 KGlobal::locale()->setIntDateFormat( (KLocale::IntDateFormat)KOPrefs::instance()->mPreferredDate ); 1894 KGlobal::locale()->setIntDateFormat( (KLocale::IntDateFormat)KOPrefs::instance()->mPreferredDate );
1892 KGlobal::locale()->setLanguage( KOPrefs::instance()->mPreferredLanguage ); 1895 KGlobal::locale()->setLanguage( KOPrefs::instance()->mPreferredLanguage );
1893 QString dummy = KOPrefs::instance()->mUserDateFormatLong; 1896 QString dummy = KOPrefs::instance()->mUserDateFormatLong;
1894 KGlobal::locale()->setDateFormat(dummy.replace( QRegExp("K"), QString(",") )); 1897 KGlobal::locale()->setDateFormat(dummy.replace( QRegExp("K"), QString(",") ));
1895 dummy = KOPrefs::instance()->mUserDateFormatShort; 1898 dummy = KOPrefs::instance()->mUserDateFormatShort;
1896 KGlobal::locale()->setDateFormatShort(dummy.replace( QRegExp("K"), QString(",") )); 1899 KGlobal::locale()->setDateFormatShort(dummy.replace( QRegExp("K"), QString(",") ));
1897 KGlobal::locale()->setDaylightSaving( KOPrefs::instance()->mUseDaylightsaving, 1900 KGlobal::locale()->setDaylightSaving( KOPrefs::instance()->mUseDaylightsaving,
1898 KOPrefs::instance()->mDaylightsavingStart, 1901 KOPrefs::instance()->mDaylightsavingStart,
1899 KOPrefs::instance()->mDaylightsavingEnd ); 1902 KOPrefs::instance()->mDaylightsavingEnd );
1900 KGlobal::locale()->setTimezone( KOPrefs::instance()->mTimeZoneId ); 1903 KGlobal::locale()->setTimezone( KOPrefs::instance()->mTimeZoneId );
1904#endif
1901} 1905}
1902void CalendarView::updateConfig() 1906void CalendarView::updateConfig()
1903{ 1907{
1904 writeLocale(); 1908 writeLocale();
1905 if ( KOPrefs::instance()->mUseAppColors ) 1909 if ( KOPrefs::instance()->mUseAppColors )
1906 QApplication::setPalette( QPalette (KOPrefs::instance()->mAppColor1, KOPrefs::instance()->mAppColor2), true ); 1910 QApplication::setPalette( QPalette (KOPrefs::instance()->mAppColor1, KOPrefs::instance()->mAppColor2), true );
1907 emit configChanged(); 1911 emit configChanged();
1908 mTodoList->updateConfig(); 1912 mTodoList->updateConfig();
1909 // mDateNavigator->setFont ( KOPrefs::instance()->mDateNavigatorFont); 1913 // mDateNavigator->setFont ( KOPrefs::instance()->mDateNavigatorFont);
1910 mCalendar->setTimeZoneId(KOPrefs::instance()->mTimeZoneId); 1914 mCalendar->setTimeZoneId(KOPrefs::instance()->mTimeZoneId);
1911 // To make the "fill window" configurations work 1915 // To make the "fill window" configurations work
1912 //mViewManager->raiseCurrentView(); 1916 //mViewManager->raiseCurrentView();
1913} 1917}
1914 1918
1915 1919
1916void CalendarView::eventChanged(Event *event) 1920void CalendarView::eventChanged(Event *event)
1917{ 1921{
1918 changeEventDisplay(event,KOGlobals::EVENTEDITED); 1922 changeEventDisplay(event,KOGlobals::EVENTEDITED);
1919 //updateUnmanagedViews(); 1923 //updateUnmanagedViews();
1920} 1924}
1921 1925
1922void CalendarView::eventAdded(Event *event) 1926void CalendarView::eventAdded(Event *event)
1923{ 1927{
1924 changeEventDisplay(event,KOGlobals::EVENTADDED); 1928 changeEventDisplay(event,KOGlobals::EVENTADDED);
1925} 1929}
1926 1930
1927void CalendarView::eventToBeDeleted(Event *) 1931void CalendarView::eventToBeDeleted(Event *)
1928{ 1932{
1929 kdDebug() << "CalendarView::eventToBeDeleted(): to be implemented" << endl; 1933 kdDebug() << "CalendarView::eventToBeDeleted(): to be implemented" << endl;
1930} 1934}
1931 1935
1932void CalendarView::eventDeleted() 1936void CalendarView::eventDeleted()
1933{ 1937{
1934 changeEventDisplay(0,KOGlobals::EVENTDELETED); 1938 changeEventDisplay(0,KOGlobals::EVENTDELETED);
1935} 1939}
1936void CalendarView::changeTodoDisplay(Todo *which, int action) 1940void CalendarView::changeTodoDisplay(Todo *which, int action)
1937{ 1941{
1938 changeIncidenceDisplay((Incidence *)which, action); 1942 changeIncidenceDisplay((Incidence *)which, action);
1939 mDateNavigator->updateView(); //LR 1943 mDateNavigator->updateView(); //LR
1940 //mDialogManager->updateSearchDialog(); 1944 //mDialogManager->updateSearchDialog();
1941 1945
1942 if (which) { 1946 if (which) {
1943 mViewManager->updateWNview(); 1947 mViewManager->updateWNview();
1944 //mTodoList->updateView(); 1948 //mTodoList->updateView();
1945 } 1949 }
1946 1950
1947} 1951}
1948 1952
1949void CalendarView::changeIncidenceDisplay(Incidence *which, int action) 1953void CalendarView::changeIncidenceDisplay(Incidence *which, int action)
1950{ 1954{
1951 updateUnmanagedViews(); 1955 updateUnmanagedViews();
1952 //qDebug(" CalendarView::changeIncidenceDisplay++++++++++++++++++++++++++ %d %d ",which, action ); 1956 //qDebug(" CalendarView::changeIncidenceDisplay++++++++++++++++++++++++++ %d %d ",which, action );
1953 if ( action == KOGlobals::EVENTDELETED ) { //delete 1957 if ( action == KOGlobals::EVENTDELETED ) { //delete
1954 mCalendar->checkAlarmForIncidence( 0, true ); 1958 mCalendar->checkAlarmForIncidence( 0, true );
1955 if ( mEventViewerDialog ) 1959 if ( mEventViewerDialog )
1956 mEventViewerDialog->hide(); 1960 mEventViewerDialog->hide();
1957 } 1961 }
1958 else 1962 else
1959 mCalendar->checkAlarmForIncidence( which , false ); 1963 mCalendar->checkAlarmForIncidence( which , false );
1960} 1964}
1961 1965
1962// most of the changeEventDisplays() right now just call the view's 1966// most of the changeEventDisplays() right now just call the view's
1963// total update mode, but they SHOULD be recoded to be more refresh-efficient. 1967// total update mode, but they SHOULD be recoded to be more refresh-efficient.
1964void CalendarView::changeEventDisplay(Event *which, int action) 1968void CalendarView::changeEventDisplay(Event *which, int action)
1965{ 1969{
1966 // kdDebug() << "CalendarView::changeEventDisplay" << endl; 1970 // kdDebug() << "CalendarView::changeEventDisplay" << endl;
1967 changeIncidenceDisplay((Incidence *)which, action); 1971 changeIncidenceDisplay((Incidence *)which, action);
1968 mDateNavigator->updateView(); 1972 mDateNavigator->updateView();
1969 //mDialogManager->updateSearchDialog(); 1973 //mDialogManager->updateSearchDialog();
1970 1974
1971 if (which) { 1975 if (which) {
1972 // If there is an event view visible update the display 1976 // If there is an event view visible update the display
1973 mViewManager->currentView()->changeEventDisplay(which,action); 1977 mViewManager->currentView()->changeEventDisplay(which,action);
1974 // TODO: check, if update needed 1978 // TODO: check, if update needed
1975 // if (which->getTodoStatus()) { 1979 // if (which->getTodoStatus()) {
1976 mTodoList->updateView(); 1980 mTodoList->updateView();
1977 // } 1981 // }
1978 } else { 1982 } else {
1979 mViewManager->currentView()->updateView(); 1983 mViewManager->currentView()->updateView();
1980 } 1984 }
1981} 1985}
1982 1986
1983 1987
1984void CalendarView::updateTodoViews() 1988void CalendarView::updateTodoViews()
1985{ 1989{
1986 1990
1987 mTodoList->updateView(); 1991 mTodoList->updateView();
1988 mViewManager->currentView()->updateView(); 1992 mViewManager->currentView()->updateView();
1989 1993
1990} 1994}
1991 1995
1992 1996
1993void CalendarView::updateView(const QDate &start, const QDate &end) 1997void CalendarView::updateView(const QDate &start, const QDate &end)
1994{ 1998{
1995 mTodoList->updateView(); 1999 mTodoList->updateView();
1996 mViewManager->updateView(start, end); 2000 mViewManager->updateView(start, end);
1997 //mDateNavigator->updateView(); 2001 //mDateNavigator->updateView();
1998} 2002}
1999 2003
2000void CalendarView::updateView() 2004void CalendarView::updateView()
2001{ 2005{
2002 DateList tmpList = mNavigator->selectedDates(); 2006 DateList tmpList = mNavigator->selectedDates();
2003 2007
2004 // We assume that the navigator only selects consecutive days. 2008 // We assume that the navigator only selects consecutive days.
2005 updateView( tmpList.first(), tmpList.last() ); 2009 updateView( tmpList.first(), tmpList.last() );
2006} 2010}
2007 2011
2008void CalendarView::updateUnmanagedViews() 2012void CalendarView::updateUnmanagedViews()
2009{ 2013{
2010 mDateNavigator->updateDayMatrix(); 2014 mDateNavigator->updateDayMatrix();
2011} 2015}
2012 2016
2013int CalendarView::msgItemDelete() 2017int CalendarView::msgItemDelete()
2014{ 2018{
2015 return KMessageBox::warningContinueCancel(this, 2019 return KMessageBox::warningContinueCancel(this,
2016 i18n("This item will be\npermanently deleted."), 2020 i18n("This item will be\npermanently deleted."),
2017 i18n("KO/Pi Confirmation"),i18n("Delete")); 2021 i18n("KO/Pi Confirmation"),i18n("Delete"));
2018} 2022}
2019 2023
2020 2024
2021void CalendarView::edit_cut() 2025void CalendarView::edit_cut()
2022{ 2026{
2023 Event *anEvent=0; 2027 Event *anEvent=0;
2024 2028
2025 Incidence *incidence = mViewManager->currentView()->selectedIncidences().first(); 2029 Incidence *incidence = mViewManager->currentView()->selectedIncidences().first();
2026 2030
2027 if (mViewManager->currentView()->isEventView()) { 2031 if (mViewManager->currentView()->isEventView()) {
2028 if ( incidence && incidence->type() == "Event" ) { 2032 if ( incidence && incidence->type() == "Event" ) {
2029 anEvent = static_cast<Event *>(incidence); 2033 anEvent = static_cast<Event *>(incidence);
2030 } 2034 }
2031 } 2035 }
2032 2036
2033 if (!anEvent) { 2037 if (!anEvent) {
2034 KNotifyClient::beep(); 2038 KNotifyClient::beep();
2035 return; 2039 return;
2036 } 2040 }
2037 DndFactory factory( mCalendar ); 2041 DndFactory factory( mCalendar );
2038 factory.cutEvent(anEvent); 2042 factory.cutEvent(anEvent);
2039 changeEventDisplay(anEvent, KOGlobals::EVENTDELETED); 2043 changeEventDisplay(anEvent, KOGlobals::EVENTDELETED);
2040} 2044}
2041 2045
2042void CalendarView::edit_copy() 2046void CalendarView::edit_copy()
2043{ 2047{
2044 Event *anEvent=0; 2048 Event *anEvent=0;
2045 2049
2046 Incidence *incidence = mViewManager->currentView()->selectedIncidences().first(); 2050 Incidence *incidence = mViewManager->currentView()->selectedIncidences().first();
2047 2051
2048 if (mViewManager->currentView()->isEventView()) { 2052 if (mViewManager->currentView()->isEventView()) {
2049 if ( incidence && incidence->type() == "Event" ) { 2053 if ( incidence && incidence->type() == "Event" ) {
2050 anEvent = static_cast<Event *>(incidence); 2054 anEvent = static_cast<Event *>(incidence);
2051 } 2055 }
2052 } 2056 }
2053 2057
2054 if (!anEvent) { 2058 if (!anEvent) {
2055 KNotifyClient::beep(); 2059 KNotifyClient::beep();
2056 return; 2060 return;
2057 } 2061 }
2058 DndFactory factory( mCalendar ); 2062 DndFactory factory( mCalendar );
2059 factory.copyEvent(anEvent); 2063 factory.copyEvent(anEvent);
2060} 2064}
2061 2065
2062void CalendarView::edit_paste() 2066void CalendarView::edit_paste()
2063{ 2067{
2064 QDate date = mNavigator->selectedDates().first(); 2068 QDate date = mNavigator->selectedDates().first();
2065 2069
2066 DndFactory factory( mCalendar ); 2070 DndFactory factory( mCalendar );
2067 Event *pastedEvent = factory.pasteEvent( date ); 2071 Event *pastedEvent = factory.pasteEvent( date );
2068 2072
2069 changeEventDisplay( pastedEvent, KOGlobals::EVENTADDED ); 2073 changeEventDisplay( pastedEvent, KOGlobals::EVENTADDED );
2070} 2074}
2071 2075
2072void CalendarView::edit_options() 2076void CalendarView::edit_options()
2073{ 2077{
2074 mDialogManager->showOptionsDialog(); 2078 mDialogManager->showOptionsDialog();
2075 //writeSettings(); 2079 //writeSettings();
2076} 2080}
2077void CalendarView::edit_sync_options() 2081void CalendarView::edit_sync_options()
2078{ 2082{
2079 //mDialogManager->showSyncOptions(); 2083 //mDialogManager->showSyncOptions();
2080 //KOPrefs::instance()->mSyncAlgoPrefs 2084 //KOPrefs::instance()->mSyncAlgoPrefs
2081 QDialog dia( this, "dia", true ); 2085 QDialog dia( this, "dia", true );
2082 dia.setCaption( i18n("Device: " ) +mCurrentSyncDevice ); 2086 dia.setCaption( i18n("Device: " ) +mCurrentSyncDevice );
2083 QButtonGroup gr ( 1, Qt::Horizontal, i18n("Sync preferences"), &dia); 2087 QButtonGroup gr ( 1, Qt::Horizontal, i18n("Sync preferences"), &dia);
2084 QVBoxLayout lay ( &dia ); 2088 QVBoxLayout lay ( &dia );
2085 lay.setSpacing( 2 ); 2089 lay.setSpacing( 2 );
2086 lay.setMargin( 3 ); 2090 lay.setMargin( 3 );
2087 lay.addWidget(&gr); 2091 lay.addWidget(&gr);
2088 QRadioButton loc ( i18n("Take local entry on conflict"), &gr ); 2092 QRadioButton loc ( i18n("Take local entry on conflict"), &gr );
2089 QRadioButton rem ( i18n("Take remote entry on conflict"), &gr ); 2093 QRadioButton rem ( i18n("Take remote entry on conflict"), &gr );
2090 QRadioButton newest( i18n("Take newest entry on conflict"), &gr ); 2094 QRadioButton newest( i18n("Take newest entry on conflict"), &gr );
2091 QRadioButton ask( i18n("Ask for every entry on conflict"), &gr ); 2095 QRadioButton ask( i18n("Ask for every entry on conflict"), &gr );
2092 QRadioButton f_loc( i18n("Force: Take local entry always"), &gr ); 2096 QRadioButton f_loc( i18n("Force: Take local entry always"), &gr );
2093 QRadioButton f_rem( i18n("Force: Take remote entry always"), &gr ); 2097 QRadioButton f_rem( i18n("Force: Take remote entry always"), &gr );
2094 //QRadioButton both( i18n("Take both on conflict"), &gr ); 2098 //QRadioButton both( i18n("Take both on conflict"), &gr );
2095 QPushButton pb ( "OK", &dia); 2099 QPushButton pb ( "OK", &dia);
2096 lay.addWidget( &pb ); 2100 lay.addWidget( &pb );
2097 connect(&pb, SIGNAL( clicked() ), &dia, SLOT ( accept() ) ); 2101 connect(&pb, SIGNAL( clicked() ), &dia, SLOT ( accept() ) );
2098 switch ( KOPrefs::instance()->mSyncAlgoPrefs ) { 2102 switch ( KOPrefs::instance()->mSyncAlgoPrefs ) {
2099 case 0: 2103 case 0:
2100 loc.setChecked( true); 2104 loc.setChecked( true);
2101 break; 2105 break;
2102 case 1: 2106 case 1:
2103 rem.setChecked( true ); 2107 rem.setChecked( true );
2104 break; 2108 break;
2105 case 2: 2109 case 2:
2106 newest.setChecked( true); 2110 newest.setChecked( true);
2107 break; 2111 break;
2108 case 3: 2112 case 3:
2109 ask.setChecked( true); 2113 ask.setChecked( true);
2110 break; 2114 break;
2111 case 4: 2115 case 4:
2112 f_loc.setChecked( true); 2116 f_loc.setChecked( true);
2113 break; 2117 break;
2114 case 5: 2118 case 5:
2115 f_rem.setChecked( true); 2119 f_rem.setChecked( true);
2116 break; 2120 break;
2117 case 6: 2121 case 6:
2118 // both.setChecked( true); 2122 // both.setChecked( true);
2119 break; 2123 break;
2120 default: 2124 default:
2121 break; 2125 break;
2122 } 2126 }
2123 if ( dia.exec() ) { 2127 if ( dia.exec() ) {
2124 KOPrefs::instance()->mSyncAlgoPrefs = rem.isChecked()*1+newest.isChecked()*2+ ask.isChecked()*3+ f_loc.isChecked()*4+ f_rem.isChecked()*5;//+ both.isChecked()*6 ; 2128 KOPrefs::instance()->mSyncAlgoPrefs = rem.isChecked()*1+newest.isChecked()*2+ ask.isChecked()*3+ f_loc.isChecked()*4+ f_rem.isChecked()*5;//+ both.isChecked()*6 ;
2125 } 2129 }
2126 2130
2127} 2131}
2128 2132
2129void CalendarView::slotSelectPickerDate( QDate d) 2133void CalendarView::slotSelectPickerDate( QDate d)
2130{ 2134{
2131 mDateFrame->hide(); 2135 mDateFrame->hide();
2132 if ( mDatePickerMode == 1 ) { 2136 if ( mDatePickerMode == 1 ) {
2133 mNavigator->slotDaySelect( d ); 2137 mNavigator->slotDaySelect( d );
2134 } else if ( mDatePickerMode == 2 ) { 2138 } else if ( mDatePickerMode == 2 ) {
2135 if ( mMoveIncidence->type() == "Todo" ) { 2139 if ( mMoveIncidence->type() == "Todo" ) {
2136 Todo * to = (Todo *) mMoveIncidence; 2140 Todo * to = (Todo *) mMoveIncidence;
2137 QTime tim; 2141 QTime tim;
2138 if ( to->hasDueDate() ) 2142 if ( to->hasDueDate() )
2139 tim = to->dtDue().time(); 2143 tim = to->dtDue().time();
2140 else { 2144 else {
2141 tim = QTime ( 0,0,0 ); 2145 tim = QTime ( 0,0,0 );
2142 to->setFloats( true ); 2146 to->setFloats( true );
2143 to->setHasDueDate( true ); 2147 to->setHasDueDate( true );
2144 } 2148 }
2145 QDateTime dt ( d,tim ); 2149 QDateTime dt ( d,tim );
2146 to->setDtDue( dt ); 2150 to->setDtDue( dt );
2147 todoChanged( to ); 2151 todoChanged( to );
2148 } else { 2152 } else {
2149 QTime tim = mMoveIncidence->dtStart().time(); 2153 QTime tim = mMoveIncidence->dtStart().time();
2150 int secs = mMoveIncidence->dtStart().secsTo( mMoveIncidence->dtEnd()); 2154 int secs = mMoveIncidence->dtStart().secsTo( mMoveIncidence->dtEnd());
2151 QDateTime dt ( d,tim ); 2155 QDateTime dt ( d,tim );
2152 mMoveIncidence->setDtStart( dt ); 2156 mMoveIncidence->setDtStart( dt );
2153 ((Event*)mMoveIncidence)->setDtEnd( dt.addSecs( secs ) ); 2157 ((Event*)mMoveIncidence)->setDtEnd( dt.addSecs( secs ) );
2154 changeEventDisplay((Event*)mMoveIncidence, KOGlobals::EVENTEDITED); 2158 changeEventDisplay((Event*)mMoveIncidence, KOGlobals::EVENTEDITED);
2155 } 2159 }
2156 2160
2157 mMoveIncidence->setRevision( mMoveIncidence->revision()+1 ); 2161 mMoveIncidence->setRevision( mMoveIncidence->revision()+1 );
2158 } 2162 }
2159} 2163}
2160 2164
2161void CalendarView::removeCategories() 2165void CalendarView::removeCategories()
2162{ 2166{
2163 QPtrList<Incidence> incList = mCalendar->rawIncidences(); 2167 QPtrList<Incidence> incList = mCalendar->rawIncidences();
2164 QStringList catList = KOPrefs::instance()->mCustomCategories; 2168 QStringList catList = KOPrefs::instance()->mCustomCategories;
2165 QStringList catIncList; 2169 QStringList catIncList;
2166 QStringList newCatList; 2170 QStringList newCatList;
2167 Incidence* inc = incList.first(); 2171 Incidence* inc = incList.first();
2168 int i; 2172 int i;
2169 int count = 0; 2173 int count = 0;
2170 while ( inc ) { 2174 while ( inc ) {
2171 newCatList.clear(); 2175 newCatList.clear();
2172 catIncList = inc->categories() ; 2176 catIncList = inc->categories() ;
2173 for( i = 0; i< catIncList.count(); ++i ) { 2177 for( i = 0; i< catIncList.count(); ++i ) {
2174 if ( catList.contains (catIncList[i])) 2178 if ( catList.contains (catIncList[i]))
2175 newCatList.append( catIncList[i] ); 2179 newCatList.append( catIncList[i] );
2176 } 2180 }
2177 newCatList.sort(); 2181 newCatList.sort();
2178 inc->setCategories( newCatList.join(",") ); 2182 inc->setCategories( newCatList.join(",") );
2179 inc = incList.next(); 2183 inc = incList.next();
2180 } 2184 }
2181} 2185}
2182 2186
2183int CalendarView::addCategories() 2187int CalendarView::addCategories()
2184{ 2188{
2185 QPtrList<Incidence> incList = mCalendar->rawIncidences(); 2189 QPtrList<Incidence> incList = mCalendar->rawIncidences();
2186 QStringList catList = KOPrefs::instance()->mCustomCategories; 2190 QStringList catList = KOPrefs::instance()->mCustomCategories;
2187 QStringList catIncList; 2191 QStringList catIncList;
2188 Incidence* inc = incList.first(); 2192 Incidence* inc = incList.first();
2189 int i; 2193 int i;
2190 int count = 0; 2194 int count = 0;
2191 while ( inc ) { 2195 while ( inc ) {
2192 catIncList = inc->categories() ; 2196 catIncList = inc->categories() ;
2193 for( i = 0; i< catIncList.count(); ++i ) { 2197 for( i = 0; i< catIncList.count(); ++i ) {
2194 if ( !catList.contains (catIncList[i])) { 2198 if ( !catList.contains (catIncList[i])) {
2195 catList.append( catIncList[i] ); 2199 catList.append( catIncList[i] );
2196 //qDebug("add cat %s ", catIncList[i].latin1()); 2200 //qDebug("add cat %s ", catIncList[i].latin1());
2197 ++count; 2201 ++count;
2198 } 2202 }
2199 } 2203 }
2200 inc = incList.next(); 2204 inc = incList.next();
2201 } 2205 }
2202 catList.sort(); 2206 catList.sort();
2203 KOPrefs::instance()->mCustomCategories = catList; 2207 KOPrefs::instance()->mCustomCategories = catList;
2204 return count; 2208 return count;
2205} 2209}
2206 2210
2207void CalendarView::manageCategories() 2211void CalendarView::manageCategories()
2208{ 2212{
2209 KOCatPrefs* cp = new KOCatPrefs(); 2213 KOCatPrefs* cp = new KOCatPrefs();
2210 cp->show(); 2214 cp->show();
2211 int w =cp->sizeHint().width() ; 2215 int w =cp->sizeHint().width() ;
2212 int h = cp->sizeHint().height() ; 2216 int h = cp->sizeHint().height() ;
2213 int dw = QApplication::desktop()->width(); 2217 int dw = QApplication::desktop()->width();
2214 int dh = QApplication::desktop()->height(); 2218 int dh = QApplication::desktop()->height();
2215 cp->setGeometry( (dw-w)/2, (dh - h )/2 ,w,h ); 2219 cp->setGeometry( (dw-w)/2, (dh - h )/2 ,w,h );
2216 if ( !cp->exec() ) { 2220 if ( !cp->exec() ) {
2217 delete cp; 2221 delete cp;
2218 return; 2222 return;
2219 } 2223 }
2220 int count = 0; 2224 int count = 0;
2221 if ( cp->addCat() ) { 2225 if ( cp->addCat() ) {
2222 count = addCategories(); 2226 count = addCategories();
2223 if ( count ) { 2227 if ( count ) {
2224 topLevelWidget()->setCaption(QString::number( count )+ i18n(" Categories added to list! ")); 2228 topLevelWidget()->setCaption(QString::number( count )+ i18n(" Categories added to list! "));
2225 writeSettings(); 2229 writeSettings();
2226 } 2230 }
2227 } else { 2231 } else {
2228 removeCategories(); 2232 removeCategories();
2229 updateView(); 2233 updateView();
2230 } 2234 }
2231 delete cp; 2235 delete cp;
2232} 2236}
2233 2237
2234void CalendarView::beamIncidence(Incidence * Inc) 2238void CalendarView::beamIncidence(Incidence * Inc)
2235{ 2239{
2236 QPtrList<Incidence> delSel ; 2240 QPtrList<Incidence> delSel ;
2237 delSel.append(Inc); 2241 delSel.append(Inc);
2238 beamIncidenceList( delSel ); 2242 beamIncidenceList( delSel );
2239} 2243}
2240void CalendarView::beamCalendar() 2244void CalendarView::beamCalendar()
2241{ 2245{
2242 QPtrList<Incidence> delSel = mCalendar->rawIncidences(); 2246 QPtrList<Incidence> delSel = mCalendar->rawIncidences();
2243 //qDebug("beamCalendar() "); 2247 //qDebug("beamCalendar() ");
2244 beamIncidenceList( delSel ); 2248 beamIncidenceList( delSel );
2245} 2249}
2246void CalendarView::beamFilteredCalendar() 2250void CalendarView::beamFilteredCalendar()
2247{ 2251{
2248 QPtrList<Incidence> delSel = mCalendar->incidences(); 2252 QPtrList<Incidence> delSel = mCalendar->incidences();
2249 //qDebug("beamFilteredCalendar() "); 2253 //qDebug("beamFilteredCalendar() ");
2250 beamIncidenceList( delSel ); 2254 beamIncidenceList( delSel );
2251} 2255}
2252void CalendarView::beamIncidenceList(QPtrList<Incidence> delSel ) 2256void CalendarView::beamIncidenceList(QPtrList<Incidence> delSel )
2253{ 2257{
2254 if ( beamDialog->exec () == QDialog::Rejected ) 2258 if ( beamDialog->exec () == QDialog::Rejected )
2255 return; 2259 return;
2256 2260
2257 QString fn = "/tmp/kopibeamfile"; 2261 QString fn = "/tmp/kopibeamfile";
2258 QString mes; 2262 QString mes;
2259 bool createbup = true; 2263 bool createbup = true;
2260 if ( createbup ) { 2264 if ( createbup ) {
2261 QString description = "\n"; 2265 QString description = "\n";
2262 CalendarLocal* cal = new CalendarLocal(); 2266 CalendarLocal* cal = new CalendarLocal();
2263 if ( beamDialog->beamLocal() ) 2267 if ( beamDialog->beamLocal() )
2264 cal->setLocalTime(); 2268 cal->setLocalTime();
2265 else 2269 else
2266 cal->setTimeZoneId(KOPrefs::instance()->mTimeZoneId); 2270 cal->setTimeZoneId(KOPrefs::instance()->mTimeZoneId);
2267 Incidence *incidence = delSel.first(); 2271 Incidence *incidence = delSel.first();
2268 bool addText = false; 2272 bool addText = false;
2269 if ( delSel.count() < 10 ) 2273 if ( delSel.count() < 10 )
2270 addText = true; 2274 addText = true;
2271 else { 2275 else {
2272 description.sprintf(i18n(" %d items?"),delSel.count() ); 2276 description.sprintf(i18n(" %d items?"),delSel.count() );
2273 } 2277 }
2274 while ( incidence ) { 2278 while ( incidence ) {
2275 Incidence *in = incidence->clone(); 2279 Incidence *in = incidence->clone();
2276 if ( addText ) 2280 if ( addText )
2277 description += in->summary() + "\n"; 2281 description += in->summary() + "\n";
2278 cal->addIncidence( in ); 2282 cal->addIncidence( in );
2279 incidence = delSel.next(); 2283 incidence = delSel.next();
2280 } 2284 }
2281 if ( beamDialog->beamVcal() ) { 2285 if ( beamDialog->beamVcal() ) {
2282 fn += ".vcs"; 2286 fn += ".vcs";
2283 FileStorage storage( cal, fn, new VCalFormat ); 2287 FileStorage storage( cal, fn, new VCalFormat );
2284 storage.save(); 2288 storage.save();
2285 } else { 2289 } else {
2286 fn += ".ics"; 2290 fn += ".ics";
2287 FileStorage storage( cal, fn, new ICalFormat( KOPrefs::instance()->mUseQuicksave) ); 2291 FileStorage storage( cal, fn, new ICalFormat( KOPrefs::instance()->mUseQuicksave) );
2288 storage.save(); 2292 storage.save();
2289 } 2293 }
2290 delete cal; 2294 delete cal;
2291 mes = i18n("KO/Pi: Ready for beaming"); 2295 mes = i18n("KO/Pi: Ready for beaming");
2292 setCaption(mes); 2296 setCaption(mes);
2293 2297
2294#ifndef DESKTOP_VERSION 2298#ifndef DESKTOP_VERSION
2295 Ir *ir = new Ir( this ); 2299 Ir *ir = new Ir( this );
2296 connect( ir, SIGNAL( done( Ir * ) ), this, SLOT( beamDone( Ir * ) ) ); 2300 connect( ir, SIGNAL( done( Ir * ) ), this, SLOT( beamDone( Ir * ) ) );
2297 ir->send( fn, description, "text/x-vCalendar" ); 2301 ir->send( fn, description, "text/x-vCalendar" );
2298#endif 2302#endif
2299 } 2303 }
2300} 2304}
2301void CalendarView::beamDone( Ir *ir ) 2305void CalendarView::beamDone( Ir *ir )
2302{ 2306{
2303#ifndef DESKTOP_VERSION 2307#ifndef DESKTOP_VERSION
2304 delete ir; 2308 delete ir;
2305#endif 2309#endif
2306} 2310}
2307 2311
2308void CalendarView::moveIncidence(Incidence * inc ) 2312void CalendarView::moveIncidence(Incidence * inc )
2309{ 2313{
2310 if ( !inc ) return; 2314 if ( !inc ) return;
2311 // qDebug("showDatePickerForIncidence( ) "); 2315 // qDebug("showDatePickerForIncidence( ) ");
2312 if ( mDateFrame->isVisible() ) 2316 if ( mDateFrame->isVisible() )
2313 mDateFrame->hide(); 2317 mDateFrame->hide();
2314 else { 2318 else {
2315 int w =mDatePicker->sizeHint().width()+2*mDateFrame->lineWidth() ; 2319 int w =mDatePicker->sizeHint().width()+2*mDateFrame->lineWidth() ;
2316 int h = mDatePicker->sizeHint().height()+2*mDateFrame->lineWidth() ; 2320 int h = mDatePicker->sizeHint().height()+2*mDateFrame->lineWidth() ;
2317 int dw = QApplication::desktop()->width(); 2321 int dw = QApplication::desktop()->width();
2318 int dh = QApplication::desktop()->height(); 2322 int dh = QApplication::desktop()->height();
2319 mDateFrame->setGeometry( (dw-w)/2, (dh - h )/2 ,w,h ); 2323 mDateFrame->setGeometry( (dw-w)/2, (dh - h )/2 ,w,h );
2320 mDateFrame->show(); 2324 mDateFrame->show();
2321 } 2325 }
2322 mDatePickerMode = 2; 2326 mDatePickerMode = 2;
2323 mMoveIncidence = inc ; 2327 mMoveIncidence = inc ;
2324 QDate da; 2328 QDate da;
2325 if ( mMoveIncidence->type() == "Todo" ) { 2329 if ( mMoveIncidence->type() == "Todo" ) {
2326 Todo * to = (Todo *) mMoveIncidence; 2330 Todo * to = (Todo *) mMoveIncidence;
2327 if ( to->hasDueDate() ) 2331 if ( to->hasDueDate() )
2328 da = to->dtDue().date(); 2332 da = to->dtDue().date();
2329 else 2333 else
2330 da = QDate::currentDate(); 2334 da = QDate::currentDate();
2331 } else { 2335 } else {
2332 da = mMoveIncidence->dtStart().date(); 2336 da = mMoveIncidence->dtStart().date();
2333 } 2337 }
2334 mDatePicker->setDate( da ); 2338 mDatePicker->setDate( da );
2335} 2339}
2336void CalendarView::showDatePicker( ) 2340void CalendarView::showDatePicker( )
2337{ 2341{
2338 //qDebug("CalendarView::showDatePicker( ) "); 2342 //qDebug("CalendarView::showDatePicker( ) ");
2339 if ( mDateFrame->isVisible() ) 2343 if ( mDateFrame->isVisible() )
2340 mDateFrame->hide(); 2344 mDateFrame->hide();
2341 else { 2345 else {
2342 int w =mDatePicker->sizeHint().width() ; 2346 int w =mDatePicker->sizeHint().width() ;
2343 int h = mDatePicker->sizeHint().height() ; 2347 int h = mDatePicker->sizeHint().height() ;
2344 int dw = QApplication::desktop()->width(); 2348 int dw = QApplication::desktop()->width();
2345 int dh = QApplication::desktop()->height(); 2349 int dh = QApplication::desktop()->height();
2346 mDateFrame->setGeometry( (dw-w)/2, (dh - h )/2 ,w,h ); 2350 mDateFrame->setGeometry( (dw-w)/2, (dh - h )/2 ,w,h );
2347 mDateFrame->show(); 2351 mDateFrame->show();
2348 } 2352 }
2349 mDatePickerMode = 1; 2353 mDatePickerMode = 1;
2350 mDatePicker->setDate( mNavigator->selectedDates().first() ); 2354 mDatePicker->setDate( mNavigator->selectedDates().first() );
2351} 2355}
2352 2356
2353void CalendarView::showEventEditor() 2357void CalendarView::showEventEditor()
2354{ 2358{
2355#ifdef DESKTOP_VERSION 2359#ifdef DESKTOP_VERSION
2356 mEventEditor->show(); 2360 mEventEditor->show();
2357#else 2361#else
2358 mEventEditor->showMaximized(); 2362 mEventEditor->showMaximized();
2359#endif 2363#endif
2360} 2364}
2361void CalendarView::showTodoEditor() 2365void CalendarView::showTodoEditor()
2362{ 2366{
2363#ifdef DESKTOP_VERSION 2367#ifdef DESKTOP_VERSION
2364 mTodoEditor->show(); 2368 mTodoEditor->show();
2365#else 2369#else
2366 mTodoEditor->showMaximized(); 2370 mTodoEditor->showMaximized();
2367#endif 2371#endif
2368} 2372}
2369void CalendarView::cancelIncidence(Incidence * inc ) 2373void CalendarView::cancelIncidence(Incidence * inc )
2370{ 2374{
2371 inc->setCancelled( ! inc->cancelled() ); 2375 inc->setCancelled( ! inc->cancelled() );
2372 changeIncidenceDisplay( inc,KOGlobals::EVENTEDITED ); 2376 changeIncidenceDisplay( inc,KOGlobals::EVENTEDITED );
2373 updateView(); 2377 updateView();
2374} 2378}
2375void CalendarView::cloneIncidence(Incidence * orgInc ) 2379void CalendarView::cloneIncidence(Incidence * orgInc )
2376{ 2380{
2377 Incidence * newInc = orgInc->clone(); 2381 Incidence * newInc = orgInc->clone();
2378 newInc->recreate(); 2382 newInc->recreate();
2379 2383
2380 if ( newInc->type() == "Todo" ) { 2384 if ( newInc->type() == "Todo" ) {
2381 Todo* t = (Todo*) newInc; 2385 Todo* t = (Todo*) newInc;
2382 mTodoEditor->editTodo( t ); 2386 mTodoEditor->editTodo( t );
2383 showTodoEditor(); 2387 showTodoEditor();
2384 if ( mTodoEditor->exec() ) { 2388 if ( mTodoEditor->exec() ) {
2385 mCalendar->addTodo( t ); 2389 mCalendar->addTodo( t );
2386 updateView(); 2390 updateView();
2387 } else { 2391 } else {
2388 delete t; 2392 delete t;
2389 } 2393 }
2390 } 2394 }
2391 else { 2395 else {
2392 Event* e = (Event*) newInc; 2396 Event* e = (Event*) newInc;
2393 mEventEditor->editEvent( e ); 2397 mEventEditor->editEvent( e );
2394 showEventEditor(); 2398 showEventEditor();
2395 if ( mEventEditor->exec() ) { 2399 if ( mEventEditor->exec() ) {
2396 mCalendar->addEvent( e ); 2400 mCalendar->addEvent( e );
2397 updateView(); 2401 updateView();
2398 } else { 2402 } else {
2399 delete e; 2403 delete e;
2400 } 2404 }
2401 } 2405 }
2402} 2406}
2403 2407
2404void CalendarView::newEvent() 2408void CalendarView::newEvent()
2405{ 2409{
2406 // TODO: Replace this code by a common eventDurationHint of KOBaseView. 2410 // TODO: Replace this code by a common eventDurationHint of KOBaseView.
2407 KOAgendaView *aView = mViewManager->agendaView(); 2411 KOAgendaView *aView = mViewManager->agendaView();
2408 if (aView) { 2412 if (aView) {
2409 if (aView->selectionStart().isValid()) { 2413 if (aView->selectionStart().isValid()) {
2410 if (aView->selectedIsAllDay()) { 2414 if (aView->selectedIsAllDay()) {
2411 newEvent(aView->selectionStart(),aView->selectionEnd(),true); 2415 newEvent(aView->selectionStart(),aView->selectionEnd(),true);
2412 } else { 2416 } else {
2413 newEvent(aView->selectionStart(),aView->selectionEnd()); 2417 newEvent(aView->selectionStart(),aView->selectionEnd());
2414 } 2418 }
2415 return; 2419 return;
2416 } 2420 }
2417 } 2421 }
2418 2422
2419 QDate date = mNavigator->selectedDates().first(); 2423 QDate date = mNavigator->selectedDates().first();
2420 QDateTime current = QDateTime::currentDateTime(); 2424 QDateTime current = QDateTime::currentDateTime();
2421 if ( date <= current.date() ) { 2425 if ( date <= current.date() ) {
2422 int hour = current.time().hour() +1; 2426 int hour = current.time().hour() +1;
2423 newEvent( QDateTime( current.date(), QTime( hour, 0, 0 ) ), 2427 newEvent( QDateTime( current.date(), QTime( hour, 0, 0 ) ),
2424 QDateTime( current.date(), QTime( hour+ KOPrefs::instance()->mDefaultDuration, 0, 0 ) ) ); 2428 QDateTime( current.date(), QTime( hour+ KOPrefs::instance()->mDefaultDuration, 0, 0 ) ) );
2425 } else 2429 } else
2426 newEvent( QDateTime( date, QTime( KOPrefs::instance()->mStartTime, 0, 0 ) ), 2430 newEvent( QDateTime( date, QTime( KOPrefs::instance()->mStartTime, 0, 0 ) ),
2427 QDateTime( date, QTime( KOPrefs::instance()->mStartTime + 2431 QDateTime( date, QTime( KOPrefs::instance()->mStartTime +
2428 KOPrefs::instance()->mDefaultDuration, 0, 0 ) ) ); 2432 KOPrefs::instance()->mDefaultDuration, 0, 0 ) ) );
2429} 2433}
2430 2434
2431void CalendarView::newEvent(QDateTime fh) 2435void CalendarView::newEvent(QDateTime fh)
2432{ 2436{
2433 newEvent(fh, 2437 newEvent(fh,
2434 QDateTime(fh.addSecs(3600*KOPrefs::instance()->mDefaultDuration))); 2438 QDateTime(fh.addSecs(3600*KOPrefs::instance()->mDefaultDuration)));
2435} 2439}
2436 2440
2437void CalendarView::newEvent(QDate dt) 2441void CalendarView::newEvent(QDate dt)
2438{ 2442{
2439 newEvent(QDateTime(dt, QTime(0,0,0)), 2443 newEvent(QDateTime(dt, QTime(0,0,0)),
2440 QDateTime(dt, QTime(0,0,0)), true); 2444 QDateTime(dt, QTime(0,0,0)), true);
2441} 2445}
2442 2446
2443void CalendarView::newEvent(QDateTime fromHint, QDateTime toHint, bool allDay) 2447void CalendarView::newEvent(QDateTime fromHint, QDateTime toHint, bool allDay)
2444{ 2448{
2445 2449
2446 mEventEditor->newEvent(fromHint,toHint,allDay); 2450 mEventEditor->newEvent(fromHint,toHint,allDay);
2447 if ( mFilterView->filtersEnabled() ) { 2451 if ( mFilterView->filtersEnabled() ) {
2448 CalFilter *filter = mFilterView->selectedFilter(); 2452 CalFilter *filter = mFilterView->selectedFilter();
2449 if (filter && filter->showCategories()) { 2453 if (filter && filter->showCategories()) {
2450 mEventEditor->setCategories(filter->categoryList().join(",") ); 2454 mEventEditor->setCategories(filter->categoryList().join(",") );
2451 } 2455 }
2452 if ( filter ) 2456 if ( filter )
2453 mEventEditor->setSecrecy( filter->getSecrecy() ); 2457 mEventEditor->setSecrecy( filter->getSecrecy() );
2454 } 2458 }
2455 showEventEditor(); 2459 showEventEditor();
2456} 2460}
2457void CalendarView::todoAdded(Todo * t) 2461void CalendarView::todoAdded(Todo * t)
2458{ 2462{
2459 2463
2460 changeTodoDisplay ( t ,KOGlobals::EVENTADDED); 2464 changeTodoDisplay ( t ,KOGlobals::EVENTADDED);
2461 updateTodoViews(); 2465 updateTodoViews();
2462} 2466}
2463void CalendarView::todoChanged(Todo * t) 2467void CalendarView::todoChanged(Todo * t)
2464{ 2468{
2465 emit todoModified( t, 4 ); 2469 emit todoModified( t, 4 );
2466 // updateTodoViews(); 2470 // updateTodoViews();
2467} 2471}
2468void CalendarView::todoToBeDeleted(Todo *) 2472void CalendarView::todoToBeDeleted(Todo *)
2469{ 2473{
2470 //qDebug("todoToBeDeleted(Todo *) "); 2474 //qDebug("todoToBeDeleted(Todo *) ");
2471 updateTodoViews(); 2475 updateTodoViews();
2472} 2476}
2473void CalendarView::todoDeleted() 2477void CalendarView::todoDeleted()
2474{ 2478{
2475 //qDebug(" todoDeleted()"); 2479 //qDebug(" todoDeleted()");
2476 updateTodoViews(); 2480 updateTodoViews();
2477} 2481}
2478 2482
2479 2483
2480 2484
2481void CalendarView::newTodo() 2485void CalendarView::newTodo()
2482{ 2486{
2483 2487
2484 mTodoEditor->newTodo(QDateTime::currentDateTime().addDays(7),0,true); 2488 mTodoEditor->newTodo(QDateTime::currentDateTime().addDays(7),0,true);
2485 if ( mFilterView->filtersEnabled() ) { 2489 if ( mFilterView->filtersEnabled() ) {
2486 CalFilter *filter = mFilterView->selectedFilter(); 2490 CalFilter *filter = mFilterView->selectedFilter();
2487 if (filter && filter->showCategories()) { 2491 if (filter && filter->showCategories()) {
2488 mTodoEditor->setCategories(filter->categoryList().join(",") ); 2492 mTodoEditor->setCategories(filter->categoryList().join(",") );
2489 } 2493 }
2490 if ( filter ) 2494 if ( filter )
2491 mTodoEditor->setSecrecy( filter->getSecrecy() ); 2495 mTodoEditor->setSecrecy( filter->getSecrecy() );
2492 } 2496 }
2493 showTodoEditor(); 2497 showTodoEditor();
2494} 2498}
2495 2499
2496void CalendarView::newSubTodo() 2500void CalendarView::newSubTodo()
2497{ 2501{
2498 Todo *todo = selectedTodo(); 2502 Todo *todo = selectedTodo();
2499 if ( todo ) newSubTodo( todo ); 2503 if ( todo ) newSubTodo( todo );
2500} 2504}
2501 2505
2502void CalendarView::newSubTodo(Todo *parentEvent) 2506void CalendarView::newSubTodo(Todo *parentEvent)
2503{ 2507{
2504 2508
2505 mTodoEditor->newTodo(QDateTime::currentDateTime().addDays(7),parentEvent,true); 2509 mTodoEditor->newTodo(QDateTime::currentDateTime().addDays(7),parentEvent,true);
2506 showTodoEditor(); 2510 showTodoEditor();
2507} 2511}
2508 2512
2509void CalendarView::newFloatingEvent() 2513void CalendarView::newFloatingEvent()
2510{ 2514{
2511 DateList tmpList = mNavigator->selectedDates(); 2515 DateList tmpList = mNavigator->selectedDates();
2512 QDate date = tmpList.first(); 2516 QDate date = tmpList.first();
2513 2517
2514 newEvent( QDateTime( date, QTime( 12, 0, 0 ) ), 2518 newEvent( QDateTime( date, QTime( 12, 0, 0 ) ),
2515 QDateTime( date, QTime( 12, 0, 0 ) ), true ); 2519 QDateTime( date, QTime( 12, 0, 0 ) ), true );
2516} 2520}
2517 2521
2518 2522
2519void CalendarView::editEvent( Event *event ) 2523void CalendarView::editEvent( Event *event )
2520{ 2524{
2521 2525
2522 if ( !event ) return; 2526 if ( !event ) return;
2523 if ( event->isReadOnly() ) { 2527 if ( event->isReadOnly() ) {
2524 showEvent( event ); 2528 showEvent( event );
2525 return; 2529 return;
2526 } 2530 }
2527 mEventEditor->editEvent( event , mFlagEditDescription); 2531 mEventEditor->editEvent( event , mFlagEditDescription);
2528 showEventEditor(); 2532 showEventEditor();
2529} 2533}
2530void CalendarView::editJournal( Journal *jour ) 2534void CalendarView::editJournal( Journal *jour )
2531{ 2535{
2532 if ( !jour ) return; 2536 if ( !jour ) return;
2533 mDialogManager->hideSearchDialog(); 2537 mDialogManager->hideSearchDialog();
2534 mViewManager->showJournalView(); 2538 mViewManager->showJournalView();
2535 mNavigator->slotDaySelect( jour->dtStart().date() ); 2539 mNavigator->slotDaySelect( jour->dtStart().date() );
2536} 2540}
2537void CalendarView::editTodo( Todo *todo ) 2541void CalendarView::editTodo( Todo *todo )
2538{ 2542{
2539 if ( !todo ) return; 2543 if ( !todo ) return;
2540 2544
2541 if ( todo->isReadOnly() ) { 2545 if ( todo->isReadOnly() ) {
2542 showTodo( todo ); 2546 showTodo( todo );
2543 return; 2547 return;
2544 } 2548 }
2545 mTodoEditor->editTodo( todo ,mFlagEditDescription); 2549 mTodoEditor->editTodo( todo ,mFlagEditDescription);
2546 showTodoEditor(); 2550 showTodoEditor();
2547 2551
2548} 2552}
2549 2553
2550KOEventViewerDialog* CalendarView::getEventViewerDialog() 2554KOEventViewerDialog* CalendarView::getEventViewerDialog()
2551{ 2555{
2552 if ( !mEventViewerDialog ) { 2556 if ( !mEventViewerDialog ) {
2553 mEventViewerDialog = new KOEventViewerDialog(this); 2557 mEventViewerDialog = new KOEventViewerDialog(this);
2554 connect( mEventViewerDialog, SIGNAL( editIncidence( Incidence* )), this, SLOT(editIncidence( Incidence* ) ) ); 2558 connect( mEventViewerDialog, SIGNAL( editIncidence( Incidence* )), this, SLOT(editIncidence( Incidence* ) ) );
2555 connect( this, SIGNAL(configChanged()), mEventViewerDialog, SLOT(updateConfig())); 2559 connect( this, SIGNAL(configChanged()), mEventViewerDialog, SLOT(updateConfig()));
2556 connect( mEventViewerDialog, SIGNAL(jumpToTime( const QDate &)), 2560 connect( mEventViewerDialog, SIGNAL(jumpToTime( const QDate &)),
2557 dateNavigator(), SLOT( selectWeek( const QDate & ) ) ); 2561 dateNavigator(), SLOT( selectWeek( const QDate & ) ) );
2558 connect( mEventViewerDialog, SIGNAL(showAgendaView( bool ) ), 2562 connect( mEventViewerDialog, SIGNAL(showAgendaView( bool ) ),
2559 viewManager(), SLOT( showAgendaView( bool ) ) ); 2563 viewManager(), SLOT( showAgendaView( bool ) ) );
2560 mEventViewerDialog->resize( 640, 480 ); 2564 mEventViewerDialog->resize( 640, 480 );
2561 2565
2562 } 2566 }
2563 return mEventViewerDialog; 2567 return mEventViewerDialog;
2564} 2568}
2565void CalendarView::showEvent(Event *event) 2569void CalendarView::showEvent(Event *event)
2566{ 2570{
2567 getEventViewerDialog()->setEvent(event); 2571 getEventViewerDialog()->setEvent(event);
2568 getEventViewerDialog()->showMe(); 2572 getEventViewerDialog()->showMe();
2569} 2573}
2570 2574
2571void CalendarView::showTodo(Todo *event) 2575void CalendarView::showTodo(Todo *event)
2572{ 2576{
2573 getEventViewerDialog()->setTodo(event); 2577 getEventViewerDialog()->setTodo(event);
2574 getEventViewerDialog()->showMe(); 2578 getEventViewerDialog()->showMe();
2575} 2579}
2576void CalendarView::showJournal( Journal *jour ) 2580void CalendarView::showJournal( Journal *jour )
2577{ 2581{
2578 getEventViewerDialog()->setJournal(jour); 2582 getEventViewerDialog()->setJournal(jour);
2579 getEventViewerDialog()->showMe(); 2583 getEventViewerDialog()->showMe();
2580 2584
2581} 2585}
2582// void CalendarView::todoModified (Todo *event, int changed) 2586// void CalendarView::todoModified (Todo *event, int changed)
2583// { 2587// {
2584// // if (mDialogList.find (event) != mDialogList.end ()) { 2588// // if (mDialogList.find (event) != mDialogList.end ()) {
2585// // kdDebug() << "Todo modified and open" << endl; 2589// // kdDebug() << "Todo modified and open" << endl;
2586// // KOTodoEditor* temp = (KOTodoEditor *) mDialogList[event]; 2590// // KOTodoEditor* temp = (KOTodoEditor *) mDialogList[event];
2587// // temp->modified (changed); 2591// // temp->modified (changed);
2588 2592
2589// // } 2593// // }
2590 2594
2591// mViewManager->updateView(); 2595// mViewManager->updateView();
2592// } 2596// }
2593 2597
2594void CalendarView::appointment_show() 2598void CalendarView::appointment_show()
2595{ 2599{
2596 Event *anEvent = 0; 2600 Event *anEvent = 0;
2597 2601
2598 Incidence *incidence = mViewManager->currentView()->selectedIncidences().first(); 2602 Incidence *incidence = mViewManager->currentView()->selectedIncidences().first();
2599 2603
2600 if (mViewManager->currentView()->isEventView()) { 2604 if (mViewManager->currentView()->isEventView()) {
2601 if ( incidence && incidence->type() == "Event" ) { 2605 if ( incidence && incidence->type() == "Event" ) {
2602 anEvent = static_cast<Event *>(incidence); 2606 anEvent = static_cast<Event *>(incidence);
2603 } 2607 }
2604 } 2608 }
2605 2609
2606 if (!anEvent) { 2610 if (!anEvent) {
2607 KNotifyClient::beep(); 2611 KNotifyClient::beep();
2608 return; 2612 return;
2609 } 2613 }
2610 2614
2611 showEvent(anEvent); 2615 showEvent(anEvent);
2612} 2616}
2613 2617
2614void CalendarView::appointment_edit() 2618void CalendarView::appointment_edit()
2615{ 2619{
2616 Event *anEvent = 0; 2620 Event *anEvent = 0;
2617 2621
2618 Incidence *incidence = mViewManager->currentView()->selectedIncidences().first(); 2622 Incidence *incidence = mViewManager->currentView()->selectedIncidences().first();
2619 2623
2620 if (mViewManager->currentView()->isEventView()) { 2624 if (mViewManager->currentView()->isEventView()) {
2621 if ( incidence && incidence->type() == "Event" ) { 2625 if ( incidence && incidence->type() == "Event" ) {
2622 anEvent = static_cast<Event *>(incidence); 2626 anEvent = static_cast<Event *>(incidence);
2623 } 2627 }
2624 } 2628 }
2625 2629
2626 if (!anEvent) { 2630 if (!anEvent) {
2627 KNotifyClient::beep(); 2631 KNotifyClient::beep();
2628 return; 2632 return;
2629 } 2633 }
2630 2634
2631 editEvent(anEvent); 2635 editEvent(anEvent);
2632} 2636}
2633 2637
2634void CalendarView::appointment_delete() 2638void CalendarView::appointment_delete()
2635{ 2639{
2636 Event *anEvent = 0; 2640 Event *anEvent = 0;
2637 2641
2638 Incidence *incidence = mViewManager->currentView()->selectedIncidences().first(); 2642 Incidence *incidence = mViewManager->currentView()->selectedIncidences().first();
2639 2643
2640 if (mViewManager->currentView()->isEventView()) { 2644 if (mViewManager->currentView()->isEventView()) {
2641 if ( incidence && incidence->type() == "Event" ) { 2645 if ( incidence && incidence->type() == "Event" ) {
2642 anEvent = static_cast<Event *>(incidence); 2646 anEvent = static_cast<Event *>(incidence);
2643 } 2647 }
2644 } 2648 }
2645 2649
2646 if (!anEvent) { 2650 if (!anEvent) {
2647 KNotifyClient::beep(); 2651 KNotifyClient::beep();
2648 return; 2652 return;
2649 } 2653 }
2650 2654
2651 deleteEvent(anEvent); 2655 deleteEvent(anEvent);
2652} 2656}
2653 2657
2654void CalendarView::todo_unsub(Todo *anTodo ) 2658void CalendarView::todo_unsub(Todo *anTodo )
2655{ 2659{
2656 // Todo *anTodo = selectedTodo(); 2660 // Todo *anTodo = selectedTodo();
2657 if (!anTodo) return; 2661 if (!anTodo) return;
2658 if (!anTodo->relatedTo()) return; 2662 if (!anTodo->relatedTo()) return;
2659 anTodo->relatedTo()->removeRelation(anTodo); 2663 anTodo->relatedTo()->removeRelation(anTodo);
2660 anTodo->setRelatedTo(0); 2664 anTodo->setRelatedTo(0);
2661 anTodo->updated(); 2665 anTodo->updated();
2662 anTodo->setRelatedToUid(""); 2666 anTodo->setRelatedToUid("");
2663 setModified(true); 2667 setModified(true);
2664 updateView(); 2668 updateView();
2665} 2669}
2666 2670
2667void CalendarView::deleteTodo(Todo *todo) 2671void CalendarView::deleteTodo(Todo *todo)
2668{ 2672{
2669 if (!todo) { 2673 if (!todo) {
2670 KNotifyClient::beep(); 2674 KNotifyClient::beep();
2671 return; 2675 return;
2672 } 2676 }
2673 if (KOPrefs::instance()->mConfirm) { 2677 if (KOPrefs::instance()->mConfirm) {
2674 switch (msgItemDelete()) { 2678 switch (msgItemDelete()) {
2675 case KMessageBox::Continue: // OK 2679 case KMessageBox::Continue: // OK
2676 if (!todo->relations().isEmpty()) { 2680 if (!todo->relations().isEmpty()) {
2677 KMessageBox::sorry(this,i18n("Cannot delete To-Do\nwhich has children."), 2681 KMessageBox::sorry(this,i18n("Cannot delete To-Do\nwhich has children."),
2678 i18n("Delete To-Do")); 2682 i18n("Delete To-Do"));
2679 } else { 2683 } else {
2680 checkExternalId( todo ); 2684 checkExternalId( todo );
2681 calendar()->deleteTodo(todo); 2685 calendar()->deleteTodo(todo);
2682 changeTodoDisplay( todo,KOGlobals::EVENTDELETED ); 2686 changeTodoDisplay( todo,KOGlobals::EVENTDELETED );
2683 updateView(); 2687 updateView();
2684 } 2688 }
2685 break; 2689 break;
2686 } // switch 2690 } // switch
2687 } else { 2691 } else {
2688 if (!todo->relations().isEmpty()) { 2692 if (!todo->relations().isEmpty()) {
2689 KMessageBox::sorry(this,i18n("Cannot delete To-Do\nwhich has children."), 2693 KMessageBox::sorry(this,i18n("Cannot delete To-Do\nwhich has children."),
2690 i18n("Delete To-Do")); 2694 i18n("Delete To-Do"));
2691 } else { 2695 } else {
2692 checkExternalId( todo ); 2696 checkExternalId( todo );
2693 mCalendar->deleteTodo(todo); 2697 mCalendar->deleteTodo(todo);
2694 changeTodoDisplay( todo,KOGlobals::EVENTDELETED ); 2698 changeTodoDisplay( todo,KOGlobals::EVENTDELETED );
2695 updateView(); 2699 updateView();
2696 } 2700 }
2697 } 2701 }
2698 emit updateSearchDialog(); 2702 emit updateSearchDialog();
2699} 2703}
2700void CalendarView::deleteJournal(Journal *jour) 2704void CalendarView::deleteJournal(Journal *jour)
2701{ 2705{
2702 if (!jour) { 2706 if (!jour) {
2703 KNotifyClient::beep(); 2707 KNotifyClient::beep();
2704 return; 2708 return;
2705 } 2709 }
2706 if (KOPrefs::instance()->mConfirm) { 2710 if (KOPrefs::instance()->mConfirm) {
2707 switch (msgItemDelete()) { 2711 switch (msgItemDelete()) {
2708 case KMessageBox::Continue: // OK 2712 case KMessageBox::Continue: // OK
2709 calendar()->deleteJournal(jour); 2713 calendar()->deleteJournal(jour);
2710 updateView(); 2714 updateView();
2711 break; 2715 break;
2712 } // switch 2716 } // switch
2713 } else { 2717 } else {
2714 calendar()->deleteJournal(jour);; 2718 calendar()->deleteJournal(jour);;
2715 updateView(); 2719 updateView();
2716 } 2720 }
2717 emit updateSearchDialog(); 2721 emit updateSearchDialog();
2718} 2722}
2719 2723
2720void CalendarView::deleteEvent(Event *anEvent) 2724void CalendarView::deleteEvent(Event *anEvent)
2721{ 2725{
2722 if (!anEvent) { 2726 if (!anEvent) {
2723 KNotifyClient::beep(); 2727 KNotifyClient::beep();
2724 return; 2728 return;
2725 } 2729 }
2726 2730
2727 if (anEvent->recurrence()->doesRecur()) { 2731 if (anEvent->recurrence()->doesRecur()) {
2728 QDate itemDate = mViewManager->currentSelectionDate(); 2732 QDate itemDate = mViewManager->currentSelectionDate();
2729 int km; 2733 int km;
2730 if (!itemDate.isValid()) { 2734 if (!itemDate.isValid()) {
2731 //kdDebug() << "Date Not Valid" << endl; 2735 //kdDebug() << "Date Not Valid" << endl;
2732 if (KOPrefs::instance()->mConfirm) { 2736 if (KOPrefs::instance()->mConfirm) {
2733 km = KMessageBox::warningContinueCancel(this,anEvent->summary() + 2737 km = KMessageBox::warningContinueCancel(this,anEvent->summary() +
2734 i18n("\nThis event recurs\nover multiple dates.\nAre you sure you want\nto delete this event\nand all its recurrences?"), 2738 i18n("\nThis event recurs\nover multiple dates.\nAre you sure you want\nto delete this event\nand all its recurrences?"),
2735 i18n("KO/Pi Confirmation"),i18n("Delete All")); 2739 i18n("KO/Pi Confirmation"),i18n("Delete All"));
2736 if ( km == KMessageBox::Continue ) 2740 if ( km == KMessageBox::Continue )
2737 km = KMessageBox::No; // No = all below 2741 km = KMessageBox::No; // No = all below
2738 } else 2742 } else
2739 km = KMessageBox::No; 2743 km = KMessageBox::No;
2740 } else { 2744 } else {
2741 km = KMessageBox::warningYesNoCancel(this,anEvent->summary() + 2745 km = KMessageBox::warningYesNoCancel(this,anEvent->summary() +
2742 i18n("\nThis event recurs\nover multiple dates.\nDo you want to delete\nall it's recurrences,\nor only the current one on:\n")+ 2746 i18n("\nThis event recurs\nover multiple dates.\nDo you want to delete\nall it's recurrences,\nor only the current one on:\n")+
2743 KGlobal::locale()->formatDate(itemDate)+i18n(" ?\n\nDelete:\n"), 2747 KGlobal::locale()->formatDate(itemDate)+i18n(" ?\n\nDelete:\n"),
2744 i18n("KO/Pi Confirmation"),i18n("Current"), 2748 i18n("KO/Pi Confirmation"),i18n("Current"),
2745 i18n("All")); 2749 i18n("All"));
2746 } 2750 }
2747 switch(km) { 2751 switch(km) {
2748 2752
2749 case KMessageBox::No: // Continue // all 2753 case KMessageBox::No: // Continue // all
2750 //qDebug("KMessageBox::No "); 2754 //qDebug("KMessageBox::No ");
2751 if (anEvent->organizer()==KOPrefs::instance()->email() && anEvent->attendeeCount()>0) 2755 if (anEvent->organizer()==KOPrefs::instance()->email() && anEvent->attendeeCount()>0)
2752 schedule(Scheduler::Cancel,anEvent); 2756 schedule(Scheduler::Cancel,anEvent);
2753 2757
2754 checkExternalId( anEvent); 2758 checkExternalId( anEvent);
2755 mCalendar->deleteEvent(anEvent); 2759 mCalendar->deleteEvent(anEvent);
2756 changeEventDisplay(anEvent,KOGlobals::EVENTDELETED); 2760 changeEventDisplay(anEvent,KOGlobals::EVENTDELETED);
2757 break; 2761 break;
2758 2762
2759 // Disabled because it does not work 2763 // Disabled because it does not work
2760 //#if 0 2764 //#if 0
2761 case KMessageBox::Yes: // just this one 2765 case KMessageBox::Yes: // just this one
2762 //QDate qd = mNavigator->selectedDates().first(); 2766 //QDate qd = mNavigator->selectedDates().first();
2763 //if (!qd.isValid()) { 2767 //if (!qd.isValid()) {
2764 // kdDebug() << "no date selected, or invalid date" << endl; 2768 // kdDebug() << "no date selected, or invalid date" << endl;
2765 // KNotifyClient::beep(); 2769 // KNotifyClient::beep();
2766 // return; 2770 // return;
2767 //} 2771 //}
2768 //while (!anEvent->recursOn(qd)) qd = qd.addDays(1); 2772 //while (!anEvent->recursOn(qd)) qd = qd.addDays(1);
2769 if (itemDate!=QDate(1,1,1) || itemDate.isValid()) { 2773 if (itemDate!=QDate(1,1,1) || itemDate.isValid()) {
2770 anEvent->addExDate(itemDate); 2774 anEvent->addExDate(itemDate);
2771 int duration = anEvent->recurrence()->duration(); 2775 int duration = anEvent->recurrence()->duration();
2772 if ( duration > 0 ) { 2776 if ( duration > 0 ) {
2773 anEvent->recurrence()->setDuration( duration - 1 ); 2777 anEvent->recurrence()->setDuration( duration - 1 );
2774 } 2778 }
2775 changeEventDisplay(anEvent, KOGlobals::EVENTEDITED); 2779 changeEventDisplay(anEvent, KOGlobals::EVENTEDITED);
2776 } 2780 }
2777 break; 2781 break;
2778 //#endif 2782 //#endif
2779 } // switch 2783 } // switch
2780 } else { 2784 } else {
2781 if (KOPrefs::instance()->mConfirm) { 2785 if (KOPrefs::instance()->mConfirm) {
2782 switch (KMessageBox::warningContinueCancel(this,anEvent->summary() + 2786 switch (KMessageBox::warningContinueCancel(this,anEvent->summary() +
2783 i18n("\nAre you sure you want\nto delete this event?"), 2787 i18n("\nAre you sure you want\nto delete this event?"),
2784 i18n("KO/Pi Confirmation"),i18n("Delete"))) { 2788 i18n("KO/Pi Confirmation"),i18n("Delete"))) {
2785 case KMessageBox::Continue: // OK 2789 case KMessageBox::Continue: // OK
2786 if (anEvent->organizer()==KOPrefs::instance()->email() && anEvent->attendeeCount()>0) 2790 if (anEvent->organizer()==KOPrefs::instance()->email() && anEvent->attendeeCount()>0)
2787 schedule(Scheduler::Cancel,anEvent); 2791 schedule(Scheduler::Cancel,anEvent);
2788 checkExternalId( anEvent); 2792 checkExternalId( anEvent);
2789 mCalendar->deleteEvent(anEvent); 2793 mCalendar->deleteEvent(anEvent);
2790 changeEventDisplay(anEvent, KOGlobals::EVENTDELETED); 2794 changeEventDisplay(anEvent, KOGlobals::EVENTDELETED);
2791 break; 2795 break;
2792 } // switch 2796 } // switch
2793 } else { 2797 } else {
2794 if (anEvent->organizer()==KOPrefs::instance()->email() && anEvent->attendeeCount()>0) 2798 if (anEvent->organizer()==KOPrefs::instance()->email() && anEvent->attendeeCount()>0)
2795 schedule(Scheduler::Cancel,anEvent); 2799 schedule(Scheduler::Cancel,anEvent);
2796 checkExternalId( anEvent); 2800 checkExternalId( anEvent);
2797 mCalendar->deleteEvent(anEvent); 2801 mCalendar->deleteEvent(anEvent);
2798 changeEventDisplay(anEvent, KOGlobals::EVENTDELETED); 2802 changeEventDisplay(anEvent, KOGlobals::EVENTDELETED);
2799 } 2803 }
2800 } // if-else 2804 } // if-else
2801 emit updateSearchDialog(); 2805 emit updateSearchDialog();
2802} 2806}
2803 2807
2804bool CalendarView::deleteEvent(const QString &uid) 2808bool CalendarView::deleteEvent(const QString &uid)
2805{ 2809{
2806 Event *ev = mCalendar->event(uid); 2810 Event *ev = mCalendar->event(uid);
2807 if (ev) { 2811 if (ev) {
2808 deleteEvent(ev); 2812 deleteEvent(ev);
2809 return true; 2813 return true;
2810 } else { 2814 } else {
2811 return false; 2815 return false;
2812 } 2816 }
2813} 2817}
2814 2818
2815/*****************************************************************************/ 2819/*****************************************************************************/
2816 2820
2817void CalendarView::action_mail() 2821void CalendarView::action_mail()
2818{ 2822{
2819#ifndef KORG_NOMAIL 2823#ifndef KORG_NOMAIL
2820 KOMailClient mailClient; 2824 KOMailClient mailClient;
2821 2825
2822 Incidence *incidence = currentSelection(); 2826 Incidence *incidence = currentSelection();
2823 2827
2824 if (!incidence) { 2828 if (!incidence) {
2825 KMessageBox::sorry(this,i18n("Can't generate mail:\nNo event selected.")); 2829 KMessageBox::sorry(this,i18n("Can't generate mail:\nNo event selected."));
2826 return; 2830 return;
2827 } 2831 }
2828 if(incidence->attendeeCount() == 0 ) { 2832 if(incidence->attendeeCount() == 0 ) {
2829 KMessageBox::sorry(this, 2833 KMessageBox::sorry(this,
2830 i18n("Can't generate mail:\nNo attendees defined.\n")); 2834 i18n("Can't generate mail:\nNo attendees defined.\n"));
2831 return; 2835 return;
2832 } 2836 }
2833 2837
2834 CalendarLocal cal_tmp; 2838 CalendarLocal cal_tmp;
2835 Event *event = 0; 2839 Event *event = 0;
2836 Event *ev = 0; 2840 Event *ev = 0;
2837 if ( incidence && incidence->type() == "Event" ) { 2841 if ( incidence && incidence->type() == "Event" ) {
2838 event = static_cast<Event *>(incidence); 2842 event = static_cast<Event *>(incidence);
2839 ev = new Event(*event); 2843 ev = new Event(*event);
2840 cal_tmp.addEvent(ev); 2844 cal_tmp.addEvent(ev);
2841 } 2845 }
2842 ICalFormat mForm( KOPrefs::instance()->mUseQuicksave); 2846 ICalFormat mForm( KOPrefs::instance()->mUseQuicksave);
2843 QString attachment = mForm.toString( &cal_tmp ); 2847 QString attachment = mForm.toString( &cal_tmp );
2844 if (ev) delete(ev); 2848 if (ev) delete(ev);
2845 2849
2846 mailClient.mailAttendees(currentSelection(), attachment); 2850 mailClient.mailAttendees(currentSelection(), attachment);
2847 2851
2848#endif 2852#endif
2849 2853
2850#if 0 2854#if 0
2851 Event *anEvent = 0; 2855 Event *anEvent = 0;
2852 if (mViewManager->currentView()->isEventView()) { 2856 if (mViewManager->currentView()->isEventView()) {
2853 anEvent = dynamic_cast<Event *>((mViewManager->currentView()->selectedIncidences()).first()); 2857 anEvent = dynamic_cast<Event *>((mViewManager->currentView()->selectedIncidences()).first());
2854 } 2858 }
2855 2859
2856 if (!anEvent) { 2860 if (!anEvent) {
2857 KMessageBox::sorry(this,i18n("Can't generate mail:\nNo event selected.")); 2861 KMessageBox::sorry(this,i18n("Can't generate mail:\nNo event selected."));
2858 return; 2862 return;
2859 } 2863 }
2860 if(anEvent->attendeeCount() == 0 ) { 2864 if(anEvent->attendeeCount() == 0 ) {
2861 KMessageBox::sorry(this, 2865 KMessageBox::sorry(this,
2862 i18n("Can't generate mail:\nNo attendees defined.\n")); 2866 i18n("Can't generate mail:\nNo attendees defined.\n"));
2863 return; 2867 return;
2864 } 2868 }
2865 2869
2866 mailobject.emailEvent(anEvent); 2870 mailobject.emailEvent(anEvent);
2867#endif 2871#endif
2868} 2872}
2869 2873
2870 2874
2871void CalendarView::schedule_publish(Incidence *incidence) 2875void CalendarView::schedule_publish(Incidence *incidence)
2872{ 2876{
2873 Event *event = 0; 2877 Event *event = 0;
2874 Todo *todo = 0; 2878 Todo *todo = 0;
2875 2879
2876 if (incidence == 0) { 2880 if (incidence == 0) {
2877 incidence = mViewManager->currentView()->selectedIncidences().first(); 2881 incidence = mViewManager->currentView()->selectedIncidences().first();
2878 if (incidence == 0) { 2882 if (incidence == 0) {
2879 incidence = mTodoList->selectedIncidences().first(); 2883 incidence = mTodoList->selectedIncidences().first();
2880 } 2884 }
2881 } 2885 }
2882 if ( incidence && incidence->type() == "Event" ) { 2886 if ( incidence && incidence->type() == "Event" ) {
2883 event = static_cast<Event *>(incidence); 2887 event = static_cast<Event *>(incidence);
2884 } else { 2888 } else {
2885 if ( incidence && incidence->type() == "Todo" ) { 2889 if ( incidence && incidence->type() == "Todo" ) {
2886 todo = static_cast<Todo *>(incidence); 2890 todo = static_cast<Todo *>(incidence);
2887 } 2891 }
2888 } 2892 }
2889 2893
2890 if (!event && !todo) { 2894 if (!event && !todo) {
2891 KMessageBox::sorry(this,i18n("No event selected.")); 2895 KMessageBox::sorry(this,i18n("No event selected."));
2892 return; 2896 return;
2893 } 2897 }
2894 2898
2895 PublishDialog *publishdlg = new PublishDialog(); 2899 PublishDialog *publishdlg = new PublishDialog();
2896 if (incidence->attendeeCount()>0) { 2900 if (incidence->attendeeCount()>0) {
2897 QPtrList<Attendee> attendees = incidence->attendees(); 2901 QPtrList<Attendee> attendees = incidence->attendees();
2898 attendees.first(); 2902 attendees.first();
2899 while ( attendees.current()!=0 ) { 2903 while ( attendees.current()!=0 ) {
2900 publishdlg->addAttendee(attendees.current()); 2904 publishdlg->addAttendee(attendees.current());
2901 attendees.next(); 2905 attendees.next();
2902 } 2906 }
2903 } 2907 }
2904 bool send = true; 2908 bool send = true;
2905 if ( KOPrefs::instance()->mMailClient == KOPrefs::MailClientSendmail ) { 2909 if ( KOPrefs::instance()->mMailClient == KOPrefs::MailClientSendmail ) {
2906 if ( publishdlg->exec() != QDialog::Accepted ) 2910 if ( publishdlg->exec() != QDialog::Accepted )
2907 send = false; 2911 send = false;
2908 } 2912 }
2909 if ( send ) { 2913 if ( send ) {
2910 OutgoingDialog *dlg = mDialogManager->outgoingDialog(); 2914 OutgoingDialog *dlg = mDialogManager->outgoingDialog();
2911 if ( event ) { 2915 if ( event ) {
2912 Event *ev = new Event(*event); 2916 Event *ev = new Event(*event);
2913 ev->registerObserver(0); 2917 ev->registerObserver(0);
2914 ev->clearAttendees(); 2918 ev->clearAttendees();
2915 if (!dlg->addMessage(ev,Scheduler::Publish,publishdlg->addresses())) { 2919 if (!dlg->addMessage(ev,Scheduler::Publish,publishdlg->addresses())) {
2916 delete(ev); 2920 delete(ev);
2917 } 2921 }
2918 } else { 2922 } else {
2919 if ( todo ) { 2923 if ( todo ) {
2920 Todo *ev = new Todo(*todo); 2924 Todo *ev = new Todo(*todo);
2921 ev->registerObserver(0); 2925 ev->registerObserver(0);
2922 ev->clearAttendees(); 2926 ev->clearAttendees();
2923 if (!dlg->addMessage(ev,Scheduler::Publish,publishdlg->addresses())) { 2927 if (!dlg->addMessage(ev,Scheduler::Publish,publishdlg->addresses())) {
2924 delete(ev); 2928 delete(ev);
2925 } 2929 }
2926 } 2930 }
2927 } 2931 }
2928 } 2932 }
2929 delete publishdlg; 2933 delete publishdlg;
2930} 2934}
2931 2935
2932void CalendarView::schedule_request(Incidence *incidence) 2936void CalendarView::schedule_request(Incidence *incidence)
2933{ 2937{
2934 schedule(Scheduler::Request,incidence); 2938 schedule(Scheduler::Request,incidence);
2935} 2939}
2936 2940
2937void CalendarView::schedule_refresh(Incidence *incidence) 2941void CalendarView::schedule_refresh(Incidence *incidence)
2938{ 2942{
2939 schedule(Scheduler::Refresh,incidence); 2943 schedule(Scheduler::Refresh,incidence);
2940} 2944}
2941 2945
2942void CalendarView::schedule_cancel(Incidence *incidence) 2946void CalendarView::schedule_cancel(Incidence *incidence)
2943{ 2947{
2944 schedule(Scheduler::Cancel,incidence); 2948 schedule(Scheduler::Cancel,incidence);
2945} 2949}
2946 2950
2947void CalendarView::schedule_add(Incidence *incidence) 2951void CalendarView::schedule_add(Incidence *incidence)
2948{ 2952{
2949 schedule(Scheduler::Add,incidence); 2953 schedule(Scheduler::Add,incidence);
2950} 2954}
2951 2955
2952void CalendarView::schedule_reply(Incidence *incidence) 2956void CalendarView::schedule_reply(Incidence *incidence)
2953{ 2957{
2954 schedule(Scheduler::Reply,incidence); 2958 schedule(Scheduler::Reply,incidence);
2955} 2959}
2956 2960
2957void CalendarView::schedule_counter(Incidence *incidence) 2961void CalendarView::schedule_counter(Incidence *incidence)
2958{ 2962{
2959 schedule(Scheduler::Counter,incidence); 2963 schedule(Scheduler::Counter,incidence);
2960} 2964}
2961 2965
2962void CalendarView::schedule_declinecounter(Incidence *incidence) 2966void CalendarView::schedule_declinecounter(Incidence *incidence)
2963{ 2967{
2964 schedule(Scheduler::Declinecounter,incidence); 2968 schedule(Scheduler::Declinecounter,incidence);
2965} 2969}
2966 2970
2967void CalendarView::schedule_publish_freebusy(int daysToPublish) 2971void CalendarView::schedule_publish_freebusy(int daysToPublish)
2968{ 2972{
2969 QDateTime start = QDateTime::currentDateTime(); 2973 QDateTime start = QDateTime::currentDateTime();
2970 QDateTime end = start.addDays(daysToPublish); 2974 QDateTime end = start.addDays(daysToPublish);
2971 2975
2972 FreeBusy *freebusy = new FreeBusy(mCalendar, start, end); 2976 FreeBusy *freebusy = new FreeBusy(mCalendar, start, end);
2973 freebusy->setOrganizer(KOPrefs::instance()->email()); 2977 freebusy->setOrganizer(KOPrefs::instance()->email());
2974 2978
2975 2979
2976 PublishDialog *publishdlg = new PublishDialog(); 2980 PublishDialog *publishdlg = new PublishDialog();
2977 if ( publishdlg->exec() == QDialog::Accepted ) { 2981 if ( publishdlg->exec() == QDialog::Accepted ) {
2978 OutgoingDialog *dlg = mDialogManager->outgoingDialog(); 2982 OutgoingDialog *dlg = mDialogManager->outgoingDialog();
2979 if (!dlg->addMessage(freebusy,Scheduler::Publish,publishdlg->addresses())) { 2983 if (!dlg->addMessage(freebusy,Scheduler::Publish,publishdlg->addresses())) {
2980 delete(freebusy); 2984 delete(freebusy);
2981 } 2985 }
2982 } 2986 }
2983 delete publishdlg; 2987 delete publishdlg;
2984} 2988}
2985 2989
2986void CalendarView::schedule(Scheduler::Method method, Incidence *incidence) 2990void CalendarView::schedule(Scheduler::Method method, Incidence *incidence)
2987{ 2991{
2988 Event *event = 0; 2992 Event *event = 0;
2989 Todo *todo = 0; 2993 Todo *todo = 0;
2990 2994
2991 if (incidence == 0) { 2995 if (incidence == 0) {
2992 incidence = mViewManager->currentView()->selectedIncidences().first(); 2996 incidence = mViewManager->currentView()->selectedIncidences().first();
2993 if (incidence == 0) { 2997 if (incidence == 0) {
2994 incidence = mTodoList->selectedIncidences().first(); 2998 incidence = mTodoList->selectedIncidences().first();
2995 } 2999 }
2996 } 3000 }
2997 if ( incidence && incidence->type() == "Event" ) { 3001 if ( incidence && incidence->type() == "Event" ) {
2998 event = static_cast<Event *>(incidence); 3002 event = static_cast<Event *>(incidence);
2999 } 3003 }
3000 if ( incidence && incidence->type() == "Todo" ) { 3004 if ( incidence && incidence->type() == "Todo" ) {
3001 todo = static_cast<Todo *>(incidence); 3005 todo = static_cast<Todo *>(incidence);
3002 } 3006 }
3003 3007
3004 if (!event && !todo) { 3008 if (!event && !todo) {
3005 KMessageBox::sorry(this,i18n("No event selected.")); 3009 KMessageBox::sorry(this,i18n("No event selected."));
3006 return; 3010 return;
3007 } 3011 }
3008 3012
3009 if( incidence->attendeeCount() == 0 && method != Scheduler::Publish ) { 3013 if( incidence->attendeeCount() == 0 && method != Scheduler::Publish ) {
3010 KMessageBox::sorry(this,i18n("The event has no attendees.")); 3014 KMessageBox::sorry(this,i18n("The event has no attendees."));
3011 return; 3015 return;
3012 } 3016 }
3013 3017
3014 Event *ev = 0; 3018 Event *ev = 0;
3015 if (event) ev = new Event(*event); 3019 if (event) ev = new Event(*event);
3016 Todo *to = 0; 3020 Todo *to = 0;
3017 if (todo) to = new Todo(*todo); 3021 if (todo) to = new Todo(*todo);
3018 3022
3019 if (method == Scheduler::Reply || method == Scheduler::Refresh) { 3023 if (method == Scheduler::Reply || method == Scheduler::Refresh) {
3020 Attendee *me = incidence->attendeeByMails(KOPrefs::instance()->mAdditionalMails,KOPrefs::instance()->email()); 3024 Attendee *me = incidence->attendeeByMails(KOPrefs::instance()->mAdditionalMails,KOPrefs::instance()->email());
3021 if (!me) { 3025 if (!me) {
3022 KMessageBox::sorry(this,i18n("Could not find your attendee entry.\nPlease check the emails.")); 3026 KMessageBox::sorry(this,i18n("Could not find your attendee entry.\nPlease check the emails."));
3023 return; 3027 return;
3024 } 3028 }
3025 if (me->status()==Attendee::NeedsAction && me->RSVP() && method==Scheduler::Reply) { 3029 if (me->status()==Attendee::NeedsAction && me->RSVP() && method==Scheduler::Reply) {
3026 StatusDialog *statdlg = new StatusDialog(this); 3030 StatusDialog *statdlg = new StatusDialog(this);
3027 if (!statdlg->exec()==QDialog::Accepted) return; 3031 if (!statdlg->exec()==QDialog::Accepted) return;
3028 me->setStatus( statdlg->status() ); 3032 me->setStatus( statdlg->status() );
3029 delete(statdlg); 3033 delete(statdlg);
3030 } 3034 }
3031 Attendee *menew = new Attendee(*me); 3035 Attendee *menew = new Attendee(*me);
3032 if (ev) { 3036 if (ev) {
3033 ev->clearAttendees(); 3037 ev->clearAttendees();
3034 ev->addAttendee(menew,false); 3038 ev->addAttendee(menew,false);
3035 } else { 3039 } else {
3036 if (to) { 3040 if (to) {
3037 todo->clearAttendees(); 3041 todo->clearAttendees();
3038 todo->addAttendee(menew,false); 3042 todo->addAttendee(menew,false);
3039 } 3043 }
3040 } 3044 }
3041 } 3045 }
3042 3046
3043 OutgoingDialog *dlg = mDialogManager->outgoingDialog(); 3047 OutgoingDialog *dlg = mDialogManager->outgoingDialog();
3044 if (ev) { 3048 if (ev) {
3045 if ( !dlg->addMessage(ev,method) ) delete(ev); 3049 if ( !dlg->addMessage(ev,method) ) delete(ev);
3046 } else { 3050 } else {
3047 if (to) { 3051 if (to) {
3048 if ( !dlg->addMessage(to,method) ) delete(to); 3052 if ( !dlg->addMessage(to,method) ) delete(to);
3049 } 3053 }
3050 } 3054 }
3051} 3055}
3052 3056
3053void CalendarView::openAddressbook() 3057void CalendarView::openAddressbook()
3054{ 3058{
3055 KRun::runCommand("kaddressbook"); 3059 KRun::runCommand("kaddressbook");
3056} 3060}
3057 3061
3058void CalendarView::setModified(bool modified) 3062void CalendarView::setModified(bool modified)
3059{ 3063{
3060 if ( modified ) 3064 if ( modified )
3061 emit signalmodified(); 3065 emit signalmodified();
3062 if (mModified != modified) { 3066 if (mModified != modified) {
3063 mModified = modified; 3067 mModified = modified;
3064 emit modifiedChanged(mModified); 3068 emit modifiedChanged(mModified);
3065 } 3069 }
3066} 3070}
3067 3071
3068bool CalendarView::isReadOnly() 3072bool CalendarView::isReadOnly()
3069{ 3073{
3070 return mReadOnly; 3074 return mReadOnly;
3071} 3075}
3072 3076
3073void CalendarView::setReadOnly(bool readOnly) 3077void CalendarView::setReadOnly(bool readOnly)
3074{ 3078{
3075 if (mReadOnly != readOnly) { 3079 if (mReadOnly != readOnly) {
3076 mReadOnly = readOnly; 3080 mReadOnly = readOnly;
3077 emit readOnlyChanged(mReadOnly); 3081 emit readOnlyChanged(mReadOnly);
3078 } 3082 }
3079} 3083}
3080 3084
3081bool CalendarView::isModified() 3085bool CalendarView::isModified()
3082{ 3086{
3083 return mModified; 3087 return mModified;
3084} 3088}
3085 3089
3086void CalendarView::printSetup() 3090void CalendarView::printSetup()
3087{ 3091{
3088#ifndef KORG_NOPRINTER 3092#ifndef KORG_NOPRINTER
3089 createPrinter(); 3093 createPrinter();
3090 3094
3091 mCalPrinter->setupPrinter(); 3095 mCalPrinter->setupPrinter();
3092#endif 3096#endif
3093} 3097}
3094 3098
3095void CalendarView::print() 3099void CalendarView::print()
3096{ 3100{
3097#ifndef KORG_NOPRINTER 3101#ifndef KORG_NOPRINTER
3098 createPrinter(); 3102 createPrinter();
3099 3103
3100 DateList tmpDateList = mNavigator->selectedDates(); 3104 DateList tmpDateList = mNavigator->selectedDates();
3101 mCalPrinter->print(CalPrinter::Month, 3105 mCalPrinter->print(CalPrinter::Month,
3102 tmpDateList.first(), tmpDateList.last()); 3106 tmpDateList.first(), tmpDateList.last());
3103#endif 3107#endif
3104} 3108}
3105 3109
3106void CalendarView::printPreview() 3110void CalendarView::printPreview()
3107{ 3111{
3108#ifndef KORG_NOPRINTER 3112#ifndef KORG_NOPRINTER
3109 kdDebug() << "CalendarView::printPreview()" << endl; 3113 kdDebug() << "CalendarView::printPreview()" << endl;
3110 3114
3111 createPrinter(); 3115 createPrinter();
3112 3116
3113 DateList tmpDateList = mNavigator->selectedDates(); 3117 DateList tmpDateList = mNavigator->selectedDates();
3114 3118
3115 mViewManager->currentView()->printPreview(mCalPrinter,tmpDateList.first(), 3119 mViewManager->currentView()->printPreview(mCalPrinter,tmpDateList.first(),
3116 tmpDateList.last()); 3120 tmpDateList.last());
3117#endif 3121#endif
3118} 3122}
3119 3123
3120void CalendarView::exportICalendar() 3124void CalendarView::exportICalendar()
3121{ 3125{
3122 QString filename = KFileDialog::getSaveFileName("icalout.ics",i18n("*.ics|ICalendars"),this); 3126 QString filename = KFileDialog::getSaveFileName("icalout.ics",i18n("*.ics|ICalendars"),this);
3123 3127
3124 // Force correct extension 3128 // Force correct extension
3125 if (filename.right(4) != ".ics") filename += ".ics"; 3129 if (filename.right(4) != ".ics") filename += ".ics";
3126 3130
3127 FileStorage storage( mCalendar, filename, new ICalFormat( KOPrefs::instance()->mUseQuicksave) ); 3131 FileStorage storage( mCalendar, filename, new ICalFormat( KOPrefs::instance()->mUseQuicksave) );
3128 storage.save(); 3132 storage.save();
3129} 3133}
3130 3134
3131bool CalendarView::exportVCalendar( QString filename ) 3135bool CalendarView::exportVCalendar( QString filename )
3132{ 3136{
3133 if (mCalendar->journals().count() > 0) { 3137 if (mCalendar->journals().count() > 0) {
3134 int result = KMessageBox::warningContinueCancel(this, 3138 int result = KMessageBox::warningContinueCancel(this,
3135 i18n("The journal entries can not be\nexported to a vCalendar file."), 3139 i18n("The journal entries can not be\nexported to a vCalendar file."),
3136 i18n("Data Loss Warning"),i18n("Proceed"),i18n("Cancel"), 3140 i18n("Data Loss Warning"),i18n("Proceed"),i18n("Cancel"),
3137 true); 3141 true);
3138 if (result != KMessageBox::Continue) return false; 3142 if (result != KMessageBox::Continue) return false;
3139 } 3143 }
3140 3144
3141 //QString filename = KFileDialog::getSaveFileName("vcalout.vcs",i18n("*.vcs|VCalendars"),this); 3145 //QString filename = KFileDialog::getSaveFileName("vcalout.vcs",i18n("*.vcs|VCalendars"),this);
3142 3146
3143 // Force correct extension 3147 // Force correct extension
3144 if (filename.right(4) != ".vcs") filename += ".vcs"; 3148 if (filename.right(4) != ".vcs") filename += ".vcs";
3145 3149
3146 FileStorage storage( mCalendar, filename, new VCalFormat ); 3150 FileStorage storage( mCalendar, filename, new VCalFormat );
3147 return storage.save(); 3151 return storage.save();
3148 3152
3149} 3153}
3150 3154
3151void CalendarView::eventUpdated(Incidence *) 3155void CalendarView::eventUpdated(Incidence *)
3152{ 3156{
3153 setModified(); 3157 setModified();
3154 // Don't call updateView here. The code, which has caused the update of the 3158 // Don't call updateView here. The code, which has caused the update of the
3155 // event is responsible for updating the view. 3159 // event is responsible for updating the view.
3156 // updateView(); 3160 // updateView();
3157} 3161}
3158 3162
3159void CalendarView::adaptNavigationUnits() 3163void CalendarView::adaptNavigationUnits()
3160{ 3164{
3161 if (mViewManager->currentView()->isEventView()) { 3165 if (mViewManager->currentView()->isEventView()) {
3162 int days = mViewManager->currentView()->currentDateCount(); 3166 int days = mViewManager->currentView()->currentDateCount();
3163 if (days == 1) { 3167 if (days == 1) {
3164 emit changeNavStringPrev(i18n("&Previous Day")); 3168 emit changeNavStringPrev(i18n("&Previous Day"));
3165 emit changeNavStringNext(i18n("&Next Day")); 3169 emit changeNavStringNext(i18n("&Next Day"));
3166 } else { 3170 } else {
3167 emit changeNavStringPrev(i18n("&Previous Week")); 3171 emit changeNavStringPrev(i18n("&Previous Week"));
3168 emit changeNavStringNext(i18n("&Next Week")); 3172 emit changeNavStringNext(i18n("&Next Week"));
3169 } 3173 }
3170 } 3174 }
3171} 3175}
3172 3176
3173void CalendarView::processMainViewSelection( Incidence *incidence ) 3177void CalendarView::processMainViewSelection( Incidence *incidence )
3174{ 3178{
3175 if ( incidence ) mTodoList->clearSelection(); 3179 if ( incidence ) mTodoList->clearSelection();
3176 processIncidenceSelection( incidence ); 3180 processIncidenceSelection( incidence );
3177} 3181}
3178 3182
3179void CalendarView::processTodoListSelection( Incidence *incidence ) 3183void CalendarView::processTodoListSelection( Incidence *incidence )
3180{ 3184{
3181 if ( incidence && mViewManager->currentView() ) { 3185 if ( incidence && mViewManager->currentView() ) {
3182 mViewManager->currentView()->clearSelection(); 3186 mViewManager->currentView()->clearSelection();
3183 } 3187 }
3184 processIncidenceSelection( incidence ); 3188 processIncidenceSelection( incidence );
3185} 3189}
3186 3190
3187void CalendarView::processIncidenceSelection( Incidence *incidence ) 3191void CalendarView::processIncidenceSelection( Incidence *incidence )
3188{ 3192{
3189 if ( incidence == mSelectedIncidence ) return; 3193 if ( incidence == mSelectedIncidence ) return;
3190 3194
3191 mSelectedIncidence = incidence; 3195 mSelectedIncidence = incidence;
3192 3196
3193 emit incidenceSelected( mSelectedIncidence ); 3197 emit incidenceSelected( mSelectedIncidence );
3194 3198
3195 if ( incidence && incidence->type() == "Event" ) { 3199 if ( incidence && incidence->type() == "Event" ) {
3196 Event *event = static_cast<Event *>( incidence ); 3200 Event *event = static_cast<Event *>( incidence );
3197 if ( event->organizer() == KOPrefs::instance()->email() ) { 3201 if ( event->organizer() == KOPrefs::instance()->email() ) {
3198 emit organizerEventsSelected( true ); 3202 emit organizerEventsSelected( true );
3199 } else { 3203 } else {
3200 emit organizerEventsSelected(false); 3204 emit organizerEventsSelected(false);
3201 } 3205 }
3202 if (event->attendeeByMails( KOPrefs::instance()->mAdditionalMails, 3206 if (event->attendeeByMails( KOPrefs::instance()->mAdditionalMails,
3203 KOPrefs::instance()->email() ) ) { 3207 KOPrefs::instance()->email() ) ) {
3204 emit groupEventsSelected( true ); 3208 emit groupEventsSelected( true );
3205 } else { 3209 } else {
3206 emit groupEventsSelected(false); 3210 emit groupEventsSelected(false);
3207 } 3211 }
3208 return; 3212 return;
3209 } else { 3213 } else {
3210 if ( incidence && incidence->type() == "Todo" ) { 3214 if ( incidence && incidence->type() == "Todo" ) {
3211 emit todoSelected( true ); 3215 emit todoSelected( true );
3212 Todo *event = static_cast<Todo *>( incidence ); 3216 Todo *event = static_cast<Todo *>( incidence );
3213 if ( event->organizer() == KOPrefs::instance()->email() ) { 3217 if ( event->organizer() == KOPrefs::instance()->email() ) {
3214 emit organizerEventsSelected( true ); 3218 emit organizerEventsSelected( true );
3215 } else { 3219 } else {
3216 emit organizerEventsSelected(false); 3220 emit organizerEventsSelected(false);
3217 } 3221 }
3218 if (event->attendeeByMails( KOPrefs::instance()->mAdditionalMails, 3222 if (event->attendeeByMails( KOPrefs::instance()->mAdditionalMails,
3219 KOPrefs::instance()->email() ) ) { 3223 KOPrefs::instance()->email() ) ) {
3220 emit groupEventsSelected( true ); 3224 emit groupEventsSelected( true );
3221 } else { 3225 } else {
3222 emit groupEventsSelected(false); 3226 emit groupEventsSelected(false);
3223 } 3227 }
3224 return; 3228 return;
3225 } else { 3229 } else {
3226 emit todoSelected( false ); 3230 emit todoSelected( false );
3227 emit organizerEventsSelected(false); 3231 emit organizerEventsSelected(false);
3228 emit groupEventsSelected(false); 3232 emit groupEventsSelected(false);
3229 } 3233 }
3230 return; 3234 return;
3231 } 3235 }
3232 3236
3233 /* if ( incidence && incidence->type() == "Todo" ) { 3237 /* if ( incidence && incidence->type() == "Todo" ) {
3234 emit todoSelected( true ); 3238 emit todoSelected( true );
3235 } else { 3239 } else {
3236 emit todoSelected( false ); 3240 emit todoSelected( false );
3237 }*/ 3241 }*/
3238} 3242}
3239 3243
3240 3244
3241void CalendarView::checkClipboard() 3245void CalendarView::checkClipboard()
3242{ 3246{
3243#ifndef KORG_NODND 3247#ifndef KORG_NODND
3244 if (ICalDrag::canDecode(QApplication::clipboard()->data())) { 3248 if (ICalDrag::canDecode(QApplication::clipboard()->data())) {
3245 emit pasteEnabled(true); 3249 emit pasteEnabled(true);
3246 } else { 3250 } else {
3247 emit pasteEnabled(false); 3251 emit pasteEnabled(false);
3248 } 3252 }
3249#endif 3253#endif
3250} 3254}
3251 3255
3252void CalendarView::showDates(const DateList &selectedDates) 3256void CalendarView::showDates(const DateList &selectedDates)
3253{ 3257{
3254 // kdDebug() << "CalendarView::selectDates()" << endl; 3258 // kdDebug() << "CalendarView::selectDates()" << endl;
3255 3259
3256 if ( mViewManager->currentView() ) { 3260 if ( mViewManager->currentView() ) {
3257 updateView( selectedDates.first(), selectedDates.last() ); 3261 updateView( selectedDates.first(), selectedDates.last() );
3258 } else { 3262 } else {
3259 mViewManager->showAgendaView(); 3263 mViewManager->showAgendaView();
3260 } 3264 }
3261 3265
3262 QString selDates; 3266 QString selDates;
3263 selDates = KGlobal::locale()->formatDate( selectedDates.first(), true); 3267 selDates = KGlobal::locale()->formatDate( selectedDates.first(), true);
3264 if (selectedDates.first() < selectedDates.last() ) 3268 if (selectedDates.first() < selectedDates.last() )
3265 selDates += " - " + KGlobal::locale()->formatDate( selectedDates.last(),true); 3269 selDates += " - " + KGlobal::locale()->formatDate( selectedDates.last(),true);
3266 topLevelWidget()->setCaption( i18n("Dates: ") + selDates ); 3270 topLevelWidget()->setCaption( i18n("Dates: ") + selDates );
3267 3271
3268} 3272}
3269 3273
3270QPtrList<CalFilter> CalendarView::filters() 3274QPtrList<CalFilter> CalendarView::filters()
3271{ 3275{
3272 return mFilters; 3276 return mFilters;
3273 3277
3274} 3278}
3275void CalendarView::editFilters() 3279void CalendarView::editFilters()
3276{ 3280{
3277 // kdDebug() << "CalendarView::editFilters()" << endl; 3281 // kdDebug() << "CalendarView::editFilters()" << endl;
3278 3282
3279 CalFilter *filter = mFilters.first(); 3283 CalFilter *filter = mFilters.first();
3280 while(filter) { 3284 while(filter) {
3281 kdDebug() << " Filter: " << filter->name() << endl; 3285 kdDebug() << " Filter: " << filter->name() << endl;
3282 filter = mFilters.next(); 3286 filter = mFilters.next();
3283 } 3287 }
3284 3288
3285 mDialogManager->showFilterEditDialog(&mFilters); 3289 mDialogManager->showFilterEditDialog(&mFilters);
3286} 3290}
3287void CalendarView::toggleFilter() 3291void CalendarView::toggleFilter()
3288{ 3292{
3289 showFilter(! mFilterView->isVisible()); 3293 showFilter(! mFilterView->isVisible());
3290} 3294}
3291 3295
3292KOFilterView *CalendarView::filterView() 3296KOFilterView *CalendarView::filterView()
3293{ 3297{
3294 return mFilterView; 3298 return mFilterView;
3295} 3299}
3296void CalendarView::selectFilter( int fil ) 3300void CalendarView::selectFilter( int fil )
3297{ 3301{
3298 mFilterView->setSelectedFilter( fil ); 3302 mFilterView->setSelectedFilter( fil );
3299} 3303}
3300void CalendarView::showFilter(bool visible) 3304void CalendarView::showFilter(bool visible)
3301{ 3305{
3302 if (visible) mFilterView->show(); 3306 if (visible) mFilterView->show();
3303 else mFilterView->hide(); 3307 else mFilterView->hide();
3304} 3308}
3305void CalendarView::toggleFilerEnabled( ) 3309void CalendarView::toggleFilerEnabled( )
3306{ 3310{
3307 mFilterView->setFiltersEnabled ( !mFilterView->filtersEnabled() ); 3311 mFilterView->setFiltersEnabled ( !mFilterView->filtersEnabled() );
3308 if ( !mFilterView->filtersEnabled() ) 3312 if ( !mFilterView->filtersEnabled() )
3309 topLevelWidget()->setCaption( i18n("Filter disabled ") ); 3313 topLevelWidget()->setCaption( i18n("Filter disabled ") );
3310 3314
3311} 3315}
3312void CalendarView::updateFilter() 3316void CalendarView::updateFilter()
3313{ 3317{
3314 CalFilter *filter = mFilterView->selectedFilter(); 3318 CalFilter *filter = mFilterView->selectedFilter();
3315 if (filter) { 3319 if (filter) {
3316 if (mFilterView->filtersEnabled()) { 3320 if (mFilterView->filtersEnabled()) {
3317 topLevelWidget()->setCaption( i18n("Filter selected: ")+filter->name() ); 3321 topLevelWidget()->setCaption( i18n("Filter selected: ")+filter->name() );
3318 filter->setEnabled(true); 3322 filter->setEnabled(true);
3319 } 3323 }
3320 else filter->setEnabled(false); 3324 else filter->setEnabled(false);
3321 mCalendar->setFilter(filter); 3325 mCalendar->setFilter(filter);
3322 updateView(); 3326 updateView();
3323 } 3327 }
3324} 3328}
3325 3329
3326void CalendarView::filterEdited() 3330void CalendarView::filterEdited()
3327{ 3331{
3328 mFilterView->updateFilters(); 3332 mFilterView->updateFilters();
3329 updateFilter(); 3333 updateFilter();
3330 writeSettings(); 3334 writeSettings();
3331} 3335}
3332 3336
3333 3337
3334void CalendarView::takeOverEvent() 3338void CalendarView::takeOverEvent()
3335{ 3339{
3336 Incidence *incidence = currentSelection(); 3340 Incidence *incidence = currentSelection();
3337 3341
3338 if (!incidence) return; 3342 if (!incidence) return;
3339 3343
3340 incidence->setOrganizer(KOPrefs::instance()->email()); 3344 incidence->setOrganizer(KOPrefs::instance()->email());
3341 incidence->recreate(); 3345 incidence->recreate();
3342 incidence->setReadOnly(false); 3346 incidence->setReadOnly(false);
3343 3347
3344 updateView(); 3348 updateView();
3345} 3349}
3346 3350
3347void CalendarView::takeOverCalendar() 3351void CalendarView::takeOverCalendar()
3348{ 3352{
3349 // TODO: Create Calendar::allIncidences() function and use it here 3353 // TODO: Create Calendar::allIncidences() function and use it here
3350 3354
3351 QPtrList<Event> events = mCalendar->events(); 3355 QPtrList<Event> events = mCalendar->events();
3352 for(uint i=0; i<events.count(); ++i) { 3356 for(uint i=0; i<events.count(); ++i) {
3353 events.at(i)->setOrganizer(KOPrefs::instance()->email()); 3357 events.at(i)->setOrganizer(KOPrefs::instance()->email());
3354 events.at(i)->recreate(); 3358 events.at(i)->recreate();
3355 events.at(i)->setReadOnly(false); 3359 events.at(i)->setReadOnly(false);
3356 } 3360 }
3357 3361
3358 QPtrList<Todo> todos = mCalendar->todos(); 3362 QPtrList<Todo> todos = mCalendar->todos();
3359 for(uint i=0; i<todos.count(); ++i) { 3363 for(uint i=0; i<todos.count(); ++i) {
3360 todos.at(i)->setOrganizer(KOPrefs::instance()->email()); 3364 todos.at(i)->setOrganizer(KOPrefs::instance()->email());
3361 todos.at(i)->recreate(); 3365 todos.at(i)->recreate();
3362 todos.at(i)->setReadOnly(false); 3366 todos.at(i)->setReadOnly(false);
3363 } 3367 }
3364 3368
3365 QPtrList<Journal> journals = mCalendar->journals(); 3369 QPtrList<Journal> journals = mCalendar->journals();
3366 for(uint i=0; i<journals.count(); ++i) { 3370 for(uint i=0; i<journals.count(); ++i) {
3367 journals.at(i)->setOrganizer(KOPrefs::instance()->email()); 3371 journals.at(i)->setOrganizer(KOPrefs::instance()->email());
3368 journals.at(i)->recreate(); 3372 journals.at(i)->recreate();
3369 journals.at(i)->setReadOnly(false); 3373 journals.at(i)->setReadOnly(false);
3370 } 3374 }
3371 3375
3372 updateView(); 3376 updateView();
3373} 3377}
3374 3378
3375void CalendarView::showIntro() 3379void CalendarView::showIntro()
3376{ 3380{
3377 kdDebug() << "To be implemented." << endl; 3381 kdDebug() << "To be implemented." << endl;
3378} 3382}
3379 3383
3380QWidgetStack *CalendarView::viewStack() 3384QWidgetStack *CalendarView::viewStack()
3381{ 3385{
3382 return mRightFrame; 3386 return mRightFrame;
3383} 3387}
3384 3388
3385QWidget *CalendarView::leftFrame() 3389QWidget *CalendarView::leftFrame()
3386{ 3390{
3387 return mLeftFrame; 3391 return mLeftFrame;
3388} 3392}
3389 3393
3390DateNavigator *CalendarView::dateNavigator() 3394DateNavigator *CalendarView::dateNavigator()
3391{ 3395{
3392 return mNavigator; 3396 return mNavigator;
3393} 3397}
3394 3398
3395KDateNavigator* CalendarView::dateNavigatorWidget() 3399KDateNavigator* CalendarView::dateNavigatorWidget()
3396{ 3400{
3397 return mDateNavigator; 3401 return mDateNavigator;
3398} 3402}
3399void CalendarView::toggleDateNavigatorWidget() 3403void CalendarView::toggleDateNavigatorWidget()
3400{ 3404{
3401 if (mDateNavigator->isVisible()) 3405 if (mDateNavigator->isVisible())
3402 mDateNavigator->hide(); 3406 mDateNavigator->hide();
3403 else 3407 else
3404 mDateNavigator->show(); 3408 mDateNavigator->show();
3405} 3409}
3406void CalendarView::addView(KOrg::BaseView *view) 3410void CalendarView::addView(KOrg::BaseView *view)
3407{ 3411{
3408 mViewManager->addView(view); 3412 mViewManager->addView(view);
3409} 3413}
3410 3414
3411void CalendarView::showView(KOrg::BaseView *view) 3415void CalendarView::showView(KOrg::BaseView *view)
3412{ 3416{
3413 mViewManager->showView(view, mLeftFrame->isVisible()); 3417 mViewManager->showView(view, mLeftFrame->isVisible());
3414} 3418}
3415 3419
3416Incidence *CalendarView::currentSelection() 3420Incidence *CalendarView::currentSelection()
3417{ 3421{
3418 return mViewManager->currentSelection(); 3422 return mViewManager->currentSelection();
3419} 3423}
3420void CalendarView::toggleAllDaySize() 3424void CalendarView::toggleAllDaySize()
3421{ 3425{
3422 /* 3426 /*
3423 if ( KOPrefs::instance()->mAllDaySize > 47 ) 3427 if ( KOPrefs::instance()->mAllDaySize > 47 )
3424 KOPrefs::instance()->mAllDaySize = KOPrefs::instance()->mAllDaySize /2; 3428 KOPrefs::instance()->mAllDaySize = KOPrefs::instance()->mAllDaySize /2;
3425 else 3429 else
3426 KOPrefs::instance()->mAllDaySize = KOPrefs::instance()->mAllDaySize *2; 3430 KOPrefs::instance()->mAllDaySize = KOPrefs::instance()->mAllDaySize *2;
3427 */ 3431 */
3428 viewManager()->agendaView()->toggleAllDay(); 3432 viewManager()->agendaView()->toggleAllDay();
3429} 3433}
3430void CalendarView::toggleExpand() 3434void CalendarView::toggleExpand()
3431{ 3435{
3432 // if ( mLeftFrame->isHidden() ) { 3436 // if ( mLeftFrame->isHidden() ) {
3433 // mLeftFrame->show(); 3437 // mLeftFrame->show();
3434 // emit calendarViewExpanded( false ); 3438 // emit calendarViewExpanded( false );
3435 // } else { 3439 // } else {
3436 // mLeftFrame->hide(); 3440 // mLeftFrame->hide();
3437 // emit calendarViewExpanded( true ); 3441 // emit calendarViewExpanded( true );
3438 // } 3442 // }
3439 3443
3440 globalFlagBlockAgenda = 1; 3444 globalFlagBlockAgenda = 1;
3441 emit calendarViewExpanded( !mLeftFrame->isHidden() ); 3445 emit calendarViewExpanded( !mLeftFrame->isHidden() );
3442 globalFlagBlockAgenda = 5; 3446 globalFlagBlockAgenda = 5;
3443 mViewManager->raiseCurrentView( !mLeftFrame->isHidden() ); 3447 mViewManager->raiseCurrentView( !mLeftFrame->isHidden() );
3444 //mViewManager->showView( 0, true ); 3448 //mViewManager->showView( 0, true );
3445} 3449}
3446 3450
3447void CalendarView::calendarModified( bool modified, Calendar * ) 3451void CalendarView::calendarModified( bool modified, Calendar * )
3448{ 3452{
3449 setModified( modified ); 3453 setModified( modified );
3450} 3454}
3451 3455
3452Todo *CalendarView::selectedTodo() 3456Todo *CalendarView::selectedTodo()
3453{ 3457{
3454 Incidence *incidence = currentSelection(); 3458 Incidence *incidence = currentSelection();
3455 if ( incidence && incidence->type() == "Todo" ) { 3459 if ( incidence && incidence->type() == "Todo" ) {
3456 return static_cast<Todo *>( incidence ); 3460 return static_cast<Todo *>( incidence );
3457 } 3461 }
3458 3462
3459 incidence = mTodoList->selectedIncidences().first(); 3463 incidence = mTodoList->selectedIncidences().first();
3460 if ( incidence && incidence->type() == "Todo" ) { 3464 if ( incidence && incidence->type() == "Todo" ) {
3461 return static_cast<Todo *>( incidence ); 3465 return static_cast<Todo *>( incidence );
3462 } 3466 }
3463 3467
3464 return 0; 3468 return 0;
3465} 3469}
3466 3470
3467void CalendarView::dialogClosing(Incidence *in) 3471void CalendarView::dialogClosing(Incidence *in)
3468{ 3472{
3469 // mDialogList.remove(in); 3473 // mDialogList.remove(in);
3470} 3474}
3471 3475
3472void CalendarView::showIncidence() 3476void CalendarView::showIncidence()
3473{ 3477{
3474 Incidence *incidence = currentSelection(); 3478 Incidence *incidence = currentSelection();
3475 if ( !incidence ) incidence = mTodoList->selectedIncidences().first(); 3479 if ( !incidence ) incidence = mTodoList->selectedIncidences().first();
3476 if ( incidence ) { 3480 if ( incidence ) {
3477 ShowIncidenceVisitor v; 3481 ShowIncidenceVisitor v;
3478 v.act( incidence, this ); 3482 v.act( incidence, this );
3479 } 3483 }
3480} 3484}
3481void CalendarView::editIncidenceDescription() 3485void CalendarView::editIncidenceDescription()
3482{ 3486{
3483 mFlagEditDescription = true; 3487 mFlagEditDescription = true;
3484 editIncidence(); 3488 editIncidence();
3485 mFlagEditDescription = false; 3489 mFlagEditDescription = false;
3486} 3490}
3487void CalendarView::editIncidence() 3491void CalendarView::editIncidence()
3488{ 3492{
3489 // qDebug("editIncidence() "); 3493 // qDebug("editIncidence() ");
3490 Incidence *incidence = currentSelection(); 3494 Incidence *incidence = currentSelection();
3491 if ( !incidence ) incidence = mTodoList->selectedIncidences().first(); 3495 if ( !incidence ) incidence = mTodoList->selectedIncidences().first();
3492 if ( incidence ) { 3496 if ( incidence ) {
3493 EditIncidenceVisitor v; 3497 EditIncidenceVisitor v;
3494 v.act( incidence, this ); 3498 v.act( incidence, this );
3495 } 3499 }
3496} 3500}
3497 3501
3498void CalendarView::deleteIncidence() 3502void CalendarView::deleteIncidence()
3499{ 3503{
3500 Incidence *incidence = currentSelection(); 3504 Incidence *incidence = currentSelection();
3501 if ( !incidence ) incidence = mTodoList->selectedIncidences().first(); 3505 if ( !incidence ) incidence = mTodoList->selectedIncidences().first();
3502 if ( incidence ) { 3506 if ( incidence ) {
3503 deleteIncidence(incidence); 3507 deleteIncidence(incidence);
3504 } 3508 }
3505} 3509}
3506 3510
3507void CalendarView::showIncidence(Incidence *incidence) 3511void CalendarView::showIncidence(Incidence *incidence)
3508{ 3512{
3509 if ( incidence ) { 3513 if ( incidence ) {
3510 ShowIncidenceVisitor v; 3514 ShowIncidenceVisitor v;
3511 v.act( incidence, this ); 3515 v.act( incidence, this );
3512 } 3516 }
3513} 3517}
3514 3518
3515void CalendarView::editIncidence(Incidence *incidence) 3519void CalendarView::editIncidence(Incidence *incidence)
3516{ 3520{
3517 if ( incidence ) { 3521 if ( incidence ) {
3518 3522
3519 EditIncidenceVisitor v; 3523 EditIncidenceVisitor v;
3520 v.act( incidence, this ); 3524 v.act( incidence, this );
3521 3525
3522 } 3526 }
3523} 3527}
3524 3528
3525void CalendarView::deleteIncidence(Incidence *incidence) 3529void CalendarView::deleteIncidence(Incidence *incidence)
3526{ 3530{
3527 //qDebug(" CalendarView::deleteIncidence "); 3531 //qDebug(" CalendarView::deleteIncidence ");
3528 if ( incidence ) { 3532 if ( incidence ) {
3529 DeleteIncidenceVisitor v; 3533 DeleteIncidenceVisitor v;
3530 v.act( incidence, this ); 3534 v.act( incidence, this );
3531 } 3535 }
3532} 3536}
3533 3537
3534 3538
3535void CalendarView::lookForOutgoingMessages() 3539void CalendarView::lookForOutgoingMessages()
3536{ 3540{
3537 OutgoingDialog *ogd = mDialogManager->outgoingDialog(); 3541 OutgoingDialog *ogd = mDialogManager->outgoingDialog();
3538 ogd->loadMessages(); 3542 ogd->loadMessages();
3539} 3543}
3540 3544
3541void CalendarView::lookForIncomingMessages() 3545void CalendarView::lookForIncomingMessages()
3542{ 3546{
3543 IncomingDialog *icd = mDialogManager->incomingDialog(); 3547 IncomingDialog *icd = mDialogManager->incomingDialog();
3544 icd->retrieve(); 3548 icd->retrieve();
3545} 3549}
3546 3550
3547bool CalendarView::removeCompletedSubTodos( Todo* t ) 3551bool CalendarView::removeCompletedSubTodos( Todo* t )
3548{ 3552{
3549 bool deleteTodo = true; 3553 bool deleteTodo = true;
3550 QPtrList<Incidence> subTodos; 3554 QPtrList<Incidence> subTodos;
3551 Incidence *aTodo; 3555 Incidence *aTodo;
3552 subTodos = t->relations(); 3556 subTodos = t->relations();
3553 for (aTodo = subTodos.first(); aTodo; aTodo = subTodos.next()) { 3557 for (aTodo = subTodos.first(); aTodo; aTodo = subTodos.next()) {
3554 if (! removeCompletedSubTodos( (Todo*) aTodo )) 3558 if (! removeCompletedSubTodos( (Todo*) aTodo ))
3555 deleteTodo = false; 3559 deleteTodo = false;
3556 } 3560 }
3557 if ( deleteTodo ) { 3561 if ( deleteTodo ) {
3558 if ( t->isCompleted() ) { 3562 if ( t->isCompleted() ) {
3559 checkExternalId( t ); 3563 checkExternalId( t );
3560 mCalendar->deleteTodo( t ); 3564 mCalendar->deleteTodo( t );
3561 changeTodoDisplay( t,KOGlobals::EVENTDELETED ); 3565 changeTodoDisplay( t,KOGlobals::EVENTDELETED );
3562 } 3566 }
3563 else 3567 else
3564 deleteTodo = false; 3568 deleteTodo = false;
3565 } 3569 }
3566 return deleteTodo; 3570 return deleteTodo;
3567 3571
3568} 3572}
3569void CalendarView::purgeCompleted() 3573void CalendarView::purgeCompleted()
3570{ 3574{
3571 int result = KMessageBox::warningContinueCancel(this, 3575 int result = KMessageBox::warningContinueCancel(this,
3572 i18n("Delete all\ncompleted To-Dos?"),i18n("Purge To-Dos"),i18n("Purge")); 3576 i18n("Delete all\ncompleted To-Dos?"),i18n("Purge To-Dos"),i18n("Purge"));
3573 3577
3574 if (result == KMessageBox::Continue) { 3578 if (result == KMessageBox::Continue) {
3575 3579
3576 QPtrList<Todo> todoCal; 3580 QPtrList<Todo> todoCal;
3577 QPtrList<Todo> rootTodos; 3581 QPtrList<Todo> rootTodos;
3578 //QPtrList<Incidence> rel; 3582 //QPtrList<Incidence> rel;
3579 Todo *aTodo;//, *rTodo; 3583 Todo *aTodo;//, *rTodo;
3580 Incidence *rIncidence; 3584 Incidence *rIncidence;
3581 bool childDelete = false; 3585 bool childDelete = false;
3582 bool deletedOne = true; 3586 bool deletedOne = true;
3583 todoCal = calendar()->todos(); 3587 todoCal = calendar()->todos();
3584 for (aTodo = todoCal.first(); aTodo; aTodo = todoCal.next()) { 3588 for (aTodo = todoCal.first(); aTodo; aTodo = todoCal.next()) {
3585 if ( !aTodo->relatedTo() ) 3589 if ( !aTodo->relatedTo() )
3586 rootTodos.append( aTodo ); 3590 rootTodos.append( aTodo );
3587 } 3591 }
3588 for (aTodo = rootTodos.first(); aTodo; aTodo = rootTodos.next()) { 3592 for (aTodo = rootTodos.first(); aTodo; aTodo = rootTodos.next()) {
3589 removeCompletedSubTodos( aTodo ); 3593 removeCompletedSubTodos( aTodo );
3590 } 3594 }
3591 3595
3592 updateView(); 3596 updateView();
3593 } 3597 }
3594} 3598}
3595 3599
3596void CalendarView::slotCalendarChanged() 3600void CalendarView::slotCalendarChanged()
3597{ 3601{
3598 ; 3602 ;
3599} 3603}
3600 3604
3601NavigatorBar *CalendarView::navigatorBar() 3605NavigatorBar *CalendarView::navigatorBar()
3602{ 3606{
3603 return mNavigatorBar; 3607 return mNavigatorBar;
3604} 3608}
3605 3609
3606 3610
3607 3611
3608void CalendarView::keyPressEvent ( QKeyEvent *e) 3612void CalendarView::keyPressEvent ( QKeyEvent *e)
3609{ 3613{
3610 //qDebug(" alendarView::keyPressEvent "); 3614 //qDebug(" alendarView::keyPressEvent ");
3611 e->ignore(); 3615 e->ignore();
3612} 3616}
3613 3617
3614//#include "calendarview.moc" 3618//#include "calendarview.moc"
3615 3619
3616//#include "calendarviewbase.moc" 3620//#include "calendarviewbase.moc"
diff --git a/korganizer/koprefs.cpp b/korganizer/koprefs.cpp
index dd978bf..5d7db4f 100644
--- a/korganizer/koprefs.cpp
+++ b/korganizer/koprefs.cpp
@@ -1,568 +1,570 @@
1/* 1/*
2 This file is part of KOrganizer. 2 This file is part of KOrganizer.
3 Copyright (c) 2001 Cornelius Schumacher <schumacher@kde.org> 3 Copyright (c) 2001 Cornelius Schumacher <schumacher@kde.org>
4 4
5 This program is free software; you can redistribute it and/or modify 5 This program is free software; you can redistribute it and/or modify
6 it under the terms of the GNU General Public License as published by 6 it under the terms of the GNU General Public License as published by
7 the Free Software Foundation; either version 2 of the License, or 7 the Free Software Foundation; either version 2 of the License, or
8 (at your option) any later version. 8 (at your option) any later version.
9 9
10 This program is distributed in the hope that it will be useful, 10 This program is distributed in the hope that it will be useful,
11 but WITHOUT ANY WARRANTY; without even the implied warranty of 11 but WITHOUT ANY WARRANTY; without even the implied warranty of
12 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13 GNU General Public License for more details. 13 GNU General Public License for more details.
14 14
15 You should have received a copy of the GNU General Public License 15 You should have received a copy of the GNU General Public License
16 along with this program; if not, write to the Free Software 16 along with this program; if not, write to the Free Software
17 Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. 17 Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
18 18
19 As a special exception, permission is given to link this program 19 As a special exception, permission is given to link this program
20 with any edition of Qt, and distribute the resulting executable, 20 with any edition of Qt, and distribute the resulting executable,
21 without including the source code for Qt in the source distribution. 21 without including the source code for Qt in the source distribution.
22*/ 22*/
23 23
24#include <time.h> 24#include <time.h>
25#ifndef _WIN32_ 25#ifndef _WIN32_
26#include <unistd.h> 26#include <unistd.h>
27#endif 27#endif
28#include <qdir.h> 28#include <qdir.h>
29#include <qtextstream.h> 29#include <qtextstream.h>
30#include <qtextcodec.h> 30#include <qtextcodec.h>
31#include <qstring.h> 31#include <qstring.h>
32#include <qregexp.h> 32#include <qregexp.h>
33#include <qfont.h> 33#include <qfont.h>
34#include <qcolor.h> 34#include <qcolor.h>
35#include <qstringlist.h> 35#include <qstringlist.h>
36#include <stdlib.h> 36#include <stdlib.h>
37 37
38#include <kglobal.h> 38#include <kglobal.h>
39#include <kconfig.h> 39#include <kconfig.h>
40#include <klocale.h> 40#include <klocale.h>
41#include <kdebug.h> 41#include <kdebug.h>
42#include <kemailsettings.h> 42#include <kemailsettings.h>
43#include <kstaticdeleter.h> 43#include <kstaticdeleter.h>
44#include <libkdepim/kpimglobalprefs.h>
44 45
45#include "koprefs.h" 46#include "koprefs.h"
46#include "mainwindow.h" 47#include "mainwindow.h"
47 48
48const char *germanwords[][2] = { 49const char *germanwords[][2] = {
49#include "wordsgerman.h" 50#include "wordsgerman.h"
50 "", "" 51 "", ""
51}; 52};
52 53
53KOPrefs *KOPrefs::mInstance = 0; 54KOPrefs *KOPrefs::mInstance = 0;
54static KStaticDeleter<KOPrefs> insd; 55static KStaticDeleter<KOPrefs> insd;
55 56
56KOPrefs::KOPrefs() : 57KOPrefs::KOPrefs() :
57 KPimPrefs("korganizerrc") 58 KPimPrefs("korganizerrc")
58{ 59{
59 mCategoryColors.setAutoDelete(true); 60 mCategoryColors.setAutoDelete(true);
60 mLocaleDict = 0; 61 mLocaleDict = 0;
61 fillMailDefaults(); 62 fillMailDefaults();
62 mDefaultCategoryColor = QColor(175,210,255);//196,196,196); 63 mDefaultCategoryColor = QColor(175,210,255);//196,196,196);
63 QColor defaultHolidayColor = QColor(255,0,0); 64 QColor defaultHolidayColor = QColor(255,0,0);
64 QColor defaultHighlightColor = QColor(129,112,255);//64,64,255); 65 QColor defaultHighlightColor = QColor(129,112,255);//64,64,255);
65 QColor defaultAgendaBgColor = QColor(239,241,169);//128,128,128); 66 QColor defaultAgendaBgColor = QColor(239,241,169);//128,128,128);
66 QColor defaultWorkingHoursColor = QColor(170,223,150);//160,160,160); 67 QColor defaultWorkingHoursColor = QColor(170,223,150);//160,160,160);
67 QColor defaultTodoDueTodayColor = QColor(255,220,100); 68 QColor defaultTodoDueTodayColor = QColor(255,220,100);
68 QColor defaultTodoOverdueColor = QColor(255,153,125); 69 QColor defaultTodoOverdueColor = QColor(255,153,125);
69 70
70 mTimeBarFont = QFont("helvetica",10);//,QFont::Bold); 71 mTimeBarFont = QFont("helvetica",10);//,QFont::Bold);
71 mDefaultViewFont = QFont("helvetica",10); 72 mDefaultViewFont = QFont("helvetica",10);
72 mDefaultMonthViewFont = QFont("helvetica",8); 73 mDefaultMonthViewFont = QFont("helvetica",8);
73 mMarcusBainsFont= QFont("helvetica",10); 74 mMarcusBainsFont= QFont("helvetica",10);
74 mDateNavigatorFont= QFont("helvetica",10, QFont::Bold); 75 mDateNavigatorFont= QFont("helvetica",10, QFont::Bold);
75 mEditBoxFont = QFont("helvetica",12); 76 mEditBoxFont = QFont("helvetica",12);
76 mJornalViewFont = QFont("helvetica",12); 77 mJornalViewFont = QFont("helvetica",12);
77 78
78 KPrefs::setCurrentGroup("General"); 79 KPrefs::setCurrentGroup("General");
79 addItemBool("Enable Group Scheduling",&mEnableGroupScheduling,false); 80 addItemBool("Enable Group Scheduling",&mEnableGroupScheduling,false);
80 81
81 addItemBool("ShowIconNewTodo",&mShowIconNewTodo,true); 82 addItemBool("ShowIconNewTodo",&mShowIconNewTodo,true);
82 addItemBool("ShowIconNewEvent",&mShowIconNewEvent,true); 83 addItemBool("ShowIconNewEvent",&mShowIconNewEvent,true);
83 addItemBool("ShowIconSearch",&mShowIconSearch,true); 84 addItemBool("ShowIconSearch",&mShowIconSearch,true);
84 addItemBool("ShowIconList",&mShowIconList,true); 85 addItemBool("ShowIconList",&mShowIconList,true);
85 addItemBool("ShowIconDay1",&mShowIconDay1,true); 86 addItemBool("ShowIconDay1",&mShowIconDay1,true);
86 addItemBool("ShowIconDay5",&mShowIconDay5,true); 87 addItemBool("ShowIconDay5",&mShowIconDay5,true);
87 addItemBool("ShowIconDay7",&mShowIconDay7,true); 88 addItemBool("ShowIconDay7",&mShowIconDay7,true);
88 addItemBool("ShowIconMonth",&mShowIconMonth,true); 89 addItemBool("ShowIconMonth",&mShowIconMonth,true);
89 addItemBool("ShowIconTodoview",&mShowIconTodoview,true); 90 addItemBool("ShowIconTodoview",&mShowIconTodoview,true);
90 addItemBool("ShowIconBackFast",&mShowIconBackFast,true); 91 addItemBool("ShowIconBackFast",&mShowIconBackFast,true);
91 addItemBool("ShowIconBack",&mShowIconBack,true); 92 addItemBool("ShowIconBack",&mShowIconBack,true);
92 addItemBool("ShowIconToday",&mShowIconToday,true); 93 addItemBool("ShowIconToday",&mShowIconToday,true);
93 addItemBool("ShowIconForward",&mShowIconForward,true); 94 addItemBool("ShowIconForward",&mShowIconForward,true);
94 addItemBool("ShowIconForwardFast",&mShowIconForwardFast,true); 95 addItemBool("ShowIconForwardFast",&mShowIconForwardFast,true);
95 addItemBool("ShowIconWhatsThis",&mShowIconWhatsThis,false); 96 addItemBool("ShowIconWhatsThis",&mShowIconWhatsThis,false);
96 addItemBool("ShowIconNextDays",&mShowIconNextDays,true); 97 addItemBool("ShowIconNextDays",&mShowIconNextDays,true);
97 addItemBool("ShowIconNext",&mShowIconNext,true); 98 addItemBool("ShowIconNext",&mShowIconNext,true);
98 addItemBool("ShowIconJournal",&mShowIconJournal,true); 99 addItemBool("ShowIconJournal",&mShowIconJournal,true);
99 addItemBool("ShowIconStretch",&mShowIconStretch,true); 100 addItemBool("ShowIconStretch",&mShowIconStretch,true);
100 addItemBool("LanguageChanged",&mLanguageChanged,false); 101 addItemBool("LanguageChanged",&mLanguageChanged,false);
101 102
102 addItemBool("AskForQuit",&mAskForQuit,false); 103 addItemBool("AskForQuit",&mAskForQuit,false);
103 104
104#ifndef DESKTOP_VERSION 105#ifndef DESKTOP_VERSION
105 addItemBool("ShowFullMenu",&mShowFullMenu,false); 106 addItemBool("ShowFullMenu",&mShowFullMenu,false);
106#else 107#else
107 addItemBool("ShowFullMenu",&mShowFullMenu,true); 108 addItemBool("ShowFullMenu",&mShowFullMenu,true);
108#endif 109#endif
109 addItemBool("ToolBarHor",&mToolBarHor, true ); 110 addItemBool("ToolBarHor",&mToolBarHor, true );
110 addItemBool("ToolBarUp",&mToolBarUp, false ); 111 addItemBool("ToolBarUp",&mToolBarUp, false );
111 addItemBool("ToolBarMiniIcons",&mToolBarMiniIcons, false ); 112 addItemBool("ToolBarMiniIcons",&mToolBarMiniIcons, false );
112 addItemInt("Whats Next Days",&mWhatsNextDays,3); 113 addItemInt("Whats Next Days",&mWhatsNextDays,3);
113 addItemInt("Whats Next Prios",&mWhatsNextPrios,1); 114 addItemInt("Whats Next Prios",&mWhatsNextPrios,1);
114 115
115 addItemBool("ShowTodoInAgenda",&mShowTodoInAgenda,true); 116 addItemBool("ShowTodoInAgenda",&mShowTodoInAgenda,true);
116 addItemBool("ShowCompletedTodo",&mShowCompletedTodo,true); 117 addItemBool("ShowCompletedTodo",&mShowCompletedTodo,true);
117 addItemInt("AllDay Size",&mAllDaySize,28); 118 addItemInt("AllDay Size",&mAllDaySize,28);
118 QString defAlarm = KGlobal::iconLoader()->iconPath()+"koalarm.wav"; 119 QString defAlarm = KGlobal::iconLoader()->iconPath()+"koalarm.wav";
119 addItemString("DefaultAlarmFile",&mDefaultAlarmFile,defAlarm ); 120 addItemString("DefaultAlarmFile",&mDefaultAlarmFile,defAlarm );
120 121
121 addItemStringList("LocationDefaults",&mLocationDefaults ); 122 addItemStringList("LocationDefaults",&mLocationDefaults );
122 addItemStringList("EventSummary User",&mEventSummaryUser); 123 addItemStringList("EventSummary User",&mEventSummaryUser);
123 addItemStringList("TodoSummary User",&mTodoSummaryUser); 124 addItemStringList("TodoSummary User",&mTodoSummaryUser);
124 125
125 addItemBool("Enable Group Scheduling",&mEnableGroupScheduling,false); 126 addItemBool("Enable Group Scheduling",&mEnableGroupScheduling,false);
126 addItemBool("Enable Project View",&mEnableProjectView,false); 127 addItemBool("Enable Project View",&mEnableProjectView,false);
127 addItemBool("Auto Save",&mAutoSave,false); 128 addItemBool("Auto Save",&mAutoSave,false);
128 addItemInt("Auto Save Interval",&mAutoSaveInterval,3); 129 addItemInt("Auto Save Interval",&mAutoSaveInterval,3);
129 addItemBool("Confirm Deletes",&mConfirm,true); 130 addItemBool("Confirm Deletes",&mConfirm,true);
130 addItemString("Archive File",&mArchiveFile); 131 addItemString("Archive File",&mArchiveFile);
131 addItemString("Html Export File",&mHtmlExportFile, 132 addItemString("Html Export File",&mHtmlExportFile,
132 QDir::homeDirPath() + "/" + i18n("Default export file", "calendar.html")); 133 QDir::homeDirPath() + "/" + i18n("Default export file", "calendar.html"));
133 addItemBool("Html With Save",&mHtmlWithSave,false); 134 addItemBool("Html With Save",&mHtmlWithSave,false);
134 135
135 KPrefs::setCurrentGroup("Personal Settings"); 136 KPrefs::setCurrentGroup("Personal Settings");
136 137
137 addItemInt("Mail Client",&mMailClient,MailClientKMail); 138 addItemInt("Mail Client",&mMailClient,MailClientKMail);
138 addItemBool("Use Control Center Email",&mEmailControlCenter,false); 139 addItemBool("Use Control Center Email",&mEmailControlCenter,false);
139 addItemBool("Bcc",&mBcc,false); 140 addItemBool("Bcc",&mBcc,false);
140 141
141 KPrefs::setCurrentGroup("Time & Date"); 142 KPrefs::setCurrentGroup("Time & Date");
142 143
143 // addItemString("Time Zone",&mTimeZone,"+0100"); 144 // addItemString("Time Zone",&mTimeZone,"+0100");
144 addItemString("TimeZoneName",&mTimeZoneId,i18n ("+01:00 Europe/Oslo(CET)") ); 145 addItemString("TimeZoneName",&mTimeZoneId,i18n ("+01:00 Europe/Oslo(CET)") );
145 // addItemInt("TimeZoneOffset",&mTimeZoneOffset,60); 146 // addItemInt("TimeZoneOffset",&mTimeZoneOffset,60);
146 addItemBool("UseDaylightsaving",&mUseDaylightsaving,true); 147 addItemBool("UseDaylightsaving",&mUseDaylightsaving,true);
147 addItemInt("DaylightsavingStart",&mDaylightsavingStart,90); 148 addItemInt("DaylightsavingStart",&mDaylightsavingStart,90);
148 addItemInt("DaylightsavingEnd",&mDaylightsavingEnd,304); 149 addItemInt("DaylightsavingEnd",&mDaylightsavingEnd,304);
149 150
150 151
151 addItemInt("Default Start Time",&mStartTime,10); 152 addItemInt("Default Start Time",&mStartTime,10);
152 addItemInt("Default Duration",&mDefaultDuration,2); 153 addItemInt("Default Duration",&mDefaultDuration,2);
153 addItemInt("Default Alarm Time",&mAlarmTime,3); 154 addItemInt("Default Alarm Time",&mAlarmTime,3);
154 addItemInt("Daylight Savings",&mDaylightSavings,0); 155 addItemInt("Daylight Savings",&mDaylightSavings,0);
155 KPrefs::setCurrentGroup("AlarmSettings"); 156 KPrefs::setCurrentGroup("AlarmSettings");
156 addItemInt("AlarmPlayBeeps",&mAlarmPlayBeeps,20); 157 addItemInt("AlarmPlayBeeps",&mAlarmPlayBeeps,20);
157 addItemInt("AlarmSuspendTime",&mAlarmSuspendTime,7); 158 addItemInt("AlarmSuspendTime",&mAlarmSuspendTime,7);
158 addItemInt("AlarmSuspendCount",&mAlarmSuspendCount,5); 159 addItemInt("AlarmSuspendCount",&mAlarmSuspendCount,5);
159 addItemInt("AlarmBeepInterval",&mAlarmBeepInterval,3); 160 addItemInt("AlarmBeepInterval",&mAlarmBeepInterval,3);
160 161
161 162
162 KPrefs::setCurrentGroup("Calendar"); 163 KPrefs::setCurrentGroup("Calendar");
163 164
164 addItemInt("Default Calendar Format",&mDefaultFormat,FormatICalendar); 165 addItemInt("Default Calendar Format",&mDefaultFormat,FormatICalendar);
165 166
166 KPrefs::setCurrentGroup("Fonts"); 167 KPrefs::setCurrentGroup("Fonts");
167 // qDebug(" KPrefs::setCurrentGroup(Fonts); "); 168 // qDebug(" KPrefs::setCurrentGroup(Fonts); ");
168 addItemFont("TimeBar Font",&mTimeBarFont); 169 addItemFont("TimeBar Font",&mTimeBarFont);
169 addItemFont("MonthView Font",&mMonthViewFont); 170 addItemFont("MonthView Font",&mMonthViewFont);
170 addItemFont("AgendaView Font",&mAgendaViewFont); 171 addItemFont("AgendaView Font",&mAgendaViewFont);
171 addItemFont("MarcusBains Font",&mMarcusBainsFont); 172 addItemFont("MarcusBains Font",&mMarcusBainsFont);
172 addItemFont("TimeLabels Font",&mTimeLabelsFont); 173 addItemFont("TimeLabels Font",&mTimeLabelsFont);
173 addItemFont("TodoView Font",&mTodoViewFont); 174 addItemFont("TodoView Font",&mTodoViewFont);
174 addItemFont("ListView Font",&mListViewFont); 175 addItemFont("ListView Font",&mListViewFont);
175 addItemFont("DateNavigator Font",&mDateNavigatorFont); 176 addItemFont("DateNavigator Font",&mDateNavigatorFont);
176 addItemFont("EditBox Font",&mEditBoxFont); 177 addItemFont("EditBox Font",&mEditBoxFont);
177 addItemFont("JournalView Font",&mJornalViewFont); 178 addItemFont("JournalView Font",&mJornalViewFont);
178 addItemFont("WhatsNextView Font",&mWhatsNextFont); 179 addItemFont("WhatsNextView Font",&mWhatsNextFont);
179 addItemFont("EventView Font",&mEventViewFont); 180 addItemFont("EventView Font",&mEventViewFont);
180 181
181// KPrefs::setCurrentGroup("SyncProfiles"); 182// KPrefs::setCurrentGroup("SyncProfiles");
182// addItemString("LocalMachineName",&mLocalMachineName, "undefined"); 183// addItemString("LocalMachineName",&mLocalMachineName, "undefined");
183// addItemStringList("SyncProfileNames",&mSyncProfileNames); 184// addItemStringList("SyncProfileNames",&mSyncProfileNames);
184// addItemStringList("ExternSyncProfiles",&mExternSyncProfileNames); 185// addItemStringList("ExternSyncProfiles",&mExternSyncProfileNames);
185 186
186 KPrefs::setCurrentGroup("RemoteSyncing"); 187 KPrefs::setCurrentGroup("RemoteSyncing");
187// addItemBool("UsePasswd",&mUsePassWd,false); 188// addItemBool("UsePasswd",&mUsePassWd,false);
188// addItemBool("WriteBackFile",&mWriteBackFile,true); 189// addItemBool("WriteBackFile",&mWriteBackFile,true);
189// addItemBool("WriteBackExistingOnly",&mWriteBackExistingOnly,false); 190// addItemBool("WriteBackExistingOnly",&mWriteBackExistingOnly,false);
190// addItemBool("AskForPreferences",&mAskForPreferences,true); 191// addItemBool("AskForPreferences",&mAskForPreferences,true);
191// addItemBool("ShowSyncSummary",&mShowSyncSummary,true); 192// addItemBool("ShowSyncSummary",&mShowSyncSummary,true);
192 addItemBool("ShowSyncEvents",&mShowSyncEvents,false); 193 addItemBool("ShowSyncEvents",&mShowSyncEvents,false);
193 addItemInt("LastSyncTime",&mLastSyncTime,0); 194 addItemInt("LastSyncTime",&mLastSyncTime,0);
194 addItemInt("SyncAlgoPrefs",&mSyncAlgoPrefs,3); 195 addItemInt("SyncAlgoPrefs",&mSyncAlgoPrefs,3);
195 addItemInt("RingSyncAlgoPrefs",&mRingSyncAlgoPrefs,3); 196 addItemInt("RingSyncAlgoPrefs",&mRingSyncAlgoPrefs,3);
196 197
197#ifdef _WIN32_ 198#ifdef _WIN32_
198 QString hdp= locateLocal("data","korganizer")+"\\\\"; 199 QString hdp= locateLocal("data","korganizer")+"\\\\";
199#else 200#else
200 QString hdp= locateLocal("data","korganizer")+"/"; 201 QString hdp= locateLocal("data","korganizer")+"/";
201#endif 202#endif
202// addItemString("RemoteIP",&mRemoteIP, "192.168.0.65"); 203// addItemString("RemoteIP",&mRemoteIP, "192.168.0.65");
203// addItemString("RemoteUser",&mRemoteUser, "zaurus"); 204// addItemString("RemoteUser",&mRemoteUser, "zaurus");
204// addItemString("RemotePassWd",&mRemotePassWd, ""); 205// addItemString("RemotePassWd",&mRemotePassWd, "");
205// addItemString("RemoteFile", &mRemoteFile, hdp+"mycalendar.ics"); 206// addItemString("RemoteFile", &mRemoteFile, hdp+"mycalendar.ics");
206// addItemString("LocalTempFile",&mLocalTempFile, "/tmp/tempsyncfile.ics" ); 207// addItemString("LocalTempFile",&mLocalTempFile, "/tmp/tempsyncfile.ics" );
207 208
208 209
209 KPrefs::setCurrentGroup("LoadSaveFileNames"); 210 KPrefs::setCurrentGroup("LoadSaveFileNames");
210 211
211 addItemString("LastImportFile", &mLastImportFile ,hdp +"import.ics" ); 212 addItemString("LastImportFile", &mLastImportFile ,hdp +"import.ics" );
212 addItemString("LastVcalFile", &mLastVcalFile ,hdp +"export.vcs" ); 213 addItemString("LastVcalFile", &mLastVcalFile ,hdp +"export.vcs" );
213 addItemString("LastSaveFile", &mLastSaveFile ,hdp +"mybackup.ics" ); 214 addItemString("LastSaveFile", &mLastSaveFile ,hdp +"mybackup.ics" );
214 addItemString("LastLoadFile", &mLastLoadFile ,hdp +"mybackup.ics" ); 215 addItemString("LastLoadFile", &mLastLoadFile ,hdp +"mybackup.ics" );
215 addItemString("LastSyncedLocalFile", &mLastSyncedLocalFile ,hdp +"lastsync.ics" ); 216 addItemString("LastSyncedLocalFile", &mLastSyncedLocalFile ,hdp +"lastsync.ics" );
216 217
217 218
218 KPrefs::setCurrentGroup("Locale"); 219 KPrefs::setCurrentGroup("Locale");
219 addItemInt("PreferredLanguage",&mPreferredLanguage,0); 220 addItemInt("PreferredLanguage",&mPreferredLanguage,0);
220 addItemInt("PreferredTime",&mPreferredTime,0); 221 addItemInt("PreferredTime",&mPreferredTime,0);
221 addItemInt("PreferredDate",&mPreferredDate,0); 222 addItemInt("PreferredDate",&mPreferredDate,0);
222 addItemBool("WeekStartsOnSunday",&mWeekStartsOnSunday,false); 223 addItemBool("WeekStartsOnSunday",&mWeekStartsOnSunday,false);
223 addItemBool("QuickSavingWOUnicode",&mUseQuicksave,false); 224 addItemBool("QuickSavingWOUnicode",&mUseQuicksave,false);
224 addItemBool("ShortDateInViewer",&mShortDateInViewer,false); 225 addItemBool("ShortDateInViewer",&mShortDateInViewer,false);
225 addItemString("UserDateFormatLong", &mUserDateFormatLong, "%A %d %b %y"); 226 addItemString("UserDateFormatLong", &mUserDateFormatLong, "%A %d %b %y");
226 addItemString("UserDateFormatShort", &mUserDateFormatShort, "%aK %d.%m.%y"); 227 addItemString("UserDateFormatShort", &mUserDateFormatShort, "%aK %d.%m.%y");
227 228
228 229
229 KPrefs::setCurrentGroup("Colors"); 230 KPrefs::setCurrentGroup("Colors");
230 addItemColor("Holiday Color",&mHolidayColor,defaultHolidayColor); 231 addItemColor("Holiday Color",&mHolidayColor,defaultHolidayColor);
231 addItemColor("Highlight Color",&mHighlightColor,defaultHighlightColor); 232 addItemColor("Highlight Color",&mHighlightColor,defaultHighlightColor);
232 addItemColor("Event Color",&mEventColor,mDefaultCategoryColor); 233 addItemColor("Event Color",&mEventColor,mDefaultCategoryColor);
233 addItemColor("Agenda Background Color",&mAgendaBgColor,defaultAgendaBgColor); 234 addItemColor("Agenda Background Color",&mAgendaBgColor,defaultAgendaBgColor);
234 addItemColor("WorkingHours Color",&mWorkingHoursColor,defaultWorkingHoursColor); 235 addItemColor("WorkingHours Color",&mWorkingHoursColor,defaultWorkingHoursColor);
235 addItemColor("Todo due today Color",&mTodoDueTodayColor,defaultTodoDueTodayColor); 236 addItemColor("Todo due today Color",&mTodoDueTodayColor,defaultTodoDueTodayColor);
236 addItemColor("Todo overdue Color",&mTodoOverdueColor,defaultTodoOverdueColor); 237 addItemColor("Todo overdue Color",&mTodoOverdueColor,defaultTodoOverdueColor);
237 addItemColor("MonthViewEvenColor",&mMonthViewEvenColor,QColor( 160,160,255 )); 238 addItemColor("MonthViewEvenColor",&mMonthViewEvenColor,QColor( 160,160,255 ));
238 addItemColor("MonthViewOddColor",&mMonthViewOddColor,QColor( 160,255,160 )); 239 addItemColor("MonthViewOddColor",&mMonthViewOddColor,QColor( 160,255,160 ));
239 addItemColor("MonthViewHolidayColor",&mMonthViewHolidayColor,QColor( 255,160,160 )); 240 addItemColor("MonthViewHolidayColor",&mMonthViewHolidayColor,QColor( 255,160,160 ));
240 addItemBool("MonthViewUsesDayColors",&mMonthViewUsesDayColors,true); 241 addItemBool("MonthViewUsesDayColors",&mMonthViewUsesDayColors,true);
241 addItemBool("MonthViewSatSunTog",&mMonthViewSatSunTog,true); 242 addItemBool("MonthViewSatSunTog",&mMonthViewSatSunTog,true);
242 addItemBool("HightlightDateTimeEdit",&mHightlightDateTimeEdit,false); 243 addItemBool("HightlightDateTimeEdit",&mHightlightDateTimeEdit,false);
243 addItemColor("AppColor1",&mAppColor1,QColor( 130,170,255 )); 244 addItemColor("AppColor1",&mAppColor1,QColor( 130,170,255 ));
244 addItemColor("AppColor2",&mAppColor2,QColor( 174,216,255 )); 245 addItemColor("AppColor2",&mAppColor2,QColor( 174,216,255 ));
245 addItemBool("UseAppColors",&mUseAppColors,false); 246 addItemBool("UseAppColors",&mUseAppColors,false);
246 247
247 248
248 249
249 KPrefs::setCurrentGroup("Views"); 250 KPrefs::setCurrentGroup("Views");
250 addItemInt("Hour Size",&mHourSize,8); 251 addItemInt("Hour Size",&mHourSize,8);
251 addItemBool("Show Daily Recurrences",&mDailyRecur,true); 252 addItemBool("Show Daily Recurrences",&mDailyRecur,true);
252 addItemBool("Show Weekly Recurrences",&mWeeklyRecur,true); 253 addItemBool("Show Weekly Recurrences",&mWeeklyRecur,true);
253 addItemBool("Show Month Daily Recurrences",&mMonthDailyRecur,true); 254 addItemBool("Show Month Daily Recurrences",&mMonthDailyRecur,true);
254 addItemBool("Show Month Weekly Recurrences",&mMonthWeeklyRecur,true); 255 addItemBool("Show Month Weekly Recurrences",&mMonthWeeklyRecur,true);
255 addItemBool("ShowShortMonthName",&mMonthShowShort,false); 256 addItemBool("ShowShortMonthName",&mMonthShowShort,false);
256 addItemBool("ShowIconsInMonthCell",&mMonthShowIcons,true); 257 addItemBool("ShowIconsInMonthCell",&mMonthShowIcons,true);
257 addItemBool("Enable ToolTips",&mEnableToolTips,false); 258 addItemBool("Enable ToolTips",&mEnableToolTips,false);
258 addItemBool("Enable MonthView ScrollBars",&mEnableMonthScroll,false); 259 addItemBool("Enable MonthView ScrollBars",&mEnableMonthScroll,false);
259 addItemBool("Marcus Bains shows seconds",&mMarcusBainsShowSeconds,false); 260 addItemBool("Marcus Bains shows seconds",&mMarcusBainsShowSeconds,false);
260 addItemBool("Show Marcus Bains",&mMarcusBainsEnabled,true); 261 addItemBool("Show Marcus Bains",&mMarcusBainsEnabled,true);
261 addItemBool("EditOnDoubleClick",&mEditOnDoubleClick,true); 262 addItemBool("EditOnDoubleClick",&mEditOnDoubleClick,true);
262 addItemBool("ViewChangeHoldFullscreen",&mViewChangeHoldFullscreen,false); 263 addItemBool("ViewChangeHoldFullscreen",&mViewChangeHoldFullscreen,false);
263 addItemBool("ViewChangeHoldNonFullscreen",&mViewChangeHoldNonFullscreen,false); 264 addItemBool("ViewChangeHoldNonFullscreen",&mViewChangeHoldNonFullscreen,false);
264 addItemBool("CenterOnCurrentTime",&mCenterOnCurrentTime,false); 265 addItemBool("CenterOnCurrentTime",&mCenterOnCurrentTime,false);
265 addItemBool("SetTimeToDayStartAt",&mSetTimeToDayStartAt,true); 266 addItemBool("SetTimeToDayStartAt",&mSetTimeToDayStartAt,true);
266 addItemBool("HighlightCurrentDay",&mHighlightCurrentDay,true); 267 addItemBool("HighlightCurrentDay",&mHighlightCurrentDay,true);
267 addItemBool("WNViewShowsParents",&mWNViewShowsParents,true); 268 addItemBool("WNViewShowsParents",&mWNViewShowsParents,true);
268 addItemBool("WNViewShowLocation",&mWNViewShowLocation,false); 269 addItemBool("WNViewShowLocation",&mWNViewShowLocation,false);
269 addItemBool("UseHighlightLightColor",&mUseHighlightLightColor,false); 270 addItemBool("UseHighlightLightColor",&mUseHighlightLightColor,false);
270 addItemBool("ListViewMonthTimespan",&mListViewMonthTimespan,true); 271 addItemBool("ListViewMonthTimespan",&mListViewMonthTimespan,true);
271 addItemBool("TodoViewUsesCatColors",&mTodoViewUsesCatColors,false); 272 addItemBool("TodoViewUsesCatColors",&mTodoViewUsesCatColors,false);
272 addItemBool("TodoViewShowsPercentage",&mTodoViewShowsPercentage,false); 273 addItemBool("TodoViewShowsPercentage",&mTodoViewShowsPercentage,false);
273 addItemBool("TodoViewUsesSmallFont",&mTodoViewUsesSmallFont,false); 274 addItemBool("TodoViewUsesSmallFont",&mTodoViewUsesSmallFont,false);
274 addItemBool("TodoViewUsesForegroundColor",&mTodoViewUsesForegroundColor,false); 275 addItemBool("TodoViewUsesForegroundColor",&mTodoViewUsesForegroundColor,false);
275 addItemBool("MonthViewUsesForegroundColor",&mMonthViewUsesForegroundColor,false); 276 addItemBool("MonthViewUsesForegroundColor",&mMonthViewUsesForegroundColor,false);
276#ifdef DESKTOP_VERSION 277#ifdef DESKTOP_VERSION
277 addItemBool("UseInternalAlarmNotification",&mUseInternalAlarmNotification,true); 278 addItemBool("UseInternalAlarmNotification",&mUseInternalAlarmNotification,true);
278#else 279#else
279 addItemBool("UseInternalAlarmNotification",&mUseInternalAlarmNotification,false); 280 addItemBool("UseInternalAlarmNotification",&mUseInternalAlarmNotification,false);
280#endif 281#endif
281 addItemInt("Day Begins",&mDayBegins,7); 282 addItemInt("Day Begins",&mDayBegins,7);
282 addItemInt("Working Hours Start",&mWorkingHoursStart,8); 283 addItemInt("Working Hours Start",&mWorkingHoursStart,8);
283 addItemInt("Working Hours End",&mWorkingHoursEnd,17); 284 addItemInt("Working Hours End",&mWorkingHoursEnd,17);
284 addItemBool("Exclude Holidays",&mExcludeHolidays,true); 285 addItemBool("Exclude Holidays",&mExcludeHolidays,true);
285 addItemBool("Exclude Saturdays",&mExcludeSaturdays,true); 286 addItemBool("Exclude Saturdays",&mExcludeSaturdays,true);
286 287
287 addItemBool("Month View Uses Category Color",&mMonthViewUsesCategoryColor,false); 288 addItemBool("Month View Uses Category Color",&mMonthViewUsesCategoryColor,false);
288 addItemBool("Full View Month",&mFullViewMonth,true); 289 addItemBool("Full View Month",&mFullViewMonth,true);
289 addItemBool("Full View Todo",&mFullViewTodo,true); 290 addItemBool("Full View Todo",&mFullViewTodo,true);
290 addItemBool("Quick Todo",&mEnableQuickTodo,false); 291 addItemBool("Quick Todo",&mEnableQuickTodo,false);
291 292
292 addItemInt("Next X Days",&mNextXDays,3); 293 addItemInt("Next X Days",&mNextXDays,3);
293 294
294 KPrefs::setCurrentGroup("Printer"); 295 KPrefs::setCurrentGroup("Printer");
295 296
296 KPrefs::setCurrentGroup("Layout"); 297 KPrefs::setCurrentGroup("Layout");
297 298
298 addItemBool("CompactDialogs",&mCompactDialogs,false); 299 addItemBool("CompactDialogs",&mCompactDialogs,false);
299 addItemBool("VerticalScreen",&mVerticalScreen,true); 300 addItemBool("VerticalScreen",&mVerticalScreen,true);
300 301
301 KPrefs::setCurrentGroup("KOrganizer Plugins"); 302 KPrefs::setCurrentGroup("KOrganizer Plugins");
302 303
303 addItemStringList("SelectedPlugins",&mSelectedPlugins,"holidays"); 304 addItemStringList("SelectedPlugins",&mSelectedPlugins,"holidays");
304 305
305 KPrefs::setCurrentGroup("Group Scheduling"); 306 KPrefs::setCurrentGroup("Group Scheduling");
306 307
307 addItemInt("IMIPScheduler",&mIMIPScheduler,IMIPKMail); 308 addItemInt("IMIPScheduler",&mIMIPScheduler,IMIPKMail);
308 addItemInt("IMIPSend",&mIMIPSend,IMIPdirectsend); 309 addItemInt("IMIPSend",&mIMIPSend,IMIPdirectsend);
309 addItemStringList("AdditionalMails",&mAdditionalMails,""); 310 addItemStringList("AdditionalMails",&mAdditionalMails,"");
310 addItemInt("IMIP auto refresh",&mIMIPAutoRefresh,neverAuto); 311 addItemInt("IMIP auto refresh",&mIMIPAutoRefresh,neverAuto);
311 addItemInt("IMIP auto insert request",&mIMIPAutoInsertRequest,neverAuto); 312 addItemInt("IMIP auto insert request",&mIMIPAutoInsertRequest,neverAuto);
312 addItemInt("IMIP auto insert reply",&mIMIPAutoInsertReply,neverAuto); 313 addItemInt("IMIP auto insert reply",&mIMIPAutoInsertReply,neverAuto);
313 addItemInt("IMIP auto FreeBusy",&mIMIPAutoFreeBusy,neverAuto); 314 addItemInt("IMIP auto FreeBusy",&mIMIPAutoFreeBusy,neverAuto);
314 addItemInt("IMIP auto save FreeBusy",&mIMIPAutoFreeBusyReply,neverAuto); 315 addItemInt("IMIP auto save FreeBusy",&mIMIPAutoFreeBusyReply,neverAuto);
315 316
316 KPrefs::setCurrentGroup( "Editors" ); 317 KPrefs::setCurrentGroup( "Editors" );
317 318
318 addItemStringList( "EventTemplates", &mEventTemplates ); 319 addItemStringList( "EventTemplates", &mEventTemplates );
319 addItemStringList( "TodoTemplates", &mTodoTemplates ); 320 addItemStringList( "TodoTemplates", &mTodoTemplates );
320 321
321 addItemInt("DestinationPolicy",&mDestination,standardDestination); 322 addItemInt("DestinationPolicy",&mDestination,standardDestination);
322 323
323 324
324 325
325} 326}
326 327
327 328
328KOPrefs::~KOPrefs() 329KOPrefs::~KOPrefs()
329{ 330{
330 if (mInstance == this) 331 if (mInstance == this)
331 mInstance = insd.setObject(0); 332 mInstance = insd.setObject(0);
332 setLocaleDict( 0 ); 333 setLocaleDict( 0 );
333 if ( mLocaleDict ) 334 if ( mLocaleDict )
334 delete mLocaleDict; 335 delete mLocaleDict;
335 //qDebug("KOPrefs::~KOPrefs() "); 336 //qDebug("KOPrefs::~KOPrefs() ");
336} 337}
337 338
338 339
339KOPrefs *KOPrefs::instance() 340KOPrefs *KOPrefs::instance()
340{ 341{
341 if (!mInstance) { 342 if (!mInstance) {
342 mInstance = insd.setObject(new KOPrefs()); 343 mInstance = insd.setObject(new KOPrefs());
343 mInstance->readConfig(); 344 mInstance->readConfig();
344 } 345 }
345 346
346 return mInstance; 347 return mInstance;
347} 348}
348 349
349void KOPrefs::usrSetDefaults() 350void KOPrefs::usrSetDefaults()
350{ 351{
351 352
352} 353}
353 354
354void KOPrefs::fillMailDefaults() 355void KOPrefs::fillMailDefaults()
355{ 356{
356 if (mName.isEmpty()) mName = i18n("Anonymous"); 357 if (mName.isEmpty()) mName = i18n("Anonymous");
357 if (mEmail.isEmpty()) mEmail = i18n("nobody@nowhere"); 358 if (mEmail.isEmpty()) mEmail = i18n("nobody@nowhere");
358} 359}
359 360
360void KOPrefs::setTimeZoneIdDefault() 361void KOPrefs::setTimeZoneIdDefault()
361{ 362{
362 mTimeZoneId = i18n("+01:00 Europe/Oslo(CET)"); 363 mTimeZoneId = i18n("+01:00 Europe/Oslo(CET)");
363} 364}
364 365
365void KOPrefs::setCategoryDefaults() 366void KOPrefs::setCategoryDefaults()
366{ 367{
367 mCustomCategories.clear(); 368 mCustomCategories.clear();
368 mCustomCategories = getDefaultList(); 369 mCustomCategories = getDefaultList();
369 370
370 QStringList::Iterator it; 371 QStringList::Iterator it;
371 for (it = mCustomCategories.begin();it != mCustomCategories.end();++it ) { 372 for (it = mCustomCategories.begin();it != mCustomCategories.end();++it ) {
372 setCategoryColor(*it,mDefaultCategoryColor); 373 setCategoryColor(*it,mDefaultCategoryColor);
373 } 374 }
374} 375}
375 376
376QStringList KOPrefs::getDefaultList() 377QStringList KOPrefs::getDefaultList()
377{ 378{
378 QStringList retval ; 379 QStringList retval ;
379 retval << i18n("Anniversary") << i18n("Appointment") << i18n("Birthday") << i18n("Business") << i18n("Business Travel") << i18n("Cinema") << i18n("Customer") 380 retval << i18n("Anniversary") << i18n("Appointment") << i18n("Birthday") << i18n("Business") << i18n("Business Travel") << i18n("Cinema") << i18n("Customer")
380 << i18n("Break")<< i18n("Breakfast")<< i18n("Competition")<< i18n("Dinner") 381 << i18n("Break")<< i18n("Breakfast")<< i18n("Competition")<< i18n("Dinner")
381 << i18n("Education")<< i18n("Family") << i18n("Favorites") << i18n("Festival")<< i18n("Fishing")<< i18n("Flight") << i18n("Gifts") 382 << i18n("Education")<< i18n("Family") << i18n("Favorites") << i18n("Festival")<< i18n("Fishing")<< i18n("Flight") << i18n("Gifts")
382 << i18n("Holiday") << i18n("Holiday Cards")<< i18n("Hot Contacts") << i18n("Hiking") << i18n("Hunting") << i18n("Key Customer") << i18n("Kids") 383 << i18n("Holiday") << i18n("Holiday Cards")<< i18n("Hot Contacts") << i18n("Hiking") << i18n("Hunting") << i18n("Key Customer") << i18n("Kids")
383 << i18n("Lunch") << i18n("Meeting") << i18n("Miscellaneous") << i18n("Partner")<< i18n("Party") << i18n("Personal") << i18n("Personal Travel") 384 << i18n("Lunch") << i18n("Meeting") << i18n("Miscellaneous") << i18n("Partner")<< i18n("Party") << i18n("Personal") << i18n("Personal Travel")
384 << i18n("PHB") << i18n("Phone Calls") << i18n("Projects") << i18n("Recurring") << i18n("School") << i18n("Shopping") 385 << i18n("PHB") << i18n("Phone Calls") << i18n("Projects") << i18n("Recurring") << i18n("School") << i18n("Shopping")
385 << i18n("Speach") << i18n("Special Occasion") << i18n("Sports") << i18n("Talk") << i18n("Travel") << i18n("TV")<< i18n("University") 386 << i18n("Speach") << i18n("Special Occasion") << i18n("Sports") << i18n("Talk") << i18n("Travel") << i18n("TV")<< i18n("University")
386 << i18n("Vacation") << i18n("VIP") << i18n("SyncEvent") ; 387 << i18n("Vacation") << i18n("VIP") << i18n("SyncEvent") ;
387 retval.sort(); 388 retval.sort();
388 return retval; 389 return retval;
389} 390}
390 391
391void KOPrefs::usrReadConfig() 392void KOPrefs::usrReadConfig()
392{ 393{
394 mPreferredLanguage = KPimGlobalPrefs::instance()->mPreferredLanguage;
393 mLocaleDict = 0; 395 mLocaleDict = 0;
394 // pending LR fix translation 396 // pending LR fix translation
395 // qDebug("KOPrefs::usrReadConfig() fix translation "); 397 // qDebug("KOPrefs::usrReadConfig() fix translation ");
396 if ( mPreferredLanguage > 0 && mPreferredLanguage < 4 ) { 398 if ( mPreferredLanguage > 0 && mPreferredLanguage < 4 ) {
397 if ( mPreferredLanguage == 1 ) { 399 if ( mPreferredLanguage == 1 ) {
398 mLocaleDict = new QDict<QString>; 400 mLocaleDict = new QDict<QString>;
399 int i = 0; 401 int i = 0;
400 QString fw ( germanwords[i] [0]); 402 QString fw ( germanwords[i] [0]);
401 while ( !fw.isEmpty() ) { 403 while ( !fw.isEmpty() ) {
402 mLocaleDict->insert( fw, new QString (germanwords[i] [1] )); 404 mLocaleDict->insert( fw, new QString (germanwords[i] [1] ));
403 ++i; 405 ++i;
404 fw = germanwords[i] [0]; 406 fw = germanwords[i] [0];
405 } 407 }
406 408
407 setLocaleDict( mLocaleDict ); 409 setLocaleDict( mLocaleDict );
408 } else { 410 } else {
409 QString fileName ; 411 QString fileName ;
410 if ( mPreferredLanguage == 3 ) 412 if ( mPreferredLanguage == 3 )
411 fileName = MainWindow::resourcePath()+"usertranslation.txt"; 413 fileName = MainWindow::resourcePath()+"usertranslation.txt";
412 else if ( mPreferredLanguage == 2 ) 414 else if ( mPreferredLanguage == 2 )
413 fileName = MainWindow::resourcePath()+"frenchtranslation.txt"; 415 fileName = MainWindow::resourcePath()+"frenchtranslation.txt";
414 QFile file( fileName ); 416 QFile file( fileName );
415 if (file.open( IO_ReadOnly ) ) { 417 if (file.open( IO_ReadOnly ) ) {
416 QTextStream ts( &file ); 418 QTextStream ts( &file );
417 ts.setEncoding( QTextStream::Latin1 ); 419 ts.setEncoding( QTextStream::Latin1 );
418 //ts.setCodec( QTextCodec::latin1 ); 420 //ts.setCodec( QTextCodec::latin1 );
419 QString text = ts.read(); 421 QString text = ts.read();
420 file.close(); 422 file.close();
421 text.replace( QRegExp("\\\\n"), "\n" ); 423 text.replace( QRegExp("\\\\n"), "\n" );
422 QString line; 424 QString line;
423 QString we; 425 QString we;
424 QString wt; 426 QString wt;
425 int br = 0; 427 int br = 0;
426 int nbr; 428 int nbr;
427 nbr = text.find ( "},", br ); 429 nbr = text.find ( "},", br );
428 line = text.mid( br, nbr - br ); 430 line = text.mid( br, nbr - br );
429 br = nbr+1; 431 br = nbr+1;
430 int se, ee, st, et; 432 int se, ee, st, et;
431 mLocaleDict = new QDict<QString>; 433 mLocaleDict = new QDict<QString>;
432 QString end = "{ \"\",\"\" }"; 434 QString end = "{ \"\",\"\" }";
433 while ( (line != end) && (br > 1) ) { 435 while ( (line != end) && (br > 1) ) {
434 //qDebug("%d *%s* ", br, line.latin1()); 436 //qDebug("%d *%s* ", br, line.latin1());
435 se = line.find("\"")+1; 437 se = line.find("\"")+1;
436 et = line.findRev("\"",-1); 438 et = line.findRev("\"",-1);
437 ee = line.find("\",\""); 439 ee = line.find("\",\"");
438 st = ee+3; 440 st = ee+3;
439 we = line.mid( se, ee-se ); 441 we = line.mid( se, ee-se );
440 wt = line.mid( st, et-st ); 442 wt = line.mid( st, et-st );
441 //qDebug("*%s* *%s* ", we.latin1(), wt.latin1()); 443 //qDebug("*%s* *%s* ", we.latin1(), wt.latin1());
442 mLocaleDict->insert( we, new QString (wt) ); 444 mLocaleDict->insert( we, new QString (wt) );
443 nbr = text.find ( "}", br ); 445 nbr = text.find ( "}", br );
444 line = text.mid( br, nbr - br ); 446 line = text.mid( br, nbr - br );
445 br = nbr+1; 447 br = nbr+1;
446 } 448 }
447 //qDebug("end *%s* ", end.latin1()); 449 //qDebug("end *%s* ", end.latin1());
448 450
449 setLocaleDict( mLocaleDict ); 451 setLocaleDict( mLocaleDict );
450 } else { 452 } else {
451 qDebug("KO: Cannot find translation file %s",fileName.latin1() ); 453 qDebug("KO: Cannot find translation file %s",fileName.latin1() );
452 } 454 }
453 455
454 } 456 }
455 } 457 }
456 config()->setGroup("General"); 458 config()->setGroup("General");
457 459
458 mCustomCategories = config()->readListEntry("Custom Categories"); 460 mCustomCategories = config()->readListEntry("Custom Categories");
459 if ( KOPrefs::instance()->mLanguageChanged ) { 461 if ( KOPrefs::instance()->mLanguageChanged ) {
460 mLocationDefaults.clear(); 462 mLocationDefaults.clear();
461 mEventSummaryUser.clear(); 463 mEventSummaryUser.clear();
462 mTodoSummaryUser.clear(); 464 mTodoSummaryUser.clear();
463 } 465 }
464 if (mLocationDefaults.isEmpty()) { 466 if (mLocationDefaults.isEmpty()) {
465 mLocationDefaults << i18n("Home") << i18n("Office") << i18n("Library") << i18n("School") << i18n("Doctor") << i18n("Beach") 467 mLocationDefaults << i18n("Home") << i18n("Office") << i18n("Library") << i18n("School") << i18n("Doctor") << i18n("Beach")
466 << i18n("University") << i18n("Restaurant") << i18n("Bar") << i18n("Conference room") << i18n("Cinema") << i18n("Lake") << i18n("Kindergarten") 468 << i18n("University") << i18n("Restaurant") << i18n("Bar") << i18n("Conference room") << i18n("Cinema") << i18n("Lake") << i18n("Kindergarten")
467 << i18n("Germany") << i18n("Sweden") << i18n("Forest") << i18n("Desert") << i18n("Kitchen") ; 469 << i18n("Germany") << i18n("Sweden") << i18n("Forest") << i18n("Desert") << i18n("Kitchen") ;
468 // << i18n("") << i18n("") << i18n("") << i18n("") << i18n("") << i18n("") << i18n("") << i18n("") 470 // << i18n("") << i18n("") << i18n("") << i18n("") << i18n("") << i18n("") << i18n("") << i18n("")
469 mLocationDefaults.sort(); 471 mLocationDefaults.sort();
470 } 472 }
471 473
472 if (mEventSummaryUser.isEmpty()) { 474 if (mEventSummaryUser.isEmpty()) {
473 mEventSummaryUser = getDefaultList() ; 475 mEventSummaryUser = getDefaultList() ;
474 } 476 }
475 if (mTodoSummaryUser.isEmpty()) { 477 if (mTodoSummaryUser.isEmpty()) {
476 mTodoSummaryUser = getDefaultList() ; 478 mTodoSummaryUser = getDefaultList() ;
477 } 479 }
478 480
479 if (mCustomCategories.isEmpty()) setCategoryDefaults(); 481 if (mCustomCategories.isEmpty()) setCategoryDefaults();
480 482
481 config()->setGroup("Personal Settings"); 483 config()->setGroup("Personal Settings");
482 mName = config()->readEntry("user_name",""); 484 mName = config()->readEntry("user_name","");
483 mEmail = config()->readEntry("user_email",""); 485 mEmail = config()->readEntry("user_email","");
484 fillMailDefaults(); 486 fillMailDefaults();
485 487
486 config()->setGroup("Category Colors"); 488 config()->setGroup("Category Colors");
487 QStringList::Iterator it; 489 QStringList::Iterator it;
488 for (it = mCustomCategories.begin();it != mCustomCategories.end();++it ) { 490 for (it = mCustomCategories.begin();it != mCustomCategories.end();++it ) {
489 setCategoryColor(*it,config()->readColorEntry(*it,&mDefaultCategoryColor)); 491 setCategoryColor(*it,config()->readColorEntry(*it,&mDefaultCategoryColor));
490 492
491 } 493 }
492 494
493 if (mTimeZoneId.isEmpty()) { 495 if (mTimeZoneId.isEmpty()) {
494 setTimeZoneIdDefault(); 496 setTimeZoneIdDefault();
495 } 497 }
496 KPimPrefs::usrReadConfig(); 498 KPimPrefs::usrReadConfig();
497} 499}
498 500
499 501
500void KOPrefs::usrWriteConfig() 502void KOPrefs::usrWriteConfig()
501{ 503{
502 config()->setGroup("General"); 504 config()->setGroup("General");
503 config()->writeEntry("Custom Categories",mCustomCategories); 505 config()->writeEntry("Custom Categories",mCustomCategories);
504 506
505 config()->setGroup("Personal Settings"); 507 config()->setGroup("Personal Settings");
506 config()->writeEntry("user_name",mName); 508 config()->writeEntry("user_name",mName);
507 config()->writeEntry("user_email",mEmail); 509 config()->writeEntry("user_email",mEmail);
508 510
509 config()->setGroup("Category Colors"); 511 config()->setGroup("Category Colors");
510 QDictIterator<QColor> it(mCategoryColors); 512 QDictIterator<QColor> it(mCategoryColors);
511 while (it.current()) { 513 while (it.current()) {
512 config()->writeEntry(it.currentKey(),*(it.current())); 514 config()->writeEntry(it.currentKey(),*(it.current()));
513 ++it; 515 ++it;
514 } 516 }
515 517
516 518
517 KPimPrefs::usrWriteConfig(); 519 KPimPrefs::usrWriteConfig();
518} 520}
519 521
520void KOPrefs::setCategoryColor(QString cat,const QColor & color) 522void KOPrefs::setCategoryColor(QString cat,const QColor & color)
521{ 523{
522 mCategoryColors.replace(cat,new QColor(color)); 524 mCategoryColors.replace(cat,new QColor(color));
523} 525}
524 526
525QColor *KOPrefs::categoryColor(QString cat) 527QColor *KOPrefs::categoryColor(QString cat)
526{ 528{
527 QColor *color = 0; 529 QColor *color = 0;
528 530
529 if (!cat.isEmpty()) color = mCategoryColors[cat]; 531 if (!cat.isEmpty()) color = mCategoryColors[cat];
530 532
531 if (color) return color; 533 if (color) return color;
532 else return &mDefaultCategoryColor; 534 else return &mDefaultCategoryColor;
533} 535}
534 536
535void KOPrefs::setFullName(const QString &name) 537void KOPrefs::setFullName(const QString &name)
536{ 538{
537 mName = name; 539 mName = name;
538} 540}
539 541
540void KOPrefs::setEmail(const QString &email) 542void KOPrefs::setEmail(const QString &email)
541{ 543{
542 //qDebug(" KOPrefs::setEmai*********** %s",email.latin1() ); 544 //qDebug(" KOPrefs::setEmai*********** %s",email.latin1() );
543 mEmail = email; 545 mEmail = email;
544} 546}
545 547
546QString KOPrefs::fullName() 548QString KOPrefs::fullName()
547{ 549{
548 if (mEmailControlCenter) { 550 if (mEmailControlCenter) {
549 KEMailSettings settings; 551 KEMailSettings settings;
550 return settings.getSetting(KEMailSettings::RealName); 552 return settings.getSetting(KEMailSettings::RealName);
551 } else { 553 } else {
552 return mName; 554 return mName;
553 } 555 }
554} 556}
555 557
556QString KOPrefs::email() 558QString KOPrefs::email()
557{ 559{
558 if (mEmailControlCenter) { 560 if (mEmailControlCenter) {
559 KEMailSettings settings; 561 KEMailSettings settings;
560 return settings.getSetting(KEMailSettings::EmailAddress); 562 return settings.getSetting(KEMailSettings::EmailAddress);
561 } else { 563 } else {
562 return mEmail; 564 return mEmail;
563 } 565 }
564} 566}
565KConfig* KOPrefs::getConfig() 567KConfig* KOPrefs::getConfig()
566{ 568{
567 return config(); 569 return config();
568} 570}
diff --git a/korganizer/koprefsdialog.cpp b/korganizer/koprefsdialog.cpp
index 7dafcd8..b4b3b27 100644
--- a/korganizer/koprefsdialog.cpp
+++ b/korganizer/koprefsdialog.cpp
@@ -1,1621 +1,1637 @@
1/* 1/*
2 This file is part of KOrganizer. 2 This file is part of KOrganizer.
3 Copyright (c) 2000,2001 Cornelius Schumacher <schumacher@kde.org> 3 Copyright (c) 2000,2001 Cornelius Schumacher <schumacher@kde.org>
4 4
5 This program is free software; you can redistribute it and/or modify 5 This program is free software; you can redistribute it and/or modify
6 it under the terms of the GNU General Public License as published by 6 it under the terms of the GNU General Public License as published by
7 the Free Software Foundation; either version 2 of the License, or 7 the Free Software Foundation; either version 2 of the License, or
8 (at your option) any later version. 8 (at your option) any later version.
9 9
10 This program is distributed in the hope that it will be useful, 10 This program is distributed in the hope that it will be useful,
11 but WITHOUT ANY WARRANTY; without even the implied warranty of 11 but WITHOUT ANY WARRANTY; without even the implied warranty of
12 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13 GNU General Public License for more details. 13 GNU General Public License for more details.
14 14
15 You should have received a copy of the GNU General Public License 15 You should have received a copy of the GNU General Public License
16 along with this program; if not, write to the Free Software 16 along with this program; if not, write to the Free Software
17 Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. 17 Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
18 18
19 As a special exception, permission is given to link this program 19 As a special exception, permission is given to link this program
20 with any edition of Qt, and distribute the resulting executable, 20 with any edition of Qt, and distribute the resulting executable,
21 without including the source code for Qt in the source distribution. 21 without including the source code for Qt in the source distribution.
22*/ 22*/
23 23
24#include <qlayout.h> 24#include <qlayout.h>
25#include <qlabel.h> 25#include <qlabel.h>
26#include <qgroupbox.h> 26#include <qgroupbox.h>
27#include <qbuttongroup.h> 27#include <qbuttongroup.h>
28#include <qlineedit.h> 28#include <qlineedit.h>
29#include <qfont.h> 29#include <qfont.h>
30#include <qslider.h> 30#include <qslider.h>
31#include <qfile.h> 31#include <qfile.h>
32#include <qtextstream.h> 32#include <qtextstream.h>
33#include <qcombobox.h> 33#include <qcombobox.h>
34#include <qvbox.h> 34#include <qvbox.h>
35#include <qhbox.h> 35#include <qhbox.h>
36#include <qregexp.h> 36#include <qregexp.h>
37#include <qspinbox.h> 37#include <qspinbox.h>
38#include <qdatetime.h> 38#include <qdatetime.h>
39#include <qcheckbox.h> 39#include <qcheckbox.h>
40#include <qradiobutton.h> 40#include <qradiobutton.h>
41#include <qpushbutton.h> 41#include <qpushbutton.h>
42#include <qstrlist.h> 42#include <qstrlist.h>
43#include <qapplication.h> 43#include <qapplication.h>
44 44
45#include <kcolorbutton.h> 45#include <kcolorbutton.h>
46#include <kdebug.h> 46#include <kdebug.h>
47#include <klocale.h> 47#include <klocale.h>
48#include <kglobal.h> 48#include <kglobal.h>
49#include <kfontdialog.h> 49#include <kfontdialog.h>
50#include <kfiledialog.h> 50#include <kfiledialog.h>
51#include <kmessagebox.h> 51#include <kmessagebox.h>
52#include <kcolordialog.h> 52#include <kcolordialog.h>
53#include <kiconloader.h> 53#include <kiconloader.h>
54#include <kemailsettings.h> 54#include <kemailsettings.h>
55#include <kstandarddirs.h> 55#include <kstandarddirs.h>
56 56
57#include <kurlrequester.h> 57#include <kurlrequester.h>
58#include <klineedit.h> 58#include <klineedit.h>
59 59
60#if defined(USE_SOLARIS) 60#if defined(USE_SOLARIS)
61#include <sys/param.h> 61#include <sys/param.h>
62 62
63#define ZONEINFODIR "/usr/share/lib/zoneinfo" 63#define ZONEINFODIR "/usr/share/lib/zoneinfo"
64#define INITFILE "/etc/default/init" 64#define INITFILE "/etc/default/init"
65#endif 65#endif
66 66
67#include "koprefs.h" 67#include "koprefs.h"
68 68
69#include "koprefsdialog.h" 69#include "koprefsdialog.h"
70#include "kpimglobalprefs.h" 70#include "kpimglobalprefs.h"
71 71
72 72
73KOPrefsDialog::KOPrefsDialog(QWidget *parent, char *name, bool modal) : 73KOPrefsDialog::KOPrefsDialog(QWidget *parent, char *name, bool modal) :
74 KPrefsDialog(KOPrefs::instance(),parent,name,true) 74 KPrefsDialog(KOPrefs::instance(),parent,name,true)
75{ 75{
76 76
77 setCaption( i18n("Preferences - some settings need a restart (nr)")); 77 setCaption( i18n("Preferences - some settings need a restart (nr)"));
78 mCategoryDict.setAutoDelete(true); 78 mCategoryDict.setAutoDelete(true);
79 79
80 KGlobal::locale()->insertCatalogue("timezones"); 80 KGlobal::locale()->insertCatalogue("timezones");
81 81
82 setupGlobalTab(); 82 setupGlobalTab();
83 setupMainTab(); 83 setupMainTab();
84 setupLocaleTab(); 84 // setupLocaleTab();
85 setupTimeZoneTab(); 85 //setupTimeZoneTab();
86 setupTimeTab(); 86 setupTimeTab();
87 setupLocaleDateTab(); 87 //setupLocaleDateTab();
88 setupFontsTab(); 88 setupFontsTab();
89 setupColorsTab(); 89 setupColorsTab();
90 setupViewsTab(); 90 setupViewsTab();
91 //setupSyncTab(); 91 //setupSyncTab();
92 //setupSyncAlgTab(); 92 //setupSyncAlgTab();
93 //setupPrinterTab(); 93 //setupPrinterTab();
94 //setupGroupSchedulingTab(); 94 //setupGroupSchedulingTab();
95 //setupGroupAutomationTab(); 95 //setupGroupAutomationTab();
96} 96}
97 97
98 98
99KOPrefsDialog::~KOPrefsDialog() 99KOPrefsDialog::~KOPrefsDialog()
100{ 100{
101} 101}
102void KOPrefsDialog::setupGlobalTab() 102void KOPrefsDialog::setupGlobalTab()
103{ 103{
104 QFrame *topFrame = addPage(i18n("Global"),0,0); 104 QFrame *topFrame = addPage(i18n("Global"),0,0);
105 kdelibcfg = new KDEPIMConfigWidget( KPimGlobalPrefs::instance(), topFrame, "KCMKdeLibConfig" ); 105 kdelibcfg = new KDEPIMConfigWidget( KPimGlobalPrefs::instance(), topFrame, "KCMKdeLibConfig" );
106 QVBoxLayout *topLayout = new QVBoxLayout(topFrame); 106 QVBoxLayout *topLayout = new QVBoxLayout(topFrame);
107 topLayout->addWidget( kdelibcfg ); 107 topLayout->addWidget( kdelibcfg );
108 108
109 109
110} 110}
111void KOPrefsDialog::setupLocaleDateTab() 111void KOPrefsDialog::setupLocaleDateTab()
112{ 112{
113#if 0
113QFrame *topFrame = addPage(i18n("Date Format"),0,0); 114QFrame *topFrame = addPage(i18n("Date Format"),0,0);
114 QGridLayout *topLayout = new QGridLayout(topFrame,3,2); 115 QGridLayout *topLayout = new QGridLayout(topFrame,3,2);
115 topLayout->setSpacing(spacingHint()); 116 topLayout->setSpacing(spacingHint());
116 topLayout->setMargin(marginHint()); 117 topLayout->setMargin(marginHint());
117 int iii = 0; 118 int iii = 0;
118 119
119 120
120 KPrefsDialogWidRadios *syncPrefsGroup = 121 KPrefsDialogWidRadios *syncPrefsGroup =
121 addWidRadios(i18n("Date Format:"),&(KOPrefs::instance()->mPreferredDate),topFrame); 122 addWidRadios(i18n("Date Format:"),&(KOPrefs::instance()->mPreferredDate),topFrame);
122 QString format; 123 QString format;
123 if ( QApplication::desktop()->width() < 480 ) 124 if ( QApplication::desktop()->width() < 480 )
124 format = "(%d.%m.%Y)"; 125 format = "(%d.%m.%Y)";
125 else 126 else
126 format = "(%d.%m.%Y|%A %d %B %Y)"; 127 format = "(%d.%m.%Y|%A %d %B %Y)";
127 syncPrefsGroup->addRadio(i18n("24.03.2004 "+format)); 128 syncPrefsGroup->addRadio(i18n("24.03.2004 "+format));
128 if ( QApplication::desktop()->width() < 480 ) 129 if ( QApplication::desktop()->width() < 480 )
129 format = "(%m.%d.%Y)"; 130 format = "(%m.%d.%Y)";
130 else 131 else
131 format = "(%m.%d.%Y|%A %B %d %Y)"; 132 format = "(%m.%d.%Y|%A %B %d %Y)";
132 syncPrefsGroup->addRadio(i18n("03.24.2004 "+format)); 133 syncPrefsGroup->addRadio(i18n("03.24.2004 "+format));
133 if ( QApplication::desktop()->width() < 480 ) 134 if ( QApplication::desktop()->width() < 480 )
134 format = "(%Y-%m-%d)"; 135 format = "(%Y-%m-%d)";
135 else 136 else
136 format = "(%Y-%m-%d|%A %Y %B %d)"; 137 format = "(%Y-%m-%d|%A %Y %B %d)";
137 syncPrefsGroup->addRadio(i18n("2004-03-24 "+format)); 138 syncPrefsGroup->addRadio(i18n("2004-03-24 "+format));
138 syncPrefsGroup->addRadio(i18n("User defined")); 139 syncPrefsGroup->addRadio(i18n("User defined"));
139 topLayout->addMultiCellWidget( syncPrefsGroup->groupBox(),iii,iii,0,1); 140 topLayout->addMultiCellWidget( syncPrefsGroup->groupBox(),iii,iii,0,1);
140 ++iii; 141 ++iii;
141 ++iii; 142 ++iii;
142 QLabel * lab; 143 QLabel * lab;
143 mUserDateFormatLong = new QLineEdit(topFrame); 144 mUserDateFormatLong = new QLineEdit(topFrame);
144 lab = new QLabel(mUserDateFormatLong, i18n("User long date:"), topFrame); 145 lab = new QLabel(mUserDateFormatLong, i18n("User long date:"), topFrame);
145 topLayout->addWidget(lab ,iii,0); 146 topLayout->addWidget(lab ,iii,0);
146 topLayout->addWidget(mUserDateFormatLong,iii,1); 147 topLayout->addWidget(mUserDateFormatLong,iii,1);
147 ++iii; 148 ++iii;
148 mUserDateFormatShort = new QLineEdit(topFrame); 149 mUserDateFormatShort = new QLineEdit(topFrame);
149 lab = new QLabel(mUserDateFormatShort, i18n("User short date:"), topFrame); 150 lab = new QLabel(mUserDateFormatShort, i18n("User short date:"), topFrame);
150 topLayout->addWidget(lab ,iii,0); 151 topLayout->addWidget(lab ,iii,0);
151 topLayout->addWidget(mUserDateFormatShort,iii,1); 152 topLayout->addWidget(mUserDateFormatShort,iii,1);
152 ++iii; 153 ++iii;
153 lab = new QLabel( i18n("Monday 19 April 2004: %A %d %B %Y"), topFrame); 154 lab = new QLabel( i18n("Monday 19 April 2004: %A %d %B %Y"), topFrame);
154 topLayout->addMultiCellWidget(lab ,iii,iii,0,1); 155 topLayout->addMultiCellWidget(lab ,iii,iii,0,1);
155 ++iii; 156 ++iii;
156 lab = new QLabel( i18n("Mon 19.04.04: %a %d.%m.%y"), topFrame); 157 lab = new QLabel( i18n("Mon 19.04.04: %a %d.%m.%y"), topFrame);
157 topLayout->addMultiCellWidget(lab ,iii,iii,0,1); 158 topLayout->addMultiCellWidget(lab ,iii,iii,0,1);
158 ++iii; 159 ++iii;
159 lab = new QLabel( i18n("Mon, 19.Apr.04: %a, %d.%b.%y"), topFrame); 160 lab = new QLabel( i18n("Mon, 19.Apr.04: %a, %d.%b.%y"), topFrame);
160 topLayout->addMultiCellWidget(lab ,iii,iii,0,1); 161 topLayout->addMultiCellWidget(lab ,iii,iii,0,1);
161 ++iii; 162 ++iii;
163#endif
162 164
163} 165}
164 166
165void KOPrefsDialog::setupLocaleTab() 167void KOPrefsDialog::setupLocaleTab()
166{ 168{
169#if 0
167 QFrame *topFrame = addPage(i18n("Locale"),0,0); 170 QFrame *topFrame = addPage(i18n("Locale"),0,0);
168 QGridLayout *topLayout = new QGridLayout(topFrame,4,2); 171 QGridLayout *topLayout = new QGridLayout(topFrame,4,2);
169 topLayout->setSpacing(spacingHint()); 172 topLayout->setSpacing(spacingHint());
170 topLayout->setMargin(marginHint()); 173 topLayout->setMargin(marginHint());
171 int iii = 0; 174 int iii = 0;
172 KPrefsDialogWidRadios *syncPrefsGroup = 175 KPrefsDialogWidRadios *syncPrefsGroup =
173 addWidRadios(i18n("Language:(needs restart)"),&(KOPrefs::instance()->mPreferredLanguage),topFrame); 176 addWidRadios(i18n("Language:(needs restart)"),&(KOPrefs::instance()->mPreferredLanguage),topFrame);
174 syncPrefsGroup->addRadio(i18n("English")); 177 syncPrefsGroup->addRadio(i18n("English"));
175 syncPrefsGroup->addRadio(i18n("German")); 178 syncPrefsGroup->addRadio(i18n("German"));
176 syncPrefsGroup->addRadio(i18n("French")); 179 syncPrefsGroup->addRadio(i18n("French"));
177 syncPrefsGroup->addRadio(i18n("User defined (usertranslation.txt)")); 180 syncPrefsGroup->addRadio(i18n("User defined (usertranslation.txt)"));
178 if ( QApplication::desktop()->width() < 300 ) 181 if ( QApplication::desktop()->width() < 300 )
179 ;// syncPrefsGroup->groupBox()-> setOrientation (Qt::Vertical); 182 ;// syncPrefsGroup->groupBox()-> setOrientation (Qt::Vertical);
180 topLayout->addMultiCellWidget( syncPrefsGroup->groupBox(),iii,iii,0,1); 183 topLayout->addMultiCellWidget( syncPrefsGroup->groupBox(),iii,iii,0,1);
181 ++iii; 184 ++iii;
182 185
183 syncPrefsGroup = 186 syncPrefsGroup =
184 addWidRadios(i18n("Time Format(nr):"),&(KOPrefs::instance()->mPreferredTime),topFrame); 187 addWidRadios(i18n("Time Format(nr):"),&(KOPrefs::instance()->mPreferredTime),topFrame);
185 if ( QApplication::desktop()->width() > 300 ) 188 if ( QApplication::desktop()->width() > 300 )
186 syncPrefsGroup->groupBox()-> setOrientation (Qt::Vertical); 189 syncPrefsGroup->groupBox()-> setOrientation (Qt::Vertical);
187 syncPrefsGroup->addRadio(i18n("24:00")); 190 syncPrefsGroup->addRadio(i18n("24:00"));
188 syncPrefsGroup->addRadio(i18n("12:00am")); 191 syncPrefsGroup->addRadio(i18n("12:00am"));
189 syncPrefsGroup->groupBox()-> setOrientation (Qt::Vertical); 192 syncPrefsGroup->groupBox()-> setOrientation (Qt::Vertical);
190 topLayout->addMultiCellWidget( syncPrefsGroup->groupBox(),iii,iii,0,1); 193 topLayout->addMultiCellWidget( syncPrefsGroup->groupBox(),iii,iii,0,1);
191 ++iii; 194 ++iii;
192 KPrefsDialogWidBool *sb; 195 KPrefsDialogWidBool *sb;
193 if ( QApplication::desktop()->width() < 300 ) { 196 if ( QApplication::desktop()->width() < 300 ) {
194 sb = 197 sb =
195 addWidBool(i18n("Week starts on Sunday"), 198 addWidBool(i18n("Week starts on Sunday"),
196 &(KOPrefs::instance()->mWeekStartsOnSunday),topFrame); 199 &(KOPrefs::instance()->mWeekStartsOnSunday),topFrame);
197 topLayout->addMultiCellWidget(sb->checkBox(), iii,iii,0,1); 200 topLayout->addMultiCellWidget(sb->checkBox(), iii,iii,0,1);
198 ++iii; 201 ++iii;
199 sb = 202 sb =
200 addWidBool(i18n("Use short date in (WN/E) view"), 203 addWidBool(i18n("Use short date in (WN/E) view"),
201 &(KOPrefs::instance()->mShortDateInViewer),topFrame); 204 &(KOPrefs::instance()->mShortDateInViewer),topFrame);
202 topLayout->addMultiCellWidget(sb->checkBox(), iii,iii,0,1); 205 topLayout->addMultiCellWidget(sb->checkBox(), iii,iii,0,1);
203 } 206 }
204 else { 207 else {
205 QWidget * hb = new QWidget( topFrame ); 208 QWidget * hb = new QWidget( topFrame );
206 QHBoxLayout *hbLayout = new QHBoxLayout(hb); 209 QHBoxLayout *hbLayout = new QHBoxLayout(hb);
207 sb = 210 sb =
208 addWidBool(i18n("Week starts on Sunday"), 211 addWidBool(i18n("Week starts on Sunday"),
209 &(KOPrefs::instance()->mWeekStartsOnSunday),hb); 212 &(KOPrefs::instance()->mWeekStartsOnSunday),hb);
210 hbLayout->addWidget(sb->checkBox() ); 213 hbLayout->addWidget(sb->checkBox() );
211 sb = 214 sb =
212 addWidBool(i18n("Use short date in (WN/E) view"), 215 addWidBool(i18n("Use short date in (WN/E) view"),
213 &(KOPrefs::instance()->mShortDateInViewer),hb); 216 &(KOPrefs::instance()->mShortDateInViewer),hb);
214 hbLayout->addWidget(sb->checkBox() ); 217 hbLayout->addWidget(sb->checkBox() );
215 topLayout->addMultiCellWidget(hb, iii,iii,0,1); 218 topLayout->addMultiCellWidget(hb, iii,iii,0,1);
216 219
217 } 220 }
218 // KPrefsDialogWidBool *sb; //#ifndef DESKTOP_VERSION 221 // KPrefsDialogWidBool *sb; //#ifndef DESKTOP_VERSION
219#if 0 222#if 0
220 ++iii; 223 ++iii;
221 sb = 224 sb =
222 addWidBool(i18n("Quick load/save (w/o Unicode)"), 225 addWidBool(i18n("Quick load/save (w/o Unicode)"),
223 &(KOPrefs::instance()->mUseQuicksave),topFrame); 226 &(KOPrefs::instance()->mUseQuicksave),topFrame);
224 topLayout->addMultiCellWidget(sb->checkBox(), iii,iii,0,1); 227 topLayout->addMultiCellWidget(sb->checkBox(), iii,iii,0,1);
225#endif 228#endif
229#endif
226} 230}
227void KOPrefsDialog::showSyncPage() 231void KOPrefsDialog::showSyncPage()
228{ 232{
229 showPage ( 2 ) ; 233 showPage ( 2 ) ;
230 234
231} 235}
232void KOPrefsDialog::setupSyncAlgTab() 236void KOPrefsDialog::setupSyncAlgTab()
233{ 237{
234#if 0 238#if 0
235 QLabel * lab; 239 QLabel * lab;
236 QFrame *topFrame = addPage(i18n("Sync Prefs"),0,0); 240 QFrame *topFrame = addPage(i18n("Sync Prefs"),0,0);
237 mSetupSyncAlgTab = topFrame; 241 mSetupSyncAlgTab = topFrame;
238 QGridLayout *topLayout = new QGridLayout(topFrame,6,2); 242 QGridLayout *topLayout = new QGridLayout(topFrame,6,2);
239 topLayout->setSpacing(spacingHint()); 243 topLayout->setSpacing(spacingHint());
240 topLayout->setMargin(marginHint()); 244 topLayout->setMargin(marginHint());
241 int iii = 0; 245 int iii = 0;
242 246
243 KPrefsDialogWidBool *sb = 247 KPrefsDialogWidBool *sb =
244 addWidBool(i18n("Ask for preferences before syncing"), 248 addWidBool(i18n("Ask for preferences before syncing"),
245 &(KOPrefs::instance()->mAskForPreferences),topFrame); 249 &(KOPrefs::instance()->mAskForPreferences),topFrame);
246 topLayout->addMultiCellWidget(sb->checkBox(), iii,iii,0,1); 250 topLayout->addMultiCellWidget(sb->checkBox(), iii,iii,0,1);
247 251
248 ++iii; 252 ++iii;
249 253
250 KPrefsDialogWidRadios *syncPrefsGroup = 254 KPrefsDialogWidRadios *syncPrefsGroup =
251 addWidRadios(i18n("Sync preferences:"),&(KOPrefs::instance()->mSyncAlgoPrefs), 255 addWidRadios(i18n("Sync preferences:"),&(KOPrefs::instance()->mSyncAlgoPrefs),
252 topFrame); 256 topFrame);
253 syncPrefsGroup->addRadio(i18n("Take local entry on conflict")); 257 syncPrefsGroup->addRadio(i18n("Take local entry on conflict"));
254 syncPrefsGroup->addRadio(i18n("Take remote entry on conflict")); 258 syncPrefsGroup->addRadio(i18n("Take remote entry on conflict"));
255 syncPrefsGroup->addRadio(i18n("Take newest entry on conflict")); 259 syncPrefsGroup->addRadio(i18n("Take newest entry on conflict"));
256 syncPrefsGroup->addRadio(i18n("Ask for every entry on conflict")); 260 syncPrefsGroup->addRadio(i18n("Ask for every entry on conflict"));
257 syncPrefsGroup->addRadio(i18n("Force take local entry always")); 261 syncPrefsGroup->addRadio(i18n("Force take local entry always"));
258 syncPrefsGroup->addRadio(i18n("Force take remote entry always")); 262 syncPrefsGroup->addRadio(i18n("Force take remote entry always"));
259 topLayout->addMultiCellWidget( syncPrefsGroup->groupBox(),iii,iii,0,1); 263 topLayout->addMultiCellWidget( syncPrefsGroup->groupBox(),iii,iii,0,1);
260 ++iii; 264 ++iii;
261 sb = 265 sb =
262 addWidBool(i18n("Show summary after syncing"), 266 addWidBool(i18n("Show summary after syncing"),
263 &(KOPrefs::instance()->mShowSyncSummary),topFrame); 267 &(KOPrefs::instance()->mShowSyncSummary),topFrame);
264 topLayout->addMultiCellWidget(sb->checkBox(), iii,iii,0,1); 268 topLayout->addMultiCellWidget(sb->checkBox(), iii,iii,0,1);
265 269
266 ++iii; 270 ++iii;
267#endif 271#endif
268 272
269 273
270 274
271} 275}
272 276
273 277
274void KOPrefsDialog::setupSyncTab() 278void KOPrefsDialog::setupSyncTab()
275{ 279{
276#if 0 280#if 0
277 QLabel * lab; 281 QLabel * lab;
278 QFrame *topFrame = addPage(i18n("Sync Network"),0,0); 282 QFrame *topFrame = addPage(i18n("Sync Network"),0,0);
279 QGridLayout *topLayout = new QGridLayout(topFrame,6,2); 283 QGridLayout *topLayout = new QGridLayout(topFrame,6,2);
280 topLayout->setSpacing(spacingHint()); 284 topLayout->setSpacing(spacingHint());
281 topLayout->setMargin(marginHint()); 285 topLayout->setMargin(marginHint());
282 lab = new QLabel(i18n("Remote syncing (via ssh/scp)\nnetwork settings "), topFrame); 286 lab = new QLabel(i18n("Remote syncing (via ssh/scp)\nnetwork settings "), topFrame);
283 int iii = 0; 287 int iii = 0;
284 topLayout->addMultiCellWidget(lab , iii,iii,0,1); 288 topLayout->addMultiCellWidget(lab , iii,iii,0,1);
285 ++iii; 289 ++iii;
286 290
287 mRemoteIPEdit = new QLineEdit(topFrame); 291 mRemoteIPEdit = new QLineEdit(topFrame);
288 lab = new QLabel(mRemoteIPEdit, i18n("Remote IP:"), topFrame); 292 lab = new QLabel(mRemoteIPEdit, i18n("Remote IP:"), topFrame);
289 topLayout->addWidget(lab ,iii,0); 293 topLayout->addWidget(lab ,iii,0);
290 topLayout->addWidget(mRemoteIPEdit,iii,1); 294 topLayout->addWidget(mRemoteIPEdit,iii,1);
291 ++iii; 295 ++iii;
292 mRemoteUser = new QLineEdit(topFrame); 296 mRemoteUser = new QLineEdit(topFrame);
293 lab = new QLabel(mRemoteUser, i18n("Remote user:"), topFrame); 297 lab = new QLabel(mRemoteUser, i18n("Remote user:"), topFrame);
294 topLayout->addWidget(lab ,iii,0); 298 topLayout->addWidget(lab ,iii,0);
295 topLayout->addWidget(mRemoteUser, iii,1); 299 topLayout->addWidget(mRemoteUser, iii,1);
296 ++iii; 300 ++iii;
297 301
298 mRemoteFile = new QLineEdit(topFrame); 302 mRemoteFile = new QLineEdit(topFrame);
299 lab = new QLabel(mRemoteFile, i18n("Remote file:"), topFrame); 303 lab = new QLabel(mRemoteFile, i18n("Remote file:"), topFrame);
300 topLayout->addWidget(lab ,iii,0); 304 topLayout->addWidget(lab ,iii,0);
301 topLayout->addWidget(mRemoteFile,iii,1); 305 topLayout->addWidget(mRemoteFile,iii,1);
302 ++iii; 306 ++iii;
303 307
304 mLocalTempFile = new QLineEdit(topFrame); 308 mLocalTempFile = new QLineEdit(topFrame);
305 lab = new QLabel(mLocalTempFile, i18n("Local temp file:"), topFrame); 309 lab = new QLabel(mLocalTempFile, i18n("Local temp file:"), topFrame);
306 topLayout->addWidget(lab ,iii,0); 310 topLayout->addWidget(lab ,iii,0);
307 topLayout->addWidget(mLocalTempFile,iii,1); 311 topLayout->addWidget(mLocalTempFile,iii,1);
308 ++iii; 312 ++iii;
309 313
310 KPrefsDialogWidBool *wb = 314 KPrefsDialogWidBool *wb =
311 addWidBool(i18n("Write back synced file"), 315 addWidBool(i18n("Write back synced file"),
312 &(KOPrefs::instance()->mWriteBackFile),topFrame); 316 &(KOPrefs::instance()->mWriteBackFile),topFrame);
313 topLayout->addMultiCellWidget(wb->checkBox(), iii,iii,0,1); 317 topLayout->addMultiCellWidget(wb->checkBox(), iii,iii,0,1);
314 ++iii; 318 ++iii;
315 wb = 319 wb =
316 addWidBool(i18n("Write back existing entries only"), 320 addWidBool(i18n("Write back existing entries only"),
317 &(KOPrefs::instance()->mWriteBackExistingOnly),topFrame); 321 &(KOPrefs::instance()->mWriteBackExistingOnly),topFrame);
318 topLayout->addMultiCellWidget(wb->checkBox(), iii,iii,0,1); 322 topLayout->addMultiCellWidget(wb->checkBox(), iii,iii,0,1);
319 ++iii; 323 ++iii;
320 324
321#endif 325#endif
322} 326}
323 327
324void KOPrefsDialog::setupMainTab() 328void KOPrefsDialog::setupMainTab()
325{ 329{
326 QFrame *topFrame = addPage(i18n("General"),0,0); 330 QFrame *topFrame = addPage(i18n("General"),0,0);
327 // DesktopIcon("identity",KIcon::SizeMedium)); 331 // DesktopIcon("identity",KIcon::SizeMedium));
328 332
329 QGridLayout *topLayout = new QGridLayout(topFrame,6,2); 333 QGridLayout *topLayout = new QGridLayout(topFrame,6,2);
330 topLayout->setSpacing(spacingHint()); 334 topLayout->setSpacing(spacingHint());
331 topLayout->setMargin(marginHint()); 335 topLayout->setMargin(marginHint());
332 336
333 // KPrefsDialogWidBool *emailControlCenter = 337 // KPrefsDialogWidBool *emailControlCenter =
334// addWidBool(i18n("&Use email settings from Control Center"), 338// addWidBool(i18n("&Use email settings from Control Center"),
335// &(KOPrefs::instance()->mEmailControlCenter),topFrame); 339// &(KOPrefs::instance()->mEmailControlCenter),topFrame);
336// topLayout->addMultiCellWidget(emailControlCenter->checkBox(),0,0,0,1); 340// topLayout->addMultiCellWidget(emailControlCenter->checkBox(),0,0,0,1);
337 // connect(emailControlCenter->checkBox(),SIGNAL(toggled(bool)), 341 // connect(emailControlCenter->checkBox(),SIGNAL(toggled(bool)),
338 // SLOT(toggleEmailSettings(bool))); 342 // SLOT(toggleEmailSettings(bool)));
339 343
340 mNameEdit = new QLineEdit(topFrame); 344 mNameEdit = new QLineEdit(topFrame);
341 mNameLabel = new QLabel(mNameEdit, i18n("Full &name:"), topFrame); 345 mNameLabel = new QLabel(mNameEdit, i18n("Full &name:"), topFrame);
342 topLayout->addWidget(mNameLabel,0,0); 346 topLayout->addWidget(mNameLabel,0,0);
343 topLayout->addWidget(mNameEdit,0,1); 347 topLayout->addWidget(mNameEdit,0,1);
344 348
345 mEmailEdit = new QLineEdit(topFrame); 349 mEmailEdit = new QLineEdit(topFrame);
346 mEmailLabel = new QLabel(mEmailEdit, i18n("E&mail address:"),topFrame); 350 mEmailLabel = new QLabel(mEmailEdit, i18n("E&mail address:"),topFrame);
347 topLayout->addWidget(mEmailLabel,1,0); 351 topLayout->addWidget(mEmailLabel,1,0);
348 topLayout->addWidget(mEmailEdit,1,1); 352 topLayout->addWidget(mEmailEdit,1,1);
349 KPrefsDialogWidBool *wb; 353 KPrefsDialogWidBool *wb;
350 QHBox *dummy; 354 QHBox *dummy;
351 if ( QApplication::desktop()->width() > 480 ) { 355 if ( QApplication::desktop()->width() > 480 ) {
352 dummy = new QHBox(topFrame); 356 dummy = new QHBox(topFrame);
353 } else { 357 } else {
354 dummy = new QVBox(topFrame); 358 dummy = new QVBox(topFrame);
355 } 359 }
356 360
357 topLayout->addMultiCellWidget(dummy, 2,2,0,1); 361 topLayout->addMultiCellWidget(dummy, 2,2,0,1);
358 addWidBool(i18n("Full menu bar(nr)"), 362 addWidBool(i18n("Full menu bar(nr)"),
359 &(KOPrefs::instance()->mShowFullMenu),dummy); 363 &(KOPrefs::instance()->mShowFullMenu),dummy);
360 364
361 365
362 addWidBool(i18n("Mini icons in toolbar(nr)"), 366 addWidBool(i18n("Mini icons in toolbar(nr)"),
363 &(KOPrefs::instance()->mToolBarMiniIcons),dummy); 367 &(KOPrefs::instance()->mToolBarMiniIcons),dummy);
364 368
365 369
366 dummy = new QHBox(topFrame); 370 dummy = new QHBox(topFrame);
367 new QLabel(i18n("Days in What's Next:"),dummy); 371 new QLabel(i18n("Days in What's Next:"),dummy);
368 mWhatsNextSpin = new QSpinBox(1,14,1,dummy); 372 mWhatsNextSpin = new QSpinBox(1,14,1,dummy);
369 373
370 topLayout->addMultiCellWidget(dummy,3,3,0,1); 374 topLayout->addMultiCellWidget(dummy,3,3,0,1);
371 375
372 376
373 377
374 dummy = new QHBox(topFrame); 378 dummy = new QHBox(topFrame);
375 new QLabel(i18n("Days in Next-X-Days:"),dummy); 379 new QLabel(i18n("Days in Next-X-Days:"),dummy);
376 mNextXDaysSpin = new QSpinBox(2,14,1,dummy); 380 mNextXDaysSpin = new QSpinBox(2,14,1,dummy);
377 381
378 topLayout->addMultiCellWidget(dummy,4,4,0,1); 382 topLayout->addMultiCellWidget(dummy,4,4,0,1);
379 383
380 QHBox *prioBox = new QHBox(topFrame); 384 QHBox *prioBox = new QHBox(topFrame);
381 // intervalBox->setSpacing(spacingHint()); 385 // intervalBox->setSpacing(spacingHint());
382 topLayout->addMultiCellWidget(prioBox,5,5,0,1); 386 topLayout->addMultiCellWidget(prioBox,5,5,0,1);
383 QString messa = i18n("Show topmost todo prios in What's Next:"); 387 QString messa = i18n("Show topmost todo prios in What's Next:");
384 388
385 if ( QApplication::desktop()->width() < 300 ) 389 if ( QApplication::desktop()->width() < 300 )
386 messa = i18n("Show topmost todo prios in What's N.:"); 390 messa = i18n("Show topmost todo prios in What's N.:");
387 QLabel *prioLabel = new QLabel(messa, prioBox); 391 QLabel *prioLabel = new QLabel(messa, prioBox);
388 mPrioSpin = new QSpinBox(0,5,1,prioBox); 392 mPrioSpin = new QSpinBox(0,5,1,prioBox);
389 if ( QApplication::desktop()->width() < 300 ) 393 if ( QApplication::desktop()->width() < 300 )
390 mPrioSpin->setFixedWidth( 40 ); 394 mPrioSpin->setFixedWidth( 40 );
391 395
392 // KPrefsDialogWidBool *bcc = 396 // KPrefsDialogWidBool *bcc =
393// addWidBool(i18n("Send copy to owner when mailing events"), 397// addWidBool(i18n("Send copy to owner when mailing events"),
394// &(KOPrefs::instance()->mBcc),topFrame); 398// &(KOPrefs::instance()->mBcc),topFrame);
395// topLayout->addMultiCellWidget(bcc->checkBox(),4,4,0,1); 399// topLayout->addMultiCellWidget(bcc->checkBox(),4,4,0,1);
396 400
397 401
398 // QGroupBox *autoSaveGroup = new QGroupBox(1,Horizontal,i18n("Auto-Save"), topFrame); 402 // QGroupBox *autoSaveGroup = new QGroupBox(1,Horizontal,i18n("Auto-Save"), topFrame);
399 //topLayout->addMultiCellWidget(autoSaveGroup,6,6,0,1); 403 //topLayout->addMultiCellWidget(autoSaveGroup,6,6,0,1);
400 404
401 // addWidBool(i18n("Enable automatic saving of calendar"), 405 // addWidBool(i18n("Enable automatic saving of calendar"),
402 // &(KOPrefs::instance()->mAutoSave),autoSaveGroup); 406 // &(KOPrefs::instance()->mAutoSave),autoSaveGroup);
403 407
404 QHBox *intervalBox = new QHBox(topFrame); 408 QHBox *intervalBox = new QHBox(topFrame);
405 // intervalBox->setSpacing(spacingHint()); 409 // intervalBox->setSpacing(spacingHint());
406 topLayout->addMultiCellWidget(intervalBox,6,6,0,1); 410 topLayout->addMultiCellWidget(intervalBox,6,6,0,1);
407 QLabel *autoSaveIntervalLabel = new QLabel(i18n("Auto save delay in minutes:"),intervalBox); 411 QLabel *autoSaveIntervalLabel = new QLabel(i18n("Auto save delay in minutes:"),intervalBox);
408 mAutoSaveIntervalSpin = new QSpinBox(0,500,1,intervalBox); 412 mAutoSaveIntervalSpin = new QSpinBox(0,500,1,intervalBox);
409 autoSaveIntervalLabel->setBuddy(mAutoSaveIntervalSpin); 413 autoSaveIntervalLabel->setBuddy(mAutoSaveIntervalSpin);
410 /* 414 /*
411 QHBox * agendasize = new QHBox ( topFrame ); 415 QHBox * agendasize = new QHBox ( topFrame );
412 416
413 new QLabel (i18n("AllDayAgenda Height:"), agendasize ); 417 new QLabel (i18n("AllDayAgenda Height:"), agendasize );
414 418
415 419
416 mHourSizeSlider = new QSlider(24,47,1,24,Horizontal,agendasize); 420 mHourSizeSlider = new QSlider(24,47,1,24,Horizontal,agendasize);
417 topLayout->addMultiCellWidget(agendasize,7,7,0,1); 421 topLayout->addMultiCellWidget(agendasize,7,7,0,1);
418 */ 422 */
419 KPrefsDialogWidBool *verticalScreen = 423 KPrefsDialogWidBool *verticalScreen =
420 addWidBool(i18n("Show vertical screen (Needs restart)"), 424 addWidBool(i18n("Show vertical screen (Needs restart)"),
421 &(KOPrefs::instance()->mVerticalScreen),topFrame); 425 &(KOPrefs::instance()->mVerticalScreen),topFrame);
422 //topLayout->addWidget(verticalScreen->checkBox(),ii++,0); 426 //topLayout->addWidget(verticalScreen->checkBox(),ii++,0);
423 topLayout->addMultiCellWidget(verticalScreen->checkBox(),7,7,0,1); 427 topLayout->addMultiCellWidget(verticalScreen->checkBox(),7,7,0,1);
424 428
425 KPrefsDialogWidBool *ask = 429 KPrefsDialogWidBool *ask =
426 addWidBool(i18n("Ask for quit when closing KO/Pi"), 430 addWidBool(i18n("Ask for quit when closing KO/Pi"),
427 &(KOPrefs::instance()->mAskForQuit),topFrame); 431 &(KOPrefs::instance()->mAskForQuit),topFrame);
428 topLayout->addMultiCellWidget(ask->checkBox(),8,8,0,1); 432 topLayout->addMultiCellWidget(ask->checkBox(),8,8,0,1);
429 433
430 434
431 /* 435 /*
432 KPrefsDialogWidBool *confirmCheck = 436 KPrefsDialogWidBool *confirmCheck =
433 addWidBool(i18n("Confirm &deletes"),&(KOPrefs::instance()->mConfirm), 437 addWidBool(i18n("Confirm &deletes"),&(KOPrefs::instance()->mConfirm),
434 topFrame); 438 topFrame);
435 topLayout->addMultiCellWidget(confirmCheck->checkBox(),7,7,0,1); 439 topLayout->addMultiCellWidget(confirmCheck->checkBox(),7,7,0,1);
436 440
437 441
438 mEnableGroupScheduling = 442 mEnableGroupScheduling =
439 addWidBool(i18n("Enable group scheduling"), 443 addWidBool(i18n("Enable group scheduling"),
440 &(KOPrefs::instance()->mEnableGroupScheduling),topFrame); 444 &(KOPrefs::instance()->mEnableGroupScheduling),topFrame);
441 topLayout->addWidget(mEnableGroupScheduling->checkBox(),8,0); 445 topLayout->addWidget(mEnableGroupScheduling->checkBox(),8,0);
442 connect(mEnableGroupScheduling->checkBox(),SIGNAL(clicked()), 446 connect(mEnableGroupScheduling->checkBox(),SIGNAL(clicked()),
443 SLOT(warningGroupScheduling())); 447 SLOT(warningGroupScheduling()));
444 448
445 mEnableProjectView = 449 mEnableProjectView =
446 addWidBool(i18n("Enable project view"), 450 addWidBool(i18n("Enable project view"),
447 &(KOPrefs::instance()->mEnableProjectView),topFrame); 451 &(KOPrefs::instance()->mEnableProjectView),topFrame);
448 topLayout->addWidget(mEnableProjectView->checkBox(),9,0); 452 topLayout->addWidget(mEnableProjectView->checkBox(),9,0);
449 connect(mEnableProjectView->checkBox(),SIGNAL(clicked()), 453 connect(mEnableProjectView->checkBox(),SIGNAL(clicked()),
450 SLOT(warningProjectView())); 454 SLOT(warningProjectView()));
451 455
452 // Can't be disabled anymore 456 // Can't be disabled anymore
453 mEnableGroupScheduling->checkBox()->hide(); 457 mEnableGroupScheduling->checkBox()->hide();
454 458
455 // Disable setting, because this feature now becomes stable 459 // Disable setting, because this feature now becomes stable
456 mEnableProjectView->checkBox()->hide(); 460 mEnableProjectView->checkBox()->hide();
457 461
458 KPrefsDialogWidRadios *defaultFormatGroup = 462 KPrefsDialogWidRadios *defaultFormatGroup =
459 addWidRadios(i18n("Default Calendar Format"), 463 addWidRadios(i18n("Default Calendar Format"),
460 &(KOPrefs::instance()->mDefaultFormat),topFrame); 464 &(KOPrefs::instance()->mDefaultFormat),topFrame);
461 defaultFormatGroup->addRadio(i18n("vCalendar")); 465 defaultFormatGroup->addRadio(i18n("vCalendar"));
462 defaultFormatGroup->addRadio(i18n("iCalendar")); 466 defaultFormatGroup->addRadio(i18n("iCalendar"));
463 467
464 topLayout->addMultiCellWidget(defaultFormatGroup->groupBox(),10,10,0,1); 468 topLayout->addMultiCellWidget(defaultFormatGroup->groupBox(),10,10,0,1);
465 469
466 // Default format unconditionally is iCalendar 470 // Default format unconditionally is iCalendar
467 defaultFormatGroup->groupBox()->hide(); 471 defaultFormatGroup->groupBox()->hide();
468 472
469 KPrefsDialogWidRadios *mailClientGroup = 473 KPrefsDialogWidRadios *mailClientGroup =
470 addWidRadios(i18n("Mail Client"),&(KOPrefs::instance()->mMailClient), 474 addWidRadios(i18n("Mail Client"),&(KOPrefs::instance()->mMailClient),
471 topFrame); 475 topFrame);
472 mailClientGroup->addRadio(i18n("KMail")); 476 mailClientGroup->addRadio(i18n("KMail"));
473 mailClientGroup->addRadio(i18n("Sendmail")); 477 mailClientGroup->addRadio(i18n("Sendmail"));
474 topLayout->addMultiCellWidget(mailClientGroup->groupBox(),11,11,0,1); 478 topLayout->addMultiCellWidget(mailClientGroup->groupBox(),11,11,0,1);
475 479
476 KPrefsDialogWidBool *htmlsave = 480 KPrefsDialogWidBool *htmlsave =
477 addWidBool(i18n("Export to HTML with every save"),&(KOPrefs::instance()->mHtmlWithSave), 481 addWidBool(i18n("Export to HTML with every save"),&(KOPrefs::instance()->mHtmlWithSave),
478 topFrame); 482 topFrame);
479 topLayout->addMultiCellWidget(htmlsave->checkBox(),12,12,0,1); 483 topLayout->addMultiCellWidget(htmlsave->checkBox(),12,12,0,1);
480 484
481 KPrefsDialogWidRadios *destinationGroup = 485 KPrefsDialogWidRadios *destinationGroup =
482 addWidRadios(i18n("New Events/Todos should"),&(KOPrefs::instance()->mDestination), 486 addWidRadios(i18n("New Events/Todos should"),&(KOPrefs::instance()->mDestination),
483 topFrame); 487 topFrame);
484 destinationGroup->addRadio(i18n("be added to the standard resource")); 488 destinationGroup->addRadio(i18n("be added to the standard resource"));
485 destinationGroup->addRadio(i18n("be asked which resource to use")); 489 destinationGroup->addRadio(i18n("be asked which resource to use"));
486 topLayout->addMultiCellWidget(destinationGroup->groupBox(),13,13,0,1); 490 topLayout->addMultiCellWidget(destinationGroup->groupBox(),13,13,0,1);
487 491
488 topLayout->setRowStretch(14,1); 492 topLayout->setRowStretch(14,1);
489 */ 493 */
490} 494}
491 495
492 496
493void KOPrefsDialog::setupTimeTab() 497void KOPrefsDialog::setupTimeTab()
494{ 498{
495 QFrame *topFrame = addPage(i18n("Time"),0,0); 499 QFrame *topFrame = addPage(i18n("Time"),0,0);
496 // DesktopIcon("clock",KIcon::SizeMedium)); 500 // DesktopIcon("clock",KIcon::SizeMedium));
497 501
498 QGridLayout *topLayout = new QGridLayout(topFrame,4,2); 502 QGridLayout *topLayout = new QGridLayout(topFrame,4,2);
499 topLayout->setSpacing(spacingHint()); 503 topLayout->setSpacing(spacingHint());
500 topLayout->setMargin(marginHint()); 504 topLayout->setMargin(marginHint());
501 505
502 QHBox *dummy = new QHBox(topFrame); 506 QHBox *dummy = new QHBox(topFrame);
503 KPrefsDialogWidTime *dayBegins = 507 KPrefsDialogWidTime *dayBegins =
504 addWidTime(i18n("Day begins at:"),&(KOPrefs::instance()->mDayBegins), 508 addWidTime(i18n("Day begins at:"),&(KOPrefs::instance()->mDayBegins),
505 dummy); 509 dummy);
506 //topLayout->addWidget(dayBegins->label(),2,0); 510 //topLayout->addWidget(dayBegins->label(),2,0);
507 511
508 //topLayout->addWidget(dayBegins->spinBox(),2,1); 512 //topLayout->addWidget(dayBegins->spinBox(),2,1);
509 topLayout->addMultiCellWidget(dummy,0,0,0,1); 513 topLayout->addMultiCellWidget(dummy,0,0,0,1);
510 514
511 topLayout->addWidget(new QLabel(i18n("Default appointment time:"), 515 topLayout->addWidget(new QLabel(i18n("Default appointment time:"),
512 topFrame),1,0); 516 topFrame),1,0);
513 mStartTimeSpin = new QSpinBox(0,23,1,topFrame); 517 mStartTimeSpin = new QSpinBox(0,23,1,topFrame);
514 mStartTimeSpin->setSuffix(":00"); 518 mStartTimeSpin->setSuffix(":00");
515 topLayout->addWidget(mStartTimeSpin,1,1); 519 topLayout->addWidget(mStartTimeSpin,1,1);
516 520
517 topLayout->addWidget(new QLabel(i18n("Def. duration of new app.:"), 521 topLayout->addWidget(new QLabel(i18n("Def. duration of new app.:"),
518 topFrame),2,0); 522 topFrame),2,0);
519 mDefaultDurationSpin = new QSpinBox(0,23,1,topFrame); 523 mDefaultDurationSpin = new QSpinBox(0,23,1,topFrame);
520 mDefaultDurationSpin->setSuffix(":00"); 524 mDefaultDurationSpin->setSuffix(":00");
521 topLayout->addWidget(mDefaultDurationSpin,2,1); 525 topLayout->addWidget(mDefaultDurationSpin,2,1);
522 526
523 QStringList alarmList; 527 QStringList alarmList;
524 alarmList << i18n("1 minute") << i18n("5 minutes") << i18n("10 minutes") 528 alarmList << i18n("1 minute") << i18n("5 minutes") << i18n("10 minutes")
525 << i18n("15 minutes") << i18n("30 minutes")<< i18n("1 hour")<< i18n("3 hours") << i18n("24 hours") ; 529 << i18n("15 minutes") << i18n("30 minutes")<< i18n("1 hour")<< i18n("3 hours") << i18n("24 hours") ;
526 topLayout->addWidget(new QLabel(i18n("Default alarm time:"),topFrame), 530 topLayout->addWidget(new QLabel(i18n("Default alarm time:"),topFrame),
527 3,0); 531 3,0);
528 mAlarmTimeCombo = new QComboBox(topFrame); 532 mAlarmTimeCombo = new QComboBox(topFrame);
529 mAlarmTimeCombo->insertStringList(alarmList); 533 mAlarmTimeCombo->insertStringList(alarmList);
530 topLayout->addWidget(mAlarmTimeCombo,3,1); 534 topLayout->addWidget(mAlarmTimeCombo,3,1);
531 535
532 536
533 QGroupBox *workingHoursGroup = new QGroupBox(1,Horizontal, 537 QGroupBox *workingHoursGroup = new QGroupBox(1,Horizontal,
534 i18n("Working Hours"), 538 i18n("Working Hours"),
535 topFrame); 539 topFrame);
536 topLayout->addMultiCellWidget(workingHoursGroup,4,4,0,1); 540 topLayout->addMultiCellWidget(workingHoursGroup,4,4,0,1);
537 workingHoursGroup->layout()->setSpacing( 0 ); 541 workingHoursGroup->layout()->setSpacing( 0 );
538 workingHoursGroup->layout()->setMargin( 4 ); 542 workingHoursGroup->layout()->setMargin( 4 );
539 QHBox *workStartBox = new QHBox(workingHoursGroup); 543 QHBox *workStartBox = new QHBox(workingHoursGroup);
540 // workStartBox->setMargin( 0 ); 544 // workStartBox->setMargin( 0 );
541 addWidTime(i18n("Daily starting hour:"), 545 addWidTime(i18n("Daily starting hour:"),
542 &(KOPrefs::instance()->mWorkingHoursStart),workStartBox); 546 &(KOPrefs::instance()->mWorkingHoursStart),workStartBox);
543 547
544 QHBox *workEndBox = new QHBox(workingHoursGroup); 548 QHBox *workEndBox = new QHBox(workingHoursGroup);
545 //workEndBox->setMargin( 0 ); 549 //workEndBox->setMargin( 0 );
546 addWidTime(i18n("Daily ending hour:"), 550 addWidTime(i18n("Daily ending hour:"),
547 &(KOPrefs::instance()->mWorkingHoursEnd),workEndBox); 551 &(KOPrefs::instance()->mWorkingHoursEnd),workEndBox);
548 QVBox *excludeBox = new QVBox(workingHoursGroup); 552 QVBox *excludeBox = new QVBox(workingHoursGroup);
549 //excludeBox->setMargin( 0 ); 553 //excludeBox->setMargin( 0 );
550 addWidBool(i18n("Exclude holidays"), 554 addWidBool(i18n("Exclude holidays"),
551 &(KOPrefs::instance()->mExcludeHolidays),excludeBox); 555 &(KOPrefs::instance()->mExcludeHolidays),excludeBox);
552 556
553 addWidBool(i18n("Exclude Saturdays"), 557 addWidBool(i18n("Exclude Saturdays"),
554 &(KOPrefs::instance()->mExcludeSaturdays),excludeBox); 558 &(KOPrefs::instance()->mExcludeSaturdays),excludeBox);
555 559
556// KPrefsDialogWidBool *marcusBainsShowSeconds = addWidBool(i18n("Show seconds on Marcus Bains line"), 560// KPrefsDialogWidBool *marcusBainsShowSeconds = addWidBool(i18n("Show seconds on Marcus Bains line"),
557 // &(KOPrefs::instance()->mMarcusBainsShowSeconds), 561 // &(KOPrefs::instance()->mMarcusBainsShowSeconds),
558 // topFrame); 562 // topFrame);
559// topLayout->addWidget(marcusBainsShowSeconds->checkBox(),5,0); 563// topLayout->addWidget(marcusBainsShowSeconds->checkBox(),5,0);
560 564
561 // topLayout->setRowStretch(6,1); 565 // topLayout->setRowStretch(6,1);
562} 566}
563 567
564 568
565void KOPrefsDialog::setupViewsTab() 569void KOPrefsDialog::setupViewsTab()
566{ 570{
567 571
568 QFrame *topFrame = addPage(i18n("Views"),0,0); 572 QFrame *topFrame = addPage(i18n("Views"),0,0);
569 // DesktopIcon("viewmag",KIcon::SizeMedium)); 573 // DesktopIcon("viewmag",KIcon::SizeMedium));
570 574
571 QGridLayout *topLayout = new QGridLayout(topFrame,6,1); 575 QGridLayout *topLayout = new QGridLayout(topFrame,6,1);
572 topLayout->setSpacing(spacingHint()); 576 topLayout->setSpacing(spacingHint());
573 topLayout->setMargin(marginHint()); 577 topLayout->setMargin(marginHint());
574 578
575// QBoxLayout *dayBeginsLayout = new QHBoxLayout; 579// QBoxLayout *dayBeginsLayout = new QHBoxLayout;
576// topLayout->addLayout(dayBeginsLayout,0,0); 580// topLayout->addLayout(dayBeginsLayout,0,0);
577 581
578// KPrefsDialogWidTime *dayBegins = 582// KPrefsDialogWidTime *dayBegins =
579// addWidTime(i18n("Day begins at:"),&(KOPrefs::instance()->mDayBegins), 583// addWidTime(i18n("Day begins at:"),&(KOPrefs::instance()->mDayBegins),
580// topFrame); 584// topFrame);
581// dayBeginsLayout->addWidget(dayBegins->label()); 585// dayBeginsLayout->addWidget(dayBegins->label());
582// dayBeginsLayout->addStretch(1); 586// dayBeginsLayout->addStretch(1);
583// dayBeginsLayout->addWidget(dayBegins->spinBox()); 587// dayBeginsLayout->addWidget(dayBegins->spinBox());
584 588
585// QBoxLayout *nextDaysLayout = new QHBoxLayout; 589// QBoxLayout *nextDaysLayout = new QHBoxLayout;
586// topLayout->addLayout(nextDaysLayout,1,0); 590// topLayout->addLayout(nextDaysLayout,1,0);
587// nextDaysLayout->addWidget(new QLabel(i18n("Days to show in Next-X-Days view:"),topFrame)); 591// nextDaysLayout->addWidget(new QLabel(i18n("Days to show in Next-X-Days view:"),topFrame));
588// mNextXDaysSpin = new QSpinBox(2,14,1,topFrame); 592// mNextXDaysSpin = new QSpinBox(2,14,1,topFrame);
589// nextDaysLayout->addStretch(1); 593// nextDaysLayout->addStretch(1);
590// nextDaysLayout->addWidget(mNextXDaysSpin); 594// nextDaysLayout->addWidget(mNextXDaysSpin);
591 595
592 596
593 int ii = 0; 597 int ii = 0;
594 KPrefsDialogWidBool *dummy = 598 KPrefsDialogWidBool *dummy =
595 addWidBool(i18n("Edit item on doubleclick (if not, show)"), 599 addWidBool(i18n("Edit item on doubleclick (if not, show)"),
596 &(KOPrefs::instance()->mEditOnDoubleClick),topFrame); 600 &(KOPrefs::instance()->mEditOnDoubleClick),topFrame);
597 topLayout->addWidget(dummy->checkBox(),ii++,0); 601 topLayout->addWidget(dummy->checkBox(),ii++,0);
598 602
599 dummy = 603 dummy =
600 addWidBool(i18n("Highlight current day in agenda"), 604 addWidBool(i18n("Highlight current day in agenda"),
601 &(KOPrefs::instance()->mHighlightCurrentDay),topFrame); 605 &(KOPrefs::instance()->mHighlightCurrentDay),topFrame);
602 topLayout->addWidget(dummy->checkBox(),ii++,0); 606 topLayout->addWidget(dummy->checkBox(),ii++,0);
603 607
604 dummy = 608 dummy =
605 addWidBool(i18n("Use light color for highlight current day"), 609 addWidBool(i18n("Use light color for highlight current day"),
606 &(KOPrefs::instance()->mUseHighlightLightColor),topFrame); 610 &(KOPrefs::instance()->mUseHighlightLightColor),topFrame);
607 topLayout->addWidget(dummy->checkBox(),ii++,0); 611 topLayout->addWidget(dummy->checkBox(),ii++,0);
608 612
609 KPrefsDialogWidBool *dailyRecur = 613 KPrefsDialogWidBool *dailyRecur =
610 addWidBool(i18n("Show events that recur daily in date nav."), 614 addWidBool(i18n("Show events that recur daily in date nav."),
611 &(KOPrefs::instance()->mDailyRecur),topFrame); 615 &(KOPrefs::instance()->mDailyRecur),topFrame);
612 topLayout->addWidget(dailyRecur->checkBox(),ii++,0); 616 topLayout->addWidget(dailyRecur->checkBox(),ii++,0);
613 617
614 KPrefsDialogWidBool *weeklyRecur = 618 KPrefsDialogWidBool *weeklyRecur =
615 addWidBool(i18n("Show ev. that recur weekly in date nav."), 619 addWidBool(i18n("Show ev. that recur weekly in date nav."),
616 &(KOPrefs::instance()->mWeeklyRecur),topFrame); 620 &(KOPrefs::instance()->mWeeklyRecur),topFrame);
617 topLayout->addWidget(weeklyRecur->checkBox(),ii++,0); 621 topLayout->addWidget(weeklyRecur->checkBox(),ii++,0);
618 if ( QApplication::desktop()->width() > 640 ) { 622 if ( QApplication::desktop()->width() > 640 ) {
619 623
620 KPrefsDialogWidBool *enableToolTips = 624 KPrefsDialogWidBool *enableToolTips =
621 addWidBool(i18n("Enable tooltips displaying summary of ev."), 625 addWidBool(i18n("Enable tooltips displaying summary of ev."),
622 &(KOPrefs::instance()->mEnableToolTips),topFrame); 626 &(KOPrefs::instance()->mEnableToolTips),topFrame);
623 topLayout->addWidget(enableToolTips->checkBox(),ii++,0); 627 topLayout->addWidget(enableToolTips->checkBox(),ii++,0);
624 628
625 } 629 }
626 KPrefsDialogWidBool *passwdk = 630
627 addWidBool(i18n("Show parent To-Do's in What's Next view"),
628 &(KOPrefs::instance()->mWNViewShowsParents),topFrame);
629 topLayout->addWidget(passwdk->checkBox(), ii++,0);
630
631 passwdk =
632 addWidBool(i18n("Show location in What's Next view"),
633 &(KOPrefs::instance()->mWNViewShowLocation),topFrame);
634 topLayout->addWidget(passwdk->checkBox(), ii++,0);
635
636 passwdk =
637 addWidBool(i18n("Show Sync Events in WN/Agenda view"),
638 &(KOPrefs::instance()->mShowSyncEvents),topFrame);
639 topLayout->addWidget(passwdk->checkBox(), ii++,0);
640
641
642 KPrefsDialogWidBool *marcusBainsEnabled = 631 KPrefsDialogWidBool *marcusBainsEnabled =
643 addWidBool(i18n("Show Marcus Bains line"), 632 addWidBool(i18n("Show Marcus Bains line"),
644 &(KOPrefs::instance()->mMarcusBainsEnabled),topFrame); 633 &(KOPrefs::instance()->mMarcusBainsEnabled),topFrame);
645 topLayout->addWidget(marcusBainsEnabled->checkBox(),ii++,0); 634 topLayout->addWidget(marcusBainsEnabled->checkBox(),ii++,0);
646 635
647 636
648 // topLayout->addWidget(hourSizeGroup,ii++,0); 637 // topLayout->addWidget(hourSizeGroup,ii++,0);
649 // topLayout->addMultiCellWidget(hourSizeGroup,ii,ii,0,0); 638 // topLayout->addMultiCellWidget(hourSizeGroup,ii,ii,0,0);
650 //topLayout->setRowStretch(11,1); 639 //topLayout->setRowStretch(11,1);
651 640
652 641
653 642
654 643
655 644
656 645
657 topFrame = addPage(i18n("ViewChange"),0,0); 646 topFrame = addPage(i18n("ViewChange"),0,0);
658 // DesktopIcon("viewmag",KIcon::SizeMedium)); 647 // DesktopIcon("viewmag",KIcon::SizeMedium));
659 648
660 topLayout = new QGridLayout(topFrame,6,1); 649 topLayout = new QGridLayout(topFrame,6,1);
661 topLayout->setSpacing(spacingHint()); 650 topLayout->setSpacing(spacingHint());
662 topLayout->setMargin(marginHint()); 651 topLayout->setMargin(marginHint());
663 ii = 0; 652 ii = 0;
664 653
665 654
666 dummy = 655 dummy =
667 addWidBool(i18n("Hold fullscreen on view change"), 656 addWidBool(i18n("Hold fullscreen on view change"),
668 &(KOPrefs::instance()->mViewChangeHoldFullscreen),topFrame); 657 &(KOPrefs::instance()->mViewChangeHoldFullscreen),topFrame);
669 topLayout->addWidget(dummy->checkBox(),ii++,0); 658 topLayout->addWidget(dummy->checkBox(),ii++,0);
670 659
671 dummy = 660 dummy =
672 addWidBool(i18n("Hold non-fullscreen on view change"), 661 addWidBool(i18n("Hold non-fullscreen on view change"),
673 &(KOPrefs::instance()->mViewChangeHoldNonFullscreen),topFrame); 662 &(KOPrefs::instance()->mViewChangeHoldNonFullscreen),topFrame);
674 topLayout->addWidget(dummy->checkBox(),ii++,0); 663 topLayout->addWidget(dummy->checkBox(),ii++,0);
675 664
676 665
677 KPrefsDialogWidBool *fullViewTodo = 666 KPrefsDialogWidBool *fullViewTodo =
678 addWidBool(i18n("Event list view uses full window"), 667 addWidBool(i18n("Event list view uses full window"),
679 &(KOPrefs::instance()->mFullViewTodo),topFrame); 668 &(KOPrefs::instance()->mFullViewTodo),topFrame);
680 topLayout->addWidget(fullViewTodo->checkBox(),ii++,0); 669 topLayout->addWidget(fullViewTodo->checkBox(),ii++,0);
681 670
682 KPrefsDialogWidBool *fullViewMonth = 671 KPrefsDialogWidBool *fullViewMonth =
683 addWidBool(i18n("Next days view uses full window"), 672 addWidBool(i18n("Next days view uses full window"),
684 &(KOPrefs::instance()->mFullViewMonth),topFrame); 673 &(KOPrefs::instance()->mFullViewMonth),topFrame);
685 topLayout->addWidget(fullViewMonth->checkBox(),ii++,0); 674 topLayout->addWidget(fullViewMonth->checkBox(),ii++,0);
686 675
687 dummy = 676 dummy =
688 addWidBool(i18n("Set agenda to DayBeginsAt on change"), 677 addWidBool(i18n("Set agenda to DayBeginsAt on change"),
689 &(KOPrefs::instance()->mSetTimeToDayStartAt),topFrame); 678 &(KOPrefs::instance()->mSetTimeToDayStartAt),topFrame);
690 topLayout->addWidget(dummy->checkBox(),ii++,0); 679 topLayout->addWidget(dummy->checkBox(),ii++,0);
691 680
692 dummy = 681 dummy =
693 addWidBool(i18n("Set agenda to current time on change"), 682 addWidBool(i18n("Set agenda to current time on change"),
694 &(KOPrefs::instance()->mCenterOnCurrentTime),topFrame); 683 &(KOPrefs::instance()->mCenterOnCurrentTime),topFrame);
695 topLayout->addWidget(dummy->checkBox(),ii++,0); 684 topLayout->addWidget(dummy->checkBox(),ii++,0);
696 685
697 dummy = 686 dummy =
698 addWidBool(i18n("Listview uses monthly timespan"), 687 addWidBool(i18n("Listview uses monthly timespan"),
699 &(KOPrefs::instance()->mListViewMonthTimespan),topFrame); 688 &(KOPrefs::instance()->mListViewMonthTimespan),topFrame);
700 topLayout->addWidget(dummy->checkBox(),ii++,0); 689 topLayout->addWidget(dummy->checkBox(),ii++,0);
701 dummy = 690 dummy =
702 addWidBool(i18n("Highlight selection in Time Edit"), 691 addWidBool(i18n("Highlight selection in Time Edit"),
703 &(KOPrefs::instance()->mHightlightDateTimeEdit),topFrame); 692 &(KOPrefs::instance()->mHightlightDateTimeEdit),topFrame);
704 topLayout->addWidget( dummy->checkBox(), ii++,0); 693 topLayout->addWidget( dummy->checkBox(), ii++,0);
705 694
706 695
707 696
708 697
709 698
710 topFrame = addPage(i18n("Month View"),0,0); 699 topFrame = addPage(i18n("Month View"),0,0);
711 // DesktopIcon("viewmag",KIcon::SizeMedium)); 700 // DesktopIcon("viewmag",KIcon::SizeMedium));
712 701
713 topLayout = new QGridLayout(topFrame,5,1); 702 topLayout = new QGridLayout(topFrame,5,1);
714 topLayout->setSpacing(spacingHint()); 703 topLayout->setSpacing(spacingHint());
715 topLayout->setMargin(marginHint()); 704 topLayout->setMargin(marginHint());
716 ii = 0; 705 ii = 0;
717 QLabel *lab; 706 QLabel *lab;
718 QHBox *habo = new QHBox( topFrame ); 707 QHBox *habo = new QHBox( topFrame );
719 if ( QApplication::desktop()->width() < 320 ) { 708 if ( QApplication::desktop()->width() < 320 ) {
720 lab = new QLabel ( i18n("Show events that recur "), topFrame ); 709 lab = new QLabel ( i18n("Show events that recur "), topFrame );
721 topLayout->addMultiCellWidget(lab,ii, ii,0,1); 710 topLayout->addMultiCellWidget(lab,ii, ii,0,1);
722 ii++; 711 ii++;
723 712
724 } else { 713 } else {
725 new QLabel ( i18n("Show events that recur "), habo ); 714 new QLabel ( i18n("Show events that recur "), habo );
726 715
727 } 716 }
728 dailyRecur = 717 dailyRecur =
729 addWidBool(i18n("daily"), 718 addWidBool(i18n("daily"),
730 &(KOPrefs::instance()->mMonthDailyRecur),habo); 719 &(KOPrefs::instance()->mMonthDailyRecur),habo);
731 // topLayout->addWidget(dailyRecur->checkBox(),ii++,0); 720 // topLayout->addWidget(dailyRecur->checkBox(),ii++,0);
732 721
733 weeklyRecur = 722 weeklyRecur =
734 addWidBool(i18n("weekly"), 723 addWidBool(i18n("weekly"),
735 &(KOPrefs::instance()->mMonthWeeklyRecur),habo); 724 &(KOPrefs::instance()->mMonthWeeklyRecur),habo);
736 topLayout->addMultiCellWidget(habo,ii, ii,0,1); 725 topLayout->addMultiCellWidget(habo,ii, ii,0,1);
737 ii++; 726 ii++;
738 727
739 728
740 habo = new QHBox( topFrame ); 729 habo = new QHBox( topFrame );
741 if ( QApplication::desktop()->width() < 320 ) { 730 if ( QApplication::desktop()->width() < 320 ) {
742 lab = new QLabel (i18n("Show in every cell ") , topFrame ); 731 lab = new QLabel (i18n("Show in every cell ") , topFrame );
743 topLayout->addMultiCellWidget(lab,ii, ii,0,1); 732 topLayout->addMultiCellWidget(lab,ii, ii,0,1);
744 ii++; 733 ii++;
745 734
746 } else { 735 } else {
747 new QLabel ( i18n("Show in every cell "), habo ); 736 new QLabel ( i18n("Show in every cell "), habo );
748 } 737 }
749 weeklyRecur = 738 weeklyRecur =
750 addWidBool(i18n("short month"), 739 addWidBool(i18n("short month"),
751 &(KOPrefs::instance()->mMonthShowShort),habo); 740 &(KOPrefs::instance()->mMonthShowShort),habo);
752 weeklyRecur = 741 weeklyRecur =
753 addWidBool(i18n("icons"), 742 addWidBool(i18n("icons"),
754 &(KOPrefs::instance()->mMonthShowIcons),habo); 743 &(KOPrefs::instance()->mMonthShowIcons),habo);
755 744
756 topLayout->addMultiCellWidget(habo,ii, ii,0,1); 745 topLayout->addMultiCellWidget(habo,ii, ii,0,1);
757 ii++; 746 ii++;
758#ifdef DESKTOP_VERSION 747#ifdef DESKTOP_VERSION
759 KPrefsDialogWidBool *enableMonthScroll = 748 KPrefsDialogWidBool *enableMonthScroll =
760 addWidBool(i18n("Enable scrollbars in month view cells"), 749 addWidBool(i18n("Enable scrollbars in month view cells"),
761 &(KOPrefs::instance()->mEnableMonthScroll),topFrame); 750 &(KOPrefs::instance()->mEnableMonthScroll),topFrame);
762 topLayout->addWidget(enableMonthScroll->checkBox(),ii++,0); 751 topLayout->addWidget(enableMonthScroll->checkBox(),ii++,0);
763#endif 752#endif
764 753
765 dummy = 754 dummy =
766 addWidBool(i18n("Show Sat/Sun together"), 755 addWidBool(i18n("Show Sat/Sun together"),
767 &(KOPrefs::instance()->mMonthViewSatSunTog),topFrame); 756 &(KOPrefs::instance()->mMonthViewSatSunTog),topFrame);
768 topLayout->addWidget(dummy->checkBox(),ii++,0); 757 topLayout->addWidget(dummy->checkBox(),ii++,0);
769 758
770 KPrefsDialogWidBool *coloredCategoriesInMonthView = 759 KPrefsDialogWidBool *coloredCategoriesInMonthView =
771 addWidBool(i18n("Month view uses category colors"), 760 addWidBool(i18n("Month view uses category colors"),
772 &(KOPrefs::instance()->mMonthViewUsesCategoryColor),topFrame); 761 &(KOPrefs::instance()->mMonthViewUsesCategoryColor),topFrame);
773 topLayout->addWidget(coloredCategoriesInMonthView->checkBox(),ii++,0); 762 topLayout->addWidget(coloredCategoriesInMonthView->checkBox(),ii++,0);
774 763
775 dummy = 764 dummy =
776 addWidBool(i18n("Categorie colors are applied to text"), 765 addWidBool(i18n("Categorie colors are applied to text"),
777 &(KOPrefs::instance()->mMonthViewUsesForegroundColor),topFrame); 766 &(KOPrefs::instance()->mMonthViewUsesForegroundColor),topFrame);
778 topLayout->addWidget(dummy->checkBox(),ii++,0); 767 topLayout->addWidget(dummy->checkBox(),ii++,0);
779 coloredCategoriesInMonthView = 768 coloredCategoriesInMonthView =
780 addWidBool(i18n("Month view uses day colors"), 769 addWidBool(i18n("Month view uses day colors"),
781 &(KOPrefs::instance()->mMonthViewUsesDayColors),topFrame); 770 &(KOPrefs::instance()->mMonthViewUsesDayColors),topFrame);
782 topLayout->addWidget(coloredCategoriesInMonthView->checkBox(),ii++,0); 771 topLayout->addWidget(coloredCategoriesInMonthView->checkBox(),ii++,0);
783 772
784 KPrefsDialogWidColor *holidayColor = 773 KPrefsDialogWidColor *holidayColor =
785 addWidColor(i18n("Day color odd months"), 774 addWidColor(i18n("Day color odd months"),
786 &(KOPrefs::instance()->mMonthViewOddColor),topFrame); 775 &(KOPrefs::instance()->mMonthViewOddColor),topFrame);
787 topLayout->addWidget(holidayColor->label(),ii,0); 776 topLayout->addWidget(holidayColor->label(),ii,0);
788 topLayout->addWidget(holidayColor->button(),ii++,1); 777 topLayout->addWidget(holidayColor->button(),ii++,1);
789 778
790 holidayColor = 779 holidayColor =
791 addWidColor(i18n("Day color even months"), 780 addWidColor(i18n("Day color even months"),
792 &(KOPrefs::instance()->mMonthViewEvenColor),topFrame); 781 &(KOPrefs::instance()->mMonthViewEvenColor),topFrame);
793 topLayout->addWidget(holidayColor->label(),ii,0); 782 topLayout->addWidget(holidayColor->label(),ii,0);
794 topLayout->addWidget(holidayColor->button(),ii++,1); 783 topLayout->addWidget(holidayColor->button(),ii++,1);
795 784
796 785
797 holidayColor = 786 holidayColor =
798 addWidColor(i18n("Color for Sundays + category \"Holiday\""), 787 addWidColor(i18n("Color for Sundays + category \"Holiday\""),
799 &(KOPrefs::instance()->mMonthViewHolidayColor),topFrame); 788 &(KOPrefs::instance()->mMonthViewHolidayColor),topFrame);
800 topLayout->addWidget(holidayColor->label(),ii,0); 789 topLayout->addWidget(holidayColor->label(),ii,0);
801 topLayout->addWidget(holidayColor->button(),ii++,1); 790 topLayout->addWidget(holidayColor->button(),ii++,1);
802 791 // *********************** What'sNext View
792 topFrame = addPage(i18n("What's Next View"),0,0);
793 // DesktopIcon("viewmag",KIcon::SizeMedium));
794
795 topLayout = new QGridLayout(topFrame,4,1);
796 topLayout->setSpacing(spacingHint());
797 topLayout->setMargin(marginHint());
798 ii = 0;
799 KPrefsDialogWidBool *passwdk =
800 addWidBool(i18n("Show parent To-Do's in What's Next view"),
801 &(KOPrefs::instance()->mWNViewShowsParents),topFrame);
802 topLayout->addWidget(passwdk->checkBox(), ii++,0);
803
804 passwdk =
805 addWidBool(i18n("Show location in What's Next view"),
806 &(KOPrefs::instance()->mWNViewShowLocation),topFrame);
807 topLayout->addWidget(passwdk->checkBox(), ii++,0);
808
809 passwdk =
810 addWidBool(i18n("Show Sync Events in \nWhat's Next/Agenda view"),
811 &(KOPrefs::instance()->mShowSyncEvents),topFrame);
812 topLayout->addWidget(passwdk->checkBox(), ii++,0);
813 passwdk =
814 addWidBool(i18n("Use short date in \nWhat's Next/Event view"),
815 &(KOPrefs::instance()->mShortDateInViewer),topFrame);
816 topLayout->addMultiCellWidget(passwdk->checkBox(), ii,ii,0,1);
817
803 // *********************** Todo View 818 // *********************** Todo View
804 819
805 topFrame = addPage(i18n("Todo View"),0,0); 820 topFrame = addPage(i18n("Todo View"),0,0);
806 // DesktopIcon("viewmag",KIcon::SizeMedium)); 821 // DesktopIcon("viewmag",KIcon::SizeMedium));
807 822
808 topLayout = new QGridLayout(topFrame,4,1); 823 topLayout = new QGridLayout(topFrame,4,1);
809 topLayout->setSpacing(spacingHint()); 824 topLayout->setSpacing(spacingHint());
810 topLayout->setMargin(marginHint()); 825 topLayout->setMargin(marginHint());
811 ii = 0; 826 ii = 0;
812 827
813 KPrefsDialogWidBool *showCompletedTodo = 828 KPrefsDialogWidBool *showCompletedTodo =
814 addWidBool(i18n("To-do view shows completed Todos"), 829 addWidBool(i18n("To-do view shows completed Todos"),
815 &(KOPrefs::instance()->mShowCompletedTodo),topFrame); 830 &(KOPrefs::instance()->mShowCompletedTodo),topFrame);
816 topLayout->addWidget(showCompletedTodo->checkBox(),ii++,0); 831 topLayout->addWidget(showCompletedTodo->checkBox(),ii++,0);
817 dummy = 832 dummy =
818 addWidBool(i18n("To-do view shows complete as 'xx %'"), 833 addWidBool(i18n("To-do view shows complete as 'xx %'"),
819 &(KOPrefs::instance()->mTodoViewShowsPercentage),topFrame); 834 &(KOPrefs::instance()->mTodoViewShowsPercentage),topFrame);
820 topLayout->addWidget(dummy->checkBox(),ii++,0); 835 topLayout->addWidget(dummy->checkBox(),ii++,0);
821 836
822 dummy = 837 dummy =
823 addWidBool(i18n("Small To-do view uses smaller font"), 838 addWidBool(i18n("Small To-do view uses smaller font"),
824 &(KOPrefs::instance()->mTodoViewUsesSmallFont),topFrame); 839 &(KOPrefs::instance()->mTodoViewUsesSmallFont),topFrame);
825 topLayout->addWidget(dummy->checkBox(),ii++,0); 840 topLayout->addWidget(dummy->checkBox(),ii++,0);
826 841
827 842
828 843
829 dummy = 844 dummy =
830 addWidBool(i18n("Todo view uses category colors"), 845 addWidBool(i18n("Todo view uses category colors"),
831 &(KOPrefs::instance()->mTodoViewUsesCatColors),topFrame); 846 &(KOPrefs::instance()->mTodoViewUsesCatColors),topFrame);
832 topLayout->addWidget(dummy->checkBox(),ii++,0); 847 topLayout->addWidget(dummy->checkBox(),ii++,0);
833 848
834 849
835 QWidget* wid = new QWidget( topFrame ); 850 QWidget* wid = new QWidget( topFrame );
836 // Todo due today color 851 // Todo due today color
837 KPrefsDialogWidColor *todoDueTodayColor = 852 KPrefsDialogWidColor *todoDueTodayColor =
838 addWidColor(i18n("Todo due today color:"), 853 addWidColor(i18n("Todo due today color:"),
839 &(KOPrefs::instance()->mTodoDueTodayColor),wid); 854 &(KOPrefs::instance()->mTodoDueTodayColor),wid);
840 QHBoxLayout *widLayout = new QHBoxLayout(wid); 855 QHBoxLayout *widLayout = new QHBoxLayout(wid);
841 widLayout->addWidget( todoDueTodayColor->label() ); 856 widLayout->addWidget( todoDueTodayColor->label() );
842 widLayout->addWidget( todoDueTodayColor->button() ); 857 widLayout->addWidget( todoDueTodayColor->button() );
843 topLayout->addWidget(wid,ii++,0); 858 topLayout->addWidget(wid,ii++,0);
844 //topLayout->addWidget(todoDueTodayColor->button(),ii++,1); 859 //topLayout->addWidget(todoDueTodayColor->button(),ii++,1);
845 860
846 // Todo overdue color 861 // Todo overdue color
847 wid = new QWidget( topFrame ); 862 wid = new QWidget( topFrame );
848 widLayout = new QHBoxLayout(wid); 863 widLayout = new QHBoxLayout(wid);
849 KPrefsDialogWidColor *todoOverdueColor = 864 KPrefsDialogWidColor *todoOverdueColor =
850 addWidColor(i18n("Todo overdue color:"), 865 addWidColor(i18n("Todo overdue color:"),
851 &(KOPrefs::instance()->mTodoOverdueColor),wid); 866 &(KOPrefs::instance()->mTodoOverdueColor),wid);
852 widLayout->addWidget(todoOverdueColor->label()); 867 widLayout->addWidget(todoOverdueColor->label());
853 widLayout->addWidget(todoOverdueColor->button()); 868 widLayout->addWidget(todoOverdueColor->button());
854 topLayout->addWidget(wid,ii++,0); 869 topLayout->addWidget(wid,ii++,0);
855 870
856 dummy = 871 dummy =
857 addWidBool(i18n("Colors are applied to text"), 872 addWidBool(i18n("Colors are applied to text"),
858 &(KOPrefs::instance()->mTodoViewUsesForegroundColor),topFrame); 873 &(KOPrefs::instance()->mTodoViewUsesForegroundColor),topFrame);
859 topLayout->addWidget(dummy->checkBox(),ii++,0); 874 topLayout->addWidget(dummy->checkBox(),ii++,0);
860 875
861 dummy = 876 dummy =
862 addWidBool(i18n("Allday Agenda view shows todos"), 877 addWidBool(i18n("Allday Agenda view shows todos"),
863 &(KOPrefs::instance()->mShowTodoInAgenda),topFrame); 878 &(KOPrefs::instance()->mShowTodoInAgenda),topFrame);
864 topLayout->addWidget(dummy->checkBox(),ii++,0); 879 topLayout->addWidget(dummy->checkBox(),ii++,0);
865 880
866 881
867 882
868 883
869 topFrame = addPage(i18n("Alarm"),0,0); 884 topFrame = addPage(i18n("Alarm"),0,0);
870 // DesktopIcon("viewmag",KIcon::SizeMedium)); 885 // DesktopIcon("viewmag",KIcon::SizeMedium));
871 886
872 topLayout = new QGridLayout(topFrame,2,1); 887 topLayout = new QGridLayout(topFrame,2,1);
873 topLayout->setSpacing(spacingHint()); 888 topLayout->setSpacing(spacingHint());
874 topLayout->setMargin(marginHint()); 889 topLayout->setMargin(marginHint());
875 int iii = 0; 890 int iii = 0;
876 891
877 dummy = 892 dummy =
878 addWidBool(i18n("Use internal alarm notification"), 893 addWidBool(i18n("Use internal alarm notification"),
879 &(KOPrefs::instance()->mUseInternalAlarmNotification),topFrame); 894 &(KOPrefs::instance()->mUseInternalAlarmNotification),topFrame);
880 topLayout->addWidget(dummy->checkBox(),iii++,0); 895 topLayout->addWidget(dummy->checkBox(),iii++,0);
881 lab = new QLabel( i18n("Note: KO/Pi must be running to notify you about an alarm. Recommended for use on Zaurus: Disable this option and install KO/Pi alarm applet.\n"), topFrame); 896 lab = new QLabel( i18n("Note: KO/Pi must be running to notify you about an alarm. Recommended for use on Zaurus: Disable this option and install KO/Pi alarm applet.\n"), topFrame);
882 897
883 topLayout->addWidget(lab ,iii++,0); 898 topLayout->addWidget(lab ,iii++,0);
884#ifndef DESKTOP_VERSION 899#ifndef DESKTOP_VERSION
885 lab->setAlignment( AlignLeft|WordBreak|AlignTop); 900 lab->setAlignment( AlignLeft|WordBreak|AlignTop);
886#else 901#else
887 lab->setAlignment( AlignLeft|BreakAnywhere|WordBreak|AlignTop); 902 lab->setAlignment( AlignLeft|BreakAnywhere|WordBreak|AlignTop);
888 lab->setSizePolicy( QSizePolicy( QSizePolicy::Ignored , QSizePolicy::Ignored,true) ); 903 lab->setSizePolicy( QSizePolicy( QSizePolicy::Ignored , QSizePolicy::Ignored,true) );
889#endif 904#endif
890 905
891 QHBox* dummyBox = new QHBox(topFrame); 906 QHBox* dummyBox = new QHBox(topFrame);
892 new QLabel(i18n("Play beeps count:"),dummyBox); 907 new QLabel(i18n("Play beeps count:"),dummyBox);
893 mAlarmPlayBeeps = new QSpinBox(0,500,1,dummyBox); 908 mAlarmPlayBeeps = new QSpinBox(0,500,1,dummyBox);
894 topLayout->addWidget(dummyBox,iii++,0); 909 topLayout->addWidget(dummyBox,iii++,0);
895 910
896 dummyBox = new QHBox(topFrame); 911 dummyBox = new QHBox(topFrame);
897 new QLabel(i18n("Beeps interval in sec:"),dummyBox); 912 new QLabel(i18n("Beeps interval in sec:"),dummyBox);
898 mAlarmBeepInterval = new QSpinBox(1,600,1,dummyBox); 913 mAlarmBeepInterval = new QSpinBox(1,600,1,dummyBox);
899 topLayout->addWidget(dummyBox,iii++,0); 914 topLayout->addWidget(dummyBox,iii++,0);
900 915
901 dummyBox = new QHBox(topFrame); 916 dummyBox = new QHBox(topFrame);
902 new QLabel(i18n("Default suspend time in min:"),dummyBox); 917 new QLabel(i18n("Default suspend time in min:"),dummyBox);
903 mAlarmSuspendTime = new QSpinBox(1,600,1,dummyBox); 918 mAlarmSuspendTime = new QSpinBox(1,600,1,dummyBox);
904 topLayout->addWidget(dummyBox,iii++,0); 919 topLayout->addWidget(dummyBox,iii++,0);
905 920
906 dummyBox = new QHBox(topFrame); 921 dummyBox = new QHBox(topFrame);
907 new QLabel(i18n("Auto suspend count:"),dummyBox); 922 new QLabel(i18n("Auto suspend count:"),dummyBox);
908 mAlarmSuspendCount = new QSpinBox(0,60,1,dummyBox); 923 mAlarmSuspendCount = new QSpinBox(0,60,1,dummyBox);
909 topLayout->addWidget(dummyBox,iii++,0); 924 topLayout->addWidget(dummyBox,iii++,0);
910 925
911 926
912 927
913 928
914 929
915 930
916 931
917 QHBox* hbo = new QHBox ( topFrame ); 932 QHBox* hbo = new QHBox ( topFrame );
918 mDefaultAlarmFile = new QLineEdit(hbo); 933 mDefaultAlarmFile = new QLineEdit(hbo);
919 QPushButton * loadTemplate = new QPushButton(hbo); 934 QPushButton * loadTemplate = new QPushButton(hbo);
920 QPixmap icon; 935 QPixmap icon;
921 if ( QApplication::desktop()->width() < 321 ) 936 if ( QApplication::desktop()->width() < 321 )
922 icon = SmallIcon("fileimport16"); 937 icon = SmallIcon("fileimport16");
923 else 938 else
924 icon = SmallIcon("fileimport"); 939 icon = SmallIcon("fileimport");
925 loadTemplate->setIconSet (icon ) ; 940 loadTemplate->setIconSet (icon ) ;
926 connect( loadTemplate, SIGNAL( clicked() ), this , SLOT( selectSoundFile() ) ); 941 connect( loadTemplate, SIGNAL( clicked() ), this , SLOT( selectSoundFile() ) );
927 int size = loadTemplate->sizeHint().height(); 942 int size = loadTemplate->sizeHint().height();
928 loadTemplate->setFixedSize( size, size ); 943 loadTemplate->setFixedSize( size, size );
929 //lab = new QLabel( i18n("This setting is useless for 5500 user!"), topFrame); 944 //lab = new QLabel( i18n("This setting is useless for 5500 user!"), topFrame);
930 // topLayout->addWidget(lab ,iii++,0); 945 // topLayout->addWidget(lab ,iii++,0);
931 lab = new QLabel( i18n("Alarm *.wav file for newly created alarm:"), topFrame); 946 lab = new QLabel( i18n("Alarm *.wav file for newly created alarm:"), topFrame);
932 topLayout->addWidget(lab ,iii++,0); 947 topLayout->addWidget(lab ,iii++,0);
933 topLayout->addWidget(hbo,iii++,0); 948 topLayout->addWidget(hbo,iii++,0);
934 // lab = new QLabel( i18n("Note: This does not mean, that for every alarm this file is replayed. This file here is associated with a newly created alarm."), topFrame); 949 // lab = new QLabel( i18n("Note: This does not mean, that for every alarm this file is replayed. This file here is associated with a newly created alarm."), topFrame);
935 950
936// topLayout->addWidget(lab ,iii++,0); 951// topLayout->addWidget(lab ,iii++,0);
937// #ifndef DESKTOP_VERSION 952// #ifndef DESKTOP_VERSION
938// lab->setAlignment( AlignLeft|WordBreak|AlignTop); 953// lab->setAlignment( AlignLeft|WordBreak|AlignTop);
939// #else 954// #else
940// lab->setAlignment( AlignLeft|BreakAnywhere|WordBreak|AlignTop); 955// lab->setAlignment( AlignLeft|BreakAnywhere|WordBreak|AlignTop);
941// lab->setSizePolicy( QSizePolicy( QSizePolicy::Ignored , QSizePolicy::Ignored,true) ); 956// lab->setSizePolicy( QSizePolicy( QSizePolicy::Ignored , QSizePolicy::Ignored,true) );
942// #endif 957// #endif
943 958
944 959
945} 960}
946 961
947void KOPrefsDialog::selectSoundFile() 962void KOPrefsDialog::selectSoundFile()
948{ 963{
949 QString fileName = mDefaultAlarmFile->text(); 964 QString fileName = mDefaultAlarmFile->text();
950 fileName = KFileDialog::getSaveFileName( mDefaultAlarmFile->text() , "Choose default alarm file", this ); 965 fileName = KFileDialog::getSaveFileName( mDefaultAlarmFile->text() , "Choose default alarm file", this );
951 if ( fileName.length() > 0 ) 966 if ( fileName.length() > 0 )
952 mDefaultAlarmFile->setText( fileName ); 967 mDefaultAlarmFile->setText( fileName );
953} 968}
954void KOPrefsDialog::setupFontsTab() 969void KOPrefsDialog::setupFontsTab()
955{ 970{
956 971
957 QFrame *topFrame = addPage(i18n("Fonts"),0,0); 972 QFrame *topFrame = addPage(i18n("Fonts"),0,0);
958 // DesktopIcon("fonts",KIcon::SizeMedium)); 973 // DesktopIcon("fonts",KIcon::SizeMedium));
959 974
960 QGridLayout *topLayout = new QGridLayout(topFrame,7,3); 975 QGridLayout *topLayout = new QGridLayout(topFrame,7,3);
961 topLayout->setSpacing(1); 976 topLayout->setSpacing(1);
962 topLayout->setMargin(3); 977 topLayout->setMargin(3);
963 KPrefsDialogWidFont * tVFont; 978 KPrefsDialogWidFont * tVFont;
964 int i = 0; 979 int i = 0;
965 KPrefsDialogWidFont *timeLabelsFont = 980 KPrefsDialogWidFont *timeLabelsFont =
966 addWidFont(i18n("23"),i18n("DateNavigator:(nr)"), 981 addWidFont(i18n("23"),i18n("DateNavigator:(nr)"),
967 &(KOPrefs::instance()->mDateNavigatorFont),topFrame); 982 &(KOPrefs::instance()->mDateNavigatorFont),topFrame);
968 topLayout->addWidget(timeLabelsFont->label(),i,0); 983 topLayout->addWidget(timeLabelsFont->label(),i,0);
969 topLayout->addWidget(timeLabelsFont->preview(),i,1); 984 topLayout->addWidget(timeLabelsFont->preview(),i,1);
970 topLayout->addWidget(timeLabelsFont->button(),i,2); 985 topLayout->addWidget(timeLabelsFont->button(),i,2);
971 ++i; 986 ++i;
972 987
973 988
974 timeLabelsFont = 989 timeLabelsFont =
975 addWidFont(i18n("Mon 15"),i18n("Date Labels:"), 990 addWidFont(i18n("Mon 15"),i18n("Date Labels:"),
976 &(KOPrefs::instance()->mTimeLabelsFont),topFrame); 991 &(KOPrefs::instance()->mTimeLabelsFont),topFrame);
977 topLayout->addWidget(timeLabelsFont->label(),i,0); 992 topLayout->addWidget(timeLabelsFont->label(),i,0);
978 topLayout->addWidget(timeLabelsFont->preview(),i,1); 993 topLayout->addWidget(timeLabelsFont->preview(),i,1);
979 topLayout->addWidget(timeLabelsFont->button(),i,2); 994 topLayout->addWidget(timeLabelsFont->button(),i,2);
980 ++i; 995 ++i;
981 996
982 KPrefsDialogWidFont *timeBarFont = 997 KPrefsDialogWidFont *timeBarFont =
983 addWidFont(KGlobal::locale()->formatTime(QTime(12,34)),i18n("Time bar:"), 998 addWidFont(KGlobal::locale()->formatTime(QTime(12,34)),i18n("Time bar:"),
984 &(KOPrefs::instance()->mTimeBarFont),topFrame); 999 &(KOPrefs::instance()->mTimeBarFont),topFrame);
985 topLayout->addWidget(timeBarFont->label(),i,0); 1000 topLayout->addWidget(timeBarFont->label(),i,0);
986 topLayout->addWidget(timeBarFont->preview(),i,1); 1001 topLayout->addWidget(timeBarFont->preview(),i,1);
987 topLayout->addWidget(timeBarFont->button(),i,2); 1002 topLayout->addWidget(timeBarFont->button(),i,2);
988 ++i; 1003 ++i;
989 1004
990 1005
991 KPrefsDialogWidFont *marcusBainsFont = 1006 KPrefsDialogWidFont *marcusBainsFont =
992 addWidFont(KGlobal::locale()->formatTime(QTime(12,34,23)),i18n("M. Bains line:"), 1007 addWidFont(KGlobal::locale()->formatTime(QTime(12,34,23)),i18n("M. Bains line:"),
993 &(KOPrefs::instance()->mMarcusBainsFont),topFrame); 1008 &(KOPrefs::instance()->mMarcusBainsFont),topFrame);
994 topLayout->addWidget(marcusBainsFont->label(),i,0); 1009 topLayout->addWidget(marcusBainsFont->label(),i,0);
995 topLayout->addWidget(marcusBainsFont->preview(),i,1); 1010 topLayout->addWidget(marcusBainsFont->preview(),i,1);
996 topLayout->addWidget(marcusBainsFont->button(),i,2); 1011 topLayout->addWidget(marcusBainsFont->button(),i,2);
997 ++i; 1012 ++i;
998 1013
999 tVFont = 1014 tVFont =
1000 addWidFont(i18n("Summary"),i18n("Event Viewer:"), 1015 addWidFont(i18n("Summary"),i18n("Event Viewer:"),
1001 &(KOPrefs::instance()->mEventViewFont),topFrame); 1016 &(KOPrefs::instance()->mEventViewFont),topFrame);
1002 topLayout->addWidget(tVFont->label(),i,0); 1017 topLayout->addWidget(tVFont->label(),i,0);
1003 topLayout->addWidget(tVFont->preview(),i,1); 1018 topLayout->addWidget(tVFont->preview(),i,1);
1004 topLayout->addWidget(tVFont->button(),i,2); 1019 topLayout->addWidget(tVFont->button(),i,2);
1005 ++i; 1020 ++i;
1006 1021
1007 1022
1008 1023
1009 tVFont = 1024 tVFont =
1010 addWidFont(i18n("Details"),i18n("EditorBox:"), 1025 addWidFont(i18n("Details"),i18n("EditorBox:"),
1011 &(KOPrefs::instance()->mEditBoxFont),topFrame); 1026 &(KOPrefs::instance()->mEditBoxFont),topFrame);
1012 topLayout->addWidget(tVFont->label(),i,0); 1027 topLayout->addWidget(tVFont->label(),i,0);
1013 topLayout->addWidget(tVFont->preview(),i,1); 1028 topLayout->addWidget(tVFont->preview(),i,1);
1014 topLayout->addWidget(tVFont->button(),i,2); 1029 topLayout->addWidget(tVFont->button(),i,2);
1015 ++i; 1030 ++i;
1016 1031
1017 1032
1018 1033
1019 topLayout->setColStretch(1,1); 1034 topLayout->setColStretch(1,1);
1020 topLayout->setRowStretch(4,1); 1035 topLayout->setRowStretch(4,1);
1021 1036
1022 1037
1023 i = 0; 1038 i = 0;
1024 topFrame = addPage(i18n("View Fonts"),0, 1039 topFrame = addPage(i18n("View Fonts"),0,
1025 DesktopIcon("fonts",KIcon::SizeMedium)); 1040 DesktopIcon("fonts",KIcon::SizeMedium));
1026 1041
1027 topLayout = new QGridLayout(topFrame,7,3); 1042 topLayout = new QGridLayout(topFrame,7,3);
1028 topLayout->setSpacing(1); 1043 topLayout->setSpacing(1);
1029 topLayout->setMargin(3); 1044 topLayout->setMargin(3);
1030 1045
1031 tVFont = 1046 tVFont =
1032 addWidFont(i18n("Configure KO"),i18n("What's Next View:"), 1047 addWidFont(i18n("Configure KO"),i18n("What's Next View:"),
1033 &(KOPrefs::instance()->mWhatsNextFont),topFrame); 1048 &(KOPrefs::instance()->mWhatsNextFont),topFrame);
1034 topLayout->addWidget(tVFont->label(),i,0); 1049 topLayout->addWidget(tVFont->label(),i,0);
1035 topLayout->addWidget(tVFont->preview(),i,1); 1050 topLayout->addWidget(tVFont->preview(),i,1);
1036 topLayout->addWidget(tVFont->button(),i,2); 1051 topLayout->addWidget(tVFont->button(),i,2);
1037 ++i; 1052 ++i;
1038 KPrefsDialogWidFont *agendaViewFont = 1053 KPrefsDialogWidFont *agendaViewFont =
1039 addWidFont(i18n("Event text"),i18n("Agenda view:"), 1054 addWidFont(i18n("Event text"),i18n("Agenda view:"),
1040 &(KOPrefs::instance()->mAgendaViewFont),topFrame); 1055 &(KOPrefs::instance()->mAgendaViewFont),topFrame);
1041 topLayout->addWidget(agendaViewFont->label(),i,0); 1056 topLayout->addWidget(agendaViewFont->label(),i,0);
1042 topLayout->addWidget(agendaViewFont->preview(),i,1); 1057 topLayout->addWidget(agendaViewFont->preview(),i,1);
1043 topLayout->addWidget(agendaViewFont->button(),i,2); 1058 topLayout->addWidget(agendaViewFont->button(),i,2);
1044 ++i; 1059 ++i;
1045 1060
1046 1061
1047 KPrefsDialogWidFont *monthViewFont = 1062 KPrefsDialogWidFont *monthViewFont =
1048 addWidFont(KGlobal::locale()->formatTime(QTime(12,34)) + " " + i18n("Event"), 1063 addWidFont(KGlobal::locale()->formatTime(QTime(12,34)) + " " + i18n("Event"),
1049 i18n("Month view:"),&(KOPrefs::instance()->mMonthViewFont),topFrame); 1064 i18n("Month view:"),&(KOPrefs::instance()->mMonthViewFont),topFrame);
1050 topLayout->addWidget(monthViewFont->label(),i,0); 1065 topLayout->addWidget(monthViewFont->label(),i,0);
1051 topLayout->addWidget(monthViewFont->preview(),i,1); 1066 topLayout->addWidget(monthViewFont->preview(),i,1);
1052 topLayout->addWidget(monthViewFont->button(),i,2); 1067 topLayout->addWidget(monthViewFont->button(),i,2);
1053 ++i; 1068 ++i;
1054 1069
1055 1070
1056 KPrefsDialogWidFont *lVFont = 1071 KPrefsDialogWidFont *lVFont =
1057 addWidFont(i18n("Event"),i18n("List View:"), 1072 addWidFont(i18n("Event"),i18n("List View:"),
1058 &(KOPrefs::instance()->mListViewFont),topFrame); 1073 &(KOPrefs::instance()->mListViewFont),topFrame);
1059 topLayout->addWidget(lVFont->label(),i,0); 1074 topLayout->addWidget(lVFont->label(),i,0);
1060 topLayout->addWidget(lVFont->preview(),i,1); 1075 topLayout->addWidget(lVFont->preview(),i,1);
1061 topLayout->addWidget(lVFont->button(),i,2); 1076 topLayout->addWidget(lVFont->button(),i,2);
1062 ++i; 1077 ++i;
1063 1078
1064 1079
1065 tVFont = 1080 tVFont =
1066 addWidFont(i18n("ToDo"),i18n("ToDoView:"), 1081 addWidFont(i18n("ToDo"),i18n("ToDoView:"),
1067 &(KOPrefs::instance()->mTodoViewFont),topFrame); 1082 &(KOPrefs::instance()->mTodoViewFont),topFrame);
1068 topLayout->addWidget(tVFont->label(),i,0); 1083 topLayout->addWidget(tVFont->label(),i,0);
1069 topLayout->addWidget(tVFont->preview(),i,1); 1084 topLayout->addWidget(tVFont->preview(),i,1);
1070 topLayout->addWidget(tVFont->button(),i,2); 1085 topLayout->addWidget(tVFont->button(),i,2);
1071 ++i; 1086 ++i;
1072 1087
1073 1088
1074 tVFont = 1089 tVFont =
1075 addWidFont(i18n("Today"),i18n("JournalView:"), 1090 addWidFont(i18n("Today"),i18n("JournalView:"),
1076 &(KOPrefs::instance()->mJornalViewFont),topFrame); 1091 &(KOPrefs::instance()->mJornalViewFont),topFrame);
1077 topLayout->addWidget(tVFont->label(),i,0); 1092 topLayout->addWidget(tVFont->label(),i,0);
1078 topLayout->addWidget(tVFont->preview(),i,1); 1093 topLayout->addWidget(tVFont->preview(),i,1);
1079 topLayout->addWidget(tVFont->button(),i,2); 1094 topLayout->addWidget(tVFont->button(),i,2);
1080 ++i; 1095 ++i;
1081 1096
1082 1097
1083 1098
1084 1099
1085 topLayout->setColStretch(1,1); 1100 topLayout->setColStretch(1,1);
1086 topLayout->setRowStretch(4,1); 1101 topLayout->setRowStretch(4,1);
1087 1102
1088 1103
1089 1104
1090 1105
1091} 1106}
1092 1107
1093void KOPrefsDialog::setupColorsTab() 1108void KOPrefsDialog::setupColorsTab()
1094{ 1109{
1095 QFrame *topFrame = addPage(i18n("Colors"),0,0); 1110 QFrame *topFrame = addPage(i18n("Colors"),0,0);
1096 // DesktopIcon("colorize",KIcon::SizeMedium)); 1111 // DesktopIcon("colorize",KIcon::SizeMedium));
1097 1112
1098 QGridLayout *topLayout = new QGridLayout(topFrame,5,2); 1113 QGridLayout *topLayout = new QGridLayout(topFrame,5,2);
1099 // topLayout->setSpacing(spacingHint()); 1114 // topLayout->setSpacing(spacingHint());
1100 // topLayout->setMargin(marginHint()); 1115 // topLayout->setMargin(marginHint());
1101 1116
1102 topLayout->setSpacing(2); 1117 topLayout->setSpacing(2);
1103 topLayout->setMargin(3); 1118 topLayout->setMargin(3);
1104 1119
1105 int ii = 1; 1120 int ii = 1;
1106 QGroupBox *categoryGroup ; 1121 QGroupBox *categoryGroup ;
1107 1122
1108 categoryGroup = new QGroupBox(1,Vertical,i18n("Categories"), 1123 categoryGroup = new QGroupBox(1,Vertical,i18n("Categories"),
1109 topFrame); 1124 topFrame);
1110 topLayout->addMultiCellWidget(categoryGroup,0,0,0,1); 1125 topLayout->addMultiCellWidget(categoryGroup,0,0,0,1);
1111 1126
1112 mCategoryCombo = new QComboBox(categoryGroup); 1127 mCategoryCombo = new QComboBox(categoryGroup);
1113 mCategoryCombo->insertStringList(KOPrefs::instance()->mCustomCategories); 1128 mCategoryCombo->insertStringList(KOPrefs::instance()->mCustomCategories);
1114 connect(mCategoryCombo,SIGNAL(activated(int)),SLOT(updateCategoryColor())); 1129 connect(mCategoryCombo,SIGNAL(activated(int)),SLOT(updateCategoryColor()));
1115 1130
1116 mCategoryButton = new KColorButton(categoryGroup); 1131 mCategoryButton = new KColorButton(categoryGroup);
1117 connect(mCategoryButton,SIGNAL(changed(const QColor &)),SLOT(setCategoryColor())); 1132 connect(mCategoryButton,SIGNAL(changed(const QColor &)),SLOT(setCategoryColor()));
1118 updateCategoryColor(); 1133 updateCategoryColor();
1119 1134
1120 1135
1121 // Holiday Color 1136 // Holiday Color
1122 1137
1123 KPrefsDialogWidColor *holidayColor = 1138 KPrefsDialogWidColor *holidayColor =
1124 addWidColor(i18n("Holiday color:"), 1139 addWidColor(i18n("Holiday color:"),
1125 &(KOPrefs::instance()->mHolidayColor),topFrame); 1140 &(KOPrefs::instance()->mHolidayColor),topFrame);
1126 topLayout->addWidget(holidayColor->label(),ii,0); 1141 topLayout->addWidget(holidayColor->label(),ii,0);
1127 topLayout->addWidget(holidayColor->button(),ii++,1); 1142 topLayout->addWidget(holidayColor->button(),ii++,1);
1128 1143
1129 // Highlight Color 1144 // Highlight Color
1130 KPrefsDialogWidColor *highlightColor = 1145 KPrefsDialogWidColor *highlightColor =
1131 addWidColor(i18n("Highlight color:"), 1146 addWidColor(i18n("Highlight color:"),
1132 &(KOPrefs::instance()->mHighlightColor),topFrame); 1147 &(KOPrefs::instance()->mHighlightColor),topFrame);
1133 topLayout->addWidget(highlightColor->label(),ii,0); 1148 topLayout->addWidget(highlightColor->label(),ii,0);
1134 topLayout->addWidget(highlightColor->button(),ii++,1); 1149 topLayout->addWidget(highlightColor->button(),ii++,1);
1135 1150
1136 // Event color 1151 // Event color
1137 KPrefsDialogWidColor *eventColor = 1152 KPrefsDialogWidColor *eventColor =
1138 addWidColor(i18n("Default event color:"), 1153 addWidColor(i18n("Default event color:"),
1139 &(KOPrefs::instance()->mEventColor),topFrame); 1154 &(KOPrefs::instance()->mEventColor),topFrame);
1140 topLayout->addWidget(eventColor->label(),ii,0); 1155 topLayout->addWidget(eventColor->label(),ii,0);
1141 topLayout->addWidget(eventColor->button(),ii++,1); 1156 topLayout->addWidget(eventColor->button(),ii++,1);
1142 1157
1143 // agenda view background color 1158 // agenda view background color
1144 KPrefsDialogWidColor *agendaBgColor = 1159 KPrefsDialogWidColor *agendaBgColor =
1145 addWidColor(i18n("Agenda view background color:"), 1160 addWidColor(i18n("Agenda view background color:"),
1146 &(KOPrefs::instance()->mAgendaBgColor),topFrame); 1161 &(KOPrefs::instance()->mAgendaBgColor),topFrame);
1147 topLayout->addWidget(agendaBgColor->label(),ii,0); 1162 topLayout->addWidget(agendaBgColor->label(),ii,0);
1148 topLayout->addWidget(agendaBgColor->button(),ii++,1); 1163 topLayout->addWidget(agendaBgColor->button(),ii++,1);
1149 1164
1150 // working hours color 1165 // working hours color
1151 KPrefsDialogWidColor *workingHoursColor = 1166 KPrefsDialogWidColor *workingHoursColor =
1152 addWidColor(i18n("Working hours color:"), 1167 addWidColor(i18n("Working hours color:"),
1153 &(KOPrefs::instance()->mWorkingHoursColor),topFrame); 1168 &(KOPrefs::instance()->mWorkingHoursColor),topFrame);
1154 topLayout->addWidget(workingHoursColor->label(),ii,0); 1169 topLayout->addWidget(workingHoursColor->label(),ii,0);
1155 topLayout->addWidget(workingHoursColor->button(),ii++,1); 1170 topLayout->addWidget(workingHoursColor->button(),ii++,1);
1156 1171
1157 KPrefsDialogWidBool *sb = 1172 KPrefsDialogWidBool *sb =
1158 addWidBool(i18n("Use colors for application:"), 1173 addWidBool(i18n("Use colors for application:"),
1159 &(KOPrefs::instance()->mUseAppColors),topFrame); 1174 &(KOPrefs::instance()->mUseAppColors),topFrame);
1160 topLayout->addMultiCellWidget(sb->checkBox(), ii, ii, 0,1 ); 1175 topLayout->addMultiCellWidget(sb->checkBox(), ii, ii, 0,1 );
1161 1176
1162 ii++; 1177 ii++;
1163 KPrefsDialogWidColor * workingHoursColor1 = 1178 KPrefsDialogWidColor * workingHoursColor1 =
1164 addWidColor(i18n("Buttons, menus, etc.:"), 1179 addWidColor(i18n("Buttons, menus, etc.:"),
1165 &(KOPrefs::instance()->mAppColor1),topFrame); 1180 &(KOPrefs::instance()->mAppColor1),topFrame);
1166 topLayout->addWidget(workingHoursColor1->label(),ii,0); 1181 topLayout->addWidget(workingHoursColor1->label(),ii,0);
1167 topLayout->addWidget(workingHoursColor1->button(),ii++,1); 1182 topLayout->addWidget(workingHoursColor1->button(),ii++,1);
1168 1183
1169 KPrefsDialogWidColor * workingHoursColor2 = 1184 KPrefsDialogWidColor * workingHoursColor2 =
1170 addWidColor(i18n("Frames, labels, etc.:"), 1185 addWidColor(i18n("Frames, labels, etc.:"),
1171 &(KOPrefs::instance()->mAppColor2),topFrame); 1186 &(KOPrefs::instance()->mAppColor2),topFrame);
1172 topLayout->addWidget(workingHoursColor2->label(),ii,0); 1187 topLayout->addWidget(workingHoursColor2->label(),ii,0);
1173 topLayout->addWidget(workingHoursColor2->button(),ii++,1); 1188 topLayout->addWidget(workingHoursColor2->button(),ii++,1);
1174 1189
1175 1190
1176 1191
1177} 1192}
1178 1193
1179void KOPrefsDialog::setCategoryColor() 1194void KOPrefsDialog::setCategoryColor()
1180{ 1195{
1181 mCategoryDict.replace(mCategoryCombo->currentText(), new QColor(mCategoryButton->color())); 1196 mCategoryDict.replace(mCategoryCombo->currentText(), new QColor(mCategoryButton->color()));
1182} 1197}
1183 1198
1184void KOPrefsDialog::updateCategoryColor() 1199void KOPrefsDialog::updateCategoryColor()
1185{ 1200{
1186 QString cat = mCategoryCombo->currentText(); 1201 QString cat = mCategoryCombo->currentText();
1187 QColor *color = mCategoryDict.find(cat); 1202 QColor *color = mCategoryDict.find(cat);
1188 if (!color) { 1203 if (!color) {
1189 color = KOPrefs::instance()->categoryColor(cat); 1204 color = KOPrefs::instance()->categoryColor(cat);
1190 } 1205 }
1191 if (color) { 1206 if (color) {
1192 mCategoryButton->setColor(*color); 1207 mCategoryButton->setColor(*color);
1193 } 1208 }
1194} 1209}
1195 1210
1196void KOPrefsDialog::setupPrinterTab() 1211void KOPrefsDialog::setupPrinterTab()
1197{ 1212{
1198 mPrinterTab = addPage(i18n("Printing"),0, 1213 mPrinterTab = addPage(i18n("Printing"),0,
1199 DesktopIcon("fileprint",KIcon::SizeMedium)); 1214 DesktopIcon("fileprint",KIcon::SizeMedium));
1200 1215
1201 QGridLayout *topLayout = new QGridLayout(mPrinterTab,5,2); 1216 QGridLayout *topLayout = new QGridLayout(mPrinterTab,5,2);
1202 topLayout->setSpacing(spacingHint()); 1217 topLayout->setSpacing(spacingHint());
1203 topLayout->setMargin(marginHint()); 1218 topLayout->setMargin(marginHint());
1204 1219
1205 topLayout->setRowStretch(4,1); 1220 topLayout->setRowStretch(4,1);
1206} 1221}
1207 1222
1208void KOPrefsDialog::setupGroupSchedulingTab() 1223void KOPrefsDialog::setupGroupSchedulingTab()
1209{ 1224{
1210#if 0 1225#if 0
1211 QFrame *topFrame = addPage(i18n("Group Scheduling"),0, 1226 QFrame *topFrame = addPage(i18n("Group Scheduling"),0,
1212 DesktopIcon("personal",KIcon::SizeMedium)); 1227 DesktopIcon("personal",KIcon::SizeMedium));
1213 1228
1214 QGridLayout *topLayout = new QGridLayout(topFrame,6,2); 1229 QGridLayout *topLayout = new QGridLayout(topFrame,6,2);
1215 topLayout->setSpacing(spacingHint()); 1230 topLayout->setSpacing(spacingHint());
1216 topLayout->setMargin(marginHint()); 1231 topLayout->setMargin(marginHint());
1217 1232
1218#if 0 1233#if 0
1219 KPrefsDialogWidRadios *schedulerGroup = 1234 KPrefsDialogWidRadios *schedulerGroup =
1220 addWidRadios(i18n("Scheduler Mail Client"),&(KOPrefs::instance()->mIMIPScheduler), 1235 addWidRadios(i18n("Scheduler Mail Client"),&(KOPrefs::instance()->mIMIPScheduler),
1221 topFrame); 1236 topFrame);
1222 schedulerGroup->addRadio("Dummy"); // Only for debugging 1237 schedulerGroup->addRadio("Dummy"); // Only for debugging
1223 schedulerGroup->addRadio(i18n("Mail client")); 1238 schedulerGroup->addRadio(i18n("Mail client"));
1224 1239
1225 topLayout->addMultiCellWidget(schedulerGroup->groupBox(),0,0,0,1); 1240 topLayout->addMultiCellWidget(schedulerGroup->groupBox(),0,0,0,1);
1226#endif 1241#endif
1227 1242
1228 KPrefsDialogWidRadios *sendGroup = 1243 KPrefsDialogWidRadios *sendGroup =
1229 addWidRadios(i18n("Scheduler Mails Should Be"),&(KOPrefs::instance()->mIMIPSend), 1244 addWidRadios(i18n("Scheduler Mails Should Be"),&(KOPrefs::instance()->mIMIPSend),
1230 topFrame); 1245 topFrame);
1231 sendGroup->addRadio(i18n("Send to outbox")); 1246 sendGroup->addRadio(i18n("Send to outbox"));
1232 sendGroup->addRadio(i18n("Send directly")); 1247 sendGroup->addRadio(i18n("Send directly"));
1233 1248
1234 topLayout->addMultiCellWidget(sendGroup->groupBox(),1,1,0,1); 1249 topLayout->addMultiCellWidget(sendGroup->groupBox(),1,1,0,1);
1235 1250
1236 topLayout->addMultiCellWidget(new QLabel(i18n("Additional email addresses:"),topFrame),2,2,0,1); 1251 topLayout->addMultiCellWidget(new QLabel(i18n("Additional email addresses:"),topFrame),2,2,0,1);
1237 mAMails = new QListView(topFrame); 1252 mAMails = new QListView(topFrame);
1238 mAMails->addColumn(i18n("Email"),300); 1253 mAMails->addColumn(i18n("Email"),300);
1239 topLayout->addMultiCellWidget(mAMails,3,3,0,1); 1254 topLayout->addMultiCellWidget(mAMails,3,3,0,1);
1240 1255
1241 topLayout->addWidget(new QLabel(i18n("Additional email address:"),topFrame),4,0); 1256 topLayout->addWidget(new QLabel(i18n("Additional email address:"),topFrame),4,0);
1242 aEmailsEdit = new QLineEdit(topFrame); 1257 aEmailsEdit = new QLineEdit(topFrame);
1243 aEmailsEdit->setEnabled(false); 1258 aEmailsEdit->setEnabled(false);
1244 topLayout->addWidget(aEmailsEdit,4,1); 1259 topLayout->addWidget(aEmailsEdit,4,1);
1245 1260
1246 QPushButton *add = new QPushButton(i18n("New"),topFrame,"new"); 1261 QPushButton *add = new QPushButton(i18n("New"),topFrame,"new");
1247 topLayout->addWidget(add,5,0); 1262 topLayout->addWidget(add,5,0);
1248 QPushButton *del = new QPushButton(i18n("Remove"),topFrame,"remove"); 1263 QPushButton *del = new QPushButton(i18n("Remove"),topFrame,"remove");
1249 topLayout->addWidget(del,5,1); 1264 topLayout->addWidget(del,5,1);
1250 1265
1251 //topLayout->setRowStretch(2,1); 1266 //topLayout->setRowStretch(2,1);
1252 connect(add, SIGNAL( clicked() ), this, SLOT(addItem()) ); 1267 connect(add, SIGNAL( clicked() ), this, SLOT(addItem()) );
1253 connect(del, SIGNAL( clicked() ), this, SLOT(removeItem()) ); 1268 connect(del, SIGNAL( clicked() ), this, SLOT(removeItem()) );
1254 connect(aEmailsEdit,SIGNAL( textChanged(const QString&) ), this,SLOT(updateItem())); 1269 connect(aEmailsEdit,SIGNAL( textChanged(const QString&) ), this,SLOT(updateItem()));
1255 connect(mAMails,SIGNAL(selectionChanged(QListViewItem *)),SLOT(updateInput())); 1270 connect(mAMails,SIGNAL(selectionChanged(QListViewItem *)),SLOT(updateInput()));
1256#endif 1271#endif
1257} 1272}
1258 1273
1259void KOPrefsDialog::setupGroupAutomationTab() 1274void KOPrefsDialog::setupGroupAutomationTab()
1260{ 1275{
1261 return; 1276 return;
1262 QFrame *topFrame = addPage(i18n("Group Automation"),0, 1277 QFrame *topFrame = addPage(i18n("Group Automation"),0,
1263 DesktopIcon("personal",KIcon::SizeMedium)); 1278 DesktopIcon("personal",KIcon::SizeMedium));
1264 1279
1265 QGridLayout *topLayout = new QGridLayout(topFrame,5,1); 1280 QGridLayout *topLayout = new QGridLayout(topFrame,5,1);
1266 topLayout->setSpacing(spacingHint()); 1281 topLayout->setSpacing(spacingHint());
1267 topLayout->setMargin(marginHint()); 1282 topLayout->setMargin(marginHint());
1268 1283
1269 KPrefsDialogWidRadios *autoRefreshGroup = 1284 KPrefsDialogWidRadios *autoRefreshGroup =
1270 addWidRadios(i18n("Auto Send Refresh"), 1285 addWidRadios(i18n("Auto Send Refresh"),
1271 &(KOPrefs::instance()->mIMIPAutoRefresh),topFrame); 1286 &(KOPrefs::instance()->mIMIPAutoRefresh),topFrame);
1272 autoRefreshGroup->addRadio(i18n("Never")); 1287 autoRefreshGroup->addRadio(i18n("Never"));
1273 autoRefreshGroup->addRadio(i18n("If attendee is in addressbook")); 1288 autoRefreshGroup->addRadio(i18n("If attendee is in addressbook"));
1274 //autoRefreshGroup->addRadio(i18n("selected emails")); 1289 //autoRefreshGroup->addRadio(i18n("selected emails"));
1275 topLayout->addMultiCellWidget(autoRefreshGroup->groupBox(),0,0,0,0); 1290 topLayout->addMultiCellWidget(autoRefreshGroup->groupBox(),0,0,0,0);
1276 1291
1277 KPrefsDialogWidRadios *autoInsertGroup = 1292 KPrefsDialogWidRadios *autoInsertGroup =
1278 addWidRadios(i18n("Auto Insert IMIP Replies"), 1293 addWidRadios(i18n("Auto Insert IMIP Replies"),
1279 &(KOPrefs::instance()->mIMIPAutoInsertReply),topFrame); 1294 &(KOPrefs::instance()->mIMIPAutoInsertReply),topFrame);
1280 autoInsertGroup->addRadio(i18n("Never")); 1295 autoInsertGroup->addRadio(i18n("Never"));
1281 autoInsertGroup->addRadio(i18n("If attendee is in addressbook")); 1296 autoInsertGroup->addRadio(i18n("If attendee is in addressbook"));
1282 //autoInsertGroup->addRadio(i18n("selected emails")); 1297 //autoInsertGroup->addRadio(i18n("selected emails"));
1283 topLayout->addMultiCellWidget(autoInsertGroup->groupBox(),1,1,0,0); 1298 topLayout->addMultiCellWidget(autoInsertGroup->groupBox(),1,1,0,0);
1284 1299
1285 KPrefsDialogWidRadios *autoRequestGroup = 1300 KPrefsDialogWidRadios *autoRequestGroup =
1286 addWidRadios(i18n("Auto Insert IMIP Requests"), 1301 addWidRadios(i18n("Auto Insert IMIP Requests"),
1287 &(KOPrefs::instance()->mIMIPAutoInsertRequest),topFrame); 1302 &(KOPrefs::instance()->mIMIPAutoInsertRequest),topFrame);
1288 autoRequestGroup->addRadio(i18n("Never")); 1303 autoRequestGroup->addRadio(i18n("Never"));
1289 autoRequestGroup->addRadio(i18n("If organizer is in addressbook")); 1304 autoRequestGroup->addRadio(i18n("If organizer is in addressbook"));
1290 //autoInsertGroup->addRadio(i18n("selected emails")); 1305 //autoInsertGroup->addRadio(i18n("selected emails"));
1291 topLayout->addMultiCellWidget(autoRequestGroup->groupBox(),2,2,0,0); 1306 topLayout->addMultiCellWidget(autoRequestGroup->groupBox(),2,2,0,0);
1292 1307
1293 KPrefsDialogWidRadios *autoFreeBusyGroup = 1308 KPrefsDialogWidRadios *autoFreeBusyGroup =
1294 addWidRadios(i18n("Auto Send FreeBusy Information"), 1309 addWidRadios(i18n("Auto Send FreeBusy Information"),
1295 &(KOPrefs::instance()->mIMIPAutoFreeBusy),topFrame); 1310 &(KOPrefs::instance()->mIMIPAutoFreeBusy),topFrame);
1296 autoFreeBusyGroup->addRadio(i18n("Never")); 1311 autoFreeBusyGroup->addRadio(i18n("Never"));
1297 autoFreeBusyGroup->addRadio(i18n("If requested from an email in addressbook")); 1312 autoFreeBusyGroup->addRadio(i18n("If requested from an email in addressbook"));
1298 //autoFreeBusyGroup->addRadio(i18n("selected emails")); 1313 //autoFreeBusyGroup->addRadio(i18n("selected emails"));
1299 topLayout->addMultiCellWidget(autoFreeBusyGroup->groupBox(),3,3,0,0); 1314 topLayout->addMultiCellWidget(autoFreeBusyGroup->groupBox(),3,3,0,0);
1300 1315
1301 KPrefsDialogWidRadios *autoFreeBusyReplyGroup = 1316 KPrefsDialogWidRadios *autoFreeBusyReplyGroup =
1302 addWidRadios(i18n("Auto Save FreeBusy Replies"), 1317 addWidRadios(i18n("Auto Save FreeBusy Replies"),
1303 &(KOPrefs::instance()->mIMIPAutoFreeBusyReply),topFrame); 1318 &(KOPrefs::instance()->mIMIPAutoFreeBusyReply),topFrame);
1304 autoFreeBusyReplyGroup->addRadio(i18n("Never")); 1319 autoFreeBusyReplyGroup->addRadio(i18n("Never"));
1305 autoFreeBusyReplyGroup->addRadio(i18n("If attendee is in addressbook")); 1320 autoFreeBusyReplyGroup->addRadio(i18n("If attendee is in addressbook"));
1306 //autoFreeBusyGroup->addRadio(i18n("selected emails")); 1321 //autoFreeBusyGroup->addRadio(i18n("selected emails"));
1307 topLayout->addMultiCellWidget(autoFreeBusyReplyGroup->groupBox(),4,4,0,0); 1322 topLayout->addMultiCellWidget(autoFreeBusyReplyGroup->groupBox(),4,4,0,0);
1308} 1323}
1309 1324
1310void KOPrefsDialog::showPrinterTab() 1325void KOPrefsDialog::showPrinterTab()
1311{ 1326{
1312 showPage(pageIndex(mPrinterTab)); 1327 showPage(pageIndex(mPrinterTab));
1313} 1328}
1314 1329
1315 1330
1316void KOPrefsDialog::setCombo(QComboBox *combo, const QString & text, 1331void KOPrefsDialog::setCombo(QComboBox *combo, const QString & text,
1317 const QStringList *tags) 1332 const QStringList *tags)
1318{ 1333{
1319 if (tags) { 1334 if (tags) {
1320 int i = tags->findIndex(text); 1335 int i = tags->findIndex(text);
1321 if (i > 0) combo->setCurrentItem(i); 1336 if (i > 0) combo->setCurrentItem(i);
1322 } else { 1337 } else {
1323 for(int i=0;i<combo->count();++i) { 1338 for(int i=0;i<combo->count();++i) {
1324 if (combo->text(i) == text) { 1339 if (combo->text(i) == text) {
1325 combo->setCurrentItem(i); 1340 combo->setCurrentItem(i);
1326 break; 1341 break;
1327 } 1342 }
1328 } 1343 }
1329 } 1344 }
1330} 1345}
1331 1346
1332void KOPrefsDialog::usrReadConfig() 1347void KOPrefsDialog::usrReadConfig()
1333{ 1348{
1334 kdelibcfg->readConfig(); 1349 kdelibcfg->readConfig();
1335 mNameEdit->setText(KOPrefs::instance()->fullName()); 1350 mNameEdit->setText(KOPrefs::instance()->fullName());
1336 mEmailEdit->setText(KOPrefs::instance()->email()); 1351 mEmailEdit->setText(KOPrefs::instance()->email());
1337 1352
1338 mAutoSaveIntervalSpin->setValue(KOPrefs::instance()->mAutoSaveInterval); 1353 mAutoSaveIntervalSpin->setValue(KOPrefs::instance()->mAutoSaveInterval);
1339 QDate current ( 2001, 1,1); 1354 // QDate current ( 2001, 1,1);
1340 mStartDateSavingEdit->setDate(current.addDays(KOPrefs::instance()->mDaylightsavingStart-1)); 1355 //mStartDateSavingEdit->setDate(current.addDays(KOPrefs::instance()->mDaylightsavingStart-1));
1341 mEndDateSavingEdit->setDate(current.addDays(KOPrefs::instance()->mDaylightsavingEnd-1)); 1356 //mEndDateSavingEdit->setDate(current.addDays(KOPrefs::instance()->mDaylightsavingEnd-1));
1342 setCombo(mTimeZoneCombo,i18n(KOPrefs::instance()->mTimeZoneId)); 1357 //setCombo(mTimeZoneCombo,i18n(KOPrefs::instance()->mTimeZoneId));
1343 //mTimezoneOffsetSpin->setValue( KOPrefs::instance()->mTimeZoneOffset); 1358 //mTimezoneOffsetSpin->setValue( KOPrefs::instance()->mTimeZoneOffset);
1344 mStartTimeSpin->setValue(KOPrefs::instance()->mStartTime); 1359 mStartTimeSpin->setValue(KOPrefs::instance()->mStartTime);
1345 mDefaultDurationSpin->setValue(KOPrefs::instance()->mDefaultDuration); 1360 mDefaultDurationSpin->setValue(KOPrefs::instance()->mDefaultDuration);
1346 mAlarmTimeCombo->setCurrentItem(KOPrefs::instance()->mAlarmTime); 1361 mAlarmTimeCombo->setCurrentItem(KOPrefs::instance()->mAlarmTime);
1347 // if (KOPrefs::instance()->mAllDaySize > 47 ) 1362 // if (KOPrefs::instance()->mAllDaySize > 47 )
1348 // KOPrefs::instance()->mAllDaySize = KOPrefs::instance()->mAllDaySize/2; 1363 // KOPrefs::instance()->mAllDaySize = KOPrefs::instance()->mAllDaySize/2;
1349 //mHourSizeSlider->setValue(KOPrefs::instance()->mAllDaySize); 1364 //mHourSizeSlider->setValue(KOPrefs::instance()->mAllDaySize);
1350 1365
1351 mNextXDaysSpin->setValue(KOPrefs::instance()->mNextXDays); 1366 mNextXDaysSpin->setValue(KOPrefs::instance()->mNextXDays);
1352 mWhatsNextSpin->setValue(KOPrefs::instance()->mWhatsNextDays); 1367 mWhatsNextSpin->setValue(KOPrefs::instance()->mWhatsNextDays);
1353 mPrioSpin->setValue(KOPrefs::instance()->mWhatsNextPrios); 1368 mPrioSpin->setValue(KOPrefs::instance()->mWhatsNextPrios);
1354 // mAMails->clear(); 1369 // mAMails->clear();
1355 // for ( QStringList::Iterator it = KOPrefs::instance()->mAdditionalMails.begin(); 1370 // for ( QStringList::Iterator it = KOPrefs::instance()->mAdditionalMails.begin();
1356// it != KOPrefs::instance()->mAdditionalMails.end(); ++it ) { 1371// it != KOPrefs::instance()->mAdditionalMails.end(); ++it ) {
1357// QListViewItem *item = new QListViewItem(mAMails); 1372// QListViewItem *item = new QListViewItem(mAMails);
1358// item->setText(0,*it); 1373// item->setText(0,*it);
1359// mAMails->insertItem(item); 1374// mAMails->insertItem(item);
1360// } 1375// }
1361 1376
1362 // mRemoteIPEdit->setText(KOPrefs::instance()->mRemoteIP); 1377 // mRemoteIPEdit->setText(KOPrefs::instance()->mRemoteIP);
1363 //mRemoteUser->setText(KOPrefs::instance()->mRemoteUser); 1378 //mRemoteUser->setText(KOPrefs::instance()->mRemoteUser);
1364 //mRemotePassWd->setText(KOPrefs::instance()->mRemotePassWd); 1379 //mRemotePassWd->setText(KOPrefs::instance()->mRemotePassWd);
1365 //mRemoteFile->setText(KOPrefs::instance()->mRemoteFile); 1380 //mRemoteFile->setText(KOPrefs::instance()->mRemoteFile);
1366 1381
1367 //that soundmLocalTempFile->setText(KOPrefs::instance()->mLocalTempFile); 1382 //that soundmLocalTempFile->setText(KOPrefs::instance()->mLocalTempFile);
1368 mDefaultAlarmFile->setText(KOPrefs::instance()->mDefaultAlarmFile); 1383 mDefaultAlarmFile->setText(KOPrefs::instance()->mDefaultAlarmFile);
1369 QString dummy = KOPrefs::instance()->mUserDateFormatLong; 1384 //QString dummy = KOPrefs::instance()->mUserDateFormatLong;
1370 mUserDateFormatLong->setText(dummy.replace( QRegExp("K"), QString(",") )); 1385 //mUserDateFormatLong->setText(dummy.replace( QRegExp("K"), QString(",") ));
1371 dummy = KOPrefs::instance()->mUserDateFormatShort; 1386 //dummy = KOPrefs::instance()->mUserDateFormatShort;
1372 mUserDateFormatShort->setText(dummy.replace( QRegExp("K"), QString(",") )); 1387 //mUserDateFormatShort->setText(dummy.replace( QRegExp("K"), QString(",") ));
1373 updateCategories(); 1388 updateCategories();
1374 mAlarmPlayBeeps->setValue(KOPrefs::instance()->mAlarmPlayBeeps ); 1389 mAlarmPlayBeeps->setValue(KOPrefs::instance()->mAlarmPlayBeeps );
1375 mAlarmSuspendTime->setValue(KOPrefs::instance()->mAlarmSuspendTime ); 1390 mAlarmSuspendTime->setValue(KOPrefs::instance()->mAlarmSuspendTime );
1376 mAlarmSuspendCount->setValue(KOPrefs::instance()->mAlarmSuspendCount ); 1391 mAlarmSuspendCount->setValue(KOPrefs::instance()->mAlarmSuspendCount );
1377 mAlarmBeepInterval->setValue(KOPrefs::instance()->mAlarmBeepInterval ); 1392 mAlarmBeepInterval->setValue(KOPrefs::instance()->mAlarmBeepInterval );
1378} 1393}
1379 1394
1380 1395
1381void KOPrefsDialog::usrWriteConfig() 1396void KOPrefsDialog::usrWriteConfig()
1382{ 1397{
1383 1398
1384 kdelibcfg->writeConfig(); 1399 kdelibcfg->writeConfig();
1385 // KOPrefs::instance()->mRemoteIP = mRemoteIPEdit->text(); 1400 // KOPrefs::instance()->mRemoteIP = mRemoteIPEdit->text();
1386 //KOPrefs::instance()->mRemoteUser = mRemoteUser->text(); 1401 //KOPrefs::instance()->mRemoteUser = mRemoteUser->text();
1387 //KOPrefs::instance()->mRemotePassWd = mRemotePassWd->text(); 1402 //KOPrefs::instance()->mRemotePassWd = mRemotePassWd->text();
1388 //KOPrefs::instance()->mRemoteFile= mRemoteFile->text(); 1403 //KOPrefs::instance()->mRemoteFile= mRemoteFile->text();
1389 //KOPrefs::instance()->mLocalTempFile =mLocalTempFile->text(); 1404 //KOPrefs::instance()->mLocalTempFile =mLocalTempFile->text();
1390 KOPrefs::instance()->mDefaultAlarmFile =mDefaultAlarmFile->text(); 1405 KOPrefs::instance()->mDefaultAlarmFile =mDefaultAlarmFile->text();
1391 1406
1392 KOPrefs::instance()->mUserDateFormatShort = mUserDateFormatShort->text().replace( QRegExp(","), QString("K") ); 1407 //KOPrefs::instance()->mUserDateFormatShort = mUserDateFormatShort->text().replace( QRegExp(","), QString("K") );
1393 KOPrefs::instance()->mUserDateFormatLong = mUserDateFormatLong->text().replace( QRegExp(","), QString("K") ); 1408 //KOPrefs::instance()->mUserDateFormatLong = mUserDateFormatLong->text().replace( QRegExp(","), QString("K") );
1394 KOPrefs::instance()->setFullName(mNameEdit->text()); 1409 KOPrefs::instance()->setFullName(mNameEdit->text());
1395 KOPrefs::instance()->setEmail(mEmailEdit->text()); 1410 KOPrefs::instance()->setEmail(mEmailEdit->text());
1396 1411
1397 KOPrefs::instance()->mAutoSaveInterval = mAutoSaveIntervalSpin->value(); 1412 KOPrefs::instance()->mAutoSaveInterval = mAutoSaveIntervalSpin->value();
1398 1413
1399 KOPrefs::instance()->mTimeZoneId = mTimeZoneCombo->currentText(); 1414 // KOPrefs::instance()->mTimeZoneId = mTimeZoneCombo->currentText();
1400 QDate date; 1415 //QDate date;
1401 date = mStartDateSavingEdit->date(); 1416 //date = mStartDateSavingEdit->date();
1402 int sub = 0; 1417 //int sub = 0;
1403 if ( QDate::leapYear( date.year() ) && date.dayOfYear() > 59 ) 1418 //if ( QDate::leapYear( date.year() ) && date.dayOfYear() > 59 )
1404 sub = 1; 1419 // sub = 1;
1405 KOPrefs::instance()->mDaylightsavingStart = date.dayOfYear()-sub; 1420// KOPrefs::instance()->mDaylightsavingStart = date.dayOfYear()-sub;
1406 date = mEndDateSavingEdit->date(); 1421// date = mEndDateSavingEdit->date();
1407 if ( QDate::leapYear( date.year() ) && date.dayOfYear() > 59 ) 1422// if ( QDate::leapYear( date.year() ) && date.dayOfYear() > 59 )
1408 sub = 1; 1423// sub = 1;
1409 else 1424// else
1410 sub = 0; 1425// sub = 0;
1411 KOPrefs::instance()->mDaylightsavingEnd = date.dayOfYear()-sub; 1426// KOPrefs::instance()->mDaylightsavingEnd = date.dayOfYear()-sub;
1412 // KOPrefs::instance()->mTimeZoneOffset = mTimezoneOffsetSpin->value(); 1427// // KOPrefs::instance()->mTimeZoneOffset = mTimezoneOffsetSpin->value();
1413 1428
1414 KOPrefs::instance()->mStartTime = mStartTimeSpin->value(); 1429 KOPrefs::instance()->mStartTime = mStartTimeSpin->value();
1415 KOPrefs::instance()->mDefaultDuration = mDefaultDurationSpin->value(); 1430 KOPrefs::instance()->mDefaultDuration = mDefaultDurationSpin->value();
1416 KOPrefs::instance()->mAlarmTime = mAlarmTimeCombo->currentItem(); 1431 KOPrefs::instance()->mAlarmTime = mAlarmTimeCombo->currentItem();
1417 1432
1418 //KOPrefs::instance()->mAllDaySize = mHourSizeSlider->value(); 1433 //KOPrefs::instance()->mAllDaySize = mHourSizeSlider->value();
1419 1434
1420 QDictIterator<QColor> it(mCategoryDict); 1435 QDictIterator<QColor> it(mCategoryDict);
1421 while (it.current()) { 1436 while (it.current()) {
1422 KOPrefs::instance()->setCategoryColor(it.currentKey(),*it.current()); 1437 KOPrefs::instance()->setCategoryColor(it.currentKey(),*it.current());
1423 ++it; 1438 ++it;
1424 } 1439 }
1425 1440
1426 KOPrefs::instance()->mNextXDays = mNextXDaysSpin->value(); 1441 KOPrefs::instance()->mNextXDays = mNextXDaysSpin->value();
1427 KOPrefs::instance()->mWhatsNextDays = mWhatsNextSpin->value(); 1442 KOPrefs::instance()->mWhatsNextDays = mWhatsNextSpin->value();
1428 KOPrefs::instance()->mWhatsNextPrios = mPrioSpin->value(); 1443 KOPrefs::instance()->mWhatsNextPrios = mPrioSpin->value();
1429 1444
1430 KOPrefs::instance()->mAdditionalMails.clear(); 1445 KOPrefs::instance()->mAdditionalMails.clear();
1431 // QListViewItem *item; 1446 // QListViewItem *item;
1432 // item = mAMails->firstChild(); 1447 // item = mAMails->firstChild();
1433 // while (item) 1448 // while (item)
1434 // { 1449 // {
1435 // KOPrefs::instance()->mAdditionalMails.append( item->text(0) ); 1450 // KOPrefs::instance()->mAdditionalMails.append( item->text(0) );
1436 // item = item->nextSibling(); 1451 // item = item->nextSibling();
1437 // } 1452 // }
1438 KOPrefs::instance()->mAlarmPlayBeeps = mAlarmPlayBeeps->value(); 1453 KOPrefs::instance()->mAlarmPlayBeeps = mAlarmPlayBeeps->value();
1439 KOPrefs::instance()->mAlarmSuspendTime = mAlarmSuspendTime->value() ; 1454 KOPrefs::instance()->mAlarmSuspendTime = mAlarmSuspendTime->value() ;
1440 KOPrefs::instance()->mAlarmSuspendCount= mAlarmSuspendCount->value() ; 1455 KOPrefs::instance()->mAlarmSuspendCount= mAlarmSuspendCount->value() ;
1441 KOPrefs::instance()->mAlarmBeepInterval= mAlarmBeepInterval->value() ; 1456 KOPrefs::instance()->mAlarmBeepInterval= mAlarmBeepInterval->value() ;
1442 1457
1443} 1458}
1444 1459
1445void KOPrefsDialog::updateCategories() 1460void KOPrefsDialog::updateCategories()
1446{ 1461{
1447 mCategoryCombo->clear(); 1462 mCategoryCombo->clear();
1448 mCategoryDict.clear(); 1463 mCategoryDict.clear();
1449 mCategoryCombo->insertStringList(KOPrefs::instance()->mCustomCategories); 1464 mCategoryCombo->insertStringList(KOPrefs::instance()->mCustomCategories);
1450 updateCategoryColor(); 1465 updateCategoryColor();
1451} 1466}
1452 1467
1453void KOPrefsDialog::warningGroupScheduling() 1468void KOPrefsDialog::warningGroupScheduling()
1454{ 1469{
1455 warningExperimental(mEnableGroupScheduling->checkBox()->isChecked()); 1470 warningExperimental(mEnableGroupScheduling->checkBox()->isChecked());
1456} 1471}
1457 1472
1458void KOPrefsDialog::warningProjectView() 1473void KOPrefsDialog::warningProjectView()
1459{ 1474{
1460 warningExperimental(mEnableProjectView->checkBox()->isChecked()); 1475 warningExperimental(mEnableProjectView->checkBox()->isChecked());
1461} 1476}
1462 1477
1463void KOPrefsDialog::warningExperimental(bool on) 1478void KOPrefsDialog::warningExperimental(bool on)
1464{ 1479{
1465 if (on) { 1480 if (on) {
1466 KMessageBox::information(this,i18n("This is an experimental feature. " 1481 KMessageBox::information(this,i18n("This is an experimental feature. "
1467 "It may not work, it may do nothing useful and it may cause data loss. " 1482 "It may not work, it may do nothing useful and it may cause data loss. "
1468 "Use with care.\n" 1483 "Use with care.\n"
1469 "You have to restart KOrganizer for this setting to take effect.")); 1484 "You have to restart KOrganizer for this setting to take effect."));
1470 } else { 1485 } else {
1471 KMessageBox::information(this, 1486 KMessageBox::information(this,
1472 i18n("You have to restart KOrganizer for this setting to take effect.")); 1487 i18n("You have to restart KOrganizer for this setting to take effect."));
1473 } 1488 }
1474} 1489}
1475 1490
1476void KOPrefsDialog::toggleEmailSettings(bool on) 1491void KOPrefsDialog::toggleEmailSettings(bool on)
1477{ 1492{
1478 if (on) { 1493 if (on) {
1479 mEmailEdit->setEnabled(false); 1494 mEmailEdit->setEnabled(false);
1480 mNameEdit->setEnabled(false); 1495 mNameEdit->setEnabled(false);
1481 mEmailLabel->setEnabled(false); 1496 mEmailLabel->setEnabled(false);
1482 mNameLabel->setEnabled(false); 1497 mNameLabel->setEnabled(false);
1483 1498
1484 KEMailSettings settings; 1499 KEMailSettings settings;
1485 mNameEdit->setText(settings.getSetting(KEMailSettings::RealName)); 1500 mNameEdit->setText(settings.getSetting(KEMailSettings::RealName));
1486 mEmailEdit->setText(settings.getSetting(KEMailSettings::EmailAddress)); 1501 mEmailEdit->setText(settings.getSetting(KEMailSettings::EmailAddress));
1487 } else { 1502 } else {
1488 mEmailEdit->setEnabled(true); 1503 mEmailEdit->setEnabled(true);
1489 mNameEdit->setEnabled(true); 1504 mNameEdit->setEnabled(true);
1490 mEmailLabel->setEnabled(true); 1505 mEmailLabel->setEnabled(true);
1491 mNameLabel->setEnabled(true); 1506 mNameLabel->setEnabled(true);
1492 } 1507 }
1493} 1508}
1494 1509
1495void KOPrefsDialog::addItem() 1510void KOPrefsDialog::addItem()
1496{ 1511{
1497 // aEmailsEdit->setEnabled(true); 1512 // aEmailsEdit->setEnabled(true);
1498// QListViewItem *item = new QListViewItem(mAMails); 1513// QListViewItem *item = new QListViewItem(mAMails);
1499// mAMails->insertItem(item); 1514// mAMails->insertItem(item);
1500// mAMails->setSelected(item,true); 1515// mAMails->setSelected(item,true);
1501// aEmailsEdit->setText(i18n("(EmptyEmail)")); 1516// aEmailsEdit->setText(i18n("(EmptyEmail)"));
1502} 1517}
1503 1518
1504void KOPrefsDialog::removeItem() 1519void KOPrefsDialog::removeItem()
1505{ 1520{
1506// QListViewItem *item; 1521// QListViewItem *item;
1507// item = mAMails->selectedItem(); 1522// item = mAMails->selectedItem();
1508// if (!item) return; 1523// if (!item) return;
1509// mAMails->takeItem(item); 1524// mAMails->takeItem(item);
1510// item = mAMails->selectedItem(); 1525// item = mAMails->selectedItem();
1511// if (!item) { 1526// if (!item) {
1512// aEmailsEdit->setText(""); 1527// aEmailsEdit->setText("");
1513// aEmailsEdit->setEnabled(false); 1528// aEmailsEdit->setEnabled(false);
1514// } 1529// }
1515// if (mAMails->childCount() == 0) { 1530// if (mAMails->childCount() == 0) {
1516// aEmailsEdit->setEnabled(false); 1531// aEmailsEdit->setEnabled(false);
1517// } 1532// }
1518} 1533}
1519 1534
1520void KOPrefsDialog::updateItem() 1535void KOPrefsDialog::updateItem()
1521{ 1536{
1522 // QListViewItem *item; 1537 // QListViewItem *item;
1523// item = mAMails->selectedItem(); 1538// item = mAMails->selectedItem();
1524// if (!item) return; 1539// if (!item) return;
1525// item->setText(0,aEmailsEdit->text()); 1540// item->setText(0,aEmailsEdit->text());
1526} 1541}
1527 1542
1528void KOPrefsDialog::updateInput() 1543void KOPrefsDialog::updateInput()
1529{ 1544{
1530// QListViewItem *item; 1545// QListViewItem *item;
1531// item = mAMails->selectedItem(); 1546// item = mAMails->selectedItem();
1532// if (!item) return; 1547// if (!item) return;
1533// aEmailsEdit->setEnabled(true); 1548// aEmailsEdit->setEnabled(true);
1534// aEmailsEdit->setText(item->text(0)); 1549// aEmailsEdit->setText(item->text(0));
1535} 1550}
1536void KOPrefsDialog::updateTimezoneOffset( int index ) 1551void KOPrefsDialog::updateTimezoneOffset( int index )
1537{ 1552{
1538 /* 1553 /*
1539 qDebug("updateTimezoneOffset %d ", index); 1554 qDebug("updateTimezoneOffset %d ", index);
1540 if ( index < 24 ) { 1555 if ( index < 24 ) {
1541 mTimezoneOffsetSpin->setEnabled ( false ); 1556 mTimezoneOffsetSpin->setEnabled ( false );
1542 mTimezoneOffsetSpin->setValue( ( index-11 ) * 60 ); 1557 mTimezoneOffsetSpin->setValue( ( index-11 ) * 60 );
1543 1558
1544 1559
1545 } else { 1560 } else {
1546 if ( index == 24 ) { 1561 if ( index == 24 ) {
1547 mTimezoneOffsetSpin->setEnabled ( true ); 1562 mTimezoneOffsetSpin->setEnabled ( true );
1548 mTimezoneOffsetSpin->setValue( KOPrefs::instance()->mTimeZoneOffset); 1563 mTimezoneOffsetSpin->setValue( KOPrefs::instance()->mTimeZoneOffset);
1549 1564
1550 } else { 1565 } else {
1551 mTimezoneOffsetSpin->setEnabled ( false ); 1566 mTimezoneOffsetSpin->setEnabled ( false );
1552 mTimezoneOffsetSpin->setValue( 0 ); 1567 mTimezoneOffsetSpin->setValue( 0 );
1553 } 1568 }
1554 } 1569 }
1555 */ 1570 */
1556} 1571}
1557 1572
1558void KOPrefsDialog::setupTimeZoneTab() 1573void KOPrefsDialog::setupTimeZoneTab()
1559{ 1574{
1575#if 0
1560 QFrame *topFrame = addPage(i18n("Time Zone"),0,0); 1576 QFrame *topFrame = addPage(i18n("Time Zone"),0,0);
1561 // DesktopIcon("clock",KIcon::SizeMedium)); 1577 // DesktopIcon("clock",KIcon::SizeMedium));
1562 1578
1563 QGridLayout *topLayout = new QGridLayout(topFrame,5,2); 1579 QGridLayout *topLayout = new QGridLayout(topFrame,5,2);
1564 topLayout->setSpacing(spacingHint()); 1580 topLayout->setSpacing(spacingHint());
1565 topLayout->setMargin(marginHint()); 1581 topLayout->setMargin(marginHint());
1566 1582
1567 QHBox *timeZoneBox = new QHBox( topFrame ); 1583 QHBox *timeZoneBox = new QHBox( topFrame );
1568 topLayout->addMultiCellWidget( timeZoneBox, 0, 0, 0, 1 ); 1584 topLayout->addMultiCellWidget( timeZoneBox, 0, 0, 0, 1 );
1569 1585
1570 new QLabel( i18n("Timezone:"), timeZoneBox ); 1586 new QLabel( i18n("Timezone:"), timeZoneBox );
1571 mTimeZoneCombo = new QComboBox( timeZoneBox ); 1587 mTimeZoneCombo = new QComboBox( timeZoneBox );
1572 if ( QApplication::desktop()->width() < 300 ) { 1588 if ( QApplication::desktop()->width() < 300 ) {
1573 mTimeZoneCombo->setMaximumWidth(150); 1589 mTimeZoneCombo->setMaximumWidth(150);
1574 } 1590 }
1575 1591
1576 QStringList list; 1592 QStringList list;
1577 list = KGlobal::locale()->timeZoneList(); 1593 list = KGlobal::locale()->timeZoneList();
1578 mTimeZoneCombo->insertStringList(list); 1594 mTimeZoneCombo->insertStringList(list);
1579 1595
1580 // find the currently set time zone and select it 1596 // find the currently set time zone and select it
1581 QString sCurrentlySet = KOPrefs::instance()->mTimeZoneId; 1597 QString sCurrentlySet = KOPrefs::instance()->mTimeZoneId;
1582 int nCurrentlySet = 11; 1598 int nCurrentlySet = 11;
1583 for (int i = 0; i < mTimeZoneCombo->count(); i++) 1599 for (int i = 0; i < mTimeZoneCombo->count(); i++)
1584 { 1600 {
1585 if (mTimeZoneCombo->text(i) == sCurrentlySet) 1601 if (mTimeZoneCombo->text(i) == sCurrentlySet)
1586 { 1602 {
1587 nCurrentlySet = i; 1603 nCurrentlySet = i;
1588 break; 1604 break;
1589 } 1605 }
1590 } 1606 }
1591 mTimeZoneCombo->setCurrentItem(nCurrentlySet); 1607 mTimeZoneCombo->setCurrentItem(nCurrentlySet);
1592 int iii = 1; 1608 int iii = 1;
1593 KPrefsDialogWidBool *sb = 1609 KPrefsDialogWidBool *sb =
1594 addWidBool(i18n("Timezone has daylight saving"), 1610 addWidBool(i18n("Timezone has daylight saving"),
1595 &(KOPrefs::instance()->mUseDaylightsaving),topFrame); 1611 &(KOPrefs::instance()->mUseDaylightsaving),topFrame);
1596 topLayout->addMultiCellWidget(sb->checkBox(), iii,iii,0,1); 1612 topLayout->addMultiCellWidget(sb->checkBox(), iii,iii,0,1);
1597 ++iii; 1613 ++iii;
1598 QLabel* lab = new QLabel( i18n("Actual start and end is the\nsunday before this date."), topFrame ); 1614 QLabel* lab = new QLabel( i18n("Actual start and end is the\nsunday before this date."), topFrame );
1599 topLayout->addMultiCellWidget(lab, iii,iii,0,1); 1615 topLayout->addMultiCellWidget(lab, iii,iii,0,1);
1600 ++iii; 1616 ++iii;
1601 lab = new QLabel( i18n("The year in the date is ignored."), topFrame ); 1617 lab = new QLabel( i18n("The year in the date is ignored."), topFrame );
1602 topLayout->addMultiCellWidget(lab, iii,iii,0,1); 1618 topLayout->addMultiCellWidget(lab, iii,iii,0,1);
1603 ++iii; 1619 ++iii;
1604 lab = new QLabel( i18n("Daylight start:"), topFrame ); 1620 lab = new QLabel( i18n("Daylight start:"), topFrame );
1605 topLayout->addWidget(lab, iii,0); 1621 topLayout->addWidget(lab, iii,0);
1606 mStartDateSavingEdit = new KDateEdit(topFrame); 1622 mStartDateSavingEdit = new KDateEdit(topFrame);
1607 topLayout->addWidget(mStartDateSavingEdit, iii,1); 1623 topLayout->addWidget(mStartDateSavingEdit, iii,1);
1608 ++iii; 1624 ++iii;
1609 1625
1610 lab = new QLabel( i18n("Daylight end:"), topFrame ); 1626 lab = new QLabel( i18n("Daylight end:"), topFrame );
1611 topLayout->addWidget(lab, iii,0); 1627 topLayout->addWidget(lab, iii,0);
1612 mEndDateSavingEdit = new KDateEdit(topFrame); 1628 mEndDateSavingEdit = new KDateEdit(topFrame);
1613 topLayout->addWidget(mEndDateSavingEdit, iii,1); 1629 topLayout->addWidget(mEndDateSavingEdit, iii,1);
1614 ++iii; 1630 ++iii;
1615 QDate current ( 2001, 1,1); 1631 QDate current ( 2001, 1,1);
1616 mStartDateSavingEdit->setDate(current.addDays(KOPrefs::instance()->mDaylightsavingStart-1)); 1632 mStartDateSavingEdit->setDate(current.addDays(KOPrefs::instance()->mDaylightsavingStart-1));
1617 mEndDateSavingEdit->setDate(current.addDays(KOPrefs::instance()->mDaylightsavingEnd-1)); 1633 mEndDateSavingEdit->setDate(current.addDays(KOPrefs::instance()->mDaylightsavingEnd-1));
1618 1634#endif
1619 1635
1620} 1636}
1621 1637
diff --git a/korganizer/mainwindow.cpp b/korganizer/mainwindow.cpp
index b597a6a..1c4a186 100644
--- a/korganizer/mainwindow.cpp
+++ b/korganizer/mainwindow.cpp
@@ -1,2134 +1,2136 @@
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 <qmessagebox.h> 7#include <qmessagebox.h>
8#include <qlineedit.h> 8#include <qlineedit.h>
9#include <qfile.h> 9#include <qfile.h>
10#include <qdir.h> 10#include <qdir.h>
11#include <qapp.h> 11#include <qapp.h>
12#include <qfileinfo.h> 12#include <qfileinfo.h>
13#include <qlabel.h> 13#include <qlabel.h>
14#include <qmap.h> 14#include <qmap.h>
15#include <qwmatrix.h> 15#include <qwmatrix.h>
16#include <qtextbrowser.h> 16#include <qtextbrowser.h>
17#include <qtextstream.h> 17#include <qtextstream.h>
18#ifndef DESKTOP_VERSION 18#ifndef DESKTOP_VERSION
19#include <qpe/global.h> 19#include <qpe/global.h>
20#include <qpe/qpemenubar.h> 20#include <qpe/qpemenubar.h>
21#include <qpe/qpetoolbar.h> 21#include <qpe/qpetoolbar.h>
22#include <qpe/resource.h> 22#include <qpe/resource.h>
23#include <qpe/qpeapplication.h> 23#include <qpe/qpeapplication.h>
24#include <qtopia/alarmserver.h> 24#include <qtopia/alarmserver.h>
25#include <qtopia/qcopenvelope_qws.h> 25#include <qtopia/qcopenvelope_qws.h>
26#else 26#else
27#include <qmenubar.h> 27#include <qmenubar.h>
28#include <qtoolbar.h> 28#include <qtoolbar.h>
29#include <qapplication.h> 29#include <qapplication.h>
30//#include <resource.h> 30//#include <resource.h>
31 31
32#endif 32#endif
33#include <libkcal/calendarlocal.h> 33#include <libkcal/calendarlocal.h>
34#include <libkcal/todo.h> 34#include <libkcal/todo.h>
35#include <libkdepim/ksyncprofile.h> 35#include <libkdepim/ksyncprofile.h>
36#include <libkcal/kincidenceformatter.h> 36#include <libkcal/kincidenceformatter.h>
37#include <libkdepim/kpimglobalprefs.h>
37 38
38#include "calendarview.h" 39#include "calendarview.h"
39#include "koviewmanager.h" 40#include "koviewmanager.h"
40#include "datenavigator.h" 41#include "datenavigator.h"
41#include "koagendaview.h" 42#include "koagendaview.h"
42#include "koagenda.h" 43#include "koagenda.h"
43#include "kodialogmanager.h" 44#include "kodialogmanager.h"
44#include "kdialogbase.h" 45#include "kdialogbase.h"
45#include "kapplication.h" 46#include "kapplication.h"
46#include "kofilterview.h" 47#include "kofilterview.h"
47#include "kstandarddirs.h" 48#include "kstandarddirs.h"
48#include "koprefs.h" 49#include "koprefs.h"
49#include "kfiledialog.h" 50#include "kfiledialog.h"
50#include "koglobals.h" 51#include "koglobals.h"
51#include "kglobal.h" 52#include "kglobal.h"
52#include "klocale.h" 53#include "klocale.h"
53#include "kconfig.h" 54#include "kconfig.h"
54#include "simplealarmclient.h" 55#include "simplealarmclient.h"
55#include "externalapphandler.h" 56#include "externalapphandler.h"
56 57
57using namespace KCal; 58using namespace KCal;
58#ifndef _WIN32_ 59#ifndef _WIN32_
59#include <unistd.h> 60#include <unistd.h>
60#else 61#else
61#include "koimportoldialog.h" 62#include "koimportoldialog.h"
62#endif 63#endif
63#include "mainwindow.h" 64#include "mainwindow.h"
64 65
65int globalFlagBlockStartup; 66int globalFlagBlockStartup;
66MainWindow::MainWindow( QWidget *parent, const char *name, QString msg) : 67MainWindow::MainWindow( QWidget *parent, const char *name, QString msg) :
67 QMainWindow( parent, name ) 68 QMainWindow( parent, name )
68{ 69{
69 70
70#ifdef DESKTOP_VERSION 71#ifdef DESKTOP_VERSION
71 setFont( QFont("Arial"), 14 ); 72 setFont( QFont("Arial"), 14 );
72#endif 73#endif
73 74
74 mClosed = false; 75 mClosed = false;
75 //QString confFile = KStandardDirs::appDir() + "config/korganizerrc"; 76 //QString confFile = KStandardDirs::appDir() + "config/korganizerrc";
76 QString confFile = locateLocal("config","korganizerrc"); 77 QString confFile = locateLocal("config","korganizerrc");
77 QFileInfo finf ( confFile ); 78 QFileInfo finf ( confFile );
78 bool showWarning = !finf.exists(); 79 bool showWarning = !finf.exists();
79 setIcon(SmallIcon( "ko24" ) ); 80 setIcon(SmallIcon( "ko24" ) );
80 mBlockAtStartup = true; 81 mBlockAtStartup = true;
81 mFlagKeyPressed = false; 82 mFlagKeyPressed = false;
82 setCaption("KOrganizer/Pi"); 83 setCaption("KOrganizer/Pi");
83 KOPrefs *p = KOPrefs::instance(); 84 KOPrefs *p = KOPrefs::instance();
85 KPimGlobalPrefs::instance()->setGlobalConfig();
84 // if ( QApplication::desktop()->height() > 480 ) { 86 // if ( QApplication::desktop()->height() > 480 ) {
85// if ( p->mHourSize == 4 ) 87// if ( p->mHourSize == 4 )
86// p->mHourSize = 6; 88// p->mHourSize = 6;
87// } 89// }
88 if ( p->mHourSize > 18 ) 90 if ( p->mHourSize > 18 )
89 p->mHourSize = 18; 91 p->mHourSize = 18;
90 QMainWindow::ToolBarDock tbd; 92 QMainWindow::ToolBarDock tbd;
91 if ( p->mToolBarHor ) { 93 if ( p->mToolBarHor ) {
92 if ( p->mToolBarUp ) 94 if ( p->mToolBarUp )
93 tbd = Bottom; 95 tbd = Bottom;
94 else 96 else
95 tbd = Top; 97 tbd = Top;
96 } 98 }
97 else { 99 else {
98 if ( p->mToolBarUp ) 100 if ( p->mToolBarUp )
99 tbd = Right; 101 tbd = Right;
100 else 102 else
101 tbd = Left; 103 tbd = Left;
102 } 104 }
103 if ( KOPrefs::instance()->mUseAppColors ) 105 if ( KOPrefs::instance()->mUseAppColors )
104 QApplication::setPalette( QPalette (KOPrefs::instance()->mAppColor1, KOPrefs::instance()->mAppColor2), true ); 106 QApplication::setPalette( QPalette (KOPrefs::instance()->mAppColor1, KOPrefs::instance()->mAppColor2), true );
105 globalFlagBlockStartup = 1; 107 globalFlagBlockStartup = 1;
106 iconToolBar = new QPEToolBar( this ); 108 iconToolBar = new QPEToolBar( this );
107 addToolBar (iconToolBar , tbd ); 109 addToolBar (iconToolBar , tbd );
108 mBlockSaveFlag = false; 110 mBlockSaveFlag = false;
109 mCalendarModifiedFlag = false; 111 mCalendarModifiedFlag = false;
110 112
111 QLabel* splash = new QLabel(i18n("KO/Pi is starting ... "), this ); 113 QLabel* splash = new QLabel(i18n("KO/Pi is starting ... "), this );
112 splash->setAlignment ( AlignCenter ); 114 splash->setAlignment ( AlignCenter );
113 setCentralWidget( splash ); 115 setCentralWidget( splash );
114#ifndef DESKTOP_VERSION 116#ifndef DESKTOP_VERSION
115 showMaximized(); 117 showMaximized();
116#endif 118#endif
117 //qDebug("Mainwidget x %d y %d w %d h %d", x(), y(), width(), height ()); 119 //qDebug("Mainwidget x %d y %d w %d h %d", x(), y(), width(), height ());
118 setDefaultPreferences(); 120 setDefaultPreferences();
119 mCalendar = new CalendarLocal(); 121 mCalendar = new CalendarLocal();
120 mView = new CalendarView( mCalendar, this,"mCalendar " ); 122 mView = new CalendarView( mCalendar, this,"mCalendar " );
121 mView->hide(); 123 mView->hide();
122 //mView->resize(splash->size() ); 124 //mView->resize(splash->size() );
123 initActions(); 125 initActions();
124#ifndef DESKTOP_VERSION 126#ifndef DESKTOP_VERSION
125 iconToolBar->show(); 127 iconToolBar->show();
126 qApp->processEvents(); 128 qApp->processEvents();
127#endif 129#endif
128 //qDebug("Splashwidget x %d y %d w %d h %d", splash-> x(), splash->y(), splash->width(),splash-> height ()); 130 //qDebug("Splashwidget x %d y %d w %d h %d", splash-> x(), splash->y(), splash->width(),splash-> height ());
129 int vh = height() ; 131 int vh = height() ;
130 int vw = width(); 132 int vw = width();
131 //qDebug("Toolbar hei %d ",iconToolBar->height() ); 133 //qDebug("Toolbar hei %d ",iconToolBar->height() );
132 if ( iconToolBar->orientation () == Qt:: Horizontal ) { 134 if ( iconToolBar->orientation () == Qt:: Horizontal ) {
133 vh -= iconToolBar->height(); 135 vh -= iconToolBar->height();
134 } else { 136 } else {
135 vw -= iconToolBar->height(); 137 vw -= iconToolBar->height();
136 } 138 }
137 //mView->setMaximumSize( splash->size() ); 139 //mView->setMaximumSize( splash->size() );
138 //mView->resize( splash->size() ); 140 //mView->resize( splash->size() );
139 //qDebug("MainView x %d y %d w %d h %d", mView->x(),mView-> y(), mView->width(), mView->height ()); 141 //qDebug("MainView x %d y %d w %d h %d", mView->x(),mView-> y(), mView->width(), mView->height ());
140 mView->readSettings(); 142 mView->readSettings();
141 bool oldOpened = false; 143 bool oldOpened = false;
142 bool newFile = false; 144 bool newFile = false;
143 if( !QFile::exists( defaultFileName() ) ) { 145 if( !QFile::exists( defaultFileName() ) ) {
144 QFileInfo finfo ( defaultFileName() ); 146 QFileInfo finfo ( defaultFileName() );
145 QString oldFile = QDir::convertSeparators( QDir::homeDirPath()+"/Applications/korganizer/mycalendar.ics"); 147 QString oldFile = QDir::convertSeparators( QDir::homeDirPath()+"/Applications/korganizer/mycalendar.ics");
146 qDebug("oldfile %s ", oldFile.latin1()); 148 qDebug("oldfile %s ", oldFile.latin1());
147 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"; 149 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";
148 finfo.setFile( oldFile ); 150 finfo.setFile( oldFile );
149 if (finfo.exists() ) { 151 if (finfo.exists() ) {
150 KMessageBox::information( this, message); 152 KMessageBox::information( this, message);
151 mView->openCalendar( oldFile ); 153 mView->openCalendar( oldFile );
152 qApp->processEvents(); 154 qApp->processEvents();
153 } else { 155 } else {
154 oldFile = QDir::convertSeparators( QDir::homeDirPath()+"/korganizer/mycalendar.ics"); 156 oldFile = QDir::convertSeparators( QDir::homeDirPath()+"/korganizer/mycalendar.ics");
155 finfo.setFile( oldFile ); 157 finfo.setFile( oldFile );
156 if (finfo.exists() ) { 158 if (finfo.exists() ) {
157 KMessageBox::information( this, message); 159 KMessageBox::information( this, message);
158 mView->openCalendar( oldFile ); 160 mView->openCalendar( oldFile );
159 qApp->processEvents(); 161 qApp->processEvents();
160 } 162 }
161 } 163 }
162 mView->saveCalendar( defaultFileName() ); 164 mView->saveCalendar( defaultFileName() );
163 newFile = true; 165 newFile = true;
164 } 166 }
165 167
166 QTime neededSaveTime = QDateTime::currentDateTime().time(); 168 QTime neededSaveTime = QDateTime::currentDateTime().time();
167 if ( ! oldOpened ) 169 if ( ! oldOpened )
168 mView->openCalendar( defaultFileName() ); 170 mView->openCalendar( defaultFileName() );
169 int msNeeded = neededSaveTime.msecsTo( QDateTime::currentDateTime().time() ); 171 int msNeeded = neededSaveTime.msecsTo( QDateTime::currentDateTime().time() );
170 qDebug("KO: Calendar loading time: %d ms",msNeeded ); 172 qDebug("KO: Calendar loading time: %d ms",msNeeded );
171 173
172 if ( KOPrefs::instance()->mLanguageChanged ) { 174 if ( KOPrefs::instance()->mLanguageChanged ) {
173 KOPrefs::instance()->setCategoryDefaults(); 175 KOPrefs::instance()->setCategoryDefaults();
174 int count = mView->addCategories(); 176 int count = mView->addCategories();
175 KOPrefs::instance()->mLanguageChanged = false; 177 KOPrefs::instance()->mLanguageChanged = false;
176 } 178 }
177 processIncidenceSelection( 0 ); 179 processIncidenceSelection( 0 );
178 connect( mView, SIGNAL( incidenceSelected( Incidence * ) ), 180 connect( mView, SIGNAL( incidenceSelected( Incidence * ) ),
179 SLOT( processIncidenceSelection( Incidence * ) ) ); 181 SLOT( processIncidenceSelection( Incidence * ) ) );
180 connect( mView, SIGNAL( modifiedChanged( bool ) ), 182 connect( mView, SIGNAL( modifiedChanged( bool ) ),
181 SLOT( slotModifiedChanged( bool ) ) ); 183 SLOT( slotModifiedChanged( bool ) ) );
182 184
183 185
184 connect( &mSaveTimer, SIGNAL( timeout() ), SLOT( save() ) ); 186 connect( &mSaveTimer, SIGNAL( timeout() ), SLOT( save() ) );
185 mView->setModified( false ); 187 mView->setModified( false );
186 mBlockAtStartup = false; 188 mBlockAtStartup = false;
187 mView->setModified( false ); 189 mView->setModified( false );
188 setCentralWidget( mView ); 190 setCentralWidget( mView );
189 globalFlagBlockStartup = 0; 191 globalFlagBlockStartup = 0;
190 mView->show(); 192 mView->show();
191 delete splash; 193 delete splash;
192 if ( newFile ) 194 if ( newFile )
193 mView->updateConfig(); 195 mView->updateConfig();
194 // qApp->processEvents(); 196 // qApp->processEvents();
195 //qDebug("MainView x %d y %d w %d h %d", mView->x(),mView-> y(), mView->width(), mView->height ()); 197 //qDebug("MainView x %d y %d w %d h %d", mView->x(),mView-> y(), mView->width(), mView->height ());
196 fillSyncMenu(); 198 fillSyncMenu();
197 mView->viewManager()->agendaView()->setStartHour( KOPrefs::instance()->mDayBegins ); 199 mView->viewManager()->agendaView()->setStartHour( KOPrefs::instance()->mDayBegins );
198 if ( showWarning ) { 200 if ( showWarning ) {
199 KMessageBox::information( this, 201 KMessageBox::information( this,
200 "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"); 202 "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");
201 qApp->processEvents(); 203 qApp->processEvents();
202 mView->dialogManager()->showSyncOptions(); 204 mView->dialogManager()->showSyncOptions();
203 } 205 }
204 206
205 //US listen for result adressed from Ka/Pi 207 //US listen for result adressed from Ka/Pi
206#ifndef DESKTOP_VERSION 208#ifndef DESKTOP_VERSION
207 connect(qApp, SIGNAL (appMessage ( const QCString &, const QByteArray & )), ExternalAppHandler::instance(), SLOT (appMessage ( const QCString &, const QByteArray & ))); 209 connect(qApp, SIGNAL (appMessage ( const QCString &, const QByteArray & )), ExternalAppHandler::instance(), SLOT (appMessage ( const QCString &, const QByteArray & )));
208#endif 210#endif
209} 211}
210MainWindow::~MainWindow() 212MainWindow::~MainWindow()
211{ 213{
212 //qDebug("MainWindow::~MainWindow() "); 214 //qDebug("MainWindow::~MainWindow() ");
213 //save toolbar location 215 //save toolbar location
214 216
215 delete mCalendar; 217 delete mCalendar;
216 delete KOPrefs::instance(); 218 delete KOPrefs::instance();
217 delete KIncidenceFormatter::instance(); 219 delete KIncidenceFormatter::instance();
218 220
219 221
220} 222}
221void MainWindow::showMaximized () 223void MainWindow::showMaximized ()
222{ 224{
223#ifndef DESKTOP_VERSION 225#ifndef DESKTOP_VERSION
224 if ( ! globalFlagBlockStartup ) 226 if ( ! globalFlagBlockStartup )
225 if ( mClosed ) 227 if ( mClosed )
226 mView->goToday(); 228 mView->goToday();
227#endif 229#endif
228 QWidget::showMaximized () ; 230 QWidget::showMaximized () ;
229 mClosed = false; 231 mClosed = false;
230} 232}
231void MainWindow::closeEvent( QCloseEvent* ce ) 233void MainWindow::closeEvent( QCloseEvent* ce )
232{ 234{
233 235
234 236
235 237
236 if ( ! KOPrefs::instance()->mAskForQuit ) { 238 if ( ! KOPrefs::instance()->mAskForQuit ) {
237 saveOnClose(); 239 saveOnClose();
238 mClosed = true; 240 mClosed = true;
239 ce->accept(); 241 ce->accept();
240 return; 242 return;
241 243
242 } 244 }
243 245
244 switch( QMessageBox::information( this, "KO/Pi", 246 switch( QMessageBox::information( this, "KO/Pi",
245 i18n("Do you really want\nto close KO/Pi?"), 247 i18n("Do you really want\nto close KO/Pi?"),
246 i18n("Close"), i18n("No"), 248 i18n("Close"), i18n("No"),
247 0, 0 ) ) { 249 0, 0 ) ) {
248 case 0: 250 case 0:
249 saveOnClose(); 251 saveOnClose();
250 mClosed = true; 252 mClosed = true;
251 ce->accept(); 253 ce->accept();
252 break; 254 break;
253 case 1: 255 case 1:
254 ce->ignore(); 256 ce->ignore();
255 break; 257 break;
256 case 2: 258 case 2:
257 259
258 default: 260 default:
259 break; 261 break;
260 } 262 }
261 263
262 264
263} 265}
264 266
265void MainWindow::recieve( const QCString& cmsg, const QByteArray& data ) 267void MainWindow::recieve( const QCString& cmsg, const QByteArray& data )
266{ 268{
267 QDataStream stream( data, IO_ReadOnly ); 269 QDataStream stream( data, IO_ReadOnly );
268 // QMessageBox::about( this, "About KOrganizer/Pi", "*" +msg +"*" ); 270 // QMessageBox::about( this, "About KOrganizer/Pi", "*" +msg +"*" );
269 //QString datamess; 271 //QString datamess;
270 //qDebug("message "); 272 //qDebug("message ");
271 qDebug("KO: QCOP message received: %s ", cmsg.data() ); 273 qDebug("KO: QCOP message received: %s ", cmsg.data() );
272 274
273 if ( cmsg == "-writeFile" ) { 275 if ( cmsg == "-writeFile" ) {
274 // I made from the "-writeFile" an "-writeAlarm" 276 // I made from the "-writeFile" an "-writeAlarm"
275 mView->viewManager()->showWhatsNextView(); 277 mView->viewManager()->showWhatsNextView();
276 mCalendar->checkAlarmForIncidence( 0, true); 278 mCalendar->checkAlarmForIncidence( 0, true);
277 showMaximized(); 279 showMaximized();
278 raise(); 280 raise();
279 return; 281 return;
280 } 282 }
281 283
282 if ( cmsg == "-writeFile" ) { 284 if ( cmsg == "-writeFile" ) {
283 // I made from the "-writeFile" an "-writeAlarm" 285 // I made from the "-writeFile" an "-writeAlarm"
284 mView->viewManager()->showWhatsNextView(); 286 mView->viewManager()->showWhatsNextView();
285 mCalendar->checkAlarmForIncidence( 0, true); 287 mCalendar->checkAlarmForIncidence( 0, true);
286 showMaximized(); 288 showMaximized();
287 raise(); 289 raise();
288 return; 290 return;
289 291
290 } 292 }
291 if ( cmsg == "-writeFileSilent" ) { 293 if ( cmsg == "-writeFileSilent" ) {
292 // I made from the "-writeFile" an "-writeAlarm" 294 // I made from the "-writeFile" an "-writeAlarm"
293 // mView->viewManager()->showWhatsNextView(); 295 // mView->viewManager()->showWhatsNextView();
294 mCalendar->checkAlarmForIncidence( 0, true); 296 mCalendar->checkAlarmForIncidence( 0, true);
295 //showMaximized(); 297 //showMaximized();
296 //raise(); 298 //raise();
297 hide(); 299 hide();
298 return; 300 return;
299 } 301 }
300 if ( cmsg == "-newCountdown" ) { 302 if ( cmsg == "-newCountdown" ) {
301 qDebug("newCountdown "); 303 qDebug("newCountdown ");
302 304
303 } 305 }
304 QString msg ; 306 QString msg ;
305 QString allmsg = cmsg; 307 QString allmsg = cmsg;
306 while ( allmsg.length() > 0 ) { 308 while ( allmsg.length() > 0 ) {
307 int nextC = allmsg.find( "-", 1 ); 309 int nextC = allmsg.find( "-", 1 );
308 if ( nextC == -1 ) { 310 if ( nextC == -1 ) {
309 msg = allmsg; 311 msg = allmsg;
310 allmsg = ""; 312 allmsg = "";
311 } else{ 313 } else{
312 msg = allmsg.left( nextC ); 314 msg = allmsg.left( nextC );
313 allmsg = allmsg.mid( nextC, allmsg.length()-nextC ); 315 allmsg = allmsg.mid( nextC, allmsg.length()-nextC );
314 } 316 }
315 //qDebug("msg: %s all: %s ", msg.latin1(), allmsg.latin1() ); 317 //qDebug("msg: %s all: %s ", msg.latin1(), allmsg.latin1() );
316 if ( msg == "-newEvent" ) { 318 if ( msg == "-newEvent" ) {
317 mView->newEvent(); 319 mView->newEvent();
318 } 320 }
319 if ( msg == "-newTodo" ) { 321 if ( msg == "-newTodo" ) {
320 mView->newTodo(); 322 mView->newTodo();
321 323
322 } 324 }
323 if ( msg == "-showWN" ) { 325 if ( msg == "-showWN" ) {
324 mView->viewManager()->showWhatsNextView(); 326 mView->viewManager()->showWhatsNextView();
325 } 327 }
326 if ( msg == "-showTodo" ) { 328 if ( msg == "-showTodo" ) {
327 mView->viewManager()->showTodoView(); 329 mView->viewManager()->showTodoView();
328 } 330 }
329 if ( msg == "-showList" ) { 331 if ( msg == "-showList" ) {
330 mView->viewManager()->showListView(); 332 mView->viewManager()->showListView();
331 } 333 }
332 else if ( msg == "-showDay" ) { 334 else if ( msg == "-showDay" ) {
333 mView->viewManager()->showDayView(); 335 mView->viewManager()->showDayView();
334 } 336 }
335 else if ( msg == "-showWWeek" ) { 337 else if ( msg == "-showWWeek" ) {
336 mView->viewManager()->showWorkWeekView(); 338 mView->viewManager()->showWorkWeekView();
337 } 339 }
338 else if ( msg == "-ringSync" ) { 340 else if ( msg == "-ringSync" ) {
339 multiSync( false ); 341 multiSync( false );
340 } 342 }
341 else if ( msg == "-showWeek" ) { 343 else if ( msg == "-showWeek" ) {
342 mView->viewManager()->showWeekView(); 344 mView->viewManager()->showWeekView();
343 } 345 }
344 else if ( msg == "-showTodo" ) { 346 else if ( msg == "-showTodo" ) {
345 mView->viewManager()->showTodoView(); 347 mView->viewManager()->showTodoView();
346 } 348 }
347 else if ( msg == "-showJournal" ) { 349 else if ( msg == "-showJournal" ) {
348 mView->dateNavigator()->selectDates( 1 ); 350 mView->dateNavigator()->selectDates( 1 );
349 mView->dateNavigator()->selectToday(); 351 mView->dateNavigator()->selectToday();
350 mView->viewManager()->showJournalView(); 352 mView->viewManager()->showJournalView();
351 } 353 }
352 else if ( msg == "-showKO" ) { 354 else if ( msg == "-showKO" ) {
353 mView->viewManager()->showNextXView(); 355 mView->viewManager()->showNextXView();
354 } 356 }
355 else if ( msg == "-showWNext" || msg == "nextView()" ) { 357 else if ( msg == "-showWNext" || msg == "nextView()" ) {
356 mView->viewManager()->showWhatsNextView(); 358 mView->viewManager()->showWhatsNextView();
357 } 359 }
358 else if ( msg == "-showNextXView" ) { 360 else if ( msg == "-showNextXView" ) {
359 mView->viewManager()->showNextXView(); 361 mView->viewManager()->showNextXView();
360 } 362 }
361 363
362 364
363 } 365 }
364 366
365 showMaximized(); 367 showMaximized();
366 raise(); 368 raise();
367} 369}
368 370
369QPixmap MainWindow::loadPixmap( QString name ) 371QPixmap MainWindow::loadPixmap( QString name )
370{ 372{
371 return SmallIcon( name ); 373 return SmallIcon( name );
372 374
373} 375}
374void MainWindow::initActions() 376void MainWindow::initActions()
375{ 377{
376 //KOPrefs::instance()->mShowFullMenu 378 //KOPrefs::instance()->mShowFullMenu
377 iconToolBar->clear(); 379 iconToolBar->clear();
378 KOPrefs *p = KOPrefs::instance(); 380 KOPrefs *p = KOPrefs::instance();
379 //QPEMenuBar *menuBar1;// = new QPEMenuBar( iconToolBar ); 381 //QPEMenuBar *menuBar1;// = new QPEMenuBar( iconToolBar );
380 382
381 QPopupMenu *viewMenu = new QPopupMenu( this ); 383 QPopupMenu *viewMenu = new QPopupMenu( this );
382 QPopupMenu *actionMenu = new QPopupMenu( this ); 384 QPopupMenu *actionMenu = new QPopupMenu( this );
383 QPopupMenu *importMenu = new QPopupMenu( this ); 385 QPopupMenu *importMenu = new QPopupMenu( this );
384 selectFilterMenu = new QPopupMenu( this ); 386 selectFilterMenu = new QPopupMenu( this );
385 selectFilterMenu->setCheckable( true ); 387 selectFilterMenu->setCheckable( true );
386 syncMenu = new QPopupMenu( this ); 388 syncMenu = new QPopupMenu( this );
387 configureAgendaMenu = new QPopupMenu( this ); 389 configureAgendaMenu = new QPopupMenu( this );
388 configureToolBarMenu = new QPopupMenu( this ); 390 configureToolBarMenu = new QPopupMenu( this );
389 QPopupMenu *helpMenu = new QPopupMenu( this ); 391 QPopupMenu *helpMenu = new QPopupMenu( this );
390 if ( KOPrefs::instance()->mShowFullMenu ) { 392 if ( KOPrefs::instance()->mShowFullMenu ) {
391 QMenuBar *menuBar1; 393 QMenuBar *menuBar1;
392 menuBar1 = menuBar(); 394 menuBar1 = menuBar();
393 menuBar1->insertItem( i18n("File"), importMenu ); 395 menuBar1->insertItem( i18n("File"), importMenu );
394 menuBar1->insertItem( i18n("View"), viewMenu ); 396 menuBar1->insertItem( i18n("View"), viewMenu );
395 menuBar1->insertItem( i18n("Actions"), actionMenu ); 397 menuBar1->insertItem( i18n("Actions"), actionMenu );
396 menuBar1->insertItem( i18n("Synchronize"), syncMenu ); 398 menuBar1->insertItem( i18n("Synchronize"), syncMenu );
397 menuBar1->insertItem( i18n("AgendaSize"),configureAgendaMenu ); 399 menuBar1->insertItem( i18n("AgendaSize"),configureAgendaMenu );
398 //menuBar1->insertItem( i18n("Toolbar"),configureToolBarMenu ); 400 //menuBar1->insertItem( i18n("Toolbar"),configureToolBarMenu );
399 menuBar1->insertItem( i18n("Filter"),selectFilterMenu ); 401 menuBar1->insertItem( i18n("Filter"),selectFilterMenu );
400 menuBar1->insertItem( i18n("Help"), helpMenu ); 402 menuBar1->insertItem( i18n("Help"), helpMenu );
401 } else { 403 } else {
402 QPEMenuBar *menuBar1; 404 QPEMenuBar *menuBar1;
403 menuBar1 = new QPEMenuBar( iconToolBar ); 405 menuBar1 = new QPEMenuBar( iconToolBar );
404 QPopupMenu *menuBar = new QPopupMenu( this ); 406 QPopupMenu *menuBar = new QPopupMenu( this );
405 menuBar1->insertItem( i18n("ME"), menuBar); 407 menuBar1->insertItem( i18n("ME"), menuBar);
406 menuBar->insertItem( i18n("File"), importMenu ); 408 menuBar->insertItem( i18n("File"), importMenu );
407 menuBar->insertItem( i18n("View"), viewMenu ); 409 menuBar->insertItem( i18n("View"), viewMenu );
408 menuBar->insertItem( i18n("Actions"), actionMenu ); 410 menuBar->insertItem( i18n("Actions"), actionMenu );
409 menuBar->insertItem( i18n("Synchronize"), syncMenu ); 411 menuBar->insertItem( i18n("Synchronize"), syncMenu );
410 menuBar->insertItem( i18n("AgendaSize"),configureAgendaMenu ); 412 menuBar->insertItem( i18n("AgendaSize"),configureAgendaMenu );
411 menuBar->insertItem( i18n("Toolbar"),configureToolBarMenu ); 413 menuBar->insertItem( i18n("Toolbar"),configureToolBarMenu );
412 menuBar->insertItem( i18n("Filter"),selectFilterMenu ); 414 menuBar->insertItem( i18n("Filter"),selectFilterMenu );
413 menuBar->insertItem( i18n("Help"), helpMenu ); 415 menuBar->insertItem( i18n("Help"), helpMenu );
414 //menuBar1->setMaximumWidth( menuBar1->sizeHint().width() ); 416 //menuBar1->setMaximumWidth( menuBar1->sizeHint().width() );
415 menuBar1->setMaximumSize( menuBar1->sizeHint( )); 417 menuBar1->setMaximumSize( menuBar1->sizeHint( ));
416 } 418 }
417 connect ( syncMenu, SIGNAL( activated ( int ) ), this, SLOT (slotSyncMenu( int ) ) ); 419 connect ( syncMenu, SIGNAL( activated ( int ) ), this, SLOT (slotSyncMenu( int ) ) );
418 connect ( selectFilterMenu, SIGNAL( activated ( int ) ), this, SLOT (selectFilter( int ) ) ); 420 connect ( selectFilterMenu, SIGNAL( activated ( int ) ), this, SLOT (selectFilter( int ) ) );
419 connect ( selectFilterMenu, SIGNAL( aboutToShow () ), this, SLOT (fillFilterMenu() ) ); 421 connect ( selectFilterMenu, SIGNAL( aboutToShow () ), this, SLOT (fillFilterMenu() ) );
420 422
421 // ****************** 423 // ******************
422 QAction *action; 424 QAction *action;
423 QIconSet icon; 425 QIconSet icon;
424 // QPopupMenu *configureMenu= new QPopupMenu( menuBar ); 426 // QPopupMenu *configureMenu= new QPopupMenu( menuBar );
425 configureToolBarMenu->setCheckable( true ); 427 configureToolBarMenu->setCheckable( true );
426 428
427 QString pathString = ""; 429 QString pathString = "";
428 if ( !p->mToolBarMiniIcons ) { 430 if ( !p->mToolBarMiniIcons ) {
429 if ( QApplication::desktop()->width() < 480 ) 431 if ( QApplication::desktop()->width() < 480 )
430 pathString += "icons16/"; 432 pathString += "icons16/";
431 } else 433 } else
432 pathString += "iconsmini/"; 434 pathString += "iconsmini/";
433 configureAgendaMenu->setCheckable( true ); 435 configureAgendaMenu->setCheckable( true );
434 configureAgendaMenu->insertItem(i18n("Toggle Allday"), 1 ); 436 configureAgendaMenu->insertItem(i18n("Toggle Allday"), 1 );
435 configureAgendaMenu->insertSeparator(); 437 configureAgendaMenu->insertSeparator();
436 configureAgendaMenu->insertItem(i18n("Tiny"), 4 ); 438 configureAgendaMenu->insertItem(i18n("Tiny"), 4 );
437 configureAgendaMenu->insertItem(i18n("Small"), 6 ); 439 configureAgendaMenu->insertItem(i18n("Small"), 6 );
438 configureAgendaMenu->insertItem(i18n("Medium"), 8 ); 440 configureAgendaMenu->insertItem(i18n("Medium"), 8 );
439 configureAgendaMenu->insertItem(i18n("Normal"), 10 ); 441 configureAgendaMenu->insertItem(i18n("Normal"), 10 );
440 configureAgendaMenu->insertItem(i18n("Large"), 12 ); 442 configureAgendaMenu->insertItem(i18n("Large"), 12 );
441 configureAgendaMenu->insertItem(i18n("Big"), 14 ); 443 configureAgendaMenu->insertItem(i18n("Big"), 14 );
442 configureAgendaMenu->insertItem(i18n("Bigger"), 16 ); 444 configureAgendaMenu->insertItem(i18n("Bigger"), 16 );
443 configureAgendaMenu->insertItem(i18n("Biggest"), 18 ); 445 configureAgendaMenu->insertItem(i18n("Biggest"), 18 );
444 //configureMenu->insertItem( "AgendaSize",configureAgendaMenu ); 446 //configureMenu->insertItem( "AgendaSize",configureAgendaMenu );
445 447
446 icon = loadPixmap( pathString + "configure" ); 448 icon = loadPixmap( pathString + "configure" );
447 action = new QAction( i18n("Configure"),icon, i18n("Configure..."), 0, this ); 449 action = new QAction( i18n("Configure"),icon, i18n("Configure..."), 0, this );
448 action->addTo( actionMenu ); 450 action->addTo( actionMenu );
449 connect( action, SIGNAL( activated() ), 451 connect( action, SIGNAL( activated() ),
450 mView, SLOT( edit_options() ) ); 452 mView, SLOT( edit_options() ) );
451 actionMenu->insertSeparator(); 453 actionMenu->insertSeparator();
452 icon = loadPixmap( pathString + "newevent" ); 454 icon = loadPixmap( pathString + "newevent" );
453 configureToolBarMenu->insertItem(i18n("Stretched TB"), 5 ); 455 configureToolBarMenu->insertItem(i18n("Stretched TB"), 5 );
454 configureToolBarMenu->insertSeparator(); 456 configureToolBarMenu->insertSeparator();
455 configureToolBarMenu->insertItem(icon, i18n("New Event..."), 10 ); 457 configureToolBarMenu->insertItem(icon, i18n("New Event..."), 10 );
456 QAction* ne_action = new QAction( i18n("New Event..."), icon, i18n("New Event..."), 0, this ); 458 QAction* ne_action = new QAction( i18n("New Event..."), icon, i18n("New Event..."), 0, this );
457 ne_action->addTo( actionMenu ); 459 ne_action->addTo( actionMenu );
458 connect( ne_action, SIGNAL( activated() ), 460 connect( ne_action, SIGNAL( activated() ),
459 mView, SLOT( newEvent() ) ); 461 mView, SLOT( newEvent() ) );
460 icon = loadPixmap( pathString + "newtodo" ); 462 icon = loadPixmap( pathString + "newtodo" );
461 configureToolBarMenu->insertItem(icon, i18n("New Todo..."), 20 ); 463 configureToolBarMenu->insertItem(icon, i18n("New Todo..."), 20 );
462 QAction* nt_action = new QAction( i18n("New Todo..."), icon, i18n("New Todo..."), 0, this ); 464 QAction* nt_action = new QAction( i18n("New Todo..."), icon, i18n("New Todo..."), 0, this );
463 nt_action->addTo( actionMenu ); 465 nt_action->addTo( actionMenu );
464 connect( nt_action, SIGNAL( activated() ), 466 connect( nt_action, SIGNAL( activated() ),
465 mView, SLOT( newTodo() ) ); 467 mView, SLOT( newTodo() ) );
466 icon = loadPixmap( pathString + "navi" ); 468 icon = loadPixmap( pathString + "navi" );
467 action = new QAction( i18n("Toggle DateNavigator"), icon, i18n("Toggle DateNavigator"), 0, this ); 469 action = new QAction( i18n("Toggle DateNavigator"), icon, i18n("Toggle DateNavigator"), 0, this );
468 action->addTo( viewMenu ); 470 action->addTo( viewMenu );
469 connect( action, SIGNAL( activated() ), 471 connect( action, SIGNAL( activated() ),
470 mView, SLOT( toggleDateNavigatorWidget() ) ); 472 mView, SLOT( toggleDateNavigatorWidget() ) );
471 icon = loadPixmap( pathString + "filter" ); 473 icon = loadPixmap( pathString + "filter" );
472 action = new QAction( i18n("Toggle FilterView"), icon, i18n("Toggle FilterView"), 0, this ); 474 action = new QAction( i18n("Toggle FilterView"), icon, i18n("Toggle FilterView"), 0, this );
473 action->addTo( viewMenu ); 475 action->addTo( viewMenu );
474 connect( action, SIGNAL( activated() ), 476 connect( action, SIGNAL( activated() ),
475 mView, SLOT( toggleFilter() ) ); 477 mView, SLOT( toggleFilter() ) );
476 478
477 479
478 viewMenu->insertSeparator(); 480 viewMenu->insertSeparator();
479 icon = loadPixmap( pathString + "picker" ); 481 icon = loadPixmap( pathString + "picker" );
480 action = new QAction( i18n("Date Picker"), icon, i18n("Date Picker"), 0, this ); 482 action = new QAction( i18n("Date Picker"), icon, i18n("Date Picker"), 0, this );
481 action->addTo( viewMenu ); 483 action->addTo( viewMenu );
482 connect( action, SIGNAL( activated() ), 484 connect( action, SIGNAL( activated() ),
483 mView, SLOT( showDatePicker() ) ); 485 mView, SLOT( showDatePicker() ) );
484 action->addTo( iconToolBar ); 486 action->addTo( iconToolBar );
485 viewMenu->insertSeparator(); 487 viewMenu->insertSeparator();
486 icon = loadPixmap( pathString + "list" ); 488 icon = loadPixmap( pathString + "list" );
487 configureToolBarMenu->insertItem(icon, i18n("List View"), 30 ); 489 configureToolBarMenu->insertItem(icon, i18n("List View"), 30 );
488 QAction* showlist_action = new QAction( i18n("List View"), icon, i18n("List View"), 0, this ); 490 QAction* showlist_action = new QAction( i18n("List View"), icon, i18n("List View"), 0, this );
489 showlist_action->addTo( viewMenu ); 491 showlist_action->addTo( viewMenu );
490 connect( showlist_action, SIGNAL( activated() ), 492 connect( showlist_action, SIGNAL( activated() ),
491 mView->viewManager(), SLOT( showListView() ) ); 493 mView->viewManager(), SLOT( showListView() ) );
492 494
493 495
494 icon = loadPixmap( pathString + "day" ); 496 icon = loadPixmap( pathString + "day" );
495 configureToolBarMenu->insertItem(icon, i18n("Day View"), 40 ); 497 configureToolBarMenu->insertItem(icon, i18n("Day View"), 40 );
496 QAction* day1_action = new QAction( i18n("Day View"), icon, i18n("Day View"), 0, this ); 498 QAction* day1_action = new QAction( i18n("Day View"), icon, i18n("Day View"), 0, this );
497 day1_action->addTo( viewMenu ); 499 day1_action->addTo( viewMenu );
498 // action->addTo( toolBar ); 500 // action->addTo( toolBar );
499 connect( day1_action, SIGNAL( activated() ), 501 connect( day1_action, SIGNAL( activated() ),
500 mView->viewManager(), SLOT( showDayView() ) ); 502 mView->viewManager(), SLOT( showDayView() ) );
501 503
502 icon = loadPixmap( pathString + "workweek" ); 504 icon = loadPixmap( pathString + "workweek" );
503 configureToolBarMenu->insertItem(icon, i18n("Work Week"), 50 ); 505 configureToolBarMenu->insertItem(icon, i18n("Work Week"), 50 );
504 QAction* day5_action = new QAction( i18n("Work Week"), icon, i18n("Work Week"), 0, this ); 506 QAction* day5_action = new QAction( i18n("Work Week"), icon, i18n("Work Week"), 0, this );
505 day5_action->addTo( viewMenu ); 507 day5_action->addTo( viewMenu );
506 connect( day5_action, SIGNAL( activated() ), 508 connect( day5_action, SIGNAL( activated() ),
507 mView->viewManager(), SLOT( showWorkWeekView() ) ); 509 mView->viewManager(), SLOT( showWorkWeekView() ) );
508 510
509 icon = loadPixmap( pathString + "week" ); 511 icon = loadPixmap( pathString + "week" );
510 configureToolBarMenu->insertItem(icon, i18n("Week"), 60 ); 512 configureToolBarMenu->insertItem(icon, i18n("Week"), 60 );
511 QAction* day7_action = new QAction( i18n("Week"), icon, i18n("Week"), 0, this ); 513 QAction* day7_action = new QAction( i18n("Week"), icon, i18n("Week"), 0, this );
512 day7_action->addTo( viewMenu ); 514 day7_action->addTo( viewMenu );
513 connect( day7_action, SIGNAL( activated() ), 515 connect( day7_action, SIGNAL( activated() ),
514 mView->viewManager(), SLOT( showWeekView() ) ); 516 mView->viewManager(), SLOT( showWeekView() ) );
515 517
516 icon = loadPixmap( pathString + "month" ); 518 icon = loadPixmap( pathString + "month" );
517 configureToolBarMenu->insertItem(icon, i18n("Month"), 70 ); 519 configureToolBarMenu->insertItem(icon, i18n("Month"), 70 );
518 QAction* month_action = new QAction( i18n("Month"), icon, i18n("Month"), 0, this ); 520 QAction* month_action = new QAction( i18n("Month"), icon, i18n("Month"), 0, this );
519 month_action->addTo( viewMenu ); 521 month_action->addTo( viewMenu );
520 connect( month_action, SIGNAL( activated() ), 522 connect( month_action, SIGNAL( activated() ),
521 mView->viewManager(), SLOT( showMonthView() ) ); 523 mView->viewManager(), SLOT( showMonthView() ) );
522 524
523 icon = loadPixmap( pathString + "todo" ); 525 icon = loadPixmap( pathString + "todo" );
524 configureToolBarMenu->insertItem(icon, i18n("Todo View"), 80 ); 526 configureToolBarMenu->insertItem(icon, i18n("Todo View"), 80 );
525 QAction* todoview_action = new QAction( i18n("Todo View"), icon, i18n("Todo View"), 0, this ); 527 QAction* todoview_action = new QAction( i18n("Todo View"), icon, i18n("Todo View"), 0, this );
526 todoview_action->addTo( viewMenu ); 528 todoview_action->addTo( viewMenu );
527 connect( todoview_action, SIGNAL( activated() ), 529 connect( todoview_action, SIGNAL( activated() ),
528 mView->viewManager(), SLOT( showTodoView() ) ); 530 mView->viewManager(), SLOT( showTodoView() ) );
529 531
530 icon = loadPixmap( pathString + "journal" ); 532 icon = loadPixmap( pathString + "journal" );
531 configureToolBarMenu->insertItem(icon, i18n("Journal"), 90 ); 533 configureToolBarMenu->insertItem(icon, i18n("Journal"), 90 );
532 QAction* viewjournal_action = new QAction( i18n("Journal"), icon, i18n("Journal"), 0, this ); 534 QAction* viewjournal_action = new QAction( i18n("Journal"), icon, i18n("Journal"), 0, this );
533 viewjournal_action->addTo( viewMenu ); 535 viewjournal_action->addTo( viewMenu );
534 connect( viewjournal_action, SIGNAL( activated() ), 536 connect( viewjournal_action, SIGNAL( activated() ),
535 mView->viewManager(), SLOT( showJournalView() ) ); 537 mView->viewManager(), SLOT( showJournalView() ) );
536 538
537 icon = loadPixmap( pathString + "xdays" ); 539 icon = loadPixmap( pathString + "xdays" );
538 configureToolBarMenu->insertItem(icon, i18n("Next days"), 100,4 ); 540 configureToolBarMenu->insertItem(icon, i18n("Next days"), 100,4 );
539 QAction* xdays_action = new QAction( i18n("Next days"), icon, i18n("Next days"), 0, this ); 541 QAction* xdays_action = new QAction( i18n("Next days"), icon, i18n("Next days"), 0, this );
540 xdays_action->addTo( viewMenu ); 542 xdays_action->addTo( viewMenu );
541 connect( xdays_action, SIGNAL( activated() ), 543 connect( xdays_action, SIGNAL( activated() ),
542 mView->viewManager(), SLOT( showNextXView() ) ); 544 mView->viewManager(), SLOT( showNextXView() ) );
543 545
544 icon = loadPixmap( pathString + "whatsnext" ); 546 icon = loadPixmap( pathString + "whatsnext" );
545 configureToolBarMenu->insertItem(icon, i18n("What's Next"), 110, 4 ); 547 configureToolBarMenu->insertItem(icon, i18n("What's Next"), 110, 4 );
546 QAction* whatsnext_action = new QAction( i18n("What's Next"), icon, i18n("What's Next"), 0, this ); 548 QAction* whatsnext_action = new QAction( i18n("What's Next"), icon, i18n("What's Next"), 0, this );
547 whatsnext_action->addTo( viewMenu ); 549 whatsnext_action->addTo( viewMenu );
548 connect( whatsnext_action, SIGNAL( activated() ), 550 connect( whatsnext_action, SIGNAL( activated() ),
549 mView->viewManager(), SLOT( showWhatsNextView() ) ); 551 mView->viewManager(), SLOT( showWhatsNextView() ) );
550 552
551#if 0 553#if 0
552 action = new QAction( "view_timespan", "Time Span", 0, this ); 554 action = new QAction( "view_timespan", "Time Span", 0, this );
553 action->addTo( viewMenu ); 555 action->addTo( viewMenu );
554 connect( action, SIGNAL( activated() ), 556 connect( action, SIGNAL( activated() ),
555 mView->viewManager(), SLOT( showTimeSpanView() ) ); 557 mView->viewManager(), SLOT( showTimeSpanView() ) );
556#endif 558#endif
557 559
558 mNewSubTodoAction = new QAction( "new_subtodo", i18n("New Sub-Todo..."), 0, 560 mNewSubTodoAction = new QAction( "new_subtodo", i18n("New Sub-Todo..."), 0,
559 this ); 561 this );
560 mNewSubTodoAction->addTo( actionMenu ); 562 mNewSubTodoAction->addTo( actionMenu );
561 connect( mNewSubTodoAction, SIGNAL( activated() ), 563 connect( mNewSubTodoAction, SIGNAL( activated() ),
562 mView, SLOT( newSubTodo() ) ); 564 mView, SLOT( newSubTodo() ) );
563 565
564 actionMenu->insertSeparator(); 566 actionMenu->insertSeparator();
565 567
566 mShowAction = new QAction( "show_incidence", i18n("Show..."), 0, this ); 568 mShowAction = new QAction( "show_incidence", i18n("Show..."), 0, this );
567 mShowAction->addTo( actionMenu ); 569 mShowAction->addTo( actionMenu );
568 connect( mShowAction, SIGNAL( activated() ), 570 connect( mShowAction, SIGNAL( activated() ),
569 mView, SLOT( showIncidence() ) ); 571 mView, SLOT( showIncidence() ) );
570 572
571 mEditAction = new QAction( "edit_incidence", i18n("Edit..."), 0, this ); 573 mEditAction = new QAction( "edit_incidence", i18n("Edit..."), 0, this );
572 mEditAction->addTo( actionMenu ); 574 mEditAction->addTo( actionMenu );
573 connect( mEditAction, SIGNAL( activated() ), 575 connect( mEditAction, SIGNAL( activated() ),
574 mView, SLOT( editIncidence() ) ); 576 mView, SLOT( editIncidence() ) );
575 577
576 mDeleteAction = new QAction( "delete_incidence", i18n("Delete..."), 0, this ); 578 mDeleteAction = new QAction( "delete_incidence", i18n("Delete..."), 0, this );
577 mDeleteAction->addTo( actionMenu ); 579 mDeleteAction->addTo( actionMenu );
578 connect( mDeleteAction, SIGNAL( activated() ), 580 connect( mDeleteAction, SIGNAL( activated() ),
579 mView, SLOT( deleteIncidence() ) ); 581 mView, SLOT( deleteIncidence() ) );
580 582
581 actionMenu->insertSeparator(); 583 actionMenu->insertSeparator();
582 584
583 action = new QAction( "purge_completed", i18n("Purge Completed"), 0, 585 action = new QAction( "purge_completed", i18n("Purge Completed"), 0,
584 this ); 586 this );
585 action->addTo( actionMenu ); 587 action->addTo( actionMenu );
586 connect( action, SIGNAL( activated() ), mView, SLOT( purgeCompleted() ) ); 588 connect( action, SIGNAL( activated() ), mView, SLOT( purgeCompleted() ) );
587 589
588 icon = loadPixmap( pathString + "search" ); 590 icon = loadPixmap( pathString + "search" );
589 QAction* search_action = new QAction( i18n("Search"), icon, i18n("Search..."), 0, this ); 591 QAction* search_action = new QAction( i18n("Search"), icon, i18n("Search..."), 0, this );
590 configureToolBarMenu->insertItem(icon, i18n("Search"), 120 , 4); 592 configureToolBarMenu->insertItem(icon, i18n("Search"), 120 , 4);
591 search_action->addTo( actionMenu ); 593 search_action->addTo( actionMenu );
592 connect( search_action, SIGNAL( activated() ), 594 connect( search_action, SIGNAL( activated() ),
593 mView->dialogManager(), SLOT( showSearchDialog() ) ); 595 mView->dialogManager(), SLOT( showSearchDialog() ) );
594 596
595 icon = loadPixmap( pathString + "today" ); 597 icon = loadPixmap( pathString + "today" );
596 configureToolBarMenu->insertItem(icon, i18n("Go to Today"), 130); 598 configureToolBarMenu->insertItem(icon, i18n("Go to Today"), 130);
597 QAction* today_action = new QAction( i18n("Go to Today"), icon, i18n("Go to Today"), 0, this ); 599 QAction* today_action = new QAction( i18n("Go to Today"), icon, i18n("Go to Today"), 0, this );
598 today_action->addTo( actionMenu ); 600 today_action->addTo( actionMenu );
599 connect( today_action, SIGNAL( activated() ), 601 connect( today_action, SIGNAL( activated() ),
600 mView, SLOT( goToday() ) ); 602 mView, SLOT( goToday() ) );
601 603
602 if ( KOPrefs::instance()->mShowFullMenu ) { 604 if ( KOPrefs::instance()->mShowFullMenu ) {
603 actionMenu->insertSeparator(); 605 actionMenu->insertSeparator();
604 actionMenu->insertItem( i18n("Configure Toolbar"),configureToolBarMenu ); 606 actionMenu->insertItem( i18n("Configure Toolbar"),configureToolBarMenu );
605 607
606 } 608 }
607 // actionMenu->insertSeparator(); 609 // actionMenu->insertSeparator();
608 action = new QAction( "import_qtopia", i18n("Import (*.ics/*.vcs) file"), 0, 610 action = new QAction( "import_qtopia", i18n("Import (*.ics/*.vcs) file"), 0,
609 this ); 611 this );
610 action->addTo( importMenu ); 612 action->addTo( importMenu );
611 connect( action, SIGNAL( activated() ), SLOT( importIcal() ) ); 613 connect( action, SIGNAL( activated() ), SLOT( importIcal() ) );
612 action = new QAction( "import_quick", i18n("Import last file"), 0, 614 action = new QAction( "import_quick", i18n("Import last file"), 0,
613 this ); 615 this );
614 action->addTo( importMenu ); 616 action->addTo( importMenu );
615 connect( action, SIGNAL( activated() ), SLOT( quickImportIcal() ) ); 617 connect( action, SIGNAL( activated() ), SLOT( quickImportIcal() ) );
616 importMenu->insertSeparator(); 618 importMenu->insertSeparator();
617 action = new QAction( "import_bday", i18n("Import Birthdays (KA/Pi)"), 0, 619 action = new QAction( "import_bday", i18n("Import Birthdays (KA/Pi)"), 0,
618 this ); 620 this );
619 action->addTo( importMenu ); 621 action->addTo( importMenu );
620 connect( action, SIGNAL( activated() ), SLOT( importBday() ) ); 622 connect( action, SIGNAL( activated() ), SLOT( importBday() ) );
621#ifndef DESKTOP_VERSION 623#ifndef DESKTOP_VERSION
622 importMenu->insertSeparator(); 624 importMenu->insertSeparator();
623 action = new QAction( "import_qtopia", i18n("Import Opie/Qtopia Cal."), 0, 625 action = new QAction( "import_qtopia", i18n("Import Opie/Qtopia Cal."), 0,
624 this ); 626 this );
625 action->addTo( importMenu ); 627 action->addTo( importMenu );
626 connect( action, SIGNAL( activated() ), SLOT( importQtopia() ) ); 628 connect( action, SIGNAL( activated() ), SLOT( importQtopia() ) );
627#else 629#else
628#ifdef _WIN32_ 630#ifdef _WIN32_
629 importMenu->insertSeparator(); 631 importMenu->insertSeparator();
630 action = new QAction( "import_ol", i18n("Import from OL"), 0, 632 action = new QAction( "import_ol", i18n("Import from OL"), 0,
631 this ); 633 this );
632 action->addTo( importMenu ); 634 action->addTo( importMenu );
633 connect( action, SIGNAL( activated() ), SLOT( importOL() ) ); 635 connect( action, SIGNAL( activated() ), SLOT( importOL() ) );
634#endif 636#endif
635#endif 637#endif
636 638
637 importMenu->insertSeparator(); 639 importMenu->insertSeparator();
638 action = new QAction( "load_cal", i18n("Load Calendar Backup"), 0, 640 action = new QAction( "load_cal", i18n("Load Calendar Backup"), 0,
639 this ); 641 this );
640 action->addTo( importMenu ); 642 action->addTo( importMenu );
641 connect( action, SIGNAL( activated() ), SLOT( loadCalendar() ) ); 643 connect( action, SIGNAL( activated() ), SLOT( loadCalendar() ) );
642 644
643 action = new QAction( "save_cal", i18n("Save Calendar Backup"), 0, 645 action = new QAction( "save_cal", i18n("Save Calendar Backup"), 0,
644 this ); 646 this );
645 action->addTo( importMenu ); 647 action->addTo( importMenu );
646 connect( action, SIGNAL( activated() ), SLOT( saveCalendar() ) ); 648 connect( action, SIGNAL( activated() ), SLOT( saveCalendar() ) );
647 649
648 importMenu->insertSeparator(); 650 importMenu->insertSeparator();
649 action = new QAction( "import_qtopia", i18n("Export VCalendar"), 0, 651 action = new QAction( "import_qtopia", i18n("Export VCalendar"), 0,
650 this ); 652 this );
651 action->addTo( importMenu ); connect( action, SIGNAL( activated() ), SLOT( exportVCalendar() ) ); 653 action->addTo( importMenu ); connect( action, SIGNAL( activated() ), SLOT( exportVCalendar() ) );
652 importMenu->insertSeparator(); 654 importMenu->insertSeparator();
653 action = new QAction( "manage cat", i18n("Manage new categories..."), 0, 655 action = new QAction( "manage cat", i18n("Manage new categories..."), 0,
654 this ); 656 this );
655 action->addTo( importMenu ); 657 action->addTo( importMenu );
656 connect( action, SIGNAL( activated() ), mView, SLOT( manageCategories() ) ); 658 connect( action, SIGNAL( activated() ), mView, SLOT( manageCategories() ) );
657#ifndef DESKTOP_VERSION 659#ifndef DESKTOP_VERSION
658 importMenu->insertSeparator(); 660 importMenu->insertSeparator();
659 action = new QAction( "beam all", i18n("Beam complete calendar..."), 0, 661 action = new QAction( "beam all", i18n("Beam complete calendar..."), 0,
660 this ); 662 this );
661 action->addTo( importMenu ); 663 action->addTo( importMenu );
662 connect( action, SIGNAL( activated() ), mView, SLOT( beamCalendar() ) ); 664 connect( action, SIGNAL( activated() ), mView, SLOT( beamCalendar() ) );
663 665
664 action = new QAction( "beam all", i18n("Beam filtered calendar..."), 0, 666 action = new QAction( "beam all", i18n("Beam filtered calendar..."), 0,
665 this ); 667 this );
666 action->addTo( importMenu ); 668 action->addTo( importMenu );
667 connect( action, SIGNAL( activated() ), mView, SLOT( beamFilteredCalendar()) ); 669 connect( action, SIGNAL( activated() ), mView, SLOT( beamFilteredCalendar()) );
668#else 670#else
669 importMenu->insertSeparator(); 671 importMenu->insertSeparator();
670 icon = loadPixmap( pathString + "print" ); 672 icon = loadPixmap( pathString + "print" );
671 action = new QAction( i18n("Print calendar..."),icon,i18n("Print calendar..."), 0, this ); 673 action = new QAction( i18n("Print calendar..."),icon,i18n("Print calendar..."), 0, this );
672 action->addTo( importMenu ); 674 action->addTo( importMenu );
673 connect( action, SIGNAL( activated() ), 675 connect( action, SIGNAL( activated() ),
674 this, SLOT( printCal() ) ); 676 this, SLOT( printCal() ) );
675 677
676 icon = loadPixmap( pathString + "print" ); 678 icon = loadPixmap( pathString + "print" );
677 action = new QAction( i18n("Print agenda selection..."),icon,i18n("Print agenda selection..."), 0, this ); 679 action = new QAction( i18n("Print agenda selection..."),icon,i18n("Print agenda selection..."), 0, this );
678 action->addTo( importMenu ); 680 action->addTo( importMenu );
679 connect( action, SIGNAL( activated() ), 681 connect( action, SIGNAL( activated() ),
680 this, SLOT( printSel() ) ); 682 this, SLOT( printSel() ) );
681#endif 683#endif
682 importMenu->insertSeparator(); 684 importMenu->insertSeparator();
683 action = new QAction( "beam all", i18n("Save"), 0, 685 action = new QAction( "beam all", i18n("Save"), 0,
684 this ); 686 this );
685 action->addTo( importMenu ); 687 action->addTo( importMenu );
686 connect( action, SIGNAL( activated() ), this, SLOT( save() ) ); 688 connect( action, SIGNAL( activated() ), this, SLOT( save() ) );
687 action = new QAction( "beam all", i18n("Exit (+save)"), 0, 689 action = new QAction( "beam all", i18n("Exit (+save)"), 0,
688 this ); 690 this );
689 action->addTo( importMenu ); 691 action->addTo( importMenu );
690 connect( action, SIGNAL( activated() ), this, SLOT( close() ) ); 692 connect( action, SIGNAL( activated() ), this, SLOT( close() ) );
691 693
692 //menuBar->insertItem( "Configure",configureMenu ); 694 //menuBar->insertItem( "Configure",configureMenu );
693 //configureMenu->insertItem( "Toolbar",configureToolBarMenu ); 695 //configureMenu->insertItem( "Toolbar",configureToolBarMenu );
694 icon = loadPixmap( "korganizer/korganizer" ); 696 icon = loadPixmap( "korganizer/korganizer" );
695 action = new QAction( "Keys + Colors", i18n("Keys + Colors..."), 0, this ); 697 action = new QAction( "Keys + Colors", i18n("Keys + Colors..."), 0, this );
696 action->addTo( helpMenu ); 698 action->addTo( helpMenu );
697 connect( action, SIGNAL( activated() ), 699 connect( action, SIGNAL( activated() ),
698 SLOT( keyBindings() ) ); 700 SLOT( keyBindings() ) );
699 action = new QAction( "featureHowto", i18n("Features + hints..."), 0,this ); 701 action = new QAction( "featureHowto", i18n("Features + hints..."), 0,this );
700 action->addTo( helpMenu ); 702 action->addTo( helpMenu );
701 connect( action, SIGNAL( activated() ), 703 connect( action, SIGNAL( activated() ),
702 SLOT( features() ) ); 704 SLOT( features() ) );
703 action = new QAction( "Auto saving", i18n("Auto saving..."), 0, this ); 705 action = new QAction( "Auto saving", i18n("Auto saving..."), 0, this );
704 action->addTo( helpMenu ); 706 action->addTo( helpMenu );
705 connect( action, SIGNAL( activated() ), 707 connect( action, SIGNAL( activated() ),
706 SLOT( aboutAutoSaving() ) ); 708 SLOT( aboutAutoSaving() ) );
707 action = new QAction( "Problemd", i18n("Known Problems..."), 0,this ); 709 action = new QAction( "Problemd", i18n("Known Problems..."), 0,this );
708 action->addTo( helpMenu ); 710 action->addTo( helpMenu );
709 connect( action, SIGNAL( activated() ), 711 connect( action, SIGNAL( activated() ),
710 SLOT( aboutKnownBugs() ) ); 712 SLOT( aboutKnownBugs() ) );
711 action = new QAction( "Translate Howto", i18n("User translation..."), 0,this ); 713 action = new QAction( "Translate Howto", i18n("User translation..."), 0,this );
712 action->addTo( helpMenu ); 714 action->addTo( helpMenu );
713 connect( action, SIGNAL( activated() ), 715 connect( action, SIGNAL( activated() ),
714 SLOT( usertrans() ) ); 716 SLOT( usertrans() ) );
715 action = new QAction( "Sync Howto", i18n("Sync HowTo..."), 0,this ); 717 action = new QAction( "Sync Howto", i18n("Sync HowTo..."), 0,this );
716 action->addTo( helpMenu ); 718 action->addTo( helpMenu );
717 connect( action, SIGNAL( activated() ), 719 connect( action, SIGNAL( activated() ),
718 SLOT( synchowto() ) ); 720 SLOT( synchowto() ) );
719 action = new QAction( "Whats New", i18n("What's new?"), 0,this ); 721 action = new QAction( "Whats New", i18n("What's new?"), 0,this );
720 action->addTo( helpMenu ); 722 action->addTo( helpMenu );
721 connect( action, SIGNAL( activated() ), 723 connect( action, SIGNAL( activated() ),
722 SLOT( whatsNew() ) ); 724 SLOT( whatsNew() ) );
723 action = new QAction( "Frequently asked questions", i18n("FAQ..."), 0,this ); 725 action = new QAction( "Frequently asked questions", i18n("FAQ..."), 0,this );
724 action->addTo( helpMenu ); 726 action->addTo( helpMenu );
725 connect( action, SIGNAL( activated() ), 727 connect( action, SIGNAL( activated() ),
726 SLOT( faq() ) ); 728 SLOT( faq() ) );
727 729
728 730
729 action = new QAction( "about", i18n("About..."), 0, this ); 731 action = new QAction( "about", i18n("About..."), 0, this );
730 action->addTo( helpMenu ); 732 action->addTo( helpMenu );
731 connect( action, SIGNAL( activated() ), 733 connect( action, SIGNAL( activated() ),
732 SLOT( about() ) ); 734 SLOT( about() ) );
733 action = new QAction( "licence", i18n("Licence..."), 0, this ); 735 action = new QAction( "licence", i18n("Licence..."), 0, this );
734 action->addTo( helpMenu ); 736 action->addTo( helpMenu );
735 connect( action, SIGNAL( activated() ), 737 connect( action, SIGNAL( activated() ),
736 SLOT( licence() ) ); 738 SLOT( licence() ) );
737 //menuBar->insertSeparator(); 739 //menuBar->insertSeparator();
738 740
739 // ****************************************************** 741 // ******************************************************
740 // menubar icons 742 // menubar icons
741 743
742 744
743 iconToolBar->setHorizontalStretchable (true ); 745 iconToolBar->setHorizontalStretchable (true );
744 //menuBar->insertItem( iconToolBar ); 746 //menuBar->insertItem( iconToolBar );
745 //xdays_action 747 //xdays_action
746 if (p-> mShowIconNewEvent) 748 if (p-> mShowIconNewEvent)
747 ne_action->addTo( iconToolBar ); 749 ne_action->addTo( iconToolBar );
748 if (p->mShowIconNewTodo ) 750 if (p->mShowIconNewTodo )
749 nt_action->addTo( iconToolBar ); 751 nt_action->addTo( iconToolBar );
750 if (p-> mShowIconSearch) 752 if (p-> mShowIconSearch)
751 search_action->addTo( iconToolBar ); 753 search_action->addTo( iconToolBar );
752 if (p-> mShowIconNext) 754 if (p-> mShowIconNext)
753 whatsnext_action->addTo( iconToolBar ); 755 whatsnext_action->addTo( iconToolBar );
754 if (p-> mShowIconNextDays) 756 if (p-> mShowIconNextDays)
755 xdays_action->addTo( iconToolBar ); 757 xdays_action->addTo( iconToolBar );
756 if (p-> mShowIconList) 758 if (p-> mShowIconList)
757 showlist_action->addTo( iconToolBar ); 759 showlist_action->addTo( iconToolBar );
758 if (p-> mShowIconDay1) 760 if (p-> mShowIconDay1)
759 day1_action->addTo( iconToolBar ); 761 day1_action->addTo( iconToolBar );
760 if (p-> mShowIconDay5) 762 if (p-> mShowIconDay5)
761 day5_action->addTo( iconToolBar ); 763 day5_action->addTo( iconToolBar );
762 if (p-> mShowIconDay7) 764 if (p-> mShowIconDay7)
763 day7_action->addTo( iconToolBar ); 765 day7_action->addTo( iconToolBar );
764 if (p-> mShowIconMonth) 766 if (p-> mShowIconMonth)
765 month_action->addTo( iconToolBar ); 767 month_action->addTo( iconToolBar );
766 if (p-> mShowIconTodoview) 768 if (p-> mShowIconTodoview)
767 todoview_action->addTo( iconToolBar ); 769 todoview_action->addTo( iconToolBar );
768 if (p-> mShowIconJournal) 770 if (p-> mShowIconJournal)
769 viewjournal_action->addTo( iconToolBar ); 771 viewjournal_action->addTo( iconToolBar );
770 icon = loadPixmap( pathString + "2leftarrowB" ); 772 icon = loadPixmap( pathString + "2leftarrowB" );
771 configureToolBarMenu->insertItem(icon, i18n("Prev. month"), 200, 14); 773 configureToolBarMenu->insertItem(icon, i18n("Prev. month"), 200, 14);
772 if (p-> mShowIconBackFast) { 774 if (p-> mShowIconBackFast) {
773 action = new QAction( i18n("Prev. month"), icon, i18n("Prev. month"),0 , this ); 775 action = new QAction( i18n("Prev. month"), icon, i18n("Prev. month"),0 , this );
774 connect( action, SIGNAL( activated() ), 776 connect( action, SIGNAL( activated() ),
775 mView, SLOT( goPreviousMonth() ) ); 777 mView, SLOT( goPreviousMonth() ) );
776 action->addTo( iconToolBar ); 778 action->addTo( iconToolBar );
777 } 779 }
778 icon = loadPixmap( pathString + "1leftarrowB" ); 780 icon = loadPixmap( pathString + "1leftarrowB" );
779 configureToolBarMenu->insertItem(icon, i18n("Go backward"), 210,15); 781 configureToolBarMenu->insertItem(icon, i18n("Go backward"), 210,15);
780 if (p-> mShowIconBack) { 782 if (p-> mShowIconBack) {
781 action = new QAction( i18n("Go backward"), icon, i18n("Go backward"),0 , this ); 783 action = new QAction( i18n("Go backward"), icon, i18n("Go backward"),0 , this );
782 connect( action, SIGNAL( activated() ), 784 connect( action, SIGNAL( activated() ),
783 mView, SLOT( goPrevious() ) ); 785 mView, SLOT( goPrevious() ) );
784 action->addTo( iconToolBar ); 786 action->addTo( iconToolBar );
785 } 787 }
786 if (p-> mShowIconToday) 788 if (p-> mShowIconToday)
787 today_action->addTo( iconToolBar ); 789 today_action->addTo( iconToolBar );
788 icon = loadPixmap( pathString + "1rightarrowB" ); 790 icon = loadPixmap( pathString + "1rightarrowB" );
789 configureToolBarMenu->insertItem(icon, i18n("Go forward"), 220); 791 configureToolBarMenu->insertItem(icon, i18n("Go forward"), 220);
790 if (p-> mShowIconForward) { 792 if (p-> mShowIconForward) {
791 action = new QAction( i18n("Go forward"), icon, i18n("Go forward"),0 , this ); 793 action = new QAction( i18n("Go forward"), icon, i18n("Go forward"),0 , this );
792 connect( action, SIGNAL( activated() ), 794 connect( action, SIGNAL( activated() ),
793 mView, SLOT( goNext() ) ); 795 mView, SLOT( goNext() ) );
794 action->addTo( iconToolBar ); 796 action->addTo( iconToolBar );
795 } 797 }
796 icon = loadPixmap( pathString + "2rightarrowB" ); 798 icon = loadPixmap( pathString + "2rightarrowB" );
797 configureToolBarMenu->insertItem(icon, i18n("Next month"), 230); 799 configureToolBarMenu->insertItem(icon, i18n("Next month"), 230);
798 if (p-> mShowIconForwardFast) { 800 if (p-> mShowIconForwardFast) {
799 action = new QAction( i18n("Next month"), icon, i18n("Next month"),0 , this ); 801 action = new QAction( i18n("Next month"), icon, i18n("Next month"),0 , this );
800 connect( action, SIGNAL( activated() ), 802 connect( action, SIGNAL( activated() ),
801 mView, SLOT( goNextMonth() ) ); 803 mView, SLOT( goNextMonth() ) );
802 action->addTo( iconToolBar ); 804 action->addTo( iconToolBar );
803 } 805 }
804 806
805 807
806 configureToolBarMenu->insertItem(i18n("What's This?"), 300); 808 configureToolBarMenu->insertItem(i18n("What's This?"), 300);
807 809
808 if (p-> mShowIconNewEvent) 810 if (p-> mShowIconNewEvent)
809 configureToolBarMenu->setItemChecked( 10, true ); 811 configureToolBarMenu->setItemChecked( 10, true );
810 if (p->mShowIconNewTodo ) 812 if (p->mShowIconNewTodo )
811 configureToolBarMenu->setItemChecked( 20, true ); 813 configureToolBarMenu->setItemChecked( 20, true );
812 if (p-> mShowIconSearch) 814 if (p-> mShowIconSearch)
813 configureToolBarMenu->setItemChecked( 120, true ); 815 configureToolBarMenu->setItemChecked( 120, true );
814 if (p-> mShowIconList) 816 if (p-> mShowIconList)
815 configureToolBarMenu->setItemChecked( 30, true ); 817 configureToolBarMenu->setItemChecked( 30, true );
816 if (p-> mShowIconDay1) 818 if (p-> mShowIconDay1)
817 configureToolBarMenu->setItemChecked( 40, true ); 819 configureToolBarMenu->setItemChecked( 40, true );
818 if (p-> mShowIconDay5) 820 if (p-> mShowIconDay5)
819 configureToolBarMenu->setItemChecked( 50, true ); 821 configureToolBarMenu->setItemChecked( 50, true );
820 if (p-> mShowIconDay7) 822 if (p-> mShowIconDay7)
821 configureToolBarMenu->setItemChecked( 60, true ); 823 configureToolBarMenu->setItemChecked( 60, true );
822 if (p-> mShowIconMonth) 824 if (p-> mShowIconMonth)
823 configureToolBarMenu->setItemChecked( 70, true ); 825 configureToolBarMenu->setItemChecked( 70, true );
824 if (p-> mShowIconTodoview) 826 if (p-> mShowIconTodoview)
825 configureToolBarMenu->setItemChecked( 80, true ); 827 configureToolBarMenu->setItemChecked( 80, true );
826 if (p-> mShowIconBackFast) 828 if (p-> mShowIconBackFast)
827 configureToolBarMenu->setItemChecked( 200, true ); 829 configureToolBarMenu->setItemChecked( 200, true );
828 if (p-> mShowIconBack) 830 if (p-> mShowIconBack)
829 configureToolBarMenu->setItemChecked( 210, true ); 831 configureToolBarMenu->setItemChecked( 210, true );
830 if (p-> mShowIconToday) 832 if (p-> mShowIconToday)
831 configureToolBarMenu->setItemChecked( 130, true ); 833 configureToolBarMenu->setItemChecked( 130, true );
832 if (p-> mShowIconForward) 834 if (p-> mShowIconForward)
833 configureToolBarMenu->setItemChecked( 220, true ); 835 configureToolBarMenu->setItemChecked( 220, true );
834 if (p-> mShowIconForwardFast) 836 if (p-> mShowIconForwardFast)
835 configureToolBarMenu->setItemChecked( 230, true ); 837 configureToolBarMenu->setItemChecked( 230, true );
836 if (p-> mShowIconNextDays) 838 if (p-> mShowIconNextDays)
837 configureToolBarMenu->setItemChecked( 100, true ); 839 configureToolBarMenu->setItemChecked( 100, true );
838 if (p-> mShowIconNext) 840 if (p-> mShowIconNext)
839 configureToolBarMenu->setItemChecked( 110, true ); 841 configureToolBarMenu->setItemChecked( 110, true );
840 if (p-> mShowIconJournal) 842 if (p-> mShowIconJournal)
841 configureToolBarMenu->setItemChecked( 90, true ); 843 configureToolBarMenu->setItemChecked( 90, true );
842 if (p-> mShowIconWhatsThis) 844 if (p-> mShowIconWhatsThis)
843 configureToolBarMenu->setItemChecked( 300, true ); 845 configureToolBarMenu->setItemChecked( 300, true );
844 846
845 QLabel* dummy = new QLabel( iconToolBar ); 847 QLabel* dummy = new QLabel( iconToolBar );
846 dummy->setBackgroundColor( iconToolBar->backgroundColor() ); 848 dummy->setBackgroundColor( iconToolBar->backgroundColor() );
847 if (!p-> mShowIconStretch) 849 if (!p-> mShowIconStretch)
848 iconToolBar->setStretchableWidget ( dummy ) ; 850 iconToolBar->setStretchableWidget ( dummy ) ;
849 else 851 else
850 configureToolBarMenu->setItemChecked( 5, true ); 852 configureToolBarMenu->setItemChecked( 5, true );
851 if (p-> mShowIconWhatsThis) 853 if (p-> mShowIconWhatsThis)
852 QWhatsThis::whatsThisButton ( iconToolBar ); 854 QWhatsThis::whatsThisButton ( iconToolBar );
853 connect( configureToolBarMenu, SIGNAL( activated( int ) ),this, SLOT(configureToolBar( int ) ) ); 855 connect( configureToolBarMenu, SIGNAL( activated( int ) ),this, SLOT(configureToolBar( int ) ) );
854 configureAgenda( p->mHourSize ); 856 configureAgenda( p->mHourSize );
855 connect( configureAgendaMenu, SIGNAL( activated( int ) ),this, SLOT(configureAgenda( int ) ) ); 857 connect( configureAgendaMenu, SIGNAL( activated( int ) ),this, SLOT(configureAgenda( int ) ) );
856} 858}
857void MainWindow::fillSyncMenu() 859void MainWindow::fillSyncMenu()
858{ 860{
859 if ( syncMenu->count() ) 861 if ( syncMenu->count() )
860 syncMenu->clear(); 862 syncMenu->clear();
861 syncMenu->insertItem( i18n("Configure..."), 0 ); 863 syncMenu->insertItem( i18n("Configure..."), 0 );
862 syncMenu->insertSeparator(); 864 syncMenu->insertSeparator();
863 syncMenu->insertItem( i18n("Multiple sync"), 1 ); 865 syncMenu->insertItem( i18n("Multiple sync"), 1 );
864 syncMenu->insertSeparator(); 866 syncMenu->insertSeparator();
865 KConfig config ( locateLocal( "config","ksyncprofilesrc" ) ); 867 KConfig config ( locateLocal( "config","ksyncprofilesrc" ) );
866 config.setGroup("General"); 868 config.setGroup("General");
867 QStringList prof = config.readListEntry("SyncProfileNames"); 869 QStringList prof = config.readListEntry("SyncProfileNames");
868 KOPrefs::instance()->mLocalMachineName = config.readEntry("LocalMachineName","undefined"); 870 KOPrefs::instance()->mLocalMachineName = config.readEntry("LocalMachineName","undefined");
869 if ( prof.count() < 3 ) { 871 if ( prof.count() < 3 ) {
870 prof.clear(); 872 prof.clear();
871 prof << i18n("Sharp_DTM"); 873 prof << i18n("Sharp_DTM");
872 prof << i18n("Local_file"); 874 prof << i18n("Local_file");
873 prof << i18n("Last_file"); 875 prof << i18n("Last_file");
874 KSyncProfile* temp = new KSyncProfile (); 876 KSyncProfile* temp = new KSyncProfile ();
875 temp->setName( prof[0] ); 877 temp->setName( prof[0] );
876 temp->writeConfig(&config); 878 temp->writeConfig(&config);
877 temp->setName( prof[1] ); 879 temp->setName( prof[1] );
878 temp->writeConfig(&config); 880 temp->writeConfig(&config);
879 temp->setName( prof[2] ); 881 temp->setName( prof[2] );
880 temp->writeConfig(&config); 882 temp->writeConfig(&config);
881 config.setGroup("General"); 883 config.setGroup("General");
882 config.writeEntry("SyncProfileNames",prof); 884 config.writeEntry("SyncProfileNames",prof);
883 config.writeEntry("ExternSyncProfiles","Sharp_DTM"); 885 config.writeEntry("ExternSyncProfiles","Sharp_DTM");
884 config.sync(); 886 config.sync();
885 delete temp; 887 delete temp;
886 } 888 }
887 KOPrefs::instance()->mExternSyncProfiles = config.readListEntry("ExternSyncProfiles"); 889 KOPrefs::instance()->mExternSyncProfiles = config.readListEntry("ExternSyncProfiles");
888 KOPrefs::instance()->mSyncProfileNames = prof; 890 KOPrefs::instance()->mSyncProfileNames = prof;
889 int i; 891 int i;
890 for ( i = 0; i < prof.count(); ++i ) { 892 for ( i = 0; i < prof.count(); ++i ) {
891 893
892 syncMenu->insertItem( prof[i], 1000+i ); 894 syncMenu->insertItem( prof[i], 1000+i );
893 if ( i == 2 ) 895 if ( i == 2 )
894 syncMenu->insertSeparator(); 896 syncMenu->insertSeparator();
895 } 897 }
896 QDir app_dir; 898 QDir app_dir;
897 if ( !app_dir.exists(QDir::homeDirPath()+"/Applications/dtm" ) ) { 899 if ( !app_dir.exists(QDir::homeDirPath()+"/Applications/dtm" ) ) {
898 syncMenu->setItemEnabled( false , 1000 ); 900 syncMenu->setItemEnabled( false , 1000 );
899 } 901 }
900 mView->setupExternSyncProfiles(); 902 mView->setupExternSyncProfiles();
901} 903}
902 904
903int MainWindow::ringSync() 905int MainWindow::ringSync()
904{ 906{
905 int syncedProfiles = 0; 907 int syncedProfiles = 0;
906 int i; 908 int i;
907 QTime timer; 909 QTime timer;
908 KConfig config ( locateLocal( "config","ksyncprofilesrc" ) ); 910 KConfig config ( locateLocal( "config","ksyncprofilesrc" ) );
909 QStringList syncProfileNames = KOPrefs::instance()->mSyncProfileNames; 911 QStringList syncProfileNames = KOPrefs::instance()->mSyncProfileNames;
910 KSyncProfile* temp = new KSyncProfile (); 912 KSyncProfile* temp = new KSyncProfile ();
911 KOPrefs::instance()->mAskForPreferences = false; 913 KOPrefs::instance()->mAskForPreferences = false;
912 for ( i = 0; i < syncProfileNames.count(); ++i ) { 914 for ( i = 0; i < syncProfileNames.count(); ++i ) {
913 mCurrentSyncProfile = i; 915 mCurrentSyncProfile = i;
914 temp->setName(syncProfileNames[mCurrentSyncProfile]); 916 temp->setName(syncProfileNames[mCurrentSyncProfile]);
915 temp->readConfig(&config); 917 temp->readConfig(&config);
916 if ( temp->getIncludeInRingSync() && ( i < 1 || i > 2 )) { 918 if ( temp->getIncludeInRingSync() && ( i < 1 || i > 2 )) {
917 setCaption(i18n("Profile ")+syncProfileNames[mCurrentSyncProfile]+ i18n(" is synced ... ")); 919 setCaption(i18n("Profile ")+syncProfileNames[mCurrentSyncProfile]+ i18n(" is synced ... "));
918 ++syncedProfiles; 920 ++syncedProfiles;
919 // KOPrefs::instance()->mAskForPreferences = temp->getAskForPreferences(); 921 // KOPrefs::instance()->mAskForPreferences = temp->getAskForPreferences();
920 KOPrefs::instance()->mWriteBackFile = temp->getWriteBackFile(); 922 KOPrefs::instance()->mWriteBackFile = temp->getWriteBackFile();
921 KOPrefs::instance()->mWriteBackExistingOnly = temp->getWriteBackExisting(); 923 KOPrefs::instance()->mWriteBackExistingOnly = temp->getWriteBackExisting();
922 KOPrefs::instance()->mWriteBackInFuture = 0; 924 KOPrefs::instance()->mWriteBackInFuture = 0;
923 if ( temp->getWriteBackFuture() ) 925 if ( temp->getWriteBackFuture() )
924 KOPrefs::instance()->mWriteBackInFuture = temp->getWriteBackFutureWeeks( ); 926 KOPrefs::instance()->mWriteBackInFuture = temp->getWriteBackFutureWeeks( );
925 KOPrefs::instance()->mShowSyncSummary = false; 927 KOPrefs::instance()->mShowSyncSummary = false;
926 mView->setSyncDevice(syncProfileNames[i] ); 928 mView->setSyncDevice(syncProfileNames[i] );
927 mView->setSyncName( KOPrefs::instance()->mLocalMachineName ); 929 mView->setSyncName( KOPrefs::instance()->mLocalMachineName );
928 if ( i == 0 ) { 930 if ( i == 0 ) {
929 syncSharp(); 931 syncSharp();
930 } else { 932 } else {
931 if ( temp->getIsLocalFileSync() ) { 933 if ( temp->getIsLocalFileSync() ) {
932 if ( syncWithFile( temp->getRemoteFileName( ), true ) ) 934 if ( syncWithFile( temp->getRemoteFileName( ), true ) )
933 KOPrefs::instance()->mLastSyncedLocalFile = temp->getRemoteFileName(); 935 KOPrefs::instance()->mLastSyncedLocalFile = temp->getRemoteFileName();
934 } else { 936 } else {
935 if ( temp->getIsPhoneSync() ) { 937 if ( temp->getIsPhoneSync() ) {
936 KOPrefs::instance()->mPhoneDevice = temp->getPhoneDevice( ) ; 938 KOPrefs::instance()->mPhoneDevice = temp->getPhoneDevice( ) ;
937 KOPrefs::instance()->mPhoneConnection = temp->getPhoneConnection( ); 939 KOPrefs::instance()->mPhoneConnection = temp->getPhoneConnection( );
938 KOPrefs::instance()->mPhoneModel = temp->getPhoneModel( ); 940 KOPrefs::instance()->mPhoneModel = temp->getPhoneModel( );
939 syncPhone(); 941 syncPhone();
940 } else 942 } else
941 syncRemote( temp, false ); 943 syncRemote( temp, false );
942 944
943 } 945 }
944 } 946 }
945 timer.start(); 947 timer.start();
946 setCaption(i18n("Multiple sync in progress ... please wait!") ); 948 setCaption(i18n("Multiple sync in progress ... please wait!") );
947 while ( timer.elapsed () < 2000 ) { 949 while ( timer.elapsed () < 2000 ) {
948 qApp->processEvents(); 950 qApp->processEvents();
949#ifndef _WIN32_ 951#ifndef _WIN32_
950 sleep (1); 952 sleep (1);
951#endif 953#endif
952 } 954 }
953 955
954 } 956 }
955 957
956 } 958 }
957 delete temp; 959 delete temp;
958 return syncedProfiles; 960 return syncedProfiles;
959} 961}
960 962
961void MainWindow::multiSync( bool askforPrefs ) 963void MainWindow::multiSync( bool askforPrefs )
962{ 964{
963 if (mBlockSaveFlag) 965 if (mBlockSaveFlag)
964 return; 966 return;
965 mBlockSaveFlag = true; 967 mBlockSaveFlag = true;
966 QString question = i18n("Do you really want\nto multiple sync\nwith all checked profiles?\nSyncing takes some\ntime - all profiles\nare synced twice!"); 968 QString question = i18n("Do you really want\nto multiple sync\nwith all checked profiles?\nSyncing takes some\ntime - all profiles\nare synced twice!");
967 if ( QMessageBox::information( this, i18n("KO/Pi Sync"), 969 if ( QMessageBox::information( this, i18n("KO/Pi Sync"),
968 question, 970 question,
969 i18n("Yes"), i18n("No"), 971 i18n("Yes"), i18n("No"),
970 0, 0 ) != 0 ) { 972 0, 0 ) != 0 ) {
971 mBlockSaveFlag = false; 973 mBlockSaveFlag = false;
972 setCaption(i18n("Aborted! Nothing synced!")); 974 setCaption(i18n("Aborted! Nothing synced!"));
973 return; 975 return;
974 } 976 }
975 mView->setSyncDevice(i18n("Multiple profiles") ); 977 mView->setSyncDevice(i18n("Multiple profiles") );
976 KOPrefs::instance()->mSyncAlgoPrefs = KOPrefs::instance()->mRingSyncAlgoPrefs; 978 KOPrefs::instance()->mSyncAlgoPrefs = KOPrefs::instance()->mRingSyncAlgoPrefs;
977 if ( askforPrefs ) { 979 if ( askforPrefs ) {
978 mView->edit_sync_options(); 980 mView->edit_sync_options();
979 KOPrefs::instance()->mRingSyncAlgoPrefs = KOPrefs::instance()->mSyncAlgoPrefs; 981 KOPrefs::instance()->mRingSyncAlgoPrefs = KOPrefs::instance()->mSyncAlgoPrefs;
980 } 982 }
981 setCaption(i18n("Multiple sync started.") ); 983 setCaption(i18n("Multiple sync started.") );
982 qApp->processEvents(); 984 qApp->processEvents();
983 int num = ringSync() ; 985 int num = ringSync() ;
984 if ( num > 1 ) 986 if ( num > 1 )
985 ringSync(); 987 ringSync();
986 mBlockSaveFlag = false; 988 mBlockSaveFlag = false;
987 if ( num ) 989 if ( num )
988 save(); 990 save();
989 if ( num ) 991 if ( num )
990 setCaption(i18n("%1 profiles synced. Multiple sync completed!").arg(num) ); 992 setCaption(i18n("%1 profiles synced. Multiple sync completed!").arg(num) );
991 else 993 else
992 setCaption(i18n("Nothing synced! No profiles defined for multisync!")); 994 setCaption(i18n("Nothing synced! No profiles defined for multisync!"));
993 return; 995 return;
994} 996}
995void MainWindow::slotSyncMenu( int action ) 997void MainWindow::slotSyncMenu( int action )
996{ 998{
997 //qDebug("syncaction %d ", action); 999 //qDebug("syncaction %d ", action);
998 if ( action == 0 ) { 1000 if ( action == 0 ) {
999 1001
1000 // seems to be a Qt2 event handling bug 1002 // seems to be a Qt2 event handling bug
1001 // syncmenu.clear causes a segfault at first time 1003 // syncmenu.clear causes a segfault at first time
1002 // when we call it after the main event loop, it is ok 1004 // when we call it after the main event loop, it is ok
1003 // same behaviour when calling OM/Pi via QCOP for the first time 1005 // same behaviour when calling OM/Pi via QCOP for the first time
1004 QTimer::singleShot ( 1, this, SLOT ( confSync() ) ); 1006 QTimer::singleShot ( 1, this, SLOT ( confSync() ) );
1005 //confSync(); 1007 //confSync();
1006 1008
1007 return; 1009 return;
1008 } 1010 }
1009 if ( action == 1 ) { 1011 if ( action == 1 ) {
1010 multiSync( true ); 1012 multiSync( true );
1011 return; 1013 return;
1012 } 1014 }
1013 1015
1014 if (mBlockSaveFlag) 1016 if (mBlockSaveFlag)
1015 return; 1017 return;
1016 mBlockSaveFlag = true; 1018 mBlockSaveFlag = true;
1017 mCurrentSyncProfile = action - 1000 ; 1019 mCurrentSyncProfile = action - 1000 ;
1018 mView->setSyncDevice(KOPrefs::instance()->mSyncProfileNames[mCurrentSyncProfile] ); 1020 mView->setSyncDevice(KOPrefs::instance()->mSyncProfileNames[mCurrentSyncProfile] );
1019 mView->setSyncName( KOPrefs::instance()->mLocalMachineName ); 1021 mView->setSyncName( KOPrefs::instance()->mLocalMachineName );
1020 KConfig config ( locateLocal( "config","ksyncprofilesrc" ) ); 1022 KConfig config ( locateLocal( "config","ksyncprofilesrc" ) );
1021 KSyncProfile* temp = new KSyncProfile (); 1023 KSyncProfile* temp = new KSyncProfile ();
1022 temp->setName(KOPrefs::instance()->mSyncProfileNames[mCurrentSyncProfile]); 1024 temp->setName(KOPrefs::instance()->mSyncProfileNames[mCurrentSyncProfile]);
1023 temp->readConfig(&config); 1025 temp->readConfig(&config);
1024 KOPrefs::instance()->mAskForPreferences = temp->getAskForPreferences(); 1026 KOPrefs::instance()->mAskForPreferences = temp->getAskForPreferences();
1025 KOPrefs::instance()->mSyncAlgoPrefs = temp->getSyncPrefs(); 1027 KOPrefs::instance()->mSyncAlgoPrefs = temp->getSyncPrefs();
1026 KOPrefs::instance()->mWriteBackFile = temp->getWriteBackFile(); 1028 KOPrefs::instance()->mWriteBackFile = temp->getWriteBackFile();
1027 KOPrefs::instance()->mWriteBackExistingOnly = temp->getWriteBackExisting(); 1029 KOPrefs::instance()->mWriteBackExistingOnly = temp->getWriteBackExisting();
1028 KOPrefs::instance()->mWriteBackInFuture = 0; 1030 KOPrefs::instance()->mWriteBackInFuture = 0;
1029 if ( temp->getWriteBackFuture() ) 1031 if ( temp->getWriteBackFuture() )
1030 KOPrefs::instance()->mWriteBackInFuture = temp->getWriteBackFutureWeeks( ); 1032 KOPrefs::instance()->mWriteBackInFuture = temp->getWriteBackFutureWeeks( );
1031 KOPrefs::instance()->mShowSyncSummary = temp->getShowSummaryAfterSync(); 1033 KOPrefs::instance()->mShowSyncSummary = temp->getShowSummaryAfterSync();
1032 if ( action == 1000 ) { 1034 if ( action == 1000 ) {
1033 syncSharp(); 1035 syncSharp();
1034 1036
1035 } else if ( action == 1001 ) { 1037 } else if ( action == 1001 ) {
1036 syncLocalFile(); 1038 syncLocalFile();
1037 1039
1038 } else if ( action == 1002 ) { 1040 } else if ( action == 1002 ) {
1039 quickSyncLocalFile(); 1041 quickSyncLocalFile();
1040 1042
1041 } else if ( action >= 1003 ) { 1043 } else if ( action >= 1003 ) {
1042 if ( temp->getIsLocalFileSync() ) { 1044 if ( temp->getIsLocalFileSync() ) {
1043 if ( syncWithFile( temp->getRemoteFileName( ), false ) ) 1045 if ( syncWithFile( temp->getRemoteFileName( ), false ) )
1044 KOPrefs::instance()->mLastSyncedLocalFile = temp->getRemoteFileName(); 1046 KOPrefs::instance()->mLastSyncedLocalFile = temp->getRemoteFileName();
1045 } else { 1047 } else {
1046 if ( temp->getIsPhoneSync() ) { 1048 if ( temp->getIsPhoneSync() ) {
1047 KOPrefs::instance()->mPhoneDevice = temp->getPhoneDevice( ) ; 1049 KOPrefs::instance()->mPhoneDevice = temp->getPhoneDevice( ) ;
1048 KOPrefs::instance()->mPhoneConnection = temp->getPhoneConnection( ); 1050 KOPrefs::instance()->mPhoneConnection = temp->getPhoneConnection( );
1049 KOPrefs::instance()->mPhoneModel = temp->getPhoneModel( ); 1051 KOPrefs::instance()->mPhoneModel = temp->getPhoneModel( );
1050 syncPhone(); 1052 syncPhone();
1051 } else 1053 } else
1052 syncRemote( temp ); 1054 syncRemote( temp );
1053 1055
1054 } 1056 }
1055 } 1057 }
1056 delete temp; 1058 delete temp;
1057 mBlockSaveFlag = false; 1059 mBlockSaveFlag = false;
1058} 1060}
1059void MainWindow::setDefaultPreferences() 1061void MainWindow::setDefaultPreferences()
1060{ 1062{
1061 KOPrefs *p = KOPrefs::instance(); 1063 KOPrefs *p = KOPrefs::instance();
1062 1064
1063 p->mCompactDialogs = true; 1065 p->mCompactDialogs = true;
1064 p->mConfirm = true; 1066 p->mConfirm = true;
1065 // p->mEnableQuickTodo = false; 1067 // p->mEnableQuickTodo = false;
1066} 1068}
1067 1069
1068QString MainWindow::resourcePath() 1070QString MainWindow::resourcePath()
1069{ 1071{
1070 return KGlobal::iconLoader()->iconPath(); 1072 return KGlobal::iconLoader()->iconPath();
1071} 1073}
1072 1074
1073void MainWindow::displayText( QString text ,QString cap ) 1075void MainWindow::displayText( QString text ,QString cap )
1074{ 1076{
1075 QDialog dia( this, "name", true ); ; 1077 QDialog dia( this, "name", true ); ;
1076 dia.setCaption( cap ); 1078 dia.setCaption( cap );
1077 QVBoxLayout* lay = new QVBoxLayout( &dia ); 1079 QVBoxLayout* lay = new QVBoxLayout( &dia );
1078 lay->setSpacing( 3 ); 1080 lay->setSpacing( 3 );
1079 lay->setMargin( 3 ); 1081 lay->setMargin( 3 );
1080 QTextBrowser tb ( &dia ); 1082 QTextBrowser tb ( &dia );
1081 lay->addWidget( &tb ); 1083 lay->addWidget( &tb );
1082 tb.setText( text ); 1084 tb.setText( text );
1083#ifdef DESKTOP_VERSION 1085#ifdef DESKTOP_VERSION
1084 dia.resize( 640, 480); 1086 dia.resize( 640, 480);
1085#else 1087#else
1086 dia.showMaximized(); 1088 dia.showMaximized();
1087#endif 1089#endif
1088 dia.exec(); 1090 dia.exec();
1089} 1091}
1090void MainWindow::displayFile( QString fn, QString cap ) 1092void MainWindow::displayFile( QString fn, QString cap )
1091{ 1093{
1092 QString fileName = resourcePath() + fn; 1094 QString fileName = resourcePath() + fn;
1093 QString text; 1095 QString text;
1094 QFile file( fileName ); 1096 QFile file( fileName );
1095 if (!file.open( IO_ReadOnly ) ) { 1097 if (!file.open( IO_ReadOnly ) ) {
1096 return ; 1098 return ;
1097 1099
1098 } 1100 }
1099 QTextStream ts( &file ); 1101 QTextStream ts( &file );
1100 text = ts.read(); 1102 text = ts.read();
1101 file.close(); 1103 file.close();
1102 displayText( text, cap); 1104 displayText( text, cap);
1103} 1105}
1104void MainWindow::features() 1106void MainWindow::features()
1105{ 1107{
1106 1108
1107 displayFile( "featuresKOPI.txt",i18n("KO/Pi Features and hints") ); 1109 displayFile( "featuresKOPI.txt",i18n("KO/Pi Features and hints") );
1108} 1110}
1109 1111
1110void MainWindow::usertrans() 1112void MainWindow::usertrans()
1111{ 1113{
1112 1114
1113 displayFile( "usertranslationHOWTO.txt",i18n("KO/Pi User translation HowTo") ); 1115 displayFile( "usertranslationHOWTO.txt",i18n("KO/Pi User translation HowTo") );
1114} 1116}
1115#if 0 1117#if 0
1116#include <libkcal/vcalformat.h> 1118#include <libkcal/vcalformat.h>
1117#include <libkcal/event.h> 1119#include <libkcal/event.h>
1118#include <libkcal/todo.h> 1120#include <libkcal/todo.h>
1119#include <libkcal/incidence.h> 1121#include <libkcal/incidence.h>
1120#endif 1122#endif
1121void MainWindow::synchowto() 1123void MainWindow::synchowto()
1122{ 1124{
1123#if 0 1125#if 0
1124 QPtrList<Incidence> er = mCalendar->rawIncidences(); 1126 QPtrList<Incidence> er = mCalendar->rawIncidences();
1125 Incidence* inR = er.first(); 1127 Incidence* inR = er.first();
1126 VCalFormat vf; 1128 VCalFormat vf;
1127 QString strout; 1129 QString strout;
1128 while ( inR ) { 1130 while ( inR ) {
1129 if ( inR->type() == "Todo" ) 1131 if ( inR->type() == "Todo" )
1130 strout = vf.todoToString( (Todo *) inR ); 1132 strout = vf.todoToString( (Todo *) inR );
1131 if ( inR->type() == "Event" ) 1133 if ( inR->type() == "Event" )
1132 strout = vf.eventToString( (Event *) inR ); 1134 strout = vf.eventToString( (Event *) inR );
1133 qDebug("incidence: \n%s\n ente\n\n",strout.latin1() ); 1135 qDebug("incidence: \n%s\n ente\n\n",strout.latin1() );
1134 inR = er.next(); 1136 inR = er.next();
1135 } 1137 }
1136#endif 1138#endif
1137 displayFile( "howtoSYNC.txt",i18n("KO/Pi Synchronization HowTo") ); 1139 displayFile( "howtoSYNC.txt",i18n("KO/Pi Synchronization HowTo") );
1138} 1140}
1139void MainWindow::faq() 1141void MainWindow::faq()
1140{ 1142{
1141 displayFile( "kopiFAQ.txt",i18n("KO/Pi FAQ") ); 1143 displayFile( "kopiFAQ.txt",i18n("KO/Pi FAQ") );
1142 1144
1143} 1145}
1144void MainWindow::whatsNew() 1146void MainWindow::whatsNew()
1145{ 1147{
1146 displayFile( "kopiWhatsNew.txt",i18n("KO/Pi Version Info") ); 1148 displayFile( "kopiWhatsNew.txt",i18n("KO/Pi Version Info") );
1147 1149
1148} 1150}
1149void MainWindow::licence() 1151void MainWindow::licence()
1150{ 1152{
1151 KApplication::showLicence(); 1153 KApplication::showLicence();
1152 1154
1153} 1155}
1154void MainWindow::about() 1156void MainWindow::about()
1155{ 1157{
1156 QString version; 1158 QString version;
1157#include <../version> 1159#include <../version>
1158 QMessageBox::about( this, i18n("About KOrganizer/Pi"), 1160 QMessageBox::about( this, i18n("About KOrganizer/Pi"),
1159 i18n("KOrganizer/Platform-independent\n") + 1161 i18n("KOrganizer/Platform-independent\n") +
1160 "(KO/Pi) " + version + " - " + 1162 "(KO/Pi) " + version + " - " +
1161 1163
1162#ifdef DESKTOP_VERSION 1164#ifdef DESKTOP_VERSION
1163 i18n("Desktop Edition\n") + 1165 i18n("Desktop Edition\n") +
1164#else 1166#else
1165 i18n("PDA-Edition\nfor: Zaurus 5x00 / 7x0 / 8x0\n") + 1167 i18n("PDA-Edition\nfor: Zaurus 5x00 / 7x0 / 8x0\n") +
1166#endif 1168#endif
1167 i18n("(c) 2004 Lutz Rogowski\nEmail:lutz@pi-sync.net\nKO/Pi is based on KOrganizer\n(c) 2002,2003 Cornelius Schumacher\nEmail: schumacher@kde.org\nKOrganizer/Pi is licensed\nunder the GPL.\nKO/Pi can be compiled for\nLinux, Zaurus-PDA and Windows\nwww.korganizer.org\nwww.pi-sync.net\n") ); 1169 i18n("(c) 2004 Lutz Rogowski\nEmail:lutz@pi-sync.net\nKO/Pi is based on KOrganizer\n(c) 2002,2003 Cornelius Schumacher\nEmail: schumacher@kde.org\nKOrganizer/Pi is licensed\nunder the GPL.\nKO/Pi can be compiled for\nLinux, Zaurus-PDA and Windows\nwww.korganizer.org\nwww.pi-sync.net\n") );
1168} 1170}
1169void MainWindow::keyBindings() 1171void MainWindow::keyBindings()
1170{ 1172{
1171 QString cap = i18n("Key bindings KOrganizer/Pi"); 1173 QString cap = i18n("Key bindings KOrganizer/Pi");
1172 QString text = i18n("<p><h2>KO/Pi key shortcuts:</h2></p>\n") + 1174 QString text = i18n("<p><h2>KO/Pi key shortcuts:</h2></p>\n") +
1173 i18n("<p><b>H</b>: This help dialog | <b>S</b>: Search dialog</p>\n")+ 1175 i18n("<p><b>H</b>: This help dialog | <b>S</b>: Search dialog</p>\n")+
1174 i18n("<p><b>I</b>: Show info for selected event/todo</p>\n") + 1176 i18n("<p><b>I</b>: Show info for selected event/todo</p>\n") +
1175 i18n("<p><b>Space</b>: Toggle fullscreen | <b>P</b>: Date picker</p>\n")+ 1177 i18n("<p><b>Space</b>: Toggle fullscreen | <b>P</b>: Date picker</p>\n")+
1176 i18n("<p><b>F</b>: Toggle filterview |<b>F+ctrl</b>: Edit filter </p>\n")+ 1178 i18n("<p><b>F</b>: Toggle filterview |<b>F+ctrl</b>: Edit filter </p>\n")+
1177 i18n("<p><b>O</b>: Filter On/Off | <b>J</b>: Journal view</p>\n")+ 1179 i18n("<p><b>O</b>: Filter On/Off | <b>J</b>: Journal view</p>\n")+
1178 i18n("<p><b>1-0</b> (+<b>ctrl</b>): Select filter 1-10 (11-20)</p>\n")+ 1180 i18n("<p><b>1-0</b> (+<b>ctrl</b>): Select filter 1-10 (11-20)</p>\n")+
1179 i18n("<p><b>N</b>: Next days view| <b>W</b>: What's next view\n ")+ 1181 i18n("<p><b>N</b>: Next days view| <b>W</b>: What's next view\n ")+
1180 i18n("<p><b>V</b>: Todo view | <b>L</b>: Event list view</p>\n")+ 1182 i18n("<p><b>V</b>: Todo view | <b>L</b>: Event list view</p>\n")+
1181 i18n("<p><b>Z,Y</b>: Work week view | <b>U</b>: Week view</p>\n")+ 1183 i18n("<p><b>Z,Y</b>: Work week view | <b>U</b>: Week view</p>\n")+
1182 i18n("<p><b>D</b>: One day view | <b>M</b>: Month view</p>\n")+ 1184 i18n("<p><b>D</b>: One day view | <b>M</b>: Month view</p>\n")+
1183 i18n("<p><b>E</b>: Edit selected item |<b> E+ctrl</b>: New Event</p>\n")+ 1185 i18n("<p><b>E</b>: Edit selected item |<b> E+ctrl</b>: New Event</p>\n")+
1184 i18n("<p><b>T</b>: Goto today | <b>T+ctrl</b>: New Todo</p>\n")+ 1186 i18n("<p><b>T</b>: Goto today | <b>T+ctrl</b>: New Todo</p>\n")+
1185 i18n("<p><b>S+ctrl</b>: Add sub-todo | <b>X</b>: Toggle datenavigator</p>\n")+ 1187 i18n("<p><b>S+ctrl</b>: Add sub-todo | <b>X</b>: Toggle datenavigator</p>\n")+
1186 i18n("<p><b>+,-</b> : Zoom in/out agenda | <b>A</b>: Toggle allday agenda height</p>\n")+ 1188 i18n("<p><b>+,-</b> : Zoom in/out agenda | <b>A</b>: Toggle allday agenda height</p>\n")+
1187 i18n("<p><b>C</b>: Show current time in agenda view</p>\n")+ 1189 i18n("<p><b>C</b>: Show current time in agenda view</p>\n")+
1188 i18n("<p><b>B</b>: Edit description (details) of selected item</p>\n")+ 1190 i18n("<p><b>B</b>: Edit description (details) of selected item</p>\n")+
1189 i18n("<p><b>right</b>: Next week | <b>right+ctrl</b>: Next month</p>\n")+ 1191 i18n("<p><b>right</b>: Next week | <b>right+ctrl</b>: Next month</p>\n")+
1190 i18n("<p><b>left</b>: Prev. week | <b>left+ctrl</b>: Prev. month</p>\n")+ 1192 i18n("<p><b>left</b>: Prev. week | <b>left+ctrl</b>: Prev. month</p>\n")+
1191 i18n("<p><b>del,backspace</b>: Delete selected item</p>\n")+ 1193 i18n("<p><b>del,backspace</b>: Delete selected item</p>\n")+
1192 i18n("<p><h3>In agenda view:</h3></p>\n") + 1194 i18n("<p><h3>In agenda view:</h3></p>\n") +
1193 i18n("<p><b>up/down</b>: Scroll agenda view</p>\n")+ 1195 i18n("<p><b>up/down</b>: Scroll agenda view</p>\n")+
1194 i18n("<p><b>ctrl+up/down</b>: Scroll small todo view</p>\n")+ 1196 i18n("<p><b>ctrl+up/down</b>: Scroll small todo view</p>\n")+
1195 i18n("<p><h3>In todo view:</h3></p>\n") + 1197 i18n("<p><h3>In todo view:</h3></p>\n") +
1196 i18n("<p><b>Q</b>: Toggle quick todo line edit.</p>\n")+ 1198 i18n("<p><b>Q</b>: Toggle quick todo line edit.</p>\n")+
1197 i18n("<p><b>I</b>: Show info of current item+one step down.</p>\n")+ 1199 i18n("<p><b>I</b>: Show info of current item+one step down.</p>\n")+
1198 i18n("<p><b>return</b>: Mark item as completed+one step down.</p>\n")+ 1200 i18n("<p><b>return</b>: Mark item as completed+one step down.</p>\n")+
1199 i18n("<p><b>return+shift</b>: Mark item as not completed+one step down</p>\n")+ 1201 i18n("<p><b>return+shift</b>: Mark item as not completed+one step down</p>\n")+
1200 i18n("<p><h3>In list view:</h3></p>\n") + 1202 i18n("<p><h3>In list view:</h3></p>\n") +
1201 i18n("<p><b>I</b>: Show info of current item+one step down.</p>\n")+ 1203 i18n("<p><b>I</b>: Show info of current item+one step down.</p>\n")+
1202 i18n("<p><b>return</b>: Select item+one step down</p>\n")+ 1204 i18n("<p><b>return</b>: Select item+one step down</p>\n")+
1203 i18n("<p><b>return+shift</b>: Deselect item+one step down</p>\n")+ 1205 i18n("<p><b>return+shift</b>: Deselect item+one step down</p>\n")+
1204 i18n("<p><b>up/down</b>: Next/prev item</p>\n")+ 1206 i18n("<p><b>up/down</b>: Next/prev item</p>\n")+
1205 i18n("<p><b>ctrl+up/down</b>: Goto up/down by 20% of items</p>\n")+ 1207 i18n("<p><b>ctrl+up/down</b>: Goto up/down by 20% of items</p>\n")+
1206 i18n("<p><b>shift+up/down</b>: Goto first/last item</p>\n")+ 1208 i18n("<p><b>shift+up/down</b>: Goto first/last item</p>\n")+
1207 i18n("<p><h3>In event/todo viewer:</h3></p>\n") + 1209 i18n("<p><h3>In event/todo viewer:</h3></p>\n") +
1208 i18n("<p><b>I,C</b>: Close dialog.</p>\n")+ 1210 i18n("<p><b>I,C</b>: Close dialog.</p>\n")+
1209 i18n("<p><b>A</b>: Show agenda view.</p>\n")+ 1211 i18n("<p><b>A</b>: Show agenda view.</p>\n")+
1210 i18n("<p><b>E</b>: Edit item</p>\n") + 1212 i18n("<p><b>E</b>: Edit item</p>\n") +
1211 i18n("<p><h2>KO/Pi icon colors:</h2></p>\n") + 1213 i18n("<p><h2>KO/Pi icon colors:</h2></p>\n") +
1212 i18n("<p><b>(for square icons in agenda and month view)</b></p>\n") + 1214 i18n("<p><b>(for square icons in agenda and month view)</b></p>\n") +
1213 i18n("<p><b>Cross</b>: Item cancelled.([c] in Whats'Next view)</p>\n")+ 1215 i18n("<p><b>Cross</b>: Item cancelled.([c] in Whats'Next view)</p>\n")+
1214 i18n("<p><b>Red</b>: Alarm set.([a] in Whats'Next view)</p>\n")+ 1216 i18n("<p><b>Red</b>: Alarm set.([a] in Whats'Next view)</p>\n")+
1215 i18n("<p><b>Blue</b>: Recurrent event.([r] in Whats'Next view)</p>\n")+ 1217 i18n("<p><b>Blue</b>: Recurrent event.([r] in Whats'Next view)</p>\n")+
1216 i18n("<p><b>Dark green</b>: Information(description) available.([i] in WN view)</p>\n")+ 1218 i18n("<p><b>Dark green</b>: Information(description) available.([i] in WN view)</p>\n")+
1217 i18n("<p><b>Black</b>: Event/todo with attendees. You are the organizer!</p>\n")+ 1219 i18n("<p><b>Black</b>: Event/todo with attendees. You are the organizer!</p>\n")+
1218 i18n("<p><b>Dark yellow</b>: Event/todo with attendees.</p>\n") + 1220 i18n("<p><b>Dark yellow</b>: Event/todo with attendees.</p>\n") +
1219 i18n("<p><b>White</b>: Item readonly</p>\n"); 1221 i18n("<p><b>White</b>: Item readonly</p>\n");
1220 displayText( text, cap); 1222 displayText( text, cap);
1221 1223
1222} 1224}
1223void MainWindow::aboutAutoSaving() 1225void MainWindow::aboutAutoSaving()
1224{ 1226{
1225 QMessageBox* msg; 1227 QMessageBox* msg;
1226 msg = new QMessageBox( i18n("Auto Saving in KOrganizer/Pi"), 1228 msg = new QMessageBox( i18n("Auto Saving in KOrganizer/Pi"),
1227 i18n("After changing something, the data is\nautomatically saved to the file\n~/kdepim/apps/korganizer/mycalendar.ics\nafter (configureable) three minutes.\nFor safety reasons there is one autosaving\nafter 10 minutes (of idle time) again. The \ndata is saved automatically when closing KO/Pi\nYou can create a backup file \nwith: File - Save Calendar Backup\n"), QMessageBox::NoIcon, 1229 i18n("After changing something, the data is\nautomatically saved to the file\n~/kdepim/apps/korganizer/mycalendar.ics\nafter (configureable) three minutes.\nFor safety reasons there is one autosaving\nafter 10 minutes (of idle time) again. The \ndata is saved automatically when closing KO/Pi\nYou can create a backup file \nwith: File - Save Calendar Backup\n"), QMessageBox::NoIcon,
1228 QMessageBox::Ok, 1230 QMessageBox::Ok,
1229 QMessageBox::NoButton, 1231 QMessageBox::NoButton,
1230 QMessageBox::NoButton); 1232 QMessageBox::NoButton);
1231 msg->exec(); 1233 msg->exec();
1232 delete msg; 1234 delete msg;
1233 1235
1234 1236
1235} 1237}
1236void MainWindow::aboutKnownBugs() 1238void MainWindow::aboutKnownBugs()
1237{ 1239{
1238 QMessageBox* msg; 1240 QMessageBox* msg;
1239 msg = new QMessageBox( i18n("Known Problems in KOrganizer/Pi"), 1241 msg = new QMessageBox( i18n("Known Problems in KOrganizer/Pi"),
1240 i18n("1) Importing *.vcs or *.ics files from\nother applications may not work properly,\nif there are events with properties\nKO/Pi does not support.\n")+ 1242 i18n("1) Importing *.vcs or *.ics files from\nother applications may not work properly,\nif there are events with properties\nKO/Pi does not support.\n")+
1241 i18n("2) Audio alarm daemon\nfor Zaurus is available!\nas an additional small application\n")+ 1243 i18n("2) Audio alarm daemon\nfor Zaurus is available!\nas an additional small application\n")+
1242 i18n("\nPlease report unexpected behaviour to\nlutz@pi-sync.net\n") + 1244 i18n("\nPlease report unexpected behaviour to\nlutz@pi-sync.net\n") +
1243 i18n("\nor report them in the bugtracker on\n") + 1245 i18n("\nor report them in the bugtracker on\n") +
1244 i18n("\nhttp://sourceforge.net/projects/kdepimpi\n"), 1246 i18n("\nhttp://sourceforge.net/projects/kdepimpi\n"),
1245 QMessageBox::NoIcon, 1247 QMessageBox::NoIcon,
1246 QMessageBox::Ok, 1248 QMessageBox::Ok,
1247 QMessageBox::NoButton, 1249 QMessageBox::NoButton,
1248 QMessageBox::NoButton); 1250 QMessageBox::NoButton);
1249 msg->exec(); 1251 msg->exec();
1250 delete msg; 1252 delete msg;
1251 1253
1252} 1254}
1253 1255
1254QString MainWindow::defaultFileName() 1256QString MainWindow::defaultFileName()
1255{ 1257{
1256 return locateLocal( "data", "korganizer/mycalendar.ics" ); 1258 return locateLocal( "data", "korganizer/mycalendar.ics" );
1257} 1259}
1258 1260
1259void MainWindow::processIncidenceSelection( Incidence *incidence ) 1261void MainWindow::processIncidenceSelection( Incidence *incidence )
1260{ 1262{
1261 if ( !incidence ) { 1263 if ( !incidence ) {
1262 enableIncidenceActions( false ); 1264 enableIncidenceActions( false );
1263 1265
1264 mNewSubTodoAction->setEnabled( false ); 1266 mNewSubTodoAction->setEnabled( false );
1265 setCaptionToDates(); 1267 setCaptionToDates();
1266 return; 1268 return;
1267 1269
1268 } 1270 }
1269 1271
1270 //KGlobal::locale()->formatDateTime(nextA, true); 1272 //KGlobal::locale()->formatDateTime(nextA, true);
1271 QString startString = ""; 1273 QString startString = "";
1272 if ( incidence->type() != "Todo" ) { 1274 if ( incidence->type() != "Todo" ) {
1273 if ( incidence->dtStart().date() < incidence->dtEnd().date() ) { 1275 if ( incidence->dtStart().date() < incidence->dtEnd().date() ) {
1274 if ( incidence->doesFloat() ) { 1276 if ( incidence->doesFloat() ) {
1275 startString += ": "+incidence->dtStartDateStr( true ); 1277 startString += ": "+incidence->dtStartDateStr( true );
1276 startString += " --- "+((Event*)incidence)->dtEndDateStr( true ); 1278 startString += " --- "+((Event*)incidence)->dtEndDateStr( true );
1277 1279
1278 } else { 1280 } else {
1279 startString = ": "+incidence->dtStartStr(true); 1281 startString = ": "+incidence->dtStartStr(true);
1280 startString += " --- "+((Event*)incidence)->dtEndStr(true); 1282 startString += " --- "+((Event*)incidence)->dtEndStr(true);
1281 1283
1282 } 1284 }
1283 1285
1284 } else { 1286 } else {
1285 if ( incidence->dtStart().time() != incidence->dtEnd().time() ) 1287 if ( incidence->dtStart().time() != incidence->dtEnd().time() )
1286 startString = ": "+KGlobal::locale()->formatTime(incidence->dtStart().time())+ 1288 startString = ": "+KGlobal::locale()->formatTime(incidence->dtStart().time())+
1287 "-"+KGlobal::locale()->formatTime(incidence->dtEnd().time()); 1289 "-"+KGlobal::locale()->formatTime(incidence->dtEnd().time());
1288 startString +=" "+KGlobal::locale()->formatDate( incidence->dtStart().date(), true); 1290 startString +=" "+KGlobal::locale()->formatDate( incidence->dtStart().date(), true);
1289 } 1291 }
1290 1292
1291 } 1293 }
1292 else 1294 else
1293 startString = i18n(": (Prio ") +QString::number( (( KCal::Todo*)incidence)->priority() ) +") "+QString::number( (( KCal::Todo*)incidence)->percentComplete() ) +i18n("\% completed"); 1295 startString = i18n(": (Prio ") +QString::number( (( KCal::Todo*)incidence)->priority() ) +") "+QString::number( (( KCal::Todo*)incidence)->percentComplete() ) +i18n("\% completed");
1294 if ( !incidence->location().isEmpty() ) 1296 if ( !incidence->location().isEmpty() )
1295 startString += " (" +incidence->location()+")"; 1297 startString += " (" +incidence->location()+")";
1296 setCaption( incidence->summary()+startString); 1298 setCaption( incidence->summary()+startString);
1297 1299
1298 enableIncidenceActions( true ); 1300 enableIncidenceActions( true );
1299 1301
1300 if ( incidence->type() == "Event" ) { 1302 if ( incidence->type() == "Event" ) {
1301 mShowAction->setText( i18n("Show Event...") ); 1303 mShowAction->setText( i18n("Show Event...") );
1302 mEditAction->setText( i18n("Edit Event...") ); 1304 mEditAction->setText( i18n("Edit Event...") );
1303 mDeleteAction->setText( i18n("Delete Event...") ); 1305 mDeleteAction->setText( i18n("Delete Event...") );
1304 1306
1305 mNewSubTodoAction->setEnabled( false ); 1307 mNewSubTodoAction->setEnabled( false );
1306 } else if ( incidence->type() == "Todo" ) { 1308 } else if ( incidence->type() == "Todo" ) {
1307 mShowAction->setText( i18n("Show Todo...") ); 1309 mShowAction->setText( i18n("Show Todo...") );
1308 mEditAction->setText( i18n("Edit Todo...") ); 1310 mEditAction->setText( i18n("Edit Todo...") );
1309 mDeleteAction->setText( i18n("Delete Todo...") ); 1311 mDeleteAction->setText( i18n("Delete Todo...") );
1310 1312
1311 mNewSubTodoAction->setEnabled( true ); 1313 mNewSubTodoAction->setEnabled( true );
1312 } else { 1314 } else {
1313 mShowAction->setText( i18n("Show...") ); 1315 mShowAction->setText( i18n("Show...") );
1314 mShowAction->setText( i18n("Edit...") ); 1316 mShowAction->setText( i18n("Edit...") );
1315 mShowAction->setText( i18n("Delete...") ); 1317 mShowAction->setText( i18n("Delete...") );
1316 1318
1317 mNewSubTodoAction->setEnabled( false ); 1319 mNewSubTodoAction->setEnabled( false );
1318 } 1320 }
1319} 1321}
1320 1322
1321void MainWindow::enableIncidenceActions( bool enabled ) 1323void MainWindow::enableIncidenceActions( bool enabled )
1322{ 1324{
1323 mShowAction->setEnabled( enabled ); 1325 mShowAction->setEnabled( enabled );
1324 mEditAction->setEnabled( enabled ); 1326 mEditAction->setEnabled( enabled );
1325 mDeleteAction->setEnabled( enabled ); 1327 mDeleteAction->setEnabled( enabled );
1326} 1328}
1327 1329
1328void MainWindow::importOL() 1330void MainWindow::importOL()
1329{ 1331{
1330#ifdef _WIN32_ 1332#ifdef _WIN32_
1331 KOImportOLdialog *id = new KOImportOLdialog("Import from OL - select folder!" , mView->calendar(),this ); 1333 KOImportOLdialog *id = new KOImportOLdialog("Import from OL - select folder!" , mView->calendar(),this );
1332 id->exec(); 1334 id->exec();
1333 delete id; 1335 delete id;
1334 mView->updateView(); 1336 mView->updateView();
1335#endif 1337#endif
1336} 1338}
1337void MainWindow::importBday() 1339void MainWindow::importBday()
1338{ 1340{
1339 int result = QMessageBox::warning( this, i18n("KO/Pi: Warning!"), 1341 int result = QMessageBox::warning( this, i18n("KO/Pi: Warning!"),
1340 i18n("When importing birthdays twice\nduplicated events will be ignored,\nif the event has not been\nchanged in KO/Pi!\n"), 1342 i18n("When importing birthdays twice\nduplicated events will be ignored,\nif the event has not been\nchanged in KO/Pi!\n"),
1341 i18n("Import!"), i18n("Cancel"), 0, 1343 i18n("Import!"), i18n("Cancel"), 0,
1342 0, 1 ); 1344 0, 1 );
1343 if ( result == 0 ) { 1345 if ( result == 0 ) {
1344 mView->importBday(); 1346 mView->importBday();
1345 1347
1346 } 1348 }
1347 1349
1348 1350
1349} 1351}
1350void MainWindow::importQtopia() 1352void MainWindow::importQtopia()
1351{ 1353{
1352#ifndef DESKTOP_VERSION 1354#ifndef DESKTOP_VERSION
1353 int result = QMessageBox::warning( this, i18n("KO/Pi: Warning!"), 1355 int result = QMessageBox::warning( this, i18n("KO/Pi: Warning!"),
1354 i18n("When importing a calendar twice\nduplicated events will be ignored!\nYou can create a backup file with\nFile - Save Calendar Backup\nto revert importing"), 1356 i18n("When importing a calendar twice\nduplicated events will be ignored!\nYou can create a backup file with\nFile - Save Calendar Backup\nto revert importing"),
1355 i18n("Import!"), i18n("Cancel"), 0, 1357 i18n("Import!"), i18n("Cancel"), 0,
1356 0, 1 ); 1358 0, 1 );
1357 if ( result == 0 ) { 1359 if ( result == 0 ) {
1358 QString datebook = Global::applicationFileName( "datebook", "datebook.xml"); 1360 QString datebook = Global::applicationFileName( "datebook", "datebook.xml");
1359 QString todolist = Global::applicationFileName( "todolist", "todolist.xml"); 1361 QString todolist = Global::applicationFileName( "todolist", "todolist.xml");
1360 QString categories = QString( getenv( "HOME" ) ) + "/Settings/Categories.xml"; 1362 QString categories = QString( getenv( "HOME" ) ) + "/Settings/Categories.xml";
1361 mView->importQtopia( categories, datebook, todolist ); 1363 mView->importQtopia( categories, datebook, todolist );
1362 } 1364 }
1363#else 1365#else
1364 int result = QMessageBox::warning( this, i18n("KO/Pi: Warning!"), 1366 int result = QMessageBox::warning( this, i18n("KO/Pi: Warning!"),
1365 i18n("Not supported \non desktop!\n"), 1367 i18n("Not supported \non desktop!\n"),
1366 i18n("Ok"), i18n("Cancel"), 0, 1368 i18n("Ok"), i18n("Cancel"), 0,
1367 0, 1 ); 1369 0, 1 );
1368 1370
1369#endif 1371#endif
1370} 1372}
1371 1373
1372void MainWindow::saveOnClose() 1374void MainWindow::saveOnClose()
1373{ 1375{
1374 KOPrefs *p = KOPrefs::instance(); 1376 KOPrefs *p = KOPrefs::instance();
1375 p->mToolBarHor = ( iconToolBar->orientation () == Qt:: Horizontal ); 1377 p->mToolBarHor = ( iconToolBar->orientation () == Qt:: Horizontal );
1376 p->mToolBarUp = iconToolBar->x() > width()/2 || 1378 p->mToolBarUp = iconToolBar->x() > width()/2 ||
1377 iconToolBar->y() > height()/2; 1379 iconToolBar->y() > height()/2;
1378 mView->writeSettings(); 1380 mView->writeSettings();
1379 if ( mCalendarModifiedFlag || mView->checkFileChanged( defaultFileName())) 1381 if ( mCalendarModifiedFlag || mView->checkFileChanged( defaultFileName()))
1380 save(); 1382 save();
1381} 1383}
1382void MainWindow::slotModifiedChanged( bool changed ) 1384void MainWindow::slotModifiedChanged( bool changed )
1383{ 1385{
1384 if ( mBlockAtStartup ) 1386 if ( mBlockAtStartup )
1385 return; 1387 return;
1386 int msec; 1388 int msec;
1387 // we store the changes after 1 minute, 1389 // we store the changes after 1 minute,
1388 // and for safety reasons after 10 minutes again 1390 // and for safety reasons after 10 minutes again
1389 if ( !mBlockSaveFlag ) 1391 if ( !mBlockSaveFlag )
1390 msec = (1000 * 60*KOPrefs::instance()->mAutoSaveInterval) +1000; 1392 msec = (1000 * 60*KOPrefs::instance()->mAutoSaveInterval) +1000;
1391 else 1393 else
1392 msec = 1000 * 600; 1394 msec = 1000 * 600;
1393 mSaveTimer.start( msec, true ); // 1 minute 1395 mSaveTimer.start( msec, true ); // 1 minute
1394 qDebug("KO: Saving File in %d secs!", msec/1000); 1396 qDebug("KO: Saving File in %d secs!", msec/1000);
1395 mCalendarModifiedFlag = true; 1397 mCalendarModifiedFlag = true;
1396} 1398}
1397#include <qfileinfo.h> 1399#include <qfileinfo.h>
1398void MainWindow::save() 1400void MainWindow::save()
1399{ 1401{
1400 if ( mBlockSaveFlag ) 1402 if ( mBlockSaveFlag )
1401 return; 1403 return;
1402 bool store = mBlockSaveFlag; 1404 bool store = mBlockSaveFlag;
1403 mBlockSaveFlag = true; 1405 mBlockSaveFlag = true;
1404 if ( mView->checkFileVersion( defaultFileName()) ) { 1406 if ( mView->checkFileVersion( defaultFileName()) ) {
1405 1407
1406 QTime neededSaveTime = QDateTime::currentDateTime().time(); 1408 QTime neededSaveTime = QDateTime::currentDateTime().time();
1407 setCaption(i18n("KO/Pi:Saving Data to File ..." )); 1409 setCaption(i18n("KO/Pi:Saving Data to File ..." ));
1408 qDebug("KO: Start saving data to file!"); 1410 qDebug("KO: Start saving data to file!");
1409 mView->saveCalendar( defaultFileName() ); 1411 mView->saveCalendar( defaultFileName() );
1410 1412
1411 int msNeeded = neededSaveTime.msecsTo( QDateTime::currentDateTime().time() ); 1413 int msNeeded = neededSaveTime.msecsTo( QDateTime::currentDateTime().time() );
1412 mView->setLoadedFileVersion(QDateTime::currentDateTime()); 1414 mView->setLoadedFileVersion(QDateTime::currentDateTime());
1413 qDebug("KO: Needed %d ms for saving.",msNeeded ); 1415 qDebug("KO: Needed %d ms for saving.",msNeeded );
1414 QString savemes; 1416 QString savemes;
1415 savemes.sprintf(i18n("KO/Pi:File Saved. Needed %d sec, %d ms"),(msNeeded/1000)%100,msNeeded%1000 ); 1417 savemes.sprintf(i18n("KO/Pi:File Saved. Needed %d sec, %d ms"),(msNeeded/1000)%100,msNeeded%1000 );
1416 setCaption(savemes); 1418 setCaption(savemes);
1417 } else 1419 } else
1418 setCaption(i18n("Saving cancelled!")); 1420 setCaption(i18n("Saving cancelled!"));
1419 mCalendarModifiedFlag = false; 1421 mCalendarModifiedFlag = false;
1420 mBlockSaveFlag = store; 1422 mBlockSaveFlag = store;
1421} 1423}
1422 1424
1423void MainWindow::keyReleaseEvent ( QKeyEvent * e) 1425void MainWindow::keyReleaseEvent ( QKeyEvent * e)
1424{ 1426{
1425 if ( !e->isAutoRepeat() ) { 1427 if ( !e->isAutoRepeat() ) {
1426 mFlagKeyPressed = false; 1428 mFlagKeyPressed = false;
1427 } 1429 }
1428} 1430}
1429void MainWindow::keyPressEvent ( QKeyEvent * e ) 1431void MainWindow::keyPressEvent ( QKeyEvent * e )
1430{ 1432{
1431 qApp->processEvents(); 1433 qApp->processEvents();
1432 if ( e->isAutoRepeat() && !mFlagKeyPressed ) { 1434 if ( e->isAutoRepeat() && !mFlagKeyPressed ) {
1433 e->ignore(); 1435 e->ignore();
1434 // qDebug(" ignore %d",e->isAutoRepeat() ); 1436 // qDebug(" ignore %d",e->isAutoRepeat() );
1435 return; 1437 return;
1436 } 1438 }
1437 if (! e->isAutoRepeat() ) 1439 if (! e->isAutoRepeat() )
1438 mFlagKeyPressed = true; 1440 mFlagKeyPressed = true;
1439 KOPrefs *p = KOPrefs::instance(); 1441 KOPrefs *p = KOPrefs::instance();
1440 bool showSelectedDates = false; 1442 bool showSelectedDates = false;
1441 int size; 1443 int size;
1442 int pro = 0; 1444 int pro = 0;
1443 //qDebug("MainWindow::keyPressEvent "); 1445 //qDebug("MainWindow::keyPressEvent ");
1444 switch ( e->key() ) { 1446 switch ( e->key() ) {
1445 case Qt::Key_Right: 1447 case Qt::Key_Right:
1446 if ( e->state() == Qt::ControlButton || e->state() == Qt::ShiftButton) 1448 if ( e->state() == Qt::ControlButton || e->state() == Qt::ShiftButton)
1447 mView->goNextMonth(); 1449 mView->goNextMonth();
1448 else 1450 else
1449 mView->goNext(); 1451 mView->goNext();
1450 showSelectedDates = true; 1452 showSelectedDates = true;
1451 break; 1453 break;
1452 case Qt::Key_Left: 1454 case Qt::Key_Left:
1453 if ( e->state() == Qt::ControlButton|| e->state() == Qt::ShiftButton ) 1455 if ( e->state() == Qt::ControlButton|| e->state() == Qt::ShiftButton )
1454 mView->goPreviousMonth(); 1456 mView->goPreviousMonth();
1455 else 1457 else
1456 mView->goPrevious(); 1458 mView->goPrevious();
1457 showSelectedDates = true; 1459 showSelectedDates = true;
1458 break; 1460 break;
1459 case Qt::Key_Down: 1461 case Qt::Key_Down:
1460 mView->viewManager()->agendaView()->scrollOneHourDown(); 1462 mView->viewManager()->agendaView()->scrollOneHourDown();
1461 break; 1463 break;
1462 case Qt::Key_Up: 1464 case Qt::Key_Up:
1463 mView->viewManager()->agendaView()->scrollOneHourUp(); 1465 mView->viewManager()->agendaView()->scrollOneHourUp();
1464 break; 1466 break;
1465 case Qt::Key_I: 1467 case Qt::Key_I:
1466 mView->showIncidence(); 1468 mView->showIncidence();
1467 break; 1469 break;
1468 case Qt::Key_Delete: 1470 case Qt::Key_Delete:
1469 case Qt::Key_Backspace: 1471 case Qt::Key_Backspace:
1470 mView->deleteIncidence(); 1472 mView->deleteIncidence();
1471 break; 1473 break;
1472 case Qt::Key_D: 1474 case Qt::Key_D:
1473 mView->viewManager()->showDayView(); 1475 mView->viewManager()->showDayView();
1474 showSelectedDates = true; 1476 showSelectedDates = true;
1475 break; 1477 break;
1476 case Qt::Key_O: 1478 case Qt::Key_O:
1477 mView->toggleFilerEnabled( ); 1479 mView->toggleFilerEnabled( );
1478 break; 1480 break;
1479 case Qt::Key_0: 1481 case Qt::Key_0:
1480 case Qt::Key_1: 1482 case Qt::Key_1:
1481 case Qt::Key_2: 1483 case Qt::Key_2:
1482 case Qt::Key_3: 1484 case Qt::Key_3:
1483 case Qt::Key_4: 1485 case Qt::Key_4:
1484 case Qt::Key_5: 1486 case Qt::Key_5:
1485 case Qt::Key_6: 1487 case Qt::Key_6:
1486 case Qt::Key_7: 1488 case Qt::Key_7:
1487 case Qt::Key_8: 1489 case Qt::Key_8:
1488 case Qt::Key_9: 1490 case Qt::Key_9:
1489 pro = e->key()-48; 1491 pro = e->key()-48;
1490 if ( pro == 0 ) 1492 if ( pro == 0 )
1491 pro = 10; 1493 pro = 10;
1492 if ( e->state() == Qt::ControlButton) 1494 if ( e->state() == Qt::ControlButton)
1493 pro += 10; 1495 pro += 10;
1494 break; 1496 break;
1495 case Qt::Key_M: 1497 case Qt::Key_M:
1496 mView->viewManager()->showMonthView(); 1498 mView->viewManager()->showMonthView();
1497 showSelectedDates = true; 1499 showSelectedDates = true;
1498 break; 1500 break;
1499 case Qt::Key_Insert: 1501 case Qt::Key_Insert:
1500 mView->newEvent(); 1502 mView->newEvent();
1501 break; 1503 break;
1502 case Qt::Key_S : 1504 case Qt::Key_S :
1503 if ( e->state() == Qt::ControlButton || e->state() == Qt::ShiftButton) 1505 if ( e->state() == Qt::ControlButton || e->state() == Qt::ShiftButton)
1504 mView->newSubTodo(); 1506 mView->newSubTodo();
1505 else 1507 else
1506 mView->dialogManager()->showSearchDialog(); 1508 mView->dialogManager()->showSearchDialog();
1507 break; 1509 break;
1508 case Qt::Key_Y : 1510 case Qt::Key_Y :
1509 case Qt::Key_Z : 1511 case Qt::Key_Z :
1510 mView->viewManager()->showWorkWeekView(); 1512 mView->viewManager()->showWorkWeekView();
1511 showSelectedDates = true; 1513 showSelectedDates = true;
1512 break; 1514 break;
1513 case Qt::Key_U : 1515 case Qt::Key_U :
1514 mView->viewManager()->showWeekView(); 1516 mView->viewManager()->showWeekView();
1515 showSelectedDates = true; 1517 showSelectedDates = true;
1516 break; 1518 break;
1517 case Qt::Key_H : 1519 case Qt::Key_H :
1518 keyBindings(); 1520 keyBindings();
1519 break; 1521 break;
1520 case Qt::Key_W: 1522 case Qt::Key_W:
1521 mView->viewManager()->showWhatsNextView(); 1523 mView->viewManager()->showWhatsNextView();
1522 break; 1524 break;
1523 case Qt::Key_L: 1525 case Qt::Key_L:
1524 mView->viewManager()->showListView(); 1526 mView->viewManager()->showListView();
1525 break; 1527 break;
1526 case Qt::Key_N: 1528 case Qt::Key_N:
1527 mView->viewManager()->showNextXView(); 1529 mView->viewManager()->showNextXView();
1528 showSelectedDates = true; 1530 showSelectedDates = true;
1529 break; 1531 break;
1530 case Qt::Key_V: 1532 case Qt::Key_V:
1531 mView->viewManager()->showTodoView(); 1533 mView->viewManager()->showTodoView();
1532 break; 1534 break;
1533 case Qt::Key_C: 1535 case Qt::Key_C:
1534 mView->viewManager()->agendaView()->setStartHour( QTime::currentTime ().hour() ); 1536 mView->viewManager()->agendaView()->setStartHour( QTime::currentTime ().hour() );
1535 break; 1537 break;
1536 case Qt::Key_P: 1538 case Qt::Key_P:
1537 mView->showDatePicker( ); 1539 mView->showDatePicker( );
1538 break; 1540 break;
1539 case Qt::Key_F: 1541 case Qt::Key_F:
1540 if ( e->state() == Qt::ControlButton|| e->state() == Qt::ShiftButton ) 1542 if ( e->state() == Qt::ControlButton|| e->state() == Qt::ShiftButton )
1541 mView->editFilters(); 1543 mView->editFilters();
1542 else 1544 else
1543 mView->toggleFilter(); 1545 mView->toggleFilter();
1544 break; 1546 break;
1545 case Qt::Key_X: 1547 case Qt::Key_X:
1546 mView->toggleDateNavigatorWidget(); 1548 mView->toggleDateNavigatorWidget();
1547 break; 1549 break;
1548 case Qt::Key_Space: 1550 case Qt::Key_Space:
1549 mView->toggleExpand(); 1551 mView->toggleExpand();
1550 break; 1552 break;
1551 case Qt::Key_A: 1553 case Qt::Key_A:
1552 mView->toggleAllDaySize(); 1554 mView->toggleAllDaySize();
1553 break; 1555 break;
1554 case Qt::Key_T: 1556 case Qt::Key_T:
1555 if ( e->state() == Qt::ControlButton|| e->state() == Qt::ShiftButton ) 1557 if ( e->state() == Qt::ControlButton|| e->state() == Qt::ShiftButton )
1556 mView->newTodo(); 1558 mView->newTodo();
1557 else { 1559 else {
1558 mView->goToday(); 1560 mView->goToday();
1559 showSelectedDates = true; 1561 showSelectedDates = true;
1560 } 1562 }
1561 break; 1563 break;
1562 case Qt::Key_J: 1564 case Qt::Key_J:
1563 mView->viewManager()->showJournalView(); 1565 mView->viewManager()->showJournalView();
1564 break; 1566 break;
1565 case Qt::Key_B: 1567 case Qt::Key_B:
1566 mView->editIncidenceDescription();; 1568 mView->editIncidenceDescription();;
1567 break; 1569 break;
1568 // case Qt::Key_Return: 1570 // case Qt::Key_Return:
1569 case Qt::Key_E: 1571 case Qt::Key_E:
1570 if ( e->state() == Qt::ControlButton|| e->state() == Qt::ShiftButton ) 1572 if ( e->state() == Qt::ControlButton|| e->state() == Qt::ShiftButton )
1571 mView->newEvent(); 1573 mView->newEvent();
1572 else 1574 else
1573 mView->editIncidence(); 1575 mView->editIncidence();
1574 break; 1576 break;
1575 case Qt::Key_Plus: 1577 case Qt::Key_Plus:
1576 size = p->mHourSize +2; 1578 size = p->mHourSize +2;
1577 if ( size <= 18 ) 1579 if ( size <= 18 )
1578 configureAgenda( size ); 1580 configureAgenda( size );
1579 break; 1581 break;
1580 case Qt::Key_Minus: 1582 case Qt::Key_Minus:
1581 size = p->mHourSize - 2; 1583 size = p->mHourSize - 2;
1582 if ( size >= 4 ) 1584 if ( size >= 4 )
1583 configureAgenda( size ); 1585 configureAgenda( size );
1584 break; 1586 break;
1585 1587
1586 1588
1587 default: 1589 default:
1588 e->ignore(); 1590 e->ignore();
1589 } 1591 }
1590 if ( pro > 0 ) { 1592 if ( pro > 0 ) {
1591 mView->selectFilter( pro-1 ); 1593 mView->selectFilter( pro-1 );
1592 } 1594 }
1593 if ( showSelectedDates ) { 1595 if ( showSelectedDates ) {
1594 ;// setCaptionToDates(); 1596 ;// setCaptionToDates();
1595 } 1597 }
1596 1598
1597} 1599}
1598 1600
1599void MainWindow::fillFilterMenu() 1601void MainWindow::fillFilterMenu()
1600{ 1602{
1601 selectFilterMenu->clear(); 1603 selectFilterMenu->clear();
1602 bool disable = false; 1604 bool disable = false;
1603 if ( mView->filterView()->filtersEnabled() ) { 1605 if ( mView->filterView()->filtersEnabled() ) {
1604 selectFilterMenu->insertItem(i18n ( "Turn filter off" ), 0 ); 1606 selectFilterMenu->insertItem(i18n ( "Turn filter off" ), 0 );
1605 } 1607 }
1606 else { 1608 else {
1607 selectFilterMenu->insertItem(i18n ( "Turn filter on" ), 0 ); 1609 selectFilterMenu->insertItem(i18n ( "Turn filter on" ), 0 );
1608 disable = true; 1610 disable = true;
1609 } 1611 }
1610 selectFilterMenu->insertSeparator(); 1612 selectFilterMenu->insertSeparator();
1611 QPtrList<CalFilter> fili = mView->filters(); 1613 QPtrList<CalFilter> fili = mView->filters();
1612 CalFilter *curfilter = mView->filterView()->selectedFilter(); 1614 CalFilter *curfilter = mView->filterView()->selectedFilter();
1613 CalFilter *filter = fili.first(); 1615 CalFilter *filter = fili.first();
1614 int iii = 1; 1616 int iii = 1;
1615 while(filter) { 1617 while(filter) {
1616 selectFilterMenu->insertItem( filter->name(), iii ); 1618 selectFilterMenu->insertItem( filter->name(), iii );
1617 if ( filter == curfilter) 1619 if ( filter == curfilter)
1618 selectFilterMenu->setItemChecked( iii, true ); 1620 selectFilterMenu->setItemChecked( iii, true );
1619 if ( disable ) 1621 if ( disable )
1620 selectFilterMenu->setItemEnabled( iii, false ); 1622 selectFilterMenu->setItemEnabled( iii, false );
1621 filter = fili.next(); 1623 filter = fili.next();
1622 ++iii; 1624 ++iii;
1623 } 1625 }
1624} 1626}
1625void MainWindow::selectFilter( int fil ) 1627void MainWindow::selectFilter( int fil )
1626{ 1628{
1627 if ( fil == 0 ) { 1629 if ( fil == 0 ) {
1628 mView->toggleFilerEnabled( ); 1630 mView->toggleFilerEnabled( );
1629 } else { 1631 } else {
1630 mView->selectFilter( fil-1 ); 1632 mView->selectFilter( fil-1 );
1631 } 1633 }
1632} 1634}
1633void MainWindow::configureToolBar( int item ) 1635void MainWindow::configureToolBar( int item )
1634{ 1636{
1635 1637
1636 configureToolBarMenu->setItemChecked( item, !configureToolBarMenu-> isItemChecked ( item ) ); 1638 configureToolBarMenu->setItemChecked( item, !configureToolBarMenu-> isItemChecked ( item ) );
1637 KOPrefs *p = KOPrefs::instance(); 1639 KOPrefs *p = KOPrefs::instance();
1638 p-> mShowIconStretch= configureToolBarMenu->isItemChecked( 5 ); 1640 p-> mShowIconStretch= configureToolBarMenu->isItemChecked( 5 );
1639 p-> mShowIconNewEvent= configureToolBarMenu->isItemChecked( 10 ); 1641 p-> mShowIconNewEvent= configureToolBarMenu->isItemChecked( 10 );
1640 p->mShowIconNewTodo = configureToolBarMenu->isItemChecked( 20 ); 1642 p->mShowIconNewTodo = configureToolBarMenu->isItemChecked( 20 );
1641 p-> mShowIconSearch= configureToolBarMenu->isItemChecked( 120 ); 1643 p-> mShowIconSearch= configureToolBarMenu->isItemChecked( 120 );
1642 p-> mShowIconList= configureToolBarMenu->isItemChecked( 30 ); 1644 p-> mShowIconList= configureToolBarMenu->isItemChecked( 30 );
1643 p-> mShowIconDay1= configureToolBarMenu->isItemChecked( 40 ); 1645 p-> mShowIconDay1= configureToolBarMenu->isItemChecked( 40 );
1644 p-> mShowIconDay5= configureToolBarMenu->isItemChecked( 50 ); 1646 p-> mShowIconDay5= configureToolBarMenu->isItemChecked( 50 );
1645 p-> mShowIconDay7= configureToolBarMenu->isItemChecked( 60 ); 1647 p-> mShowIconDay7= configureToolBarMenu->isItemChecked( 60 );
1646 p-> mShowIconMonth= configureToolBarMenu->isItemChecked( 70 ); 1648 p-> mShowIconMonth= configureToolBarMenu->isItemChecked( 70 );
1647 p-> mShowIconTodoview= configureToolBarMenu->isItemChecked( 80 ); 1649 p-> mShowIconTodoview= configureToolBarMenu->isItemChecked( 80 );
1648 p-> mShowIconBackFast= configureToolBarMenu->isItemChecked( 200 ); 1650 p-> mShowIconBackFast= configureToolBarMenu->isItemChecked( 200 );
1649 p-> mShowIconBack = configureToolBarMenu->isItemChecked( 210 ); 1651 p-> mShowIconBack = configureToolBarMenu->isItemChecked( 210 );
1650 p-> mShowIconToday= configureToolBarMenu->isItemChecked( 130 ); 1652 p-> mShowIconToday= configureToolBarMenu->isItemChecked( 130 );
1651 p-> mShowIconForward= configureToolBarMenu->isItemChecked( 220 ); 1653 p-> mShowIconForward= configureToolBarMenu->isItemChecked( 220 );
1652 p-> mShowIconForwardFast= configureToolBarMenu->isItemChecked( 230 ); 1654 p-> mShowIconForwardFast= configureToolBarMenu->isItemChecked( 230 );
1653 p-> mShowIconNextDays= configureToolBarMenu->isItemChecked( 100 ); 1655 p-> mShowIconNextDays= configureToolBarMenu->isItemChecked( 100 );
1654 p-> mShowIconNext= configureToolBarMenu->isItemChecked( 110 ); 1656 p-> mShowIconNext= configureToolBarMenu->isItemChecked( 110 );
1655 p-> mShowIconJournal= configureToolBarMenu->isItemChecked( 90 ); 1657 p-> mShowIconJournal= configureToolBarMenu->isItemChecked( 90 );
1656 p-> mShowIconWhatsThis= configureToolBarMenu->isItemChecked( 300 ); 1658 p-> mShowIconWhatsThis= configureToolBarMenu->isItemChecked( 300 );
1657 // initActions(); 1659 // initActions();
1658} 1660}
1659 1661
1660void MainWindow::setCaptionToDates() 1662void MainWindow::setCaptionToDates()
1661{ 1663{
1662 QString selDates; 1664 QString selDates;
1663 selDates = KGlobal::locale()->formatDate(mView->startDate(), true); 1665 selDates = KGlobal::locale()->formatDate(mView->startDate(), true);
1664 if (mView->startDate() < mView->endDate() ) 1666 if (mView->startDate() < mView->endDate() )
1665 selDates += " - " + KGlobal::locale()->formatDate(mView->endDate(), true); 1667 selDates += " - " + KGlobal::locale()->formatDate(mView->endDate(), true);
1666 setCaption( i18n("Dates: ") + selDates ); 1668 setCaption( i18n("Dates: ") + selDates );
1667 1669
1668} 1670}
1669// parameter item == 0: reinit 1671// parameter item == 0: reinit
1670void MainWindow::configureAgenda( int item ) 1672void MainWindow::configureAgenda( int item )
1671{ 1673{
1672 1674
1673 KOPrefs *p = KOPrefs::instance(); 1675 KOPrefs *p = KOPrefs::instance();
1674 1676
1675 int i; 1677 int i;
1676 if ( item == 1 ) { 1678 if ( item == 1 ) {
1677 mView->toggleAllDaySize(); 1679 mView->toggleAllDaySize();
1678 return; 1680 return;
1679 } 1681 }
1680 // do not allow 4 for widgets higher than 480 1682 // do not allow 4 for widgets higher than 480
1681 // if ( QApplication::desktop()->height() > 480 ) { 1683 // if ( QApplication::desktop()->height() > 480 ) {
1682// if ( item == 4 ) 1684// if ( item == 4 )
1683// item = 6; 1685// item = 6;
1684// } 1686// }
1685 for ( i = 4; i <= 18; i= i+2 ) 1687 for ( i = 4; i <= 18; i= i+2 )
1686 configureAgendaMenu->setItemChecked( i, false ); 1688 configureAgendaMenu->setItemChecked( i, false );
1687 configureAgendaMenu->setItemChecked( item, true ); 1689 configureAgendaMenu->setItemChecked( item, true );
1688 if ( p->mHourSize == item ) 1690 if ( p->mHourSize == item )
1689 return; 1691 return;
1690 p->mHourSize=item; 1692 p->mHourSize=item;
1691 mView->viewManager()->agendaView()->updateConfig(); 1693 mView->viewManager()->agendaView()->updateConfig();
1692} 1694}
1693 1695
1694void MainWindow::saveCalendar() 1696void MainWindow::saveCalendar()
1695{ 1697{
1696 QString fn = KOPrefs::instance()->mLastSaveFile; 1698 QString fn = KOPrefs::instance()->mLastSaveFile;
1697 fn = KFileDialog::getSaveFileName( fn, i18n("Save backup filename"), this ); 1699 fn = KFileDialog::getSaveFileName( fn, i18n("Save backup filename"), this );
1698 1700
1699 if ( fn == "" ) 1701 if ( fn == "" )
1700 return; 1702 return;
1701 QFileInfo info; 1703 QFileInfo info;
1702 info.setFile( fn ); 1704 info.setFile( fn );
1703 QString mes; 1705 QString mes;
1704 bool createbup = true; 1706 bool createbup = true;
1705 if ( info. exists() ) { 1707 if ( info. exists() ) {
1706 mes = i18n("Backup file\nalready exists!\nOld backup file from:\n%1\nOverwrite?\n").arg(KGlobal::locale()->formatDateTime(info.lastModified (), true, false )) ; 1708 mes = i18n("Backup file\nalready exists!\nOld backup file from:\n%1\nOverwrite?\n").arg(KGlobal::locale()->formatDateTime(info.lastModified (), true, false )) ;
1707 int result = QMessageBox::warning( this, i18n("KO/Pi: Warning!"),mes, 1709 int result = QMessageBox::warning( this, i18n("KO/Pi: Warning!"),mes,
1708 i18n("Overwrite!"), i18n("Cancel"), 0, 1710 i18n("Overwrite!"), i18n("Cancel"), 0,
1709 0, 1 ); 1711 0, 1 );
1710 if ( result != 0 ) { 1712 if ( result != 0 ) {
1711 createbup = false; 1713 createbup = false;
1712 } 1714 }
1713 } 1715 }
1714 if ( createbup ) { 1716 if ( createbup ) {
1715 mView->saveCalendar( fn ); 1717 mView->saveCalendar( fn );
1716 mes = i18n("KO/Pi:Saved %1").arg(fn); 1718 mes = i18n("KO/Pi:Saved %1").arg(fn);
1717 KOPrefs::instance()->mLastSaveFile = fn; 1719 KOPrefs::instance()->mLastSaveFile = fn;
1718 setCaption(mes); 1720 setCaption(mes);
1719 } 1721 }
1720} 1722}
1721void MainWindow::loadCalendar() 1723void MainWindow::loadCalendar()
1722{ 1724{
1723 1725
1724 QString fn = KOPrefs::instance()->mLastLoadFile; 1726 QString fn = KOPrefs::instance()->mLastLoadFile;
1725 fn = KFileDialog::getOpenFileName( fn, i18n("Load backup filename"), this ); 1727 fn = KFileDialog::getOpenFileName( fn, i18n("Load backup filename"), this );
1726 1728
1727 if ( fn == "" ) 1729 if ( fn == "" )
1728 return; 1730 return;
1729 QFileInfo info; 1731 QFileInfo info;
1730 info.setFile( fn ); 1732 info.setFile( fn );
1731 QString mess; 1733 QString mess;
1732 bool loadbup = true; 1734 bool loadbup = true;
1733 if ( info. exists() ) { 1735 if ( info. exists() ) {
1734 mess = i18n("Backup file from:\n%1\nLoading backup\nfile will delete\nyour current Data!\n").arg(KGlobal::locale()->formatDateTime(info.lastModified (), true, false )); 1736 mess = i18n("Backup file from:\n%1\nLoading backup\nfile will delete\nyour current Data!\n").arg(KGlobal::locale()->formatDateTime(info.lastModified (), true, false ));
1735 int result = QMessageBox::warning( this, "KO/Pi: Warning!", 1737 int result = QMessageBox::warning( this, "KO/Pi: Warning!",
1736 mess, 1738 mess,
1737 i18n("Load!"), i18n("Cancel"), 0, 1739 i18n("Load!"), i18n("Cancel"), 0,
1738 0, 1 ); 1740 0, 1 );
1739 if ( result != 0 ) { 1741 if ( result != 0 ) {
1740 loadbup = false; 1742 loadbup = false;
1741 } 1743 }
1742 } else { 1744 } else {
1743 QMessageBox::warning( this, i18n("KO/Pi: Warning!"), 1745 QMessageBox::warning( this, i18n("KO/Pi: Warning!"),
1744 i18n("Backup file\ndoes not exist!\nNothing loaded!"), 0, 0, 1746 i18n("Backup file\ndoes not exist!\nNothing loaded!"), 0, 0,
1745 0, 1 ); 1747 0, 1 );
1746 1748
1747 return; 1749 return;
1748 } 1750 }
1749 if ( loadbup ) { 1751 if ( loadbup ) {
1750 mView->openCalendar( fn ); 1752 mView->openCalendar( fn );
1751 KOPrefs::instance()->mLastLoadFile = fn; 1753 KOPrefs::instance()->mLastLoadFile = fn;
1752 mess = i18n("KO/Pi:Loaded %1").arg(fn) ; 1754 mess = i18n("KO/Pi:Loaded %1").arg(fn) ;
1753 setCaption(mess); 1755 setCaption(mess);
1754 } 1756 }
1755 1757
1756} 1758}
1757void MainWindow::quickImportIcal() 1759void MainWindow::quickImportIcal()
1758{ 1760{
1759 importFile( KOPrefs::instance()->mLastImportFile, false ); 1761 importFile( KOPrefs::instance()->mLastImportFile, false );
1760} 1762}
1761void MainWindow::importFile( QString fn, bool quick ) 1763void MainWindow::importFile( QString fn, bool quick )
1762{ 1764{
1763 QFileInfo info; 1765 QFileInfo info;
1764 info.setFile( fn ); 1766 info.setFile( fn );
1765 QString mess; 1767 QString mess;
1766 bool loadbup = true; 1768 bool loadbup = true;
1767 if ( !info. exists() ) { 1769 if ( !info. exists() ) {
1768 mess = i18n("Import file \n...%1\ndoes not exist!\nNothing imported!\n").arg(fn.right( 30)); 1770 mess = i18n("Import file \n...%1\ndoes not exist!\nNothing imported!\n").arg(fn.right( 30));
1769 int result = QMessageBox::warning( this, i18n("KO/Pi: Warning!"), 1771 int result = QMessageBox::warning( this, i18n("KO/Pi: Warning!"),
1770 mess ); 1772 mess );
1771 return; 1773 return;
1772 } 1774 }
1773 int result = 0; 1775 int result = 0;
1774 if ( !quick ) { 1776 if ( !quick ) {
1775 mess = i18n( "Import file \n...%1\nfrom:\n%2\nDuplicated entries\nwill not be imported!\n").arg(fn.right( 25)).arg(KGlobal::locale()->formatDateTime(info.lastModified (), true, false )); 1777 mess = i18n( "Import file \n...%1\nfrom:\n%2\nDuplicated entries\nwill not be imported!\n").arg(fn.right( 25)).arg(KGlobal::locale()->formatDateTime(info.lastModified (), true, false ));
1776 result = QMessageBox::warning( this, "KO/Pi: Warning!", 1778 result = QMessageBox::warning( this, "KO/Pi: Warning!",
1777 mess, 1779 mess,
1778 "Import", "Cancel", 0, 1780 "Import", "Cancel", 0,
1779 0, 1 ); 1781 0, 1 );
1780 } 1782 }
1781 if ( result == 0 ) { 1783 if ( result == 0 ) {
1782 if ( mView->openCalendar( fn, true )) { 1784 if ( mView->openCalendar( fn, true )) {
1783 KOPrefs::instance()->mLastImportFile = fn; 1785 KOPrefs::instance()->mLastImportFile = fn;
1784 setCaption(i18n("Imported file successfully")); 1786 setCaption(i18n("Imported file successfully"));
1785 } else { 1787 } else {
1786 setCaption(i18n("Error importing file")); 1788 setCaption(i18n("Error importing file"));
1787 } 1789 }
1788 } 1790 }
1789} 1791}
1790 1792
1791void MainWindow::importIcal() 1793void MainWindow::importIcal()
1792{ 1794{
1793 1795
1794 QString fn =KOPrefs::instance()->mLastImportFile; 1796 QString fn =KOPrefs::instance()->mLastImportFile;
1795 1797
1796 fn =KFileDialog:: getOpenFileName( fn, i18n("Import filename(*.ics/*.vcs)"), this ); 1798 fn =KFileDialog:: getOpenFileName( fn, i18n("Import filename(*.ics/*.vcs)"), this );
1797 if ( fn == "" ) 1799 if ( fn == "" )
1798 return; 1800 return;
1799 importFile( fn, true ); 1801 importFile( fn, true );
1800 1802
1801} 1803}
1802 1804
1803void MainWindow::exportVCalendar() 1805void MainWindow::exportVCalendar()
1804{ 1806{
1805 QString fn = KOPrefs::instance()->mLastVcalFile; 1807 QString fn = KOPrefs::instance()->mLastVcalFile;
1806 fn = KFileDialog::getSaveFileName( fn, i18n("Export vcal filename(*.vcs)"), this ); 1808 fn = KFileDialog::getSaveFileName( fn, i18n("Export vcal filename(*.vcs)"), this );
1807 if ( fn == "" ) 1809 if ( fn == "" )
1808 return; 1810 return;
1809 QFileInfo info; 1811 QFileInfo info;
1810 info.setFile( fn ); 1812 info.setFile( fn );
1811 QString mes; 1813 QString mes;
1812 bool createbup = true; 1814 bool createbup = true;
1813 if ( info. exists() ) { 1815 if ( info. exists() ) {
1814 mes = i18n("Save file\nalready exists!\nOld save file from:\n%1\nOverwrite?\n").arg (KGlobal::locale()->formatDateTime(info.lastModified (), true, false ) ); 1816 mes = i18n("Save file\nalready exists!\nOld save file from:\n%1\nOverwrite?\n").arg (KGlobal::locale()->formatDateTime(info.lastModified (), true, false ) );
1815 int result = QMessageBox::warning( this, i18n("KO/Pi: Warning!"),mes, 1817 int result = QMessageBox::warning( this, i18n("KO/Pi: Warning!"),mes,
1816 i18n("Overwrite!"), i18n("Cancel"), 0, 1818 i18n("Overwrite!"), i18n("Cancel"), 0,
1817 0, 1 ); 1819 0, 1 );
1818 if ( result != 0 ) { 1820 if ( result != 0 ) {
1819 createbup = false; 1821 createbup = false;
1820 } 1822 }
1821 } 1823 }
1822 if ( createbup ) { 1824 if ( createbup ) {
1823 if ( mView->exportVCalendar( fn ) ) { 1825 if ( mView->exportVCalendar( fn ) ) {
1824 KOPrefs::instance()->mLastVcalFile = fn; 1826 KOPrefs::instance()->mLastVcalFile = fn;
1825 if ( fn.length() > 20 ) 1827 if ( fn.length() > 20 )
1826 mes = i18n("KO/Pi:Exported to ...%1").arg(fn.right(20)) ; 1828 mes = i18n("KO/Pi:Exported to ...%1").arg(fn.right(20)) ;
1827 else 1829 else
1828 mes = i18n("KO/Pi:Exported to %1").arg(fn ); 1830 mes = i18n("KO/Pi:Exported to %1").arg(fn );
1829 setCaption(mes); 1831 setCaption(mes);
1830 } 1832 }
1831 } 1833 }
1832 1834
1833} 1835}
1834#include <qpushbutton.h> 1836#include <qpushbutton.h>
1835QString MainWindow::getPassword( ) 1837QString MainWindow::getPassword( )
1836{ 1838{
1837 QString retfile = ""; 1839 QString retfile = "";
1838 QDialog dia ( this, "input-dialog", true ); 1840 QDialog dia ( this, "input-dialog", true );
1839 QLineEdit lab ( &dia ); 1841 QLineEdit lab ( &dia );
1840 lab.setEchoMode( QLineEdit::Password ); 1842 lab.setEchoMode( QLineEdit::Password );
1841 QVBoxLayout lay( &dia ); 1843 QVBoxLayout lay( &dia );
1842 lay.setMargin(7); 1844 lay.setMargin(7);
1843 lay.setSpacing(7); 1845 lay.setSpacing(7);
1844 lay.addWidget( &lab); 1846 lay.addWidget( &lab);
1845 dia.setFixedSize( 230,50 ); 1847 dia.setFixedSize( 230,50 );
1846 dia.setCaption( i18n("Enter password") ); 1848 dia.setCaption( i18n("Enter password") );
1847 QPushButton pb ( "OK", &dia); 1849 QPushButton pb ( "OK", &dia);
1848 lay.addWidget( &pb ); 1850 lay.addWidget( &pb );
1849 connect(&pb, SIGNAL( clicked() ), &dia, SLOT ( accept() ) ); 1851 connect(&pb, SIGNAL( clicked() ), &dia, SLOT ( accept() ) );
1850 dia.show(); 1852 dia.show();
1851 int res = dia.exec(); 1853 int res = dia.exec();
1852 if ( res ) 1854 if ( res )
1853 retfile = lab.text(); 1855 retfile = lab.text();
1854 dia.hide(); 1856 dia.hide();
1855 qApp->processEvents(); 1857 qApp->processEvents();
1856 return retfile; 1858 return retfile;
1857 1859
1858} 1860}
1859 1861
1860void MainWindow::syncLocalFile() 1862void MainWindow::syncLocalFile()
1861{ 1863{
1862 1864
1863 QString fn =KOPrefs::instance()->mLastSyncedLocalFile; 1865 QString fn =KOPrefs::instance()->mLastSyncedLocalFile;
1864 1866
1865 fn =KFileDialog:: getOpenFileName( fn, i18n("Sync filename(*.ics/*.vcs)"), this ); 1867 fn =KFileDialog:: getOpenFileName( fn, i18n("Sync filename(*.ics/*.vcs)"), this );
1866 if ( fn == "" ) 1868 if ( fn == "" )
1867 return; 1869 return;
1868 //mView->setSyncDevice("local-file" ); 1870 //mView->setSyncDevice("local-file" );
1869 if ( syncWithFile( fn, false ) ) { 1871 if ( syncWithFile( fn, false ) ) {
1870 // Event* e = mView->getLastSyncEvent(); 1872 // Event* e = mView->getLastSyncEvent();
1871// e->setReadOnly( false ); 1873// e->setReadOnly( false );
1872// e->setLocation( i18n("Local file: ")+ KOPrefs::instance()->mLastSyncedLocalFile); 1874// e->setLocation( i18n("Local file: ")+ KOPrefs::instance()->mLastSyncedLocalFile);
1873// e->setReadOnly( true ); 1875// e->setReadOnly( true );
1874 } 1876 }
1875 1877
1876} 1878}
1877 1879
1878bool MainWindow::syncWithFile( QString fn , bool quick ) 1880bool MainWindow::syncWithFile( QString fn , bool quick )
1879{ 1881{
1880 bool ret = false; 1882 bool ret = false;
1881 QFileInfo info; 1883 QFileInfo info;
1882 info.setFile( fn ); 1884 info.setFile( fn );
1883 QString mess; 1885 QString mess;
1884 bool loadbup = true; 1886 bool loadbup = true;
1885 if ( !info. exists() ) { 1887 if ( !info. exists() ) {
1886 mess = i18n( "Sync file \n...%1\ndoes not exist!\nNothing synced!\n").arg(fn.right( 30) ); 1888 mess = i18n( "Sync file \n...%1\ndoes not exist!\nNothing synced!\n").arg(fn.right( 30) );
1887 int result = QMessageBox::warning( this, i18n("KO/Pi: Warning!"), 1889 int result = QMessageBox::warning( this, i18n("KO/Pi: Warning!"),
1888 mess ); 1890 mess );
1889 return ret; 1891 return ret;
1890 } 1892 }
1891 int result = 0; 1893 int result = 0;
1892 if ( !quick ) { 1894 if ( !quick ) {
1893 mess = i18n("Sync with file \n...%1\nfrom:\n%2\n").arg(fn.right( 25)).arg(KGlobal::locale()->formatDateTime(info.lastModified (), true, false )); 1895 mess = i18n("Sync with file \n...%1\nfrom:\n%2\n").arg(fn.right( 25)).arg(KGlobal::locale()->formatDateTime(info.lastModified (), true, false ));
1894 result = QMessageBox::warning( this, i18n("KO/Pi: Warning!"), 1896 result = QMessageBox::warning( this, i18n("KO/Pi: Warning!"),
1895 mess, 1897 mess,
1896 i18n("Sync"), i18n("Cancel"), 0, 1898 i18n("Sync"), i18n("Cancel"), 0,
1897 0, 1 ); 1899 0, 1 );
1898 if ( result ) 1900 if ( result )
1899 return false; 1901 return false;
1900 } 1902 }
1901 if ( KOPrefs::instance()->mAskForPreferences ) 1903 if ( KOPrefs::instance()->mAskForPreferences )
1902 mView->edit_sync_options(); 1904 mView->edit_sync_options();
1903 if ( result == 0 ) { 1905 if ( result == 0 ) {
1904 //qDebug("Now sycing ... "); 1906 //qDebug("Now sycing ... ");
1905 if ( ret = mView->syncCalendar( fn, KOPrefs::instance()->mSyncAlgoPrefs ) ) 1907 if ( ret = mView->syncCalendar( fn, KOPrefs::instance()->mSyncAlgoPrefs ) )
1906 setCaption( i18n("Synchronization successful") ); 1908 setCaption( i18n("Synchronization successful") );
1907 else 1909 else
1908 setCaption( i18n("Sync cancelled or failed. Nothing synced.") ); 1910 setCaption( i18n("Sync cancelled or failed. Nothing synced.") );
1909 if ( ! quick ) 1911 if ( ! quick )
1910 KOPrefs::instance()->mLastSyncedLocalFile = fn; 1912 KOPrefs::instance()->mLastSyncedLocalFile = fn;
1911 slotModifiedChanged( true ); 1913 slotModifiedChanged( true );
1912 } 1914 }
1913 return ret; 1915 return ret;
1914} 1916}
1915void MainWindow::quickSyncLocalFile() 1917void MainWindow::quickSyncLocalFile()
1916{ 1918{
1917 //mView->setSyncDevice("local-file" ); 1919 //mView->setSyncDevice("local-file" );
1918 //qDebug("quickSyncLocalFile() "); 1920 //qDebug("quickSyncLocalFile() ");
1919 if ( syncWithFile( KOPrefs::instance()->mLastSyncedLocalFile, false ) ) { 1921 if ( syncWithFile( KOPrefs::instance()->mLastSyncedLocalFile, false ) ) {
1920 // Event* e = mView->getLastSyncEvent(); 1922 // Event* e = mView->getLastSyncEvent();
1921// e->setReadOnly( false ); 1923// e->setReadOnly( false );
1922// e->setLocation( i18n("Quick with file: ")+ KOPrefs::instance()->mLastSyncedLocalFile); 1924// e->setLocation( i18n("Quick with file: ")+ KOPrefs::instance()->mLastSyncedLocalFile);
1923// e->setReadOnly( true ); 1925// e->setReadOnly( true );
1924 1926
1925 } 1927 }
1926} 1928}
1927 1929
1928void MainWindow::confSync() 1930void MainWindow::confSync()
1929{ 1931{
1930 mView->confSync(); 1932 mView->confSync();
1931 fillSyncMenu(); 1933 fillSyncMenu();
1932} 1934}
1933void MainWindow::syncRemote( KSyncProfile* prof, bool ask) 1935void MainWindow::syncRemote( KSyncProfile* prof, bool ask)
1934{ 1936{
1935 QString question; 1937 QString question;
1936 if ( ask ) { 1938 if ( ask ) {
1937 question = i18n("Do you really want\nto remote sync\nwith profile \n")+ prof->getName()+" ?\n"; 1939 question = i18n("Do you really want\nto remote sync\nwith profile \n")+ prof->getName()+" ?\n";
1938 if ( QMessageBox::information( this, i18n("KO/Pi Sync"), 1940 if ( QMessageBox::information( this, i18n("KO/Pi Sync"),
1939 question, 1941 question,
1940 i18n("Yes"), i18n("No"), 1942 i18n("Yes"), i18n("No"),
1941 0, 0 ) != 0 ) 1943 0, 0 ) != 0 )
1942 return; 1944 return;
1943 } 1945 }
1944 QString command = prof->getPreSyncCommand(); 1946 QString command = prof->getPreSyncCommand();
1945 int fi; 1947 int fi;
1946 if ( (fi = command.find("$PWD$")) > 0 ) { 1948 if ( (fi = command.find("$PWD$")) > 0 ) {
1947 QString pwd = getPassword(); 1949 QString pwd = getPassword();
1948 command = command.left( fi )+ pwd + command.mid( fi+5 ); 1950 command = command.left( fi )+ pwd + command.mid( fi+5 );
1949 1951
1950 } 1952 }
1951 int maxlen = 30; 1953 int maxlen = 30;
1952 if ( QApplication::desktop()->width() > 320 ) 1954 if ( QApplication::desktop()->width() > 320 )
1953 maxlen += 25; 1955 maxlen += 25;
1954 setCaption ( i18n( "Copy remote file to local machine..." ) ); 1956 setCaption ( i18n( "Copy remote file to local machine..." ) );
1955 int fileSize = 0; 1957 int fileSize = 0;
1956 int result = system ( command ); 1958 int result = system ( command );
1957 // 0 : okay 1959 // 0 : okay
1958 // 256: no such file or dir 1960 // 256: no such file or dir
1959 // 1961 //
1960 qDebug("KO: Remote copy result(0 = okay): %d ",result ); 1962 qDebug("KO: Remote copy result(0 = okay): %d ",result );
1961 if ( result != 0 ) { 1963 if ( result != 0 ) {
1962 int len = maxlen; 1964 int len = maxlen;
1963 while ( len < command.length() ) { 1965 while ( len < command.length() ) {
1964 command.insert( len , "\n" ); 1966 command.insert( len , "\n" );
1965 len += maxlen +2; 1967 len += maxlen +2;
1966 } 1968 }
1967 question = i18n("Sorry, the copy command failed!\nCommand was:\n%1\n \nTry command on console to get more\ndetailed info about the reason.\n").arg (command) ; 1969 question = i18n("Sorry, the copy command failed!\nCommand was:\n%1\n \nTry command on console to get more\ndetailed info about the reason.\n").arg (command) ;
1968 QMessageBox::information( this, i18n("KO/Pi Sync - ERROR"), 1970 QMessageBox::information( this, i18n("KO/Pi Sync - ERROR"),
1969 question, 1971 question,
1970 i18n("Okay!")) ; 1972 i18n("Okay!")) ;
1971 setCaption ("KO/Pi"); 1973 setCaption ("KO/Pi");
1972 return; 1974 return;
1973 } 1975 }
1974 setCaption ( i18n( "Copying succeed." ) ); 1976 setCaption ( i18n( "Copying succeed." ) );
1975 //qDebug(" file **%s** ",prof->getLocalTempFile().latin1() ); 1977 //qDebug(" file **%s** ",prof->getLocalTempFile().latin1() );
1976 if ( syncWithFile( prof->getLocalTempFile(), true ) ) { 1978 if ( syncWithFile( prof->getLocalTempFile(), true ) ) {
1977// Event* e = mView->getLastSyncEvent(); 1979// Event* e = mView->getLastSyncEvent();
1978// e->setReadOnly( false ); 1980// e->setReadOnly( false );
1979// e->setLocation( KOPrefs::instance()->mSyncProfileNames[mCurrentSyncProfile]); 1981// e->setLocation( KOPrefs::instance()->mSyncProfileNames[mCurrentSyncProfile]);
1980// e->setReadOnly( true ); 1982// e->setReadOnly( true );
1981 if ( KOPrefs::instance()->mWriteBackFile ) { 1983 if ( KOPrefs::instance()->mWriteBackFile ) {
1982 command = prof->getPostSyncCommand(); 1984 command = prof->getPostSyncCommand();
1983 int fi; 1985 int fi;
1984 if ( (fi = command.find("$PWD$")) > 0 ) { 1986 if ( (fi = command.find("$PWD$")) > 0 ) {
1985 QString pwd = getPassword(); 1987 QString pwd = getPassword();
1986 command = command.left( fi )+ pwd + command.mid( fi+5 ); 1988 command = command.left( fi )+ pwd + command.mid( fi+5 );
1987 1989
1988 } 1990 }
1989 setCaption ( i18n( "Writing back file ..." ) ); 1991 setCaption ( i18n( "Writing back file ..." ) );
1990 result = system ( command ); 1992 result = system ( command );
1991 qDebug("KO: Writing back file result: %d ", result); 1993 qDebug("KO: Writing back file result: %d ", result);
1992 if ( result != 0 ) { 1994 if ( result != 0 ) {
1993 setCaption ( i18n( "Writing back file result: " )+QString::number( result ) ); 1995 setCaption ( i18n( "Writing back file result: " )+QString::number( result ) );
1994 return; 1996 return;
1995 } else { 1997 } else {
1996 setCaption ( i18n( "Syncronization sucessfully completed" ) ); 1998 setCaption ( i18n( "Syncronization sucessfully completed" ) );
1997 } 1999 }
1998 } 2000 }
1999 } 2001 }
2000 return; 2002 return;
2001} 2003}
2002void MainWindow::syncSSH() 2004void MainWindow::syncSSH()
2003{ 2005{
2004 // not used anymore 2006 // not used anymore
2005 QTime timer; 2007 QTime timer;
2006 timer.start(); 2008 timer.start();
2007 //qDebug("MainWindow::syncssh() "); 2009 //qDebug("MainWindow::syncssh() ");
2008 KOPrefs *p = KOPrefs::instance(); 2010 KOPrefs *p = KOPrefs::instance();
2009 QString localFile = p->mLocalTempFile; 2011 QString localFile = p->mLocalTempFile;
2010 QString remoteIP = p->mRemoteIP; 2012 QString remoteIP = p->mRemoteIP;
2011 QString remoteUser = p->mRemoteUser; 2013 QString remoteUser = p->mRemoteUser;
2012 QString remoteFile = p->mRemoteFile; 2014 QString remoteFile = p->mRemoteFile;
2013 if ( p->mUsePassWd && p->mRemotePassWd.length() > 0 ) 2015 if ( p->mUsePassWd && p->mRemotePassWd.length() > 0 )
2014 remoteUser += ":" + p->mRemotePassWd; 2016 remoteUser += ":" + p->mRemotePassWd;
2015 2017
2016 QString question = i18n("Do you really want\nto remote sync?\n \n") + 2018 QString question = i18n("Do you really want\nto remote sync?\n \n") +
2017 i18n("IP: " ) +remoteIP +"\n" + 2019 i18n("IP: " ) +remoteIP +"\n" +
2018 i18n("User: " ) + remoteUser +"\n" ; 2020 i18n("User: " ) + remoteUser +"\n" ;
2019 int maxlen = 30; 2021 int maxlen = 30;
2020 if ( QApplication::desktop()->width() > 320 ) 2022 if ( QApplication::desktop()->width() > 320 )
2021 maxlen += 25; 2023 maxlen += 25;
2022 if ( remoteFile.length() > maxlen ) 2024 if ( remoteFile.length() > maxlen )
2023 question += i18n("Remote file:\n..." ) + remoteFile.right(maxlen) +"\n"; 2025 question += i18n("Remote file:\n..." ) + remoteFile.right(maxlen) +"\n";
2024 else 2026 else
2025 question += i18n("Remote file:\n " ) + remoteFile +"\n"; 2027 question += i18n("Remote file:\n " ) + remoteFile +"\n";
2026 if ( localFile.length() > maxlen ) 2028 if ( localFile.length() > maxlen )
2027 question += i18n("Local temp file:\n..." ) + localFile.right(maxlen) +"\n"; 2029 question += i18n("Local temp file:\n..." ) + localFile.right(maxlen) +"\n";
2028 else 2030 else
2029 question += i18n("Local temp file:\n " ) + localFile +"\n"; 2031 question += i18n("Local temp file:\n " ) + localFile +"\n";
2030 2032
2031 if ( QMessageBox::information( this, i18n("KO/Pi Sync"), 2033 if ( QMessageBox::information( this, i18n("KO/Pi Sync"),
2032 question, 2034 question,
2033 i18n("Yes"), i18n("No"), 2035 i18n("Yes"), i18n("No"),
2034 0, 0 ) != 0 ) 2036 0, 0 ) != 0 )
2035 return; 2037 return;
2036 // if ( !p->mUsePassWd ) { 2038 // if ( !p->mUsePassWd ) {
2037 // QString pass = getPassword(); 2039 // QString pass = getPassword();
2038 // if ( pass.length() > 0 ) 2040 // if ( pass.length() > 0 )
2039 // remoteUser += ":" + pass; 2041 // remoteUser += ":" + pass;
2040 // } 2042 // }
2041 QString command = "scp " + remoteUser + "@" + remoteIP +":" + remoteFile +" " +localFile; 2043 QString command = "scp " + remoteUser + "@" + remoteIP +":" + remoteFile +" " +localFile;
2042 setCaption ( i18n( "Copy remote file to local machine..." ) ); 2044 setCaption ( i18n( "Copy remote file to local machine..." ) );
2043 int fileSize = 0; 2045 int fileSize = 0;
2044 int result = system ( command ); 2046 int result = system ( command );
2045 // 0 : okay 2047 // 0 : okay
2046 // 256: no such file or dir 2048 // 256: no such file or dir
2047 // 2049 //
2048 qDebug("KO: Remote copy result(0 = okay): %d ",result ); 2050 qDebug("KO: Remote copy result(0 = okay): %d ",result );
2049 if ( result != 0 ) { 2051 if ( result != 0 ) {
2050 int len = maxlen; 2052 int len = maxlen;
2051 while ( len < command.length() ) { 2053 while ( len < command.length() ) {
2052 command.insert( len , "\n" ); 2054 command.insert( len , "\n" );
2053 len += maxlen +2; 2055 len += maxlen +2;
2054 } 2056 }
2055 question = i18n("Sorry, the copy command failed!\nCommand was:\n%1\n \nTry command on console to get more\ndetailed info about the reason.\n").arg (command) ; 2057 question = i18n("Sorry, the copy command failed!\nCommand was:\n%1\n \nTry command on console to get more\ndetailed info about the reason.\n").arg (command) ;
2056 QMessageBox::information( this, i18n("KO/Pi Sync - ERROR"), 2058 QMessageBox::information( this, i18n("KO/Pi Sync - ERROR"),
2057 question, 2059 question,
2058 i18n("Okay!")) ; 2060 i18n("Okay!")) ;
2059 setCaption ("KO/Pi"); 2061 setCaption ("KO/Pi");
2060 return; 2062 return;
2061 } 2063 }
2062 2064
2063 2065
2064 setCaption ( i18n( "Copying succeed." ) ); 2066 setCaption ( i18n( "Copying succeed." ) );
2065 //mView->setSyncDevice("ssh-scp" ); 2067 //mView->setSyncDevice("ssh-scp" );
2066 if ( syncWithFile(localFile , true ) ) { 2068 if ( syncWithFile(localFile , true ) ) {
2067// Event* e = mView->getLastSyncEvent(); 2069// Event* e = mView->getLastSyncEvent();
2068// e->setReadOnly( false ); 2070// e->setReadOnly( false );
2069// e->setLocation( KOPrefs::instance()->mSyncProfileNames[mCurrentSyncProfile]); 2071// e->setLocation( KOPrefs::instance()->mSyncProfileNames[mCurrentSyncProfile]);
2070// e->setReadOnly( true ); 2072// e->setReadOnly( true );
2071 if ( KOPrefs::instance()->mWriteBackFile ) { 2073 if ( KOPrefs::instance()->mWriteBackFile ) {
2072 command = "scp " + localFile +" " +remoteUser + "@" + remoteIP +":" + remoteFile ; 2074 command = "scp " + localFile +" " +remoteUser + "@" + remoteIP +":" + remoteFile ;
2073 setCaption ( i18n( "Writing back file ..." ) ); 2075 setCaption ( i18n( "Writing back file ..." ) );
2074 result = system ( command ); 2076 result = system ( command );
2075 if ( result != 0 ) { 2077 if ( result != 0 ) {
2076 int len = maxlen; 2078 int len = maxlen;
2077 while ( len < command.length() ) { 2079 while ( len < command.length() ) {
2078 command.insert( len , "\n" ); 2080 command.insert( len , "\n" );
2079 len += maxlen +2; 2081 len += maxlen +2;
2080 } 2082 }
2081 question = i18n("Sorry, the copy back command failed!\nCommand was:\n%1\n \nTry command on console to get more\ndetailed info about the reason.\n").arg (command) ; 2083 question = i18n("Sorry, the copy back command failed!\nCommand was:\n%1\n \nTry command on console to get more\ndetailed info about the reason.\n").arg (command) ;
2082 QMessageBox::information( this, i18n("KO/Pi Sync - ERROR"), 2084 QMessageBox::information( this, i18n("KO/Pi Sync - ERROR"),
2083 question, 2085 question,
2084 i18n("Okay!")) ; 2086 i18n("Okay!")) ;
2085 setCaption ("KO/Pi"); 2087 setCaption ("KO/Pi");
2086 return; 2088 return;
2087 } else { 2089 } else {
2088 setCaption ( i18n( "Syncronization sucessfully completed" ) ); 2090 setCaption ( i18n( "Syncronization sucessfully completed" ) );
2089 } 2091 }
2090 } 2092 }
2091 } 2093 }
2092 return; 2094 return;
2093#if 0 2095#if 0
2094 system ("scp zaurus@192.168.0.65:/home/zaurus/Applications/korganizer/mycalendar.ics /home/polo/Applications/korganizer/z_sync.ics"); 2096 system ("scp zaurus@192.168.0.65:/home/zaurus/Applications/korganizer/mycalendar.ics /home/polo/Applications/korganizer/z_sync.ics");
2095 while ( timer.elapsed() < 5000 ) 2097 while ( timer.elapsed() < 5000 )
2096 qApp->processEvents(); 2098 qApp->processEvents();
2097 2099
2098 qDebug("MainWindow::merging) "); 2100 qDebug("MainWindow::merging) ");
2099 mView->syncCalendar( "/home/polo/Applications/korganizer/z_sync.ics", 0 ); 2101 mView->syncCalendar( "/home/polo/Applications/korganizer/z_sync.ics", 0 );
2100 while ( mBlockSaveFlag ) 2102 while ( mBlockSaveFlag )
2101 qApp->processEvents(); 2103 qApp->processEvents();
2102 save(); 2104 save();
2103 system ("scp /home/polo/Applications/korganizer/mycalendar.ics zaurus@192.168.0.65:/home/zaurus/Applications/korganizer/mycalendar.ics"); 2105 system ("scp /home/polo/Applications/korganizer/mycalendar.ics zaurus@192.168.0.65:/home/zaurus/Applications/korganizer/mycalendar.ics");
2104#endif 2106#endif
2105 2107
2106} 2108}
2107 2109
2108 2110
2109void MainWindow::syncSharp() 2111void MainWindow::syncSharp()
2110{ 2112{
2111 if ( mCalendarModifiedFlag ) 2113 if ( mCalendarModifiedFlag )
2112 save(); 2114 save();
2113 mView->syncSharp(); 2115 mView->syncSharp();
2114 slotModifiedChanged( true ); 2116 slotModifiedChanged( true );
2115 2117
2116} 2118}
2117void MainWindow::syncPhone() 2119void MainWindow::syncPhone()
2118{ 2120{
2119 if ( mCalendarModifiedFlag ) 2121 if ( mCalendarModifiedFlag )
2120 save(); 2122 save();
2121 mView->syncPhone(); 2123 mView->syncPhone();
2122 slotModifiedChanged( true ); 2124 slotModifiedChanged( true );
2123 2125
2124} 2126}
2125 2127
2126void MainWindow::printSel( ) 2128void MainWindow::printSel( )
2127{ 2129{
2128 mView->viewManager()->agendaView()->agenda()->printSelection(); 2130 mView->viewManager()->agendaView()->agenda()->printSelection();
2129} 2131}
2130 2132
2131void MainWindow::printCal() 2133void MainWindow::printCal()
2132{ 2134{
2133 mView->print();//mCp->showDialog(); 2135 mView->print();//mCp->showDialog();
2134} 2136}