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