summaryrefslogtreecommitdiffabout
authorzautrix <zautrix>2004-10-06 08:41:05 (UTC)
committer zautrix <zautrix>2004-10-06 08:41:05 (UTC)
commit641d3327a51405f7ed995bb5c58d0207de7b5ca2 (patch) (unidiff)
tree97526f04afd9d3df6244a64bb2e7f91a1c72d6ae
parent8e5089d2f2011e38d811ae0fc6b6d4edaeaf89b8 (diff)
downloadkdepimpi-641d3327a51405f7ed995bb5c58d0207de7b5ca2.zip
kdepimpi-641d3327a51405f7ed995bb5c58d0207de7b5ca2.tar.gz
kdepimpi-641d3327a51405f7ed995bb5c58d0207de7b5ca2.tar.bz2
fixes in export phone dialog
Diffstat (more/less context) (ignore whitespace changes)
-rw-r--r--korganizer/mainwindow.cpp17
1 files changed, 12 insertions, 5 deletions
diff --git a/korganizer/mainwindow.cpp b/korganizer/mainwindow.cpp
index ef73a78..6a9a2f1 100644
--- a/korganizer/mainwindow.cpp
+++ b/korganizer/mainwindow.cpp
@@ -1,495 +1,498 @@
1#include <stdlib.h> 1#include <stdlib.h>
2 2
3#include <qaction.h> 3#include <qaction.h>
4#include <qpopupmenu.h> 4#include <qpopupmenu.h>
5#include <qpainter.h> 5#include <qpainter.h>
6#include <qwhatsthis.h> 6#include <qwhatsthis.h>
7#include <qpushbutton.h> 7#include <qpushbutton.h>
8#include <qmessagebox.h> 8#include <qmessagebox.h>
9#include <qlineedit.h> 9#include <qlineedit.h>
10#include <qtextcodec.h> 10#include <qtextcodec.h>
11#include <qfile.h> 11#include <qfile.h>
12#include <qdir.h> 12#include <qdir.h>
13#include <qapp.h> 13#include <qapp.h>
14#include <qfileinfo.h> 14#include <qfileinfo.h>
15#include <qlabel.h> 15#include <qlabel.h>
16#include <qspinbox.h> 16#include <qspinbox.h>
17#include <qcheckbox.h> 17#include <qcheckbox.h>
18#include <qmap.h> 18#include <qmap.h>
19#include <qwmatrix.h> 19#include <qwmatrix.h>
20#include <qtextbrowser.h> 20#include <qtextbrowser.h>
21#include <qtextstream.h> 21#include <qtextstream.h>
22#ifndef DESKTOP_VERSION 22#ifndef DESKTOP_VERSION
23#include <qpe/global.h> 23#include <qpe/global.h>
24#include <qpe/qpemenubar.h> 24#include <qpe/qpemenubar.h>
25#include <qpe/qpetoolbar.h> 25#include <qpe/qpetoolbar.h>
26#include <qpe/resource.h> 26#include <qpe/resource.h>
27#include <qpe/qpeapplication.h> 27#include <qpe/qpeapplication.h>
28#include <qtopia/alarmserver.h> 28#include <qtopia/alarmserver.h>
29#include <qtopia/qcopenvelope_qws.h> 29#include <qtopia/qcopenvelope_qws.h>
30#include <unistd.h> // for sleep 30#include <unistd.h> // for sleep
31#else 31#else
32#include <qmenubar.h> 32#include <qmenubar.h>
33#include <qtoolbar.h> 33#include <qtoolbar.h>
34#include <qapplication.h> 34#include <qapplication.h>
35//#include <resource.h> 35//#include <resource.h>
36 36
37#endif 37#endif
38#include <libkcal/calendarlocal.h> 38#include <libkcal/calendarlocal.h>
39#include <libkcal/todo.h> 39#include <libkcal/todo.h>
40#include <libkcal/phoneformat.h> 40#include <libkcal/phoneformat.h>
41#include <libkdepim/ksyncprofile.h> 41#include <libkdepim/ksyncprofile.h>
42#include <libkcal/kincidenceformatter.h> 42#include <libkcal/kincidenceformatter.h>
43#include <libkdepim/kpimglobalprefs.h> 43#include <libkdepim/kpimglobalprefs.h>
44 44
45#include "calendarview.h" 45#include "calendarview.h"
46#include "koviewmanager.h" 46#include "koviewmanager.h"
47#include "datenavigator.h" 47#include "datenavigator.h"
48#include "koagendaview.h" 48#include "koagendaview.h"
49#include "koagenda.h" 49#include "koagenda.h"
50#include "kodialogmanager.h" 50#include "kodialogmanager.h"
51#include "kdialogbase.h" 51#include "kdialogbase.h"
52#include "kapplication.h" 52#include "kapplication.h"
53#include "kofilterview.h" 53#include "kofilterview.h"
54#include "kstandarddirs.h" 54#include "kstandarddirs.h"
55#include "koprefs.h" 55#include "koprefs.h"
56#include "kfiledialog.h" 56#include "kfiledialog.h"
57#include "koglobals.h" 57#include "koglobals.h"
58#include "kglobal.h" 58#include "kglobal.h"
59#include "klocale.h" 59#include "klocale.h"
60#include "kconfig.h" 60#include "kconfig.h"
61#include "simplealarmclient.h" 61#include "simplealarmclient.h"
62#include "externalapphandler.h" 62#include "externalapphandler.h"
63 63
64using namespace KCal; 64using namespace KCal;
65#ifndef _WIN32_ 65#ifndef _WIN32_
66#include <unistd.h> 66#include <unistd.h>
67#else 67#else
68#include "koimportoldialog.h" 68#include "koimportoldialog.h"
69#endif 69#endif
70#include "mainwindow.h" 70#include "mainwindow.h"
71 71
72class KOex2phonePrefs : public QDialog 72class KOex2phonePrefs : public QDialog
73{ 73{
74 public: 74 public:
75 KOex2phonePrefs( QWidget *parent=0, const char *name=0 ) : 75 KOex2phonePrefs( QWidget *parent=0, const char *name=0 ) :
76 QDialog( parent, name, true ) 76 QDialog( parent, name, true )
77 { 77 {
78 setCaption( i18n("Export to phone options") ); 78 setCaption( i18n("Export to phone options") );
79 QVBoxLayout* lay = new QVBoxLayout( this ); 79 QVBoxLayout* lay = new QVBoxLayout( this );
80 lay->setSpacing( 3 ); 80 lay->setSpacing( 3 );
81 lay->setMargin( 3 ); 81 lay->setMargin( 3 );
82 82 QLabel *lab;
83 lay->addWidget(new QLabel( i18n("Please read phone sync howto to\nknow more about the connection settings."), this ) ); 83 lay->addWidget(lab = new QLabel( i18n("Please read Help-Sync Howto\nto know what settings to use."), this ) );
84 lab->setAlignment (AlignHCenter );
84 QHBox* temphb; 85 QHBox* temphb;
85 temphb = new QHBox( this ); 86 temphb = new QHBox( this );
86 new QLabel( i18n("I/O device: "), temphb ); 87 new QLabel( i18n("I/O device: "), temphb );
87 mPhoneDevice = new QLineEdit( temphb); 88 mPhoneDevice = new QLineEdit( temphb);
88 lay->addWidget( temphb ); 89 lay->addWidget( temphb );
89 temphb = new QHBox( this ); 90 temphb = new QHBox( this );
90 new QLabel( i18n("Connection: "), temphb ); 91 new QLabel( i18n("Connection: "), temphb );
91 mPhoneConnection = new QLineEdit( temphb); 92 mPhoneConnection = new QLineEdit( temphb);
92 lay->addWidget( temphb ); 93 lay->addWidget( temphb );
93 temphb = new QHBox( this ); 94 temphb = new QHBox( this );
94 new QLabel( i18n("Model(opt.): "), temphb ); 95 new QLabel( i18n("Model(opt.): "), temphb );
95 mPhoneModel = new QLineEdit( temphb); 96 mPhoneModel = new QLineEdit( temphb);
96 lay->addWidget( temphb ); 97 lay->addWidget( temphb );
97 mWriteBackFuture= new QCheckBox( i18n("Write back events in future only"), this ); 98 mWriteBackFuture= new QCheckBox( i18n("Write back events in future only"), this );
98 mWriteBackFuture->setChecked( true ); 99 mWriteBackFuture->setChecked( true );
99 lay->addWidget( mWriteBackFuture ); 100 lay->addWidget( mWriteBackFuture );
100 temphb = new QHBox( this ); 101 temphb = new QHBox( this );
101 new QLabel( i18n("Max. weeks in future: ") , temphb ); 102 new QLabel( i18n("Max. weeks in future: ") , temphb );
102 mWriteBackFutureWeeks= new QSpinBox(1,104, 1, temphb); 103 mWriteBackFutureWeeks= new QSpinBox(1,104, 1, temphb);
103 mWriteBackFutureWeeks->setValue( 8 ); 104 mWriteBackFutureWeeks->setValue( 8 );
104 lay->addWidget( temphb ); 105 lay->addWidget( temphb );
105 QPushButton * ok = new QPushButton( i18n("Export!"), this ); 106 lay->addWidget(lab = new QLabel( i18n("NOTE: This will remove all old\n todo/calendar data on phone!"), this ) );
107 lab->setAlignment (AlignHCenter );
108 QPushButton * ok = new QPushButton( i18n("Export to mobile phone!"), this );
106 lay->addWidget( ok ); 109 lay->addWidget( ok );
107 QPushButton * cancel = new QPushButton( i18n("Cancel"), this ); 110 QPushButton * cancel = new QPushButton( i18n("Cancel"), this );
108 lay->addWidget( cancel ); 111 lay->addWidget( cancel );
109 connect ( ok,SIGNAL(clicked() ),this , SLOT ( accept() ) ); 112 connect ( ok,SIGNAL(clicked() ),this , SLOT ( accept() ) );
110 connect (cancel, SIGNAL(clicked() ), this, SLOT ( reject()) ); 113 connect (cancel, SIGNAL(clicked() ), this, SLOT ( reject()) );
111 resize( 220, 220 ); 114 resize( 220, 240 );
112 115
113 } 116 }
114 117
115public: 118public:
116 QLineEdit* mPhoneConnection, *mPhoneDevice, *mPhoneModel; 119 QLineEdit* mPhoneConnection, *mPhoneDevice, *mPhoneModel;
117 QCheckBox* mWriteBackFuture; 120 QCheckBox* mWriteBackFuture;
118 QSpinBox* mWriteBackFutureWeeks; 121 QSpinBox* mWriteBackFutureWeeks;
119}; 122};
120 123
121int globalFlagBlockStartup; 124int globalFlagBlockStartup;
122MainWindow::MainWindow( QWidget *parent, const char *name, QString msg) : 125MainWindow::MainWindow( QWidget *parent, const char *name, QString msg) :
123 QMainWindow( parent, name ) 126 QMainWindow( parent, name )
124{ 127{
125 mPassWordPiSync = "abc"; 128 mPassWordPiSync = "abc";
126#ifdef DESKTOP_VERSION 129#ifdef DESKTOP_VERSION
127 setFont( QFont("Arial"), 14 ); 130 setFont( QFont("Arial"), 14 );
128#endif 131#endif
129 mSyncActionDialog = 0; 132 mSyncActionDialog = 0;
130 mServerSocket = 0; 133 mServerSocket = 0;
131 mClosed = false; 134 mClosed = false;
132 //QString confFile = KStandardDirs::appDir() + "config/korganizerrc"; 135 //QString confFile = KStandardDirs::appDir() + "config/korganizerrc";
133 QString confFile = locateLocal("config","korganizerrc"); 136 QString confFile = locateLocal("config","korganizerrc");
134 QFileInfo finf ( confFile ); 137 QFileInfo finf ( confFile );
135 bool showWarning = !finf.exists(); 138 bool showWarning = !finf.exists();
136 setIcon(SmallIcon( "ko24" ) ); 139 setIcon(SmallIcon( "ko24" ) );
137 mBlockAtStartup = true; 140 mBlockAtStartup = true;
138 mFlagKeyPressed = false; 141 mFlagKeyPressed = false;
139 setCaption("KOrganizer/Pi"); 142 setCaption("KOrganizer/Pi");
140 KOPrefs *p = KOPrefs::instance(); 143 KOPrefs *p = KOPrefs::instance();
141 KPimGlobalPrefs::instance()->setGlobalConfig(); 144 KPimGlobalPrefs::instance()->setGlobalConfig();
142 // if ( QApplication::desktop()->height() > 480 ) { 145 // if ( QApplication::desktop()->height() > 480 ) {
143// if ( p->mHourSize == 4 ) 146// if ( p->mHourSize == 4 )
144// p->mHourSize = 6; 147// p->mHourSize = 6;
145// } 148// }
146 if ( p->mHourSize > 18 ) 149 if ( p->mHourSize > 18 )
147 p->mHourSize = 18; 150 p->mHourSize = 18;
148 QMainWindow::ToolBarDock tbd; 151 QMainWindow::ToolBarDock tbd;
149 if ( p->mToolBarHor ) { 152 if ( p->mToolBarHor ) {
150 if ( p->mToolBarUp ) 153 if ( p->mToolBarUp )
151 tbd = Bottom; 154 tbd = Bottom;
152 else 155 else
153 tbd = Top; 156 tbd = Top;
154 } 157 }
155 else { 158 else {
156 if ( p->mToolBarUp ) 159 if ( p->mToolBarUp )
157 tbd = Right; 160 tbd = Right;
158 else 161 else
159 tbd = Left; 162 tbd = Left;
160 } 163 }
161 if ( KOPrefs::instance()->mUseAppColors ) 164 if ( KOPrefs::instance()->mUseAppColors )
162 QApplication::setPalette( QPalette (KOPrefs::instance()->mAppColor1, KOPrefs::instance()->mAppColor2), true ); 165 QApplication::setPalette( QPalette (KOPrefs::instance()->mAppColor1, KOPrefs::instance()->mAppColor2), true );
163 globalFlagBlockStartup = 1; 166 globalFlagBlockStartup = 1;
164 iconToolBar = new QPEToolBar( this ); 167 iconToolBar = new QPEToolBar( this );
165 addToolBar (iconToolBar , tbd ); 168 addToolBar (iconToolBar , tbd );
166 mBlockSaveFlag = false; 169 mBlockSaveFlag = false;
167 mCalendarModifiedFlag = false; 170 mCalendarModifiedFlag = false;
168 171
169 QLabel* splash = new QLabel(i18n("KO/Pi is starting ... "), this ); 172 QLabel* splash = new QLabel(i18n("KO/Pi is starting ... "), this );
170 splash->setAlignment ( AlignCenter ); 173 splash->setAlignment ( AlignCenter );
171 setCentralWidget( splash ); 174 setCentralWidget( splash );
172#ifndef DESKTOP_VERSION 175#ifndef DESKTOP_VERSION
173 showMaximized(); 176 showMaximized();
174#endif 177#endif
175 //qDebug("Mainwidget x %d y %d w %d h %d", x(), y(), width(), height ()); 178 //qDebug("Mainwidget x %d y %d w %d h %d", x(), y(), width(), height ());
176 setDefaultPreferences(); 179 setDefaultPreferences();
177 mCalendar = new CalendarLocal(); 180 mCalendar = new CalendarLocal();
178 mView = new CalendarView( mCalendar, this,"mCalendar " ); 181 mView = new CalendarView( mCalendar, this,"mCalendar " );
179 mView->hide(); 182 mView->hide();
180 //mView->resize(splash->size() ); 183 //mView->resize(splash->size() );
181 initActions(); 184 initActions();
182#ifndef DESKTOP_VERSION 185#ifndef DESKTOP_VERSION
183 iconToolBar->show(); 186 iconToolBar->show();
184 qApp->processEvents(); 187 qApp->processEvents();
185#endif 188#endif
186 //qDebug("Splashwidget x %d y %d w %d h %d", splash-> x(), splash->y(), splash->width(),splash-> height ()); 189 //qDebug("Splashwidget x %d y %d w %d h %d", splash-> x(), splash->y(), splash->width(),splash-> height ());
187 int vh = height() ; 190 int vh = height() ;
188 int vw = width(); 191 int vw = width();
189 //qDebug("Toolbar hei %d ",iconToolBar->height() ); 192 //qDebug("Toolbar hei %d ",iconToolBar->height() );
190 if ( iconToolBar->orientation () == Qt:: Horizontal ) { 193 if ( iconToolBar->orientation () == Qt:: Horizontal ) {
191 vh -= iconToolBar->height(); 194 vh -= iconToolBar->height();
192 } else { 195 } else {
193 vw -= iconToolBar->height(); 196 vw -= iconToolBar->height();
194 } 197 }
195 //mView->setMaximumSize( splash->size() ); 198 //mView->setMaximumSize( splash->size() );
196 //mView->resize( splash->size() ); 199 //mView->resize( splash->size() );
197 //qDebug("MainView x %d y %d w %d h %d", mView->x(),mView-> y(), mView->width(), mView->height ()); 200 //qDebug("MainView x %d y %d w %d h %d", mView->x(),mView-> y(), mView->width(), mView->height ());
198 mView->readSettings(); 201 mView->readSettings();
199 bool newFile = false; 202 bool newFile = false;
200 if( !QFile::exists( defaultFileName() ) ) { 203 if( !QFile::exists( defaultFileName() ) ) {
201 QFileInfo finfo ( defaultFileName() ); 204 QFileInfo finfo ( defaultFileName() );
202 QString oldFile = QDir::convertSeparators( QDir::homeDirPath()+"/Applications/korganizer/mycalendar.ics"); 205 QString oldFile = QDir::convertSeparators( QDir::homeDirPath()+"/Applications/korganizer/mycalendar.ics");
203 qDebug("oldfile %s ", oldFile.latin1()); 206 qDebug("oldfile %s ", oldFile.latin1());
204 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"; 207 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";
205 finfo.setFile( oldFile ); 208 finfo.setFile( oldFile );
206 if (finfo.exists() ) { 209 if (finfo.exists() ) {
207 KMessageBox::information( this, message); 210 KMessageBox::information( this, message);
208 mView->openCalendar( oldFile ); 211 mView->openCalendar( oldFile );
209 qApp->processEvents(); 212 qApp->processEvents();
210 } else { 213 } else {
211 oldFile = QDir::convertSeparators( QDir::homeDirPath()+"/korganizer/mycalendar.ics"); 214 oldFile = QDir::convertSeparators( QDir::homeDirPath()+"/korganizer/mycalendar.ics");
212 finfo.setFile( oldFile ); 215 finfo.setFile( oldFile );
213 if (finfo.exists() ) { 216 if (finfo.exists() ) {
214 KMessageBox::information( this, message); 217 KMessageBox::information( this, message);
215 mView->openCalendar( oldFile ); 218 mView->openCalendar( oldFile );
216 qApp->processEvents(); 219 qApp->processEvents();
217 } 220 }
218 } 221 }
219 mView->saveCalendar( defaultFileName() ); 222 mView->saveCalendar( defaultFileName() );
220 newFile = true; 223 newFile = true;
221 } 224 }
222 225
223 QTime neededSaveTime = QDateTime::currentDateTime().time(); 226 QTime neededSaveTime = QDateTime::currentDateTime().time();
224 mView->openCalendar( defaultFileName() ); 227 mView->openCalendar( defaultFileName() );
225 int msNeeded = neededSaveTime.msecsTo( QDateTime::currentDateTime().time() ); 228 int msNeeded = neededSaveTime.msecsTo( QDateTime::currentDateTime().time() );
226 qDebug("KO: Calendar loading time: %d ms",msNeeded ); 229 qDebug("KO: Calendar loading time: %d ms",msNeeded );
227 230
228 if ( KOPrefs::instance()->mLanguageChanged ) { 231 if ( KOPrefs::instance()->mLanguageChanged ) {
229 KOPrefs::instance()->setCategoryDefaults(); 232 KOPrefs::instance()->setCategoryDefaults();
230 int count = mView->addCategories(); 233 int count = mView->addCategories();
231 KOPrefs::instance()->mLanguageChanged = false; 234 KOPrefs::instance()->mLanguageChanged = false;
232 } 235 }
233 processIncidenceSelection( 0 ); 236 processIncidenceSelection( 0 );
234 connect( mView, SIGNAL( incidenceSelected( Incidence * ) ), 237 connect( mView, SIGNAL( incidenceSelected( Incidence * ) ),
235 SLOT( processIncidenceSelection( Incidence * ) ) ); 238 SLOT( processIncidenceSelection( Incidence * ) ) );
236 connect( mView, SIGNAL( modifiedChanged( bool ) ), 239 connect( mView, SIGNAL( modifiedChanged( bool ) ),
237 SLOT( slotModifiedChanged( bool ) ) ); 240 SLOT( slotModifiedChanged( bool ) ) );
238 241
239 242
240 connect( &mSaveTimer, SIGNAL( timeout() ), SLOT( save() ) ); 243 connect( &mSaveTimer, SIGNAL( timeout() ), SLOT( save() ) );
241 mView->setModified( false ); 244 mView->setModified( false );
242 mBlockAtStartup = false; 245 mBlockAtStartup = false;
243 mView->setModified( false ); 246 mView->setModified( false );
244 setCentralWidget( mView ); 247 setCentralWidget( mView );
245 globalFlagBlockStartup = 0; 248 globalFlagBlockStartup = 0;
246 mView->show(); 249 mView->show();
247 delete splash; 250 delete splash;
248 if ( newFile ) 251 if ( newFile )
249 mView->updateConfig(); 252 mView->updateConfig();
250 // qApp->processEvents(); 253 // qApp->processEvents();
251 //qDebug("MainView x %d y %d w %d h %d", mView->x(),mView-> y(), mView->width(), mView->height ()); 254 //qDebug("MainView x %d y %d w %d h %d", mView->x(),mView-> y(), mView->width(), mView->height ());
252 fillSyncMenu(); 255 fillSyncMenu();
253 mView->viewManager()->agendaView()->setStartHour( KOPrefs::instance()->mDayBegins ); 256 mView->viewManager()->agendaView()->setStartHour( KOPrefs::instance()->mDayBegins );
254 if ( showWarning ) { 257 if ( showWarning ) {
255 KMessageBox::information( this, 258 KMessageBox::information( this,
256 "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"); 259 "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");
257 qApp->processEvents(); 260 qApp->processEvents();
258 mView->dialogManager()->showSyncOptions(); 261 mView->dialogManager()->showSyncOptions();
259 } 262 }
260 263
261 //US listen for result adressed from Ka/Pi 264 //US listen for result adressed from Ka/Pi
262#ifndef DESKTOP_VERSION 265#ifndef DESKTOP_VERSION
263 connect(qApp, SIGNAL (appMessage ( const QCString &, const QByteArray & )), ExternalAppHandler::instance(), SLOT (appMessage ( const QCString &, const QByteArray & ))); 266 connect(qApp, SIGNAL (appMessage ( const QCString &, const QByteArray & )), ExternalAppHandler::instance(), SLOT (appMessage ( const QCString &, const QByteArray & )));
264#endif 267#endif
265} 268}
266MainWindow::~MainWindow() 269MainWindow::~MainWindow()
267{ 270{
268 //qDebug("MainWindow::~MainWindow() "); 271 //qDebug("MainWindow::~MainWindow() ");
269 //save toolbar location 272 //save toolbar location
270 delete mServerSocket; 273 delete mServerSocket;
271 delete mCalendar; 274 delete mCalendar;
272 delete KOPrefs::instance(); 275 delete KOPrefs::instance();
273 delete KIncidenceFormatter::instance(); 276 delete KIncidenceFormatter::instance();
274 277
275 278
276} 279}
277void MainWindow::showMaximized () 280void MainWindow::showMaximized ()
278{ 281{
279#ifndef DESKTOP_VERSION 282#ifndef DESKTOP_VERSION
280 if ( ! globalFlagBlockStartup ) 283 if ( ! globalFlagBlockStartup )
281 if ( mClosed ) 284 if ( mClosed )
282 mView->goToday(); 285 mView->goToday();
283#endif 286#endif
284 QWidget::showMaximized () ; 287 QWidget::showMaximized () ;
285 mClosed = false; 288 mClosed = false;
286} 289}
287void MainWindow::closeEvent( QCloseEvent* ce ) 290void MainWindow::closeEvent( QCloseEvent* ce )
288{ 291{
289 292
290 293
291 294
292 if ( ! KOPrefs::instance()->mAskForQuit ) { 295 if ( ! KOPrefs::instance()->mAskForQuit ) {
293 saveOnClose(); 296 saveOnClose();
294 mClosed = true; 297 mClosed = true;
295 ce->accept(); 298 ce->accept();
296 return; 299 return;
297 300
298 } 301 }
299 302
300 switch( QMessageBox::information( this, "KO/Pi", 303 switch( QMessageBox::information( this, "KO/Pi",
301 i18n("Do you really want\nto close KO/Pi?"), 304 i18n("Do you really want\nto close KO/Pi?"),
302 i18n("Close"), i18n("No"), 305 i18n("Close"), i18n("No"),
303 0, 0 ) ) { 306 0, 0 ) ) {
304 case 0: 307 case 0:
305 saveOnClose(); 308 saveOnClose();
306 mClosed = true; 309 mClosed = true;
307 ce->accept(); 310 ce->accept();
308 break; 311 break;
309 case 1: 312 case 1:
310 ce->ignore(); 313 ce->ignore();
311 break; 314 break;
312 case 2: 315 case 2:
313 316
314 default: 317 default:
315 break; 318 break;
316 } 319 }
317 320
318 321
319} 322}
320 323
321void MainWindow::recieve( const QCString& cmsg, const QByteArray& data ) 324void MainWindow::recieve( const QCString& cmsg, const QByteArray& data )
322{ 325{
323 QDataStream stream( data, IO_ReadOnly ); 326 QDataStream stream( data, IO_ReadOnly );
324 // QMessageBox::about( this, "About KOrganizer/Pi", "*" +msg +"*" ); 327 // QMessageBox::about( this, "About KOrganizer/Pi", "*" +msg +"*" );
325 //QString datamess; 328 //QString datamess;
326 //qDebug("message "); 329 //qDebug("message ");
327 qDebug("KO: QCOP message received: %s ", cmsg.data() ); 330 qDebug("KO: QCOP message received: %s ", cmsg.data() );
328 331
329 if ( cmsg == "-writeFile" ) { 332 if ( cmsg == "-writeFile" ) {
330 // I made from the "-writeFile" an "-writeAlarm" 333 // I made from the "-writeFile" an "-writeAlarm"
331 mView->viewManager()->showWhatsNextView(); 334 mView->viewManager()->showWhatsNextView();
332 mCalendar->checkAlarmForIncidence( 0, true); 335 mCalendar->checkAlarmForIncidence( 0, true);
333 showMaximized(); 336 showMaximized();
334 raise(); 337 raise();
335 return; 338 return;
336 } 339 }
337 340
338 if ( cmsg == "-writeFile" ) { 341 if ( cmsg == "-writeFile" ) {
339 // I made from the "-writeFile" an "-writeAlarm" 342 // I made from the "-writeFile" an "-writeAlarm"
340 mView->viewManager()->showWhatsNextView(); 343 mView->viewManager()->showWhatsNextView();
341 mCalendar->checkAlarmForIncidence( 0, true); 344 mCalendar->checkAlarmForIncidence( 0, true);
342 showMaximized(); 345 showMaximized();
343 raise(); 346 raise();
344 return; 347 return;
345 348
346 } 349 }
347 if ( cmsg == "-writeFileSilent" ) { 350 if ( cmsg == "-writeFileSilent" ) {
348 // I made from the "-writeFile" an "-writeAlarm" 351 // I made from the "-writeFile" an "-writeAlarm"
349 // mView->viewManager()->showWhatsNextView(); 352 // mView->viewManager()->showWhatsNextView();
350 mCalendar->checkAlarmForIncidence( 0, true); 353 mCalendar->checkAlarmForIncidence( 0, true);
351 //showMaximized(); 354 //showMaximized();
352 //raise(); 355 //raise();
353 hide(); 356 hide();
354 return; 357 return;
355 } 358 }
356 if ( cmsg == "-newCountdown" ) { 359 if ( cmsg == "-newCountdown" ) {
357 qDebug("newCountdown "); 360 qDebug("newCountdown ");
358 361
359 } 362 }
360 QString msg ; 363 QString msg ;
361 QString allmsg = cmsg; 364 QString allmsg = cmsg;
362 while ( allmsg.length() > 0 ) { 365 while ( allmsg.length() > 0 ) {
363 int nextC = allmsg.find( "-", 1 ); 366 int nextC = allmsg.find( "-", 1 );
364 if ( nextC == -1 ) { 367 if ( nextC == -1 ) {
365 msg = allmsg; 368 msg = allmsg;
366 allmsg = ""; 369 allmsg = "";
367 } else{ 370 } else{
368 msg = allmsg.left( nextC ); 371 msg = allmsg.left( nextC );
369 allmsg = allmsg.mid( nextC, allmsg.length()-nextC ); 372 allmsg = allmsg.mid( nextC, allmsg.length()-nextC );
370 } 373 }
371 //qDebug("msg: %s all: %s ", msg.latin1(), allmsg.latin1() ); 374 //qDebug("msg: %s all: %s ", msg.latin1(), allmsg.latin1() );
372 if ( msg == "-newEvent" ) { 375 if ( msg == "-newEvent" ) {
373 mView->newEvent(); 376 mView->newEvent();
374 } 377 }
375 if ( msg == "-newTodo" ) { 378 if ( msg == "-newTodo" ) {
376 mView->newTodo(); 379 mView->newTodo();
377 380
378 } 381 }
379 if ( msg == "-showWN" ) { 382 if ( msg == "-showWN" ) {
380 mView->viewManager()->showWhatsNextView(); 383 mView->viewManager()->showWhatsNextView();
381 } 384 }
382 if ( msg == "-showTodo" ) { 385 if ( msg == "-showTodo" ) {
383 mView->viewManager()->showTodoView(); 386 mView->viewManager()->showTodoView();
384 } 387 }
385 if ( msg == "-showList" ) { 388 if ( msg == "-showList" ) {
386 mView->viewManager()->showListView(); 389 mView->viewManager()->showListView();
387 } 390 }
388 else if ( msg == "-showDay" ) { 391 else if ( msg == "-showDay" ) {
389 mView->viewManager()->showDayView(); 392 mView->viewManager()->showDayView();
390 } 393 }
391 else if ( msg == "-showWWeek" ) { 394 else if ( msg == "-showWWeek" ) {
392 mView->viewManager()->showWorkWeekView(); 395 mView->viewManager()->showWorkWeekView();
393 } 396 }
394 else if ( msg == "-ringSync" ) { 397 else if ( msg == "-ringSync" ) {
395 multiSync( false ); 398 multiSync( false );
396 } 399 }
397 else if ( msg == "-showWeek" ) { 400 else if ( msg == "-showWeek" ) {
398 mView->viewManager()->showWeekView(); 401 mView->viewManager()->showWeekView();
399 } 402 }
400 else if ( msg == "-showTodo" ) { 403 else if ( msg == "-showTodo" ) {
401 mView->viewManager()->showTodoView(); 404 mView->viewManager()->showTodoView();
402 } 405 }
403 else if ( msg == "-showJournal" ) { 406 else if ( msg == "-showJournal" ) {
404 mView->dateNavigator()->selectDates( 1 ); 407 mView->dateNavigator()->selectDates( 1 );
405 mView->dateNavigator()->selectToday(); 408 mView->dateNavigator()->selectToday();
406 mView->viewManager()->showJournalView(); 409 mView->viewManager()->showJournalView();
407 } 410 }
408 else if ( msg == "-showKO" ) { 411 else if ( msg == "-showKO" ) {
409 mView->viewManager()->showNextXView(); 412 mView->viewManager()->showNextXView();
410 } 413 }
411 else if ( msg == "-showWNext" || msg == "nextView()" ) { 414 else if ( msg == "-showWNext" || msg == "nextView()" ) {
412 mView->viewManager()->showWhatsNextView(); 415 mView->viewManager()->showWhatsNextView();
413 } 416 }
414 else if ( msg == "-showNextXView" ) { 417 else if ( msg == "-showNextXView" ) {
415 mView->viewManager()->showNextXView(); 418 mView->viewManager()->showNextXView();
416 } 419 }
417 420
418 421
419 } 422 }
420 423
421 showMaximized(); 424 showMaximized();
422 raise(); 425 raise();
423} 426}
424 427
425QPixmap MainWindow::loadPixmap( QString name ) 428QPixmap MainWindow::loadPixmap( QString name )
426{ 429{
427 return SmallIcon( name ); 430 return SmallIcon( name );
428 431
429} 432}
430void MainWindow::initActions() 433void MainWindow::initActions()
431{ 434{
432 //KOPrefs::instance()->mShowFullMenu 435 //KOPrefs::instance()->mShowFullMenu
433 iconToolBar->clear(); 436 iconToolBar->clear();
434 KOPrefs *p = KOPrefs::instance(); 437 KOPrefs *p = KOPrefs::instance();
435 //QPEMenuBar *menuBar1;// = new QPEMenuBar( iconToolBar ); 438 //QPEMenuBar *menuBar1;// = new QPEMenuBar( iconToolBar );
436 439
437 QPopupMenu *viewMenu = new QPopupMenu( this ); 440 QPopupMenu *viewMenu = new QPopupMenu( this );
438 QPopupMenu *actionMenu = new QPopupMenu( this ); 441 QPopupMenu *actionMenu = new QPopupMenu( this );
439 QPopupMenu *importMenu = new QPopupMenu( this ); 442 QPopupMenu *importMenu = new QPopupMenu( this );
440 selectFilterMenu = new QPopupMenu( this ); 443 selectFilterMenu = new QPopupMenu( this );
441 selectFilterMenu->setCheckable( true ); 444 selectFilterMenu->setCheckable( true );
442 syncMenu = new QPopupMenu( this ); 445 syncMenu = new QPopupMenu( this );
443 configureAgendaMenu = new QPopupMenu( this ); 446 configureAgendaMenu = new QPopupMenu( this );
444 configureToolBarMenu = new QPopupMenu( this ); 447 configureToolBarMenu = new QPopupMenu( this );
445 QPopupMenu *helpMenu = new QPopupMenu( this ); 448 QPopupMenu *helpMenu = new QPopupMenu( this );
446 if ( KOPrefs::instance()->mShowFullMenu ) { 449 if ( KOPrefs::instance()->mShowFullMenu ) {
447 QMenuBar *menuBar1; 450 QMenuBar *menuBar1;
448 menuBar1 = menuBar(); 451 menuBar1 = menuBar();
449 menuBar1->insertItem( i18n("File"), importMenu ); 452 menuBar1->insertItem( i18n("File"), importMenu );
450 menuBar1->insertItem( i18n("View"), viewMenu ); 453 menuBar1->insertItem( i18n("View"), viewMenu );
451 menuBar1->insertItem( i18n("Actions"), actionMenu ); 454 menuBar1->insertItem( i18n("Actions"), actionMenu );
452 menuBar1->insertItem( i18n("Synchronize"), syncMenu ); 455 menuBar1->insertItem( i18n("Synchronize"), syncMenu );
453 menuBar1->insertItem( i18n("AgendaSize"),configureAgendaMenu ); 456 menuBar1->insertItem( i18n("AgendaSize"),configureAgendaMenu );
454 //menuBar1->insertItem( i18n("Toolbar"),configureToolBarMenu ); 457 //menuBar1->insertItem( i18n("Toolbar"),configureToolBarMenu );
455 menuBar1->insertItem( i18n("Filter"),selectFilterMenu ); 458 menuBar1->insertItem( i18n("Filter"),selectFilterMenu );
456 menuBar1->insertItem( i18n("Help"), helpMenu ); 459 menuBar1->insertItem( i18n("Help"), helpMenu );
457 } else { 460 } else {
458 QPEMenuBar *menuBar1; 461 QPEMenuBar *menuBar1;
459 menuBar1 = new QPEMenuBar( iconToolBar ); 462 menuBar1 = new QPEMenuBar( iconToolBar );
460 QPopupMenu *menuBar = new QPopupMenu( this ); 463 QPopupMenu *menuBar = new QPopupMenu( this );
461 menuBar1->insertItem( i18n("ME"), menuBar); 464 menuBar1->insertItem( i18n("ME"), menuBar);
462 menuBar->insertItem( i18n("File"), importMenu ); 465 menuBar->insertItem( i18n("File"), importMenu );
463 menuBar->insertItem( i18n("View"), viewMenu ); 466 menuBar->insertItem( i18n("View"), viewMenu );
464 menuBar->insertItem( i18n("Actions"), actionMenu ); 467 menuBar->insertItem( i18n("Actions"), actionMenu );
465 menuBar->insertItem( i18n("Synchronize"), syncMenu ); 468 menuBar->insertItem( i18n("Synchronize"), syncMenu );
466 menuBar->insertItem( i18n("AgendaSize"),configureAgendaMenu ); 469 menuBar->insertItem( i18n("AgendaSize"),configureAgendaMenu );
467 menuBar->insertItem( i18n("Toolbar"),configureToolBarMenu ); 470 menuBar->insertItem( i18n("Toolbar"),configureToolBarMenu );
468 menuBar->insertItem( i18n("Filter"),selectFilterMenu ); 471 menuBar->insertItem( i18n("Filter"),selectFilterMenu );
469 menuBar->insertItem( i18n("Help"), helpMenu ); 472 menuBar->insertItem( i18n("Help"), helpMenu );
470 //menuBar1->setMaximumWidth( menuBar1->sizeHint().width() ); 473 //menuBar1->setMaximumWidth( menuBar1->sizeHint().width() );
471 menuBar1->setMaximumSize( menuBar1->sizeHint( )); 474 menuBar1->setMaximumSize( menuBar1->sizeHint( ));
472 } 475 }
473 connect ( syncMenu, SIGNAL( activated ( int ) ), this, SLOT (slotSyncMenu( int ) ) ); 476 connect ( syncMenu, SIGNAL( activated ( int ) ), this, SLOT (slotSyncMenu( int ) ) );
474 connect ( selectFilterMenu, SIGNAL( activated ( int ) ), this, SLOT (selectFilter( int ) ) ); 477 connect ( selectFilterMenu, SIGNAL( activated ( int ) ), this, SLOT (selectFilter( int ) ) );
475 connect ( selectFilterMenu, SIGNAL( aboutToShow () ), this, SLOT (fillFilterMenu() ) ); 478 connect ( selectFilterMenu, SIGNAL( aboutToShow () ), this, SLOT (fillFilterMenu() ) );
476 479
477 // ****************** 480 // ******************
478 QAction *action; 481 QAction *action;
479 QIconSet icon; 482 QIconSet icon;
480 // QPopupMenu *configureMenu= new QPopupMenu( menuBar ); 483 // QPopupMenu *configureMenu= new QPopupMenu( menuBar );
481 configureToolBarMenu->setCheckable( true ); 484 configureToolBarMenu->setCheckable( true );
482 485
483 QString pathString = ""; 486 QString pathString = "";
484 if ( !p->mToolBarMiniIcons ) { 487 if ( !p->mToolBarMiniIcons ) {
485 if ( QApplication::desktop()->width() < 480 ) 488 if ( QApplication::desktop()->width() < 480 )
486 pathString += "icons16/"; 489 pathString += "icons16/";
487 } else 490 } else
488 pathString += "iconsmini/"; 491 pathString += "iconsmini/";
489 configureAgendaMenu->setCheckable( true ); 492 configureAgendaMenu->setCheckable( true );
490 configureAgendaMenu->insertItem(i18n("Toggle Allday"), 1 ); 493 configureAgendaMenu->insertItem(i18n("Toggle Allday"), 1 );
491 configureAgendaMenu->insertSeparator(); 494 configureAgendaMenu->insertSeparator();
492 configureAgendaMenu->insertItem(i18n("Tiny"), 4 ); 495 configureAgendaMenu->insertItem(i18n("Tiny"), 4 );
493 configureAgendaMenu->insertItem(i18n("Small"), 6 ); 496 configureAgendaMenu->insertItem(i18n("Small"), 6 );
494 configureAgendaMenu->insertItem(i18n("Medium"), 8 ); 497 configureAgendaMenu->insertItem(i18n("Medium"), 8 );
495 configureAgendaMenu->insertItem(i18n("Normal"), 10 ); 498 configureAgendaMenu->insertItem(i18n("Normal"), 10 );
@@ -776,768 +779,772 @@ void MainWindow::initActions()
776 action = new QAction( "Translate Howto", i18n("User translation..."), 0,this ); 779 action = new QAction( "Translate Howto", i18n("User translation..."), 0,this );
777 action->addTo( helpMenu ); 780 action->addTo( helpMenu );
778 connect( action, SIGNAL( activated() ), 781 connect( action, SIGNAL( activated() ),
779 SLOT( usertrans() ) ); 782 SLOT( usertrans() ) );
780 action = new QAction( "Sync Howto", i18n("Sync HowTo..."), 0,this ); 783 action = new QAction( "Sync Howto", i18n("Sync HowTo..."), 0,this );
781 action->addTo( helpMenu ); 784 action->addTo( helpMenu );
782 connect( action, SIGNAL( activated() ), 785 connect( action, SIGNAL( activated() ),
783 SLOT( synchowto() ) ); 786 SLOT( synchowto() ) );
784 action = new QAction( "Whats New", i18n("What's new?"), 0,this ); 787 action = new QAction( "Whats New", i18n("What's new?"), 0,this );
785 action->addTo( helpMenu ); 788 action->addTo( helpMenu );
786 connect( action, SIGNAL( activated() ), 789 connect( action, SIGNAL( activated() ),
787 SLOT( whatsNew() ) ); 790 SLOT( whatsNew() ) );
788 action = new QAction( "Frequently asked questions", i18n("FAQ..."), 0,this ); 791 action = new QAction( "Frequently asked questions", i18n("FAQ..."), 0,this );
789 action->addTo( helpMenu ); 792 action->addTo( helpMenu );
790 connect( action, SIGNAL( activated() ), 793 connect( action, SIGNAL( activated() ),
791 SLOT( faq() ) ); 794 SLOT( faq() ) );
792 795
793 796
794 action = new QAction( "about", i18n("About..."), 0, this ); 797 action = new QAction( "about", i18n("About..."), 0, this );
795 action->addTo( helpMenu ); 798 action->addTo( helpMenu );
796 connect( action, SIGNAL( activated() ), 799 connect( action, SIGNAL( activated() ),
797 SLOT( about() ) ); 800 SLOT( about() ) );
798 action = new QAction( "licence", i18n("Licence..."), 0, this ); 801 action = new QAction( "licence", i18n("Licence..."), 0, this );
799 action->addTo( helpMenu ); 802 action->addTo( helpMenu );
800 connect( action, SIGNAL( activated() ), 803 connect( action, SIGNAL( activated() ),
801 SLOT( licence() ) ); 804 SLOT( licence() ) );
802 //menuBar->insertSeparator(); 805 //menuBar->insertSeparator();
803 806
804 // ****************************************************** 807 // ******************************************************
805 // menubar icons 808 // menubar icons
806 809
807 810
808 iconToolBar->setHorizontalStretchable (true ); 811 iconToolBar->setHorizontalStretchable (true );
809 //menuBar->insertItem( iconToolBar ); 812 //menuBar->insertItem( iconToolBar );
810 //xdays_action 813 //xdays_action
811 if (p-> mShowIconNewEvent) 814 if (p-> mShowIconNewEvent)
812 ne_action->addTo( iconToolBar ); 815 ne_action->addTo( iconToolBar );
813 if (p->mShowIconNewTodo ) 816 if (p->mShowIconNewTodo )
814 nt_action->addTo( iconToolBar ); 817 nt_action->addTo( iconToolBar );
815 if (p-> mShowIconSearch) 818 if (p-> mShowIconSearch)
816 search_action->addTo( iconToolBar ); 819 search_action->addTo( iconToolBar );
817 if (p-> mShowIconNext) 820 if (p-> mShowIconNext)
818 whatsnext_action->addTo( iconToolBar ); 821 whatsnext_action->addTo( iconToolBar );
819 if (p-> mShowIconNextDays) 822 if (p-> mShowIconNextDays)
820 xdays_action->addTo( iconToolBar ); 823 xdays_action->addTo( iconToolBar );
821 if (p-> mShowIconList) 824 if (p-> mShowIconList)
822 showlist_action->addTo( iconToolBar ); 825 showlist_action->addTo( iconToolBar );
823 if (p-> mShowIconDay1) 826 if (p-> mShowIconDay1)
824 day1_action->addTo( iconToolBar ); 827 day1_action->addTo( iconToolBar );
825 if (p-> mShowIconDay5) 828 if (p-> mShowIconDay5)
826 day5_action->addTo( iconToolBar ); 829 day5_action->addTo( iconToolBar );
827 if (p-> mShowIconDay7) 830 if (p-> mShowIconDay7)
828 day7_action->addTo( iconToolBar ); 831 day7_action->addTo( iconToolBar );
829 if (p-> mShowIconMonth) 832 if (p-> mShowIconMonth)
830 month_action->addTo( iconToolBar ); 833 month_action->addTo( iconToolBar );
831 if (p-> mShowIconTodoview) 834 if (p-> mShowIconTodoview)
832 todoview_action->addTo( iconToolBar ); 835 todoview_action->addTo( iconToolBar );
833 if (p-> mShowIconJournal) 836 if (p-> mShowIconJournal)
834 viewjournal_action->addTo( iconToolBar ); 837 viewjournal_action->addTo( iconToolBar );
835 icon = loadPixmap( pathString + "2leftarrowB" ); 838 icon = loadPixmap( pathString + "2leftarrowB" );
836 configureToolBarMenu->insertItem(icon, i18n("Prev. month"), 200, 14); 839 configureToolBarMenu->insertItem(icon, i18n("Prev. month"), 200, 14);
837 if (p-> mShowIconBackFast) { 840 if (p-> mShowIconBackFast) {
838 action = new QAction( i18n("Prev. month"), icon, i18n("Prev. month"),0 , this ); 841 action = new QAction( i18n("Prev. month"), icon, i18n("Prev. month"),0 , this );
839 connect( action, SIGNAL( activated() ), 842 connect( action, SIGNAL( activated() ),
840 mView, SLOT( goPreviousMonth() ) ); 843 mView, SLOT( goPreviousMonth() ) );
841 action->addTo( iconToolBar ); 844 action->addTo( iconToolBar );
842 } 845 }
843 icon = loadPixmap( pathString + "1leftarrowB" ); 846 icon = loadPixmap( pathString + "1leftarrowB" );
844 configureToolBarMenu->insertItem(icon, i18n("Go backward"), 210,15); 847 configureToolBarMenu->insertItem(icon, i18n("Go backward"), 210,15);
845 if (p-> mShowIconBack) { 848 if (p-> mShowIconBack) {
846 action = new QAction( i18n("Go backward"), icon, i18n("Go backward"),0 , this ); 849 action = new QAction( i18n("Go backward"), icon, i18n("Go backward"),0 , this );
847 connect( action, SIGNAL( activated() ), 850 connect( action, SIGNAL( activated() ),
848 mView, SLOT( goPrevious() ) ); 851 mView, SLOT( goPrevious() ) );
849 action->addTo( iconToolBar ); 852 action->addTo( iconToolBar );
850 } 853 }
851 if (p-> mShowIconToday) 854 if (p-> mShowIconToday)
852 today_action->addTo( iconToolBar ); 855 today_action->addTo( iconToolBar );
853 icon = loadPixmap( pathString + "1rightarrowB" ); 856 icon = loadPixmap( pathString + "1rightarrowB" );
854 configureToolBarMenu->insertItem(icon, i18n("Go forward"), 220); 857 configureToolBarMenu->insertItem(icon, i18n("Go forward"), 220);
855 if (p-> mShowIconForward) { 858 if (p-> mShowIconForward) {
856 action = new QAction( i18n("Go forward"), icon, i18n("Go forward"),0 , this ); 859 action = new QAction( i18n("Go forward"), icon, i18n("Go forward"),0 , this );
857 connect( action, SIGNAL( activated() ), 860 connect( action, SIGNAL( activated() ),
858 mView, SLOT( goNext() ) ); 861 mView, SLOT( goNext() ) );
859 action->addTo( iconToolBar ); 862 action->addTo( iconToolBar );
860 } 863 }
861 icon = loadPixmap( pathString + "2rightarrowB" ); 864 icon = loadPixmap( pathString + "2rightarrowB" );
862 configureToolBarMenu->insertItem(icon, i18n("Next month"), 230); 865 configureToolBarMenu->insertItem(icon, i18n("Next month"), 230);
863 if (p-> mShowIconForwardFast) { 866 if (p-> mShowIconForwardFast) {
864 action = new QAction( i18n("Next month"), icon, i18n("Next month"),0 , this ); 867 action = new QAction( i18n("Next month"), icon, i18n("Next month"),0 , this );
865 connect( action, SIGNAL( activated() ), 868 connect( action, SIGNAL( activated() ),
866 mView, SLOT( goNextMonth() ) ); 869 mView, SLOT( goNextMonth() ) );
867 action->addTo( iconToolBar ); 870 action->addTo( iconToolBar );
868 } 871 }
869 872
870 873
871 configureToolBarMenu->insertItem(i18n("What's This?"), 300); 874 configureToolBarMenu->insertItem(i18n("What's This?"), 300);
872 875
873 if (p-> mShowIconNewEvent) 876 if (p-> mShowIconNewEvent)
874 configureToolBarMenu->setItemChecked( 10, true ); 877 configureToolBarMenu->setItemChecked( 10, true );
875 if (p->mShowIconNewTodo ) 878 if (p->mShowIconNewTodo )
876 configureToolBarMenu->setItemChecked( 20, true ); 879 configureToolBarMenu->setItemChecked( 20, true );
877 if (p-> mShowIconSearch) 880 if (p-> mShowIconSearch)
878 configureToolBarMenu->setItemChecked( 120, true ); 881 configureToolBarMenu->setItemChecked( 120, true );
879 if (p-> mShowIconList) 882 if (p-> mShowIconList)
880 configureToolBarMenu->setItemChecked( 30, true ); 883 configureToolBarMenu->setItemChecked( 30, true );
881 if (p-> mShowIconDay1) 884 if (p-> mShowIconDay1)
882 configureToolBarMenu->setItemChecked( 40, true ); 885 configureToolBarMenu->setItemChecked( 40, true );
883 if (p-> mShowIconDay5) 886 if (p-> mShowIconDay5)
884 configureToolBarMenu->setItemChecked( 50, true ); 887 configureToolBarMenu->setItemChecked( 50, true );
885 if (p-> mShowIconDay7) 888 if (p-> mShowIconDay7)
886 configureToolBarMenu->setItemChecked( 60, true ); 889 configureToolBarMenu->setItemChecked( 60, true );
887 if (p-> mShowIconMonth) 890 if (p-> mShowIconMonth)
888 configureToolBarMenu->setItemChecked( 70, true ); 891 configureToolBarMenu->setItemChecked( 70, true );
889 if (p-> mShowIconTodoview) 892 if (p-> mShowIconTodoview)
890 configureToolBarMenu->setItemChecked( 80, true ); 893 configureToolBarMenu->setItemChecked( 80, true );
891 if (p-> mShowIconBackFast) 894 if (p-> mShowIconBackFast)
892 configureToolBarMenu->setItemChecked( 200, true ); 895 configureToolBarMenu->setItemChecked( 200, true );
893 if (p-> mShowIconBack) 896 if (p-> mShowIconBack)
894 configureToolBarMenu->setItemChecked( 210, true ); 897 configureToolBarMenu->setItemChecked( 210, true );
895 if (p-> mShowIconToday) 898 if (p-> mShowIconToday)
896 configureToolBarMenu->setItemChecked( 130, true ); 899 configureToolBarMenu->setItemChecked( 130, true );
897 if (p-> mShowIconForward) 900 if (p-> mShowIconForward)
898 configureToolBarMenu->setItemChecked( 220, true ); 901 configureToolBarMenu->setItemChecked( 220, true );
899 if (p-> mShowIconForwardFast) 902 if (p-> mShowIconForwardFast)
900 configureToolBarMenu->setItemChecked( 230, true ); 903 configureToolBarMenu->setItemChecked( 230, true );
901 if (p-> mShowIconNextDays) 904 if (p-> mShowIconNextDays)
902 configureToolBarMenu->setItemChecked( 100, true ); 905 configureToolBarMenu->setItemChecked( 100, true );
903 if (p-> mShowIconNext) 906 if (p-> mShowIconNext)
904 configureToolBarMenu->setItemChecked( 110, true ); 907 configureToolBarMenu->setItemChecked( 110, true );
905 if (p-> mShowIconJournal) 908 if (p-> mShowIconJournal)
906 configureToolBarMenu->setItemChecked( 90, true ); 909 configureToolBarMenu->setItemChecked( 90, true );
907 if (p-> mShowIconWhatsThis) 910 if (p-> mShowIconWhatsThis)
908 configureToolBarMenu->setItemChecked( 300, true ); 911 configureToolBarMenu->setItemChecked( 300, true );
909 912
910 QLabel* dummy = new QLabel( iconToolBar ); 913 QLabel* dummy = new QLabel( iconToolBar );
911 dummy->setBackgroundColor( iconToolBar->backgroundColor() ); 914 dummy->setBackgroundColor( iconToolBar->backgroundColor() );
912 if (!p-> mShowIconStretch) 915 if (!p-> mShowIconStretch)
913 iconToolBar->setStretchableWidget ( dummy ) ; 916 iconToolBar->setStretchableWidget ( dummy ) ;
914 else 917 else
915 configureToolBarMenu->setItemChecked( 5, true ); 918 configureToolBarMenu->setItemChecked( 5, true );
916 if (p-> mShowIconWhatsThis) 919 if (p-> mShowIconWhatsThis)
917 QWhatsThis::whatsThisButton ( iconToolBar ); 920 QWhatsThis::whatsThisButton ( iconToolBar );
918 connect( configureToolBarMenu, SIGNAL( activated( int ) ),this, SLOT(configureToolBar( int ) ) ); 921 connect( configureToolBarMenu, SIGNAL( activated( int ) ),this, SLOT(configureToolBar( int ) ) );
919 configureAgenda( p->mHourSize ); 922 configureAgenda( p->mHourSize );
920 connect( configureAgendaMenu, SIGNAL( activated( int ) ),this, SLOT(configureAgenda( int ) ) ); 923 connect( configureAgendaMenu, SIGNAL( activated( int ) ),this, SLOT(configureAgenda( int ) ) );
921} 924}
922void MainWindow::fillSyncMenu() 925void MainWindow::fillSyncMenu()
923{ 926{
924 if ( syncMenu->count() ) 927 if ( syncMenu->count() )
925 syncMenu->clear(); 928 syncMenu->clear();
926 syncMenu->insertItem( i18n("Configure..."), 0 ); 929 syncMenu->insertItem( i18n("Configure..."), 0 );
927 syncMenu->insertSeparator(); 930 syncMenu->insertSeparator();
928 if ( mServerSocket == 0 ) { 931 if ( mServerSocket == 0 ) {
929 syncMenu->insertItem( i18n("Enable Pi-Sync"), 2 ); 932 syncMenu->insertItem( i18n("Enable Pi-Sync"), 2 );
930 } else { 933 } else {
931 syncMenu->insertItem( i18n("Disable Pi-Sync"), 3 ); 934 syncMenu->insertItem( i18n("Disable Pi-Sync"), 3 );
932 } 935 }
933 syncMenu->insertSeparator(); 936 syncMenu->insertSeparator();
934 syncMenu->insertItem( i18n("Multiple sync"), 1 ); 937 syncMenu->insertItem( i18n("Multiple sync"), 1 );
935 syncMenu->insertSeparator(); 938 syncMenu->insertSeparator();
936 KConfig config ( locateLocal( "config","ksyncprofilesrc" ) ); 939 KConfig config ( locateLocal( "config","ksyncprofilesrc" ) );
937 config.setGroup("General"); 940 config.setGroup("General");
938 QStringList prof = config.readListEntry("SyncProfileNames"); 941 QStringList prof = config.readListEntry("SyncProfileNames");
939 KOPrefs::instance()->mLocalMachineName = config.readEntry("LocalMachineName","undefined"); 942 KOPrefs::instance()->mLocalMachineName = config.readEntry("LocalMachineName","undefined");
940 if ( prof.count() < 3 ) { 943 if ( prof.count() < 3 ) {
941 prof.clear(); 944 prof.clear();
942 prof << i18n("Sharp_DTM"); 945 prof << i18n("Sharp_DTM");
943 prof << i18n("Local_file"); 946 prof << i18n("Local_file");
944 prof << i18n("Last_file"); 947 prof << i18n("Last_file");
945 KSyncProfile* temp = new KSyncProfile (); 948 KSyncProfile* temp = new KSyncProfile ();
946 temp->setName( prof[0] ); 949 temp->setName( prof[0] );
947 temp->writeConfig(&config); 950 temp->writeConfig(&config);
948 temp->setName( prof[1] ); 951 temp->setName( prof[1] );
949 temp->writeConfig(&config); 952 temp->writeConfig(&config);
950 temp->setName( prof[2] ); 953 temp->setName( prof[2] );
951 temp->writeConfig(&config); 954 temp->writeConfig(&config);
952 config.setGroup("General"); 955 config.setGroup("General");
953 config.writeEntry("SyncProfileNames",prof); 956 config.writeEntry("SyncProfileNames",prof);
954 config.writeEntry("ExternSyncProfiles","Sharp_DTM"); 957 config.writeEntry("ExternSyncProfiles","Sharp_DTM");
955 config.sync(); 958 config.sync();
956 delete temp; 959 delete temp;
957 } 960 }
958 KOPrefs::instance()->mExternSyncProfiles = config.readListEntry("ExternSyncProfiles"); 961 KOPrefs::instance()->mExternSyncProfiles = config.readListEntry("ExternSyncProfiles");
959 KOPrefs::instance()->mSyncProfileNames = prof; 962 KOPrefs::instance()->mSyncProfileNames = prof;
960 int i; 963 int i;
961 for ( i = 0; i < prof.count(); ++i ) { 964 for ( i = 0; i < prof.count(); ++i ) {
962 965
963 syncMenu->insertItem( prof[i], 1000+i ); 966 syncMenu->insertItem( prof[i], 1000+i );
964 if ( i == 2 ) 967 if ( i == 2 )
965 syncMenu->insertSeparator(); 968 syncMenu->insertSeparator();
966 } 969 }
967 QDir app_dir; 970 QDir app_dir;
968 if ( !app_dir.exists(QDir::homeDirPath()+"/Applications/dtm" ) ) { 971 if ( !app_dir.exists(QDir::homeDirPath()+"/Applications/dtm" ) ) {
969 syncMenu->setItemEnabled( false , 1000 ); 972 syncMenu->setItemEnabled( false , 1000 );
970 } 973 }
971 mView->setupExternSyncProfiles(); 974 mView->setupExternSyncProfiles();
972} 975}
973 976
974int MainWindow::ringSync() 977int MainWindow::ringSync()
975{ 978{
976 int syncedProfiles = 0; 979 int syncedProfiles = 0;
977 int i; 980 int i;
978 QTime timer; 981 QTime timer;
979 KConfig config ( locateLocal( "config","ksyncprofilesrc" ) ); 982 KConfig config ( locateLocal( "config","ksyncprofilesrc" ) );
980 QStringList syncProfileNames = KOPrefs::instance()->mSyncProfileNames; 983 QStringList syncProfileNames = KOPrefs::instance()->mSyncProfileNames;
981 KSyncProfile* temp = new KSyncProfile (); 984 KSyncProfile* temp = new KSyncProfile ();
982 KOPrefs::instance()->mAskForPreferences = false; 985 KOPrefs::instance()->mAskForPreferences = false;
983 for ( i = 0; i < syncProfileNames.count(); ++i ) { 986 for ( i = 0; i < syncProfileNames.count(); ++i ) {
984 mCurrentSyncProfile = i; 987 mCurrentSyncProfile = i;
985 temp->setName(syncProfileNames[mCurrentSyncProfile]); 988 temp->setName(syncProfileNames[mCurrentSyncProfile]);
986 temp->readConfig(&config); 989 temp->readConfig(&config);
987 if ( temp->getIncludeInRingSync() && ( i < 1 || i > 2 )) { 990 if ( temp->getIncludeInRingSync() && ( i < 1 || i > 2 )) {
988 setCaption(i18n("Profile ")+syncProfileNames[mCurrentSyncProfile]+ i18n(" is synced ... ")); 991 setCaption(i18n("Profile ")+syncProfileNames[mCurrentSyncProfile]+ i18n(" is synced ... "));
989 ++syncedProfiles; 992 ++syncedProfiles;
990 // KOPrefs::instance()->mAskForPreferences = temp->getAskForPreferences(); 993 // KOPrefs::instance()->mAskForPreferences = temp->getAskForPreferences();
991 KOPrefs::instance()->mWriteBackFile = temp->getWriteBackFile(); 994 KOPrefs::instance()->mWriteBackFile = temp->getWriteBackFile();
992 KOPrefs::instance()->mWriteBackExistingOnly = temp->getWriteBackExisting(); 995 KOPrefs::instance()->mWriteBackExistingOnly = temp->getWriteBackExisting();
993 KOPrefs::instance()->mWriteBackInFuture = 0; 996 KOPrefs::instance()->mWriteBackInFuture = 0;
994 if ( temp->getWriteBackFuture() ) 997 if ( temp->getWriteBackFuture() )
995 KOPrefs::instance()->mWriteBackInFuture = temp->getWriteBackFutureWeeks( ); 998 KOPrefs::instance()->mWriteBackInFuture = temp->getWriteBackFutureWeeks( );
996 KOPrefs::instance()->mShowSyncSummary = false; 999 KOPrefs::instance()->mShowSyncSummary = false;
997 mView->setSyncDevice(syncProfileNames[i] ); 1000 mView->setSyncDevice(syncProfileNames[i] );
998 mView->setSyncName( KOPrefs::instance()->mLocalMachineName ); 1001 mView->setSyncName( KOPrefs::instance()->mLocalMachineName );
999 if ( i == 0 ) { 1002 if ( i == 0 ) {
1000 syncSharp(); 1003 syncSharp();
1001 } else { 1004 } else {
1002 if ( temp->getIsLocalFileSync() ) { 1005 if ( temp->getIsLocalFileSync() ) {
1003 if ( syncWithFile( temp->getRemoteFileName( ), true ) ) 1006 if ( syncWithFile( temp->getRemoteFileName( ), true ) )
1004 KOPrefs::instance()->mLastSyncedLocalFile = temp->getRemoteFileName(); 1007 KOPrefs::instance()->mLastSyncedLocalFile = temp->getRemoteFileName();
1005 } else { 1008 } else {
1006 if ( temp->getIsPhoneSync() ) { 1009 if ( temp->getIsPhoneSync() ) {
1007 KOPrefs::instance()->mPhoneDevice = temp->getPhoneDevice( ) ; 1010 KOPrefs::instance()->mPhoneDevice = temp->getPhoneDevice( ) ;
1008 KOPrefs::instance()->mPhoneConnection = temp->getPhoneConnection( ); 1011 KOPrefs::instance()->mPhoneConnection = temp->getPhoneConnection( );
1009 KOPrefs::instance()->mPhoneModel = temp->getPhoneModel( ); 1012 KOPrefs::instance()->mPhoneModel = temp->getPhoneModel( );
1010 syncPhone(); 1013 syncPhone();
1011 } else if ( temp->getIsPiSync() ) { 1014 } else if ( temp->getIsPiSync() ) {
1012 mPassWordPiSync = temp->getRemotePw(); 1015 mPassWordPiSync = temp->getRemotePw();
1013 KOPrefs::instance()->mActiveSyncPort = temp->getRemotePort(); 1016 KOPrefs::instance()->mActiveSyncPort = temp->getRemotePort();
1014 KOPrefs::instance()->mActiveSyncIP = temp->getRemoteIP(); 1017 KOPrefs::instance()->mActiveSyncIP = temp->getRemoteIP();
1015 syncPi(); 1018 syncPi();
1016 } else 1019 } else
1017 syncRemote( temp, false ); 1020 syncRemote( temp, false );
1018 1021
1019 } 1022 }
1020 } 1023 }
1021 timer.start(); 1024 timer.start();
1022 setCaption(i18n("Multiple sync in progress ... please wait!") ); 1025 setCaption(i18n("Multiple sync in progress ... please wait!") );
1023 while ( timer.elapsed () < 2000 ) { 1026 while ( timer.elapsed () < 2000 ) {
1024 qApp->processEvents(); 1027 qApp->processEvents();
1025#ifndef _WIN32_ 1028#ifndef _WIN32_
1026 sleep (1); 1029 sleep (1);
1027#endif 1030#endif
1028 } 1031 }
1029 1032
1030 } 1033 }
1031 1034
1032 } 1035 }
1033 delete temp; 1036 delete temp;
1034 return syncedProfiles; 1037 return syncedProfiles;
1035} 1038}
1036 1039
1037void MainWindow::multiSync( bool askforPrefs ) 1040void MainWindow::multiSync( bool askforPrefs )
1038{ 1041{
1039 if (mBlockSaveFlag) 1042 if (mBlockSaveFlag)
1040 return; 1043 return;
1041 mBlockSaveFlag = true; 1044 mBlockSaveFlag = true;
1042 QString question = i18n("Do you really want\nto multiple sync\nwith all checked profiles?\nSyncing takes some\ntime - all profiles\nare synced twice!"); 1045 QString question = i18n("Do you really want\nto multiple sync\nwith all checked profiles?\nSyncing takes some\ntime - all profiles\nare synced twice!");
1043 if ( QMessageBox::information( this, i18n("KO/Pi Sync"), 1046 if ( QMessageBox::information( this, i18n("KO/Pi Sync"),
1044 question, 1047 question,
1045 i18n("Yes"), i18n("No"), 1048 i18n("Yes"), i18n("No"),
1046 0, 0 ) != 0 ) { 1049 0, 0 ) != 0 ) {
1047 mBlockSaveFlag = false; 1050 mBlockSaveFlag = false;
1048 setCaption(i18n("Aborted! Nothing synced!")); 1051 setCaption(i18n("Aborted! Nothing synced!"));
1049 return; 1052 return;
1050 } 1053 }
1051 mView->setSyncDevice(i18n("Multiple profiles") ); 1054 mView->setSyncDevice(i18n("Multiple profiles") );
1052 KOPrefs::instance()->mSyncAlgoPrefs = KOPrefs::instance()->mRingSyncAlgoPrefs; 1055 KOPrefs::instance()->mSyncAlgoPrefs = KOPrefs::instance()->mRingSyncAlgoPrefs;
1053 if ( askforPrefs ) { 1056 if ( askforPrefs ) {
1054 mView->edit_sync_options(); 1057 mView->edit_sync_options();
1055 KOPrefs::instance()->mRingSyncAlgoPrefs = KOPrefs::instance()->mSyncAlgoPrefs; 1058 KOPrefs::instance()->mRingSyncAlgoPrefs = KOPrefs::instance()->mSyncAlgoPrefs;
1056 } 1059 }
1057 setCaption(i18n("Multiple sync started.") ); 1060 setCaption(i18n("Multiple sync started.") );
1058 qApp->processEvents(); 1061 qApp->processEvents();
1059 int num = ringSync() ; 1062 int num = ringSync() ;
1060 if ( num > 1 ) 1063 if ( num > 1 )
1061 ringSync(); 1064 ringSync();
1062 mBlockSaveFlag = false; 1065 mBlockSaveFlag = false;
1063 if ( num ) 1066 if ( num )
1064 save(); 1067 save();
1065 if ( num ) 1068 if ( num )
1066 setCaption(i18n("%1 profiles synced. Multiple sync completed!").arg(num) ); 1069 setCaption(i18n("%1 profiles synced. Multiple sync completed!").arg(num) );
1067 else 1070 else
1068 setCaption(i18n("Nothing synced! No profiles defined for multisync!")); 1071 setCaption(i18n("Nothing synced! No profiles defined for multisync!"));
1069 return; 1072 return;
1070} 1073}
1071void MainWindow::slotSyncMenu( int action ) 1074void MainWindow::slotSyncMenu( int action )
1072{ 1075{
1073 qDebug("syncaction %d ", action); 1076 qDebug("syncaction %d ", action);
1074 if ( action == 0 ) { 1077 if ( action == 0 ) {
1075 1078
1076 // seems to be a Qt2 event handling bug 1079 // seems to be a Qt2 event handling bug
1077 // syncmenu.clear causes a segfault at first time 1080 // syncmenu.clear causes a segfault at first time
1078 // when we call it after the main event loop, it is ok 1081 // when we call it after the main event loop, it is ok
1079 // same behaviour when calling OM/Pi via QCOP for the first time 1082 // same behaviour when calling OM/Pi via QCOP for the first time
1080 QTimer::singleShot ( 1, this, SLOT ( confSync() ) ); 1083 QTimer::singleShot ( 1, this, SLOT ( confSync() ) );
1081 //confSync(); 1084 //confSync();
1082 1085
1083 return; 1086 return;
1084 } 1087 }
1085 if ( action == 1 ) { 1088 if ( action == 1 ) {
1086 multiSync( true ); 1089 multiSync( true );
1087 return; 1090 return;
1088 } 1091 }
1089 if ( action == 2 ) { 1092 if ( action == 2 ) {
1090 enableQuick(); 1093 enableQuick();
1091 QTimer::singleShot ( 1, this, SLOT ( fillSyncMenu() ) ); 1094 QTimer::singleShot ( 1, this, SLOT ( fillSyncMenu() ) );
1092 return; 1095 return;
1093 } 1096 }
1094 if ( action == 3 ) { 1097 if ( action == 3 ) {
1095 delete mServerSocket; 1098 delete mServerSocket;
1096 mServerSocket = 0; 1099 mServerSocket = 0;
1097 QTimer::singleShot ( 1, this, SLOT ( fillSyncMenu() ) ); 1100 QTimer::singleShot ( 1, this, SLOT ( fillSyncMenu() ) );
1098 return; 1101 return;
1099 } 1102 }
1100 1103
1101 if (mBlockSaveFlag) 1104 if (mBlockSaveFlag)
1102 return; 1105 return;
1103 mBlockSaveFlag = true; 1106 mBlockSaveFlag = true;
1104 mCurrentSyncProfile = action - 1000 ; 1107 mCurrentSyncProfile = action - 1000 ;
1105 mView->setSyncDevice(KOPrefs::instance()->mSyncProfileNames[mCurrentSyncProfile] ); 1108 mView->setSyncDevice(KOPrefs::instance()->mSyncProfileNames[mCurrentSyncProfile] );
1106 mView->setSyncName( KOPrefs::instance()->mLocalMachineName ); 1109 mView->setSyncName( KOPrefs::instance()->mLocalMachineName );
1107 KConfig config ( locateLocal( "config","ksyncprofilesrc" ) ); 1110 KConfig config ( locateLocal( "config","ksyncprofilesrc" ) );
1108 KSyncProfile* temp = new KSyncProfile (); 1111 KSyncProfile* temp = new KSyncProfile ();
1109 temp->setName(KOPrefs::instance()->mSyncProfileNames[mCurrentSyncProfile]); 1112 temp->setName(KOPrefs::instance()->mSyncProfileNames[mCurrentSyncProfile]);
1110 temp->readConfig(&config); 1113 temp->readConfig(&config);
1111 KOPrefs::instance()->mAskForPreferences = temp->getAskForPreferences(); 1114 KOPrefs::instance()->mAskForPreferences = temp->getAskForPreferences();
1112 KOPrefs::instance()->mSyncAlgoPrefs = temp->getSyncPrefs(); 1115 KOPrefs::instance()->mSyncAlgoPrefs = temp->getSyncPrefs();
1113 KOPrefs::instance()->mWriteBackFile = temp->getWriteBackFile(); 1116 KOPrefs::instance()->mWriteBackFile = temp->getWriteBackFile();
1114 KOPrefs::instance()->mWriteBackExistingOnly = temp->getWriteBackExisting(); 1117 KOPrefs::instance()->mWriteBackExistingOnly = temp->getWriteBackExisting();
1115 KOPrefs::instance()->mWriteBackInFuture = 0; 1118 KOPrefs::instance()->mWriteBackInFuture = 0;
1116 if ( temp->getWriteBackFuture() ) 1119 if ( temp->getWriteBackFuture() )
1117 KOPrefs::instance()->mWriteBackInFuture = temp->getWriteBackFutureWeeks( ); 1120 KOPrefs::instance()->mWriteBackInFuture = temp->getWriteBackFutureWeeks( );
1118 KOPrefs::instance()->mShowSyncSummary = temp->getShowSummaryAfterSync(); 1121 KOPrefs::instance()->mShowSyncSummary = temp->getShowSummaryAfterSync();
1119 if ( action == 1000 ) { 1122 if ( action == 1000 ) {
1120 syncSharp(); 1123 syncSharp();
1121 1124
1122 } else if ( action == 1001 ) { 1125 } else if ( action == 1001 ) {
1123 syncLocalFile(); 1126 syncLocalFile();
1124 1127
1125 } else if ( action == 1002 ) { 1128 } else if ( action == 1002 ) {
1126 quickSyncLocalFile(); 1129 quickSyncLocalFile();
1127 1130
1128 } else if ( action >= 1003 ) { 1131 } else if ( action >= 1003 ) {
1129 if ( temp->getIsLocalFileSync() ) { 1132 if ( temp->getIsLocalFileSync() ) {
1130 if ( syncWithFile( temp->getRemoteFileName( ), false ) ) 1133 if ( syncWithFile( temp->getRemoteFileName( ), false ) )
1131 KOPrefs::instance()->mLastSyncedLocalFile = temp->getRemoteFileName(); 1134 KOPrefs::instance()->mLastSyncedLocalFile = temp->getRemoteFileName();
1132 } else { 1135 } else {
1133 if ( temp->getIsPhoneSync() ) { 1136 if ( temp->getIsPhoneSync() ) {
1134 KOPrefs::instance()->mPhoneDevice = temp->getPhoneDevice( ) ; 1137 KOPrefs::instance()->mPhoneDevice = temp->getPhoneDevice( ) ;
1135 KOPrefs::instance()->mPhoneConnection = temp->getPhoneConnection( ); 1138 KOPrefs::instance()->mPhoneConnection = temp->getPhoneConnection( );
1136 KOPrefs::instance()->mPhoneModel = temp->getPhoneModel( ); 1139 KOPrefs::instance()->mPhoneModel = temp->getPhoneModel( );
1137 syncPhone(); 1140 syncPhone();
1138 } else if ( temp->getIsPiSync() ) { 1141 } else if ( temp->getIsPiSync() ) {
1139 mPassWordPiSync = temp->getRemotePw(); 1142 mPassWordPiSync = temp->getRemotePw();
1140 KOPrefs::instance()->mActiveSyncPort = temp->getRemotePort(); 1143 KOPrefs::instance()->mActiveSyncPort = temp->getRemotePort();
1141 KOPrefs::instance()->mActiveSyncIP = temp->getRemoteIP(); 1144 KOPrefs::instance()->mActiveSyncIP = temp->getRemoteIP();
1142 syncPi(); 1145 syncPi();
1143 } else 1146 } else
1144 syncRemote( temp ); 1147 syncRemote( temp );
1145 1148
1146 } 1149 }
1147 } 1150 }
1148 delete temp; 1151 delete temp;
1149 mBlockSaveFlag = false; 1152 mBlockSaveFlag = false;
1150} 1153}
1151void MainWindow::exportToPhone( int mode ) 1154void MainWindow::exportToPhone( int mode )
1152{ 1155{
1153 1156
1154 //ex2phone->insertItem(i18n("Complete calendar..."), 1 ); 1157 //ex2phone->insertItem(i18n("Complete calendar..."), 1 );
1155 //ex2phone->insertItem(i18n("Filtered calendar..."), 2 ); 1158 //ex2phone->insertItem(i18n("Filtered calendar..."), 2 );
1156 KOex2phonePrefs ex2phone; 1159 KOex2phonePrefs ex2phone;
1157 ex2phone.mPhoneConnection->setText( KOPrefs::instance()->mEx2PhoneConnection ); 1160 ex2phone.mPhoneConnection->setText( KOPrefs::instance()->mEx2PhoneConnection );
1158 ex2phone.mPhoneDevice->setText( KOPrefs::instance()->mEx2PhoneDevice ); 1161 ex2phone.mPhoneDevice->setText( KOPrefs::instance()->mEx2PhoneDevice );
1159 ex2phone.mPhoneModel->setText( KOPrefs::instance()->mEx2PhoneModel ); 1162 ex2phone.mPhoneModel->setText( KOPrefs::instance()->mEx2PhoneModel );
1163 if ( mode == 1 )
1164 ex2phone.setCaption(i18n("Export complete calendar"));
1165 if ( mode == 2 )
1166 ex2phone.setCaption(i18n("Export filtered calendar"));
1160 1167
1161 if ( !ex2phone.exec() ) { 1168 if ( !ex2phone.exec() ) {
1162 return; 1169 return;
1163 } 1170 }
1164 KOPrefs::instance()->mEx2PhoneConnection = ex2phone.mPhoneConnection->text(); 1171 KOPrefs::instance()->mEx2PhoneConnection = ex2phone.mPhoneConnection->text();
1165 KOPrefs::instance()->mEx2PhoneDevice = ex2phone.mPhoneDevice->text(); 1172 KOPrefs::instance()->mEx2PhoneDevice = ex2phone.mPhoneDevice->text();
1166 KOPrefs::instance()->mEx2PhoneModel = ex2phone.mPhoneModel->text(); 1173 KOPrefs::instance()->mEx2PhoneModel = ex2phone.mPhoneModel->text();
1167 1174
1168 int inFuture = 0; 1175 int inFuture = 0;
1169 if ( ex2phone.mWriteBackFuture->isChecked() ) 1176 if ( ex2phone.mWriteBackFuture->isChecked() )
1170 inFuture = ex2phone.mWriteBackFutureWeeks->value(); 1177 inFuture = ex2phone.mWriteBackFutureWeeks->value();
1171 QPtrList<Incidence> delSel; 1178 QPtrList<Incidence> delSel;
1172 if ( mode == 1 ) 1179 if ( mode == 1 )
1173 delSel = mCalendar->rawIncidences(); 1180 delSel = mCalendar->rawIncidences();
1174 if ( mode == 2 ) 1181 if ( mode == 2 )
1175 delSel = mCalendar->incidences(); 1182 delSel = mCalendar->incidences();
1176 CalendarLocal* cal = new CalendarLocal(); 1183 CalendarLocal* cal = new CalendarLocal();
1177 cal->setLocalTime(); 1184 cal->setLocalTime();
1178 Incidence *incidence = delSel.first(); 1185 Incidence *incidence = delSel.first();
1179 QDateTime cur = QDateTime::currentDateTime().addDays( -7 ); 1186 QDateTime cur = QDateTime::currentDateTime().addDays( -7 );
1180 QDateTime end = cur.addDays( ( inFuture +1 ) *7 ); 1187 QDateTime end = cur.addDays( ( inFuture +1 ) *7 );
1181 while ( incidence ) { 1188 while ( incidence ) {
1182 if ( incidence->type() != "journal" ) { 1189 if ( incidence->type() != "journal" ) {
1183 bool add = true; 1190 bool add = true;
1184 if ( inFuture ) { 1191 if ( inFuture ) {
1185 QDateTime dt; 1192 QDateTime dt;
1186 if ( incidence->type() == "Todo" ) { 1193 if ( incidence->type() == "Todo" ) {
1187 Todo * t = (Todo*)incidence; 1194 Todo * t = (Todo*)incidence;
1188 if ( t->hasDueDate() ) 1195 if ( t->hasDueDate() )
1189 dt = t->dtDue(); 1196 dt = t->dtDue();
1190 else 1197 else
1191 dt = cur.addSecs( 62 ); 1198 dt = cur.addSecs( 62 );
1192 } 1199 }
1193 else { 1200 else {
1194 bool ok; 1201 bool ok;
1195 dt = incidence->getNextOccurence( cur, &ok ); 1202 dt = incidence->getNextOccurence( cur, &ok );
1196 if ( !ok ) 1203 if ( !ok )
1197 dt = cur.addSecs( -62 ); 1204 dt = cur.addSecs( -62 );
1198 } 1205 }
1199 if ( dt < cur || dt > end ) { 1206 if ( dt < cur || dt > end ) {
1200 add = false; 1207 add = false;
1201 } 1208 }
1202 } 1209 }
1203 if ( add ) { 1210 if ( add ) {
1204 Incidence *in = incidence->clone(); 1211 Incidence *in = incidence->clone();
1205 cal->addIncidence( in ); 1212 cal->addIncidence( in );
1206 } 1213 }
1207 } 1214 }
1208 incidence = delSel.next(); 1215 incidence = delSel.next();
1209 } 1216 }
1210 PhoneFormat::writeConfig( KOPrefs::instance()->mEx2PhoneDevice, 1217 PhoneFormat::writeConfig( KOPrefs::instance()->mEx2PhoneDevice,
1211 KOPrefs::instance()->mEx2PhoneConnection, 1218 KOPrefs::instance()->mEx2PhoneConnection,
1212 KOPrefs::instance()->mEx2PhoneModel ); 1219 KOPrefs::instance()->mEx2PhoneModel );
1213 1220
1214 setCaption( i18n("Writing to phone...")); 1221 setCaption( i18n("Writing to phone..."));
1215 if ( PhoneFormat::writeToPhone( cal ) ) 1222 if ( PhoneFormat::writeToPhone( cal ) )
1216 setCaption( i18n("Export to phone successful!")); 1223 setCaption( i18n("Export to phone successful!"));
1217 else 1224 else
1218 setCaption( i18n("Error exporting to phone!")); 1225 setCaption( i18n("Error exporting to phone!"));
1219 delete cal; 1226 delete cal;
1220} 1227}
1221 1228
1222 1229
1223void MainWindow::setDefaultPreferences() 1230void MainWindow::setDefaultPreferences()
1224{ 1231{
1225 KOPrefs *p = KOPrefs::instance(); 1232 KOPrefs *p = KOPrefs::instance();
1226 1233
1227 p->mCompactDialogs = true; 1234 p->mCompactDialogs = true;
1228 p->mConfirm = true; 1235 p->mConfirm = true;
1229 // p->mEnableQuickTodo = false; 1236 // p->mEnableQuickTodo = false;
1230 1237
1231} 1238}
1232 1239
1233QString MainWindow::resourcePath() 1240QString MainWindow::resourcePath()
1234{ 1241{
1235 return KGlobal::iconLoader()->iconPath(); 1242 return KGlobal::iconLoader()->iconPath();
1236} 1243}
1237 1244
1238void MainWindow::displayText( QString text ,QString cap ) 1245void MainWindow::displayText( QString text ,QString cap )
1239{ 1246{
1240 QDialog dia( this, "name", true ); ; 1247 QDialog dia( this, "name", true ); ;
1241 dia.setCaption( cap ); 1248 dia.setCaption( cap );
1242 QVBoxLayout* lay = new QVBoxLayout( &dia ); 1249 QVBoxLayout* lay = new QVBoxLayout( &dia );
1243 lay->setSpacing( 3 ); 1250 lay->setSpacing( 3 );
1244 lay->setMargin( 3 ); 1251 lay->setMargin( 3 );
1245 QTextBrowser tb ( &dia ); 1252 QTextBrowser tb ( &dia );
1246 lay->addWidget( &tb ); 1253 lay->addWidget( &tb );
1247 tb.setText( text ); 1254 tb.setText( text );
1248#ifdef DESKTOP_VERSION 1255#ifdef DESKTOP_VERSION
1249 dia.resize( 640, 480); 1256 dia.resize( 640, 480);
1250#else 1257#else
1251 dia.showMaximized(); 1258 dia.showMaximized();
1252#endif 1259#endif
1253 dia.exec(); 1260 dia.exec();
1254} 1261}
1255void MainWindow::displayFile( QString fn, QString cap ) 1262void MainWindow::displayFile( QString fn, QString cap )
1256{ 1263{
1257 QString fileName = resourcePath() + fn; 1264 QString fileName = resourcePath() + fn;
1258 QString text; 1265 QString text;
1259 QFile file( fileName ); 1266 QFile file( fileName );
1260 if (!file.open( IO_ReadOnly ) ) { 1267 if (!file.open( IO_ReadOnly ) ) {
1261 return ; 1268 return ;
1262 1269
1263 } 1270 }
1264 QTextStream ts( &file ); 1271 QTextStream ts( &file );
1265 text = ts.read(); 1272 text = ts.read();
1266 file.close(); 1273 file.close();
1267 displayText( text, cap); 1274 displayText( text, cap);
1268} 1275}
1269void MainWindow::features() 1276void MainWindow::features()
1270{ 1277{
1271 1278
1272 displayFile( "featuresKOPI.txt",i18n("KO/Pi Features and hints") ); 1279 displayFile( "featuresKOPI.txt",i18n("KO/Pi Features and hints") );
1273} 1280}
1274 1281
1275void MainWindow::usertrans() 1282void MainWindow::usertrans()
1276{ 1283{
1277 1284
1278 displayFile( "usertranslationHOWTO.txt",i18n("KO/Pi User translation HowTo") ); 1285 displayFile( "usertranslationHOWTO.txt",i18n("KO/Pi User translation HowTo") );
1279} 1286}
1280 1287
1281void MainWindow::synchowto() 1288void MainWindow::synchowto()
1282{ 1289{
1283#if 0 1290#if 0
1284 QPtrList<Incidence> er = mCalendar->rawIncidences(); 1291 QPtrList<Incidence> er = mCalendar->rawIncidences();
1285 Incidence* inR = er.first(); 1292 Incidence* inR = er.first();
1286 VCalFormat vf; 1293 VCalFormat vf;
1287 QString strout; 1294 QString strout;
1288 while ( inR ) { 1295 while ( inR ) {
1289 if ( inR->type() == "Todo" ) 1296 if ( inR->type() == "Todo" )
1290 strout = vf.todoToString( (Todo *) inR ); 1297 strout = vf.todoToString( (Todo *) inR );
1291 if ( inR->type() == "Event" ) 1298 if ( inR->type() == "Event" )
1292 strout = vf.eventToString( (Event *) inR ); 1299 strout = vf.eventToString( (Event *) inR );
1293 qDebug("incidence: \n%s\n ente\n\n",strout.latin1() ); 1300 qDebug("incidence: \n%s\n ente\n\n",strout.latin1() );
1294 inR = er.next(); 1301 inR = er.next();
1295 } 1302 }
1296#endif 1303#endif
1297 displayFile( "howtoSYNC.txt",i18n("KO/Pi Synchronization HowTo") ); 1304 displayFile( "howtoSYNC.txt",i18n("KO/Pi Synchronization HowTo") );
1298} 1305}
1299void MainWindow::faq() 1306void MainWindow::faq()
1300{ 1307{
1301 displayFile( "kopiFAQ.txt",i18n("KO/Pi FAQ") ); 1308 displayFile( "kopiFAQ.txt",i18n("KO/Pi FAQ") );
1302 1309
1303} 1310}
1304void MainWindow::whatsNew() 1311void MainWindow::whatsNew()
1305{ 1312{
1306 displayFile( "kopiWhatsNew.txt",i18n("KO/Pi Version Info") ); 1313 displayFile( "kopiWhatsNew.txt",i18n("KO/Pi Version Info") );
1307 1314
1308} 1315}
1309void MainWindow::licence() 1316void MainWindow::licence()
1310{ 1317{
1311 KApplication::showLicence(); 1318 KApplication::showLicence();
1312 1319
1313} 1320}
1314void MainWindow::about() 1321void MainWindow::about()
1315{ 1322{
1316 QString version; 1323 QString version;
1317#include <../version> 1324#include <../version>
1318 QMessageBox::about( this, i18n("About KOrganizer/Pi"), 1325 QMessageBox::about( this, i18n("About KOrganizer/Pi"),
1319 i18n("KOrganizer/Platform-independent\n") + 1326 i18n("KOrganizer/Platform-independent\n") +
1320 "(KO/Pi) " + version + " - " + 1327 "(KO/Pi) " + version + " - " +
1321 1328
1322#ifdef DESKTOP_VERSION 1329#ifdef DESKTOP_VERSION
1323 i18n("Desktop Edition\n") + 1330 i18n("Desktop Edition\n") +
1324#else 1331#else
1325 i18n("PDA-Edition\nfor: Zaurus 5x00 / 7x0 / 8x0\n") + 1332 i18n("PDA-Edition\nfor: Zaurus 5x00 / 7x0 / 8x0\n") +
1326#endif 1333#endif
1327 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") ); 1334 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") );
1328} 1335}
1329void MainWindow::keyBindings() 1336void MainWindow::keyBindings()
1330{ 1337{
1331 QString cap = i18n("Key bindings KOrganizer/Pi"); 1338 QString cap = i18n("Key bindings KOrganizer/Pi");
1332 QString text = i18n("<p><h2>KO/Pi key shortcuts:</h2></p>\n") + 1339 QString text = i18n("<p><h2>KO/Pi key shortcuts:</h2></p>\n") +
1333 i18n("<p><b>H</b>: This help dialog | <b>S</b>: Search dialog</p>\n")+ 1340 i18n("<p><b>H</b>: This help dialog | <b>S</b>: Search dialog</p>\n")+
1334 i18n("<p><b>I</b>: Show info for selected event/todo</p>\n") + 1341 i18n("<p><b>I</b>: Show info for selected event/todo</p>\n") +
1335 i18n("<p><b>Space</b>: Toggle fullscreen | <b>P</b>: Date picker</p>\n")+ 1342 i18n("<p><b>Space</b>: Toggle fullscreen | <b>P</b>: Date picker</p>\n")+
1336 i18n("<p><b>F</b>: Toggle filterview |<b>F+ctrl</b>: Edit filter </p>\n")+ 1343 i18n("<p><b>F</b>: Toggle filterview |<b>F+ctrl</b>: Edit filter </p>\n")+
1337 i18n("<p><b>O</b>: Filter On/Off | <b>J</b>: Journal view</p>\n")+ 1344 i18n("<p><b>O</b>: Filter On/Off | <b>J</b>: Journal view</p>\n")+
1338 i18n("<p><b>1-0</b> (+<b>ctrl</b>): Select filter 1-10 (11-20)</p>\n")+ 1345 i18n("<p><b>1-0</b> (+<b>ctrl</b>): Select filter 1-10 (11-20)</p>\n")+
1339 i18n("<p><b>N</b>: Next days view| <b>W</b>: What's next view\n ")+ 1346 i18n("<p><b>N</b>: Next days view| <b>W</b>: What's next view\n ")+
1340 i18n("<p><b>V</b>: Todo view | <b>L</b>: Event list view</p>\n")+ 1347 i18n("<p><b>V</b>: Todo view | <b>L</b>: Event list view</p>\n")+
1341 i18n("<p><b>Z,Y</b>: Work week view | <b>U</b>: Week view</p>\n")+ 1348 i18n("<p><b>Z,Y</b>: Work week view | <b>U</b>: Week view</p>\n")+
1342 i18n("<p><b>D</b>: One day view | <b>M</b>: Month view</p>\n")+ 1349 i18n("<p><b>D</b>: One day view | <b>M</b>: Month view</p>\n")+
1343 i18n("<p><b>E</b>: Edit selected item |<b> E+ctrl</b>: New Event</p>\n")+ 1350 i18n("<p><b>E</b>: Edit selected item |<b> E+ctrl</b>: New Event</p>\n")+
1344 i18n("<p><b>T</b>: Goto today | <b>T+ctrl</b>: New Todo</p>\n")+ 1351 i18n("<p><b>T</b>: Goto today | <b>T+ctrl</b>: New Todo</p>\n")+
1345 i18n("<p><b>S+ctrl</b>: Add sub-todo | <b>X</b>: Toggle datenavigator</p>\n")+ 1352 i18n("<p><b>S+ctrl</b>: Add sub-todo | <b>X</b>: Toggle datenavigator</p>\n")+
1346 i18n("<p><b>+,-</b> : Zoom in/out agenda | <b>A</b>: Toggle allday agenda height</p>\n")+ 1353 i18n("<p><b>+,-</b> : Zoom in/out agenda | <b>A</b>: Toggle allday agenda height</p>\n")+
1347 i18n("<p><b>C</b>: Show current time in agenda view</p>\n")+ 1354 i18n("<p><b>C</b>: Show current time in agenda view</p>\n")+
1348 i18n("<p><b>B</b>: Edit description (details) of selected item</p>\n")+ 1355 i18n("<p><b>B</b>: Edit description (details) of selected item</p>\n")+
1349 i18n("<p><b>right</b>: Next week | <b>right+ctrl</b>: Next month</p>\n")+ 1356 i18n("<p><b>right</b>: Next week | <b>right+ctrl</b>: Next month</p>\n")+
1350 i18n("<p><b>left</b>: Prev. week | <b>left+ctrl</b>: Prev. month</p>\n")+ 1357 i18n("<p><b>left</b>: Prev. week | <b>left+ctrl</b>: Prev. month</p>\n")+
1351 i18n("<p><b>del,backspace</b>: Delete selected item</p>\n")+ 1358 i18n("<p><b>del,backspace</b>: Delete selected item</p>\n")+
1352 i18n("<p><h3>In agenda view:</h3></p>\n") + 1359 i18n("<p><h3>In agenda view:</h3></p>\n") +
1353 i18n("<p><b>up/down</b>: Scroll agenda view</p>\n")+ 1360 i18n("<p><b>up/down</b>: Scroll agenda view</p>\n")+
1354 i18n("<p><b>ctrl+up/down</b>: Scroll small todo view</p>\n")+ 1361 i18n("<p><b>ctrl+up/down</b>: Scroll small todo view</p>\n")+
1355 i18n("<p><h3>In todo view:</h3></p>\n") + 1362 i18n("<p><h3>In todo view:</h3></p>\n") +
1356 i18n("<p><b>Q</b>: Toggle quick todo line edit.</p>\n")+ 1363 i18n("<p><b>Q</b>: Toggle quick todo line edit.</p>\n")+
1357 i18n("<p><b>I</b>: Show info of current item+one step down.</p>\n")+ 1364 i18n("<p><b>I</b>: Show info of current item+one step down.</p>\n")+
1358 i18n("<p><b>return</b>: Mark item as completed+one step down.</p>\n")+ 1365 i18n("<p><b>return</b>: Mark item as completed+one step down.</p>\n")+
1359 i18n("<p><b>return+shift</b>: Mark item as not completed+one step down</p>\n")+ 1366 i18n("<p><b>return+shift</b>: Mark item as not completed+one step down</p>\n")+
1360 i18n("<p><h3>In list view:</h3></p>\n") + 1367 i18n("<p><h3>In list view:</h3></p>\n") +
1361 i18n("<p><b>I</b>: Show info of current item+one step down.</p>\n")+ 1368 i18n("<p><b>I</b>: Show info of current item+one step down.</p>\n")+
1362 i18n("<p><b>return</b>: Select item+one step down</p>\n")+ 1369 i18n("<p><b>return</b>: Select item+one step down</p>\n")+
1363 i18n("<p><b>return+shift</b>: Deselect item+one step down</p>\n")+ 1370 i18n("<p><b>return+shift</b>: Deselect item+one step down</p>\n")+
1364 i18n("<p><b>up/down</b>: Next/prev item</p>\n")+ 1371 i18n("<p><b>up/down</b>: Next/prev item</p>\n")+
1365 i18n("<p><b>ctrl+up/down</b>: Goto up/down by 20% of items</p>\n")+ 1372 i18n("<p><b>ctrl+up/down</b>: Goto up/down by 20% of items</p>\n")+
1366 i18n("<p><b>shift+up/down</b>: Goto first/last item</p>\n")+ 1373 i18n("<p><b>shift+up/down</b>: Goto first/last item</p>\n")+
1367 i18n("<p><h3>In event/todo viewer:</h3></p>\n") + 1374 i18n("<p><h3>In event/todo viewer:</h3></p>\n") +
1368 i18n("<p><b>I,C</b>: Close dialog.</p>\n")+ 1375 i18n("<p><b>I,C</b>: Close dialog.</p>\n")+
1369 i18n("<p><b>A</b>: Show agenda view.</p>\n")+ 1376 i18n("<p><b>A</b>: Show agenda view.</p>\n")+
1370 i18n("<p><b>E</b>: Edit item</p>\n") + 1377 i18n("<p><b>E</b>: Edit item</p>\n") +
1371 i18n("<p><h2>KO/Pi icon colors:</h2></p>\n") + 1378 i18n("<p><h2>KO/Pi icon colors:</h2></p>\n") +
1372 i18n("<p><b>(for square icons in agenda and month view)</b></p>\n") + 1379 i18n("<p><b>(for square icons in agenda and month view)</b></p>\n") +
1373 i18n("<p><b>Cross</b>: Item cancelled.([c] in Whats'Next view)</p>\n")+ 1380 i18n("<p><b>Cross</b>: Item cancelled.([c] in Whats'Next view)</p>\n")+
1374 i18n("<p><b>Red</b>: Alarm set.([a] in Whats'Next view)</p>\n")+ 1381 i18n("<p><b>Red</b>: Alarm set.([a] in Whats'Next view)</p>\n")+
1375 i18n("<p><b>Blue</b>: Recurrent event.([r] in Whats'Next view)</p>\n")+ 1382 i18n("<p><b>Blue</b>: Recurrent event.([r] in Whats'Next view)</p>\n")+
1376 i18n("<p><b>Dark green</b>: Information(description) available.([i] in WN view)</p>\n")+ 1383 i18n("<p><b>Dark green</b>: Information(description) available.([i] in WN view)</p>\n")+
1377 i18n("<p><b>Black</b>: Event/todo with attendees. You are the organizer!</p>\n")+ 1384 i18n("<p><b>Black</b>: Event/todo with attendees. You are the organizer!</p>\n")+
1378 i18n("<p><b>Dark yellow</b>: Event/todo with attendees.</p>\n") + 1385 i18n("<p><b>Dark yellow</b>: Event/todo with attendees.</p>\n") +
1379 i18n("<p><b>White</b>: Item readonly</p>\n"); 1386 i18n("<p><b>White</b>: Item readonly</p>\n");
1380 displayText( text, cap); 1387 displayText( text, cap);
1381 1388
1382} 1389}
1383void MainWindow::aboutAutoSaving() 1390void MainWindow::aboutAutoSaving()
1384{ 1391{
1385 QMessageBox* msg; 1392 QMessageBox* msg;
1386 msg = new QMessageBox( i18n("Auto Saving in KOrganizer/Pi"), 1393 msg = new QMessageBox( i18n("Auto Saving in KOrganizer/Pi"),
1387 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, 1394 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,
1388 QMessageBox::Ok, 1395 QMessageBox::Ok,
1389 QMessageBox::NoButton, 1396 QMessageBox::NoButton,
1390 QMessageBox::NoButton); 1397 QMessageBox::NoButton);
1391 msg->exec(); 1398 msg->exec();
1392 delete msg; 1399 delete msg;
1393 1400
1394 1401
1395} 1402}
1396void MainWindow::aboutKnownBugs() 1403void MainWindow::aboutKnownBugs()
1397{ 1404{
1398 QMessageBox* msg; 1405 QMessageBox* msg;
1399 msg = new QMessageBox( i18n("Known Problems in KOrganizer/Pi"), 1406 msg = new QMessageBox( i18n("Known Problems in KOrganizer/Pi"),
1400 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")+ 1407 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")+
1401 i18n("2) Audio alarm daemon\nfor Zaurus is available!\nas an additional small application\n")+ 1408 i18n("2) Audio alarm daemon\nfor Zaurus is available!\nas an additional small application\n")+
1402 i18n("\nPlease report unexpected behaviour to\nlutz@pi-sync.net\n") + 1409 i18n("\nPlease report unexpected behaviour to\nlutz@pi-sync.net\n") +
1403 i18n("\nor report them in the bugtracker on\n") + 1410 i18n("\nor report them in the bugtracker on\n") +
1404 i18n("\nhttp://sourceforge.net/projects/kdepimpi\n"), 1411 i18n("\nhttp://sourceforge.net/projects/kdepimpi\n"),
1405 QMessageBox::NoIcon, 1412 QMessageBox::NoIcon,
1406 QMessageBox::Ok, 1413 QMessageBox::Ok,
1407 QMessageBox::NoButton, 1414 QMessageBox::NoButton,
1408 QMessageBox::NoButton); 1415 QMessageBox::NoButton);
1409 msg->exec(); 1416 msg->exec();
1410 delete msg; 1417 delete msg;
1411 1418
1412} 1419}
1413 1420
1414QString MainWindow::defaultFileName() 1421QString MainWindow::defaultFileName()
1415{ 1422{
1416 return locateLocal( "data", "korganizer/mycalendar.ics" ); 1423 return locateLocal( "data", "korganizer/mycalendar.ics" );
1417} 1424}
1418QString MainWindow::syncFileName() 1425QString MainWindow::syncFileName()
1419{ 1426{
1420#ifdef _WIN32_ 1427#ifdef _WIN32_
1421 return locateLocal( "tmp", "synccalendar.ics" ); 1428 return locateLocal( "tmp", "synccalendar.ics" );
1422#else 1429#else
1423 return QString( "/tmp/kopitempfile.ics" ); 1430 return QString( "/tmp/kopitempfile.ics" );
1424#endif 1431#endif
1425} 1432}
1426 1433
1427void MainWindow::processIncidenceSelection( Incidence *incidence ) 1434void MainWindow::processIncidenceSelection( Incidence *incidence )
1428{ 1435{
1429 if ( !incidence ) { 1436 if ( !incidence ) {
1430 enableIncidenceActions( false ); 1437 enableIncidenceActions( false );
1431 1438
1432 mNewSubTodoAction->setEnabled( false ); 1439 mNewSubTodoAction->setEnabled( false );
1433 setCaptionToDates(); 1440 setCaptionToDates();
1434 return; 1441 return;
1435 1442
1436 } 1443 }
1437 1444
1438 //KGlobal::locale()->formatDateTime(nextA, true); 1445 //KGlobal::locale()->formatDateTime(nextA, true);
1439 QString startString = ""; 1446 QString startString = "";
1440 if ( incidence->type() != "Todo" ) { 1447 if ( incidence->type() != "Todo" ) {
1441 if ( incidence->dtStart().date() < incidence->dtEnd().date() ) { 1448 if ( incidence->dtStart().date() < incidence->dtEnd().date() ) {
1442 if ( incidence->doesFloat() ) { 1449 if ( incidence->doesFloat() ) {
1443 startString += ": "+incidence->dtStartDateStr( true ); 1450 startString += ": "+incidence->dtStartDateStr( true );
1444 startString += " --- "+((Event*)incidence)->dtEndDateStr( true ); 1451 startString += " --- "+((Event*)incidence)->dtEndDateStr( true );
1445 1452
1446 } else { 1453 } else {
1447 startString = ": "+incidence->dtStartStr(true); 1454 startString = ": "+incidence->dtStartStr(true);
1448 startString += " --- "+((Event*)incidence)->dtEndStr(true); 1455 startString += " --- "+((Event*)incidence)->dtEndStr(true);
1449 1456
1450 } 1457 }
1451 1458
1452 } else { 1459 } else {
1453 if ( incidence->dtStart().time() != incidence->dtEnd().time() ) 1460 if ( incidence->dtStart().time() != incidence->dtEnd().time() )
1454 startString = ": "+KGlobal::locale()->formatTime(incidence->dtStart().time())+ 1461 startString = ": "+KGlobal::locale()->formatTime(incidence->dtStart().time())+
1455 "-"+KGlobal::locale()->formatTime(incidence->dtEnd().time()); 1462 "-"+KGlobal::locale()->formatTime(incidence->dtEnd().time());
1456 startString +=" "+KGlobal::locale()->formatDate( incidence->dtStart().date(), true); 1463 startString +=" "+KGlobal::locale()->formatDate( incidence->dtStart().date(), true);
1457 } 1464 }
1458 1465
1459 } 1466 }
1460 else 1467 else
1461 startString = i18n(": (Prio ") +QString::number( (( KCal::Todo*)incidence)->priority() ) +") "+QString::number( (( KCal::Todo*)incidence)->percentComplete() ) +i18n("\% completed"); 1468 startString = i18n(": (Prio ") +QString::number( (( KCal::Todo*)incidence)->priority() ) +") "+QString::number( (( KCal::Todo*)incidence)->percentComplete() ) +i18n("\% completed");
1462 if ( !incidence->location().isEmpty() ) 1469 if ( !incidence->location().isEmpty() )
1463 startString += " (" +incidence->location()+")"; 1470 startString += " (" +incidence->location()+")";
1464 setCaption( incidence->summary()+startString); 1471 setCaption( incidence->summary()+startString);
1465 1472
1466 enableIncidenceActions( true ); 1473 enableIncidenceActions( true );
1467 1474
1468 if ( incidence->type() == "Event" ) { 1475 if ( incidence->type() == "Event" ) {
1469 mShowAction->setText( i18n("Show Event...") ); 1476 mShowAction->setText( i18n("Show Event...") );
1470 mEditAction->setText( i18n("Edit Event...") ); 1477 mEditAction->setText( i18n("Edit Event...") );
1471 mDeleteAction->setText( i18n("Delete Event...") ); 1478 mDeleteAction->setText( i18n("Delete Event...") );
1472 1479
1473 mNewSubTodoAction->setEnabled( false ); 1480 mNewSubTodoAction->setEnabled( false );
1474 } else if ( incidence->type() == "Todo" ) { 1481 } else if ( incidence->type() == "Todo" ) {
1475 mShowAction->setText( i18n("Show Todo...") ); 1482 mShowAction->setText( i18n("Show Todo...") );
1476 mEditAction->setText( i18n("Edit Todo...") ); 1483 mEditAction->setText( i18n("Edit Todo...") );
1477 mDeleteAction->setText( i18n("Delete Todo...") ); 1484 mDeleteAction->setText( i18n("Delete Todo...") );
1478 1485
1479 mNewSubTodoAction->setEnabled( true ); 1486 mNewSubTodoAction->setEnabled( true );
1480 } else { 1487 } else {
1481 mShowAction->setText( i18n("Show...") ); 1488 mShowAction->setText( i18n("Show...") );
1482 mShowAction->setText( i18n("Edit...") ); 1489 mShowAction->setText( i18n("Edit...") );
1483 mShowAction->setText( i18n("Delete...") ); 1490 mShowAction->setText( i18n("Delete...") );
1484 1491
1485 mNewSubTodoAction->setEnabled( false ); 1492 mNewSubTodoAction->setEnabled( false );
1486 } 1493 }
1487} 1494}
1488 1495
1489void MainWindow::enableIncidenceActions( bool enabled ) 1496void MainWindow::enableIncidenceActions( bool enabled )
1490{ 1497{
1491 mShowAction->setEnabled( enabled ); 1498 mShowAction->setEnabled( enabled );
1492 mEditAction->setEnabled( enabled ); 1499 mEditAction->setEnabled( enabled );
1493 mDeleteAction->setEnabled( enabled ); 1500 mDeleteAction->setEnabled( enabled );
1494} 1501}
1495 1502
1496void MainWindow::importOL() 1503void MainWindow::importOL()
1497{ 1504{
1498#ifdef _WIN32_ 1505#ifdef _WIN32_
1499 KOImportOLdialog *id = new KOImportOLdialog("Import from OL - select folder!" , mView->calendar(),this ); 1506 KOImportOLdialog *id = new KOImportOLdialog("Import from OL - select folder!" , mView->calendar(),this );
1500 id->exec(); 1507 id->exec();
1501 delete id; 1508 delete id;
1502 mView->updateView(); 1509 mView->updateView();
1503#endif 1510#endif
1504} 1511}
1505void MainWindow::importBday() 1512void MainWindow::importBday()
1506{ 1513{
1507 int result = QMessageBox::warning( this, i18n("KO/Pi: Warning!"), 1514 int result = QMessageBox::warning( this, i18n("KO/Pi: Warning!"),
1508 i18n("When importing birthdays twice\nduplicated events will be ignored,\nif the event has not been\nchanged in KO/Pi!\n"), 1515 i18n("When importing birthdays twice\nduplicated events will be ignored,\nif the event has not been\nchanged in KO/Pi!\n"),
1509 i18n("Import!"), i18n("Cancel"), 0, 1516 i18n("Import!"), i18n("Cancel"), 0,
1510 0, 1 ); 1517 0, 1 );
1511 if ( result == 0 ) { 1518 if ( result == 0 ) {
1512 mView->importBday(); 1519 mView->importBday();
1513 1520
1514 } 1521 }
1515 1522
1516 1523
1517} 1524}
1518void MainWindow::importQtopia() 1525void MainWindow::importQtopia()
1519{ 1526{
1520#ifndef DESKTOP_VERSION 1527#ifndef DESKTOP_VERSION
1521 int result = QMessageBox::warning( this, i18n("KO/Pi: Warning!"), 1528 int result = QMessageBox::warning( this, i18n("KO/Pi: Warning!"),
1522 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"), 1529 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"),
1523 i18n("Import!"), i18n("Cancel"), 0, 1530 i18n("Import!"), i18n("Cancel"), 0,
1524 0, 1 ); 1531 0, 1 );
1525 if ( result == 0 ) { 1532 if ( result == 0 ) {
1526 QString datebook = Global::applicationFileName( "datebook", "datebook.xml"); 1533 QString datebook = Global::applicationFileName( "datebook", "datebook.xml");
1527 QString todolist = Global::applicationFileName( "todolist", "todolist.xml"); 1534 QString todolist = Global::applicationFileName( "todolist", "todolist.xml");
1528 QString categories = QString( getenv( "HOME" ) ) + "/Settings/Categories.xml"; 1535 QString categories = QString( getenv( "HOME" ) ) + "/Settings/Categories.xml";
1529 mView->importQtopia( categories, datebook, todolist ); 1536 mView->importQtopia( categories, datebook, todolist );
1530 } 1537 }
1531#else 1538#else
1532 int result = QMessageBox::warning( this, i18n("KO/Pi: Warning!"), 1539 int result = QMessageBox::warning( this, i18n("KO/Pi: Warning!"),
1533 i18n("Not supported \non desktop!\n"), 1540 i18n("Not supported \non desktop!\n"),
1534 i18n("Ok"), i18n("Cancel"), 0, 1541 i18n("Ok"), i18n("Cancel"), 0,
1535 0, 1 ); 1542 0, 1 );
1536 1543
1537#endif 1544#endif
1538} 1545}
1539 1546
1540void MainWindow::saveOnClose() 1547void MainWindow::saveOnClose()
1541{ 1548{
1542 KOPrefs *p = KOPrefs::instance(); 1549 KOPrefs *p = KOPrefs::instance();
1543 p->mToolBarHor = ( iconToolBar->orientation () == Qt:: Horizontal ); 1550 p->mToolBarHor = ( iconToolBar->orientation () == Qt:: Horizontal );