summaryrefslogtreecommitdiffabout
authorzautrix <zautrix>2004-09-23 08:26:01 (UTC)
committer zautrix <zautrix>2004-09-23 08:26:01 (UTC)
commita9e235027e0c92fb53462e968dee2b43228d7984 (patch) (unidiff)
tree91565646ef5eeccd0f51a679add40499586abf8e
parente395b9a15f5047582c17665de85d28dad64b8a8e (diff)
downloadkdepimpi-a9e235027e0c92fb53462e968dee2b43228d7984.zip
kdepimpi-a9e235027e0c92fb53462e968dee2b43228d7984.tar.gz
kdepimpi-a9e235027e0c92fb53462e968dee2b43228d7984.tar.bz2
sync fixes
Diffstat (more/less context) (ignore whitespace changes)
-rw-r--r--korganizer/mainwindow.cpp52
-rw-r--r--korganizer/mainwindow.h2
2 files changed, 37 insertions, 17 deletions
diff --git a/korganizer/mainwindow.cpp b/korganizer/mainwindow.cpp
index 460bbdc..f4ac0d6 100644
--- a/korganizer/mainwindow.cpp
+++ b/korganizer/mainwindow.cpp
@@ -1,2541 +1,2559 @@
1#include <stdlib.h> 1#include <stdlib.h>
2 2
3#include <qaction.h> 3#include <qaction.h>
4#include <qpopupmenu.h> 4#include <qpopupmenu.h>
5#include <qpainter.h> 5#include <qpainter.h>
6#include <qwhatsthis.h> 6#include <qwhatsthis.h>
7#include <qpushbutton.h> 7#include <qpushbutton.h>
8#include <qmessagebox.h> 8#include <qmessagebox.h>
9#include <qlineedit.h> 9#include <qlineedit.h>
10#include <qtextcodec.h> 10#include <qtextcodec.h>
11#include <qfile.h> 11#include <qfile.h>
12#include <qdir.h> 12#include <qdir.h>
13#include <qapp.h> 13#include <qapp.h>
14#include <qfileinfo.h> 14#include <qfileinfo.h>
15#include <qlabel.h> 15#include <qlabel.h>
16#include <qmap.h> 16#include <qmap.h>
17#include <qwmatrix.h> 17#include <qwmatrix.h>
18#include <qtextbrowser.h> 18#include <qtextbrowser.h>
19#include <qtextstream.h> 19#include <qtextstream.h>
20#ifndef DESKTOP_VERSION 20#ifndef DESKTOP_VERSION
21#include <qpe/global.h> 21#include <qpe/global.h>
22#include <qpe/qpemenubar.h> 22#include <qpe/qpemenubar.h>
23#include <qpe/qpetoolbar.h> 23#include <qpe/qpetoolbar.h>
24#include <qpe/resource.h> 24#include <qpe/resource.h>
25#include <qpe/qpeapplication.h> 25#include <qpe/qpeapplication.h>
26#include <qtopia/alarmserver.h> 26#include <qtopia/alarmserver.h>
27#include <qtopia/qcopenvelope_qws.h> 27#include <qtopia/qcopenvelope_qws.h>
28#include <unistd.h> // for sleep 28#include <unistd.h> // for sleep
29#else 29#else
30#include <qmenubar.h> 30#include <qmenubar.h>
31#include <qtoolbar.h> 31#include <qtoolbar.h>
32#include <qapplication.h> 32#include <qapplication.h>
33//#include <resource.h> 33//#include <resource.h>
34 34
35#endif 35#endif
36#include <libkcal/calendarlocal.h> 36#include <libkcal/calendarlocal.h>
37#include <libkcal/todo.h> 37#include <libkcal/todo.h>
38#include <libkdepim/ksyncprofile.h> 38#include <libkdepim/ksyncprofile.h>
39#include <libkcal/kincidenceformatter.h> 39#include <libkcal/kincidenceformatter.h>
40#include <libkdepim/kpimglobalprefs.h> 40#include <libkdepim/kpimglobalprefs.h>
41 41
42#include "calendarview.h" 42#include "calendarview.h"
43#include "koviewmanager.h" 43#include "koviewmanager.h"
44#include "datenavigator.h" 44#include "datenavigator.h"
45#include "koagendaview.h" 45#include "koagendaview.h"
46#include "koagenda.h" 46#include "koagenda.h"
47#include "kodialogmanager.h" 47#include "kodialogmanager.h"
48#include "kdialogbase.h" 48#include "kdialogbase.h"
49#include "kapplication.h" 49#include "kapplication.h"
50#include "kofilterview.h" 50#include "kofilterview.h"
51#include "kstandarddirs.h" 51#include "kstandarddirs.h"
52#include "koprefs.h" 52#include "koprefs.h"
53#include "kfiledialog.h" 53#include "kfiledialog.h"
54#include "koglobals.h" 54#include "koglobals.h"
55#include "kglobal.h" 55#include "kglobal.h"
56#include "klocale.h" 56#include "klocale.h"
57#include "kconfig.h" 57#include "kconfig.h"
58#include "simplealarmclient.h" 58#include "simplealarmclient.h"
59#include "externalapphandler.h" 59#include "externalapphandler.h"
60 60
61using namespace KCal; 61using namespace KCal;
62#ifndef _WIN32_ 62#ifndef _WIN32_
63#include <unistd.h> 63#include <unistd.h>
64#else 64#else
65#include "koimportoldialog.h" 65#include "koimportoldialog.h"
66#endif 66#endif
67#include "mainwindow.h" 67#include "mainwindow.h"
68 68
69int globalFlagBlockStartup; 69int globalFlagBlockStartup;
70MainWindow::MainWindow( QWidget *parent, const char *name, QString msg) : 70MainWindow::MainWindow( QWidget *parent, const char *name, QString msg) :
71 QMainWindow( parent, name ) 71 QMainWindow( parent, name )
72{ 72{
73 73
74#ifdef DESKTOP_VERSION 74#ifdef DESKTOP_VERSION
75 setFont( QFont("Arial"), 14 ); 75 setFont( QFont("Arial"), 14 );
76#endif 76#endif
77 mCommandSocket = 0; 77 mCommandSocket = 0;
78 mCommandSocketFinish = 0; 78 mCommandSocketFinish = 0;
79 mSyncActionDialog = 0; 79 mSyncActionDialog = 0;
80 mServerSocket = 0; 80 mServerSocket = 0;
81 mClosed = false; 81 mClosed = false;
82 //QString confFile = KStandardDirs::appDir() + "config/korganizerrc"; 82 //QString confFile = KStandardDirs::appDir() + "config/korganizerrc";
83 QString confFile = locateLocal("config","korganizerrc"); 83 QString confFile = locateLocal("config","korganizerrc");
84 QFileInfo finf ( confFile ); 84 QFileInfo finf ( confFile );
85 bool showWarning = !finf.exists(); 85 bool showWarning = !finf.exists();
86 setIcon(SmallIcon( "ko24" ) ); 86 setIcon(SmallIcon( "ko24" ) );
87 mBlockAtStartup = true; 87 mBlockAtStartup = true;
88 mFlagKeyPressed = false; 88 mFlagKeyPressed = false;
89 setCaption("KOrganizer/Pi"); 89 setCaption("KOrganizer/Pi");
90 KOPrefs *p = KOPrefs::instance(); 90 KOPrefs *p = KOPrefs::instance();
91 KPimGlobalPrefs::instance()->setGlobalConfig(); 91 KPimGlobalPrefs::instance()->setGlobalConfig();
92 // if ( QApplication::desktop()->height() > 480 ) { 92 // if ( QApplication::desktop()->height() > 480 ) {
93// if ( p->mHourSize == 4 ) 93// if ( p->mHourSize == 4 )
94// p->mHourSize = 6; 94// p->mHourSize = 6;
95// } 95// }
96 if ( p->mHourSize > 18 ) 96 if ( p->mHourSize > 18 )
97 p->mHourSize = 18; 97 p->mHourSize = 18;
98 QMainWindow::ToolBarDock tbd; 98 QMainWindow::ToolBarDock tbd;
99 if ( p->mToolBarHor ) { 99 if ( p->mToolBarHor ) {
100 if ( p->mToolBarUp ) 100 if ( p->mToolBarUp )
101 tbd = Bottom; 101 tbd = Bottom;
102 else 102 else
103 tbd = Top; 103 tbd = Top;
104 } 104 }
105 else { 105 else {
106 if ( p->mToolBarUp ) 106 if ( p->mToolBarUp )
107 tbd = Right; 107 tbd = Right;
108 else 108 else
109 tbd = Left; 109 tbd = Left;
110 } 110 }
111 if ( KOPrefs::instance()->mUseAppColors ) 111 if ( KOPrefs::instance()->mUseAppColors )
112 QApplication::setPalette( QPalette (KOPrefs::instance()->mAppColor1, KOPrefs::instance()->mAppColor2), true ); 112 QApplication::setPalette( QPalette (KOPrefs::instance()->mAppColor1, KOPrefs::instance()->mAppColor2), true );
113 globalFlagBlockStartup = 1; 113 globalFlagBlockStartup = 1;
114 iconToolBar = new QPEToolBar( this ); 114 iconToolBar = new QPEToolBar( this );
115 addToolBar (iconToolBar , tbd ); 115 addToolBar (iconToolBar , tbd );
116 mBlockSaveFlag = false; 116 mBlockSaveFlag = false;
117 mCalendarModifiedFlag = false; 117 mCalendarModifiedFlag = false;
118 118
119 QLabel* splash = new QLabel(i18n("KO/Pi is starting ... "), this ); 119 QLabel* splash = new QLabel(i18n("KO/Pi is starting ... "), this );
120 splash->setAlignment ( AlignCenter ); 120 splash->setAlignment ( AlignCenter );
121 setCentralWidget( splash ); 121 setCentralWidget( splash );
122#ifndef DESKTOP_VERSION 122#ifndef DESKTOP_VERSION
123 showMaximized(); 123 showMaximized();
124#endif 124#endif
125 //qDebug("Mainwidget x %d y %d w %d h %d", x(), y(), width(), height ()); 125 //qDebug("Mainwidget x %d y %d w %d h %d", x(), y(), width(), height ());
126 setDefaultPreferences(); 126 setDefaultPreferences();
127 mCalendar = new CalendarLocal(); 127 mCalendar = new CalendarLocal();
128 mView = new CalendarView( mCalendar, this,"mCalendar " ); 128 mView = new CalendarView( mCalendar, this,"mCalendar " );
129 mView->hide(); 129 mView->hide();
130 //mView->resize(splash->size() ); 130 //mView->resize(splash->size() );
131 initActions(); 131 initActions();
132#ifndef DESKTOP_VERSION 132#ifndef DESKTOP_VERSION
133 iconToolBar->show(); 133 iconToolBar->show();
134 qApp->processEvents(); 134 qApp->processEvents();
135#endif 135#endif
136 //qDebug("Splashwidget x %d y %d w %d h %d", splash-> x(), splash->y(), splash->width(),splash-> height ()); 136 //qDebug("Splashwidget x %d y %d w %d h %d", splash-> x(), splash->y(), splash->width(),splash-> height ());
137 int vh = height() ; 137 int vh = height() ;
138 int vw = width(); 138 int vw = width();
139 //qDebug("Toolbar hei %d ",iconToolBar->height() ); 139 //qDebug("Toolbar hei %d ",iconToolBar->height() );
140 if ( iconToolBar->orientation () == Qt:: Horizontal ) { 140 if ( iconToolBar->orientation () == Qt:: Horizontal ) {
141 vh -= iconToolBar->height(); 141 vh -= iconToolBar->height();
142 } else { 142 } else {
143 vw -= iconToolBar->height(); 143 vw -= iconToolBar->height();
144 } 144 }
145 //mView->setMaximumSize( splash->size() ); 145 //mView->setMaximumSize( splash->size() );
146 //mView->resize( splash->size() ); 146 //mView->resize( splash->size() );
147 //qDebug("MainView x %d y %d w %d h %d", mView->x(),mView-> y(), mView->width(), mView->height ()); 147 //qDebug("MainView x %d y %d w %d h %d", mView->x(),mView-> y(), mView->width(), mView->height ());
148 mView->readSettings(); 148 mView->readSettings();
149 bool oldOpened = false; 149 bool oldOpened = false;
150 bool newFile = false; 150 bool newFile = false;
151 if( !QFile::exists( defaultFileName() ) ) { 151 if( !QFile::exists( defaultFileName() ) ) {
152 QFileInfo finfo ( defaultFileName() ); 152 QFileInfo finfo ( defaultFileName() );
153 QString oldFile = QDir::convertSeparators( QDir::homeDirPath()+"/Applications/korganizer/mycalendar.ics"); 153 QString oldFile = QDir::convertSeparators( QDir::homeDirPath()+"/Applications/korganizer/mycalendar.ics");
154 qDebug("oldfile %s ", oldFile.latin1()); 154 qDebug("oldfile %s ", oldFile.latin1());
155 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"; 155 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";
156 finfo.setFile( oldFile ); 156 finfo.setFile( oldFile );
157 if (finfo.exists() ) { 157 if (finfo.exists() ) {
158 KMessageBox::information( this, message); 158 KMessageBox::information( this, message);
159 mView->openCalendar( oldFile ); 159 mView->openCalendar( oldFile );
160 qApp->processEvents(); 160 qApp->processEvents();
161 } else { 161 } else {
162 oldFile = QDir::convertSeparators( QDir::homeDirPath()+"/korganizer/mycalendar.ics"); 162 oldFile = QDir::convertSeparators( QDir::homeDirPath()+"/korganizer/mycalendar.ics");
163 finfo.setFile( oldFile ); 163 finfo.setFile( oldFile );
164 if (finfo.exists() ) { 164 if (finfo.exists() ) {
165 KMessageBox::information( this, message); 165 KMessageBox::information( this, message);
166 mView->openCalendar( oldFile ); 166 mView->openCalendar( oldFile );
167 qApp->processEvents(); 167 qApp->processEvents();
168 } 168 }
169 } 169 }
170 mView->saveCalendar( defaultFileName() ); 170 mView->saveCalendar( defaultFileName() );
171 newFile = true; 171 newFile = true;
172 } 172 }
173 173
174 QTime neededSaveTime = QDateTime::currentDateTime().time(); 174 QTime neededSaveTime = QDateTime::currentDateTime().time();
175 if ( ! oldOpened ) 175 if ( ! oldOpened )
176 mView->openCalendar( defaultFileName() ); 176 mView->openCalendar( defaultFileName() );
177 int msNeeded = neededSaveTime.msecsTo( QDateTime::currentDateTime().time() ); 177 int msNeeded = neededSaveTime.msecsTo( QDateTime::currentDateTime().time() );
178 qDebug("KO: Calendar loading time: %d ms",msNeeded ); 178 qDebug("KO: Calendar loading time: %d ms",msNeeded );
179 179
180 if ( KOPrefs::instance()->mLanguageChanged ) { 180 if ( KOPrefs::instance()->mLanguageChanged ) {
181 KOPrefs::instance()->setCategoryDefaults(); 181 KOPrefs::instance()->setCategoryDefaults();
182 int count = mView->addCategories(); 182 int count = mView->addCategories();
183 KOPrefs::instance()->mLanguageChanged = false; 183 KOPrefs::instance()->mLanguageChanged = false;
184 } 184 }
185 processIncidenceSelection( 0 ); 185 processIncidenceSelection( 0 );
186 connect( mView, SIGNAL( incidenceSelected( Incidence * ) ), 186 connect( mView, SIGNAL( incidenceSelected( Incidence * ) ),
187 SLOT( processIncidenceSelection( Incidence * ) ) ); 187 SLOT( processIncidenceSelection( Incidence * ) ) );
188 connect( mView, SIGNAL( modifiedChanged( bool ) ), 188 connect( mView, SIGNAL( modifiedChanged( bool ) ),
189 SLOT( slotModifiedChanged( bool ) ) ); 189 SLOT( slotModifiedChanged( bool ) ) );
190 190
191 191
192 connect( &mSaveTimer, SIGNAL( timeout() ), SLOT( save() ) ); 192 connect( &mSaveTimer, SIGNAL( timeout() ), SLOT( save() ) );
193 mView->setModified( false ); 193 mView->setModified( false );
194 mBlockAtStartup = false; 194 mBlockAtStartup = false;
195 mView->setModified( false ); 195 mView->setModified( false );
196 setCentralWidget( mView ); 196 setCentralWidget( mView );
197 globalFlagBlockStartup = 0; 197 globalFlagBlockStartup = 0;
198 mView->show(); 198 mView->show();
199 delete splash; 199 delete splash;
200 if ( newFile ) 200 if ( newFile )
201 mView->updateConfig(); 201 mView->updateConfig();
202 // qApp->processEvents(); 202 // qApp->processEvents();
203 //qDebug("MainView x %d y %d w %d h %d", mView->x(),mView-> y(), mView->width(), mView->height ()); 203 //qDebug("MainView x %d y %d w %d h %d", mView->x(),mView-> y(), mView->width(), mView->height ());
204 fillSyncMenu(); 204 fillSyncMenu();
205 mView->viewManager()->agendaView()->setStartHour( KOPrefs::instance()->mDayBegins ); 205 mView->viewManager()->agendaView()->setStartHour( KOPrefs::instance()->mDayBegins );
206 if ( showWarning ) { 206 if ( showWarning ) {
207 KMessageBox::information( this, 207 KMessageBox::information( this,
208 "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"); 208 "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");
209 qApp->processEvents(); 209 qApp->processEvents();
210 mView->dialogManager()->showSyncOptions(); 210 mView->dialogManager()->showSyncOptions();
211 } 211 }
212 212
213 //US listen for result adressed from Ka/Pi 213 //US listen for result adressed from Ka/Pi
214#ifndef DESKTOP_VERSION 214#ifndef DESKTOP_VERSION
215 connect(qApp, SIGNAL (appMessage ( const QCString &, const QByteArray & )), ExternalAppHandler::instance(), SLOT (appMessage ( const QCString &, const QByteArray & ))); 215 connect(qApp, SIGNAL (appMessage ( const QCString &, const QByteArray & )), ExternalAppHandler::instance(), SLOT (appMessage ( const QCString &, const QByteArray & )));
216#endif 216#endif
217} 217}
218MainWindow::~MainWindow() 218MainWindow::~MainWindow()
219{ 219{
220 //qDebug("MainWindow::~MainWindow() "); 220 //qDebug("MainWindow::~MainWindow() ");
221 //save toolbar location 221 //save toolbar location
222 delete mServerSocket; 222 delete mServerSocket;
223 delete mCalendar; 223 delete mCalendar;
224 delete KOPrefs::instance(); 224 delete KOPrefs::instance();
225 delete KIncidenceFormatter::instance(); 225 delete KIncidenceFormatter::instance();
226 226
227 227
228} 228}
229void MainWindow::showMaximized () 229void MainWindow::showMaximized ()
230{ 230{
231#ifndef DESKTOP_VERSION 231#ifndef DESKTOP_VERSION
232 if ( ! globalFlagBlockStartup ) 232 if ( ! globalFlagBlockStartup )
233 if ( mClosed ) 233 if ( mClosed )
234 mView->goToday(); 234 mView->goToday();
235#endif 235#endif
236 QWidget::showMaximized () ; 236 QWidget::showMaximized () ;
237 mClosed = false; 237 mClosed = false;
238} 238}
239void MainWindow::closeEvent( QCloseEvent* ce ) 239void MainWindow::closeEvent( QCloseEvent* ce )
240{ 240{
241 241
242 242
243 243
244 if ( ! KOPrefs::instance()->mAskForQuit ) { 244 if ( ! KOPrefs::instance()->mAskForQuit ) {
245 saveOnClose(); 245 saveOnClose();
246 mClosed = true; 246 mClosed = true;
247 ce->accept(); 247 ce->accept();
248 return; 248 return;
249 249
250 } 250 }
251 251
252 switch( QMessageBox::information( this, "KO/Pi", 252 switch( QMessageBox::information( this, "KO/Pi",
253 i18n("Do you really want\nto close KO/Pi?"), 253 i18n("Do you really want\nto close KO/Pi?"),
254 i18n("Close"), i18n("No"), 254 i18n("Close"), i18n("No"),
255 0, 0 ) ) { 255 0, 0 ) ) {
256 case 0: 256 case 0:
257 saveOnClose(); 257 saveOnClose();
258 mClosed = true; 258 mClosed = true;
259 ce->accept(); 259 ce->accept();
260 break; 260 break;
261 case 1: 261 case 1:
262 ce->ignore(); 262 ce->ignore();
263 break; 263 break;
264 case 2: 264 case 2:
265 265
266 default: 266 default:
267 break; 267 break;
268 } 268 }
269 269
270 270
271} 271}
272 272
273void MainWindow::recieve( const QCString& cmsg, const QByteArray& data ) 273void MainWindow::recieve( const QCString& cmsg, const QByteArray& data )
274{ 274{
275 QDataStream stream( data, IO_ReadOnly ); 275 QDataStream stream( data, IO_ReadOnly );
276 // QMessageBox::about( this, "About KOrganizer/Pi", "*" +msg +"*" ); 276 // QMessageBox::about( this, "About KOrganizer/Pi", "*" +msg +"*" );
277 //QString datamess; 277 //QString datamess;
278 //qDebug("message "); 278 //qDebug("message ");
279 qDebug("KO: QCOP message received: %s ", cmsg.data() ); 279 qDebug("KO: QCOP message received: %s ", cmsg.data() );
280 280
281 if ( cmsg == "-writeFile" ) { 281 if ( cmsg == "-writeFile" ) {
282 // I made from the "-writeFile" an "-writeAlarm" 282 // I made from the "-writeFile" an "-writeAlarm"
283 mView->viewManager()->showWhatsNextView(); 283 mView->viewManager()->showWhatsNextView();
284 mCalendar->checkAlarmForIncidence( 0, true); 284 mCalendar->checkAlarmForIncidence( 0, true);
285 showMaximized(); 285 showMaximized();
286 raise(); 286 raise();
287 return; 287 return;
288 } 288 }
289 289
290 if ( cmsg == "-writeFile" ) { 290 if ( cmsg == "-writeFile" ) {
291 // I made from the "-writeFile" an "-writeAlarm" 291 // I made from the "-writeFile" an "-writeAlarm"
292 mView->viewManager()->showWhatsNextView(); 292 mView->viewManager()->showWhatsNextView();
293 mCalendar->checkAlarmForIncidence( 0, true); 293 mCalendar->checkAlarmForIncidence( 0, true);
294 showMaximized(); 294 showMaximized();
295 raise(); 295 raise();
296 return; 296 return;
297 297
298 } 298 }
299 if ( cmsg == "-writeFileSilent" ) { 299 if ( cmsg == "-writeFileSilent" ) {
300 // I made from the "-writeFile" an "-writeAlarm" 300 // I made from the "-writeFile" an "-writeAlarm"
301 // mView->viewManager()->showWhatsNextView(); 301 // mView->viewManager()->showWhatsNextView();
302 mCalendar->checkAlarmForIncidence( 0, true); 302 mCalendar->checkAlarmForIncidence( 0, true);
303 //showMaximized(); 303 //showMaximized();
304 //raise(); 304 //raise();
305 hide(); 305 hide();
306 return; 306 return;
307 } 307 }
308 if ( cmsg == "-newCountdown" ) { 308 if ( cmsg == "-newCountdown" ) {
309 qDebug("newCountdown "); 309 qDebug("newCountdown ");
310 310
311 } 311 }
312 QString msg ; 312 QString msg ;
313 QString allmsg = cmsg; 313 QString allmsg = cmsg;
314 while ( allmsg.length() > 0 ) { 314 while ( allmsg.length() > 0 ) {
315 int nextC = allmsg.find( "-", 1 ); 315 int nextC = allmsg.find( "-", 1 );
316 if ( nextC == -1 ) { 316 if ( nextC == -1 ) {
317 msg = allmsg; 317 msg = allmsg;
318 allmsg = ""; 318 allmsg = "";
319 } else{ 319 } else{
320 msg = allmsg.left( nextC ); 320 msg = allmsg.left( nextC );
321 allmsg = allmsg.mid( nextC, allmsg.length()-nextC ); 321 allmsg = allmsg.mid( nextC, allmsg.length()-nextC );
322 } 322 }
323 //qDebug("msg: %s all: %s ", msg.latin1(), allmsg.latin1() ); 323 //qDebug("msg: %s all: %s ", msg.latin1(), allmsg.latin1() );
324 if ( msg == "-newEvent" ) { 324 if ( msg == "-newEvent" ) {
325 mView->newEvent(); 325 mView->newEvent();
326 } 326 }
327 if ( msg == "-newTodo" ) { 327 if ( msg == "-newTodo" ) {
328 mView->newTodo(); 328 mView->newTodo();
329 329
330 } 330 }
331 if ( msg == "-showWN" ) { 331 if ( msg == "-showWN" ) {
332 mView->viewManager()->showWhatsNextView(); 332 mView->viewManager()->showWhatsNextView();
333 } 333 }
334 if ( msg == "-showTodo" ) { 334 if ( msg == "-showTodo" ) {
335 mView->viewManager()->showTodoView(); 335 mView->viewManager()->showTodoView();
336 } 336 }
337 if ( msg == "-showList" ) { 337 if ( msg == "-showList" ) {
338 mView->viewManager()->showListView(); 338 mView->viewManager()->showListView();
339 } 339 }
340 else if ( msg == "-showDay" ) { 340 else if ( msg == "-showDay" ) {
341 mView->viewManager()->showDayView(); 341 mView->viewManager()->showDayView();
342 } 342 }
343 else if ( msg == "-showWWeek" ) { 343 else if ( msg == "-showWWeek" ) {
344 mView->viewManager()->showWorkWeekView(); 344 mView->viewManager()->showWorkWeekView();
345 } 345 }
346 else if ( msg == "-ringSync" ) { 346 else if ( msg == "-ringSync" ) {
347 multiSync( false ); 347 multiSync( false );
348 } 348 }
349 else if ( msg == "-showWeek" ) { 349 else if ( msg == "-showWeek" ) {
350 mView->viewManager()->showWeekView(); 350 mView->viewManager()->showWeekView();
351 } 351 }
352 else if ( msg == "-showTodo" ) { 352 else if ( msg == "-showTodo" ) {
353 mView->viewManager()->showTodoView(); 353 mView->viewManager()->showTodoView();
354 } 354 }
355 else if ( msg == "-showJournal" ) { 355 else if ( msg == "-showJournal" ) {
356 mView->dateNavigator()->selectDates( 1 ); 356 mView->dateNavigator()->selectDates( 1 );
357 mView->dateNavigator()->selectToday(); 357 mView->dateNavigator()->selectToday();
358 mView->viewManager()->showJournalView(); 358 mView->viewManager()->showJournalView();
359 } 359 }
360 else if ( msg == "-showKO" ) { 360 else if ( msg == "-showKO" ) {
361 mView->viewManager()->showNextXView(); 361 mView->viewManager()->showNextXView();
362 } 362 }
363 else if ( msg == "-showWNext" || msg == "nextView()" ) { 363 else if ( msg == "-showWNext" || msg == "nextView()" ) {
364 mView->viewManager()->showWhatsNextView(); 364 mView->viewManager()->showWhatsNextView();
365 } 365 }
366 else if ( msg == "-showNextXView" ) { 366 else if ( msg == "-showNextXView" ) {
367 mView->viewManager()->showNextXView(); 367 mView->viewManager()->showNextXView();
368 } 368 }
369 369
370 370
371 } 371 }
372 372
373 showMaximized(); 373 showMaximized();
374 raise(); 374 raise();
375} 375}
376 376
377QPixmap MainWindow::loadPixmap( QString name ) 377QPixmap MainWindow::loadPixmap( QString name )
378{ 378{
379 return SmallIcon( name ); 379 return SmallIcon( name );
380 380
381} 381}
382void MainWindow::initActions() 382void MainWindow::initActions()
383{ 383{
384 //KOPrefs::instance()->mShowFullMenu 384 //KOPrefs::instance()->mShowFullMenu
385 iconToolBar->clear(); 385 iconToolBar->clear();
386 KOPrefs *p = KOPrefs::instance(); 386 KOPrefs *p = KOPrefs::instance();
387 //QPEMenuBar *menuBar1;// = new QPEMenuBar( iconToolBar ); 387 //QPEMenuBar *menuBar1;// = new QPEMenuBar( iconToolBar );
388 388
389 QPopupMenu *viewMenu = new QPopupMenu( this ); 389 QPopupMenu *viewMenu = new QPopupMenu( this );
390 QPopupMenu *actionMenu = new QPopupMenu( this ); 390 QPopupMenu *actionMenu = new QPopupMenu( this );
391 QPopupMenu *importMenu = new QPopupMenu( this ); 391 QPopupMenu *importMenu = new QPopupMenu( this );
392 selectFilterMenu = new QPopupMenu( this ); 392 selectFilterMenu = new QPopupMenu( this );
393 selectFilterMenu->setCheckable( true ); 393 selectFilterMenu->setCheckable( true );
394 syncMenu = new QPopupMenu( this ); 394 syncMenu = new QPopupMenu( this );
395 configureAgendaMenu = new QPopupMenu( this ); 395 configureAgendaMenu = new QPopupMenu( this );
396 configureToolBarMenu = new QPopupMenu( this ); 396 configureToolBarMenu = new QPopupMenu( this );
397 QPopupMenu *helpMenu = new QPopupMenu( this ); 397 QPopupMenu *helpMenu = new QPopupMenu( this );
398 if ( KOPrefs::instance()->mShowFullMenu ) { 398 if ( KOPrefs::instance()->mShowFullMenu ) {
399 QMenuBar *menuBar1; 399 QMenuBar *menuBar1;
400 menuBar1 = menuBar(); 400 menuBar1 = menuBar();
401 menuBar1->insertItem( i18n("File"), importMenu ); 401 menuBar1->insertItem( i18n("File"), importMenu );
402 menuBar1->insertItem( i18n("View"), viewMenu ); 402 menuBar1->insertItem( i18n("View"), viewMenu );
403 menuBar1->insertItem( i18n("Actions"), actionMenu ); 403 menuBar1->insertItem( i18n("Actions"), actionMenu );
404 menuBar1->insertItem( i18n("Synchronize"), syncMenu ); 404 menuBar1->insertItem( i18n("Synchronize"), syncMenu );
405 menuBar1->insertItem( i18n("AgendaSize"),configureAgendaMenu ); 405 menuBar1->insertItem( i18n("AgendaSize"),configureAgendaMenu );
406 //menuBar1->insertItem( i18n("Toolbar"),configureToolBarMenu ); 406 //menuBar1->insertItem( i18n("Toolbar"),configureToolBarMenu );
407 menuBar1->insertItem( i18n("Filter"),selectFilterMenu ); 407 menuBar1->insertItem( i18n("Filter"),selectFilterMenu );
408 menuBar1->insertItem( i18n("Help"), helpMenu ); 408 menuBar1->insertItem( i18n("Help"), helpMenu );
409 } else { 409 } else {
410 QPEMenuBar *menuBar1; 410 QPEMenuBar *menuBar1;
411 menuBar1 = new QPEMenuBar( iconToolBar ); 411 menuBar1 = new QPEMenuBar( iconToolBar );
412 QPopupMenu *menuBar = new QPopupMenu( this ); 412 QPopupMenu *menuBar = new QPopupMenu( this );
413 menuBar1->insertItem( i18n("ME"), menuBar); 413 menuBar1->insertItem( i18n("ME"), menuBar);
414 menuBar->insertItem( i18n("File"), importMenu ); 414 menuBar->insertItem( i18n("File"), importMenu );
415 menuBar->insertItem( i18n("View"), viewMenu ); 415 menuBar->insertItem( i18n("View"), viewMenu );
416 menuBar->insertItem( i18n("Actions"), actionMenu ); 416 menuBar->insertItem( i18n("Actions"), actionMenu );
417 menuBar->insertItem( i18n("Synchronize"), syncMenu ); 417 menuBar->insertItem( i18n("Synchronize"), syncMenu );
418 menuBar->insertItem( i18n("AgendaSize"),configureAgendaMenu ); 418 menuBar->insertItem( i18n("AgendaSize"),configureAgendaMenu );
419 menuBar->insertItem( i18n("Toolbar"),configureToolBarMenu ); 419 menuBar->insertItem( i18n("Toolbar"),configureToolBarMenu );
420 menuBar->insertItem( i18n("Filter"),selectFilterMenu ); 420 menuBar->insertItem( i18n("Filter"),selectFilterMenu );
421 menuBar->insertItem( i18n("Help"), helpMenu ); 421 menuBar->insertItem( i18n("Help"), helpMenu );
422 //menuBar1->setMaximumWidth( menuBar1->sizeHint().width() ); 422 //menuBar1->setMaximumWidth( menuBar1->sizeHint().width() );
423 menuBar1->setMaximumSize( menuBar1->sizeHint( )); 423 menuBar1->setMaximumSize( menuBar1->sizeHint( ));
424 } 424 }
425 connect ( syncMenu, SIGNAL( activated ( int ) ), this, SLOT (slotSyncMenu( int ) ) ); 425 connect ( syncMenu, SIGNAL( activated ( int ) ), this, SLOT (slotSyncMenu( int ) ) );
426 connect ( selectFilterMenu, SIGNAL( activated ( int ) ), this, SLOT (selectFilter( int ) ) ); 426 connect ( selectFilterMenu, SIGNAL( activated ( int ) ), this, SLOT (selectFilter( int ) ) );
427 connect ( selectFilterMenu, SIGNAL( aboutToShow () ), this, SLOT (fillFilterMenu() ) ); 427 connect ( selectFilterMenu, SIGNAL( aboutToShow () ), this, SLOT (fillFilterMenu() ) );
428 428
429 // ****************** 429 // ******************
430 QAction *action; 430 QAction *action;
431 QIconSet icon; 431 QIconSet icon;
432 // QPopupMenu *configureMenu= new QPopupMenu( menuBar ); 432 // QPopupMenu *configureMenu= new QPopupMenu( menuBar );
433 configureToolBarMenu->setCheckable( true ); 433 configureToolBarMenu->setCheckable( true );
434 434
435 QString pathString = ""; 435 QString pathString = "";
436 if ( !p->mToolBarMiniIcons ) { 436 if ( !p->mToolBarMiniIcons ) {
437 if ( QApplication::desktop()->width() < 480 ) 437 if ( QApplication::desktop()->width() < 480 )
438 pathString += "icons16/"; 438 pathString += "icons16/";
439 } else 439 } else
440 pathString += "iconsmini/"; 440 pathString += "iconsmini/";
441 configureAgendaMenu->setCheckable( true ); 441 configureAgendaMenu->setCheckable( true );
442 configureAgendaMenu->insertItem(i18n("Toggle Allday"), 1 ); 442 configureAgendaMenu->insertItem(i18n("Toggle Allday"), 1 );
443 configureAgendaMenu->insertSeparator(); 443 configureAgendaMenu->insertSeparator();
444 configureAgendaMenu->insertItem(i18n("Tiny"), 4 ); 444 configureAgendaMenu->insertItem(i18n("Tiny"), 4 );
445 configureAgendaMenu->insertItem(i18n("Small"), 6 ); 445 configureAgendaMenu->insertItem(i18n("Small"), 6 );
446 configureAgendaMenu->insertItem(i18n("Medium"), 8 ); 446 configureAgendaMenu->insertItem(i18n("Medium"), 8 );
447 configureAgendaMenu->insertItem(i18n("Normal"), 10 ); 447 configureAgendaMenu->insertItem(i18n("Normal"), 10 );
448 configureAgendaMenu->insertItem(i18n("Large"), 12 ); 448 configureAgendaMenu->insertItem(i18n("Large"), 12 );
449 configureAgendaMenu->insertItem(i18n("Big"), 14 ); 449 configureAgendaMenu->insertItem(i18n("Big"), 14 );
450 configureAgendaMenu->insertItem(i18n("Bigger"), 16 ); 450 configureAgendaMenu->insertItem(i18n("Bigger"), 16 );
451 configureAgendaMenu->insertItem(i18n("Biggest"), 18 ); 451 configureAgendaMenu->insertItem(i18n("Biggest"), 18 );
452 //configureMenu->insertItem( "AgendaSize",configureAgendaMenu ); 452 //configureMenu->insertItem( "AgendaSize",configureAgendaMenu );
453 453
454 icon = loadPixmap( pathString + "configure" ); 454 icon = loadPixmap( pathString + "configure" );
455 action = new QAction( i18n("Configure"),icon, i18n("Configure..."), 0, this ); 455 action = new QAction( i18n("Configure"),icon, i18n("Configure..."), 0, this );
456 action->addTo( actionMenu ); 456 action->addTo( actionMenu );
457 connect( action, SIGNAL( activated() ), 457 connect( action, SIGNAL( activated() ),
458 mView, SLOT( edit_options() ) ); 458 mView, SLOT( edit_options() ) );
459 actionMenu->insertSeparator(); 459 actionMenu->insertSeparator();
460 icon = loadPixmap( pathString + "newevent" ); 460 icon = loadPixmap( pathString + "newevent" );
461 configureToolBarMenu->insertItem(i18n("Stretched TB"), 5 ); 461 configureToolBarMenu->insertItem(i18n("Stretched TB"), 5 );
462 configureToolBarMenu->insertSeparator(); 462 configureToolBarMenu->insertSeparator();
463 configureToolBarMenu->insertItem(icon, i18n("New Event..."), 10 ); 463 configureToolBarMenu->insertItem(icon, i18n("New Event..."), 10 );
464 QAction* ne_action = new QAction( i18n("New Event..."), icon, i18n("New Event..."), 0, this ); 464 QAction* ne_action = new QAction( i18n("New Event..."), icon, i18n("New Event..."), 0, this );
465 ne_action->addTo( actionMenu ); 465 ne_action->addTo( actionMenu );
466 connect( ne_action, SIGNAL( activated() ), 466 connect( ne_action, SIGNAL( activated() ),
467 mView, SLOT( newEvent() ) ); 467 mView, SLOT( newEvent() ) );
468 icon = loadPixmap( pathString + "newtodo" ); 468 icon = loadPixmap( pathString + "newtodo" );
469 configureToolBarMenu->insertItem(icon, i18n("New Todo..."), 20 ); 469 configureToolBarMenu->insertItem(icon, i18n("New Todo..."), 20 );
470 QAction* nt_action = new QAction( i18n("New Todo..."), icon, i18n("New Todo..."), 0, this ); 470 QAction* nt_action = new QAction( i18n("New Todo..."), icon, i18n("New Todo..."), 0, this );
471 nt_action->addTo( actionMenu ); 471 nt_action->addTo( actionMenu );
472 connect( nt_action, SIGNAL( activated() ), 472 connect( nt_action, SIGNAL( activated() ),
473 mView, SLOT( newTodo() ) ); 473 mView, SLOT( newTodo() ) );
474 icon = loadPixmap( pathString + "navi" ); 474 icon = loadPixmap( pathString + "navi" );
475 action = new QAction( i18n("Toggle DateNavigator"), icon, i18n("Toggle DateNavigator"), 0, this ); 475 action = new QAction( i18n("Toggle DateNavigator"), icon, i18n("Toggle DateNavigator"), 0, this );
476 action->addTo( viewMenu ); 476 action->addTo( viewMenu );
477 connect( action, SIGNAL( activated() ), 477 connect( action, SIGNAL( activated() ),
478 mView, SLOT( toggleDateNavigatorWidget() ) ); 478 mView, SLOT( toggleDateNavigatorWidget() ) );
479 icon = loadPixmap( pathString + "filter" ); 479 icon = loadPixmap( pathString + "filter" );
480 action = new QAction( i18n("Toggle FilterView"), icon, i18n("Toggle FilterView"), 0, this ); 480 action = new QAction( i18n("Toggle FilterView"), icon, i18n("Toggle FilterView"), 0, this );
481 action->addTo( viewMenu ); 481 action->addTo( viewMenu );
482 connect( action, SIGNAL( activated() ), 482 connect( action, SIGNAL( activated() ),
483 mView, SLOT( toggleFilter() ) ); 483 mView, SLOT( toggleFilter() ) );
484 484
485 485
486 viewMenu->insertSeparator(); 486 viewMenu->insertSeparator();
487 icon = loadPixmap( pathString + "picker" ); 487 icon = loadPixmap( pathString + "picker" );
488 action = new QAction( i18n("Date Picker"), icon, i18n("Date Picker"), 0, this ); 488 action = new QAction( i18n("Date Picker"), icon, i18n("Date Picker"), 0, this );
489 action->addTo( viewMenu ); 489 action->addTo( viewMenu );
490 connect( action, SIGNAL( activated() ), 490 connect( action, SIGNAL( activated() ),
491 mView, SLOT( showDatePicker() ) ); 491 mView, SLOT( showDatePicker() ) );
492 action->addTo( iconToolBar ); 492 action->addTo( iconToolBar );
493 viewMenu->insertSeparator(); 493 viewMenu->insertSeparator();
494 icon = loadPixmap( pathString + "list" ); 494 icon = loadPixmap( pathString + "list" );
495 configureToolBarMenu->insertItem(icon, i18n("List View"), 30 ); 495 configureToolBarMenu->insertItem(icon, i18n("List View"), 30 );
496 QAction* showlist_action = new QAction( i18n("List View"), icon, i18n("List View"), 0, this ); 496 QAction* showlist_action = new QAction( i18n("List View"), icon, i18n("List View"), 0, this );
497 showlist_action->addTo( viewMenu ); 497 showlist_action->addTo( viewMenu );
498 connect( showlist_action, SIGNAL( activated() ), 498 connect( showlist_action, SIGNAL( activated() ),
499 mView->viewManager(), SLOT( showListView() ) ); 499 mView->viewManager(), SLOT( showListView() ) );
500 500
501 501
502 icon = loadPixmap( pathString + "day" ); 502 icon = loadPixmap( pathString + "day" );
503 configureToolBarMenu->insertItem(icon, i18n("Day View"), 40 ); 503 configureToolBarMenu->insertItem(icon, i18n("Day View"), 40 );
504 QAction* day1_action = new QAction( i18n("Day View"), icon, i18n("Day View"), 0, this ); 504 QAction* day1_action = new QAction( i18n("Day View"), icon, i18n("Day View"), 0, this );
505 day1_action->addTo( viewMenu ); 505 day1_action->addTo( viewMenu );
506 // action->addTo( toolBar ); 506 // action->addTo( toolBar );
507 connect( day1_action, SIGNAL( activated() ), 507 connect( day1_action, SIGNAL( activated() ),
508 mView->viewManager(), SLOT( showDayView() ) ); 508 mView->viewManager(), SLOT( showDayView() ) );
509 509
510 icon = loadPixmap( pathString + "workweek" ); 510 icon = loadPixmap( pathString + "workweek" );
511 configureToolBarMenu->insertItem(icon, i18n("Work Week"), 50 ); 511 configureToolBarMenu->insertItem(icon, i18n("Work Week"), 50 );
512 QAction* day5_action = new QAction( i18n("Work Week"), icon, i18n("Work Week"), 0, this ); 512 QAction* day5_action = new QAction( i18n("Work Week"), icon, i18n("Work Week"), 0, this );
513 day5_action->addTo( viewMenu ); 513 day5_action->addTo( viewMenu );
514 connect( day5_action, SIGNAL( activated() ), 514 connect( day5_action, SIGNAL( activated() ),
515 mView->viewManager(), SLOT( showWorkWeekView() ) ); 515 mView->viewManager(), SLOT( showWorkWeekView() ) );
516 516
517 icon = loadPixmap( pathString + "week" ); 517 icon = loadPixmap( pathString + "week" );
518 configureToolBarMenu->insertItem(icon, i18n("Week"), 60 ); 518 configureToolBarMenu->insertItem(icon, i18n("Week"), 60 );
519 QAction* day7_action = new QAction( i18n("Week"), icon, i18n("Week"), 0, this ); 519 QAction* day7_action = new QAction( i18n("Week"), icon, i18n("Week"), 0, this );
520 day7_action->addTo( viewMenu ); 520 day7_action->addTo( viewMenu );
521 connect( day7_action, SIGNAL( activated() ), 521 connect( day7_action, SIGNAL( activated() ),
522 mView->viewManager(), SLOT( showWeekView() ) ); 522 mView->viewManager(), SLOT( showWeekView() ) );
523 523
524 icon = loadPixmap( pathString + "month" ); 524 icon = loadPixmap( pathString + "month" );
525 configureToolBarMenu->insertItem(icon, i18n("Month"), 70 ); 525 configureToolBarMenu->insertItem(icon, i18n("Month"), 70 );
526 QAction* month_action = new QAction( i18n("Month"), icon, i18n("Month"), 0, this ); 526 QAction* month_action = new QAction( i18n("Month"), icon, i18n("Month"), 0, this );
527 month_action->addTo( viewMenu ); 527 month_action->addTo( viewMenu );
528 connect( month_action, SIGNAL( activated() ), 528 connect( month_action, SIGNAL( activated() ),
529 mView->viewManager(), SLOT( showMonthView() ) ); 529 mView->viewManager(), SLOT( showMonthView() ) );
530 530
531 icon = loadPixmap( pathString + "todo" ); 531 icon = loadPixmap( pathString + "todo" );
532 configureToolBarMenu->insertItem(icon, i18n("Todo View"), 80 ); 532 configureToolBarMenu->insertItem(icon, i18n("Todo View"), 80 );
533 QAction* todoview_action = new QAction( i18n("Todo View"), icon, i18n("Todo View"), 0, this ); 533 QAction* todoview_action = new QAction( i18n("Todo View"), icon, i18n("Todo View"), 0, this );
534 todoview_action->addTo( viewMenu ); 534 todoview_action->addTo( viewMenu );
535 connect( todoview_action, SIGNAL( activated() ), 535 connect( todoview_action, SIGNAL( activated() ),
536 mView->viewManager(), SLOT( showTodoView() ) ); 536 mView->viewManager(), SLOT( showTodoView() ) );
537 537
538 icon = loadPixmap( pathString + "journal" ); 538 icon = loadPixmap( pathString + "journal" );
539 configureToolBarMenu->insertItem(icon, i18n("Journal"), 90 ); 539 configureToolBarMenu->insertItem(icon, i18n("Journal"), 90 );
540 QAction* viewjournal_action = new QAction( i18n("Journal"), icon, i18n("Journal"), 0, this ); 540 QAction* viewjournal_action = new QAction( i18n("Journal"), icon, i18n("Journal"), 0, this );
541 viewjournal_action->addTo( viewMenu ); 541 viewjournal_action->addTo( viewMenu );
542 connect( viewjournal_action, SIGNAL( activated() ), 542 connect( viewjournal_action, SIGNAL( activated() ),
543 mView->viewManager(), SLOT( showJournalView() ) ); 543 mView->viewManager(), SLOT( showJournalView() ) );
544 544
545 icon = loadPixmap( pathString + "xdays" ); 545 icon = loadPixmap( pathString + "xdays" );
546 configureToolBarMenu->insertItem(icon, i18n("Next days"), 100,4 ); 546 configureToolBarMenu->insertItem(icon, i18n("Next days"), 100,4 );
547 QAction* xdays_action = new QAction( i18n("Next days"), icon, i18n("Next days"), 0, this ); 547 QAction* xdays_action = new QAction( i18n("Next days"), icon, i18n("Next days"), 0, this );
548 xdays_action->addTo( viewMenu ); 548 xdays_action->addTo( viewMenu );
549 connect( xdays_action, SIGNAL( activated() ), 549 connect( xdays_action, SIGNAL( activated() ),
550 mView->viewManager(), SLOT( showNextXView() ) ); 550 mView->viewManager(), SLOT( showNextXView() ) );
551 551
552 icon = loadPixmap( pathString + "whatsnext" ); 552 icon = loadPixmap( pathString + "whatsnext" );
553 configureToolBarMenu->insertItem(icon, i18n("What's Next"), 110, 4 ); 553 configureToolBarMenu->insertItem(icon, i18n("What's Next"), 110, 4 );
554 QAction* whatsnext_action = new QAction( i18n("What's Next"), icon, i18n("What's Next"), 0, this ); 554 QAction* whatsnext_action = new QAction( i18n("What's Next"), icon, i18n("What's Next"), 0, this );
555 whatsnext_action->addTo( viewMenu ); 555 whatsnext_action->addTo( viewMenu );
556 connect( whatsnext_action, SIGNAL( activated() ), 556 connect( whatsnext_action, SIGNAL( activated() ),
557 mView->viewManager(), SLOT( showWhatsNextView() ) ); 557 mView->viewManager(), SLOT( showWhatsNextView() ) );
558 558
559#if 0 559#if 0
560 action = new QAction( "view_timespan", "Time Span", 0, this ); 560 action = new QAction( "view_timespan", "Time Span", 0, this );
561 action->addTo( viewMenu ); 561 action->addTo( viewMenu );
562 connect( action, SIGNAL( activated() ), 562 connect( action, SIGNAL( activated() ),
563 mView->viewManager(), SLOT( showTimeSpanView() ) ); 563 mView->viewManager(), SLOT( showTimeSpanView() ) );
564#endif 564#endif
565 565
566 mNewSubTodoAction = new QAction( "new_subtodo", i18n("New Sub-Todo..."), 0, 566 mNewSubTodoAction = new QAction( "new_subtodo", i18n("New Sub-Todo..."), 0,
567 this ); 567 this );
568 mNewSubTodoAction->addTo( actionMenu ); 568 mNewSubTodoAction->addTo( actionMenu );
569 connect( mNewSubTodoAction, SIGNAL( activated() ), 569 connect( mNewSubTodoAction, SIGNAL( activated() ),
570 mView, SLOT( newSubTodo() ) ); 570 mView, SLOT( newSubTodo() ) );
571 571
572 actionMenu->insertSeparator(); 572 actionMenu->insertSeparator();
573 573
574 mShowAction = new QAction( "show_incidence", i18n("Show..."), 0, this ); 574 mShowAction = new QAction( "show_incidence", i18n("Show..."), 0, this );
575 mShowAction->addTo( actionMenu ); 575 mShowAction->addTo( actionMenu );
576 connect( mShowAction, SIGNAL( activated() ), 576 connect( mShowAction, SIGNAL( activated() ),
577 mView, SLOT( showIncidence() ) ); 577 mView, SLOT( showIncidence() ) );
578 578
579 mEditAction = new QAction( "edit_incidence", i18n("Edit..."), 0, this ); 579 mEditAction = new QAction( "edit_incidence", i18n("Edit..."), 0, this );
580 mEditAction->addTo( actionMenu ); 580 mEditAction->addTo( actionMenu );
581 connect( mEditAction, SIGNAL( activated() ), 581 connect( mEditAction, SIGNAL( activated() ),
582 mView, SLOT( editIncidence() ) ); 582 mView, SLOT( editIncidence() ) );
583 583
584 mDeleteAction = new QAction( "delete_incidence", i18n("Delete..."), 0, this ); 584 mDeleteAction = new QAction( "delete_incidence", i18n("Delete..."), 0, this );
585 mDeleteAction->addTo( actionMenu ); 585 mDeleteAction->addTo( actionMenu );
586 connect( mDeleteAction, SIGNAL( activated() ), 586 connect( mDeleteAction, SIGNAL( activated() ),
587 mView, SLOT( deleteIncidence() ) ); 587 mView, SLOT( deleteIncidence() ) );
588 588
589 actionMenu->insertSeparator(); 589 actionMenu->insertSeparator();
590 590
591 action = new QAction( "purge_completed", i18n("Purge Completed"), 0, 591 action = new QAction( "purge_completed", i18n("Purge Completed"), 0,
592 this ); 592 this );
593 action->addTo( actionMenu ); 593 action->addTo( actionMenu );
594 connect( action, SIGNAL( activated() ), mView, SLOT( purgeCompleted() ) ); 594 connect( action, SIGNAL( activated() ), mView, SLOT( purgeCompleted() ) );
595 595
596 icon = loadPixmap( pathString + "search" ); 596 icon = loadPixmap( pathString + "search" );
597 QAction* search_action = new QAction( i18n("Search"), icon, i18n("Search..."), 0, this ); 597 QAction* search_action = new QAction( i18n("Search"), icon, i18n("Search..."), 0, this );
598 configureToolBarMenu->insertItem(icon, i18n("Search"), 120 , 4); 598 configureToolBarMenu->insertItem(icon, i18n("Search"), 120 , 4);
599 search_action->addTo( actionMenu ); 599 search_action->addTo( actionMenu );
600 connect( search_action, SIGNAL( activated() ), 600 connect( search_action, SIGNAL( activated() ),
601 mView->dialogManager(), SLOT( showSearchDialog() ) ); 601 mView->dialogManager(), SLOT( showSearchDialog() ) );
602 602
603 icon = loadPixmap( pathString + "today" ); 603 icon = loadPixmap( pathString + "today" );
604 configureToolBarMenu->insertItem(icon, i18n("Go to Today"), 130); 604 configureToolBarMenu->insertItem(icon, i18n("Go to Today"), 130);
605 QAction* today_action = new QAction( i18n("Go to Today"), icon, i18n("Go to Today"), 0, this ); 605 QAction* today_action = new QAction( i18n("Go to Today"), icon, i18n("Go to Today"), 0, this );
606 today_action->addTo( actionMenu ); 606 today_action->addTo( actionMenu );
607 connect( today_action, SIGNAL( activated() ), 607 connect( today_action, SIGNAL( activated() ),
608 mView, SLOT( goToday() ) ); 608 mView, SLOT( goToday() ) );
609 609
610 if ( KOPrefs::instance()->mShowFullMenu ) { 610 if ( KOPrefs::instance()->mShowFullMenu ) {
611 actionMenu->insertSeparator(); 611 actionMenu->insertSeparator();
612 actionMenu->insertItem( i18n("Configure Toolbar"),configureToolBarMenu ); 612 actionMenu->insertItem( i18n("Configure Toolbar"),configureToolBarMenu );
613 613
614 } 614 }
615 // actionMenu->insertSeparator(); 615 // actionMenu->insertSeparator();
616 action = new QAction( "import_qtopia", i18n("Import (*.ics/*.vcs) file"), 0, 616 action = new QAction( "import_qtopia", i18n("Import (*.ics/*.vcs) file"), 0,
617 this ); 617 this );
618 action->addTo( importMenu ); 618 action->addTo( importMenu );
619 connect( action, SIGNAL( activated() ), SLOT( importIcal() ) ); 619 connect( action, SIGNAL( activated() ), SLOT( importIcal() ) );
620 action = new QAction( "import_quick", i18n("Import last file"), 0, 620 action = new QAction( "import_quick", i18n("Import last file"), 0,
621 this ); 621 this );
622 action->addTo( importMenu ); 622 action->addTo( importMenu );
623 connect( action, SIGNAL( activated() ), SLOT( quickImportIcal() ) ); 623 connect( action, SIGNAL( activated() ), SLOT( quickImportIcal() ) );
624 importMenu->insertSeparator(); 624 importMenu->insertSeparator();
625 action = new QAction( "import_bday", i18n("Import Birthdays (KA/Pi)"), 0, 625 action = new QAction( "import_bday", i18n("Import Birthdays (KA/Pi)"), 0,
626 this ); 626 this );
627 action->addTo( importMenu ); 627 action->addTo( importMenu );
628 connect( action, SIGNAL( activated() ), SLOT( importBday() ) ); 628 connect( action, SIGNAL( activated() ), SLOT( importBday() ) );
629#ifndef DESKTOP_VERSION 629#ifndef DESKTOP_VERSION
630 importMenu->insertSeparator(); 630 importMenu->insertSeparator();
631 action = new QAction( "import_qtopia", i18n("Import Opie/Qtopia Cal."), 0, 631 action = new QAction( "import_qtopia", i18n("Import Opie/Qtopia Cal."), 0,
632 this ); 632 this );
633 action->addTo( importMenu ); 633 action->addTo( importMenu );
634 connect( action, SIGNAL( activated() ), SLOT( importQtopia() ) ); 634 connect( action, SIGNAL( activated() ), SLOT( importQtopia() ) );
635#else 635#else
636#ifdef _WIN32_ 636#ifdef _WIN32_
637 importMenu->insertSeparator(); 637 importMenu->insertSeparator();
638 action = new QAction( "import_ol", i18n("Import from OL"), 0, 638 action = new QAction( "import_ol", i18n("Import from OL"), 0,
639 this ); 639 this );
640 action->addTo( importMenu ); 640 action->addTo( importMenu );
641 connect( action, SIGNAL( activated() ), SLOT( importOL() ) ); 641 connect( action, SIGNAL( activated() ), SLOT( importOL() ) );
642#endif 642#endif
643#endif 643#endif
644 644
645 importMenu->insertSeparator(); 645 importMenu->insertSeparator();
646 action = new QAction( "load_cal", i18n("Load Calendar Backup"), 0, 646 action = new QAction( "load_cal", i18n("Load Calendar Backup"), 0,
647 this ); 647 this );
648 action->addTo( importMenu ); 648 action->addTo( importMenu );
649 connect( action, SIGNAL( activated() ), SLOT( loadCalendar() ) ); 649 connect( action, SIGNAL( activated() ), SLOT( loadCalendar() ) );
650 650
651 action = new QAction( "save_cal", i18n("Save Calendar Backup"), 0, 651 action = new QAction( "save_cal", i18n("Save Calendar Backup"), 0,
652 this ); 652 this );
653 action->addTo( importMenu ); 653 action->addTo( importMenu );
654 connect( action, SIGNAL( activated() ), SLOT( saveCalendar() ) ); 654 connect( action, SIGNAL( activated() ), SLOT( saveCalendar() ) );
655 655
656 importMenu->insertSeparator(); 656 importMenu->insertSeparator();
657 action = new QAction( "import_qtopia", i18n("Export VCalendar"), 0, 657 action = new QAction( "import_qtopia", i18n("Export VCalendar"), 0,
658 this ); 658 this );
659 action->addTo( importMenu ); connect( action, SIGNAL( activated() ), SLOT( exportVCalendar() ) ); 659 action->addTo( importMenu ); connect( action, SIGNAL( activated() ), SLOT( exportVCalendar() ) );
660 importMenu->insertSeparator(); 660 importMenu->insertSeparator();
661 action = new QAction( "manage cat", i18n("Manage new categories..."), 0, 661 action = new QAction( "manage cat", i18n("Manage new categories..."), 0,
662 this ); 662 this );
663 action->addTo( importMenu ); 663 action->addTo( importMenu );
664 connect( action, SIGNAL( activated() ), mView, SLOT( manageCategories() ) ); 664 connect( action, SIGNAL( activated() ), mView, SLOT( manageCategories() ) );
665#ifndef DESKTOP_VERSION 665#ifndef DESKTOP_VERSION
666 importMenu->insertSeparator(); 666 importMenu->insertSeparator();
667 action = new QAction( "beam all", i18n("Beam complete calendar..."), 0, 667 action = new QAction( "beam all", i18n("Beam complete calendar..."), 0,
668 this ); 668 this );
669 action->addTo( importMenu ); 669 action->addTo( importMenu );
670 connect( action, SIGNAL( activated() ), mView, SLOT( beamCalendar() ) ); 670 connect( action, SIGNAL( activated() ), mView, SLOT( beamCalendar() ) );
671 671
672 action = new QAction( "beam all", i18n("Beam filtered calendar..."), 0, 672 action = new QAction( "beam all", i18n("Beam filtered calendar..."), 0,
673 this ); 673 this );
674 action->addTo( importMenu ); 674 action->addTo( importMenu );
675 connect( action, SIGNAL( activated() ), mView, SLOT( beamFilteredCalendar()) ); 675 connect( action, SIGNAL( activated() ), mView, SLOT( beamFilteredCalendar()) );
676#else 676#else
677 importMenu->insertSeparator(); 677 importMenu->insertSeparator();
678 icon = loadPixmap( pathString + "print" ); 678 icon = loadPixmap( pathString + "print" );
679 action = new QAction( i18n("Print calendar..."),icon,i18n("Print calendar..."), 0, this ); 679 action = new QAction( i18n("Print calendar..."),icon,i18n("Print calendar..."), 0, this );
680 action->addTo( importMenu ); 680 action->addTo( importMenu );
681 connect( action, SIGNAL( activated() ), 681 connect( action, SIGNAL( activated() ),
682 this, SLOT( printCal() ) ); 682 this, SLOT( printCal() ) );
683 683
684 icon = loadPixmap( pathString + "print" ); 684 icon = loadPixmap( pathString + "print" );
685 action = new QAction( i18n("Print agenda selection..."),icon,i18n("Print agenda selection..."), 0, this ); 685 action = new QAction( i18n("Print agenda selection..."),icon,i18n("Print agenda selection..."), 0, this );
686 action->addTo( importMenu ); 686 action->addTo( importMenu );
687 connect( action, SIGNAL( activated() ), 687 connect( action, SIGNAL( activated() ),
688 this, SLOT( printSel() ) ); 688 this, SLOT( printSel() ) );
689#endif 689#endif
690 importMenu->insertSeparator(); 690 importMenu->insertSeparator();
691 action = new QAction( "beam all", i18n("Save"), 0, 691 action = new QAction( "beam all", i18n("Save"), 0,
692 this ); 692 this );
693 action->addTo( importMenu ); 693 action->addTo( importMenu );
694 connect( action, SIGNAL( activated() ), this, SLOT( save() ) ); 694 connect( action, SIGNAL( activated() ), this, SLOT( save() ) );
695 action = new QAction( "beam all", i18n("Exit (+save)"), 0, 695 action = new QAction( "beam all", i18n("Exit (+save)"), 0,
696 this ); 696 this );
697 action->addTo( importMenu ); 697 action->addTo( importMenu );
698 connect( action, SIGNAL( activated() ), this, SLOT( close() ) ); 698 connect( action, SIGNAL( activated() ), this, SLOT( close() ) );
699 699
700 //menuBar->insertItem( "Configure",configureMenu ); 700 //menuBar->insertItem( "Configure",configureMenu );
701 //configureMenu->insertItem( "Toolbar",configureToolBarMenu ); 701 //configureMenu->insertItem( "Toolbar",configureToolBarMenu );
702 icon = loadPixmap( "korganizer/korganizer" ); 702 icon = loadPixmap( "korganizer/korganizer" );
703 action = new QAction( "Keys + Colors", i18n("Keys + Colors..."), 0, this ); 703 action = new QAction( "Keys + Colors", i18n("Keys + Colors..."), 0, this );
704 action->addTo( helpMenu ); 704 action->addTo( helpMenu );
705 connect( action, SIGNAL( activated() ), 705 connect( action, SIGNAL( activated() ),
706 SLOT( keyBindings() ) ); 706 SLOT( keyBindings() ) );
707 action = new QAction( "featureHowto", i18n("Features + hints..."), 0,this ); 707 action = new QAction( "featureHowto", i18n("Features + hints..."), 0,this );
708 action->addTo( helpMenu ); 708 action->addTo( helpMenu );
709 connect( action, SIGNAL( activated() ), 709 connect( action, SIGNAL( activated() ),
710 SLOT( features() ) ); 710 SLOT( features() ) );
711 action = new QAction( "Auto saving", i18n("Auto saving..."), 0, this ); 711 action = new QAction( "Auto saving", i18n("Auto saving..."), 0, this );
712 action->addTo( helpMenu ); 712 action->addTo( helpMenu );
713 connect( action, SIGNAL( activated() ), 713 connect( action, SIGNAL( activated() ),
714 SLOT( aboutAutoSaving() ) ); 714 SLOT( aboutAutoSaving() ) );
715 action = new QAction( "Problemd", i18n("Known Problems..."), 0,this ); 715 action = new QAction( "Problemd", i18n("Known Problems..."), 0,this );
716 action->addTo( helpMenu ); 716 action->addTo( helpMenu );
717 connect( action, SIGNAL( activated() ), 717 connect( action, SIGNAL( activated() ),
718 SLOT( aboutKnownBugs() ) ); 718 SLOT( aboutKnownBugs() ) );
719 action = new QAction( "Translate Howto", i18n("User translation..."), 0,this ); 719 action = new QAction( "Translate Howto", i18n("User translation..."), 0,this );
720 action->addTo( helpMenu ); 720 action->addTo( helpMenu );
721 connect( action, SIGNAL( activated() ), 721 connect( action, SIGNAL( activated() ),
722 SLOT( usertrans() ) ); 722 SLOT( usertrans() ) );
723 action = new QAction( "Sync Howto", i18n("Sync HowTo..."), 0,this ); 723 action = new QAction( "Sync Howto", i18n("Sync HowTo..."), 0,this );
724 action->addTo( helpMenu ); 724 action->addTo( helpMenu );
725 connect( action, SIGNAL( activated() ), 725 connect( action, SIGNAL( activated() ),
726 SLOT( synchowto() ) ); 726 SLOT( synchowto() ) );
727 action = new QAction( "Whats New", i18n("What's new?"), 0,this ); 727 action = new QAction( "Whats New", i18n("What's new?"), 0,this );
728 action->addTo( helpMenu ); 728 action->addTo( helpMenu );
729 connect( action, SIGNAL( activated() ), 729 connect( action, SIGNAL( activated() ),
730 SLOT( whatsNew() ) ); 730 SLOT( whatsNew() ) );
731 action = new QAction( "Frequently asked questions", i18n("FAQ..."), 0,this ); 731 action = new QAction( "Frequently asked questions", i18n("FAQ..."), 0,this );
732 action->addTo( helpMenu ); 732 action->addTo( helpMenu );
733 connect( action, SIGNAL( activated() ), 733 connect( action, SIGNAL( activated() ),
734 SLOT( faq() ) ); 734 SLOT( faq() ) );
735 735
736 736
737 action = new QAction( "about", i18n("About..."), 0, this ); 737 action = new QAction( "about", i18n("About..."), 0, this );
738 action->addTo( helpMenu ); 738 action->addTo( helpMenu );
739 connect( action, SIGNAL( activated() ), 739 connect( action, SIGNAL( activated() ),
740 SLOT( about() ) ); 740 SLOT( about() ) );
741 action = new QAction( "licence", i18n("Licence..."), 0, this ); 741 action = new QAction( "licence", i18n("Licence..."), 0, this );
742 action->addTo( helpMenu ); 742 action->addTo( helpMenu );
743 connect( action, SIGNAL( activated() ), 743 connect( action, SIGNAL( activated() ),
744 SLOT( licence() ) ); 744 SLOT( licence() ) );
745 //menuBar->insertSeparator(); 745 //menuBar->insertSeparator();
746 746
747 // ****************************************************** 747 // ******************************************************
748 // menubar icons 748 // menubar icons
749 749
750 750
751 iconToolBar->setHorizontalStretchable (true ); 751 iconToolBar->setHorizontalStretchable (true );
752 //menuBar->insertItem( iconToolBar ); 752 //menuBar->insertItem( iconToolBar );
753 //xdays_action 753 //xdays_action
754 if (p-> mShowIconNewEvent) 754 if (p-> mShowIconNewEvent)
755 ne_action->addTo( iconToolBar ); 755 ne_action->addTo( iconToolBar );
756 if (p->mShowIconNewTodo ) 756 if (p->mShowIconNewTodo )
757 nt_action->addTo( iconToolBar ); 757 nt_action->addTo( iconToolBar );
758 if (p-> mShowIconSearch) 758 if (p-> mShowIconSearch)
759 search_action->addTo( iconToolBar ); 759 search_action->addTo( iconToolBar );
760 if (p-> mShowIconNext) 760 if (p-> mShowIconNext)
761 whatsnext_action->addTo( iconToolBar ); 761 whatsnext_action->addTo( iconToolBar );
762 if (p-> mShowIconNextDays) 762 if (p-> mShowIconNextDays)
763 xdays_action->addTo( iconToolBar ); 763 xdays_action->addTo( iconToolBar );
764 if (p-> mShowIconList) 764 if (p-> mShowIconList)
765 showlist_action->addTo( iconToolBar ); 765 showlist_action->addTo( iconToolBar );
766 if (p-> mShowIconDay1) 766 if (p-> mShowIconDay1)
767 day1_action->addTo( iconToolBar ); 767 day1_action->addTo( iconToolBar );
768 if (p-> mShowIconDay5) 768 if (p-> mShowIconDay5)
769 day5_action->addTo( iconToolBar ); 769 day5_action->addTo( iconToolBar );
770 if (p-> mShowIconDay7) 770 if (p-> mShowIconDay7)
771 day7_action->addTo( iconToolBar ); 771 day7_action->addTo( iconToolBar );
772 if (p-> mShowIconMonth) 772 if (p-> mShowIconMonth)
773 month_action->addTo( iconToolBar ); 773 month_action->addTo( iconToolBar );
774 if (p-> mShowIconTodoview) 774 if (p-> mShowIconTodoview)
775 todoview_action->addTo( iconToolBar ); 775 todoview_action->addTo( iconToolBar );
776 if (p-> mShowIconJournal) 776 if (p-> mShowIconJournal)
777 viewjournal_action->addTo( iconToolBar ); 777 viewjournal_action->addTo( iconToolBar );
778 icon = loadPixmap( pathString + "2leftarrowB" ); 778 icon = loadPixmap( pathString + "2leftarrowB" );
779 configureToolBarMenu->insertItem(icon, i18n("Prev. month"), 200, 14); 779 configureToolBarMenu->insertItem(icon, i18n("Prev. month"), 200, 14);
780 if (p-> mShowIconBackFast) { 780 if (p-> mShowIconBackFast) {
781 action = new QAction( i18n("Prev. month"), icon, i18n("Prev. month"),0 , this ); 781 action = new QAction( i18n("Prev. month"), icon, i18n("Prev. month"),0 , this );
782 connect( action, SIGNAL( activated() ), 782 connect( action, SIGNAL( activated() ),
783 mView, SLOT( goPreviousMonth() ) ); 783 mView, SLOT( goPreviousMonth() ) );
784 action->addTo( iconToolBar ); 784 action->addTo( iconToolBar );
785 } 785 }
786 icon = loadPixmap( pathString + "1leftarrowB" ); 786 icon = loadPixmap( pathString + "1leftarrowB" );
787 configureToolBarMenu->insertItem(icon, i18n("Go backward"), 210,15); 787 configureToolBarMenu->insertItem(icon, i18n("Go backward"), 210,15);
788 if (p-> mShowIconBack) { 788 if (p-> mShowIconBack) {
789 action = new QAction( i18n("Go backward"), icon, i18n("Go backward"),0 , this ); 789 action = new QAction( i18n("Go backward"), icon, i18n("Go backward"),0 , this );
790 connect( action, SIGNAL( activated() ), 790 connect( action, SIGNAL( activated() ),
791 mView, SLOT( goPrevious() ) ); 791 mView, SLOT( goPrevious() ) );
792 action->addTo( iconToolBar ); 792 action->addTo( iconToolBar );
793 } 793 }
794 if (p-> mShowIconToday) 794 if (p-> mShowIconToday)
795 today_action->addTo( iconToolBar ); 795 today_action->addTo( iconToolBar );
796 icon = loadPixmap( pathString + "1rightarrowB" ); 796 icon = loadPixmap( pathString + "1rightarrowB" );
797 configureToolBarMenu->insertItem(icon, i18n("Go forward"), 220); 797 configureToolBarMenu->insertItem(icon, i18n("Go forward"), 220);
798 if (p-> mShowIconForward) { 798 if (p-> mShowIconForward) {
799 action = new QAction( i18n("Go forward"), icon, i18n("Go forward"),0 , this ); 799 action = new QAction( i18n("Go forward"), icon, i18n("Go forward"),0 , this );
800 connect( action, SIGNAL( activated() ), 800 connect( action, SIGNAL( activated() ),
801 mView, SLOT( goNext() ) ); 801 mView, SLOT( goNext() ) );
802 action->addTo( iconToolBar ); 802 action->addTo( iconToolBar );
803 } 803 }
804 icon = loadPixmap( pathString + "2rightarrowB" ); 804 icon = loadPixmap( pathString + "2rightarrowB" );
805 configureToolBarMenu->insertItem(icon, i18n("Next month"), 230); 805 configureToolBarMenu->insertItem(icon, i18n("Next month"), 230);
806 if (p-> mShowIconForwardFast) { 806 if (p-> mShowIconForwardFast) {
807 action = new QAction( i18n("Next month"), icon, i18n("Next month"),0 , this ); 807 action = new QAction( i18n("Next month"), icon, i18n("Next month"),0 , this );
808 connect( action, SIGNAL( activated() ), 808 connect( action, SIGNAL( activated() ),
809 mView, SLOT( goNextMonth() ) ); 809 mView, SLOT( goNextMonth() ) );
810 action->addTo( iconToolBar ); 810 action->addTo( iconToolBar );
811 } 811 }
812 812
813 813
814 configureToolBarMenu->insertItem(i18n("What's This?"), 300); 814 configureToolBarMenu->insertItem(i18n("What's This?"), 300);
815 815
816 if (p-> mShowIconNewEvent) 816 if (p-> mShowIconNewEvent)
817 configureToolBarMenu->setItemChecked( 10, true ); 817 configureToolBarMenu->setItemChecked( 10, true );
818 if (p->mShowIconNewTodo ) 818 if (p->mShowIconNewTodo )
819 configureToolBarMenu->setItemChecked( 20, true ); 819 configureToolBarMenu->setItemChecked( 20, true );
820 if (p-> mShowIconSearch) 820 if (p-> mShowIconSearch)
821 configureToolBarMenu->setItemChecked( 120, true ); 821 configureToolBarMenu->setItemChecked( 120, true );
822 if (p-> mShowIconList) 822 if (p-> mShowIconList)
823 configureToolBarMenu->setItemChecked( 30, true ); 823 configureToolBarMenu->setItemChecked( 30, true );
824 if (p-> mShowIconDay1) 824 if (p-> mShowIconDay1)
825 configureToolBarMenu->setItemChecked( 40, true ); 825 configureToolBarMenu->setItemChecked( 40, true );
826 if (p-> mShowIconDay5) 826 if (p-> mShowIconDay5)
827 configureToolBarMenu->setItemChecked( 50, true ); 827 configureToolBarMenu->setItemChecked( 50, true );
828 if (p-> mShowIconDay7) 828 if (p-> mShowIconDay7)
829 configureToolBarMenu->setItemChecked( 60, true ); 829 configureToolBarMenu->setItemChecked( 60, true );
830 if (p-> mShowIconMonth) 830 if (p-> mShowIconMonth)
831 configureToolBarMenu->setItemChecked( 70, true ); 831 configureToolBarMenu->setItemChecked( 70, true );
832 if (p-> mShowIconTodoview) 832 if (p-> mShowIconTodoview)
833 configureToolBarMenu->setItemChecked( 80, true ); 833 configureToolBarMenu->setItemChecked( 80, true );
834 if (p-> mShowIconBackFast) 834 if (p-> mShowIconBackFast)
835 configureToolBarMenu->setItemChecked( 200, true ); 835 configureToolBarMenu->setItemChecked( 200, true );
836 if (p-> mShowIconBack) 836 if (p-> mShowIconBack)
837 configureToolBarMenu->setItemChecked( 210, true ); 837 configureToolBarMenu->setItemChecked( 210, true );
838 if (p-> mShowIconToday) 838 if (p-> mShowIconToday)
839 configureToolBarMenu->setItemChecked( 130, true ); 839 configureToolBarMenu->setItemChecked( 130, true );
840 if (p-> mShowIconForward) 840 if (p-> mShowIconForward)
841 configureToolBarMenu->setItemChecked( 220, true ); 841 configureToolBarMenu->setItemChecked( 220, true );
842 if (p-> mShowIconForwardFast) 842 if (p-> mShowIconForwardFast)
843 configureToolBarMenu->setItemChecked( 230, true ); 843 configureToolBarMenu->setItemChecked( 230, true );
844 if (p-> mShowIconNextDays) 844 if (p-> mShowIconNextDays)
845 configureToolBarMenu->setItemChecked( 100, true ); 845 configureToolBarMenu->setItemChecked( 100, true );
846 if (p-> mShowIconNext) 846 if (p-> mShowIconNext)
847 configureToolBarMenu->setItemChecked( 110, true ); 847 configureToolBarMenu->setItemChecked( 110, true );
848 if (p-> mShowIconJournal) 848 if (p-> mShowIconJournal)
849 configureToolBarMenu->setItemChecked( 90, true ); 849 configureToolBarMenu->setItemChecked( 90, true );
850 if (p-> mShowIconWhatsThis) 850 if (p-> mShowIconWhatsThis)
851 configureToolBarMenu->setItemChecked( 300, true ); 851 configureToolBarMenu->setItemChecked( 300, true );
852 852
853 QLabel* dummy = new QLabel( iconToolBar ); 853 QLabel* dummy = new QLabel( iconToolBar );
854 dummy->setBackgroundColor( iconToolBar->backgroundColor() ); 854 dummy->setBackgroundColor( iconToolBar->backgroundColor() );
855 if (!p-> mShowIconStretch) 855 if (!p-> mShowIconStretch)
856 iconToolBar->setStretchableWidget ( dummy ) ; 856 iconToolBar->setStretchableWidget ( dummy ) ;
857 else 857 else
858 configureToolBarMenu->setItemChecked( 5, true ); 858 configureToolBarMenu->setItemChecked( 5, true );
859 if (p-> mShowIconWhatsThis) 859 if (p-> mShowIconWhatsThis)
860 QWhatsThis::whatsThisButton ( iconToolBar ); 860 QWhatsThis::whatsThisButton ( iconToolBar );
861 connect( configureToolBarMenu, SIGNAL( activated( int ) ),this, SLOT(configureToolBar( int ) ) ); 861 connect( configureToolBarMenu, SIGNAL( activated( int ) ),this, SLOT(configureToolBar( int ) ) );
862 configureAgenda( p->mHourSize ); 862 configureAgenda( p->mHourSize );
863 connect( configureAgendaMenu, SIGNAL( activated( int ) ),this, SLOT(configureAgenda( int ) ) ); 863 connect( configureAgendaMenu, SIGNAL( activated( int ) ),this, SLOT(configureAgenda( int ) ) );
864} 864}
865void MainWindow::fillSyncMenu() 865void MainWindow::fillSyncMenu()
866{ 866{
867 if ( syncMenu->count() ) 867 if ( syncMenu->count() )
868 syncMenu->clear(); 868 syncMenu->clear();
869 syncMenu->insertItem( i18n("Configure..."), 0 ); 869 syncMenu->insertItem( i18n("Configure..."), 0 );
870 syncMenu->insertSeparator(); 870 syncMenu->insertSeparator();
871 if ( mServerSocket == 0 ) { 871 if ( mServerSocket == 0 ) {
872 syncMenu->insertItem( i18n("Enable Easy-Pi-Sync"), 2 ); 872 syncMenu->insertItem( i18n("Enable Easy-Pi-Sync"), 2 );
873 } else { 873 } else {
874 syncMenu->insertItem( i18n("Disable Easy-Pi-Sync"), 3 ); 874 syncMenu->insertItem( i18n("Disable Easy-Pi-Sync"), 3 );
875 } 875 }
876 syncMenu->insertSeparator(); 876 syncMenu->insertSeparator();
877 syncMenu->insertItem( i18n("New Easy-Pi-Sync!"), 4 ); 877 syncMenu->insertItem( i18n("New Easy-Pi-Sync!"), 4 );
878 syncMenu->insertItem( i18n("Quick Easy-Pi-Sync!"), 5 ); 878 syncMenu->insertItem( i18n("Quick Easy-Pi-Sync!"), 5 );
879 syncMenu->insertSeparator(); 879 syncMenu->insertSeparator();
880 syncMenu->insertItem( i18n("Multiple sync"), 1 ); 880 syncMenu->insertItem( i18n("Multiple sync"), 1 );
881 syncMenu->insertSeparator(); 881 syncMenu->insertSeparator();
882 KConfig config ( locateLocal( "config","ksyncprofilesrc" ) ); 882 KConfig config ( locateLocal( "config","ksyncprofilesrc" ) );
883 config.setGroup("General"); 883 config.setGroup("General");
884 QStringList prof = config.readListEntry("SyncProfileNames"); 884 QStringList prof = config.readListEntry("SyncProfileNames");
885 KOPrefs::instance()->mLocalMachineName = config.readEntry("LocalMachineName","undefined"); 885 KOPrefs::instance()->mLocalMachineName = config.readEntry("LocalMachineName","undefined");
886 if ( prof.count() < 3 ) { 886 if ( prof.count() < 3 ) {
887 prof.clear(); 887 prof.clear();
888 prof << i18n("Sharp_DTM"); 888 prof << i18n("Sharp_DTM");
889 prof << i18n("Local_file"); 889 prof << i18n("Local_file");
890 prof << i18n("Last_file"); 890 prof << i18n("Last_file");
891 KSyncProfile* temp = new KSyncProfile (); 891 KSyncProfile* temp = new KSyncProfile ();
892 temp->setName( prof[0] ); 892 temp->setName( prof[0] );
893 temp->writeConfig(&config); 893 temp->writeConfig(&config);
894 temp->setName( prof[1] ); 894 temp->setName( prof[1] );
895 temp->writeConfig(&config); 895 temp->writeConfig(&config);
896 temp->setName( prof[2] ); 896 temp->setName( prof[2] );
897 temp->writeConfig(&config); 897 temp->writeConfig(&config);
898 config.setGroup("General"); 898 config.setGroup("General");
899 config.writeEntry("SyncProfileNames",prof); 899 config.writeEntry("SyncProfileNames",prof);
900 config.writeEntry("ExternSyncProfiles","Sharp_DTM"); 900 config.writeEntry("ExternSyncProfiles","Sharp_DTM");
901 config.sync(); 901 config.sync();
902 delete temp; 902 delete temp;
903 } 903 }
904 KOPrefs::instance()->mExternSyncProfiles = config.readListEntry("ExternSyncProfiles"); 904 KOPrefs::instance()->mExternSyncProfiles = config.readListEntry("ExternSyncProfiles");
905 KOPrefs::instance()->mSyncProfileNames = prof; 905 KOPrefs::instance()->mSyncProfileNames = prof;
906 int i; 906 int i;
907 for ( i = 0; i < prof.count(); ++i ) { 907 for ( i = 0; i < prof.count(); ++i ) {
908 908
909 syncMenu->insertItem( prof[i], 1000+i ); 909 syncMenu->insertItem( prof[i], 1000+i );
910 if ( i == 2 ) 910 if ( i == 2 )
911 syncMenu->insertSeparator(); 911 syncMenu->insertSeparator();
912 } 912 }
913 QDir app_dir; 913 QDir app_dir;
914 if ( !app_dir.exists(QDir::homeDirPath()+"/Applications/dtm" ) ) { 914 if ( !app_dir.exists(QDir::homeDirPath()+"/Applications/dtm" ) ) {
915 syncMenu->setItemEnabled( false , 1000 ); 915 syncMenu->setItemEnabled( false , 1000 );
916 } 916 }
917 mView->setupExternSyncProfiles(); 917 mView->setupExternSyncProfiles();
918} 918}
919 919
920int MainWindow::ringSync() 920int MainWindow::ringSync()
921{ 921{
922 int syncedProfiles = 0; 922 int syncedProfiles = 0;
923 int i; 923 int i;
924 QTime timer; 924 QTime timer;
925 KConfig config ( locateLocal( "config","ksyncprofilesrc" ) ); 925 KConfig config ( locateLocal( "config","ksyncprofilesrc" ) );
926 QStringList syncProfileNames = KOPrefs::instance()->mSyncProfileNames; 926 QStringList syncProfileNames = KOPrefs::instance()->mSyncProfileNames;
927 KSyncProfile* temp = new KSyncProfile (); 927 KSyncProfile* temp = new KSyncProfile ();
928 KOPrefs::instance()->mAskForPreferences = false; 928 KOPrefs::instance()->mAskForPreferences = false;
929 for ( i = 0; i < syncProfileNames.count(); ++i ) { 929 for ( i = 0; i < syncProfileNames.count(); ++i ) {
930 mCurrentSyncProfile = i; 930 mCurrentSyncProfile = i;
931 temp->setName(syncProfileNames[mCurrentSyncProfile]); 931 temp->setName(syncProfileNames[mCurrentSyncProfile]);
932 temp->readConfig(&config); 932 temp->readConfig(&config);
933 if ( temp->getIncludeInRingSync() && ( i < 1 || i > 2 )) { 933 if ( temp->getIncludeInRingSync() && ( i < 1 || i > 2 )) {
934 setCaption(i18n("Profile ")+syncProfileNames[mCurrentSyncProfile]+ i18n(" is synced ... ")); 934 setCaption(i18n("Profile ")+syncProfileNames[mCurrentSyncProfile]+ i18n(" is synced ... "));
935 ++syncedProfiles; 935 ++syncedProfiles;
936 // KOPrefs::instance()->mAskForPreferences = temp->getAskForPreferences(); 936 // KOPrefs::instance()->mAskForPreferences = temp->getAskForPreferences();
937 KOPrefs::instance()->mWriteBackFile = temp->getWriteBackFile(); 937 KOPrefs::instance()->mWriteBackFile = temp->getWriteBackFile();
938 KOPrefs::instance()->mWriteBackExistingOnly = temp->getWriteBackExisting(); 938 KOPrefs::instance()->mWriteBackExistingOnly = temp->getWriteBackExisting();
939 KOPrefs::instance()->mWriteBackInFuture = 0; 939 KOPrefs::instance()->mWriteBackInFuture = 0;
940 if ( temp->getWriteBackFuture() ) 940 if ( temp->getWriteBackFuture() )
941 KOPrefs::instance()->mWriteBackInFuture = temp->getWriteBackFutureWeeks( ); 941 KOPrefs::instance()->mWriteBackInFuture = temp->getWriteBackFutureWeeks( );
942 KOPrefs::instance()->mShowSyncSummary = false; 942 KOPrefs::instance()->mShowSyncSummary = false;
943 mView->setSyncDevice(syncProfileNames[i] ); 943 mView->setSyncDevice(syncProfileNames[i] );
944 mView->setSyncName( KOPrefs::instance()->mLocalMachineName ); 944 mView->setSyncName( KOPrefs::instance()->mLocalMachineName );
945 if ( i == 0 ) { 945 if ( i == 0 ) {
946 syncSharp(); 946 syncSharp();
947 } else { 947 } else {
948 if ( temp->getIsLocalFileSync() ) { 948 if ( temp->getIsLocalFileSync() ) {
949 if ( syncWithFile( temp->getRemoteFileName( ), true ) ) 949 if ( syncWithFile( temp->getRemoteFileName( ), true ) )
950 KOPrefs::instance()->mLastSyncedLocalFile = temp->getRemoteFileName(); 950 KOPrefs::instance()->mLastSyncedLocalFile = temp->getRemoteFileName();
951 } else { 951 } else {
952 if ( temp->getIsPhoneSync() ) { 952 if ( temp->getIsPhoneSync() ) {
953 KOPrefs::instance()->mPhoneDevice = temp->getPhoneDevice( ) ; 953 KOPrefs::instance()->mPhoneDevice = temp->getPhoneDevice( ) ;
954 KOPrefs::instance()->mPhoneConnection = temp->getPhoneConnection( ); 954 KOPrefs::instance()->mPhoneConnection = temp->getPhoneConnection( );
955 KOPrefs::instance()->mPhoneModel = temp->getPhoneModel( ); 955 KOPrefs::instance()->mPhoneModel = temp->getPhoneModel( );
956 syncPhone(); 956 syncPhone();
957 } else 957 } else
958 syncRemote( temp, false ); 958 syncRemote( temp, false );
959 959
960 } 960 }
961 } 961 }
962 timer.start(); 962 timer.start();
963 setCaption(i18n("Multiple sync in progress ... please wait!") ); 963 setCaption(i18n("Multiple sync in progress ... please wait!") );
964 while ( timer.elapsed () < 2000 ) { 964 while ( timer.elapsed () < 2000 ) {
965 qApp->processEvents(); 965 qApp->processEvents();
966#ifndef _WIN32_ 966#ifndef _WIN32_
967 sleep (1); 967 sleep (1);
968#endif 968#endif
969 } 969 }
970 970
971 } 971 }
972 972
973 } 973 }
974 delete temp; 974 delete temp;
975 return syncedProfiles; 975 return syncedProfiles;
976} 976}
977 977
978void MainWindow::multiSync( bool askforPrefs ) 978void MainWindow::multiSync( bool askforPrefs )
979{ 979{
980 if (mBlockSaveFlag) 980 if (mBlockSaveFlag)
981 return; 981 return;
982 mBlockSaveFlag = true; 982 mBlockSaveFlag = true;
983 QString question = i18n("Do you really want\nto multiple sync\nwith all checked profiles?\nSyncing takes some\ntime - all profiles\nare synced twice!"); 983 QString question = i18n("Do you really want\nto multiple sync\nwith all checked profiles?\nSyncing takes some\ntime - all profiles\nare synced twice!");
984 if ( QMessageBox::information( this, i18n("KO/Pi Sync"), 984 if ( QMessageBox::information( this, i18n("KO/Pi Sync"),
985 question, 985 question,
986 i18n("Yes"), i18n("No"), 986 i18n("Yes"), i18n("No"),
987 0, 0 ) != 0 ) { 987 0, 0 ) != 0 ) {
988 mBlockSaveFlag = false; 988 mBlockSaveFlag = false;
989 setCaption(i18n("Aborted! Nothing synced!")); 989 setCaption(i18n("Aborted! Nothing synced!"));
990 return; 990 return;
991 } 991 }
992 mView->setSyncDevice(i18n("Multiple profiles") ); 992 mView->setSyncDevice(i18n("Multiple profiles") );
993 KOPrefs::instance()->mSyncAlgoPrefs = KOPrefs::instance()->mRingSyncAlgoPrefs; 993 KOPrefs::instance()->mSyncAlgoPrefs = KOPrefs::instance()->mRingSyncAlgoPrefs;
994 if ( askforPrefs ) { 994 if ( askforPrefs ) {
995 mView->edit_sync_options(); 995 mView->edit_sync_options();
996 KOPrefs::instance()->mRingSyncAlgoPrefs = KOPrefs::instance()->mSyncAlgoPrefs; 996 KOPrefs::instance()->mRingSyncAlgoPrefs = KOPrefs::instance()->mSyncAlgoPrefs;
997 } 997 }
998 setCaption(i18n("Multiple sync started.") ); 998 setCaption(i18n("Multiple sync started.") );
999 qApp->processEvents(); 999 qApp->processEvents();
1000 int num = ringSync() ; 1000 int num = ringSync() ;
1001 if ( num > 1 ) 1001 if ( num > 1 )
1002 ringSync(); 1002 ringSync();
1003 mBlockSaveFlag = false; 1003 mBlockSaveFlag = false;
1004 if ( num ) 1004 if ( num )
1005 save(); 1005 save();
1006 if ( num ) 1006 if ( num )
1007 setCaption(i18n("%1 profiles synced. Multiple sync completed!").arg(num) ); 1007 setCaption(i18n("%1 profiles synced. Multiple sync completed!").arg(num) );
1008 else 1008 else
1009 setCaption(i18n("Nothing synced! No profiles defined for multisync!")); 1009 setCaption(i18n("Nothing synced! No profiles defined for multisync!"));
1010 return; 1010 return;
1011} 1011}
1012void MainWindow::slotSyncMenu( int action ) 1012void MainWindow::slotSyncMenu( int action )
1013{ 1013{
1014 qDebug("syncaction %d ", action); 1014 qDebug("syncaction %d ", action);
1015 if ( action == 0 ) { 1015 if ( action == 0 ) {
1016 1016
1017 // seems to be a Qt2 event handling bug 1017 // seems to be a Qt2 event handling bug
1018 // syncmenu.clear causes a segfault at first time 1018 // syncmenu.clear causes a segfault at first time
1019 // when we call it after the main event loop, it is ok 1019 // when we call it after the main event loop, it is ok
1020 // same behaviour when calling OM/Pi via QCOP for the first time 1020 // same behaviour when calling OM/Pi via QCOP for the first time
1021 QTimer::singleShot ( 1, this, SLOT ( confSync() ) ); 1021 QTimer::singleShot ( 1, this, SLOT ( confSync() ) );
1022 //confSync(); 1022 //confSync();
1023 1023
1024 return; 1024 return;
1025 } 1025 }
1026 if ( action == 1 ) { 1026 if ( action == 1 ) {
1027 multiSync( true ); 1027 multiSync( true );
1028 return; 1028 return;
1029 } 1029 }
1030 if ( action == 2 ) { 1030 if ( action == 2 ) {
1031 enableQuick(); 1031 enableQuick();
1032 QTimer::singleShot ( 1, this, SLOT ( fillSyncMenu() ) ); 1032 QTimer::singleShot ( 1, this, SLOT ( fillSyncMenu() ) );
1033 return; 1033 return;
1034 } 1034 }
1035 if ( action == 3 ) { 1035 if ( action == 3 ) {
1036 delete mServerSocket; 1036 delete mServerSocket;
1037 mServerSocket = 0; 1037 mServerSocket = 0;
1038 QTimer::singleShot ( 1, this, SLOT ( fillSyncMenu() ) ); 1038 QTimer::singleShot ( 1, this, SLOT ( fillSyncMenu() ) );
1039 return; 1039 return;
1040 } 1040 }
1041 if ( action == 4 ) { 1041 if ( action == 4 ) {
1042 performQuick(); 1042 performQuick();
1043 return; 1043 return;
1044 } 1044 }
1045 if ( action == 5 ) { 1045 if ( action == 5 ) {
1046 performQuickQuick(); 1046 performQuickQuick();
1047 return; 1047 return;
1048 } 1048 }
1049 1049
1050 if (mBlockSaveFlag) 1050 if (mBlockSaveFlag)
1051 return; 1051 return;
1052 mBlockSaveFlag = true; 1052 mBlockSaveFlag = true;
1053 mCurrentSyncProfile = action - 1000 ; 1053 mCurrentSyncProfile = action - 1000 ;
1054 mView->setSyncDevice(KOPrefs::instance()->mSyncProfileNames[mCurrentSyncProfile] ); 1054 mView->setSyncDevice(KOPrefs::instance()->mSyncProfileNames[mCurrentSyncProfile] );
1055 mView->setSyncName( KOPrefs::instance()->mLocalMachineName ); 1055 mView->setSyncName( KOPrefs::instance()->mLocalMachineName );
1056 KConfig config ( locateLocal( "config","ksyncprofilesrc" ) ); 1056 KConfig config ( locateLocal( "config","ksyncprofilesrc" ) );
1057 KSyncProfile* temp = new KSyncProfile (); 1057 KSyncProfile* temp = new KSyncProfile ();
1058 temp->setName(KOPrefs::instance()->mSyncProfileNames[mCurrentSyncProfile]); 1058 temp->setName(KOPrefs::instance()->mSyncProfileNames[mCurrentSyncProfile]);
1059 temp->readConfig(&config); 1059 temp->readConfig(&config);
1060 KOPrefs::instance()->mAskForPreferences = temp->getAskForPreferences(); 1060 KOPrefs::instance()->mAskForPreferences = temp->getAskForPreferences();
1061 KOPrefs::instance()->mSyncAlgoPrefs = temp->getSyncPrefs(); 1061 KOPrefs::instance()->mSyncAlgoPrefs = temp->getSyncPrefs();
1062 KOPrefs::instance()->mWriteBackFile = temp->getWriteBackFile(); 1062 KOPrefs::instance()->mWriteBackFile = temp->getWriteBackFile();
1063 KOPrefs::instance()->mWriteBackExistingOnly = temp->getWriteBackExisting(); 1063 KOPrefs::instance()->mWriteBackExistingOnly = temp->getWriteBackExisting();
1064 KOPrefs::instance()->mWriteBackInFuture = 0; 1064 KOPrefs::instance()->mWriteBackInFuture = 0;
1065 if ( temp->getWriteBackFuture() ) 1065 if ( temp->getWriteBackFuture() )
1066 KOPrefs::instance()->mWriteBackInFuture = temp->getWriteBackFutureWeeks( ); 1066 KOPrefs::instance()->mWriteBackInFuture = temp->getWriteBackFutureWeeks( );
1067 KOPrefs::instance()->mShowSyncSummary = temp->getShowSummaryAfterSync(); 1067 KOPrefs::instance()->mShowSyncSummary = temp->getShowSummaryAfterSync();
1068 if ( action == 1000 ) { 1068 if ( action == 1000 ) {
1069 syncSharp(); 1069 syncSharp();
1070 1070
1071 } else if ( action == 1001 ) { 1071 } else if ( action == 1001 ) {
1072 syncLocalFile(); 1072 syncLocalFile();
1073 1073
1074 } else if ( action == 1002 ) { 1074 } else if ( action == 1002 ) {
1075 quickSyncLocalFile(); 1075 quickSyncLocalFile();
1076 1076
1077 } else if ( action >= 1003 ) { 1077 } else if ( action >= 1003 ) {
1078 if ( temp->getIsLocalFileSync() ) { 1078 if ( temp->getIsLocalFileSync() ) {
1079 if ( syncWithFile( temp->getRemoteFileName( ), false ) ) 1079 if ( syncWithFile( temp->getRemoteFileName( ), false ) )
1080 KOPrefs::instance()->mLastSyncedLocalFile = temp->getRemoteFileName(); 1080 KOPrefs::instance()->mLastSyncedLocalFile = temp->getRemoteFileName();
1081 } else { 1081 } else {
1082 if ( temp->getIsPhoneSync() ) { 1082 if ( temp->getIsPhoneSync() ) {
1083 KOPrefs::instance()->mPhoneDevice = temp->getPhoneDevice( ) ; 1083 KOPrefs::instance()->mPhoneDevice = temp->getPhoneDevice( ) ;
1084 KOPrefs::instance()->mPhoneConnection = temp->getPhoneConnection( ); 1084 KOPrefs::instance()->mPhoneConnection = temp->getPhoneConnection( );
1085 KOPrefs::instance()->mPhoneModel = temp->getPhoneModel( ); 1085 KOPrefs::instance()->mPhoneModel = temp->getPhoneModel( );
1086 syncPhone(); 1086 syncPhone();
1087 } else 1087 } else
1088 syncRemote( temp ); 1088 syncRemote( temp );
1089 1089
1090 } 1090 }
1091 } 1091 }
1092 delete temp; 1092 delete temp;
1093 mBlockSaveFlag = false; 1093 mBlockSaveFlag = false;
1094} 1094}
1095void MainWindow::setDefaultPreferences() 1095void MainWindow::setDefaultPreferences()
1096{ 1096{
1097 KOPrefs *p = KOPrefs::instance(); 1097 KOPrefs *p = KOPrefs::instance();
1098 1098
1099 p->mCompactDialogs = true; 1099 p->mCompactDialogs = true;
1100 p->mConfirm = true; 1100 p->mConfirm = true;
1101 // p->mEnableQuickTodo = false; 1101 // p->mEnableQuickTodo = false;
1102} 1102}
1103 1103
1104QString MainWindow::resourcePath() 1104QString MainWindow::resourcePath()
1105{ 1105{
1106 return KGlobal::iconLoader()->iconPath(); 1106 return KGlobal::iconLoader()->iconPath();
1107} 1107}
1108 1108
1109void MainWindow::displayText( QString text ,QString cap ) 1109void MainWindow::displayText( QString text ,QString cap )
1110{ 1110{
1111 QDialog dia( this, "name", true ); ; 1111 QDialog dia( this, "name", true ); ;
1112 dia.setCaption( cap ); 1112 dia.setCaption( cap );
1113 QVBoxLayout* lay = new QVBoxLayout( &dia ); 1113 QVBoxLayout* lay = new QVBoxLayout( &dia );
1114 lay->setSpacing( 3 ); 1114 lay->setSpacing( 3 );
1115 lay->setMargin( 3 ); 1115 lay->setMargin( 3 );
1116 QTextBrowser tb ( &dia ); 1116 QTextBrowser tb ( &dia );
1117 lay->addWidget( &tb ); 1117 lay->addWidget( &tb );
1118 tb.setText( text ); 1118 tb.setText( text );
1119#ifdef DESKTOP_VERSION 1119#ifdef DESKTOP_VERSION
1120 dia.resize( 640, 480); 1120 dia.resize( 640, 480);
1121#else 1121#else
1122 dia.showMaximized(); 1122 dia.showMaximized();
1123#endif 1123#endif
1124 dia.exec(); 1124 dia.exec();
1125} 1125}
1126void MainWindow::displayFile( QString fn, QString cap ) 1126void MainWindow::displayFile( QString fn, QString cap )
1127{ 1127{
1128 QString fileName = resourcePath() + fn; 1128 QString fileName = resourcePath() + fn;
1129 QString text; 1129 QString text;
1130 QFile file( fileName ); 1130 QFile file( fileName );
1131 if (!file.open( IO_ReadOnly ) ) { 1131 if (!file.open( IO_ReadOnly ) ) {
1132 return ; 1132 return ;
1133 1133
1134 } 1134 }
1135 QTextStream ts( &file ); 1135 QTextStream ts( &file );
1136 text = ts.read(); 1136 text = ts.read();
1137 file.close(); 1137 file.close();
1138 displayText( text, cap); 1138 displayText( text, cap);
1139} 1139}
1140void MainWindow::features() 1140void MainWindow::features()
1141{ 1141{
1142 1142
1143 displayFile( "featuresKOPI.txt",i18n("KO/Pi Features and hints") ); 1143 displayFile( "featuresKOPI.txt",i18n("KO/Pi Features and hints") );
1144} 1144}
1145 1145
1146void MainWindow::usertrans() 1146void MainWindow::usertrans()
1147{ 1147{
1148 1148
1149 displayFile( "usertranslationHOWTO.txt",i18n("KO/Pi User translation HowTo") ); 1149 displayFile( "usertranslationHOWTO.txt",i18n("KO/Pi User translation HowTo") );
1150} 1150}
1151 1151
1152void MainWindow::synchowto() 1152void MainWindow::synchowto()
1153{ 1153{
1154#if 0 1154#if 0
1155 QPtrList<Incidence> er = mCalendar->rawIncidences(); 1155 QPtrList<Incidence> er = mCalendar->rawIncidences();
1156 Incidence* inR = er.first(); 1156 Incidence* inR = er.first();
1157 VCalFormat vf; 1157 VCalFormat vf;
1158 QString strout; 1158 QString strout;
1159 while ( inR ) { 1159 while ( inR ) {
1160 if ( inR->type() == "Todo" ) 1160 if ( inR->type() == "Todo" )
1161 strout = vf.todoToString( (Todo *) inR ); 1161 strout = vf.todoToString( (Todo *) inR );
1162 if ( inR->type() == "Event" ) 1162 if ( inR->type() == "Event" )
1163 strout = vf.eventToString( (Event *) inR ); 1163 strout = vf.eventToString( (Event *) inR );
1164 qDebug("incidence: \n%s\n ente\n\n",strout.latin1() ); 1164 qDebug("incidence: \n%s\n ente\n\n",strout.latin1() );
1165 inR = er.next(); 1165 inR = er.next();
1166 } 1166 }
1167#endif 1167#endif
1168 displayFile( "howtoSYNC.txt",i18n("KO/Pi Synchronization HowTo") ); 1168 displayFile( "howtoSYNC.txt",i18n("KO/Pi Synchronization HowTo") );
1169} 1169}
1170void MainWindow::faq() 1170void MainWindow::faq()
1171{ 1171{
1172 displayFile( "kopiFAQ.txt",i18n("KO/Pi FAQ") ); 1172 displayFile( "kopiFAQ.txt",i18n("KO/Pi FAQ") );
1173 1173
1174} 1174}
1175void MainWindow::whatsNew() 1175void MainWindow::whatsNew()
1176{ 1176{
1177 displayFile( "kopiWhatsNew.txt",i18n("KO/Pi Version Info") ); 1177 displayFile( "kopiWhatsNew.txt",i18n("KO/Pi Version Info") );
1178 1178
1179} 1179}
1180void MainWindow::licence() 1180void MainWindow::licence()
1181{ 1181{
1182 KApplication::showLicence(); 1182 KApplication::showLicence();
1183 1183
1184} 1184}
1185void MainWindow::about() 1185void MainWindow::about()
1186{ 1186{
1187 QString version; 1187 QString version;
1188#include <../version> 1188#include <../version>
1189 QMessageBox::about( this, i18n("About KOrganizer/Pi"), 1189 QMessageBox::about( this, i18n("About KOrganizer/Pi"),
1190 i18n("KOrganizer/Platform-independent\n") + 1190 i18n("KOrganizer/Platform-independent\n") +
1191 "(KO/Pi) " + version + " - " + 1191 "(KO/Pi) " + version + " - " +
1192 1192
1193#ifdef DESKTOP_VERSION 1193#ifdef DESKTOP_VERSION
1194 i18n("Desktop Edition\n") + 1194 i18n("Desktop Edition\n") +
1195#else 1195#else
1196 i18n("PDA-Edition\nfor: Zaurus 5x00 / 7x0 / 8x0\n") + 1196 i18n("PDA-Edition\nfor: Zaurus 5x00 / 7x0 / 8x0\n") +
1197#endif 1197#endif
1198 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") ); 1198 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") );
1199} 1199}
1200void MainWindow::keyBindings() 1200void MainWindow::keyBindings()
1201{ 1201{
1202 QString cap = i18n("Key bindings KOrganizer/Pi"); 1202 QString cap = i18n("Key bindings KOrganizer/Pi");
1203 QString text = i18n("<p><h2>KO/Pi key shortcuts:</h2></p>\n") + 1203 QString text = i18n("<p><h2>KO/Pi key shortcuts:</h2></p>\n") +
1204 i18n("<p><b>H</b>: This help dialog | <b>S</b>: Search dialog</p>\n")+ 1204 i18n("<p><b>H</b>: This help dialog | <b>S</b>: Search dialog</p>\n")+
1205 i18n("<p><b>I</b>: Show info for selected event/todo</p>\n") + 1205 i18n("<p><b>I</b>: Show info for selected event/todo</p>\n") +
1206 i18n("<p><b>Space</b>: Toggle fullscreen | <b>P</b>: Date picker</p>\n")+ 1206 i18n("<p><b>Space</b>: Toggle fullscreen | <b>P</b>: Date picker</p>\n")+
1207 i18n("<p><b>F</b>: Toggle filterview |<b>F+ctrl</b>: Edit filter </p>\n")+ 1207 i18n("<p><b>F</b>: Toggle filterview |<b>F+ctrl</b>: Edit filter </p>\n")+
1208 i18n("<p><b>O</b>: Filter On/Off | <b>J</b>: Journal view</p>\n")+ 1208 i18n("<p><b>O</b>: Filter On/Off | <b>J</b>: Journal view</p>\n")+
1209 i18n("<p><b>1-0</b> (+<b>ctrl</b>): Select filter 1-10 (11-20)</p>\n")+ 1209 i18n("<p><b>1-0</b> (+<b>ctrl</b>): Select filter 1-10 (11-20)</p>\n")+
1210 i18n("<p><b>N</b>: Next days view| <b>W</b>: What's next view\n ")+ 1210 i18n("<p><b>N</b>: Next days view| <b>W</b>: What's next view\n ")+
1211 i18n("<p><b>V</b>: Todo view | <b>L</b>: Event list view</p>\n")+ 1211 i18n("<p><b>V</b>: Todo view | <b>L</b>: Event list view</p>\n")+
1212 i18n("<p><b>Z,Y</b>: Work week view | <b>U</b>: Week view</p>\n")+ 1212 i18n("<p><b>Z,Y</b>: Work week view | <b>U</b>: Week view</p>\n")+
1213 i18n("<p><b>D</b>: One day view | <b>M</b>: Month view</p>\n")+ 1213 i18n("<p><b>D</b>: One day view | <b>M</b>: Month view</p>\n")+
1214 i18n("<p><b>E</b>: Edit selected item |<b> E+ctrl</b>: New Event</p>\n")+ 1214 i18n("<p><b>E</b>: Edit selected item |<b> E+ctrl</b>: New Event</p>\n")+
1215 i18n("<p><b>T</b>: Goto today | <b>T+ctrl</b>: New Todo</p>\n")+ 1215 i18n("<p><b>T</b>: Goto today | <b>T+ctrl</b>: New Todo</p>\n")+
1216 i18n("<p><b>S+ctrl</b>: Add sub-todo | <b>X</b>: Toggle datenavigator</p>\n")+ 1216 i18n("<p><b>S+ctrl</b>: Add sub-todo | <b>X</b>: Toggle datenavigator</p>\n")+
1217 i18n("<p><b>+,-</b> : Zoom in/out agenda | <b>A</b>: Toggle allday agenda height</p>\n")+ 1217 i18n("<p><b>+,-</b> : Zoom in/out agenda | <b>A</b>: Toggle allday agenda height</p>\n")+
1218 i18n("<p><b>C</b>: Show current time in agenda view</p>\n")+ 1218 i18n("<p><b>C</b>: Show current time in agenda view</p>\n")+
1219 i18n("<p><b>B</b>: Edit description (details) of selected item</p>\n")+ 1219 i18n("<p><b>B</b>: Edit description (details) of selected item</p>\n")+
1220 i18n("<p><b>right</b>: Next week | <b>right+ctrl</b>: Next month</p>\n")+ 1220 i18n("<p><b>right</b>: Next week | <b>right+ctrl</b>: Next month</p>\n")+
1221 i18n("<p><b>left</b>: Prev. week | <b>left+ctrl</b>: Prev. month</p>\n")+ 1221 i18n("<p><b>left</b>: Prev. week | <b>left+ctrl</b>: Prev. month</p>\n")+
1222 i18n("<p><b>del,backspace</b>: Delete selected item</p>\n")+ 1222 i18n("<p><b>del,backspace</b>: Delete selected item</p>\n")+
1223 i18n("<p><h3>In agenda view:</h3></p>\n") + 1223 i18n("<p><h3>In agenda view:</h3></p>\n") +
1224 i18n("<p><b>up/down</b>: Scroll agenda view</p>\n")+ 1224 i18n("<p><b>up/down</b>: Scroll agenda view</p>\n")+
1225 i18n("<p><b>ctrl+up/down</b>: Scroll small todo view</p>\n")+ 1225 i18n("<p><b>ctrl+up/down</b>: Scroll small todo view</p>\n")+
1226 i18n("<p><h3>In todo view:</h3></p>\n") + 1226 i18n("<p><h3>In todo view:</h3></p>\n") +
1227 i18n("<p><b>Q</b>: Toggle quick todo line edit.</p>\n")+ 1227 i18n("<p><b>Q</b>: Toggle quick todo line edit.</p>\n")+
1228 i18n("<p><b>I</b>: Show info of current item+one step down.</p>\n")+ 1228 i18n("<p><b>I</b>: Show info of current item+one step down.</p>\n")+
1229 i18n("<p><b>return</b>: Mark item as completed+one step down.</p>\n")+ 1229 i18n("<p><b>return</b>: Mark item as completed+one step down.</p>\n")+
1230 i18n("<p><b>return+shift</b>: Mark item as not completed+one step down</p>\n")+ 1230 i18n("<p><b>return+shift</b>: Mark item as not completed+one step down</p>\n")+
1231 i18n("<p><h3>In list view:</h3></p>\n") + 1231 i18n("<p><h3>In list view:</h3></p>\n") +
1232 i18n("<p><b>I</b>: Show info of current item+one step down.</p>\n")+ 1232 i18n("<p><b>I</b>: Show info of current item+one step down.</p>\n")+
1233 i18n("<p><b>return</b>: Select item+one step down</p>\n")+ 1233 i18n("<p><b>return</b>: Select item+one step down</p>\n")+
1234 i18n("<p><b>return+shift</b>: Deselect item+one step down</p>\n")+ 1234 i18n("<p><b>return+shift</b>: Deselect item+one step down</p>\n")+
1235 i18n("<p><b>up/down</b>: Next/prev item</p>\n")+ 1235 i18n("<p><b>up/down</b>: Next/prev item</p>\n")+
1236 i18n("<p><b>ctrl+up/down</b>: Goto up/down by 20% of items</p>\n")+ 1236 i18n("<p><b>ctrl+up/down</b>: Goto up/down by 20% of items</p>\n")+
1237 i18n("<p><b>shift+up/down</b>: Goto first/last item</p>\n")+ 1237 i18n("<p><b>shift+up/down</b>: Goto first/last item</p>\n")+
1238 i18n("<p><h3>In event/todo viewer:</h3></p>\n") + 1238 i18n("<p><h3>In event/todo viewer:</h3></p>\n") +
1239 i18n("<p><b>I,C</b>: Close dialog.</p>\n")+ 1239 i18n("<p><b>I,C</b>: Close dialog.</p>\n")+
1240 i18n("<p><b>A</b>: Show agenda view.</p>\n")+ 1240 i18n("<p><b>A</b>: Show agenda view.</p>\n")+
1241 i18n("<p><b>E</b>: Edit item</p>\n") + 1241 i18n("<p><b>E</b>: Edit item</p>\n") +
1242 i18n("<p><h2>KO/Pi icon colors:</h2></p>\n") + 1242 i18n("<p><h2>KO/Pi icon colors:</h2></p>\n") +
1243 i18n("<p><b>(for square icons in agenda and month view)</b></p>\n") + 1243 i18n("<p><b>(for square icons in agenda and month view)</b></p>\n") +
1244 i18n("<p><b>Cross</b>: Item cancelled.([c] in Whats'Next view)</p>\n")+ 1244 i18n("<p><b>Cross</b>: Item cancelled.([c] in Whats'Next view)</p>\n")+
1245 i18n("<p><b>Red</b>: Alarm set.([a] in Whats'Next view)</p>\n")+ 1245 i18n("<p><b>Red</b>: Alarm set.([a] in Whats'Next view)</p>\n")+
1246 i18n("<p><b>Blue</b>: Recurrent event.([r] in Whats'Next view)</p>\n")+ 1246 i18n("<p><b>Blue</b>: Recurrent event.([r] in Whats'Next view)</p>\n")+
1247 i18n("<p><b>Dark green</b>: Information(description) available.([i] in WN view)</p>\n")+ 1247 i18n("<p><b>Dark green</b>: Information(description) available.([i] in WN view)</p>\n")+
1248 i18n("<p><b>Black</b>: Event/todo with attendees. You are the organizer!</p>\n")+ 1248 i18n("<p><b>Black</b>: Event/todo with attendees. You are the organizer!</p>\n")+
1249 i18n("<p><b>Dark yellow</b>: Event/todo with attendees.</p>\n") + 1249 i18n("<p><b>Dark yellow</b>: Event/todo with attendees.</p>\n") +
1250 i18n("<p><b>White</b>: Item readonly</p>\n"); 1250 i18n("<p><b>White</b>: Item readonly</p>\n");
1251 displayText( text, cap); 1251 displayText( text, cap);
1252 1252
1253} 1253}
1254void MainWindow::aboutAutoSaving() 1254void MainWindow::aboutAutoSaving()
1255{ 1255{
1256 QMessageBox* msg; 1256 QMessageBox* msg;
1257 msg = new QMessageBox( i18n("Auto Saving in KOrganizer/Pi"), 1257 msg = new QMessageBox( i18n("Auto Saving in KOrganizer/Pi"),
1258 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, 1258 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,
1259 QMessageBox::Ok, 1259 QMessageBox::Ok,
1260 QMessageBox::NoButton, 1260 QMessageBox::NoButton,
1261 QMessageBox::NoButton); 1261 QMessageBox::NoButton);
1262 msg->exec(); 1262 msg->exec();
1263 delete msg; 1263 delete msg;
1264 1264
1265 1265
1266} 1266}
1267void MainWindow::aboutKnownBugs() 1267void MainWindow::aboutKnownBugs()
1268{ 1268{
1269 QMessageBox* msg; 1269 QMessageBox* msg;
1270 msg = new QMessageBox( i18n("Known Problems in KOrganizer/Pi"), 1270 msg = new QMessageBox( i18n("Known Problems in KOrganizer/Pi"),
1271 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")+ 1271 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")+
1272 i18n("2) Audio alarm daemon\nfor Zaurus is available!\nas an additional small application\n")+ 1272 i18n("2) Audio alarm daemon\nfor Zaurus is available!\nas an additional small application\n")+
1273 i18n("\nPlease report unexpected behaviour to\nlutz@pi-sync.net\n") + 1273 i18n("\nPlease report unexpected behaviour to\nlutz@pi-sync.net\n") +
1274 i18n("\nor report them in the bugtracker on\n") + 1274 i18n("\nor report them in the bugtracker on\n") +
1275 i18n("\nhttp://sourceforge.net/projects/kdepimpi\n"), 1275 i18n("\nhttp://sourceforge.net/projects/kdepimpi\n"),
1276 QMessageBox::NoIcon, 1276 QMessageBox::NoIcon,
1277 QMessageBox::Ok, 1277 QMessageBox::Ok,
1278 QMessageBox::NoButton, 1278 QMessageBox::NoButton,
1279 QMessageBox::NoButton); 1279 QMessageBox::NoButton);
1280 msg->exec(); 1280 msg->exec();
1281 delete msg; 1281 delete msg;
1282 1282
1283} 1283}
1284 1284
1285QString MainWindow::defaultFileName() 1285QString MainWindow::defaultFileName()
1286{ 1286{
1287 return locateLocal( "data", "korganizer/mycalendar.ics" ); 1287 return locateLocal( "data", "korganizer/mycalendar.ics" );
1288} 1288}
1289 1289
1290void MainWindow::processIncidenceSelection( Incidence *incidence ) 1290void MainWindow::processIncidenceSelection( Incidence *incidence )
1291{ 1291{
1292 if ( !incidence ) { 1292 if ( !incidence ) {
1293 enableIncidenceActions( false ); 1293 enableIncidenceActions( false );
1294 1294
1295 mNewSubTodoAction->setEnabled( false ); 1295 mNewSubTodoAction->setEnabled( false );
1296 setCaptionToDates(); 1296 setCaptionToDates();
1297 return; 1297 return;
1298 1298
1299 } 1299 }
1300 1300
1301 //KGlobal::locale()->formatDateTime(nextA, true); 1301 //KGlobal::locale()->formatDateTime(nextA, true);
1302 QString startString = ""; 1302 QString startString = "";
1303 if ( incidence->type() != "Todo" ) { 1303 if ( incidence->type() != "Todo" ) {
1304 if ( incidence->dtStart().date() < incidence->dtEnd().date() ) { 1304 if ( incidence->dtStart().date() < incidence->dtEnd().date() ) {
1305 if ( incidence->doesFloat() ) { 1305 if ( incidence->doesFloat() ) {
1306 startString += ": "+incidence->dtStartDateStr( true ); 1306 startString += ": "+incidence->dtStartDateStr( true );
1307 startString += " --- "+((Event*)incidence)->dtEndDateStr( true ); 1307 startString += " --- "+((Event*)incidence)->dtEndDateStr( true );
1308 1308
1309 } else { 1309 } else {
1310 startString = ": "+incidence->dtStartStr(true); 1310 startString = ": "+incidence->dtStartStr(true);
1311 startString += " --- "+((Event*)incidence)->dtEndStr(true); 1311 startString += " --- "+((Event*)incidence)->dtEndStr(true);
1312 1312
1313 } 1313 }
1314 1314
1315 } else { 1315 } else {
1316 if ( incidence->dtStart().time() != incidence->dtEnd().time() ) 1316 if ( incidence->dtStart().time() != incidence->dtEnd().time() )
1317 startString = ": "+KGlobal::locale()->formatTime(incidence->dtStart().time())+ 1317 startString = ": "+KGlobal::locale()->formatTime(incidence->dtStart().time())+
1318 "-"+KGlobal::locale()->formatTime(incidence->dtEnd().time()); 1318 "-"+KGlobal::locale()->formatTime(incidence->dtEnd().time());
1319 startString +=" "+KGlobal::locale()->formatDate( incidence->dtStart().date(), true); 1319 startString +=" "+KGlobal::locale()->formatDate( incidence->dtStart().date(), true);
1320 } 1320 }
1321 1321
1322 } 1322 }
1323 else 1323 else
1324 startString = i18n(": (Prio ") +QString::number( (( KCal::Todo*)incidence)->priority() ) +") "+QString::number( (( KCal::Todo*)incidence)->percentComplete() ) +i18n("\% completed"); 1324 startString = i18n(": (Prio ") +QString::number( (( KCal::Todo*)incidence)->priority() ) +") "+QString::number( (( KCal::Todo*)incidence)->percentComplete() ) +i18n("\% completed");
1325 if ( !incidence->location().isEmpty() ) 1325 if ( !incidence->location().isEmpty() )
1326 startString += " (" +incidence->location()+")"; 1326 startString += " (" +incidence->location()+")";
1327 setCaption( incidence->summary()+startString); 1327 setCaption( incidence->summary()+startString);
1328 1328
1329 enableIncidenceActions( true ); 1329 enableIncidenceActions( true );
1330 1330
1331 if ( incidence->type() == "Event" ) { 1331 if ( incidence->type() == "Event" ) {
1332 mShowAction->setText( i18n("Show Event...") ); 1332 mShowAction->setText( i18n("Show Event...") );
1333 mEditAction->setText( i18n("Edit Event...") ); 1333 mEditAction->setText( i18n("Edit Event...") );
1334 mDeleteAction->setText( i18n("Delete Event...") ); 1334 mDeleteAction->setText( i18n("Delete Event...") );
1335 1335
1336 mNewSubTodoAction->setEnabled( false ); 1336 mNewSubTodoAction->setEnabled( false );
1337 } else if ( incidence->type() == "Todo" ) { 1337 } else if ( incidence->type() == "Todo" ) {
1338 mShowAction->setText( i18n("Show Todo...") ); 1338 mShowAction->setText( i18n("Show Todo...") );
1339 mEditAction->setText( i18n("Edit Todo...") ); 1339 mEditAction->setText( i18n("Edit Todo...") );
1340 mDeleteAction->setText( i18n("Delete Todo...") ); 1340 mDeleteAction->setText( i18n("Delete Todo...") );
1341 1341
1342 mNewSubTodoAction->setEnabled( true ); 1342 mNewSubTodoAction->setEnabled( true );
1343 } else { 1343 } else {
1344 mShowAction->setText( i18n("Show...") ); 1344 mShowAction->setText( i18n("Show...") );
1345 mShowAction->setText( i18n("Edit...") ); 1345 mShowAction->setText( i18n("Edit...") );
1346 mShowAction->setText( i18n("Delete...") ); 1346 mShowAction->setText( i18n("Delete...") );
1347 1347
1348 mNewSubTodoAction->setEnabled( false ); 1348 mNewSubTodoAction->setEnabled( false );
1349 } 1349 }
1350} 1350}
1351 1351
1352void MainWindow::enableIncidenceActions( bool enabled ) 1352void MainWindow::enableIncidenceActions( bool enabled )
1353{ 1353{
1354 mShowAction->setEnabled( enabled ); 1354 mShowAction->setEnabled( enabled );
1355 mEditAction->setEnabled( enabled ); 1355 mEditAction->setEnabled( enabled );
1356 mDeleteAction->setEnabled( enabled ); 1356 mDeleteAction->setEnabled( enabled );
1357} 1357}
1358 1358
1359void MainWindow::importOL() 1359void MainWindow::importOL()
1360{ 1360{
1361#ifdef _WIN32_ 1361#ifdef _WIN32_
1362 KOImportOLdialog *id = new KOImportOLdialog("Import from OL - select folder!" , mView->calendar(),this ); 1362 KOImportOLdialog *id = new KOImportOLdialog("Import from OL - select folder!" , mView->calendar(),this );
1363 id->exec(); 1363 id->exec();
1364 delete id; 1364 delete id;
1365 mView->updateView(); 1365 mView->updateView();
1366#endif 1366#endif
1367} 1367}
1368void MainWindow::importBday() 1368void MainWindow::importBday()
1369{ 1369{
1370 int result = QMessageBox::warning( this, i18n("KO/Pi: Warning!"), 1370 int result = QMessageBox::warning( this, i18n("KO/Pi: Warning!"),
1371 i18n("When importing birthdays twice\nduplicated events will be ignored,\nif the event has not been\nchanged in KO/Pi!\n"), 1371 i18n("When importing birthdays twice\nduplicated events will be ignored,\nif the event has not been\nchanged in KO/Pi!\n"),
1372 i18n("Import!"), i18n("Cancel"), 0, 1372 i18n("Import!"), i18n("Cancel"), 0,
1373 0, 1 ); 1373 0, 1 );
1374 if ( result == 0 ) { 1374 if ( result == 0 ) {
1375 mView->importBday(); 1375 mView->importBday();
1376 1376
1377 } 1377 }
1378 1378
1379 1379
1380} 1380}
1381void MainWindow::importQtopia() 1381void MainWindow::importQtopia()
1382{ 1382{
1383#ifndef DESKTOP_VERSION 1383#ifndef DESKTOP_VERSION
1384 int result = QMessageBox::warning( this, i18n("KO/Pi: Warning!"), 1384 int result = QMessageBox::warning( this, i18n("KO/Pi: Warning!"),
1385 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"), 1385 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"),
1386 i18n("Import!"), i18n("Cancel"), 0, 1386 i18n("Import!"), i18n("Cancel"), 0,
1387 0, 1 ); 1387 0, 1 );
1388 if ( result == 0 ) { 1388 if ( result == 0 ) {
1389 QString datebook = Global::applicationFileName( "datebook", "datebook.xml"); 1389 QString datebook = Global::applicationFileName( "datebook", "datebook.xml");
1390 QString todolist = Global::applicationFileName( "todolist", "todolist.xml"); 1390 QString todolist = Global::applicationFileName( "todolist", "todolist.xml");
1391 QString categories = QString( getenv( "HOME" ) ) + "/Settings/Categories.xml"; 1391 QString categories = QString( getenv( "HOME" ) ) + "/Settings/Categories.xml";
1392 mView->importQtopia( categories, datebook, todolist ); 1392 mView->importQtopia( categories, datebook, todolist );
1393 } 1393 }
1394#else 1394#else
1395 int result = QMessageBox::warning( this, i18n("KO/Pi: Warning!"), 1395 int result = QMessageBox::warning( this, i18n("KO/Pi: Warning!"),
1396 i18n("Not supported \non desktop!\n"), 1396 i18n("Not supported \non desktop!\n"),
1397 i18n("Ok"), i18n("Cancel"), 0, 1397 i18n("Ok"), i18n("Cancel"), 0,
1398 0, 1 ); 1398 0, 1 );
1399 1399
1400#endif 1400#endif
1401} 1401}
1402 1402
1403void MainWindow::saveOnClose() 1403void MainWindow::saveOnClose()
1404{ 1404{
1405 KOPrefs *p = KOPrefs::instance(); 1405 KOPrefs *p = KOPrefs::instance();
1406 p->mToolBarHor = ( iconToolBar->orientation () == Qt:: Horizontal ); 1406 p->mToolBarHor = ( iconToolBar->orientation () == Qt:: Horizontal );
1407 p->mToolBarUp = iconToolBar->x() > width()/2 || 1407 p->mToolBarUp = iconToolBar->x() > width()/2 ||
1408 iconToolBar->y() > height()/2; 1408 iconToolBar->y() > height()/2;
1409 mView->writeSettings(); 1409 mView->writeSettings();
1410 if ( mCalendarModifiedFlag || mView->checkFileChanged( defaultFileName())) 1410 if ( mCalendarModifiedFlag || mView->checkFileChanged( defaultFileName()))
1411 save(); 1411 save();
1412} 1412}
1413void MainWindow::slotModifiedChanged( bool changed ) 1413void MainWindow::slotModifiedChanged( bool changed )
1414{ 1414{
1415 if ( mBlockAtStartup ) 1415 if ( mBlockAtStartup )
1416 return; 1416 return;
1417 int msec; 1417 int msec;
1418 // we store the changes after 1 minute, 1418 // we store the changes after 1 minute,
1419 // and for safety reasons after 10 minutes again 1419 // and for safety reasons after 10 minutes again
1420 if ( !mBlockSaveFlag ) 1420 if ( !mBlockSaveFlag )
1421 msec = (1000 * 60*KOPrefs::instance()->mAutoSaveInterval) +1000; 1421 msec = (1000 * 60*KOPrefs::instance()->mAutoSaveInterval) +1000;
1422 else 1422 else
1423 msec = 1000 * 600; 1423 msec = 1000 * 600;
1424 mSaveTimer.start( msec, true ); // 1 minute 1424 mSaveTimer.start( msec, true ); // 1 minute
1425 qDebug("KO: Saving File in %d secs!", msec/1000); 1425 qDebug("KO: Saving File in %d secs!", msec/1000);
1426 mCalendarModifiedFlag = true; 1426 mCalendarModifiedFlag = true;
1427} 1427}
1428void MainWindow::save() 1428void MainWindow::save()
1429{ 1429{
1430 if ( mBlockSaveFlag ) 1430 if ( mBlockSaveFlag )
1431 return; 1431 return;
1432 bool store = mBlockSaveFlag; 1432 bool store = mBlockSaveFlag;
1433 mBlockSaveFlag = true; 1433 mBlockSaveFlag = true;
1434 if ( mView->checkFileVersion( defaultFileName()) ) { 1434 if ( mView->checkFileVersion( defaultFileName()) ) {
1435 1435
1436 QTime neededSaveTime = QDateTime::currentDateTime().time(); 1436 QTime neededSaveTime = QDateTime::currentDateTime().time();
1437 setCaption(i18n("KO/Pi:Saving Data to File ..." )); 1437 setCaption(i18n("KO/Pi:Saving Data to File ..." ));
1438 qDebug("KO: Start saving data to file!"); 1438 qDebug("KO: Start saving data to file!");
1439 mView->setLoadedFileVersion(QDateTime::currentDateTime().addSecs( -1)); 1439 mView->setLoadedFileVersion(QDateTime::currentDateTime().addSecs( -1));
1440 mView->saveCalendar( defaultFileName() ); 1440 mView->saveCalendar( defaultFileName() );
1441 1441
1442 int msNeeded = neededSaveTime.msecsTo( QDateTime::currentDateTime().time() ); 1442 int msNeeded = neededSaveTime.msecsTo( QDateTime::currentDateTime().time() );
1443 mView->watchSavedFile(); 1443 mView->watchSavedFile();
1444 qDebug("KO: Needed %d ms for saving.",msNeeded ); 1444 qDebug("KO: Needed %d ms for saving.",msNeeded );
1445 QString savemes; 1445 QString savemes;
1446 savemes.sprintf(i18n("KO/Pi:File Saved. Needed %d sec, %d ms"),(msNeeded/1000)%100,msNeeded%1000 ); 1446 savemes.sprintf(i18n("KO/Pi:File Saved. Needed %d sec, %d ms"),(msNeeded/1000)%100,msNeeded%1000 );
1447 setCaption(savemes); 1447 setCaption(savemes);
1448 } else 1448 } else
1449 setCaption(i18n("Saving cancelled!")); 1449 setCaption(i18n("Saving cancelled!"));
1450 mCalendarModifiedFlag = false; 1450 mCalendarModifiedFlag = false;
1451 mBlockSaveFlag = store; 1451 mBlockSaveFlag = store;
1452} 1452}
1453 1453
1454void MainWindow::keyReleaseEvent ( QKeyEvent * e) 1454void MainWindow::keyReleaseEvent ( QKeyEvent * e)
1455{ 1455{
1456 if ( !e->isAutoRepeat() ) { 1456 if ( !e->isAutoRepeat() ) {
1457 mFlagKeyPressed = false; 1457 mFlagKeyPressed = false;
1458 } 1458 }
1459} 1459}
1460void MainWindow::keyPressEvent ( QKeyEvent * e ) 1460void MainWindow::keyPressEvent ( QKeyEvent * e )
1461{ 1461{
1462 qApp->processEvents(); 1462 qApp->processEvents();
1463 if ( e->isAutoRepeat() && !mFlagKeyPressed ) { 1463 if ( e->isAutoRepeat() && !mFlagKeyPressed ) {
1464 e->ignore(); 1464 e->ignore();
1465 // qDebug(" ignore %d",e->isAutoRepeat() ); 1465 // qDebug(" ignore %d",e->isAutoRepeat() );
1466 return; 1466 return;
1467 } 1467 }
1468 if (! e->isAutoRepeat() ) 1468 if (! e->isAutoRepeat() )
1469 mFlagKeyPressed = true; 1469 mFlagKeyPressed = true;
1470 KOPrefs *p = KOPrefs::instance(); 1470 KOPrefs *p = KOPrefs::instance();
1471 bool showSelectedDates = false; 1471 bool showSelectedDates = false;
1472 int size; 1472 int size;
1473 int pro = 0; 1473 int pro = 0;
1474 //qDebug("MainWindow::keyPressEvent "); 1474 //qDebug("MainWindow::keyPressEvent ");
1475 switch ( e->key() ) { 1475 switch ( e->key() ) {
1476 case Qt::Key_Right: 1476 case Qt::Key_Right:
1477 if ( e->state() == Qt::ControlButton || e->state() == Qt::ShiftButton) 1477 if ( e->state() == Qt::ControlButton || e->state() == Qt::ShiftButton)
1478 mView->goNextMonth(); 1478 mView->goNextMonth();
1479 else 1479 else
1480 mView->goNext(); 1480 mView->goNext();
1481 showSelectedDates = true; 1481 showSelectedDates = true;
1482 break; 1482 break;
1483 case Qt::Key_Left: 1483 case Qt::Key_Left:
1484 if ( e->state() == Qt::ControlButton|| e->state() == Qt::ShiftButton ) 1484 if ( e->state() == Qt::ControlButton|| e->state() == Qt::ShiftButton )
1485 mView->goPreviousMonth(); 1485 mView->goPreviousMonth();
1486 else 1486 else
1487 mView->goPrevious(); 1487 mView->goPrevious();
1488 showSelectedDates = true; 1488 showSelectedDates = true;
1489 break; 1489 break;
1490 case Qt::Key_Down: 1490 case Qt::Key_Down:
1491 mView->viewManager()->agendaView()->scrollOneHourDown(); 1491 mView->viewManager()->agendaView()->scrollOneHourDown();
1492 break; 1492 break;
1493 case Qt::Key_Up: 1493 case Qt::Key_Up:
1494 mView->viewManager()->agendaView()->scrollOneHourUp(); 1494 mView->viewManager()->agendaView()->scrollOneHourUp();
1495 break; 1495 break;
1496 case Qt::Key_I: 1496 case Qt::Key_I:
1497 mView->showIncidence(); 1497 mView->showIncidence();
1498 break; 1498 break;
1499 case Qt::Key_Delete: 1499 case Qt::Key_Delete:
1500 case Qt::Key_Backspace: 1500 case Qt::Key_Backspace:
1501 mView->deleteIncidence(); 1501 mView->deleteIncidence();
1502 break; 1502 break;
1503 case Qt::Key_D: 1503 case Qt::Key_D:
1504 mView->viewManager()->showDayView(); 1504 mView->viewManager()->showDayView();
1505 showSelectedDates = true; 1505 showSelectedDates = true;
1506 break; 1506 break;
1507 case Qt::Key_O: 1507 case Qt::Key_O:
1508 mView->toggleFilerEnabled( ); 1508 mView->toggleFilerEnabled( );
1509 break; 1509 break;
1510 case Qt::Key_0: 1510 case Qt::Key_0:
1511 case Qt::Key_1: 1511 case Qt::Key_1:
1512 case Qt::Key_2: 1512 case Qt::Key_2:
1513 case Qt::Key_3: 1513 case Qt::Key_3:
1514 case Qt::Key_4: 1514 case Qt::Key_4:
1515 case Qt::Key_5: 1515 case Qt::Key_5:
1516 case Qt::Key_6: 1516 case Qt::Key_6:
1517 case Qt::Key_7: 1517 case Qt::Key_7:
1518 case Qt::Key_8: 1518 case Qt::Key_8:
1519 case Qt::Key_9: 1519 case Qt::Key_9:
1520 pro = e->key()-48; 1520 pro = e->key()-48;
1521 if ( pro == 0 ) 1521 if ( pro == 0 )
1522 pro = 10; 1522 pro = 10;
1523 if ( e->state() == Qt::ControlButton) 1523 if ( e->state() == Qt::ControlButton)
1524 pro += 10; 1524 pro += 10;
1525 break; 1525 break;
1526 case Qt::Key_M: 1526 case Qt::Key_M:
1527 mView->viewManager()->showMonthView(); 1527 mView->viewManager()->showMonthView();
1528 showSelectedDates = true; 1528 showSelectedDates = true;
1529 break; 1529 break;
1530 case Qt::Key_Insert: 1530 case Qt::Key_Insert:
1531 mView->newEvent(); 1531 mView->newEvent();
1532 break; 1532 break;
1533 case Qt::Key_S : 1533 case Qt::Key_S :
1534 if ( e->state() == Qt::ControlButton || e->state() == Qt::ShiftButton) 1534 if ( e->state() == Qt::ControlButton || e->state() == Qt::ShiftButton)
1535 mView->newSubTodo(); 1535 mView->newSubTodo();
1536 else 1536 else
1537 mView->dialogManager()->showSearchDialog(); 1537 mView->dialogManager()->showSearchDialog();
1538 break; 1538 break;
1539 case Qt::Key_Y : 1539 case Qt::Key_Y :
1540 case Qt::Key_Z : 1540 case Qt::Key_Z :
1541 mView->viewManager()->showWorkWeekView(); 1541 mView->viewManager()->showWorkWeekView();
1542 showSelectedDates = true; 1542 showSelectedDates = true;
1543 break; 1543 break;
1544 case Qt::Key_U : 1544 case Qt::Key_U :
1545 mView->viewManager()->showWeekView(); 1545 mView->viewManager()->showWeekView();
1546 showSelectedDates = true; 1546 showSelectedDates = true;
1547 break; 1547 break;
1548 case Qt::Key_H : 1548 case Qt::Key_H :
1549 keyBindings(); 1549 keyBindings();
1550 break; 1550 break;
1551 case Qt::Key_W: 1551 case Qt::Key_W:
1552 mView->viewManager()->showWhatsNextView(); 1552 mView->viewManager()->showWhatsNextView();
1553 break; 1553 break;
1554 case Qt::Key_L: 1554 case Qt::Key_L:
1555 mView->viewManager()->showListView(); 1555 mView->viewManager()->showListView();
1556 break; 1556 break;
1557 case Qt::Key_N: 1557 case Qt::Key_N:
1558 mView->viewManager()->showNextXView(); 1558 mView->viewManager()->showNextXView();
1559 showSelectedDates = true; 1559 showSelectedDates = true;
1560 break; 1560 break;
1561 case Qt::Key_V: 1561 case Qt::Key_V:
1562 mView->viewManager()->showTodoView(); 1562 mView->viewManager()->showTodoView();
1563 break; 1563 break;
1564 case Qt::Key_C: 1564 case Qt::Key_C:
1565 mView->viewManager()->agendaView()->setStartHour( QTime::currentTime ().hour() ); 1565 mView->viewManager()->agendaView()->setStartHour( QTime::currentTime ().hour() );
1566 break; 1566 break;
1567 case Qt::Key_P: 1567 case Qt::Key_P:
1568 mView->showDatePicker( ); 1568 mView->showDatePicker( );
1569 break; 1569 break;
1570 case Qt::Key_F: 1570 case Qt::Key_F:
1571 if ( e->state() == Qt::ControlButton|| e->state() == Qt::ShiftButton ) 1571 if ( e->state() == Qt::ControlButton|| e->state() == Qt::ShiftButton )
1572 mView->editFilters(); 1572 mView->editFilters();
1573 else 1573 else
1574 mView->toggleFilter(); 1574 mView->toggleFilter();
1575 break; 1575 break;
1576 case Qt::Key_X: 1576 case Qt::Key_X:
1577 mView->toggleDateNavigatorWidget(); 1577 mView->toggleDateNavigatorWidget();
1578 break; 1578 break;
1579 case Qt::Key_Space: 1579 case Qt::Key_Space:
1580 mView->toggleExpand(); 1580 mView->toggleExpand();
1581 break; 1581 break;
1582 case Qt::Key_A: 1582 case Qt::Key_A:
1583 mView->toggleAllDaySize(); 1583 mView->toggleAllDaySize();
1584 break; 1584 break;
1585 case Qt::Key_T: 1585 case Qt::Key_T:
1586 if ( e->state() == Qt::ControlButton|| e->state() == Qt::ShiftButton ) 1586 if ( e->state() == Qt::ControlButton|| e->state() == Qt::ShiftButton )
1587 mView->newTodo(); 1587 mView->newTodo();
1588 else { 1588 else {
1589 mView->goToday(); 1589 mView->goToday();
1590 showSelectedDates = true; 1590 showSelectedDates = true;
1591 } 1591 }
1592 break; 1592 break;
1593 case Qt::Key_J: 1593 case Qt::Key_J:
1594 mView->viewManager()->showJournalView(); 1594 mView->viewManager()->showJournalView();
1595 break; 1595 break;
1596 case Qt::Key_B: 1596 case Qt::Key_B:
1597 mView->editIncidenceDescription();; 1597 mView->editIncidenceDescription();;
1598 break; 1598 break;
1599 // case Qt::Key_Return: 1599 // case Qt::Key_Return:
1600 case Qt::Key_E: 1600 case Qt::Key_E:
1601 if ( e->state() == Qt::ControlButton|| e->state() == Qt::ShiftButton ) 1601 if ( e->state() == Qt::ControlButton|| e->state() == Qt::ShiftButton )
1602 mView->newEvent(); 1602 mView->newEvent();
1603 else 1603 else
1604 mView->editIncidence(); 1604 mView->editIncidence();
1605 break; 1605 break;
1606 case Qt::Key_Plus: 1606 case Qt::Key_Plus:
1607 size = p->mHourSize +2; 1607 size = p->mHourSize +2;
1608 if ( size <= 18 ) 1608 if ( size <= 18 )
1609 configureAgenda( size ); 1609 configureAgenda( size );
1610 break; 1610 break;
1611 case Qt::Key_Minus: 1611 case Qt::Key_Minus:
1612 size = p->mHourSize - 2; 1612 size = p->mHourSize - 2;
1613 if ( size >= 4 ) 1613 if ( size >= 4 )
1614 configureAgenda( size ); 1614 configureAgenda( size );
1615 break; 1615 break;
1616 1616
1617 1617
1618 default: 1618 default:
1619 e->ignore(); 1619 e->ignore();
1620 } 1620 }
1621 if ( pro > 0 ) { 1621 if ( pro > 0 ) {
1622 mView->selectFilter( pro-1 ); 1622 mView->selectFilter( pro-1 );
1623 } 1623 }
1624 if ( showSelectedDates ) { 1624 if ( showSelectedDates ) {
1625 ;// setCaptionToDates(); 1625 ;// setCaptionToDates();
1626 } 1626 }
1627 1627
1628} 1628}
1629 1629
1630void MainWindow::fillFilterMenu() 1630void MainWindow::fillFilterMenu()
1631{ 1631{
1632 selectFilterMenu->clear(); 1632 selectFilterMenu->clear();
1633 bool disable = false; 1633 bool disable = false;
1634 if ( mView->filterView()->filtersEnabled() ) { 1634 if ( mView->filterView()->filtersEnabled() ) {
1635 selectFilterMenu->insertItem(i18n ( "Turn filter off" ), 0 ); 1635 selectFilterMenu->insertItem(i18n ( "Turn filter off" ), 0 );
1636 } 1636 }
1637 else { 1637 else {
1638 selectFilterMenu->insertItem(i18n ( "Turn filter on" ), 0 ); 1638 selectFilterMenu->insertItem(i18n ( "Turn filter on" ), 0 );
1639 disable = true; 1639 disable = true;
1640 } 1640 }
1641 selectFilterMenu->insertSeparator(); 1641 selectFilterMenu->insertSeparator();
1642 QPtrList<CalFilter> fili = mView->filters(); 1642 QPtrList<CalFilter> fili = mView->filters();
1643 CalFilter *curfilter = mView->filterView()->selectedFilter(); 1643 CalFilter *curfilter = mView->filterView()->selectedFilter();
1644 CalFilter *filter = fili.first(); 1644 CalFilter *filter = fili.first();
1645 int iii = 1; 1645 int iii = 1;
1646 while(filter) { 1646 while(filter) {
1647 selectFilterMenu->insertItem( filter->name(), iii ); 1647 selectFilterMenu->insertItem( filter->name(), iii );
1648 if ( filter == curfilter) 1648 if ( filter == curfilter)
1649 selectFilterMenu->setItemChecked( iii, true ); 1649 selectFilterMenu->setItemChecked( iii, true );
1650 if ( disable ) 1650 if ( disable )
1651 selectFilterMenu->setItemEnabled( iii, false ); 1651 selectFilterMenu->setItemEnabled( iii, false );
1652 filter = fili.next(); 1652 filter = fili.next();
1653 ++iii; 1653 ++iii;
1654 } 1654 }
1655} 1655}
1656void MainWindow::selectFilter( int fil ) 1656void MainWindow::selectFilter( int fil )
1657{ 1657{
1658 if ( fil == 0 ) { 1658 if ( fil == 0 ) {
1659 mView->toggleFilerEnabled( ); 1659 mView->toggleFilerEnabled( );
1660 } else { 1660 } else {
1661 mView->selectFilter( fil-1 ); 1661 mView->selectFilter( fil-1 );
1662 } 1662 }
1663} 1663}
1664void MainWindow::configureToolBar( int item ) 1664void MainWindow::configureToolBar( int item )
1665{ 1665{
1666 1666
1667 configureToolBarMenu->setItemChecked( item, !configureToolBarMenu-> isItemChecked ( item ) ); 1667 configureToolBarMenu->setItemChecked( item, !configureToolBarMenu-> isItemChecked ( item ) );
1668 KOPrefs *p = KOPrefs::instance(); 1668 KOPrefs *p = KOPrefs::instance();
1669 p-> mShowIconStretch= configureToolBarMenu->isItemChecked( 5 ); 1669 p-> mShowIconStretch= configureToolBarMenu->isItemChecked( 5 );
1670 p-> mShowIconNewEvent= configureToolBarMenu->isItemChecked( 10 ); 1670 p-> mShowIconNewEvent= configureToolBarMenu->isItemChecked( 10 );
1671 p->mShowIconNewTodo = configureToolBarMenu->isItemChecked( 20 ); 1671 p->mShowIconNewTodo = configureToolBarMenu->isItemChecked( 20 );
1672 p-> mShowIconSearch= configureToolBarMenu->isItemChecked( 120 ); 1672 p-> mShowIconSearch= configureToolBarMenu->isItemChecked( 120 );
1673 p-> mShowIconList= configureToolBarMenu->isItemChecked( 30 ); 1673 p-> mShowIconList= configureToolBarMenu->isItemChecked( 30 );
1674 p-> mShowIconDay1= configureToolBarMenu->isItemChecked( 40 ); 1674 p-> mShowIconDay1= configureToolBarMenu->isItemChecked( 40 );
1675 p-> mShowIconDay5= configureToolBarMenu->isItemChecked( 50 ); 1675 p-> mShowIconDay5= configureToolBarMenu->isItemChecked( 50 );
1676 p-> mShowIconDay7= configureToolBarMenu->isItemChecked( 60 ); 1676 p-> mShowIconDay7= configureToolBarMenu->isItemChecked( 60 );
1677 p-> mShowIconMonth= configureToolBarMenu->isItemChecked( 70 ); 1677 p-> mShowIconMonth= configureToolBarMenu->isItemChecked( 70 );
1678 p-> mShowIconTodoview= configureToolBarMenu->isItemChecked( 80 ); 1678 p-> mShowIconTodoview= configureToolBarMenu->isItemChecked( 80 );
1679 p-> mShowIconBackFast= configureToolBarMenu->isItemChecked( 200 ); 1679 p-> mShowIconBackFast= configureToolBarMenu->isItemChecked( 200 );
1680 p-> mShowIconBack = configureToolBarMenu->isItemChecked( 210 ); 1680 p-> mShowIconBack = configureToolBarMenu->isItemChecked( 210 );
1681 p-> mShowIconToday= configureToolBarMenu->isItemChecked( 130 ); 1681 p-> mShowIconToday= configureToolBarMenu->isItemChecked( 130 );
1682 p-> mShowIconForward= configureToolBarMenu->isItemChecked( 220 ); 1682 p-> mShowIconForward= configureToolBarMenu->isItemChecked( 220 );
1683 p-> mShowIconForwardFast= configureToolBarMenu->isItemChecked( 230 ); 1683 p-> mShowIconForwardFast= configureToolBarMenu->isItemChecked( 230 );
1684 p-> mShowIconNextDays= configureToolBarMenu->isItemChecked( 100 ); 1684 p-> mShowIconNextDays= configureToolBarMenu->isItemChecked( 100 );
1685 p-> mShowIconNext= configureToolBarMenu->isItemChecked( 110 ); 1685 p-> mShowIconNext= configureToolBarMenu->isItemChecked( 110 );
1686 p-> mShowIconJournal= configureToolBarMenu->isItemChecked( 90 ); 1686 p-> mShowIconJournal= configureToolBarMenu->isItemChecked( 90 );
1687 p-> mShowIconWhatsThis= configureToolBarMenu->isItemChecked( 300 ); 1687 p-> mShowIconWhatsThis= configureToolBarMenu->isItemChecked( 300 );
1688 // initActions(); 1688 // initActions();
1689} 1689}
1690 1690
1691void MainWindow::setCaptionToDates() 1691void MainWindow::setCaptionToDates()
1692{ 1692{
1693 QString selDates; 1693 QString selDates;
1694 selDates = KGlobal::locale()->formatDate(mView->startDate(), true); 1694 selDates = KGlobal::locale()->formatDate(mView->startDate(), true);
1695 if (mView->startDate() < mView->endDate() ) 1695 if (mView->startDate() < mView->endDate() )
1696 selDates += " - " + KGlobal::locale()->formatDate(mView->endDate(), true); 1696 selDates += " - " + KGlobal::locale()->formatDate(mView->endDate(), true);
1697 setCaption( i18n("Dates: ") + selDates ); 1697 setCaption( i18n("Dates: ") + selDates );
1698 1698
1699} 1699}
1700// parameter item == 0: reinit 1700// parameter item == 0: reinit
1701void MainWindow::configureAgenda( int item ) 1701void MainWindow::configureAgenda( int item )
1702{ 1702{
1703 1703
1704 KOPrefs *p = KOPrefs::instance(); 1704 KOPrefs *p = KOPrefs::instance();
1705 1705
1706 int i; 1706 int i;
1707 if ( item == 1 ) { 1707 if ( item == 1 ) {
1708 mView->toggleAllDaySize(); 1708 mView->toggleAllDaySize();
1709 return; 1709 return;
1710 } 1710 }
1711 // do not allow 4 for widgets higher than 480 1711 // do not allow 4 for widgets higher than 480
1712 // if ( QApplication::desktop()->height() > 480 ) { 1712 // if ( QApplication::desktop()->height() > 480 ) {
1713// if ( item == 4 ) 1713// if ( item == 4 )
1714// item = 6; 1714// item = 6;
1715// } 1715// }
1716 for ( i = 4; i <= 18; i= i+2 ) 1716 for ( i = 4; i <= 18; i= i+2 )
1717 configureAgendaMenu->setItemChecked( i, false ); 1717 configureAgendaMenu->setItemChecked( i, false );
1718 configureAgendaMenu->setItemChecked( item, true ); 1718 configureAgendaMenu->setItemChecked( item, true );
1719 if ( p->mHourSize == item ) 1719 if ( p->mHourSize == item )
1720 return; 1720 return;
1721 p->mHourSize=item; 1721 p->mHourSize=item;
1722 mView->viewManager()->agendaView()->updateConfig(); 1722 mView->viewManager()->agendaView()->updateConfig();
1723} 1723}
1724 1724
1725void MainWindow::saveCalendar() 1725void MainWindow::saveCalendar()
1726{ 1726{
1727 QString fn = KOPrefs::instance()->mLastSaveFile; 1727 QString fn = KOPrefs::instance()->mLastSaveFile;
1728 fn = KFileDialog::getSaveFileName( fn, i18n("Save backup filename"), this ); 1728 fn = KFileDialog::getSaveFileName( fn, i18n("Save backup filename"), this );
1729 1729
1730 if ( fn == "" ) 1730 if ( fn == "" )
1731 return; 1731 return;
1732 QFileInfo info; 1732 QFileInfo info;
1733 info.setFile( fn ); 1733 info.setFile( fn );
1734 QString mes; 1734 QString mes;
1735 bool createbup = true; 1735 bool createbup = true;
1736 if ( info. exists() ) { 1736 if ( info. exists() ) {
1737 mes = i18n("Backup file\nalready exists!\nOld backup file from:\n%1\nOverwrite?\n").arg(KGlobal::locale()->formatDateTime(info.lastModified (), true, false )) ; 1737 mes = i18n("Backup file\nalready exists!\nOld backup file from:\n%1\nOverwrite?\n").arg(KGlobal::locale()->formatDateTime(info.lastModified (), true, false )) ;
1738 int result = QMessageBox::warning( this, i18n("KO/Pi: Warning!"),mes, 1738 int result = QMessageBox::warning( this, i18n("KO/Pi: Warning!"),mes,
1739 i18n("Overwrite!"), i18n("Cancel"), 0, 1739 i18n("Overwrite!"), i18n("Cancel"), 0,
1740 0, 1 ); 1740 0, 1 );
1741 if ( result != 0 ) { 1741 if ( result != 0 ) {
1742 createbup = false; 1742 createbup = false;
1743 } 1743 }
1744 } 1744 }
1745 if ( createbup ) { 1745 if ( createbup ) {
1746 mView->saveCalendar( fn ); 1746 mView->saveCalendar( fn );
1747 mes = i18n("KO/Pi:Saved %1").arg(fn); 1747 mes = i18n("KO/Pi:Saved %1").arg(fn);
1748 KOPrefs::instance()->mLastSaveFile = fn; 1748 KOPrefs::instance()->mLastSaveFile = fn;
1749 setCaption(mes); 1749 setCaption(mes);
1750 } 1750 }
1751} 1751}
1752void MainWindow::loadCalendar() 1752void MainWindow::loadCalendar()
1753{ 1753{
1754 1754
1755 QString fn = KOPrefs::instance()->mLastLoadFile; 1755 QString fn = KOPrefs::instance()->mLastLoadFile;
1756 fn = KFileDialog::getOpenFileName( fn, i18n("Load backup filename"), this ); 1756 fn = KFileDialog::getOpenFileName( fn, i18n("Load backup filename"), this );
1757 1757
1758 if ( fn == "" ) 1758 if ( fn == "" )
1759 return; 1759 return;
1760 QFileInfo info; 1760 QFileInfo info;
1761 info.setFile( fn ); 1761 info.setFile( fn );
1762 QString mess; 1762 QString mess;
1763 bool loadbup = true; 1763 bool loadbup = true;
1764 if ( info. exists() ) { 1764 if ( info. exists() ) {
1765 mess = i18n("Backup file from:\n%1\nLoading backup\nfile will delete\nyour current Data!\n").arg(KGlobal::locale()->formatDateTime(info.lastModified (), true, false )); 1765 mess = i18n("Backup file from:\n%1\nLoading backup\nfile will delete\nyour current Data!\n").arg(KGlobal::locale()->formatDateTime(info.lastModified (), true, false ));
1766 int result = QMessageBox::warning( this, "KO/Pi: Warning!", 1766 int result = QMessageBox::warning( this, "KO/Pi: Warning!",
1767 mess, 1767 mess,
1768 i18n("Load!"), i18n("Cancel"), 0, 1768 i18n("Load!"), i18n("Cancel"), 0,
1769 0, 1 ); 1769 0, 1 );
1770 if ( result != 0 ) { 1770 if ( result != 0 ) {
1771 loadbup = false; 1771 loadbup = false;
1772 } 1772 }
1773 } else { 1773 } else {
1774 QMessageBox::warning( this, i18n("KO/Pi: Warning!"), 1774 QMessageBox::warning( this, i18n("KO/Pi: Warning!"),
1775 i18n("Backup file\ndoes not exist!\nNothing loaded!"), 0, 0, 1775 i18n("Backup file\ndoes not exist!\nNothing loaded!"), 0, 0,
1776 0, 1 ); 1776 0, 1 );
1777 1777
1778 return; 1778 return;
1779 } 1779 }
1780 if ( loadbup ) { 1780 if ( loadbup ) {
1781 mView->openCalendar( fn ); 1781 mView->openCalendar( fn );
1782 KOPrefs::instance()->mLastLoadFile = fn; 1782 KOPrefs::instance()->mLastLoadFile = fn;
1783 mess = i18n("KO/Pi:Loaded %1").arg(fn) ; 1783 mess = i18n("KO/Pi:Loaded %1").arg(fn) ;
1784 setCaption(mess); 1784 setCaption(mess);
1785 } 1785 }
1786 1786
1787} 1787}
1788void MainWindow::quickImportIcal() 1788void MainWindow::quickImportIcal()
1789{ 1789{
1790 importFile( KOPrefs::instance()->mLastImportFile, false ); 1790 importFile( KOPrefs::instance()->mLastImportFile, false );
1791} 1791}
1792void MainWindow::importFile( QString fn, bool quick ) 1792void MainWindow::importFile( QString fn, bool quick )
1793{ 1793{
1794 QFileInfo info; 1794 QFileInfo info;
1795 info.setFile( fn ); 1795 info.setFile( fn );
1796 QString mess; 1796 QString mess;
1797 bool loadbup = true; 1797 bool loadbup = true;
1798 if ( !info. exists() ) { 1798 if ( !info. exists() ) {
1799 mess = i18n("Import file \n...%1\ndoes not exist!\nNothing imported!\n").arg(fn.right( 30)); 1799 mess = i18n("Import file \n...%1\ndoes not exist!\nNothing imported!\n").arg(fn.right( 30));
1800 int result = QMessageBox::warning( this, i18n("KO/Pi: Warning!"), 1800 int result = QMessageBox::warning( this, i18n("KO/Pi: Warning!"),
1801 mess ); 1801 mess );
1802 return; 1802 return;
1803 } 1803 }
1804 int result = 0; 1804 int result = 0;
1805 if ( !quick ) { 1805 if ( !quick ) {
1806 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 )); 1806 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 ));
1807 result = QMessageBox::warning( this, "KO/Pi: Warning!", 1807 result = QMessageBox::warning( this, "KO/Pi: Warning!",
1808 mess, 1808 mess,
1809 "Import", "Cancel", 0, 1809 "Import", "Cancel", 0,
1810 0, 1 ); 1810 0, 1 );
1811 } 1811 }
1812 if ( result == 0 ) { 1812 if ( result == 0 ) {
1813 if ( mView->openCalendar( fn, true )) { 1813 if ( mView->openCalendar( fn, true )) {
1814 KOPrefs::instance()->mLastImportFile = fn; 1814 KOPrefs::instance()->mLastImportFile = fn;
1815 setCaption(i18n("Imported file successfully")); 1815 setCaption(i18n("Imported file successfully"));
1816 } else { 1816 } else {
1817 setCaption(i18n("Error importing file")); 1817 setCaption(i18n("Error importing file"));
1818 } 1818 }
1819 } 1819 }
1820} 1820}
1821 1821
1822void MainWindow::importIcal() 1822void MainWindow::importIcal()
1823{ 1823{
1824 1824
1825 QString fn =KOPrefs::instance()->mLastImportFile; 1825 QString fn =KOPrefs::instance()->mLastImportFile;
1826 1826
1827 fn =KFileDialog:: getOpenFileName( fn, i18n("Import filename(*.ics/*.vcs)"), this ); 1827 fn =KFileDialog:: getOpenFileName( fn, i18n("Import filename(*.ics/*.vcs)"), this );
1828 if ( fn == "" ) 1828 if ( fn == "" )
1829 return; 1829 return;
1830 importFile( fn, true ); 1830 importFile( fn, true );
1831 1831
1832} 1832}
1833 1833
1834void MainWindow::exportVCalendar() 1834void MainWindow::exportVCalendar()
1835{ 1835{
1836 QString fn = KOPrefs::instance()->mLastVcalFile; 1836 QString fn = KOPrefs::instance()->mLastVcalFile;
1837 fn = KFileDialog::getSaveFileName( fn, i18n("Export vcal filename(*.vcs)"), this ); 1837 fn = KFileDialog::getSaveFileName( fn, i18n("Export vcal filename(*.vcs)"), this );
1838 if ( fn == "" ) 1838 if ( fn == "" )
1839 return; 1839 return;
1840 QFileInfo info; 1840 QFileInfo info;
1841 info.setFile( fn ); 1841 info.setFile( fn );
1842 QString mes; 1842 QString mes;
1843 bool createbup = true; 1843 bool createbup = true;
1844 if ( info. exists() ) { 1844 if ( info. exists() ) {
1845 mes = i18n("Save file\nalready exists!\nOld save file from:\n%1\nOverwrite?\n").arg (KGlobal::locale()->formatDateTime(info.lastModified (), true, false ) ); 1845 mes = i18n("Save file\nalready exists!\nOld save file from:\n%1\nOverwrite?\n").arg (KGlobal::locale()->formatDateTime(info.lastModified (), true, false ) );
1846 int result = QMessageBox::warning( this, i18n("KO/Pi: Warning!"),mes, 1846 int result = QMessageBox::warning( this, i18n("KO/Pi: Warning!"),mes,
1847 i18n("Overwrite!"), i18n("Cancel"), 0, 1847 i18n("Overwrite!"), i18n("Cancel"), 0,
1848 0, 1 ); 1848 0, 1 );
1849 if ( result != 0 ) { 1849 if ( result != 0 ) {
1850 createbup = false; 1850 createbup = false;
1851 } 1851 }
1852 } 1852 }
1853 if ( createbup ) { 1853 if ( createbup ) {
1854 if ( mView->exportVCalendar( fn ) ) { 1854 if ( mView->exportVCalendar( fn ) ) {
1855 KOPrefs::instance()->mLastVcalFile = fn; 1855 KOPrefs::instance()->mLastVcalFile = fn;
1856 if ( fn.length() > 20 ) 1856 if ( fn.length() > 20 )
1857 mes = i18n("KO/Pi:Exported to ...%1").arg(fn.right(20)) ; 1857 mes = i18n("KO/Pi:Exported to ...%1").arg(fn.right(20)) ;
1858 else 1858 else
1859 mes = i18n("KO/Pi:Exported to %1").arg(fn ); 1859 mes = i18n("KO/Pi:Exported to %1").arg(fn );
1860 setCaption(mes); 1860 setCaption(mes);
1861 } 1861 }
1862 } 1862 }
1863 1863
1864} 1864}
1865QString MainWindow::getPassword( ) 1865QString MainWindow::getPassword( )
1866{ 1866{
1867 QString retfile = ""; 1867 QString retfile = "";
1868 QDialog dia ( this, "input-dialog", true ); 1868 QDialog dia ( this, "input-dialog", true );
1869 QLineEdit lab ( &dia ); 1869 QLineEdit lab ( &dia );
1870 lab.setEchoMode( QLineEdit::Password ); 1870 lab.setEchoMode( QLineEdit::Password );
1871 QVBoxLayout lay( &dia ); 1871 QVBoxLayout lay( &dia );
1872 lay.setMargin(7); 1872 lay.setMargin(7);
1873 lay.setSpacing(7); 1873 lay.setSpacing(7);
1874 lay.addWidget( &lab); 1874 lay.addWidget( &lab);
1875 dia.setFixedSize( 230,50 ); 1875 dia.setFixedSize( 230,50 );
1876 dia.setCaption( i18n("Enter password") ); 1876 dia.setCaption( i18n("Enter password") );
1877 QPushButton pb ( "OK", &dia); 1877 QPushButton pb ( "OK", &dia);
1878 lay.addWidget( &pb ); 1878 lay.addWidget( &pb );
1879 connect(&pb, SIGNAL( clicked() ), &dia, SLOT ( accept() ) ); 1879 connect(&pb, SIGNAL( clicked() ), &dia, SLOT ( accept() ) );
1880 dia.show(); 1880 dia.show();
1881 int res = dia.exec(); 1881 int res = dia.exec();
1882 if ( res ) 1882 if ( res )
1883 retfile = lab.text(); 1883 retfile = lab.text();
1884 dia.hide(); 1884 dia.hide();
1885 qApp->processEvents(); 1885 qApp->processEvents();
1886 return retfile; 1886 return retfile;
1887 1887
1888} 1888}
1889 1889
1890void MainWindow::enableQuick() 1890void MainWindow::enableQuick()
1891{ 1891{
1892 QString retfile = ""; 1892 QString retfile = "";
1893 QDialog dia ( this, "input-dialog", true ); 1893 QDialog dia ( this, "input-dialog", true );
1894 QLineEdit lab ( &dia ); 1894 QLineEdit lab ( &dia );
1895 QVBoxLayout lay( &dia ); 1895 QVBoxLayout lay( &dia );
1896 lab.setText( KOPrefs::instance()->mPassiveSyncPort ); 1896 lab.setText( KOPrefs::instance()->mPassiveSyncPort );
1897 lay.setMargin(7); 1897 lay.setMargin(7);
1898 lay.setSpacing(7); 1898 lay.setSpacing(7);
1899 QLabel label ( i18n("Port number (Default: 9197)"), &dia ); 1899 QLabel label ( i18n("Port number (Default: 9197)"), &dia );
1900 lay.addWidget( &label); 1900 lay.addWidget( &label);
1901 lay.addWidget( &lab); 1901 lay.addWidget( &lab);
1902 dia.setFixedSize( 230,80 ); 1902 dia.setFixedSize( 230,80 );
1903 dia.setCaption( i18n("Enter port for Easy-Pi-Sync") ); 1903 dia.setCaption( i18n("Enter port for Easy-Pi-Sync") );
1904 QPushButton pb ( "OK", &dia); 1904 QPushButton pb ( "OK", &dia);
1905 lay.addWidget( &pb ); 1905 lay.addWidget( &pb );
1906 connect(&pb, SIGNAL( clicked() ), &dia, SLOT ( accept() ) ); 1906 connect(&pb, SIGNAL( clicked() ), &dia, SLOT ( accept() ) );
1907 dia.show(); 1907 dia.show();
1908 int res = dia.exec(); 1908 int res = dia.exec();
1909 if ( res ) 1909 if ( res )
1910 retfile = lab.text(); 1910 retfile = lab.text();
1911 else 1911 else
1912 return; 1912 return;
1913 dia.hide(); 1913 dia.hide();
1914 qApp->processEvents(); 1914 qApp->processEvents();
1915 KOPrefs::instance()->mPassiveSyncPort = retfile; 1915 KOPrefs::instance()->mPassiveSyncPort = retfile;
1916 bool ok; 1916 bool ok;
1917 Q_UINT16 port = retfile.toUInt(&ok); 1917 Q_UINT16 port = retfile.toUInt(&ok);
1918 if ( ! ok ) { 1918 if ( ! ok ) {
1919 qDebug("no valid port "); 1919 qDebug("no valid port ");
1920 return; 1920 return;
1921 } 1921 }
1922 qDebug("port %d ", port); 1922 qDebug("port %d ", port);
1923 mServerSocket = new KServerSocket ( port ,1 ); 1923 mServerSocket = new KServerSocket ( port ,1 );
1924 qDebug("connected "); 1924 qDebug("connected ");
1925 if ( !mServerSocket->ok() ) { 1925 if ( !mServerSocket->ok() ) {
1926 qWarning("Failed to bind to port %d", port); 1926 qWarning("Failed to bind to port %d", port);
1927 delete mServerSocket; 1927 delete mServerSocket;
1928 mServerSocket = 0; 1928 mServerSocket = 0;
1929 return; 1929 return;
1930 } 1930 }
1931 connect( mServerSocket, SIGNAL ( sendFile(QSocket*) ), this, SLOT ( sendFile(QSocket*) ) ); 1931 connect( mServerSocket, SIGNAL ( sendFile(QSocket*) ), this, SLOT ( sendFile(QSocket*) ) );
1932 connect( mServerSocket, SIGNAL ( getFile(QSocket*) ), this, SLOT ( getFile(QSocket*) ) ); 1932 connect( mServerSocket, SIGNAL ( getFile(QSocket*) ), this, SLOT ( getFile(QSocket*) ) );
1933} 1933}
1934void MainWindow::sendFile(QSocket* socket) 1934void MainWindow::sendFile(QSocket* socket)
1935{ 1935{
1936 setCaption( i18n("Received request for file") ); 1936 setCaption( i18n("Received request for file") );
1937 qDebug("MainWindow::sendFile(QSocket* s) "); 1937 qDebug("MainWindow::sendFile(QSocket* s) ");
1938 if ( mSyncActionDialog ) 1938 if ( mSyncActionDialog )
1939 delete mSyncActionDialog; 1939 delete mSyncActionDialog;
1940 mSyncActionDialog = new QDialog ( this, "input-dialog", true ); 1940 mSyncActionDialog = new QDialog ( this, "input-dialog", true );
1941 mSyncActionDialog->setCaption(i18n("KO/Pi - WARNING")); 1941 mSyncActionDialog->setCaption(i18n("KO/Pi - WARNING"));
1942 QLabel* label = new QLabel( i18n("Synchronizing...\nDo not use\nthis application!\n"), mSyncActionDialog ); 1942 QLabel* label = new QLabel( i18n("Synchronizing...\nDo not use\nthis application!\n"), mSyncActionDialog );
1943 QVBoxLayout* lay = new QVBoxLayout( mSyncActionDialog ); 1943 QVBoxLayout* lay = new QVBoxLayout( mSyncActionDialog );
1944 lay->addWidget( label); 1944 lay->addWidget( label);
1945 lay->setMargin(7); 1945 lay->setMargin(7);
1946 lay->setSpacing(7); 1946 lay->setSpacing(7);
1947 mSyncActionDialog->setFixedSize( 200,100 ); 1947 mSyncActionDialog->setFixedSize( 200,100 );
1948 mSyncActionDialog->show(); 1948 mSyncActionDialog->show();
1949 qApp->processEvents(); 1949 qApp->processEvents();
1950 qDebug("saving ... "); 1950 qDebug("saving ... ");
1951 save(); 1951 save();
1952 QString fileName = defaultFileName(); 1952 QString fileName = defaultFileName();
1953 QFile file( fileName ); 1953 QFile file( fileName );
1954 if (!file.open( IO_ReadOnly ) ) { 1954 if (!file.open( IO_ReadOnly ) ) {
1955 setCaption( i18n("Error open file") ); 1955 setCaption( i18n("Error open file") );
1956 delete mSyncActionDialog; 1956 delete mSyncActionDialog;
1957 mSyncActionDialog = 0; 1957 mSyncActionDialog = 0;
1958 qDebug("error open cal file "); 1958 qDebug("error open cal file ");
1959 return ; 1959 return ;
1960 1960
1961 } 1961 }
1962 setCaption( i18n("Sending file...") ); 1962 setCaption( i18n("Sending file...") );
1963 QTextStream ts( &file ); 1963 QTextStream ts( &file );
1964 ts.setCodec( QTextCodec::codecForName("utf8") ); 1964 ts.setCodec( QTextCodec::codecForName("utf8") );
1965 QTextStream os( socket ); 1965 QTextStream os( socket );
1966 os.setCodec( QTextCodec::codecForName("utf8") ); 1966 os.setCodec( QTextCodec::codecForName("utf8") );
1967 //os.setEncoding( QTextStream::UnicodeUTF8 ); 1967 //os.setEncoding( QTextStream::UnicodeUTF8 );
1968 while ( ! ts.atEnd() ) { 1968 while ( ! ts.atEnd() ) {
1969 os << ts.readLine() << "\n"; 1969 os << ts.readLine() << "\n";
1970 } 1970 }
1971 //os << ts.read(); 1971 //os << ts.read();
1972 socket->close(); 1972 socket->close();
1973 file.close(); 1973 file.close();
1974 setCaption( i18n("File sent. Waiting to get back synced file") ); 1974 setCaption( i18n("File sent. Waiting to get back synced file") );
1975 qDebug("file sent "); 1975 qDebug("file sent ");
1976} 1976}
1977void MainWindow::getFile(QSocket* socket) 1977void MainWindow::getFile(QSocket* socket)
1978{ 1978{
1979 setCaption( i18n("Receiving synced file...") ); 1979 setCaption( i18n("Receiving synced file...") );
1980 1980
1981 QString fileName = defaultFileName(); 1981 QString fileName = defaultFileName();
1982 QFile file( fileName ); 1982 QFile file( fileName );
1983 if (!file.open( IO_WriteOnly ) ) { 1983 if (!file.open( IO_WriteOnly ) ) {
1984 setCaption( i18n("Error open file") ); 1984 setCaption( i18n("Error open file") );
1985 delete mSyncActionDialog; 1985 delete mSyncActionDialog;
1986 mSyncActionDialog = 0; 1986 mSyncActionDialog = 0;
1987 qDebug("error open cal file "); 1987 qDebug("error open cal file ");
1988 return ; 1988 return ;
1989 1989
1990 } 1990 }
1991 1991
1992 mView->setLoadedFileVersion(QDateTime::currentDateTime().addSecs( -1)); 1992 mView->setLoadedFileVersion(QDateTime::currentDateTime().addSecs( -1));
1993 QTextStream ts( &file ); 1993 QTextStream ts( &file );
1994 ts.setCodec( QTextCodec::codecForName("utf8") ); 1994 ts.setCodec( QTextCodec::codecForName("utf8") );
1995 bool first = true; 1995 bool first = true;
1996 while ( socket->canReadLine () || first ) { 1996 while ( socket->canReadLine () || first ) {
1997 first = false; 1997 first = false;
1998 while ( socket->canReadLine () ) { 1998 while ( socket->canReadLine () ) {
1999 qDebug("avail %d ", socket->bytesAvailable () ); 1999 qDebug("avail %d ", socket->bytesAvailable () );
2000 ts << socket->readLine (); 2000 ts << socket->readLine ();
2001 } 2001 }
2002 QTime ti; 2002 QTime ti;
2003 ti.start(); 2003 ti.start();
2004 while ( ti.elapsed () < 5000 && !socket->canReadLine () ) { 2004 while ( ti.elapsed () < 5000 && !socket->canReadLine () ) {
2005 qDebug("waiting1a %d %d ",ti.elapsed (), socket->bytesAvailable () ); 2005 qDebug("waiting1a %d %d ",ti.elapsed (), socket->bytesAvailable () );
2006 //qApp->processEvents(); 2006 //qApp->processEvents();
2007 qDebug("waiting1b %d ",ti.elapsed () ); 2007 qDebug("waiting1b %d ",ti.elapsed () );
2008 if ( !socket->canReadLine () ) { 2008 if ( !socket->canReadLine () ) {
2009 qDebug("waiting1c %d ",ti.elapsed () ); 2009 qDebug("waiting1c %d ",ti.elapsed () );
2010 usleep( 100000); 2010 usleep( 100000);
2011 } 2011 }
2012 //socket->waitForMore ( 100 ); 2012 //socket->waitForMore ( 100 );
2013 } 2013 }
2014 ts << socket->readLine (); 2014 ts << socket->readLine ();
2015#if 0 2015#if 0
2016#ifdef DESKTOP_VERSION 2016#ifdef DESKTOP_VERSION
2017 socket->waitForMore ( 5000 ); 2017 socket->waitForMore ( 5000 );
2018#else 2018#else
2019 // socket->waitForMore ( 5000 ); 2019 // socket->waitForMore ( 5000 );
2020 // seems to be broken in qt2 2020 // seems to be broken in qt2
2021 bool stop = false; 2021 bool stop = false;
2022 QTime ti; 2022 QTime ti;
2023 ti.start(); 2023 ti.start();
2024 while ( ti.elapsed < 5000 && !stop ) { 2024 while ( ti.elapsed < 5000 && !stop ) {
2025 qApp->processEvents(); 2025 qApp->processEvents();
2026 if ( socket->canReadLine () ) 2026 if ( socket->canReadLine () )
2027 stop = true ; 2027 stop = true ;
2028 else { 2028 else {
2029 usleep( 100000 ); 2029 usleep( 100000 );
2030 2030
2031 } 2031 }
2032 } 2032 }
2033#endif 2033#endif
2034#endif 2034#endif
2035 } 2035 }
2036 setCaption( i18n("File received - reloading calendar...") ); 2036 setCaption( i18n("File received - reloading calendar...") );
2037 file.close();
2038 socket->close(); 2037 socket->close();
2038 file.close();
2039 mView->watchSavedFile(); 2039 mView->watchSavedFile();
2040 mView->openCalendar( defaultFileName() ); 2040 mView->openCalendar( defaultFileName() );
2041 setCaption( i18n("Easy-Pi-Sync successful!") ); 2041 setCaption( i18n("Easy-Pi-Sync successful!") );
2042 delete mSyncActionDialog; 2042 delete mSyncActionDialog;
2043 mSyncActionDialog = 0; 2043 mSyncActionDialog = 0;
2044 2044
2045 2045
2046} 2046}
2047void MainWindow::endConnect() 2047void MainWindow::endConnect()
2048{ 2048{
2049 setCaption( i18n("No file received - syncing successful") ); 2049 setCaption( i18n("No file received - syncing successful") );
2050 delete mSyncActionDialog; 2050 delete mSyncActionDialog;
2051 mSyncActionDialog = 0; 2051 mSyncActionDialog = 0;
2052} 2052}
2053void MainWindow::performQuick() 2053void MainWindow::performQuick()
2054{ 2054{
2055 setCaption( i18n("Please input connection settings") ); 2055 setCaption( i18n("Please input connection settings") );
2056 QString retfile = ""; 2056 QString retfile = "";
2057 QDialog dia ( this, "input-dialog", true ); 2057 QDialog dia ( this, "input-dialog", true );
2058 QLineEdit lab ( &dia ); 2058 QLineEdit lab ( &dia );
2059 QVBoxLayout lay( &dia ); 2059 QVBoxLayout lay( &dia );
2060 QLabel label ( i18n("IP address\n(Example: 192.168.0.40)"), &dia ); 2060 QLabel label ( i18n("IP address\n(Example: 192.168.0.40)"), &dia );
2061 lay.addWidget( &label); 2061 lay.addWidget( &label);
2062 lab.setText( KOPrefs::instance()->mActiveSyncIP ); 2062 lab.setText( KOPrefs::instance()->mActiveSyncIP );
2063 lay.setMargin(7); 2063 lay.setMargin(7);
2064 lay.setSpacing(7); 2064 lay.setSpacing(7);
2065 lay.addWidget( &lab); 2065 lay.addWidget( &lab);
2066 QLabel label2 ( i18n("Port number (Default: 9197)"), &dia ); 2066 QLabel label2 ( i18n("Port number (Default: 9197)"), &dia );
2067 lay.addWidget( &label2); 2067 lay.addWidget( &label2);
2068 QLineEdit lab2 ( &dia ); 2068 QLineEdit lab2 ( &dia );
2069 lab2.setText( KOPrefs::instance()->mActiveSyncPort ); 2069 lab2.setText( KOPrefs::instance()->mActiveSyncPort );
2070 lay.addWidget( &lab2); 2070 lay.addWidget( &lab2);
2071 dia.setFixedSize( 230,200 ); 2071 dia.setFixedSize( 230,200 );
2072 dia.setCaption( i18n("Enter port for Easy-Pi-Sync ") ); 2072 dia.setCaption( i18n("Enter port for Easy-Pi-Sync ") );
2073 QPushButton pb ( "OK", &dia); 2073 QPushButton pb ( "OK", &dia);
2074 lay.addWidget( &pb ); 2074 lay.addWidget( &pb );
2075 connect(&pb, SIGNAL( clicked() ), &dia, SLOT ( accept() ) ); 2075 connect(&pb, SIGNAL( clicked() ), &dia, SLOT ( accept() ) );
2076 dia.show(); 2076 dia.show();
2077 int res = dia.exec(); 2077 int res = dia.exec();
2078 if ( !res ) { 2078 if ( !res ) {
2079 setCaption( i18n("Syncing cancelled!") ); 2079 setCaption( i18n("Syncing cancelled!") );
2080 return; 2080 return;
2081 } 2081 }
2082 dia.hide(); 2082 dia.hide();
2083 KOPrefs::instance()->mActiveSyncPort = lab2.text(); 2083 KOPrefs::instance()->mActiveSyncPort = lab2.text();
2084 KOPrefs::instance()->mActiveSyncIP = lab.text(); 2084 KOPrefs::instance()->mActiveSyncIP = lab.text();
2085 qApp->processEvents(); 2085 qApp->processEvents();
2086 performQuickQuick(); 2086 performQuickQuick();
2087} 2087}
2088 2088
2089void MainWindow::performQuickQuick() 2089void MainWindow::performQuickQuick()
2090{ 2090{
2091 // setCaption( i18n("") ); 2091 // setCaption( i18n("") );
2092 2092
2093 bool ok; 2093 bool ok;
2094 Q_UINT16 port = KOPrefs::instance()->mActiveSyncPort.toUInt(&ok); 2094 Q_UINT16 port = KOPrefs::instance()->mActiveSyncPort.toUInt(&ok);
2095 if ( ! ok ) { 2095 if ( ! ok ) {
2096 setCaption( i18n("Sorry, no valid port.Syncing cancelled.") ); 2096 setCaption( i18n("Sorry, no valid port.Syncing cancelled.") );
2097 return; 2097 return;
2098 } 2098 }
2099 if ( !mCommandSocket ) { 2099 if ( !mCommandSocket ) {
2100 mCommandSocket = new QSocket( this ); 2100 mCommandSocket = new QSocket( this );
2101 // delete mCommandSocket; 2101 // delete mCommandSocket;
2102 //mCommandSocket = new QSocket( this ); 2102 //mCommandSocket = new QSocket( this );
2103 connect( mCommandSocket, SIGNAL(readyRead()), this, SLOT(readFileFromSocket()) ); 2103 connect( mCommandSocket, SIGNAL(readyRead()), this, SLOT(readFileFromSocket()) );
2104 } 2104 }
2105 QString host = KOPrefs::instance()->mActiveSyncIP; 2105 QString host = KOPrefs::instance()->mActiveSyncIP;
2106 mCommandSocket->connectToHost( host, port ); 2106 mCommandSocket->connectToHost( host, port );
2107 QTextStream os( mCommandSocket ); 2107 QTextStream os( mCommandSocket );
2108 os.setEncoding( QTextStream::UnicodeUTF8 ); 2108 os.setEncoding( QTextStream::UnicodeUTF8 );
2109 os << "GET\r\n"; 2109 os << "GET\r\n";
2110 setCaption( i18n("Sending request for remote file ...") ); 2110 setCaption( i18n("Sending request for remote file ...") );
2111 2111
2112} 2112}
2113void MainWindow::readFileFromSocket() 2113void MainWindow::readFileFromSocket()
2114{ 2114{
2115 setCaption( i18n("Receiving remote file ...") ); 2115 setCaption( i18n("Receiving remote file ...") );
2116 qDebug("MainWindow::readFileFromSocket() "); 2116 qDebug("MainWindow::readFileFromSocket() ");
2117QString fileName; 2117 QString fileName;
2118#ifdef _WIN32_ 2118#ifdef _WIN32_
2119 fileName = defaultFileName() +"sync"; 2119 fileName = defaultFileName() +"sync";
2120#else 2120#else
2121 fileName = "/tmp/kopitempfile.ics"; 2121 fileName = "/tmp/kopitempfile.ics";
2122#endif 2122#endif
2123 QFile file( fileName ); 2123 QFile file( fileName );
2124 if (!file.open( IO_WriteOnly ) ) { 2124 if (!file.open( IO_WriteOnly ) ) {
2125 setCaption( i18n("Error: Cannot open temp file for write.") ); 2125 setCaption( i18n("Error: Cannot open temp file for write.") );
2126 qDebug("Error open calender file for writing: %s",fileName.latin1() ); 2126 qDebug("Error open temp calender file for writing: %s",fileName.latin1() );
2127 return ; 2127 return ;
2128 } 2128 }
2129 2129
2130 //QTextStream os2( mCommandSocket ); 2130 //QTextStream os2( mCommandSocket );
2131 //os2.setEncoding( QTextStream::UnicodeUTF8 ); 2131 //os2.setEncoding( QTextStream::UnicodeUTF8 );
2132 2132
2133 QTextStream ts( &file ); 2133 QTextStream ts( &file );
2134 ts.setCodec( QTextCodec::codecForName("utf8") ); 2134 ts.setCodec( QTextCodec::codecForName("utf8") );
2135 bool first = true; 2135 bool first = true;
2136 while ( mCommandSocket->canReadLine () || first) { 2136 while ( mCommandSocket->canReadLine () || first) {
2137 first = false; 2137 first = false;
2138 while ( mCommandSocket->canReadLine () ) { 2138 while ( mCommandSocket->canReadLine () ) {
2139 ts << mCommandSocket->readLine (); 2139 ts << mCommandSocket->readLine ();
2140 } 2140 }
2141 QTime ti; 2141 QTime ti;
2142 ti.start(); 2142 ti.start();
2143 while ( ti.elapsed () < 5000 && !mCommandSocket->canReadLine () ) { 2143 while ( ti.elapsed () < 5000 && !mCommandSocket->canReadLine () ) {
2144 qApp->processEvents(); 2144 qApp->processEvents();
2145 qDebug("waiting2 %d ",ti.elapsed () ); 2145 qDebug("waiting2 %d ",ti.elapsed () );
2146 if ( !mCommandSocket->canReadLine () ) 2146 if ( !mCommandSocket->canReadLine () )
2147 mCommandSocket->waitForMore ( 100 ); 2147 mCommandSocket->waitForMore ( 100 );
2148 } 2148 }
2149 //mCommandSocket->waitForMore ( 5000 ); 2149 //mCommandSocket->waitForMore ( 5000 );
2150 } 2150 }
2151 file.close(); 2151 file.close();
2152 mCommandSocket->close(); 2152 mCommandSocket->close();
2153 // pending: deleting after signal SIGNAL(delayedCloseFinished())
2153 //delete mCommandSocket; 2154 //delete mCommandSocket;
2154 setCaption( i18n("Remote file saved to temp file.") ); 2155 setCaption( i18n("Remote file saved to temp file.") );
2155 //mCommandSocket = 0; 2156 //mCommandSocket = 0;
2156 mCurrentSyncProfile = 2 ; // last file 2157 mCurrentSyncProfile = 2 ; // last file
2157 mView->setSyncDevice(KOPrefs::instance()->mSyncProfileNames[mCurrentSyncProfile] ); 2158 mView->setSyncDevice(KOPrefs::instance()->mSyncProfileNames[mCurrentSyncProfile] );
2158 mView->setSyncName( KOPrefs::instance()->mLocalMachineName ); 2159 mView->setSyncName( KOPrefs::instance()->mLocalMachineName );
2159 KConfig config ( locateLocal( "config","ksyncprofilesrc" ) ); 2160 KConfig config ( locateLocal( "config","ksyncprofilesrc" ) );
2160 KSyncProfile* temp = new KSyncProfile (); 2161 KSyncProfile* temp = new KSyncProfile ();
2161 temp->setName(KOPrefs::instance()->mSyncProfileNames[mCurrentSyncProfile]); 2162 temp->setName(KOPrefs::instance()->mSyncProfileNames[mCurrentSyncProfile]);
2162 temp->readConfig(&config); 2163 temp->readConfig(&config);
2163 KOPrefs::instance()->mAskForPreferences = temp->getAskForPreferences(); 2164 KOPrefs::instance()->mAskForPreferences = temp->getAskForPreferences();
2164 KOPrefs::instance()->mSyncAlgoPrefs = temp->getSyncPrefs(); 2165 KOPrefs::instance()->mSyncAlgoPrefs = temp->getSyncPrefs();
2165 KOPrefs::instance()->mWriteBackFile = temp->getWriteBackFile(); 2166 KOPrefs::instance()->mWriteBackFile = temp->getWriteBackFile();
2166 KOPrefs::instance()->mWriteBackExistingOnly = temp->getWriteBackExisting(); 2167 KOPrefs::instance()->mWriteBackExistingOnly = temp->getWriteBackExisting();
2167 KOPrefs::instance()->mWriteBackInFuture = 0; 2168 KOPrefs::instance()->mWriteBackInFuture = 0;
2168 if ( temp->getWriteBackFuture() ) 2169 if ( temp->getWriteBackFuture() )
2169 KOPrefs::instance()->mWriteBackInFuture = temp->getWriteBackFutureWeeks( ); 2170 KOPrefs::instance()->mWriteBackInFuture = temp->getWriteBackFutureWeeks( );
2170 KOPrefs::instance()->mShowSyncSummary = temp->getShowSummaryAfterSync(); 2171 KOPrefs::instance()->mShowSyncSummary = temp->getShowSummaryAfterSync();
2171 2172
2172 setCaption( i18n("Remote file saved to temp file.") ); 2173 setCaption( i18n("Remote file saved to temp file.") );
2173 if ( ! syncWithFile( fileName , true ) ) { 2174 if ( ! syncWithFile( fileName , true ) ) {
2174 setCaption( i18n("Syncing failed.") ); 2175 setCaption( i18n("Syncing failed.") );
2175 qDebug("Syncing failed "); 2176 qDebug("Syncing failed ");
2176 return; 2177 return;
2177 } 2178 }
2178 2179
2179 if ( !mCommandSocketFinish ) { 2180 if ( !mCommandSocketFinish ) {
2180 mCommandSocketFinish = new QSocket( this ); 2181 mCommandSocketFinish = new QSocket( this );
2181 } 2182 }
2182 mCommandSocketFinish->connectToHost( KOPrefs::instance()->mActiveSyncIP, KOPrefs::instance()->mActiveSyncPort.toUInt() ); 2183 mCommandSocketFinish->connectToHost( KOPrefs::instance()->mActiveSyncIP, KOPrefs::instance()->mActiveSyncPort.toUInt() );
2183 2184
2185 // pending connect signals connected () and error to new slots
2184 QString host = KOPrefs::instance()->mActiveSyncIP; 2186 QString host = KOPrefs::instance()->mActiveSyncIP;
2185 QFile file2( fileName ); 2187 QFile file2( fileName );
2186 if (!file2.open( IO_ReadOnly ) ) { 2188 if (!file2.open( IO_ReadOnly ) ) {
2187 setCaption( i18n("Error: Cannot open temp file for read.") ); 2189 setCaption( i18n("Error: Cannot open temp file for read.") );
2188 qDebug("error open cal file "); 2190 qDebug("error open cal file ");
2189 return ; 2191 return ;
2190 2192
2191 } 2193 }
2192 setCaption( i18n("Sending back synced file...") ); 2194 setCaption( i18n("Sending back synced file...") );
2193 QTextStream ts2( &file2 ); 2195 QTextStream ts2( &file2 );
2194 ts2.setCodec( QTextCodec::codecForName("utf8") ); 2196 ts2.setCodec( QTextCodec::codecForName("utf8") );
2195 QTextStream os2( mCommandSocketFinish ); 2197 QTextStream os2( mCommandSocketFinish );
2196 os2.setCodec( QTextCodec::codecForName("utf8") ); 2198 os2.setCodec( QTextCodec::codecForName("utf8") );
2197 //os.setEncoding( QTextStream::UnicodeUTF8 ); 2199 //os.setEncoding( QTextStream::UnicodeUTF8 );
2198 if ( KOPrefs::instance()->mWriteBackFile ) { 2200 if ( KOPrefs::instance()->mWriteBackFile ) {
2199 os2 << "PUT\r\n"; 2201 os2 << "PUT\r\n";
2200 while ( ! ts2.atEnd() ) { 2202 while ( ! ts2.atEnd() ) {
2201 os2 << ts2.readLine() << "\n"; 2203 os2 << ts2.readLine() << "\n";
2202 } 2204 }
2203 } else { 2205 } else {
2204 os2 << "STOP\r\n"; 2206 os2 << "STOP\r\n";
2205 } 2207 }
2206 mCommandSocketFinish->close(); 2208 mCommandSocketFinish->close();
2207 file.close(); 2209 file.close();
2210 // pending: deleting after signal SIGNAL(delayedCloseFinished())
2208 //delete ( mCommandSocket); 2211 //delete ( mCommandSocket);
2209 //mCommandSocket = 0; 2212 //mCommandSocket = 0;
2210 qDebug("Syncing succesful! "); 2213 qDebug("Syncing succesful! ");
2211 setCaption( i18n("Easy-Pi-Sync succesful!") ); 2214 setCaption( i18n("Easy-Pi-Sync succesful!") );
2212 2215
2213 2216
2214} 2217}
2215 2218
2216void MainWindow::syncLocalFile() 2219void MainWindow::syncLocalFile()
2217{ 2220{
2218 2221
2219 QString fn =KOPrefs::instance()->mLastSyncedLocalFile; 2222 QString fn =KOPrefs::instance()->mLastSyncedLocalFile;
2220 2223
2221 fn =KFileDialog:: getOpenFileName( fn, i18n("Sync filename(*.ics/*.vcs)"), this ); 2224 fn =KFileDialog:: getOpenFileName( fn, i18n("Sync filename(*.ics/*.vcs)"), this );
2222 if ( fn == "" ) 2225 if ( fn == "" )
2223 return; 2226 return;
2224 //mView->setSyncDevice("local-file" ); 2227 //mView->setSyncDevice("local-file" );
2225 if ( syncWithFile( fn, false ) ) { 2228 if ( syncWithFile( fn, false ) ) {
2226 // Event* e = mView->getLastSyncEvent(); 2229 // Event* e = mView->getLastSyncEvent();
2227// e->setReadOnly( false ); 2230// e->setReadOnly( false );
2228// e->setLocation( i18n("Local file: ")+ KOPrefs::instance()->mLastSyncedLocalFile); 2231// e->setLocation( i18n("Local file: ")+ KOPrefs::instance()->mLastSyncedLocalFile);
2229// e->setReadOnly( true ); 2232// e->setReadOnly( true );
2230 } 2233 }
2231 2234
2232} 2235}
2233 2236
2234bool MainWindow::syncWithFile( QString fn , bool quick ) 2237bool MainWindow::syncWithFile( QString fn , bool quick )
2235{ 2238{
2236 bool ret = false; 2239 bool ret = false;
2237 QFileInfo info; 2240 QFileInfo info;
2238 info.setFile( fn ); 2241 info.setFile( fn );
2239 QString mess; 2242 QString mess;
2240 bool loadbup = true; 2243 bool loadbup = true;
2241 if ( !info. exists() ) { 2244 if ( !info. exists() ) {
2242 mess = i18n( "Sync file \n...%1\ndoes not exist!\nNothing synced!\n").arg(fn.right( 30) ); 2245 mess = i18n( "Sync file \n...%1\ndoes not exist!\nNothing synced!\n").arg(fn.right( 30) );
2243 int result = QMessageBox::warning( this, i18n("KO/Pi: Warning!"), 2246 int result = QMessageBox::warning( this, i18n("KO/Pi: Warning!"),
2244 mess ); 2247 mess );
2245 return ret; 2248 return ret;
2246 } 2249 }
2247 int result = 0; 2250 int result = 0;
2248 if ( !quick ) { 2251 if ( !quick ) {
2249 mess = i18n("Sync with file \n...%1\nfrom:\n%2\n").arg(fn.right( 25)).arg(KGlobal::locale()->formatDateTime(info.lastModified (), true, false )); 2252 mess = i18n("Sync with file \n...%1\nfrom:\n%2\n").arg(fn.right( 25)).arg(KGlobal::locale()->formatDateTime(info.lastModified (), true, false ));
2250 result = QMessageBox::warning( this, i18n("KO/Pi: Warning!"), 2253 result = QMessageBox::warning( this, i18n("KO/Pi: Warning!"),
2251 mess, 2254 mess,
2252 i18n("Sync"), i18n("Cancel"), 0, 2255 i18n("Sync"), i18n("Cancel"), 0,
2253 0, 1 ); 2256 0, 1 );
2254 if ( result ) 2257 if ( result )
2255 return false; 2258 return false;
2256 } 2259 }
2257 if ( KOPrefs::instance()->mAskForPreferences ) 2260 if ( KOPrefs::instance()->mAskForPreferences )
2258 mView->edit_sync_options(); 2261 mView->edit_sync_options();
2259 if ( result == 0 ) { 2262 if ( result == 0 ) {
2260 //qDebug("Now sycing ... "); 2263 //qDebug("Now sycing ... ");
2261 if ( ret = mView->syncCalendar( fn, KOPrefs::instance()->mSyncAlgoPrefs ) ) 2264 if ( ret = mView->syncCalendar( fn, KOPrefs::instance()->mSyncAlgoPrefs ) )
2262 setCaption( i18n("Synchronization successful") ); 2265 setCaption( i18n("Synchronization successful") );
2263 else 2266 else
2264 setCaption( i18n("Sync cancelled or failed. Nothing synced.") ); 2267 setCaption( i18n("Sync cancelled or failed. Nothing synced.") );
2265 if ( ! quick ) 2268 if ( ! quick )
2266 KOPrefs::instance()->mLastSyncedLocalFile = fn; 2269 KOPrefs::instance()->mLastSyncedLocalFile = fn;
2267 slotModifiedChanged( true ); 2270 slotModifiedChanged( true );
2268 } 2271 }
2269 return ret; 2272 return ret;
2270} 2273}
2271void MainWindow::quickSyncLocalFile() 2274void MainWindow::quickSyncLocalFile()
2272{ 2275{
2273 //mView->setSyncDevice("local-file" ); 2276 //mView->setSyncDevice("local-file" );
2274 //qDebug("quickSyncLocalFile() "); 2277 //qDebug("quickSyncLocalFile() ");
2275 if ( syncWithFile( KOPrefs::instance()->mLastSyncedLocalFile, false ) ) { 2278 if ( syncWithFile( KOPrefs::instance()->mLastSyncedLocalFile, false ) ) {
2276 // Event* e = mView->getLastSyncEvent(); 2279 // Event* e = mView->getLastSyncEvent();
2277// e->setReadOnly( false ); 2280// e->setReadOnly( false );
2278// e->setLocation( i18n("Quick with file: ")+ KOPrefs::instance()->mLastSyncedLocalFile); 2281// e->setLocation( i18n("Quick with file: ")+ KOPrefs::instance()->mLastSyncedLocalFile);
2279// e->setReadOnly( true ); 2282// e->setReadOnly( true );
2280 2283
2281 } 2284 }
2282} 2285}
2283 2286
2284void MainWindow::confSync() 2287void MainWindow::confSync()
2285{ 2288{
2286 mView->confSync(); 2289 mView->confSync();
2287 fillSyncMenu(); 2290 fillSyncMenu();
2288} 2291}
2289void MainWindow::syncRemote( KSyncProfile* prof, bool ask) 2292void MainWindow::syncRemote( KSyncProfile* prof, bool ask)
2290{ 2293{
2291 QString question; 2294 QString question;
2292 if ( ask ) { 2295 if ( ask ) {
2293 question = i18n("Do you really want\nto remote sync\nwith profile \n")+ prof->getName()+" ?\n"; 2296 question = i18n("Do you really want\nto remote sync\nwith profile \n")+ prof->getName()+" ?\n";
2294 if ( QMessageBox::information( this, i18n("KO/Pi Sync"), 2297 if ( QMessageBox::information( this, i18n("KO/Pi Sync"),
2295 question, 2298 question,
2296 i18n("Yes"), i18n("No"), 2299 i18n("Yes"), i18n("No"),
2297 0, 0 ) != 0 ) 2300 0, 0 ) != 0 )
2298 return; 2301 return;
2299 } 2302 }
2300 QString command = prof->getPreSyncCommand(); 2303 QString command = prof->getPreSyncCommand();
2301 int fi; 2304 int fi;
2302 if ( (fi = command.find("$PWD$")) > 0 ) { 2305 if ( (fi = command.find("$PWD$")) > 0 ) {
2303 QString pwd = getPassword(); 2306 QString pwd = getPassword();
2304 command = command.left( fi )+ pwd + command.mid( fi+5 ); 2307 command = command.left( fi )+ pwd + command.mid( fi+5 );
2305 2308
2306 } 2309 }
2307 int maxlen = 30; 2310 int maxlen = 30;
2308 if ( QApplication::desktop()->width() > 320 ) 2311 if ( QApplication::desktop()->width() > 320 )
2309 maxlen += 25; 2312 maxlen += 25;
2310 setCaption ( i18n( "Copy remote file to local machine..." ) ); 2313 setCaption ( i18n( "Copy remote file to local machine..." ) );
2311 int fileSize = 0; 2314 int fileSize = 0;
2312 int result = system ( command ); 2315 int result = system ( command );
2313 // 0 : okay 2316 // 0 : okay
2314 // 256: no such file or dir 2317 // 256: no such file or dir
2315 // 2318 //
2316 qDebug("KO: Remote copy result(0 = okay): %d ",result ); 2319 qDebug("KO: Remote copy result(0 = okay): %d ",result );
2317 if ( result != 0 ) { 2320 if ( result != 0 ) {
2318 int len = maxlen; 2321 int len = maxlen;
2319 while ( len < command.length() ) { 2322 while ( len < command.length() ) {
2320 command.insert( len , "\n" ); 2323 command.insert( len , "\n" );
2321 len += maxlen +2; 2324 len += maxlen +2;
2322 } 2325 }
2323 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) ; 2326 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) ;
2324 QMessageBox::information( this, i18n("KO/Pi Sync - ERROR"), 2327 QMessageBox::information( this, i18n("KO/Pi Sync - ERROR"),
2325 question, 2328 question,
2326 i18n("Okay!")) ; 2329 i18n("Okay!")) ;
2327 setCaption ("KO/Pi"); 2330 setCaption ("KO/Pi");
2328 return; 2331 return;
2329 } 2332 }
2330 setCaption ( i18n( "Copying succeed." ) ); 2333 setCaption ( i18n( "Copying succeed." ) );
2331 //qDebug(" file **%s** ",prof->getLocalTempFile().latin1() ); 2334 //qDebug(" file **%s** ",prof->getLocalTempFile().latin1() );
2332 if ( syncWithFile( prof->getLocalTempFile(), true ) ) { 2335 if ( syncWithFile( prof->getLocalTempFile(), true ) ) {
2333// Event* e = mView->getLastSyncEvent(); 2336// Event* e = mView->getLastSyncEvent();
2334// e->setReadOnly( false ); 2337// e->setReadOnly( false );
2335// e->setLocation( KOPrefs::instance()->mSyncProfileNames[mCurrentSyncProfile]); 2338// e->setLocation( KOPrefs::instance()->mSyncProfileNames[mCurrentSyncProfile]);
2336// e->setReadOnly( true ); 2339// e->setReadOnly( true );
2337 if ( KOPrefs::instance()->mWriteBackFile ) { 2340 if ( KOPrefs::instance()->mWriteBackFile ) {
2338 command = prof->getPostSyncCommand(); 2341 command = prof->getPostSyncCommand();
2339 int fi; 2342 int fi;
2340 if ( (fi = command.find("$PWD$")) > 0 ) { 2343 if ( (fi = command.find("$PWD$")) > 0 ) {
2341 QString pwd = getPassword(); 2344 QString pwd = getPassword();
2342 command = command.left( fi )+ pwd + command.mid( fi+5 ); 2345 command = command.left( fi )+ pwd + command.mid( fi+5 );
2343 2346
2344 } 2347 }
2345 setCaption ( i18n( "Writing back file ..." ) ); 2348 setCaption ( i18n( "Writing back file ..." ) );
2346 result = system ( command ); 2349 result = system ( command );
2347 qDebug("KO: Writing back file result: %d ", result); 2350 qDebug("KO: Writing back file result: %d ", result);
2348 if ( result != 0 ) { 2351 if ( result != 0 ) {
2349 setCaption ( i18n( "Writing back file result: " )+QString::number( result ) ); 2352 setCaption ( i18n( "Writing back file result: " )+QString::number( result ) );
2350 return; 2353 return;
2351 } else { 2354 } else {
2352 setCaption ( i18n( "Syncronization sucessfully completed" ) ); 2355 setCaption ( i18n( "Syncronization sucessfully completed" ) );
2353 } 2356 }
2354 } 2357 }
2355 } 2358 }
2356 return; 2359 return;
2357} 2360}
2358void MainWindow::syncSSH() 2361void MainWindow::syncSSH()
2359{ 2362{
2360 // not used anymore 2363 // not used anymore
2361 QTime timer; 2364 QTime timer;
2362 timer.start(); 2365 timer.start();
2363 //qDebug("MainWindow::syncssh() "); 2366 //qDebug("MainWindow::syncssh() ");
2364 KOPrefs *p = KOPrefs::instance(); 2367 KOPrefs *p = KOPrefs::instance();
2365 QString localFile = p->mLocalTempFile; 2368 QString localFile = p->mLocalTempFile;
2366 QString remoteIP = p->mRemoteIP; 2369 QString remoteIP = p->mRemoteIP;
2367 QString remoteUser = p->mRemoteUser; 2370 QString remoteUser = p->mRemoteUser;
2368 QString remoteFile = p->mRemoteFile; 2371 QString remoteFile = p->mRemoteFile;
2369 if ( p->mUsePassWd && p->mRemotePassWd.length() > 0 ) 2372 if ( p->mUsePassWd && p->mRemotePassWd.length() > 0 )
2370 remoteUser += ":" + p->mRemotePassWd; 2373 remoteUser += ":" + p->mRemotePassWd;
2371 2374
2372 QString question = i18n("Do you really want\nto remote sync?\n \n") + 2375 QString question = i18n("Do you really want\nto remote sync?\n \n") +
2373 i18n("IP: " ) +remoteIP +"\n" + 2376 i18n("IP: " ) +remoteIP +"\n" +
2374 i18n("User: " ) + remoteUser +"\n" ; 2377 i18n("User: " ) + remoteUser +"\n" ;
2375 int maxlen = 30; 2378 int maxlen = 30;
2376 if ( QApplication::desktop()->width() > 320 ) 2379 if ( QApplication::desktop()->width() > 320 )
2377 maxlen += 25; 2380 maxlen += 25;
2378 if ( remoteFile.length() > maxlen ) 2381 if ( remoteFile.length() > maxlen )
2379 question += i18n("Remote file:\n..." ) + remoteFile.right(maxlen) +"\n"; 2382 question += i18n("Remote file:\n..." ) + remoteFile.right(maxlen) +"\n";
2380 else 2383 else
2381 question += i18n("Remote file:\n " ) + remoteFile +"\n"; 2384 question += i18n("Remote file:\n " ) + remoteFile +"\n";
2382 if ( localFile.length() > maxlen ) 2385 if ( localFile.length() > maxlen )
2383 question += i18n("Local temp file:\n..." ) + localFile.right(maxlen) +"\n"; 2386 question += i18n("Local temp file:\n..." ) + localFile.right(maxlen) +"\n";
2384 else 2387 else
2385 question += i18n("Local temp file:\n " ) + localFile +"\n"; 2388 question += i18n("Local temp file:\n " ) + localFile +"\n";
2386 2389
2387 if ( QMessageBox::information( this, i18n("KO/Pi Sync"), 2390 if ( QMessageBox::information( this, i18n("KO/Pi Sync"),
2388 question, 2391 question,
2389 i18n("Yes"), i18n("No"), 2392 i18n("Yes"), i18n("No"),
2390 0, 0 ) != 0 ) 2393 0, 0 ) != 0 )
2391 return; 2394 return;
2392 // if ( !p->mUsePassWd ) { 2395 // if ( !p->mUsePassWd ) {
2393 // QString pass = getPassword(); 2396 // QString pass = getPassword();
2394 // if ( pass.length() > 0 ) 2397 // if ( pass.length() > 0 )
2395 // remoteUser += ":" + pass; 2398 // remoteUser += ":" + pass;
2396 // } 2399 // }
2397 QString command = "scp " + remoteUser + "@" + remoteIP +":" + remoteFile +" " +localFile; 2400 QString command = "scp " + remoteUser + "@" + remoteIP +":" + remoteFile +" " +localFile;
2398 setCaption ( i18n( "Copy remote file to local machine..." ) ); 2401 setCaption ( i18n( "Copy remote file to local machine..." ) );
2399 int fileSize = 0; 2402 int fileSize = 0;
2400 int result = system ( command ); 2403 int result = system ( command );
2401 // 0 : okay 2404 // 0 : okay
2402 // 256: no such file or dir 2405 // 256: no such file or dir
2403 // 2406 //
2404 qDebug("KO: Remote copy result(0 = okay): %d ",result ); 2407 qDebug("KO: Remote copy result(0 = okay): %d ",result );
2405 if ( result != 0 ) { 2408 if ( result != 0 ) {
2406 int len = maxlen; 2409 int len = maxlen;
2407 while ( len < command.length() ) { 2410 while ( len < command.length() ) {
2408 command.insert( len , "\n" ); 2411 command.insert( len , "\n" );
2409 len += maxlen +2; 2412 len += maxlen +2;
2410 } 2413 }
2411 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) ; 2414 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) ;
2412 QMessageBox::information( this, i18n("KO/Pi Sync - ERROR"), 2415 QMessageBox::information( this, i18n("KO/Pi Sync - ERROR"),
2413 question, 2416 question,
2414 i18n("Okay!")) ; 2417 i18n("Okay!")) ;
2415 setCaption ("KO/Pi"); 2418 setCaption ("KO/Pi");
2416 return; 2419 return;
2417 } 2420 }
2418 2421
2419 2422
2420 setCaption ( i18n( "Copying succeed." ) ); 2423 setCaption ( i18n( "Copying succeed." ) );
2421 //mView->setSyncDevice("ssh-scp" ); 2424 //mView->setSyncDevice("ssh-scp" );
2422 if ( syncWithFile(localFile , true ) ) { 2425 if ( syncWithFile(localFile , true ) ) {
2423// Event* e = mView->getLastSyncEvent(); 2426// Event* e = mView->getLastSyncEvent();
2424// e->setReadOnly( false ); 2427// e->setReadOnly( false );
2425// e->setLocation( KOPrefs::instance()->mSyncProfileNames[mCurrentSyncProfile]); 2428// e->setLocation( KOPrefs::instance()->mSyncProfileNames[mCurrentSyncProfile]);
2426// e->setReadOnly( true ); 2429// e->setReadOnly( true );
2427 if ( KOPrefs::instance()->mWriteBackFile ) { 2430 if ( KOPrefs::instance()->mWriteBackFile ) {
2428 command = "scp " + localFile +" " +remoteUser + "@" + remoteIP +":" + remoteFile ; 2431 command = "scp " + localFile +" " +remoteUser + "@" + remoteIP +":" + remoteFile ;
2429 setCaption ( i18n( "Writing back file ..." ) ); 2432 setCaption ( i18n( "Writing back file ..." ) );
2430 result = system ( command ); 2433 result = system ( command );
2431 if ( result != 0 ) { 2434 if ( result != 0 ) {
2432 int len = maxlen; 2435 int len = maxlen;
2433 while ( len < command.length() ) { 2436 while ( len < command.length() ) {
2434 command.insert( len , "\n" ); 2437 command.insert( len , "\n" );
2435 len += maxlen +2; 2438 len += maxlen +2;
2436 } 2439 }
2437 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) ; 2440 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) ;
2438 QMessageBox::information( this, i18n("KO/Pi Sync - ERROR"), 2441 QMessageBox::information( this, i18n("KO/Pi Sync - ERROR"),
2439 question, 2442 question,
2440 i18n("Okay!")) ; 2443 i18n("Okay!")) ;
2441 setCaption ("KO/Pi"); 2444 setCaption ("KO/Pi");
2442 return; 2445 return;
2443 } else { 2446 } else {
2444 setCaption ( i18n( "Syncronization sucessfully completed" ) ); 2447 setCaption ( i18n( "Syncronization sucessfully completed" ) );
2445 } 2448 }
2446 } 2449 }
2447 } 2450 }
2448 return; 2451 return;
2449#if 0 2452#if 0
2450 system ("scp zaurus@192.168.0.65:/home/zaurus/Applications/korganizer/mycalendar.ics /home/polo/Applications/korganizer/z_sync.ics"); 2453 system ("scp zaurus@192.168.0.65:/home/zaurus/Applications/korganizer/mycalendar.ics /home/polo/Applications/korganizer/z_sync.ics");
2451 while ( timer.elapsed() < 5000 ) 2454 while ( timer.elapsed() < 5000 )
2452 qApp->processEvents(); 2455 qApp->processEvents();
2453 2456
2454 qDebug("MainWindow::merging) "); 2457 qDebug("MainWindow::merging) ");
2455 mView->syncCalendar( "/home/polo/Applications/korganizer/z_sync.ics", 0 ); 2458 mView->syncCalendar( "/home/polo/Applications/korganizer/z_sync.ics", 0 );
2456 while ( mBlockSaveFlag ) 2459 while ( mBlockSaveFlag )
2457 qApp->processEvents(); 2460 qApp->processEvents();
2458 save(); 2461 save();
2459 system ("scp /home/polo/Applications/korganizer/mycalendar.ics zaurus@192.168.0.65:/home/zaurus/Applications/korganizer/mycalendar.ics"); 2462 system ("scp /home/polo/Applications/korganizer/mycalendar.ics zaurus@192.168.0.65:/home/zaurus/Applications/korganizer/mycalendar.ics");
2460#endif 2463#endif
2461 2464
2462} 2465}
2463 2466
2464 2467
2465void MainWindow::syncSharp() 2468void MainWindow::syncSharp()
2466{ 2469{
2467 if ( mCalendarModifiedFlag ) 2470 if ( mCalendarModifiedFlag )
2468 save(); 2471 save();
2469 mView->syncSharp(); 2472 mView->syncSharp();
2470 slotModifiedChanged( true ); 2473 slotModifiedChanged( true );
2471 2474
2472} 2475}
2473void MainWindow::syncPhone() 2476void MainWindow::syncPhone()
2474{ 2477{
2475 if ( mCalendarModifiedFlag ) 2478 if ( mCalendarModifiedFlag )
2476 save(); 2479 save();
2477 mView->syncPhone(); 2480 mView->syncPhone();
2478 slotModifiedChanged( true ); 2481 slotModifiedChanged( true );
2479 2482
2480} 2483}
2481 2484
2482void MainWindow::printSel( ) 2485void MainWindow::printSel( )
2483{ 2486{
2484 mView->viewManager()->agendaView()->agenda()->printSelection(); 2487 mView->viewManager()->agendaView()->agenda()->printSelection();
2485} 2488}
2486 2489
2487void MainWindow::printCal() 2490void MainWindow::printCal()
2488{ 2491{
2489 mView->print();//mCp->showDialog(); 2492 mView->print();//mCp->showDialog();
2490} 2493}
2491 2494
2492 2495
2493 2496
2494KServerSocket:: KServerSocket ( Q_UINT16 port, int backlog, QObject * parent, const char * name ) : QServerSocket( port, backlog, parent, name ){;}; 2497KServerSocket:: KServerSocket ( Q_UINT16 port, int backlog, QObject * parent, const char * name ) : QServerSocket( port, backlog, parent, name )
2498{
2499
2500 mSocket = 0;
2501};
2495 2502
2496void KServerSocket::newConnection ( int socket ) 2503void KServerSocket::newConnection ( int socket )
2497{ 2504{
2498 qDebug("KServerSocket:New connection %d ", socket); 2505 qDebug("KServerSocket:New connection %d ", socket);
2499 QSocket* s = new QSocket( this ); 2506 if ( mSocket ) {
2500 connect( s, SIGNAL(readyRead()), this, SLOT(readClient()) ); 2507 qDebug("KServerSocket::newConnection Socket deleted! ");
2501 connect( s, SIGNAL(delayedCloseFinished()), this, SLOT(discardClient()) ); 2508 delete mSocket;
2502 s->setSocket( socket ); 2509 mSocket = 0;
2510 }
2511 mSocket = new QSocket( this );
2512 connect( mSocket , SIGNAL(readyRead()), this, SLOT(readClient()) );
2513 connect( mSocket , SIGNAL(delayedCloseFinished()), this, SLOT(discardClient()) );
2514 mSocket->setSocket( socket );
2503} 2515}
2504 2516
2505void KServerSocket::discardClient() 2517void KServerSocket::discardClient()
2506{ 2518{
2507 qDebug(" KServerSocket::discardClient()"); 2519 qDebug(" KServerSocket::discardClient()");
2508 QSocket* socket = (QSocket*)sender(); 2520 if ( mSocket ) {
2509 delete socket; 2521 qDebug("delete ");
2522 delete mSocket;
2523 mSocket = 0;
2524 }
2510 //emit endConnect(); 2525 //emit endConnect();
2511} 2526}
2512void KServerSocket::readClient() 2527void KServerSocket::readClient()
2513{ 2528{
2529 if ( mSocket == 0 ) {
2530 qDebug("ERROR::KServerSocket::readClient(): mSocket == 0 ");
2531 return;
2532 }
2514 qDebug("KServerSocket readClient()"); 2533 qDebug("KServerSocket readClient()");
2515 QSocket* socket = (QSocket*)sender(); 2534 if ( mSocket->canReadLine() ) {
2516 if ( socket->canReadLine() ) { 2535 QStringList tokens = QStringList::split( QRegExp("[ \r\n][ \r\n]*"), mSocket->readLine() );
2517 QStringList tokens = QStringList::split( QRegExp("[ \r\n][ \r\n]*"), socket->readLine() );
2518 qDebug("KServerSocket socket->canReadLine()"); 2536 qDebug("KServerSocket socket->canReadLine()");
2519 if ( tokens[0] == "GET" ) { 2537 if ( tokens[0] == "GET" ) {
2520 emit sendFile( socket ); 2538 emit sendFile( mSocket );
2521 } 2539 }
2522 if ( tokens[0] == "PUT" ) { 2540 if ( tokens[0] == "PUT" ) {
2523 emit getFile( socket ); 2541 emit getFile( mSocket );
2524 } 2542 }
2525 if ( tokens[0] == "STOP" ) { 2543 if ( tokens[0] == "STOP" ) {
2526 emit endConnect(); 2544 emit endConnect();
2527 } 2545 }
2528 } 2546 }
2529} 2547}
2530 2548
2531 2549
2532 2550
2533 2551
2534 2552
2535 2553
2536 2554
2537 2555
2538 2556
2539 2557
2540 2558
2541 2559
diff --git a/korganizer/mainwindow.h b/korganizer/mainwindow.h
index 7b4fd27..cc656a3 100644
--- a/korganizer/mainwindow.h
+++ b/korganizer/mainwindow.h
@@ -1,159 +1,161 @@
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#include <qregexp.h>
8 8
9#include <libkcal/incidence.h> 9#include <libkcal/incidence.h>
10#include "simplealarmclient.h" 10#include "simplealarmclient.h"
11 11
12class QAction; 12class QAction;
13class CalendarView; 13class CalendarView;
14class KSyncProfile; 14class KSyncProfile;
15#ifdef DESKTOP_VERSION 15#ifdef DESKTOP_VERSION
16 16
17#define QPEToolBar QToolBar 17#define QPEToolBar QToolBar
18#define QPEMenuBar QMenuBar 18#define QPEMenuBar QMenuBar
19#endif 19#endif
20class QPEToolBar; 20class QPEToolBar;
21#include <qserversocket.h> 21#include <qserversocket.h>
22#include <qsocket.h> 22#include <qsocket.h>
23#include <qnetworkprotocol.h> 23#include <qnetworkprotocol.h>
24 24
25class KServerSocket : public QServerSocket 25class KServerSocket : public QServerSocket
26{ 26{
27 Q_OBJECT 27 Q_OBJECT
28 28
29public: 29public:
30 KServerSocket ( Q_UINT16 port, int backlog = 0, QObject * parent=0, const char * name=0 ); 30 KServerSocket ( Q_UINT16 port, int backlog = 0, QObject * parent=0, const char * name=0 );
31 31
32 void newConnection ( int socket ) ; 32 void newConnection ( int socket ) ;
33 33
34signals: 34signals:
35 void sendFile(QSocket*); 35 void sendFile(QSocket*);
36 void getFile(QSocket*); 36 void getFile(QSocket*);
37 void endConnect(); 37 void endConnect();
38private slots: 38private slots:
39 void discardClient(); 39 void discardClient();
40 void readClient(); 40 void readClient();
41 private :
42 QSocket* mSocket;
41}; 43};
42 44
43 45
44namespace KCal { 46namespace KCal {
45class CalendarLocal; 47class CalendarLocal;
46} 48}
47 49
48using namespace KCal; 50using namespace KCal;
49 51
50class MainWindow : public QMainWindow 52class MainWindow : public QMainWindow
51{ 53{
52 Q_OBJECT 54 Q_OBJECT
53 public: 55 public:
54 MainWindow( QWidget *parent = 0, const char *name = 0, QString command = ""); 56 MainWindow( QWidget *parent = 0, const char *name = 0, QString command = "");
55 ~MainWindow(); 57 ~MainWindow();
56 public slots: 58 public slots:
57 virtual void showMaximized (); 59 virtual void showMaximized ();
58 void configureAgenda( int ); 60 void configureAgenda( int );
59 void recieve( const QCString& msg, const QByteArray& data ); 61 void recieve( const QCString& msg, const QByteArray& data );
60 static QString defaultFileName(); 62 static QString defaultFileName();
61 static QString resourcePath(); 63 static QString resourcePath();
62 protected slots: 64 protected slots:
63 void setCaptionToDates(); 65 void setCaptionToDates();
64 int ringSync(); 66 int ringSync();
65 void multiSync( bool askforPrefs = false ); 67 void multiSync( bool askforPrefs = false );
66 void about(); 68 void about();
67 void licence(); 69 void licence();
68 void faq(); 70 void faq();
69 void usertrans(); 71 void usertrans();
70 void features(); 72 void features();
71 void synchowto(); 73 void synchowto();
72 void whatsNew(); 74 void whatsNew();
73 void keyBindings(); 75 void keyBindings();
74 void aboutAutoSaving();; 76 void aboutAutoSaving();;
75 void aboutKnownBugs(); 77 void aboutKnownBugs();
76 78
77 void processIncidenceSelection( Incidence * ); 79 void processIncidenceSelection( Incidence * );
78 80
79 void importQtopia(); 81 void importQtopia();
80 void importBday(); 82 void importBday();
81 void importOL(); 83 void importOL();
82 void importIcal(); 84 void importIcal();
83 void importFile( QString, bool ); 85 void importFile( QString, bool );
84 void quickImportIcal(); 86 void quickImportIcal();
85 87
86 void slotModifiedChanged( bool ); 88 void slotModifiedChanged( bool );
87 89
88 void save(); 90 void save();
89 void configureToolBar( int ); 91 void configureToolBar( int );
90 void printSel(); 92 void printSel();
91 void printCal(); 93 void printCal();
92 void saveCalendar(); 94 void saveCalendar();
93 void loadCalendar(); 95 void loadCalendar();
94 void exportVCalendar(); 96 void exportVCalendar();
95 void fillFilterMenu(); 97 void fillFilterMenu();
96 void selectFilter( int ); 98 void selectFilter( int );
97 99
98 void slotSyncMenu( int ); 100 void slotSyncMenu( int );
99 void syncSSH(); 101 void syncSSH();
100 void confSync(); 102 void confSync();
101 void syncSharp(); 103 void syncSharp();
102 void syncPhone(); 104 void syncPhone();
103 void syncLocalFile(); 105 void syncLocalFile();
104 bool syncWithFile( QString, bool ); 106 bool syncWithFile( QString, bool );
105 void quickSyncLocalFile(); 107 void quickSyncLocalFile();
106 108
107 109
108 protected: 110 protected:
109 void displayText( QString, QString); 111 void displayText( QString, QString);
110 void displayFile( QString, QString); 112 void displayFile( QString, QString);
111 113
112 void enableIncidenceActions( bool ); 114 void enableIncidenceActions( bool );
113 115
114 private slots: 116 private slots:
115 void fillSyncMenu(); 117 void fillSyncMenu();
116 void sendFile(QSocket* s); 118 void sendFile(QSocket* s);
117 void getFile(QSocket* socket); 119 void getFile(QSocket* socket);
118 void readFileFromSocket(); 120 void readFileFromSocket();
119 void endConnect(); 121 void endConnect();
120 private: 122 private:
121 QSocket* mCommandSocket; 123 QSocket* mCommandSocket;
122 QSocket* mCommandSocketFinish; 124 QSocket* mCommandSocketFinish;
123 KServerSocket * mServerSocket; 125 KServerSocket * mServerSocket;
124 bool mClosed; 126 bool mClosed;
125 void saveOnClose(); 127 void saveOnClose();
126 int mCurrentSyncProfile; 128 int mCurrentSyncProfile;
127 void enableQuick(); 129 void enableQuick();
128 void performQuick(); 130 void performQuick();
129 void performQuickQuick(); 131 void performQuickQuick();
130 void syncRemote( KSyncProfile* , bool ask = true); 132 void syncRemote( KSyncProfile* , bool ask = true);
131 bool mFlagKeyPressed; 133 bool mFlagKeyPressed;
132 bool mBlockAtStartup; 134 bool mBlockAtStartup;
133 QPEToolBar *iconToolBar; 135 QPEToolBar *iconToolBar;
134 void initActions(); 136 void initActions();
135 void setDefaultPreferences(); 137 void setDefaultPreferences();
136 void keyPressEvent ( QKeyEvent * ) ; 138 void keyPressEvent ( QKeyEvent * ) ;
137 void keyReleaseEvent ( QKeyEvent * ) ; 139 void keyReleaseEvent ( QKeyEvent * ) ;
138 QPopupMenu *configureToolBarMenu; 140 QPopupMenu *configureToolBarMenu;
139 QPopupMenu *selectFilterMenu; 141 QPopupMenu *selectFilterMenu;
140 QPopupMenu *configureAgendaMenu, *syncMenu; 142 QPopupMenu *configureAgendaMenu, *syncMenu;
141 CalendarLocal *mCalendar; 143 CalendarLocal *mCalendar;
142 CalendarView *mView; 144 CalendarView *mView;
143 QString getPassword(); 145 QString getPassword();
144 QAction *mNewSubTodoAction; 146 QAction *mNewSubTodoAction;
145 147
146 QAction *mShowAction; 148 QAction *mShowAction;
147 QAction *mEditAction; 149 QAction *mEditAction;
148 QAction *mDeleteAction; 150 QAction *mDeleteAction;
149 void closeEvent( QCloseEvent* ce ); 151 void closeEvent( QCloseEvent* ce );
150 SimpleAlarmClient mAlarmClient; 152 SimpleAlarmClient mAlarmClient;
151 QTimer mSaveTimer; 153 QTimer mSaveTimer;
152 bool mBlockSaveFlag; 154 bool mBlockSaveFlag;
153 bool mCalendarModifiedFlag; 155 bool mCalendarModifiedFlag;
154 QPixmap loadPixmap( QString ); 156 QPixmap loadPixmap( QString );
155 QDialog * mSyncActionDialog; 157 QDialog * mSyncActionDialog;
156}; 158};
157 159
158 160
159#endif 161#endif