summaryrefslogtreecommitdiffabout
Unidiff
Diffstat (more/less context) (ignore whitespace changes)
-rw-r--r--korganizer/koprefs.cpp5
-rw-r--r--korganizer/koprefs.h4
-rw-r--r--korganizer/mainwindow.cpp317
-rw-r--r--korganizer/mainwindow.h65
4 files changed, 386 insertions, 5 deletions
diff --git a/korganizer/koprefs.cpp b/korganizer/koprefs.cpp
index 5d7db4f..0034715 100644
--- a/korganizer/koprefs.cpp
+++ b/korganizer/koprefs.cpp
@@ -144,97 +144,100 @@ KOPrefs::KOPrefs() :
144 // addItemString("Time Zone",&mTimeZone,"+0100"); 144 // addItemString("Time Zone",&mTimeZone,"+0100");
145 addItemString("TimeZoneName",&mTimeZoneId,i18n ("+01:00 Europe/Oslo(CET)") ); 145 addItemString("TimeZoneName",&mTimeZoneId,i18n ("+01:00 Europe/Oslo(CET)") );
146 // addItemInt("TimeZoneOffset",&mTimeZoneOffset,60); 146 // addItemInt("TimeZoneOffset",&mTimeZoneOffset,60);
147 addItemBool("UseDaylightsaving",&mUseDaylightsaving,true); 147 addItemBool("UseDaylightsaving",&mUseDaylightsaving,true);
148 addItemInt("DaylightsavingStart",&mDaylightsavingStart,90); 148 addItemInt("DaylightsavingStart",&mDaylightsavingStart,90);
149 addItemInt("DaylightsavingEnd",&mDaylightsavingEnd,304); 149 addItemInt("DaylightsavingEnd",&mDaylightsavingEnd,304);
150 150
151 151
152 addItemInt("Default Start Time",&mStartTime,10); 152 addItemInt("Default Start Time",&mStartTime,10);
153 addItemInt("Default Duration",&mDefaultDuration,2); 153 addItemInt("Default Duration",&mDefaultDuration,2);
154 addItemInt("Default Alarm Time",&mAlarmTime,3); 154 addItemInt("Default Alarm Time",&mAlarmTime,3);
155 addItemInt("Daylight Savings",&mDaylightSavings,0); 155 addItemInt("Daylight Savings",&mDaylightSavings,0);
156 KPrefs::setCurrentGroup("AlarmSettings"); 156 KPrefs::setCurrentGroup("AlarmSettings");
157 addItemInt("AlarmPlayBeeps",&mAlarmPlayBeeps,20); 157 addItemInt("AlarmPlayBeeps",&mAlarmPlayBeeps,20);
158 addItemInt("AlarmSuspendTime",&mAlarmSuspendTime,7); 158 addItemInt("AlarmSuspendTime",&mAlarmSuspendTime,7);
159 addItemInt("AlarmSuspendCount",&mAlarmSuspendCount,5); 159 addItemInt("AlarmSuspendCount",&mAlarmSuspendCount,5);
160 addItemInt("AlarmBeepInterval",&mAlarmBeepInterval,3); 160 addItemInt("AlarmBeepInterval",&mAlarmBeepInterval,3);
161 161
162 162
163 KPrefs::setCurrentGroup("Calendar"); 163 KPrefs::setCurrentGroup("Calendar");
164 164
165 addItemInt("Default Calendar Format",&mDefaultFormat,FormatICalendar); 165 addItemInt("Default Calendar Format",&mDefaultFormat,FormatICalendar);
166 166
167 KPrefs::setCurrentGroup("Fonts"); 167 KPrefs::setCurrentGroup("Fonts");
168 // qDebug(" KPrefs::setCurrentGroup(Fonts); "); 168 // qDebug(" KPrefs::setCurrentGroup(Fonts); ");
169 addItemFont("TimeBar Font",&mTimeBarFont); 169 addItemFont("TimeBar Font",&mTimeBarFont);
170 addItemFont("MonthView Font",&mMonthViewFont); 170 addItemFont("MonthView Font",&mMonthViewFont);
171 addItemFont("AgendaView Font",&mAgendaViewFont); 171 addItemFont("AgendaView Font",&mAgendaViewFont);
172 addItemFont("MarcusBains Font",&mMarcusBainsFont); 172 addItemFont("MarcusBains Font",&mMarcusBainsFont);
173 addItemFont("TimeLabels Font",&mTimeLabelsFont); 173 addItemFont("TimeLabels Font",&mTimeLabelsFont);
174 addItemFont("TodoView Font",&mTodoViewFont); 174 addItemFont("TodoView Font",&mTodoViewFont);
175 addItemFont("ListView Font",&mListViewFont); 175 addItemFont("ListView Font",&mListViewFont);
176 addItemFont("DateNavigator Font",&mDateNavigatorFont); 176 addItemFont("DateNavigator Font",&mDateNavigatorFont);
177 addItemFont("EditBox Font",&mEditBoxFont); 177 addItemFont("EditBox Font",&mEditBoxFont);
178 addItemFont("JournalView Font",&mJornalViewFont); 178 addItemFont("JournalView Font",&mJornalViewFont);
179 addItemFont("WhatsNextView Font",&mWhatsNextFont); 179 addItemFont("WhatsNextView Font",&mWhatsNextFont);
180 addItemFont("EventView Font",&mEventViewFont); 180 addItemFont("EventView Font",&mEventViewFont);
181 181
182// KPrefs::setCurrentGroup("SyncProfiles"); 182// KPrefs::setCurrentGroup("SyncProfiles");
183// addItemString("LocalMachineName",&mLocalMachineName, "undefined"); 183// addItemString("LocalMachineName",&mLocalMachineName, "undefined");
184// addItemStringList("SyncProfileNames",&mSyncProfileNames); 184// addItemStringList("SyncProfileNames",&mSyncProfileNames);
185// addItemStringList("ExternSyncProfiles",&mExternSyncProfileNames); 185// addItemStringList("ExternSyncProfiles",&mExternSyncProfileNames);
186 186
187 KPrefs::setCurrentGroup("RemoteSyncing"); 187 KPrefs::setCurrentGroup("RemoteSyncing");
188// addItemBool("UsePasswd",&mUsePassWd,false); 188// addItemBool("UsePasswd",&mUsePassWd,false);
189// addItemBool("WriteBackFile",&mWriteBackFile,true); 189// addItemBool("WriteBackFile",&mWriteBackFile,true);
190// addItemBool("WriteBackExistingOnly",&mWriteBackExistingOnly,false); 190// addItemBool("WriteBackExistingOnly",&mWriteBackExistingOnly,false);
191// addItemBool("AskForPreferences",&mAskForPreferences,true); 191// addItemBool("AskForPreferences",&mAskForPreferences,true);
192// addItemBool("ShowSyncSummary",&mShowSyncSummary,true); 192// addItemBool("ShowSyncSummary",&mShowSyncSummary,true);
193 addItemString("PassiveSyncPort",&mPassiveSyncPort,"9197" );
194 addItemString("ActiveSyncPort",&mActiveSyncPort,"9197" );
195 addItemString("ActiveSyncIP",&mActiveSyncIP,"192.168.0.40" );
193 addItemBool("ShowSyncEvents",&mShowSyncEvents,false); 196 addItemBool("ShowSyncEvents",&mShowSyncEvents,false);
194 addItemInt("LastSyncTime",&mLastSyncTime,0); 197 addItemInt("LastSyncTime",&mLastSyncTime,0);
195 addItemInt("SyncAlgoPrefs",&mSyncAlgoPrefs,3); 198 addItemInt("SyncAlgoPrefs",&mSyncAlgoPrefs,3);
196 addItemInt("RingSyncAlgoPrefs",&mRingSyncAlgoPrefs,3); 199 addItemInt("RingSyncAlgoPrefs",&mRingSyncAlgoPrefs,3);
197 200
198#ifdef _WIN32_ 201#ifdef _WIN32_
199 QString hdp= locateLocal("data","korganizer")+"\\\\"; 202 QString hdp= locateLocal("data","korganizer")+"\\\\";
200#else 203#else
201 QString hdp= locateLocal("data","korganizer")+"/"; 204 QString hdp= locateLocal("data","korganizer")+"/";
202#endif 205#endif
203// addItemString("RemoteIP",&mRemoteIP, "192.168.0.65"); 206// addItemString("RemoteIP",&mRemoteIP, "192.168.0.65");
204// addItemString("RemoteUser",&mRemoteUser, "zaurus"); 207// addItemString("RemoteUser",&mRemoteUser, "zaurus");
205// addItemString("RemotePassWd",&mRemotePassWd, ""); 208// addItemString("RemotePassWd",&mRemotePassWd, "");
206// addItemString("RemoteFile", &mRemoteFile, hdp+"mycalendar.ics"); 209// addItemString("RemoteFile", &mRemoteFile, hdp+"mycalendar.ics");
207// addItemString("LocalTempFile",&mLocalTempFile, "/tmp/tempsyncfile.ics" ); 210// addItemString("LocalTempFile",&mLocalTempFile, "/tmp/tempsyncfile.ics" );
208 211
209 212
210 KPrefs::setCurrentGroup("LoadSaveFileNames"); 213 KPrefs::setCurrentGroup("LoadSaveFileNames");
211 214
212 addItemString("LastImportFile", &mLastImportFile ,hdp +"import.ics" ); 215 addItemString("LastImportFile", &mLastImportFile ,hdp +"import.ics" );
213 addItemString("LastVcalFile", &mLastVcalFile ,hdp +"export.vcs" ); 216 addItemString("LastVcalFile", &mLastVcalFile ,hdp +"export.vcs" );
214 addItemString("LastSaveFile", &mLastSaveFile ,hdp +"mybackup.ics" ); 217 addItemString("LastSaveFile", &mLastSaveFile ,hdp +"mybackup.ics" );
215 addItemString("LastLoadFile", &mLastLoadFile ,hdp +"mybackup.ics" ); 218 addItemString("LastLoadFile", &mLastLoadFile ,hdp +"mybackup.ics" );
216 addItemString("LastSyncedLocalFile", &mLastSyncedLocalFile ,hdp +"lastsync.ics" ); 219 addItemString("LastSyncedLocalFile", &mLastSyncedLocalFile ,hdp +"lastsync.ics" );
217 220
218 221
219 KPrefs::setCurrentGroup("Locale"); 222 KPrefs::setCurrentGroup("Locale");
220 addItemInt("PreferredLanguage",&mPreferredLanguage,0); 223 addItemInt("PreferredLanguage",&mPreferredLanguage,0);
221 addItemInt("PreferredTime",&mPreferredTime,0); 224 addItemInt("PreferredTime",&mPreferredTime,0);
222 addItemInt("PreferredDate",&mPreferredDate,0); 225 addItemInt("PreferredDate",&mPreferredDate,0);
223 addItemBool("WeekStartsOnSunday",&mWeekStartsOnSunday,false); 226 addItemBool("WeekStartsOnSunday",&mWeekStartsOnSunday,false);
224 addItemBool("QuickSavingWOUnicode",&mUseQuicksave,false); 227 addItemBool("QuickSavingWOUnicode",&mUseQuicksave,false);
225 addItemBool("ShortDateInViewer",&mShortDateInViewer,false); 228 addItemBool("ShortDateInViewer",&mShortDateInViewer,false);
226 addItemString("UserDateFormatLong", &mUserDateFormatLong, "%A %d %b %y"); 229 addItemString("UserDateFormatLong", &mUserDateFormatLong, "%A %d %b %y");
227 addItemString("UserDateFormatShort", &mUserDateFormatShort, "%aK %d.%m.%y"); 230 addItemString("UserDateFormatShort", &mUserDateFormatShort, "%aK %d.%m.%y");
228 231
229 232
230 KPrefs::setCurrentGroup("Colors"); 233 KPrefs::setCurrentGroup("Colors");
231 addItemColor("Holiday Color",&mHolidayColor,defaultHolidayColor); 234 addItemColor("Holiday Color",&mHolidayColor,defaultHolidayColor);
232 addItemColor("Highlight Color",&mHighlightColor,defaultHighlightColor); 235 addItemColor("Highlight Color",&mHighlightColor,defaultHighlightColor);
233 addItemColor("Event Color",&mEventColor,mDefaultCategoryColor); 236 addItemColor("Event Color",&mEventColor,mDefaultCategoryColor);
234 addItemColor("Agenda Background Color",&mAgendaBgColor,defaultAgendaBgColor); 237 addItemColor("Agenda Background Color",&mAgendaBgColor,defaultAgendaBgColor);
235 addItemColor("WorkingHours Color",&mWorkingHoursColor,defaultWorkingHoursColor); 238 addItemColor("WorkingHours Color",&mWorkingHoursColor,defaultWorkingHoursColor);
236 addItemColor("Todo due today Color",&mTodoDueTodayColor,defaultTodoDueTodayColor); 239 addItemColor("Todo due today Color",&mTodoDueTodayColor,defaultTodoDueTodayColor);
237 addItemColor("Todo overdue Color",&mTodoOverdueColor,defaultTodoOverdueColor); 240 addItemColor("Todo overdue Color",&mTodoOverdueColor,defaultTodoOverdueColor);
238 addItemColor("MonthViewEvenColor",&mMonthViewEvenColor,QColor( 160,160,255 )); 241 addItemColor("MonthViewEvenColor",&mMonthViewEvenColor,QColor( 160,160,255 ));
239 addItemColor("MonthViewOddColor",&mMonthViewOddColor,QColor( 160,255,160 )); 242 addItemColor("MonthViewOddColor",&mMonthViewOddColor,QColor( 160,255,160 ));
240 addItemColor("MonthViewHolidayColor",&mMonthViewHolidayColor,QColor( 255,160,160 )); 243 addItemColor("MonthViewHolidayColor",&mMonthViewHolidayColor,QColor( 255,160,160 ));
diff --git a/korganizer/koprefs.h b/korganizer/koprefs.h
index 33eda60..696433e 100644
--- a/korganizer/koprefs.h
+++ b/korganizer/koprefs.h
@@ -234,76 +234,80 @@ class KOPrefs : public KPimPrefs
234 234
235 235
236 QString mDefaultAlarmFile; 236 QString mDefaultAlarmFile;
237 int mIMIPScheduler; 237 int mIMIPScheduler;
238 int mIMIPSend; 238 int mIMIPSend;
239 QStringList mAdditionalMails; 239 QStringList mAdditionalMails;
240 int mIMIPAutoRefresh; 240 int mIMIPAutoRefresh;
241 int mIMIPAutoInsertReply; 241 int mIMIPAutoInsertReply;
242 int mIMIPAutoInsertRequest; 242 int mIMIPAutoInsertRequest;
243 int mIMIPAutoFreeBusy; 243 int mIMIPAutoFreeBusy;
244 int mIMIPAutoFreeBusyReply; 244 int mIMIPAutoFreeBusyReply;
245 245
246 QStringList mTodoTemplates; 246 QStringList mTodoTemplates;
247 QStringList mEventTemplates; 247 QStringList mEventTemplates;
248 248
249 int mDestination; 249 int mDestination;
250 250
251 251
252 bool mEditOnDoubleClick; 252 bool mEditOnDoubleClick;
253 bool mViewChangeHoldFullscreen; 253 bool mViewChangeHoldFullscreen;
254 bool mViewChangeHoldNonFullscreen; 254 bool mViewChangeHoldNonFullscreen;
255 bool mCenterOnCurrentTime; 255 bool mCenterOnCurrentTime;
256 bool mSetTimeToDayStartAt; 256 bool mSetTimeToDayStartAt;
257 bool mHighlightCurrentDay; 257 bool mHighlightCurrentDay;
258 bool mUseHighlightLightColor; 258 bool mUseHighlightLightColor;
259 bool mListViewMonthTimespan; 259 bool mListViewMonthTimespan;
260 bool mWNViewShowsParents; 260 bool mWNViewShowsParents;
261 bool mWNViewShowLocation; 261 bool mWNViewShowLocation;
262 bool mTodoViewShowsPercentage; 262 bool mTodoViewShowsPercentage;
263 bool mTodoViewUsesCatColors; 263 bool mTodoViewUsesCatColors;
264 bool mTodoViewUsesSmallFont; 264 bool mTodoViewUsesSmallFont;
265 bool mTodoViewUsesForegroundColor; 265 bool mTodoViewUsesForegroundColor;
266 bool mMonthViewUsesForegroundColor; 266 bool mMonthViewUsesForegroundColor;
267 267
268 bool mHightlightDateTimeEdit; 268 bool mHightlightDateTimeEdit;
269 bool mUseQuicksave; 269 bool mUseQuicksave;
270 bool mShortDateInViewer; 270 bool mShortDateInViewer;
271 271
272 QStringList mLocationDefaults; 272 QStringList mLocationDefaults;
273 QStringList mEventSummaryUser; 273 QStringList mEventSummaryUser;
274 QStringList mTodoSummaryUser; 274 QStringList mTodoSummaryUser;
275 275
276 bool mUseInternalAlarmNotification; 276 bool mUseInternalAlarmNotification;
277 int mAlarmPlayBeeps; 277 int mAlarmPlayBeeps;
278 int mAlarmSuspendTime; 278 int mAlarmSuspendTime;
279 int mAlarmSuspendCount; 279 int mAlarmSuspendCount;
280 int mAlarmBeepInterval; 280 int mAlarmBeepInterval;
281 281
282 QString mPassiveSyncPort;
283 QString mActiveSyncPort;
284 QString mActiveSyncIP;
285
282 286
283 //US I copied the following settings into KPimGlobalPrefs 287 //US I copied the following settings into KPimGlobalPrefs
284 // that allows us later to easily remove the settings from here. 288 // that allows us later to easily remove the settings from here.
285 int mPreferredDate; 289 int mPreferredDate;
286 QString mUserDateFormatLong; 290 QString mUserDateFormatLong;
287 QString mUserDateFormatShort; 291 QString mUserDateFormatShort;
288 int mPreferredLanguage; 292 int mPreferredLanguage;
289 int mPreferredTime; 293 int mPreferredTime;
290 bool mWeekStartsOnSunday; 294 bool mWeekStartsOnSunday;
291 QString mTimeZoneId; 295 QString mTimeZoneId;
292 bool mUseDaylightsaving; 296 bool mUseDaylightsaving;
293 int mDaylightsavingStart; 297 int mDaylightsavingStart;
294 int mDaylightsavingEnd; 298 int mDaylightsavingEnd;
295 299
296 300
297 private: 301 private:
298 QDict<QColor> mCategoryColors; 302 QDict<QColor> mCategoryColors;
299 QColor mDefaultCategoryColor; 303 QColor mDefaultCategoryColor;
300 304
301 QFont mDefaultTimeBarFont; 305 QFont mDefaultTimeBarFont;
302 QFont mDefaultViewFont; 306 QFont mDefaultViewFont;
303 QFont mDefaultMonthViewFont; 307 QFont mDefaultMonthViewFont;
304 308
305 QString mName; 309 QString mName;
306 QString mEmail; 310 QString mEmail;
307}; 311};
308 312
309#endif 313#endif
diff --git a/korganizer/mainwindow.cpp b/korganizer/mainwindow.cpp
index 6315c64..f2e1bf8 100644
--- a/korganizer/mainwindow.cpp
+++ b/korganizer/mainwindow.cpp
@@ -1,122 +1,125 @@
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 <qtextcodec.h>
9#include <qfile.h> 10#include <qfile.h>
10#include <qdir.h> 11#include <qdir.h>
11#include <qapp.h> 12#include <qapp.h>
12#include <qfileinfo.h> 13#include <qfileinfo.h>
13#include <qlabel.h> 14#include <qlabel.h>
14#include <qmap.h> 15#include <qmap.h>
15#include <qwmatrix.h> 16#include <qwmatrix.h>
16#include <qtextbrowser.h> 17#include <qtextbrowser.h>
17#include <qtextstream.h> 18#include <qtextstream.h>
18#ifndef DESKTOP_VERSION 19#ifndef DESKTOP_VERSION
19#include <qpe/global.h> 20#include <qpe/global.h>
20#include <qpe/qpemenubar.h> 21#include <qpe/qpemenubar.h>
21#include <qpe/qpetoolbar.h> 22#include <qpe/qpetoolbar.h>
22#include <qpe/resource.h> 23#include <qpe/resource.h>
23#include <qpe/qpeapplication.h> 24#include <qpe/qpeapplication.h>
24#include <qtopia/alarmserver.h> 25#include <qtopia/alarmserver.h>
25#include <qtopia/qcopenvelope_qws.h> 26#include <qtopia/qcopenvelope_qws.h>
26#else 27#else
27#include <qmenubar.h> 28#include <qmenubar.h>
28#include <qtoolbar.h> 29#include <qtoolbar.h>
29#include <qapplication.h> 30#include <qapplication.h>
30//#include <resource.h> 31//#include <resource.h>
31 32
32#endif 33#endif
33#include <libkcal/calendarlocal.h> 34#include <libkcal/calendarlocal.h>
34#include <libkcal/todo.h> 35#include <libkcal/todo.h>
35#include <libkdepim/ksyncprofile.h> 36#include <libkdepim/ksyncprofile.h>
36#include <libkcal/kincidenceformatter.h> 37#include <libkcal/kincidenceformatter.h>
37#include <libkdepim/kpimglobalprefs.h> 38#include <libkdepim/kpimglobalprefs.h>
38 39
39#include "calendarview.h" 40#include "calendarview.h"
40#include "koviewmanager.h" 41#include "koviewmanager.h"
41#include "datenavigator.h" 42#include "datenavigator.h"
42#include "koagendaview.h" 43#include "koagendaview.h"
43#include "koagenda.h" 44#include "koagenda.h"
44#include "kodialogmanager.h" 45#include "kodialogmanager.h"
45#include "kdialogbase.h" 46#include "kdialogbase.h"
46#include "kapplication.h" 47#include "kapplication.h"
47#include "kofilterview.h" 48#include "kofilterview.h"
48#include "kstandarddirs.h" 49#include "kstandarddirs.h"
49#include "koprefs.h" 50#include "koprefs.h"
50#include "kfiledialog.h" 51#include "kfiledialog.h"
51#include "koglobals.h" 52#include "koglobals.h"
52#include "kglobal.h" 53#include "kglobal.h"
53#include "klocale.h" 54#include "klocale.h"
54#include "kconfig.h" 55#include "kconfig.h"
55#include "simplealarmclient.h" 56#include "simplealarmclient.h"
56#include "externalapphandler.h" 57#include "externalapphandler.h"
57 58
58using namespace KCal; 59using namespace KCal;
59#ifndef _WIN32_ 60#ifndef _WIN32_
60#include <unistd.h> 61#include <unistd.h>
61#else 62#else
62#include "koimportoldialog.h" 63#include "koimportoldialog.h"
63#endif 64#endif
64#include "mainwindow.h" 65#include "mainwindow.h"
65 66
66int globalFlagBlockStartup; 67int globalFlagBlockStartup;
67MainWindow::MainWindow( QWidget *parent, const char *name, QString msg) : 68MainWindow::MainWindow( QWidget *parent, const char *name, QString msg) :
68 QMainWindow( parent, name ) 69 QMainWindow( parent, name )
69{ 70{
70 71
71#ifdef DESKTOP_VERSION 72#ifdef DESKTOP_VERSION
72 setFont( QFont("Arial"), 14 ); 73 setFont( QFont("Arial"), 14 );
73#endif 74#endif
74 75 mCommandSocket = 0;
76 mSyncActionDialog = 0;
77 mServerSocket = 0;
75 mClosed = false; 78 mClosed = false;
76 //QString confFile = KStandardDirs::appDir() + "config/korganizerrc"; 79 //QString confFile = KStandardDirs::appDir() + "config/korganizerrc";
77 QString confFile = locateLocal("config","korganizerrc"); 80 QString confFile = locateLocal("config","korganizerrc");
78 QFileInfo finf ( confFile ); 81 QFileInfo finf ( confFile );
79 bool showWarning = !finf.exists(); 82 bool showWarning = !finf.exists();
80 setIcon(SmallIcon( "ko24" ) ); 83 setIcon(SmallIcon( "ko24" ) );
81 mBlockAtStartup = true; 84 mBlockAtStartup = true;
82 mFlagKeyPressed = false; 85 mFlagKeyPressed = false;
83 setCaption("KOrganizer/Pi"); 86 setCaption("KOrganizer/Pi");
84 KOPrefs *p = KOPrefs::instance(); 87 KOPrefs *p = KOPrefs::instance();
85 KPimGlobalPrefs::instance()->setGlobalConfig(); 88 KPimGlobalPrefs::instance()->setGlobalConfig();
86 // if ( QApplication::desktop()->height() > 480 ) { 89 // if ( QApplication::desktop()->height() > 480 ) {
87// if ( p->mHourSize == 4 ) 90// if ( p->mHourSize == 4 )
88// p->mHourSize = 6; 91// p->mHourSize = 6;
89// } 92// }
90 if ( p->mHourSize > 18 ) 93 if ( p->mHourSize > 18 )
91 p->mHourSize = 18; 94 p->mHourSize = 18;
92 QMainWindow::ToolBarDock tbd; 95 QMainWindow::ToolBarDock tbd;
93 if ( p->mToolBarHor ) { 96 if ( p->mToolBarHor ) {
94 if ( p->mToolBarUp ) 97 if ( p->mToolBarUp )
95 tbd = Bottom; 98 tbd = Bottom;
96 else 99 else
97 tbd = Top; 100 tbd = Top;
98 } 101 }
99 else { 102 else {
100 if ( p->mToolBarUp ) 103 if ( p->mToolBarUp )
101 tbd = Right; 104 tbd = Right;
102 else 105 else
103 tbd = Left; 106 tbd = Left;
104 } 107 }
105 if ( KOPrefs::instance()->mUseAppColors ) 108 if ( KOPrefs::instance()->mUseAppColors )
106 QApplication::setPalette( QPalette (KOPrefs::instance()->mAppColor1, KOPrefs::instance()->mAppColor2), true ); 109 QApplication::setPalette( QPalette (KOPrefs::instance()->mAppColor1, KOPrefs::instance()->mAppColor2), true );
107 globalFlagBlockStartup = 1; 110 globalFlagBlockStartup = 1;
108 iconToolBar = new QPEToolBar( this ); 111 iconToolBar = new QPEToolBar( this );
109 addToolBar (iconToolBar , tbd ); 112 addToolBar (iconToolBar , tbd );
110 mBlockSaveFlag = false; 113 mBlockSaveFlag = false;
111 mCalendarModifiedFlag = false; 114 mCalendarModifiedFlag = false;
112 115
113 QLabel* splash = new QLabel(i18n("KO/Pi is starting ... "), this ); 116 QLabel* splash = new QLabel(i18n("KO/Pi is starting ... "), this );
114 splash->setAlignment ( AlignCenter ); 117 splash->setAlignment ( AlignCenter );
115 setCentralWidget( splash ); 118 setCentralWidget( splash );
116#ifndef DESKTOP_VERSION 119#ifndef DESKTOP_VERSION
117 showMaximized(); 120 showMaximized();
118#endif 121#endif
119 //qDebug("Mainwidget x %d y %d w %d h %d", x(), y(), width(), height ()); 122 //qDebug("Mainwidget x %d y %d w %d h %d", x(), y(), width(), height ());
120 setDefaultPreferences(); 123 setDefaultPreferences();
121 mCalendar = new CalendarLocal(); 124 mCalendar = new CalendarLocal();
122 mView = new CalendarView( mCalendar, this,"mCalendar " ); 125 mView = new CalendarView( mCalendar, this,"mCalendar " );
@@ -168,97 +171,97 @@ MainWindow::MainWindow( QWidget *parent, const char *name, QString msg) :
168 QTime neededSaveTime = QDateTime::currentDateTime().time(); 171 QTime neededSaveTime = QDateTime::currentDateTime().time();
169 if ( ! oldOpened ) 172 if ( ! oldOpened )
170 mView->openCalendar( defaultFileName() ); 173 mView->openCalendar( defaultFileName() );
171 int msNeeded = neededSaveTime.msecsTo( QDateTime::currentDateTime().time() ); 174 int msNeeded = neededSaveTime.msecsTo( QDateTime::currentDateTime().time() );
172 qDebug("KO: Calendar loading time: %d ms",msNeeded ); 175 qDebug("KO: Calendar loading time: %d ms",msNeeded );
173 176
174 if ( KOPrefs::instance()->mLanguageChanged ) { 177 if ( KOPrefs::instance()->mLanguageChanged ) {
175 KOPrefs::instance()->setCategoryDefaults(); 178 KOPrefs::instance()->setCategoryDefaults();
176 int count = mView->addCategories(); 179 int count = mView->addCategories();
177 KOPrefs::instance()->mLanguageChanged = false; 180 KOPrefs::instance()->mLanguageChanged = false;
178 } 181 }
179 processIncidenceSelection( 0 ); 182 processIncidenceSelection( 0 );
180 connect( mView, SIGNAL( incidenceSelected( Incidence * ) ), 183 connect( mView, SIGNAL( incidenceSelected( Incidence * ) ),
181 SLOT( processIncidenceSelection( Incidence * ) ) ); 184 SLOT( processIncidenceSelection( Incidence * ) ) );
182 connect( mView, SIGNAL( modifiedChanged( bool ) ), 185 connect( mView, SIGNAL( modifiedChanged( bool ) ),
183 SLOT( slotModifiedChanged( bool ) ) ); 186 SLOT( slotModifiedChanged( bool ) ) );
184 187
185 188
186 connect( &mSaveTimer, SIGNAL( timeout() ), SLOT( save() ) ); 189 connect( &mSaveTimer, SIGNAL( timeout() ), SLOT( save() ) );
187 mView->setModified( false ); 190 mView->setModified( false );
188 mBlockAtStartup = false; 191 mBlockAtStartup = false;
189 mView->setModified( false ); 192 mView->setModified( false );
190 setCentralWidget( mView ); 193 setCentralWidget( mView );
191 globalFlagBlockStartup = 0; 194 globalFlagBlockStartup = 0;
192 mView->show(); 195 mView->show();
193 delete splash; 196 delete splash;
194 if ( newFile ) 197 if ( newFile )
195 mView->updateConfig(); 198 mView->updateConfig();
196 // qApp->processEvents(); 199 // qApp->processEvents();
197 //qDebug("MainView x %d y %d w %d h %d", mView->x(),mView-> y(), mView->width(), mView->height ()); 200 //qDebug("MainView x %d y %d w %d h %d", mView->x(),mView-> y(), mView->width(), mView->height ());
198 fillSyncMenu(); 201 fillSyncMenu();
199 mView->viewManager()->agendaView()->setStartHour( KOPrefs::instance()->mDayBegins ); 202 mView->viewManager()->agendaView()->setStartHour( KOPrefs::instance()->mDayBegins );
200 if ( showWarning ) { 203 if ( showWarning ) {
201 KMessageBox::information( this, 204 KMessageBox::information( this,
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"); 205 "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");
203 qApp->processEvents(); 206 qApp->processEvents();
204 mView->dialogManager()->showSyncOptions(); 207 mView->dialogManager()->showSyncOptions();
205 } 208 }
206 209
207 //US listen for result adressed from Ka/Pi 210 //US listen for result adressed from Ka/Pi
208#ifndef DESKTOP_VERSION 211#ifndef DESKTOP_VERSION
209 connect(qApp, SIGNAL (appMessage ( const QCString &, const QByteArray & )), ExternalAppHandler::instance(), SLOT (appMessage ( const QCString &, const QByteArray & ))); 212 connect(qApp, SIGNAL (appMessage ( const QCString &, const QByteArray & )), ExternalAppHandler::instance(), SLOT (appMessage ( const QCString &, const QByteArray & )));
210#endif 213#endif
211} 214}
212MainWindow::~MainWindow() 215MainWindow::~MainWindow()
213{ 216{
214 //qDebug("MainWindow::~MainWindow() "); 217 //qDebug("MainWindow::~MainWindow() ");
215 //save toolbar location 218 //save toolbar location
216 219 delete mServerSocket;
217 delete mCalendar; 220 delete mCalendar;
218 delete KOPrefs::instance(); 221 delete KOPrefs::instance();
219 delete KIncidenceFormatter::instance(); 222 delete KIncidenceFormatter::instance();
220 223
221 224
222} 225}
223void MainWindow::showMaximized () 226void MainWindow::showMaximized ()
224{ 227{
225#ifndef DESKTOP_VERSION 228#ifndef DESKTOP_VERSION
226 if ( ! globalFlagBlockStartup ) 229 if ( ! globalFlagBlockStartup )
227 if ( mClosed ) 230 if ( mClosed )
228 mView->goToday(); 231 mView->goToday();
229#endif 232#endif
230 QWidget::showMaximized () ; 233 QWidget::showMaximized () ;
231 mClosed = false; 234 mClosed = false;
232} 235}
233void MainWindow::closeEvent( QCloseEvent* ce ) 236void MainWindow::closeEvent( QCloseEvent* ce )
234{ 237{
235 238
236 239
237 240
238 if ( ! KOPrefs::instance()->mAskForQuit ) { 241 if ( ! KOPrefs::instance()->mAskForQuit ) {
239 saveOnClose(); 242 saveOnClose();
240 mClosed = true; 243 mClosed = true;
241 ce->accept(); 244 ce->accept();
242 return; 245 return;
243 246
244 } 247 }
245 248
246 switch( QMessageBox::information( this, "KO/Pi", 249 switch( QMessageBox::information( this, "KO/Pi",
247 i18n("Do you really want\nto close KO/Pi?"), 250 i18n("Do you really want\nto close KO/Pi?"),
248 i18n("Close"), i18n("No"), 251 i18n("Close"), i18n("No"),
249 0, 0 ) ) { 252 0, 0 ) ) {
250 case 0: 253 case 0:
251 saveOnClose(); 254 saveOnClose();
252 mClosed = true; 255 mClosed = true;
253 ce->accept(); 256 ce->accept();
254 break; 257 break;
255 case 1: 258 case 1:
256 ce->ignore(); 259 ce->ignore();
257 break; 260 break;
258 case 2: 261 case 2:
259 262
260 default: 263 default:
261 break; 264 break;
262 } 265 }
263 266
264 267
@@ -817,96 +820,105 @@ void MainWindow::initActions()
817 configureToolBarMenu->setItemChecked( 30, true ); 820 configureToolBarMenu->setItemChecked( 30, true );
818 if (p-> mShowIconDay1) 821 if (p-> mShowIconDay1)
819 configureToolBarMenu->setItemChecked( 40, true ); 822 configureToolBarMenu->setItemChecked( 40, true );
820 if (p-> mShowIconDay5) 823 if (p-> mShowIconDay5)
821 configureToolBarMenu->setItemChecked( 50, true ); 824 configureToolBarMenu->setItemChecked( 50, true );
822 if (p-> mShowIconDay7) 825 if (p-> mShowIconDay7)
823 configureToolBarMenu->setItemChecked( 60, true ); 826 configureToolBarMenu->setItemChecked( 60, true );
824 if (p-> mShowIconMonth) 827 if (p-> mShowIconMonth)
825 configureToolBarMenu->setItemChecked( 70, true ); 828 configureToolBarMenu->setItemChecked( 70, true );
826 if (p-> mShowIconTodoview) 829 if (p-> mShowIconTodoview)
827 configureToolBarMenu->setItemChecked( 80, true ); 830 configureToolBarMenu->setItemChecked( 80, true );
828 if (p-> mShowIconBackFast) 831 if (p-> mShowIconBackFast)
829 configureToolBarMenu->setItemChecked( 200, true ); 832 configureToolBarMenu->setItemChecked( 200, true );
830 if (p-> mShowIconBack) 833 if (p-> mShowIconBack)
831 configureToolBarMenu->setItemChecked( 210, true ); 834 configureToolBarMenu->setItemChecked( 210, true );
832 if (p-> mShowIconToday) 835 if (p-> mShowIconToday)
833 configureToolBarMenu->setItemChecked( 130, true ); 836 configureToolBarMenu->setItemChecked( 130, true );
834 if (p-> mShowIconForward) 837 if (p-> mShowIconForward)
835 configureToolBarMenu->setItemChecked( 220, true ); 838 configureToolBarMenu->setItemChecked( 220, true );
836 if (p-> mShowIconForwardFast) 839 if (p-> mShowIconForwardFast)
837 configureToolBarMenu->setItemChecked( 230, true ); 840 configureToolBarMenu->setItemChecked( 230, true );
838 if (p-> mShowIconNextDays) 841 if (p-> mShowIconNextDays)
839 configureToolBarMenu->setItemChecked( 100, true ); 842 configureToolBarMenu->setItemChecked( 100, true );
840 if (p-> mShowIconNext) 843 if (p-> mShowIconNext)
841 configureToolBarMenu->setItemChecked( 110, true ); 844 configureToolBarMenu->setItemChecked( 110, true );
842 if (p-> mShowIconJournal) 845 if (p-> mShowIconJournal)
843 configureToolBarMenu->setItemChecked( 90, true ); 846 configureToolBarMenu->setItemChecked( 90, true );
844 if (p-> mShowIconWhatsThis) 847 if (p-> mShowIconWhatsThis)
845 configureToolBarMenu->setItemChecked( 300, true ); 848 configureToolBarMenu->setItemChecked( 300, true );
846 849
847 QLabel* dummy = new QLabel( iconToolBar ); 850 QLabel* dummy = new QLabel( iconToolBar );
848 dummy->setBackgroundColor( iconToolBar->backgroundColor() ); 851 dummy->setBackgroundColor( iconToolBar->backgroundColor() );
849 if (!p-> mShowIconStretch) 852 if (!p-> mShowIconStretch)
850 iconToolBar->setStretchableWidget ( dummy ) ; 853 iconToolBar->setStretchableWidget ( dummy ) ;
851 else 854 else
852 configureToolBarMenu->setItemChecked( 5, true ); 855 configureToolBarMenu->setItemChecked( 5, true );
853 if (p-> mShowIconWhatsThis) 856 if (p-> mShowIconWhatsThis)
854 QWhatsThis::whatsThisButton ( iconToolBar ); 857 QWhatsThis::whatsThisButton ( iconToolBar );
855 connect( configureToolBarMenu, SIGNAL( activated( int ) ),this, SLOT(configureToolBar( int ) ) ); 858 connect( configureToolBarMenu, SIGNAL( activated( int ) ),this, SLOT(configureToolBar( int ) ) );
856 configureAgenda( p->mHourSize ); 859 configureAgenda( p->mHourSize );
857 connect( configureAgendaMenu, SIGNAL( activated( int ) ),this, SLOT(configureAgenda( int ) ) ); 860 connect( configureAgendaMenu, SIGNAL( activated( int ) ),this, SLOT(configureAgenda( int ) ) );
858} 861}
859void MainWindow::fillSyncMenu() 862void MainWindow::fillSyncMenu()
860{ 863{
861 if ( syncMenu->count() ) 864 if ( syncMenu->count() )
862 syncMenu->clear(); 865 syncMenu->clear();
863 syncMenu->insertItem( i18n("Configure..."), 0 ); 866 syncMenu->insertItem( i18n("Configure..."), 0 );
864 syncMenu->insertSeparator(); 867 syncMenu->insertSeparator();
868 if ( mServerSocket == 0 ) {
869 syncMenu->insertItem( i18n("Enable Easy-Pi-Sync"), 2 );
870 } else {
871 syncMenu->insertItem( i18n("Disable Easy-Pi-Sync"), 3 );
872 }
873 syncMenu->insertSeparator();
874 syncMenu->insertItem( i18n("New Easy-Pi-Sync!"), 4 );
875 syncMenu->insertItem( i18n("Quick Easy-Pi-Sync!"), 5 );
876 syncMenu->insertSeparator();
865 syncMenu->insertItem( i18n("Multiple sync"), 1 ); 877 syncMenu->insertItem( i18n("Multiple sync"), 1 );
866 syncMenu->insertSeparator(); 878 syncMenu->insertSeparator();
867 KConfig config ( locateLocal( "config","ksyncprofilesrc" ) ); 879 KConfig config ( locateLocal( "config","ksyncprofilesrc" ) );
868 config.setGroup("General"); 880 config.setGroup("General");
869 QStringList prof = config.readListEntry("SyncProfileNames"); 881 QStringList prof = config.readListEntry("SyncProfileNames");
870 KOPrefs::instance()->mLocalMachineName = config.readEntry("LocalMachineName","undefined"); 882 KOPrefs::instance()->mLocalMachineName = config.readEntry("LocalMachineName","undefined");
871 if ( prof.count() < 3 ) { 883 if ( prof.count() < 3 ) {
872 prof.clear(); 884 prof.clear();
873 prof << i18n("Sharp_DTM"); 885 prof << i18n("Sharp_DTM");
874 prof << i18n("Local_file"); 886 prof << i18n("Local_file");
875 prof << i18n("Last_file"); 887 prof << i18n("Last_file");
876 KSyncProfile* temp = new KSyncProfile (); 888 KSyncProfile* temp = new KSyncProfile ();
877 temp->setName( prof[0] ); 889 temp->setName( prof[0] );
878 temp->writeConfig(&config); 890 temp->writeConfig(&config);
879 temp->setName( prof[1] ); 891 temp->setName( prof[1] );
880 temp->writeConfig(&config); 892 temp->writeConfig(&config);
881 temp->setName( prof[2] ); 893 temp->setName( prof[2] );
882 temp->writeConfig(&config); 894 temp->writeConfig(&config);
883 config.setGroup("General"); 895 config.setGroup("General");
884 config.writeEntry("SyncProfileNames",prof); 896 config.writeEntry("SyncProfileNames",prof);
885 config.writeEntry("ExternSyncProfiles","Sharp_DTM"); 897 config.writeEntry("ExternSyncProfiles","Sharp_DTM");
886 config.sync(); 898 config.sync();
887 delete temp; 899 delete temp;
888 } 900 }
889 KOPrefs::instance()->mExternSyncProfiles = config.readListEntry("ExternSyncProfiles"); 901 KOPrefs::instance()->mExternSyncProfiles = config.readListEntry("ExternSyncProfiles");
890 KOPrefs::instance()->mSyncProfileNames = prof; 902 KOPrefs::instance()->mSyncProfileNames = prof;
891 int i; 903 int i;
892 for ( i = 0; i < prof.count(); ++i ) { 904 for ( i = 0; i < prof.count(); ++i ) {
893 905
894 syncMenu->insertItem( prof[i], 1000+i ); 906 syncMenu->insertItem( prof[i], 1000+i );
895 if ( i == 2 ) 907 if ( i == 2 )
896 syncMenu->insertSeparator(); 908 syncMenu->insertSeparator();
897 } 909 }
898 QDir app_dir; 910 QDir app_dir;
899 if ( !app_dir.exists(QDir::homeDirPath()+"/Applications/dtm" ) ) { 911 if ( !app_dir.exists(QDir::homeDirPath()+"/Applications/dtm" ) ) {
900 syncMenu->setItemEnabled( false , 1000 ); 912 syncMenu->setItemEnabled( false , 1000 );
901 } 913 }
902 mView->setupExternSyncProfiles(); 914 mView->setupExternSyncProfiles();
903} 915}
904 916
905int MainWindow::ringSync() 917int MainWindow::ringSync()
906{ 918{
907 int syncedProfiles = 0; 919 int syncedProfiles = 0;
908 int i; 920 int i;
909 QTime timer; 921 QTime timer;
910 KConfig config ( locateLocal( "config","ksyncprofilesrc" ) ); 922 KConfig config ( locateLocal( "config","ksyncprofilesrc" ) );
911 QStringList syncProfileNames = KOPrefs::instance()->mSyncProfileNames; 923 QStringList syncProfileNames = KOPrefs::instance()->mSyncProfileNames;
912 KSyncProfile* temp = new KSyncProfile (); 924 KSyncProfile* temp = new KSyncProfile ();
@@ -951,112 +963,131 @@ int MainWindow::ringSync()
951#ifndef _WIN32_ 963#ifndef _WIN32_
952 sleep (1); 964 sleep (1);
953#endif 965#endif
954 } 966 }
955 967
956 } 968 }
957 969
958 } 970 }
959 delete temp; 971 delete temp;
960 return syncedProfiles; 972 return syncedProfiles;
961} 973}
962 974
963void MainWindow::multiSync( bool askforPrefs ) 975void MainWindow::multiSync( bool askforPrefs )
964{ 976{
965 if (mBlockSaveFlag) 977 if (mBlockSaveFlag)
966 return; 978 return;
967 mBlockSaveFlag = true; 979 mBlockSaveFlag = true;
968 QString question = i18n("Do you really want\nto multiple sync\nwith all checked profiles?\nSyncing takes some\ntime - all profiles\nare synced twice!"); 980 QString question = i18n("Do you really want\nto multiple sync\nwith all checked profiles?\nSyncing takes some\ntime - all profiles\nare synced twice!");
969 if ( QMessageBox::information( this, i18n("KO/Pi Sync"), 981 if ( QMessageBox::information( this, i18n("KO/Pi Sync"),
970 question, 982 question,
971 i18n("Yes"), i18n("No"), 983 i18n("Yes"), i18n("No"),
972 0, 0 ) != 0 ) { 984 0, 0 ) != 0 ) {
973 mBlockSaveFlag = false; 985 mBlockSaveFlag = false;
974 setCaption(i18n("Aborted! Nothing synced!")); 986 setCaption(i18n("Aborted! Nothing synced!"));
975 return; 987 return;
976 } 988 }
977 mView->setSyncDevice(i18n("Multiple profiles") ); 989 mView->setSyncDevice(i18n("Multiple profiles") );
978 KOPrefs::instance()->mSyncAlgoPrefs = KOPrefs::instance()->mRingSyncAlgoPrefs; 990 KOPrefs::instance()->mSyncAlgoPrefs = KOPrefs::instance()->mRingSyncAlgoPrefs;
979 if ( askforPrefs ) { 991 if ( askforPrefs ) {
980 mView->edit_sync_options(); 992 mView->edit_sync_options();
981 KOPrefs::instance()->mRingSyncAlgoPrefs = KOPrefs::instance()->mSyncAlgoPrefs; 993 KOPrefs::instance()->mRingSyncAlgoPrefs = KOPrefs::instance()->mSyncAlgoPrefs;
982 } 994 }
983 setCaption(i18n("Multiple sync started.") ); 995 setCaption(i18n("Multiple sync started.") );
984 qApp->processEvents(); 996 qApp->processEvents();
985 int num = ringSync() ; 997 int num = ringSync() ;
986 if ( num > 1 ) 998 if ( num > 1 )
987 ringSync(); 999 ringSync();
988 mBlockSaveFlag = false; 1000 mBlockSaveFlag = false;
989 if ( num ) 1001 if ( num )
990 save(); 1002 save();
991 if ( num ) 1003 if ( num )
992 setCaption(i18n("%1 profiles synced. Multiple sync completed!").arg(num) ); 1004 setCaption(i18n("%1 profiles synced. Multiple sync completed!").arg(num) );
993 else 1005 else
994 setCaption(i18n("Nothing synced! No profiles defined for multisync!")); 1006 setCaption(i18n("Nothing synced! No profiles defined for multisync!"));
995 return; 1007 return;
996} 1008}
997void MainWindow::slotSyncMenu( int action ) 1009void MainWindow::slotSyncMenu( int action )
998{ 1010{
999 //qDebug("syncaction %d ", action); 1011 qDebug("syncaction %d ", action);
1000 if ( action == 0 ) { 1012 if ( action == 0 ) {
1001 1013
1002 // seems to be a Qt2 event handling bug 1014 // seems to be a Qt2 event handling bug
1003 // syncmenu.clear causes a segfault at first time 1015 // syncmenu.clear causes a segfault at first time
1004 // when we call it after the main event loop, it is ok 1016 // when we call it after the main event loop, it is ok
1005 // same behaviour when calling OM/Pi via QCOP for the first time 1017 // same behaviour when calling OM/Pi via QCOP for the first time
1006 QTimer::singleShot ( 1, this, SLOT ( confSync() ) ); 1018 QTimer::singleShot ( 1, this, SLOT ( confSync() ) );
1007 //confSync(); 1019 //confSync();
1008 1020
1009 return; 1021 return;
1010 } 1022 }
1011 if ( action == 1 ) { 1023 if ( action == 1 ) {
1012 multiSync( true ); 1024 multiSync( true );
1013 return; 1025 return;
1014 } 1026 }
1027 if ( action == 2 ) {
1028 enableQuick();
1029 QTimer::singleShot ( 1, this, SLOT ( fillSyncMenu() ) );
1030 return;
1031 }
1032 if ( action == 3 ) {
1033 delete mServerSocket;
1034 mServerSocket = 0;
1035 QTimer::singleShot ( 1, this, SLOT ( fillSyncMenu() ) );
1036 return;
1037 }
1038 if ( action == 4 ) {
1039 performQuick();
1040 return;
1041 }
1042 if ( action == 5 ) {
1043 performQuickQuick();
1044 return;
1045 }
1015 1046
1016 if (mBlockSaveFlag) 1047 if (mBlockSaveFlag)
1017 return; 1048 return;
1018 mBlockSaveFlag = true; 1049 mBlockSaveFlag = true;
1019 mCurrentSyncProfile = action - 1000 ; 1050 mCurrentSyncProfile = action - 1000 ;
1020 mView->setSyncDevice(KOPrefs::instance()->mSyncProfileNames[mCurrentSyncProfile] ); 1051 mView->setSyncDevice(KOPrefs::instance()->mSyncProfileNames[mCurrentSyncProfile] );
1021 mView->setSyncName( KOPrefs::instance()->mLocalMachineName ); 1052 mView->setSyncName( KOPrefs::instance()->mLocalMachineName );
1022 KConfig config ( locateLocal( "config","ksyncprofilesrc" ) ); 1053 KConfig config ( locateLocal( "config","ksyncprofilesrc" ) );
1023 KSyncProfile* temp = new KSyncProfile (); 1054 KSyncProfile* temp = new KSyncProfile ();
1024 temp->setName(KOPrefs::instance()->mSyncProfileNames[mCurrentSyncProfile]); 1055 temp->setName(KOPrefs::instance()->mSyncProfileNames[mCurrentSyncProfile]);
1025 temp->readConfig(&config); 1056 temp->readConfig(&config);
1026 KOPrefs::instance()->mAskForPreferences = temp->getAskForPreferences(); 1057 KOPrefs::instance()->mAskForPreferences = temp->getAskForPreferences();
1027 KOPrefs::instance()->mSyncAlgoPrefs = temp->getSyncPrefs(); 1058 KOPrefs::instance()->mSyncAlgoPrefs = temp->getSyncPrefs();
1028 KOPrefs::instance()->mWriteBackFile = temp->getWriteBackFile(); 1059 KOPrefs::instance()->mWriteBackFile = temp->getWriteBackFile();
1029 KOPrefs::instance()->mWriteBackExistingOnly = temp->getWriteBackExisting(); 1060 KOPrefs::instance()->mWriteBackExistingOnly = temp->getWriteBackExisting();
1030 KOPrefs::instance()->mWriteBackInFuture = 0; 1061 KOPrefs::instance()->mWriteBackInFuture = 0;
1031 if ( temp->getWriteBackFuture() ) 1062 if ( temp->getWriteBackFuture() )
1032 KOPrefs::instance()->mWriteBackInFuture = temp->getWriteBackFutureWeeks( ); 1063 KOPrefs::instance()->mWriteBackInFuture = temp->getWriteBackFutureWeeks( );
1033 KOPrefs::instance()->mShowSyncSummary = temp->getShowSummaryAfterSync(); 1064 KOPrefs::instance()->mShowSyncSummary = temp->getShowSummaryAfterSync();
1034 if ( action == 1000 ) { 1065 if ( action == 1000 ) {
1035 syncSharp(); 1066 syncSharp();
1036 1067
1037 } else if ( action == 1001 ) { 1068 } else if ( action == 1001 ) {
1038 syncLocalFile(); 1069 syncLocalFile();
1039 1070
1040 } else if ( action == 1002 ) { 1071 } else if ( action == 1002 ) {
1041 quickSyncLocalFile(); 1072 quickSyncLocalFile();
1042 1073
1043 } else if ( action >= 1003 ) { 1074 } else if ( action >= 1003 ) {
1044 if ( temp->getIsLocalFileSync() ) { 1075 if ( temp->getIsLocalFileSync() ) {
1045 if ( syncWithFile( temp->getRemoteFileName( ), false ) ) 1076 if ( syncWithFile( temp->getRemoteFileName( ), false ) )
1046 KOPrefs::instance()->mLastSyncedLocalFile = temp->getRemoteFileName(); 1077 KOPrefs::instance()->mLastSyncedLocalFile = temp->getRemoteFileName();
1047 } else { 1078 } else {
1048 if ( temp->getIsPhoneSync() ) { 1079 if ( temp->getIsPhoneSync() ) {
1049 KOPrefs::instance()->mPhoneDevice = temp->getPhoneDevice( ) ; 1080 KOPrefs::instance()->mPhoneDevice = temp->getPhoneDevice( ) ;
1050 KOPrefs::instance()->mPhoneConnection = temp->getPhoneConnection( ); 1081 KOPrefs::instance()->mPhoneConnection = temp->getPhoneConnection( );
1051 KOPrefs::instance()->mPhoneModel = temp->getPhoneModel( ); 1082 KOPrefs::instance()->mPhoneModel = temp->getPhoneModel( );
1052 syncPhone(); 1083 syncPhone();
1053 } else 1084 } else
1054 syncRemote( temp ); 1085 syncRemote( temp );
1055 1086
1056 } 1087 }
1057 } 1088 }
1058 delete temp; 1089 delete temp;
1059 mBlockSaveFlag = false; 1090 mBlockSaveFlag = false;
1060} 1091}
1061void MainWindow::setDefaultPreferences() 1092void MainWindow::setDefaultPreferences()
1062{ 1093{
@@ -1815,96 +1846,376 @@ void MainWindow::exportVCalendar()
1815 bool createbup = true; 1846 bool createbup = true;
1816 if ( info. exists() ) { 1847 if ( info. exists() ) {
1817 mes = i18n("Save file\nalready exists!\nOld save file from:\n%1\nOverwrite?\n").arg (KGlobal::locale()->formatDateTime(info.lastModified (), true, false ) ); 1848 mes = i18n("Save file\nalready exists!\nOld save file from:\n%1\nOverwrite?\n").arg (KGlobal::locale()->formatDateTime(info.lastModified (), true, false ) );
1818 int result = QMessageBox::warning( this, i18n("KO/Pi: Warning!"),mes, 1849 int result = QMessageBox::warning( this, i18n("KO/Pi: Warning!"),mes,
1819 i18n("Overwrite!"), i18n("Cancel"), 0, 1850 i18n("Overwrite!"), i18n("Cancel"), 0,
1820 0, 1 ); 1851 0, 1 );
1821 if ( result != 0 ) { 1852 if ( result != 0 ) {
1822 createbup = false; 1853 createbup = false;
1823 } 1854 }
1824 } 1855 }
1825 if ( createbup ) { 1856 if ( createbup ) {
1826 if ( mView->exportVCalendar( fn ) ) { 1857 if ( mView->exportVCalendar( fn ) ) {
1827 KOPrefs::instance()->mLastVcalFile = fn; 1858 KOPrefs::instance()->mLastVcalFile = fn;
1828 if ( fn.length() > 20 ) 1859 if ( fn.length() > 20 )
1829 mes = i18n("KO/Pi:Exported to ...%1").arg(fn.right(20)) ; 1860 mes = i18n("KO/Pi:Exported to ...%1").arg(fn.right(20)) ;
1830 else 1861 else
1831 mes = i18n("KO/Pi:Exported to %1").arg(fn ); 1862 mes = i18n("KO/Pi:Exported to %1").arg(fn );
1832 setCaption(mes); 1863 setCaption(mes);
1833 } 1864 }
1834 } 1865 }
1835 1866
1836} 1867}
1837#include <qpushbutton.h> 1868#include <qpushbutton.h>
1838QString MainWindow::getPassword( ) 1869QString MainWindow::getPassword( )
1839{ 1870{
1840 QString retfile = ""; 1871 QString retfile = "";
1841 QDialog dia ( this, "input-dialog", true ); 1872 QDialog dia ( this, "input-dialog", true );
1842 QLineEdit lab ( &dia ); 1873 QLineEdit lab ( &dia );
1843 lab.setEchoMode( QLineEdit::Password ); 1874 lab.setEchoMode( QLineEdit::Password );
1844 QVBoxLayout lay( &dia ); 1875 QVBoxLayout lay( &dia );
1845 lay.setMargin(7); 1876 lay.setMargin(7);
1846 lay.setSpacing(7); 1877 lay.setSpacing(7);
1847 lay.addWidget( &lab); 1878 lay.addWidget( &lab);
1848 dia.setFixedSize( 230,50 ); 1879 dia.setFixedSize( 230,50 );
1849 dia.setCaption( i18n("Enter password") ); 1880 dia.setCaption( i18n("Enter password") );
1850 QPushButton pb ( "OK", &dia); 1881 QPushButton pb ( "OK", &dia);
1851 lay.addWidget( &pb ); 1882 lay.addWidget( &pb );
1852 connect(&pb, SIGNAL( clicked() ), &dia, SLOT ( accept() ) ); 1883 connect(&pb, SIGNAL( clicked() ), &dia, SLOT ( accept() ) );
1853 dia.show(); 1884 dia.show();
1854 int res = dia.exec(); 1885 int res = dia.exec();
1855 if ( res ) 1886 if ( res )
1856 retfile = lab.text(); 1887 retfile = lab.text();
1857 dia.hide(); 1888 dia.hide();
1858 qApp->processEvents(); 1889 qApp->processEvents();
1859 return retfile; 1890 return retfile;
1860 1891
1861} 1892}
1862 1893
1894void MainWindow::enableQuick()
1895{
1896 QString retfile = "";
1897 QDialog dia ( this, "input-dialog", true );
1898 QLineEdit lab ( &dia );
1899 QVBoxLayout lay( &dia );
1900 lab.setText( KOPrefs::instance()->mPassiveSyncPort );
1901 lay.setMargin(7);
1902 lay.setSpacing(7);
1903 QLabel label ( i18n("Port number (Default: 9197)"), &dia );
1904 lay.addWidget( &label);
1905 lay.addWidget( &lab);
1906 dia.setFixedSize( 230,80 );
1907 dia.setCaption( i18n("Enter port for Easy-Pi-Sync") );
1908 QPushButton pb ( "OK", &dia);
1909 lay.addWidget( &pb );
1910 connect(&pb, SIGNAL( clicked() ), &dia, SLOT ( accept() ) );
1911 dia.show();
1912 int res = dia.exec();
1913 if ( res )
1914 retfile = lab.text();
1915 else
1916 return;
1917 dia.hide();
1918 qApp->processEvents();
1919 KOPrefs::instance()->mPassiveSyncPort = retfile;
1920 bool ok;
1921 Q_UINT16 port = retfile.toUInt(&ok);
1922 if ( ! ok ) {
1923 qDebug("no valid port ");
1924 return;
1925 }
1926 qDebug("port %d ", port);
1927 mServerSocket = new KServerSocket ( port ,1 );
1928 qDebug("connected ");
1929 if ( !mServerSocket->ok() ) {
1930 qWarning("Failed to bind to port %d", port);
1931 delete mServerSocket;
1932 mServerSocket = 0;
1933 return;
1934 }
1935 connect( mServerSocket, SIGNAL ( sendFile(QSocket*) ), this, SLOT ( sendFile(QSocket*) ) );
1936 connect( mServerSocket, SIGNAL ( getFile(QSocket*) ), this, SLOT ( getFile(QSocket*) ) );
1937}
1938void MainWindow::sendFile(QSocket* socket)
1939{
1940 setCaption( i18n("Received request for file") );
1941 qDebug("MainWindow::sendFile(QSocket* s) ");
1942 mSyncActionDialog = new QDialog ( this, "input-dialog", true );
1943 mSyncActionDialog->setCaption(i18n("KO/Pi - WARNING"));
1944 QLabel* label = new QLabel( i18n("Synchronizing...\nDo not use\nthis application!\n"), mSyncActionDialog );
1945 QVBoxLayout* lay = new QVBoxLayout( mSyncActionDialog );
1946 lay->addWidget( label);
1947 lay->setMargin(7);
1948 lay->setSpacing(7);
1949 mSyncActionDialog->setFixedSize( 200,100 );
1950 mSyncActionDialog->show();
1951 qApp->processEvents();
1952 qDebug("saving ... ");
1953 save();
1954 QString fileName = defaultFileName();
1955 QFile file( fileName );
1956 if (!file.open( IO_ReadOnly ) ) {
1957 setCaption( i18n("Error open file") );
1958 delete mSyncActionDialog;
1959 mSyncActionDialog = 0;
1960 qDebug("error open cal file ");
1961 return ;
1962
1963 }
1964 setCaption( i18n("Sending file...") );
1965 QTextStream ts( &file );
1966 ts.setCodec( QTextCodec::codecForName("utf8") );
1967 QTextStream os( socket );
1968 os.setCodec( QTextCodec::codecForName("utf8") );
1969 //os.setEncoding( QTextStream::UnicodeUTF8 );
1970 while ( ! ts.atEnd() ) {
1971 os << ts.readLine() << "\n";
1972 }
1973 //os << ts.read();
1974 socket->close();
1975 file.close();
1976 setCaption( i18n("File sent. Waiting to get back synced file") );
1977 qDebug("file sent ");
1978}
1979void MainWindow::getFile(QSocket* socket)
1980{
1981 setCaption( i18n("Receiving synced file...") );
1982 qDebug("MainWindow::sendFile(QSocket* s) ");
1983
1984 QString fileName = defaultFileName();
1985 QFile file( fileName );
1986 if (!file.open( IO_WriteOnly ) ) {
1987 setCaption( i18n("Error open file") );
1988 delete mSyncActionDialog;
1989 mSyncActionDialog = 0;
1990 qDebug("error open cal file ");
1991 return ;
1992
1993 }
1994
1995 mView->setLoadedFileVersion(QDateTime::currentDateTime().addSecs( -1));
1996 QTextStream ts( &file );
1997 ts.setCodec( QTextCodec::codecForName("utf8") );
1998 bool first = true;
1999 while ( socket->canReadLine () || first ) {
2000 first = false;
2001 while ( socket->canReadLine () ) {
2002 ts << socket->readLine ();
2003 }
2004 socket->waitForMore ( 5000 );
2005 }
2006 setCaption( i18n("File received - reloading calendar...") );
2007 file.close();
2008 socket->close();
2009 mView->watchSavedFile();
2010 mView->openCalendar( defaultFileName() );
2011 setCaption( i18n("Easy-Pi-Sync successful!") );
2012 delete mSyncActionDialog;
2013 mSyncActionDialog = 0;
2014
2015
2016}
2017void MainWindow::endConnect()
2018{
2019 setCaption( i18n("No file received - syncing successful") );
2020 delete mSyncActionDialog;
2021 mSyncActionDialog = 0;
2022}
2023void MainWindow::performQuick()
2024{
2025 setCaption( i18n("Please input connection settings") );
2026 QString retfile = "";
2027 QDialog dia ( this, "input-dialog", true );
2028 QLineEdit lab ( &dia );
2029 QVBoxLayout lay( &dia );
2030 QLabel label ( i18n("IP address\n(Example: 192.168.0.40)"), &dia );
2031 lay.addWidget( &label);
2032 lab.setText( KOPrefs::instance()->mActiveSyncIP );
2033 lay.setMargin(7);
2034 lay.setSpacing(7);
2035 lay.addWidget( &lab);
2036 QLabel label2 ( i18n("Port number (Default: 9197)"), &dia );
2037 lay.addWidget( &label2);
2038 QLineEdit lab2 ( &dia );
2039 lab2.setText( KOPrefs::instance()->mActiveSyncPort );
2040 lay.addWidget( &lab2);
2041 dia.setFixedSize( 230,200 );
2042 dia.setCaption( i18n("Enter port for Easy-Pi-Sync ") );
2043 QPushButton pb ( "OK", &dia);
2044 lay.addWidget( &pb );
2045 connect(&pb, SIGNAL( clicked() ), &dia, SLOT ( accept() ) );
2046 dia.show();
2047 int res = dia.exec();
2048 if ( !res ) {
2049 setCaption( i18n("Syncing cancelled!") );
2050 return;
2051 }
2052 dia.hide();
2053 KOPrefs::instance()->mActiveSyncPort = lab2.text();
2054 KOPrefs::instance()->mActiveSyncIP = lab.text();
2055 qApp->processEvents();
2056 performQuickQuick();
2057}
2058
2059void MainWindow::performQuickQuick()
2060{
2061 // setCaption( i18n("") );
2062
2063 bool ok;
2064 Q_UINT16 port = KOPrefs::instance()->mActiveSyncPort.toUInt(&ok);
2065 if ( ! ok ) {
2066 setCaption( i18n("Sorry, no valid port.Syncing cancelled.") );
2067 return;
2068 }
2069 if ( mCommandSocket )
2070 delete mCommandSocket;
2071 mCommandSocket = new QSocket( this );
2072 connect( mCommandSocket, SIGNAL(readyRead()), this, SLOT(readFileFromSocket()) );
2073 QString host = KOPrefs::instance()->mActiveSyncIP;
2074 mCommandSocket->connectToHost( host, port );
2075 QTextStream os( mCommandSocket );
2076 os.setEncoding( QTextStream::UnicodeUTF8 );
2077 os << "GET\r\n";
2078 setCaption( i18n("Sending request for remote file ...") );
2079
2080}
2081void MainWindow::readFileFromSocket()
2082{
2083 setCaption( i18n("Receiving remote file ...") );
2084 qDebug("MainWindow::readFileFromSocket() ");
2085QString fileName;
2086#ifdef _WIN32_
2087 fileName = defaultFileName() +"sync";
2088#else
2089 fileName = "/tmp/kopitempfile.ics";
2090#endif
2091 QFile file( fileName );
2092 if (!file.open( IO_WriteOnly ) ) {
2093 setCaption( i18n("Error: Cannot open temp file for write.") );
2094 qDebug("Error open calender file for writing: %s",fileName.latin1() );
2095 return ;
2096 }
2097
2098 //QTextStream os2( mCommandSocket );
2099 //os2.setEncoding( QTextStream::UnicodeUTF8 );
2100
2101 QTextStream ts( &file );
2102 ts.setCodec( QTextCodec::codecForName("utf8") );
2103 bool first = true;
2104 while ( mCommandSocket->canReadLine () || first) {
2105 first = false;
2106 while ( mCommandSocket->canReadLine () ) {
2107 ts << mCommandSocket->readLine ();
2108 }
2109 mCommandSocket->waitForMore ( 5000 );
2110 }
2111 file.close();
2112 mCommandSocket->close();
2113 delete mCommandSocket;
2114 setCaption( i18n("Remote file saved to temp file.") );
2115 mCommandSocket = 0;
2116 mCurrentSyncProfile = 2 ; // last file
2117 mView->setSyncDevice(KOPrefs::instance()->mSyncProfileNames[mCurrentSyncProfile] );
2118 mView->setSyncName( KOPrefs::instance()->mLocalMachineName );
2119 KConfig config ( locateLocal( "config","ksyncprofilesrc" ) );
2120 KSyncProfile* temp = new KSyncProfile ();
2121 temp->setName(KOPrefs::instance()->mSyncProfileNames[mCurrentSyncProfile]);
2122 temp->readConfig(&config);
2123 KOPrefs::instance()->mAskForPreferences = temp->getAskForPreferences();
2124 KOPrefs::instance()->mSyncAlgoPrefs = temp->getSyncPrefs();
2125 KOPrefs::instance()->mWriteBackFile = temp->getWriteBackFile();
2126 KOPrefs::instance()->mWriteBackExistingOnly = temp->getWriteBackExisting();
2127 KOPrefs::instance()->mWriteBackInFuture = 0;
2128 if ( temp->getWriteBackFuture() )
2129 KOPrefs::instance()->mWriteBackInFuture = temp->getWriteBackFutureWeeks( );
2130 KOPrefs::instance()->mShowSyncSummary = temp->getShowSummaryAfterSync();
2131
2132 setCaption( i18n("Remote file saved to temp file.") );
2133 if ( ! syncWithFile( fileName , true ) ) {
2134 setCaption( i18n("Syncing failed.") );
2135 qDebug("Syncing failed ");
2136 return;
2137 }
2138
2139 mCommandSocket = new QSocket( this );
2140 QString host = KOPrefs::instance()->mActiveSyncIP;
2141 mCommandSocket->connectToHost( KOPrefs::instance()->mActiveSyncIP, KOPrefs::instance()->mActiveSyncPort.toUInt() );
2142
2143 QFile file2( fileName );
2144 if (!file2.open( IO_ReadOnly ) ) {
2145 setCaption( i18n("Error: Cannot open temp file for read.") );
2146 qDebug("error open cal file ");
2147 return ;
2148
2149 }
2150 setCaption( i18n("Sending back synced file...") );
2151 QTextStream ts2( &file2 );
2152 ts2.setCodec( QTextCodec::codecForName("utf8") );
2153 QTextStream os2( mCommandSocket );
2154 os2.setCodec( QTextCodec::codecForName("utf8") );
2155 //os.setEncoding( QTextStream::UnicodeUTF8 );
2156 if ( KOPrefs::instance()->mWriteBackFile ) {
2157 os2 << "PUT\r\n";
2158 while ( ! ts2.atEnd() ) {
2159 os2 << ts2.readLine() << "\n";
2160 }
2161 } else {
2162 os2 << "STOP\r\n";
2163 }
2164 mCommandSocket->close();
2165 file.close();
2166 delete mCommandSocket;
2167 mCommandSocket = 0;
2168 qDebug("Syncing succesful! ");
2169 setCaption( i18n("Easy-Pi-Sync succesful!") );
2170
2171
2172}
2173
1863void MainWindow::syncLocalFile() 2174void MainWindow::syncLocalFile()
1864{ 2175{
1865 2176
1866 QString fn =KOPrefs::instance()->mLastSyncedLocalFile; 2177 QString fn =KOPrefs::instance()->mLastSyncedLocalFile;
1867 2178
1868 fn =KFileDialog:: getOpenFileName( fn, i18n("Sync filename(*.ics/*.vcs)"), this ); 2179 fn =KFileDialog:: getOpenFileName( fn, i18n("Sync filename(*.ics/*.vcs)"), this );
1869 if ( fn == "" ) 2180 if ( fn == "" )
1870 return; 2181 return;
1871 //mView->setSyncDevice("local-file" ); 2182 //mView->setSyncDevice("local-file" );
1872 if ( syncWithFile( fn, false ) ) { 2183 if ( syncWithFile( fn, false ) ) {
1873 // Event* e = mView->getLastSyncEvent(); 2184 // Event* e = mView->getLastSyncEvent();
1874// e->setReadOnly( false ); 2185// e->setReadOnly( false );
1875// e->setLocation( i18n("Local file: ")+ KOPrefs::instance()->mLastSyncedLocalFile); 2186// e->setLocation( i18n("Local file: ")+ KOPrefs::instance()->mLastSyncedLocalFile);
1876// e->setReadOnly( true ); 2187// e->setReadOnly( true );
1877 } 2188 }
1878 2189
1879} 2190}
1880 2191
1881bool MainWindow::syncWithFile( QString fn , bool quick ) 2192bool MainWindow::syncWithFile( QString fn , bool quick )
1882{ 2193{
1883 bool ret = false; 2194 bool ret = false;
1884 QFileInfo info; 2195 QFileInfo info;
1885 info.setFile( fn ); 2196 info.setFile( fn );
1886 QString mess; 2197 QString mess;
1887 bool loadbup = true; 2198 bool loadbup = true;
1888 if ( !info. exists() ) { 2199 if ( !info. exists() ) {
1889 mess = i18n( "Sync file \n...%1\ndoes not exist!\nNothing synced!\n").arg(fn.right( 30) ); 2200 mess = i18n( "Sync file \n...%1\ndoes not exist!\nNothing synced!\n").arg(fn.right( 30) );
1890 int result = QMessageBox::warning( this, i18n("KO/Pi: Warning!"), 2201 int result = QMessageBox::warning( this, i18n("KO/Pi: Warning!"),
1891 mess ); 2202 mess );
1892 return ret; 2203 return ret;
1893 } 2204 }
1894 int result = 0; 2205 int result = 0;
1895 if ( !quick ) { 2206 if ( !quick ) {
1896 mess = i18n("Sync with file \n...%1\nfrom:\n%2\n").arg(fn.right( 25)).arg(KGlobal::locale()->formatDateTime(info.lastModified (), true, false )); 2207 mess = i18n("Sync with file \n...%1\nfrom:\n%2\n").arg(fn.right( 25)).arg(KGlobal::locale()->formatDateTime(info.lastModified (), true, false ));
1897 result = QMessageBox::warning( this, i18n("KO/Pi: Warning!"), 2208 result = QMessageBox::warning( this, i18n("KO/Pi: Warning!"),
1898 mess, 2209 mess,
1899 i18n("Sync"), i18n("Cancel"), 0, 2210 i18n("Sync"), i18n("Cancel"), 0,
1900 0, 1 ); 2211 0, 1 );
1901 if ( result ) 2212 if ( result )
1902 return false; 2213 return false;
1903 } 2214 }
1904 if ( KOPrefs::instance()->mAskForPreferences ) 2215 if ( KOPrefs::instance()->mAskForPreferences )
1905 mView->edit_sync_options(); 2216 mView->edit_sync_options();
1906 if ( result == 0 ) { 2217 if ( result == 0 ) {
1907 //qDebug("Now sycing ... "); 2218 //qDebug("Now sycing ... ");
1908 if ( ret = mView->syncCalendar( fn, KOPrefs::instance()->mSyncAlgoPrefs ) ) 2219 if ( ret = mView->syncCalendar( fn, KOPrefs::instance()->mSyncAlgoPrefs ) )
1909 setCaption( i18n("Synchronization successful") ); 2220 setCaption( i18n("Synchronization successful") );
1910 else 2221 else
diff --git a/korganizer/mainwindow.h b/korganizer/mainwindow.h
index 47a7a90..58081f6 100644
--- a/korganizer/mainwindow.h
+++ b/korganizer/mainwindow.h
@@ -1,123 +1,186 @@
1#ifndef KORGE_MAINWINDOW_H 1#ifndef KORGE_MAINWINDOW_H
2#define KORGE_MAINWINDOW_H 2#define KORGE_MAINWINDOW_H
3 3
4#include <qmainwindow.h> 4#include <qmainwindow.h>
5#include <qtimer.h> 5#include <qtimer.h>
6#include <qdict.h> 6#include <qdict.h>
7#include <qregexp.h>
7 8
8#include <libkcal/incidence.h> 9#include <libkcal/incidence.h>
9#include "simplealarmclient.h" 10#include "simplealarmclient.h"
10 11
11class QAction; 12class QAction;
12class CalendarView; 13class CalendarView;
13class KSyncProfile; 14class KSyncProfile;
14#ifdef DESKTOP_VERSION 15#ifdef DESKTOP_VERSION
15 16
16#define QPEToolBar QToolBar 17#define QPEToolBar QToolBar
17#define QPEMenuBar QMenuBar 18#define QPEMenuBar QMenuBar
18#endif 19#endif
19class QPEToolBar; 20class QPEToolBar;
21#include <qserversocket.h>
22#include <qsocket.h>
23#include <qnetworkprotocol.h>
24
25class KServerSocket : public QServerSocket
26{
27 Q_OBJECT
28
29public:
30 KServerSocket ( Q_UINT16 port, int backlog = 0, QObject * parent=0, const char * name=0 ) :
31 QServerSocket( port, backlog, parent, name ){;};
32 void newConnection ( int socket )
33 {
34 qDebug("KServerSocket:New connection %d ", socket);
35 QSocket* s = new QSocket( this );
36 connect( s, SIGNAL(readyRead()), this, SLOT(readClient()) );
37 connect( s, SIGNAL(delayedCloseFinished()), this, SLOT(discardClient()) );
38 s->setSocket( socket );
39 }
40
41signals:
42 void sendFile(QSocket*);
43 void getFile(QSocket*);
44 void endConnect();
45private slots:
46 void discardClient()
47 {
48 QSocket* socket = (QSocket*)sender();
49 delete socket;
50 emit endConnect();
51 }
52 void readClient()
53 {
54 qDebug("readClient() ");
55 QSocket* socket = (QSocket*)sender();
56 if ( socket->canReadLine() ) {
57 QStringList tokens = QStringList::split( QRegExp("[ \r\n][ \r\n]*"), socket->readLine() );
58 if ( tokens[0] == "GET" ) {
59 emit sendFile( socket );
60 }
61 if ( tokens[0] == "PUT" ) {
62 emit getFile( socket );
63 }
64 if ( tokens[0] == "STOP" ) {
65 emit endConnect();
66 }
67 }
68 }
69};
70
20 71
21namespace KCal { 72namespace KCal {
22class CalendarLocal; 73class CalendarLocal;
23} 74}
24 75
25using namespace KCal; 76using namespace KCal;
26 77
27class MainWindow : public QMainWindow 78class MainWindow : public QMainWindow
28{ 79{
29 Q_OBJECT 80 Q_OBJECT
30 public: 81 public:
31 MainWindow( QWidget *parent = 0, const char *name = 0, QString command = ""); 82 MainWindow( QWidget *parent = 0, const char *name = 0, QString command = "");
32 ~MainWindow(); 83 ~MainWindow();
33 public slots: 84 public slots:
34 virtual void showMaximized (); 85 virtual void showMaximized ();
35 void configureAgenda( int ); 86 void configureAgenda( int );
36 void recieve( const QCString& msg, const QByteArray& data ); 87 void recieve( const QCString& msg, const QByteArray& data );
37 static QString defaultFileName(); 88 static QString defaultFileName();
38 static QString resourcePath(); 89 static QString resourcePath();
39 protected slots: 90 protected slots:
40 void setCaptionToDates(); 91 void setCaptionToDates();
41 int ringSync(); 92 int ringSync();
42 void multiSync( bool askforPrefs = false ); 93 void multiSync( bool askforPrefs = false );
43 void about(); 94 void about();
44 void licence(); 95 void licence();
45 void faq(); 96 void faq();
46 void usertrans(); 97 void usertrans();
47 void features(); 98 void features();
48 void synchowto(); 99 void synchowto();
49 void whatsNew(); 100 void whatsNew();
50 void keyBindings(); 101 void keyBindings();
51 void aboutAutoSaving();; 102 void aboutAutoSaving();;
52 void aboutKnownBugs(); 103 void aboutKnownBugs();
53 104
54 void processIncidenceSelection( Incidence * ); 105 void processIncidenceSelection( Incidence * );
55 106
56 void importQtopia(); 107 void importQtopia();
57 void importBday(); 108 void importBday();
58 void importOL(); 109 void importOL();
59 void importIcal(); 110 void importIcal();
60 void importFile( QString, bool ); 111 void importFile( QString, bool );
61 void quickImportIcal(); 112 void quickImportIcal();
62 113
63 void slotModifiedChanged( bool ); 114 void slotModifiedChanged( bool );
64 115
65 void save(); 116 void save();
66 void configureToolBar( int ); 117 void configureToolBar( int );
67 void printSel(); 118 void printSel();
68 void printCal(); 119 void printCal();
69 void saveCalendar(); 120 void saveCalendar();
70 void loadCalendar(); 121 void loadCalendar();
71 void exportVCalendar(); 122 void exportVCalendar();
72 void fillFilterMenu(); 123 void fillFilterMenu();
73 void selectFilter( int ); 124 void selectFilter( int );
74 125
75 void slotSyncMenu( int ); 126 void slotSyncMenu( int );
76 void syncSSH(); 127 void syncSSH();
77 void confSync(); 128 void confSync();
78 void syncSharp(); 129 void syncSharp();
79 void syncPhone(); 130 void syncPhone();
80 void syncLocalFile(); 131 void syncLocalFile();
81 bool syncWithFile( QString, bool ); 132 bool syncWithFile( QString, bool );
82 void quickSyncLocalFile(); 133 void quickSyncLocalFile();
83 134
84 135
85 protected: 136 protected:
86 void displayText( QString, QString); 137 void displayText( QString, QString);
87 void displayFile( QString, QString); 138 void displayFile( QString, QString);
88 139
89 void enableIncidenceActions( bool ); 140 void enableIncidenceActions( bool );
90 141
142 private slots:
143 void fillSyncMenu();
144 void sendFile(QSocket* s);
145 void getFile(QSocket* socket);
146 void readFileFromSocket();
147 void endConnect();
91 private: 148 private:
149 QSocket* mCommandSocket;
150 KServerSocket * mServerSocket;
92 bool mClosed; 151 bool mClosed;
93 void saveOnClose(); 152 void saveOnClose();
94 int mCurrentSyncProfile; 153 int mCurrentSyncProfile;
154 void enableQuick();
155 void performQuick();
156 void performQuickQuick();
95 void syncRemote( KSyncProfile* , bool ask = true); 157 void syncRemote( KSyncProfile* , bool ask = true);
96 void fillSyncMenu();
97 bool mFlagKeyPressed; 158 bool mFlagKeyPressed;
98 bool mBlockAtStartup; 159 bool mBlockAtStartup;
99 QPEToolBar *iconToolBar; 160 QPEToolBar *iconToolBar;
100 void initActions(); 161 void initActions();
101 void setDefaultPreferences(); 162 void setDefaultPreferences();
102 void keyPressEvent ( QKeyEvent * ) ; 163 void keyPressEvent ( QKeyEvent * ) ;
103 void keyReleaseEvent ( QKeyEvent * ) ; 164 void keyReleaseEvent ( QKeyEvent * ) ;
104 QPopupMenu *configureToolBarMenu; 165 QPopupMenu *configureToolBarMenu;
105 QPopupMenu *selectFilterMenu; 166 QPopupMenu *selectFilterMenu;
106 QPopupMenu *configureAgendaMenu, *syncMenu; 167 QPopupMenu *configureAgendaMenu, *syncMenu;
107 CalendarLocal *mCalendar; 168 CalendarLocal *mCalendar;
108 CalendarView *mView; 169 CalendarView *mView;
109 QString getPassword(); 170 QString getPassword();
110 QAction *mNewSubTodoAction; 171 QAction *mNewSubTodoAction;
111 172
112 QAction *mShowAction; 173 QAction *mShowAction;
113 QAction *mEditAction; 174 QAction *mEditAction;
114 QAction *mDeleteAction; 175 QAction *mDeleteAction;
115 void closeEvent( QCloseEvent* ce ); 176 void closeEvent( QCloseEvent* ce );
116 SimpleAlarmClient mAlarmClient; 177 SimpleAlarmClient mAlarmClient;
117 QTimer mSaveTimer; 178 QTimer mSaveTimer;
118 bool mBlockSaveFlag; 179 bool mBlockSaveFlag;
119 bool mCalendarModifiedFlag; 180 bool mCalendarModifiedFlag;
120 QPixmap loadPixmap( QString ); 181 QPixmap loadPixmap( QString );
182 QDialog * mSyncActionDialog;
121}; 183};
122 184
185
123#endif 186#endif