summaryrefslogtreecommitdiffabout
path: root/korganizer
Unidiff
Diffstat (limited to 'korganizer') (more/less context) (ignore whitespace changes)
-rw-r--r--korganizer/koimportoldialog.cpp3
-rw-r--r--korganizer/mainwindow.cpp8
2 files changed, 9 insertions, 2 deletions
diff --git a/korganizer/koimportoldialog.cpp b/korganizer/koimportoldialog.cpp
index 0a3c2d5..c0bde0d 100644
--- a/korganizer/koimportoldialog.cpp
+++ b/korganizer/koimportoldialog.cpp
@@ -1,485 +1,486 @@
1/* 1/*
2 This file is part of KOrganizer. 2 This file is part of KOrganizer.
3 Copyright (c) 2001 Cornelius Schumacher <schumacher@kde.org> 3 Copyright (c) 2001 Cornelius Schumacher <schumacher@kde.org>
4 4
5 This program is free software; you can redistribute it and/or modify 5 This program is free software; you can redistribute it and/or modify
6 it under the terms of the GNU General Public License as published by 6 it under the terms of the GNU General Public License as published by
7 the Free Software Foundation; either version 2 of the License, or 7 the Free Software Foundation; either version 2 of the License, or
8 (at your option) any later version. 8 (at your option) any later version.
9 9
10 This program is distributed in the hope that it will be useful, 10 This program is distributed in the hope that it will be useful,
11 but WITHOUT ANY WARRANTY; without even the implied warranty of 11 but WITHOUT ANY WARRANTY; without even the implied warranty of
12 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13 GNU General Public License for more details. 13 GNU General Public License for more details.
14 14
15 You should have received a copy of the GNU General Public License 15 You should have received a copy of the GNU General Public License
16 along with this program; if not, write to the Free Software 16 along with this program; if not, write to the Free Software
17 Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. 17 Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
18 18
19 As a special exception, permission is given to link this program 19 As a special exception, permission is given to link this program
20 with any edition of Qt, and distribute the resulting executable, 20 with any edition of Qt, and distribute the resulting executable,
21 without including the source code for Qt in the source distribution. 21 without including the source code for Qt in the source distribution.
22*/ 22*/
23 23
24#include <qtooltip.h> 24#include <qtooltip.h>
25#include <qframe.h> 25#include <qframe.h>
26#include <qpixmap.h> 26#include <qpixmap.h>
27#include <qlayout.h> 27#include <qlayout.h>
28#include <qprogressbar.h> 28#include <qprogressbar.h>
29#include <qwidgetstack.h> 29#include <qwidgetstack.h>
30#include <qdatetime.h> 30#include <qdatetime.h>
31#include <qdir.h> 31#include <qdir.h>
32#include <qapplication.h> 32#include <qapplication.h>
33#include <qhbox.h> 33#include <qhbox.h>
34#include <qregexp.h>
34#include <qheader.h> 35#include <qheader.h>
35#include <qdatetime.h> 36#include <qdatetime.h>
36#include <qlistview.h> 37#include <qlistview.h>
37 38
38#include <kdebug.h> 39#include <kdebug.h>
39#include <klocale.h> 40#include <klocale.h>
40#include <kstandarddirs.h> 41#include <kstandarddirs.h>
41#include <kmessagebox.h> 42#include <kmessagebox.h>
42#include <kfiledialog.h> 43#include <kfiledialog.h>
43 44
44#include <libkdepim/categoryselectdialog.h> 45#include <libkdepim/categoryselectdialog.h>
45#include <libkdepim/kinputdialog.h> 46#include <libkdepim/kinputdialog.h>
46 47
47#include <libkcal/calendarlocal.h> 48#include <libkcal/calendarlocal.h>
48#include <libkcal/icalformat.h> 49#include <libkcal/icalformat.h>
49#include <kabc/stdaddressbook.h> 50#include <kabc/stdaddressbook.h>
50 51
51#include "koprefs.h" 52#include "koprefs.h"
52#include "koglobals.h" 53#include "koglobals.h"
53 54
54#include "koimportoldialog.h" 55#include "koimportoldialog.h"
55 56
56#include "../outport/msoutl9.h" 57#include "../outport/msoutl9.h"
57#include <ole2.h> 58#include <ole2.h>
58#include <comutil.h> 59#include <comutil.h>
59_Application gOlApp; 60_Application gOlApp;
60 61
61QDateTime mDdate2Qdtr( DATE dt) 62QDateTime mDdate2Qdtr( DATE dt)
62{ 63{
63 COleDateTime odt; 64 COleDateTime odt;
64 SYSTEMTIME st; 65 SYSTEMTIME st;
65 odt = dt; 66 odt = dt;
66 odt.GetAsSystemTime(st); 67 odt.GetAsSystemTime(st);
67 QDateTime qdt (QDate(st.wYear, st.wMonth,st.wDay ),QTime( st.wHour, st.wMinute,st.wSecond ) ); 68 QDateTime qdt (QDate(st.wYear, st.wMonth,st.wDay ),QTime( st.wHour, st.wMinute,st.wSecond ) );
68 return qdt; 69 return qdt;
69} 70}
70 71
71class OLEListViewItem : public QCheckListItem 72class OLEListViewItem : public QCheckListItem
72{ 73{
73 public: 74 public:
74 OLEListViewItem( QListView *parent, QString text ) : 75 OLEListViewItem( QListView *parent, QString text ) :
75 QCheckListItem( parent, text, QCheckListItem::CheckBox ) { ; }; 76 QCheckListItem( parent, text, QCheckListItem::CheckBox ) { ; };
76 OLEListViewItem( QListViewItem *after, QString text ) : 77 OLEListViewItem( QListViewItem *after, QString text ) :
77 QCheckListItem( after, text, QCheckListItem::CheckBox ) { ; }; 78 QCheckListItem( after, text, QCheckListItem::CheckBox ) { ; };
78 ~OLEListViewItem() {}; 79 ~OLEListViewItem() {};
79 void setData( DWORD data ) {mData= data; }; 80 void setData( DWORD data ) {mData= data; };
80 DWORD data() { return mData ;}; 81 DWORD data() { return mData ;};
81 private: 82 private:
82 DWORD mData; 83 DWORD mData;
83}; 84};
84 85
85KOImportOLdialog::KOImportOLdialog( const QString &caption, 86KOImportOLdialog::KOImportOLdialog( const QString &caption,
86 Calendar *calendar, QWidget *parent ) : 87 Calendar *calendar, QWidget *parent ) :
87 KDialogBase( Plain, caption, User1 | Close, Ok, 88 KDialogBase( Plain, caption, User1 | Close, Ok,
88 parent, caption, true, false, i18n("Import!") ) 89 parent, caption, true, false, i18n("Import!") )
89{ 90{
90 QHBox * mw = new QHBox( this ); 91 QHBox * mw = new QHBox( this );
91 setMainWidget( mw ); 92 setMainWidget( mw );
92 mListView = new QListView( mw ); 93 mListView = new QListView( mw );
93 mListView->addColumn(i18n("Select Folder to import")); 94 mListView->addColumn(i18n("Select Folder to import"));
94 mListView->addColumn(i18n("Content Type")); 95 mListView->addColumn(i18n("Content Type"));
95 mCalendar = calendar; 96 mCalendar = calendar;
96 connect( this, SIGNAL( user1Clicked() ),SLOT ( slotApply())); 97 connect( this, SIGNAL( user1Clicked() ),SLOT ( slotApply()));
97 setupFolderView(); 98 setupFolderView();
98 resize( sizeHint().width()+50, sizeHint().height()+50 ); 99 resize( sizeHint().width()+50, sizeHint().height()+50 );
99} 100}
100 101
101KOImportOLdialog::~KOImportOLdialog() 102KOImportOLdialog::~KOImportOLdialog()
102{ 103{
103 104
104} 105}
105 106
106 107
107void KOImportOLdialog::setupFolderView() 108void KOImportOLdialog::setupFolderView()
108{ 109{
109 SCODE sc = ::OleInitialize(NULL); 110 SCODE sc = ::OleInitialize(NULL);
110 if ( FAILED ( sc ) ) { 111 if ( FAILED ( sc ) ) {
111 KMessageBox::information(this,"OLE initialisation failed"); 112 KMessageBox::information(this,"OLE initialisation failed");
112 return; 113 return;
113 } 114 }
114 115
115 if(!gOlApp.CreateDispatch(_T("Outlook.Application"),NULL)){ 116 if(!gOlApp.CreateDispatch(_T("Outlook.Application"),NULL)){
116 KMessageBox::information(this,"Sorry, cannot access Outlook"); 117 KMessageBox::information(this,"Sorry, cannot access Outlook");
117 return ; 118 return ;
118 } 119 }
119 MAPIFolder mfInbox; 120 MAPIFolder mfInbox;
120 MAPIFolder mfRoot; 121 MAPIFolder mfRoot;
121 CString szName; 122 CString szName;
122 _NameSpace olNS; 123 _NameSpace olNS;
123 olNS = gOlApp.GetNamespace(_T("MAPI")); 124 olNS = gOlApp.GetNamespace(_T("MAPI"));
124 mfInbox = olNS.GetDefaultFolder(6); 125 mfInbox = olNS.GetDefaultFolder(6);
125 mfRoot = mfInbox.GetParent(); 126 mfRoot = mfInbox.GetParent();
126 szName = mfRoot.GetName(); 127 szName = mfRoot.GetName();
127 long iType = mfRoot.GetDefaultItemType(); 128 long iType = mfRoot.GetDefaultItemType();
128 QString mes; 129 QString mes;
129 mes = QString::fromUcs2( szName.GetBuffer() ); 130 mes = QString::fromUcs2( szName.GetBuffer() );
130 OLEListViewItem * root = new OLEListViewItem( mListView, mes ); 131 OLEListViewItem * root = new OLEListViewItem( mListView, mes );
131 mfRoot.m_lpDispatch->AddRef(); 132 mfRoot.m_lpDispatch->AddRef();
132 addFolder( root, mfRoot.m_lpDispatch ); 133 addFolder( root, mfRoot.m_lpDispatch );
133 root->setOpen( true ); 134 root->setOpen( true );
134 mListView->setSortColumn( 0 ); 135 mListView->setSortColumn( 0 );
135 mListView->sort( ); 136 mListView->sort( );
136} 137}
137 138
138 139
139void KOImportOLdialog::addFolder(OLEListViewItem* iParent, LPDISPATCH dispParent) 140void KOImportOLdialog::addFolder(OLEListViewItem* iParent, LPDISPATCH dispParent)
140{ 141{
141 MAPIFolder mfParent(dispParent), mfChild; 142 MAPIFolder mfParent(dispParent), mfChild;
142 _Folders folders; 143 _Folders folders;
143 _variant_t fndx((long)0); 144 _variant_t fndx((long)0);
144 CString szName; 145 CString szName;
145 long iType; 146 long iType;
146 OLEListViewItem* hChild; 147 OLEListViewItem* hChild;
147 148
148 folders = mfParent.GetFolders(); 149 folders = mfParent.GetFolders();
149 for(int i=1; i <= folders.GetCount(); ++i) 150 for(int i=1; i <= folders.GetCount(); ++i)
150 { 151 {
151 fndx = (long)i; 152 fndx = (long)i;
152 mfChild = folders.Item(fndx.Detach()); 153 mfChild = folders.Item(fndx.Detach());
153 mfChild.m_lpDispatch->AddRef(); 154 mfChild.m_lpDispatch->AddRef();
154 szName = mfChild.GetName(); 155 szName = mfChild.GetName();
155 iType = mfChild.GetDefaultItemType(); 156 iType = mfChild.GetDefaultItemType();
156 hChild = new OLEListViewItem( iParent , QString::fromUcs2( szName.GetBuffer() ) ); 157 hChild = new OLEListViewItem( iParent , QString::fromUcs2( szName.GetBuffer() ) );
157 if ( iType != 1) 158 if ( iType != 1)
158 hChild->setEnabled( false ); 159 hChild->setEnabled( false );
159 QString ts; 160 QString ts;
160 switch( iType ) { 161 switch( iType ) {
161 case 0: 162 case 0:
162 ts = i18n("Mail"); 163 ts = i18n("Mail");
163 break; 164 break;
164 case 1: 165 case 1:
165 ts = i18n("Calendar"); 166 ts = i18n("Calendar");
166 break; 167 break;
167 case 2: 168 case 2:
168 ts = i18n("Contacts"); 169 ts = i18n("Contacts");
169 break; 170 break;
170 case 3: 171 case 3:
171 ts = i18n("Todos"); 172 ts = i18n("Todos");
172 break; 173 break;
173 case 4: 174 case 4:
174 ts = i18n("Journals"); 175 ts = i18n("Journals");
175 break; 176 break;
176 case 5: 177 case 5:
177 ts = i18n("Notes"); 178 ts = i18n("Notes");
178 break; 179 break;
179 default: 180 default:
180 ts = i18n("Unknown"); 181 ts = i18n("Unknown");
181 } 182 }
182 hChild->setText( 1,ts); 183 hChild->setText( 1,ts);
183 hChild->setData( (DWORD) mfChild.m_lpDispatch ); 184 hChild->setData( (DWORD) mfChild.m_lpDispatch );
184 mfChild.m_lpDispatch->AddRef(); 185 mfChild.m_lpDispatch->AddRef();
185 addFolder(hChild, mfChild.m_lpDispatch); 186 addFolder(hChild, mfChild.m_lpDispatch);
186 } 187 }
187} 188}
188 189
189void KOImportOLdialog::slotApply() 190void KOImportOLdialog::slotApply()
190{ 191{
191 importedItems = 0; 192 importedItems = 0;
192 OLEListViewItem* child = (OLEListViewItem*) mListView->firstChild(); 193 OLEListViewItem* child = (OLEListViewItem*) mListView->firstChild();
193 while ( child ) { 194 while ( child ) {
194 if ( child->isOn() ) 195 if ( child->isOn() )
195 readCalendarData( child->data() ); 196 readCalendarData( child->data() );
196 child = (OLEListViewItem*) child->itemBelow(); 197 child = (OLEListViewItem*) child->itemBelow();
197 } 198 }
198 QString mes = i18n("Importing complete.\n\n%1 items imported.").arg( importedItems); 199 QString mes = i18n("Importing complete.\n\n%1 items imported.").arg( importedItems);
199 KMessageBox::information(this,mes); 200 KMessageBox::information(this,mes);
200} 201}
201void KOImportOLdialog::readCalendarData( DWORD folder ) 202void KOImportOLdialog::readCalendarData( DWORD folder )
202{ 203{
203 204
204 LPDISPATCH dispItem = (LPDISPATCH)folder; 205 LPDISPATCH dispItem = (LPDISPATCH)folder;
205 dispItem->AddRef(); 206 dispItem->AddRef();
206 MAPIFolder mf(dispItem); 207 MAPIFolder mf(dispItem);
207 mf.m_lpDispatch->AddRef(); 208 mf.m_lpDispatch->AddRef();
208 _Items folderItems; 209 _Items folderItems;
209 _variant_t indx((long)0); 210 _variant_t indx((long)0);
210 LPDISPATCH itm; 211 LPDISPATCH itm;
211 int i; 212 int i;
212 folderItems = mf.GetItems(); 213 folderItems = mf.GetItems();
213 QProgressBar bar( folderItems.GetCount(),0 ); 214 QProgressBar bar( folderItems.GetCount(),0 );
214 bar.setCaption (i18n("Importing - close to abort!") ); 215 bar.setCaption (i18n("Importing - close to abort!") );
215 int h = bar.sizeHint().height() ; 216 int h = bar.sizeHint().height() ;
216 int w = 300; 217 int w = 300;
217 int dw = QApplication::desktop()->width(); 218 int dw = QApplication::desktop()->width();
218 int dh = QApplication::desktop()->height(); 219 int dh = QApplication::desktop()->height();
219 bar.setGeometry( (dw-w)/2, (dh - h )/2 ,w,h ); 220 bar.setGeometry( (dw-w)/2, (dh - h )/2 ,w,h );
220 bar.show(); 221 bar.show();
221 for(i=1; i <= folderItems.GetCount(); ++i) 222 for(i=1; i <= folderItems.GetCount(); ++i)
222 { 223 {
223 qApp->processEvents(); 224 qApp->processEvents();
224 if ( ! bar.isVisible() ) 225 if ( ! bar.isVisible() )
225 return ; 226 return ;
226 bar.setProgress( i ); 227 bar.setProgress( i );
227 indx = (long)i; 228 indx = (long)i;
228 itm = folderItems.Item(indx.Detach()); 229 itm = folderItems.Item(indx.Detach());
229 _AppointmentItem * pItem = (_AppointmentItem *)&itm; 230 _AppointmentItem * pItem = (_AppointmentItem *)&itm;
230 ol2kopiCalendar( pItem ); 231 ol2kopiCalendar( pItem );
231 itm->Release(); 232 itm->Release();
232 } 233 }
233} 234}
234void KOImportOLdialog::slotOk() 235void KOImportOLdialog::slotOk()
235{ 236{
236 QDialog::accept(); 237 QDialog::accept();
237} 238}
238 239
239void KOImportOLdialog::ol2kopiCalendar( _AppointmentItem * aItem, bool computeRecurrence ) 240void KOImportOLdialog::ol2kopiCalendar( _AppointmentItem * aItem, bool computeRecurrence )
240{ 241{
241 KCal::Event* event = new KCal::Event(); 242 KCal::Event* event = new KCal::Event();
242 if ( aItem->GetAllDayEvent() ){ 243 if ( aItem->GetAllDayEvent() ){
243 event->setDtStart( QDateTime( mDdate2Qdtr( aItem->GetStart()).date(),QTime(0,0,0 ) )); 244 event->setDtStart( QDateTime( mDdate2Qdtr( aItem->GetStart()).date(),QTime(0,0,0 ) ));
244 event->setDtEnd( QDateTime( mDdate2Qdtr( aItem->GetEnd()) .date(),QTime(0,0,0 )).addDays(-1)); 245 event->setDtEnd( QDateTime( mDdate2Qdtr( aItem->GetEnd()) .date(),QTime(0,0,0 )).addDays(-1));
245 event->setFloats( true ); 246 event->setFloats( true );
246 } else { 247 } else {
247 event->setDtStart( mDdate2Qdtr( aItem->GetStart()) ); 248 event->setDtStart( mDdate2Qdtr( aItem->GetStart()) );
248 event->setDtEnd( mDdate2Qdtr( aItem->GetEnd()) ); 249 event->setDtEnd( mDdate2Qdtr( aItem->GetEnd()) );
249 event->setFloats( false ); 250 event->setFloats( false );
250 } 251 }
251 event->setSummary( QString::fromUcs2( aItem->GetSubject().GetBuffer()) ); 252 event->setSummary( QString::fromUcs2( aItem->GetSubject().GetBuffer()) );
252 event->setLocation( QString::fromUcs2( aItem->GetLocation().GetBuffer()) ); 253 event->setLocation( QString::fromUcs2( aItem->GetLocation().GetBuffer()) );
253 event->setDescription( QString::fromUcs2( aItem->GetBody().GetBuffer()) ); 254 event->setDescription( QString::fromUcs2( aItem->GetBody().GetBuffer()).replace( QRegExp("\\r"), "") );
254 QString cat = QString::fromUcs2( aItem->GetCategories().GetBuffer()); 255 QString cat = QString::fromUcs2( aItem->GetCategories().GetBuffer());
255 event->setCategories( QStringList::split( ";", cat )); 256 event->setCategories( QStringList::split( ";", cat ));
256 if ( aItem->GetReminderSet() ) { 257 if ( aItem->GetReminderSet() ) {
257 event->clearAlarms(); 258 event->clearAlarms();
258 Alarm* alarm = event->newAlarm(); 259 Alarm* alarm = event->newAlarm();
259 alarm->setStartOffset( -aItem->GetReminderMinutesBeforeStart()*60 ); 260 alarm->setStartOffset( -aItem->GetReminderMinutesBeforeStart()*60 );
260 alarm->setEnabled( true ); 261 alarm->setEnabled( true );
261 if ( aItem->GetReminderPlaySound() ) { 262 if ( aItem->GetReminderPlaySound() ) {
262 alarm->setType( Alarm::Audio ); 263 alarm->setType( Alarm::Audio );
263 alarm->setAudioFile( QString::fromUcs2( aItem->GetReminderSoundFile().GetBuffer())); 264 alarm->setAudioFile( QString::fromUcs2( aItem->GetReminderSoundFile().GetBuffer()));
264 } 265 }
265 else 266 else
266 alarm->setType( Alarm::Display ); 267 alarm->setType( Alarm::Display );
267 alarm->setRepeatCount( aItem->GetReplyTime() ); 268 alarm->setRepeatCount( aItem->GetReplyTime() );
268 } 269 }
269 // OL :pub 0 - pers 1 - priv 2 - conf 3 270 // OL :pub 0 - pers 1 - priv 2 - conf 3
270 // KO : pub 0 - priv 1 - conf 2 271 // KO : pub 0 - priv 1 - conf 2
271 int sec = aItem->GetSensitivity() ; 272 int sec = aItem->GetSensitivity() ;
272 if ( sec > 1 )// mapping pers -> private 273 if ( sec > 1 )// mapping pers -> private
273 --sec; 274 --sec;
274 event->setSecrecy( sec ); 275 event->setSecrecy( sec );
275 if ( aItem->GetBusyStatus() == 0 ) 276 if ( aItem->GetBusyStatus() == 0 )
276 event->setTransparency( Event::Transparent);// OL free 277 event->setTransparency( Event::Transparent);// OL free
277 else 278 else
278 event->setTransparency( Event::Opaque);//OL all other 279 event->setTransparency( Event::Opaque);//OL all other
279 280
280 if ( aItem->GetIsRecurring() && computeRecurrence ) { //recur 281 if ( aItem->GetIsRecurring() && computeRecurrence ) { //recur
281 282
282 RecurrencePattern recpat = aItem->GetRecurrencePattern(); 283 RecurrencePattern recpat = aItem->GetRecurrencePattern();
283 284
284 QDate startDate = mDdate2Qdtr(recpat.GetPatternStartDate()).date(); 285 QDate startDate = mDdate2Qdtr(recpat.GetPatternStartDate()).date();
285 int freq = recpat.GetInterval(); 286 int freq = recpat.GetInterval();
286 287
287 bool hasEndDate = !recpat.GetNoEndDate(); 288 bool hasEndDate = !recpat.GetNoEndDate();
288 QDate endDate = mDdate2Qdtr(recpat.GetPatternEndDate()).date(); 289 QDate endDate = mDdate2Qdtr(recpat.GetPatternEndDate()).date();
289 QBitArray weekDays( 7 ); 290 QBitArray weekDays( 7 );
290 weekDays.fill(false ); 291 weekDays.fill(false );
291 uint weekDaysNum = recpat.GetDayOfWeekMask(); 292 uint weekDaysNum = recpat.GetDayOfWeekMask();
292 int i; 293 int i;
293 int bb = 2; 294 int bb = 2;
294 for( i = 1; i <= 6; ++i ) { 295 for( i = 1; i <= 6; ++i ) {
295 weekDays.setBit( i - 1, ( bb & weekDaysNum )); 296 weekDays.setBit( i - 1, ( bb & weekDaysNum ));
296 bb = 4 << (i-1); 297 bb = 4 << (i-1);
297 //qDebug(" %d bit %d ",i-1,weekDays.at(i-1) ); 298 //qDebug(" %d bit %d ",i-1,weekDays.at(i-1) );
298 } 299 }
299 if ( 1 & weekDaysNum) 300 if ( 1 & weekDaysNum)
300 weekDays.setBit( 6 ); 301 weekDays.setBit( 6 );
301 // int pos = 1;// pending 302 // int pos = 1;// pending
302 303
303 Recurrence *r = event->recurrence(); 304 Recurrence *r = event->recurrence();
304 int rtype = recpat.GetRecurrenceType(); 305 int rtype = recpat.GetRecurrenceType();
305 //recurrence types are: 306 //recurrence types are:
306 /* 307 /*
307 olRecursDaily(0) 308 olRecursDaily(0)
308 olRecursWeekly(1) 309 olRecursWeekly(1)
309 olRecursMonthly(2) 310 olRecursMonthly(2)
310 olRecursMonthNth(3) 311 olRecursMonthNth(3)
311 olRecursYearly(5) 312 olRecursYearly(5)
312 olRecursYearNth(6) 313 olRecursYearNth(6)
313 */ 314 */
314 315
315 int duration = recpat.GetOccurrences(); 316 int duration = recpat.GetOccurrences();
316 if ( !hasEndDate ) 317 if ( !hasEndDate )
317 duration = -1; 318 duration = -1;
318 319
319 //LPDISPATCH RecurrencePattern::GetExceptions() 320 //LPDISPATCH RecurrencePattern::GetExceptions()
320 //long RecurrencePattern::GetMonthOfYear() 321 //long RecurrencePattern::GetMonthOfYear()
321 if ( rtype == 0 ) { 322 if ( rtype == 0 ) {
322 if ( hasEndDate ) r->setDaily( freq, endDate ); 323 if ( hasEndDate ) r->setDaily( freq, endDate );
323 else r->setDaily( freq, duration ); 324 else r->setDaily( freq, duration );
324 } else if ( rtype == 1 ) { 325 } else if ( rtype == 1 ) {
325 if ( hasEndDate ) r->setWeekly( freq, weekDays, endDate ); 326 if ( hasEndDate ) r->setWeekly( freq, weekDays, endDate );
326 else r->setWeekly( freq, weekDays, duration ); 327 else r->setWeekly( freq, weekDays, duration );
327 } else if ( rtype == 2 ) { 328 } else if ( rtype == 2 ) {
328 if ( hasEndDate ) 329 if ( hasEndDate )
329 r->setMonthly( Recurrence::rMonthlyDay, freq, endDate ); 330 r->setMonthly( Recurrence::rMonthlyDay, freq, endDate );
330 else 331 else
331 r->setMonthly( Recurrence::rMonthlyDay, freq, duration ); 332 r->setMonthly( Recurrence::rMonthlyDay, freq, duration );
332 //r->addMonthlyDay( startDate.day() ); 333 //r->addMonthlyDay( startDate.day() );
333 r->addMonthlyDay( recpat.GetDayOfMonth() ); 334 r->addMonthlyDay( recpat.GetDayOfMonth() );
334 } else if ( rtype == 3 ) { 335 } else if ( rtype == 3 ) {
335 if ( hasEndDate ) 336 if ( hasEndDate )
336 r->setMonthly( Recurrence::rMonthlyPos, freq, endDate ); 337 r->setMonthly( Recurrence::rMonthlyPos, freq, endDate );
337 else 338 else
338 r->setMonthly( Recurrence::rMonthlyPos, freq, duration ); 339 r->setMonthly( Recurrence::rMonthlyPos, freq, duration );
339 QBitArray days( 7 ); 340 QBitArray days( 7 );
340 days.fill( false ); 341 days.fill( false );
341 days.setBit( startDate.dayOfWeek() - 1 ); 342 days.setBit( startDate.dayOfWeek() - 1 );
342 int pos = (startDate.day()/7)+1; 343 int pos = (startDate.day()/7)+1;
343 r->addMonthlyPos( pos, days ); 344 r->addMonthlyPos( pos, days );
344 //QString mes = i18n("Importing monthlypos.\n\npos: %1 , day: %2").arg( pos).arg( startDate.dayOfWeek() - 1); 345 //QString mes = i18n("Importing monthlypos.\n\npos: %1 , day: %2").arg( pos).arg( startDate.dayOfWeek() - 1);
345 //KMessageBox::information(this,mes); 346 //KMessageBox::information(this,mes);
346 } else if ( rtype == 5 ) { 347 } else if ( rtype == 5 ) {
347 freq = 1; 348 freq = 1;
348 if ( hasEndDate ) 349 if ( hasEndDate )
349 r->setYearly( Recurrence::rYearlyMonth, freq, endDate ); 350 r->setYearly( Recurrence::rYearlyMonth, freq, endDate );
350 else 351 else
351 r->setYearly( Recurrence::rYearlyMonth, freq, duration ); 352 r->setYearly( Recurrence::rYearlyMonth, freq, duration );
352 r->addYearlyNum( startDate.month() ); 353 r->addYearlyNum( startDate.month() );
353 } else if ( true /*rtype == 6*/ ) { 354 } else if ( true /*rtype == 6*/ ) {
354 // KOganizer cannot handle this in the GUI 355 // KOganizer cannot handle this in the GUI
355 // we are mapping this to monthly - every 12. month 356 // we are mapping this to monthly - every 12. month
356 freq = 12; 357 freq = 12;
357 if ( hasEndDate ) 358 if ( hasEndDate )
358 r->setMonthly( Recurrence::rMonthlyPos, freq, endDate ); 359 r->setMonthly( Recurrence::rMonthlyPos, freq, endDate );
359 else 360 else
360 r->setMonthly( Recurrence::rMonthlyPos, freq, duration ); 361 r->setMonthly( Recurrence::rMonthlyPos, freq, duration );
361 QBitArray days( 7 ); 362 QBitArray days( 7 );
362 days.fill( false ); 363 days.fill( false );
363 days.setBit( startDate.dayOfWeek() - 1 ); 364 days.setBit( startDate.dayOfWeek() - 1 );
364 int pos = (startDate.day()/7)+1; 365 int pos = (startDate.day()/7)+1;
365 r->addMonthlyPos( pos, days ); 366 r->addMonthlyPos( pos, days );
366 } 367 }
367 // recurrence exceptions 368 // recurrence exceptions
368 LPDISPATCH dispItem = recpat.GetExceptions(); 369 LPDISPATCH dispItem = recpat.GetExceptions();
369 dispItem->AddRef(); 370 dispItem->AddRef();
370 Exceptions ex(dispItem); 371 Exceptions ex(dispItem);
371 _variant_t indx((long)0); 372 _variant_t indx((long)0);
372 LPDISPATCH itm; 373 LPDISPATCH itm;
373 for(i=1; i <= ex.GetCount(); ++i) { 374 for(i=1; i <= ex.GetCount(); ++i) {
374 indx = (long)i; 375 indx = (long)i;
375 itm = ex.Item( indx.Detach() ); 376 itm = ex.Item( indx.Detach() );
376 ::Exception * pItem = (::Exception *)&itm; 377 ::Exception * pItem = (::Exception *)&itm;
377 event->addExDate( QDateTime( mDdate2Qdtr( pItem->GetOriginalDate())).date() ); 378 event->addExDate( QDateTime( mDdate2Qdtr( pItem->GetOriginalDate())).date() );
378 if ( !pItem->GetDeleted() ) { 379 if ( !pItem->GetDeleted() ) {
379 LPDISPATCH appIt = pItem->GetAppointmentItem(); 380 LPDISPATCH appIt = pItem->GetAppointmentItem();
380 _AppointmentItem * paItem = (_AppointmentItem *)&appIt; 381 _AppointmentItem * paItem = (_AppointmentItem *)&appIt;
381 ol2kopiCalendar( paItem, false ); 382 ol2kopiCalendar( paItem, false );
382 } 383 }
383 itm->Release(); 384 itm->Release();
384 } 385 }
385 } 386 }
386 // recurrence ENTE 387 // recurrence ENTE
387 event->setOrganizer( QString::fromUcs2( aItem->GetOrganizer().GetBuffer())); 388 event->setOrganizer( QString::fromUcs2( aItem->GetOrganizer().GetBuffer()));
388 389
389 //GetOptionalAttendees() 390 //GetOptionalAttendees()
390 //GetRequiredAttendees() 391 //GetRequiredAttendees()
391 LPDISPATCH dispItem = aItem->GetRecipients(); 392 LPDISPATCH dispItem = aItem->GetRecipients();
392 dispItem->AddRef(); 393 dispItem->AddRef();
393 _Folders mf(dispItem); 394 _Folders mf(dispItem);
394 mf.m_lpDispatch->AddRef(); 395 mf.m_lpDispatch->AddRef();
395 _variant_t indx((long)0); 396 _variant_t indx((long)0);
396 LPDISPATCH itm; 397 LPDISPATCH itm;
397 int i; 398 int i;
398 QString optAtt = QString::fromUcs2( aItem->GetOptionalAttendees().GetBuffer()); 399 QString optAtt = QString::fromUcs2( aItem->GetOptionalAttendees().GetBuffer());
399 QString reqAtt = QString::fromUcs2( aItem->GetRequiredAttendees().GetBuffer()); 400 QString reqAtt = QString::fromUcs2( aItem->GetRequiredAttendees().GetBuffer());
400 //GetRequiredAttendees() 401 //GetRequiredAttendees()
401 for(i=1; i <= mf.GetCount(); ++i) { 402 for(i=1; i <= mf.GetCount(); ++i) {
402 indx = (long)i; 403 indx = (long)i;
403 itm = mf.Item( indx.Detach() ); 404 itm = mf.Item( indx.Detach() );
404 Recipient * pItem = (Recipient *)&itm; 405 Recipient * pItem = (Recipient *)&itm;
405 406
406 //a = new KCal::Attendee( (*it).realName(), (*it).preferredEmail(),false,KCal::Attendee::NeedsAction,KCal::Attendee::ReqParticipant,(*it).uid()) ; 407 //a = new KCal::Attendee( (*it).realName(), (*it).preferredEmail(),false,KCal::Attendee::NeedsAction,KCal::Attendee::ReqParticipant,(*it).uid()) ;
407 QString name = QString::fromUcs2( pItem->GetName().GetBuffer()); 408 QString name = QString::fromUcs2( pItem->GetName().GetBuffer());
408 KCal::Attendee::PartStat stat; 409 KCal::Attendee::PartStat stat;
409 bool rsvp = false; 410 bool rsvp = false;
410 switch ( pItem->GetMeetingResponseStatus() ) { 411 switch ( pItem->GetMeetingResponseStatus() ) {
411 case 0: //not answered 412 case 0: //not answered
412 rsvp = true; 413 rsvp = true;
413 case 5: //not answered 414 case 5: //not answered
414 stat = Attendee::NeedsAction; 415 stat = Attendee::NeedsAction;
415 break; 416 break;
416 case 1: //organizer 417 case 1: //organizer
417 stat = Attendee::Delegated ; 418 stat = Attendee::Delegated ;
418 break; 419 break;
419 case 2: //tentative 420 case 2: //tentative
420 stat = Attendee::Tentative ; 421 stat = Attendee::Tentative ;
421 break; 422 break;
422 case 3: //accepted 423 case 3: //accepted
423 stat = Attendee::Accepted; 424 stat = Attendee::Accepted;
424 break; 425 break;
425 case 4: //declined 426 case 4: //declined
426 stat =Attendee::Declined ; 427 stat =Attendee::Declined ;
427 break; 428 break;
428 default: 429 default:
429 stat = Attendee::NeedsAction ; 430 stat = Attendee::NeedsAction ;
430 431
431 } 432 }
432 KCal::Attendee::Role role; 433 KCal::Attendee::Role role;
433 if ( event->organizer() == name ) 434 if ( event->organizer() == name )
434 role = KCal::Attendee::Chair; 435 role = KCal::Attendee::Chair;
435 else if ( reqAtt.find( name ) >= 0 ) 436 else if ( reqAtt.find( name ) >= 0 )
436 role = KCal::Attendee::ReqParticipant; 437 role = KCal::Attendee::ReqParticipant;
437 else if ( optAtt.find( name ) >= 0 ) 438 else if ( optAtt.find( name ) >= 0 )
438 role = KCal::Attendee::OptParticipant; 439 role = KCal::Attendee::OptParticipant;
439 else 440 else
440 role = KCal::Attendee::NonParticipant; 441 role = KCal::Attendee::NonParticipant;
441 QString mail = QString::fromUcs2(pItem->GetAddress().GetBuffer()); 442 QString mail = QString::fromUcs2(pItem->GetAddress().GetBuffer());
442 if( mail.isEmpty() && name.find("@") > 0 ) { 443 if( mail.isEmpty() && name.find("@") > 0 ) {
443 int kl = name.find("<"); 444 int kl = name.find("<");
444 int gr = name.find(">"); 445 int gr = name.find(">");
445 if ( kl >= 0 && gr >= 0) { 446 if ( kl >= 0 && gr >= 0) {
446 mail = name.mid (kl+1, gr - kl -1); 447 mail = name.mid (kl+1, gr - kl -1);
447 name = name.left( kl ); 448 name = name.left( kl );
448 } 449 }
449 else 450 else
450 mail = name; 451 mail = name;
451 } 452 }
452 mail = mail.stripWhiteSpace(); 453 mail = mail.stripWhiteSpace();
453 454
454 QString uid = getUidByEmail( mail ); 455 QString uid = getUidByEmail( mail );
455 //uid = QString::fromUcs2( pItem->GetEntryID().GetBuffer()); 456 //uid = QString::fromUcs2( pItem->GetEntryID().GetBuffer());
456 KCal::Attendee * a = new KCal::Attendee( name, mail,rsvp,stat,role,uid) ; 457 KCal::Attendee * a = new KCal::Attendee( name, mail,rsvp,stat,role,uid) ;
457 event->addAttendee( a , false ); 458 event->addAttendee( a , false );
458 itm->Release(); 459 itm->Release();
459 } 460 }
460 461
461 462
462 if ( !mCalendar->addEventNoDup( event )) 463 if ( !mCalendar->addEventNoDup( event ))
463 delete event; 464 delete event;
464 else { 465 else {
465 // QString mes = i18n("Importing %1.\n date: %2 date: %3").arg( event->summary()).arg( event->dtStart().toString()).arg( event->dtEnd().toString()); 466 // QString mes = i18n("Importing %1.\n date: %2 date: %3").arg( event->summary()).arg( event->dtStart().toString()).arg( event->dtEnd().toString());
466 //KMessageBox::information(this,mes); 467 //KMessageBox::information(this,mes);
467 ++importedItems; 468 ++importedItems;
468 } 469 }
469} 470}
470void KOImportOLdialog::slotCancel() 471void KOImportOLdialog::slotCancel()
471{ 472{
472 reject(); 473 reject();
473} 474}
474 475
475QString KOImportOLdialog::getUidByEmail( QString email ) 476QString KOImportOLdialog::getUidByEmail( QString email )
476{ 477{
477 KABC::StdAddressBook* AddressBook = KABC::StdAddressBook::self( true ); 478 KABC::StdAddressBook* AddressBook = KABC::StdAddressBook::self( true );
478 KABC::AddressBook::Iterator it; 479 KABC::AddressBook::Iterator it;
479 for( it = AddressBook->begin(); it != AddressBook->end(); ++it ) { 480 for( it = AddressBook->begin(); it != AddressBook->end(); ++it ) {
480 QStringList em = (*it).emails(); 481 QStringList em = (*it).emails();
481 if ( em.contains( email )) 482 if ( em.contains( email ))
482 return (*it).uid(); 483 return (*it).uid();
483 } 484 }
484 return ""; 485 return "";
485} 486}
diff --git a/korganizer/mainwindow.cpp b/korganizer/mainwindow.cpp
index 9e215b9..63484d6 100644
--- a/korganizer/mainwindow.cpp
+++ b/korganizer/mainwindow.cpp
@@ -1,1882 +1,1888 @@
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 <libkdepim/phoneaccess.h> 42#include <libkdepim/phoneaccess.h>
43#include <libkcal/kincidenceformatter.h> 43#include <libkcal/kincidenceformatter.h>
44#include <libkdepim/kpimglobalprefs.h> 44#include <libkdepim/kpimglobalprefs.h>
45 45
46#include "calendarview.h" 46#include "calendarview.h"
47#include "koviewmanager.h" 47#include "koviewmanager.h"
48#include "datenavigator.h" 48#include "datenavigator.h"
49#include "koagendaview.h" 49#include "koagendaview.h"
50#include "koagenda.h" 50#include "koagenda.h"
51#include "kodialogmanager.h" 51#include "kodialogmanager.h"
52#include "kdialogbase.h" 52#include "kdialogbase.h"
53#include "kapplication.h" 53#include "kapplication.h"
54#include "kofilterview.h" 54#include "kofilterview.h"
55#include "kstandarddirs.h" 55#include "kstandarddirs.h"
56#include "koprefs.h" 56#include "koprefs.h"
57#include "kfiledialog.h" 57#include "kfiledialog.h"
58#include "koglobals.h" 58#include "koglobals.h"
59#include "kglobal.h" 59#include "kglobal.h"
60#include "klocale.h" 60#include "klocale.h"
61#include "kconfig.h" 61#include "kconfig.h"
62#include "simplealarmclient.h" 62#include "simplealarmclient.h"
63#include "externalapphandler.h" 63#include "externalapphandler.h"
64 64
65using namespace KCal; 65using namespace KCal;
66#ifndef _WIN32_ 66#ifndef _WIN32_
67#include <unistd.h> 67#include <unistd.h>
68#else 68#else
69#include "koimportoldialog.h" 69#include "koimportoldialog.h"
70#endif 70#endif
71#include "mainwindow.h" 71#include "mainwindow.h"
72 72
73class KOex2phonePrefs : public QDialog 73class KOex2phonePrefs : public QDialog
74{ 74{
75 public: 75 public:
76 KOex2phonePrefs( QWidget *parent=0, const char *name=0 ) : 76 KOex2phonePrefs( QWidget *parent=0, const char *name=0 ) :
77 QDialog( parent, name, true ) 77 QDialog( parent, name, true )
78 { 78 {
79 setCaption( i18n("Export to phone options") ); 79 setCaption( i18n("Export to phone options") );
80 QVBoxLayout* lay = new QVBoxLayout( this ); 80 QVBoxLayout* lay = new QVBoxLayout( this );
81 lay->setSpacing( 3 ); 81 lay->setSpacing( 3 );
82 lay->setMargin( 3 ); 82 lay->setMargin( 3 );
83 QLabel *lab; 83 QLabel *lab;
84 lay->addWidget(lab = new QLabel( i18n("Please read Help-Sync Howto\nto know what settings to use."), this ) ); 84 lay->addWidget(lab = new QLabel( i18n("Please read Help-Sync Howto\nto know what settings to use."), this ) );
85 lab->setAlignment (AlignHCenter ); 85 lab->setAlignment (AlignHCenter );
86 QHBox* temphb; 86 QHBox* temphb;
87 temphb = new QHBox( this ); 87 temphb = new QHBox( this );
88 new QLabel( i18n("I/O device: "), temphb ); 88 new QLabel( i18n("I/O device: "), temphb );
89 mPhoneDevice = new QLineEdit( temphb); 89 mPhoneDevice = new QLineEdit( temphb);
90 lay->addWidget( temphb ); 90 lay->addWidget( temphb );
91 temphb = new QHBox( this ); 91 temphb = new QHBox( this );
92 new QLabel( i18n("Connection: "), temphb ); 92 new QLabel( i18n("Connection: "), temphb );
93 mPhoneConnection = new QLineEdit( temphb); 93 mPhoneConnection = new QLineEdit( temphb);
94 lay->addWidget( temphb ); 94 lay->addWidget( temphb );
95 temphb = new QHBox( this ); 95 temphb = new QHBox( this );
96 new QLabel( i18n("Model(opt.): "), temphb ); 96 new QLabel( i18n("Model(opt.): "), temphb );
97 mPhoneModel = new QLineEdit( temphb); 97 mPhoneModel = new QLineEdit( temphb);
98 lay->addWidget( temphb ); 98 lay->addWidget( temphb );
99 mWriteBackFuture= new QCheckBox( i18n("Write back events in future only"), this ); 99 mWriteBackFuture= new QCheckBox( i18n("Write back events in future only"), this );
100 mWriteBackFuture->setChecked( true ); 100 mWriteBackFuture->setChecked( true );
101 lay->addWidget( mWriteBackFuture ); 101 lay->addWidget( mWriteBackFuture );
102 temphb = new QHBox( this ); 102 temphb = new QHBox( this );
103 new QLabel( i18n("Max. weeks in future: ") , temphb ); 103 new QLabel( i18n("Max. weeks in future: ") , temphb );
104 mWriteBackFutureWeeks= new QSpinBox(1,104, 1, temphb); 104 mWriteBackFutureWeeks= new QSpinBox(1,104, 1, temphb);
105 mWriteBackFutureWeeks->setValue( 8 ); 105 mWriteBackFutureWeeks->setValue( 8 );
106 lay->addWidget( temphb ); 106 lay->addWidget( temphb );
107 lay->addWidget(lab = new QLabel( i18n("NOTE: This will remove all old\ntodo/calendar data on phone!"), this ) ); 107 lay->addWidget(lab = new QLabel( i18n("NOTE: This will remove all old\ntodo/calendar data on phone!"), this ) );
108 lab->setAlignment (AlignHCenter ); 108 lab->setAlignment (AlignHCenter );
109 QPushButton * ok = new QPushButton( i18n("Export to mobile phone!"), this ); 109 QPushButton * ok = new QPushButton( i18n("Export to mobile phone!"), this );
110 lay->addWidget( ok ); 110 lay->addWidget( ok );
111 QPushButton * cancel = new QPushButton( i18n("Cancel"), this ); 111 QPushButton * cancel = new QPushButton( i18n("Cancel"), this );
112 lay->addWidget( cancel ); 112 lay->addWidget( cancel );
113 connect ( ok,SIGNAL(clicked() ),this , SLOT ( accept() ) ); 113 connect ( ok,SIGNAL(clicked() ),this , SLOT ( accept() ) );
114 connect (cancel, SIGNAL(clicked() ), this, SLOT ( reject()) ); 114 connect (cancel, SIGNAL(clicked() ), this, SLOT ( reject()) );
115 resize( 220, 240 ); 115 resize( 220, 240 );
116 116
117 } 117 }
118 118
119public: 119public:
120 QLineEdit* mPhoneConnection, *mPhoneDevice, *mPhoneModel; 120 QLineEdit* mPhoneConnection, *mPhoneDevice, *mPhoneModel;
121 QCheckBox* mWriteBackFuture; 121 QCheckBox* mWriteBackFuture;
122 QSpinBox* mWriteBackFutureWeeks; 122 QSpinBox* mWriteBackFutureWeeks;
123}; 123};
124 124
125int globalFlagBlockStartup; 125int globalFlagBlockStartup;
126MainWindow::MainWindow( QWidget *parent, const char *name, QString msg) : 126MainWindow::MainWindow( QWidget *parent, const char *name, QString msg) :
127 QMainWindow( parent, name ) 127 QMainWindow( parent, name )
128{ 128{
129 129
130#ifdef DESKTOP_VERSION 130#ifdef DESKTOP_VERSION
131 setFont( QFont("Arial"), 14 ); 131 setFont( QFont("Arial"), 14 );
132#endif 132#endif
133 mClosed = false; 133 mClosed = false;
134 //QString confFile = KStandardDirs::appDir() + "config/korganizerrc"; 134 //QString confFile = KStandardDirs::appDir() + "config/korganizerrc";
135 QString confFile = locateLocal("config","korganizerrc"); 135 QString confFile = locateLocal("config","korganizerrc");
136 QFileInfo finf ( confFile ); 136 QFileInfo finf ( confFile );
137 bool showWarning = !finf.exists(); 137 bool showWarning = !finf.exists();
138 setIcon(SmallIcon( "ko24" ) ); 138 setIcon(SmallIcon( "ko24" ) );
139 mBlockAtStartup = true; 139 mBlockAtStartup = true;
140 mFlagKeyPressed = false; 140 mFlagKeyPressed = false;
141 setCaption("KOrganizer/Pi"); 141 setCaption("KOrganizer/Pi");
142 KOPrefs *p = KOPrefs::instance(); 142 KOPrefs *p = KOPrefs::instance();
143 KPimGlobalPrefs::instance()->setGlobalConfig(); 143 KPimGlobalPrefs::instance()->setGlobalConfig();
144 if ( p->mHourSize > 18 ) 144 if ( p->mHourSize > 18 )
145 p->mHourSize = 18; 145 p->mHourSize = 18;
146 QMainWindow::ToolBarDock tbd; 146 QMainWindow::ToolBarDock tbd;
147 if ( p->mToolBarHor ) { 147 if ( p->mToolBarHor ) {
148 if ( p->mToolBarUp ) 148 if ( p->mToolBarUp )
149 tbd = Bottom; 149 tbd = Bottom;
150 else 150 else
151 tbd = Top; 151 tbd = Top;
152 } 152 }
153 else { 153 else {
154 if ( p->mToolBarUp ) 154 if ( p->mToolBarUp )
155 tbd = Right; 155 tbd = Right;
156 else 156 else
157 tbd = Left; 157 tbd = Left;
158 } 158 }
159 if ( KOPrefs::instance()->mUseAppColors ) 159 if ( KOPrefs::instance()->mUseAppColors )
160 QApplication::setPalette( QPalette (KOPrefs::instance()->mAppColor1, KOPrefs::instance()->mAppColor2), true ); 160 QApplication::setPalette( QPalette (KOPrefs::instance()->mAppColor1, KOPrefs::instance()->mAppColor2), true );
161 globalFlagBlockStartup = 1; 161 globalFlagBlockStartup = 1;
162 iconToolBar = new QPEToolBar( this ); 162 iconToolBar = new QPEToolBar( this );
163 addToolBar (iconToolBar , tbd ); 163 addToolBar (iconToolBar , tbd );
164 mCalendarModifiedFlag = false; 164 mCalendarModifiedFlag = false;
165 165
166 QLabel* splash = new QLabel(i18n("KO/Pi is starting ... "), this ); 166 QLabel* splash = new QLabel(i18n("KO/Pi is starting ... "), this );
167 splash->setAlignment ( AlignCenter ); 167 splash->setAlignment ( AlignCenter );
168 setCentralWidget( splash ); 168 setCentralWidget( splash );
169#ifndef DESKTOP_VERSION 169#ifndef DESKTOP_VERSION
170 showMaximized(); 170 showMaximized();
171#endif 171#endif
172 //qDebug("Mainwidget x %d y %d w %d h %d", x(), y(), width(), height ()); 172 //qDebug("Mainwidget x %d y %d w %d h %d", x(), y(), width(), height ());
173 setDefaultPreferences(); 173 setDefaultPreferences();
174 mCalendar = new CalendarLocal(); 174 mCalendar = new CalendarLocal();
175 mView = new CalendarView( mCalendar, this,"mCalendar " ); 175 mView = new CalendarView( mCalendar, this,"mCalendar " );
176 mView->hide(); 176 mView->hide();
177 //mView->resize(splash->size() ); 177 //mView->resize(splash->size() );
178 initActions(); 178 initActions();
179 mSyncManager = new KSyncManager((QWidget*)this, (KSyncInterface*)mView, KSyncManager::KOPI, KOPrefs::instance(), syncMenu); 179 mSyncManager = new KSyncManager((QWidget*)this, (KSyncInterface*)mView, KSyncManager::KOPI, KOPrefs::instance(), syncMenu);
180 mSyncManager->setBlockSave(false); 180 mSyncManager->setBlockSave(false);
181 mView->setSyncManager(mSyncManager); 181 mView->setSyncManager(mSyncManager);
182#ifndef DESKTOP_VERSION 182#ifndef DESKTOP_VERSION
183 iconToolBar->show(); 183 iconToolBar->show();
184 qApp->processEvents(); 184 qApp->processEvents();
185#endif 185#endif
186 //qDebug("Splashwidget x %d y %d w %d h %d", splash-> x(), splash->y(), splash->width(),splash-> height ()); 186 //qDebug("Splashwidget x %d y %d w %d h %d", splash-> x(), splash->y(), splash->width(),splash-> height ());
187 int vh = height() ; 187 int vh = height() ;
188 int vw = width(); 188 int vw = width();
189 //qDebug("Toolbar hei %d ",iconToolBar->height() ); 189 //qDebug("Toolbar hei %d ",iconToolBar->height() );
190 if ( iconToolBar->orientation () == Qt:: Horizontal ) { 190 if ( iconToolBar->orientation () == Qt:: Horizontal ) {
191 vh -= iconToolBar->height(); 191 vh -= iconToolBar->height();
192 } else { 192 } else {
193 vw -= iconToolBar->height(); 193 vw -= iconToolBar->height();
194 } 194 }
195 //mView->setMaximumSize( splash->size() ); 195 //mView->setMaximumSize( splash->size() );
196 //mView->resize( splash->size() ); 196 //mView->resize( splash->size() );
197 //qDebug("MainView x %d y %d w %d h %d", mView->x(),mView-> y(), mView->width(), mView->height ()); 197 //qDebug("MainView x %d y %d w %d h %d", mView->x(),mView-> y(), mView->width(), mView->height ());
198 mView->readSettings(); 198 mView->readSettings();
199 bool newFile = false; 199 bool newFile = false;
200 if( !QFile::exists( defaultFileName() ) ) { 200 if( !QFile::exists( defaultFileName() ) ) {
201 QFileInfo finfo ( defaultFileName() ); 201 QFileInfo finfo ( defaultFileName() );
202 QString oldFile = QDir::convertSeparators( QDir::homeDirPath()+"/Applications/korganizer/mycalendar.ics"); 202 QString oldFile = QDir::convertSeparators( QDir::homeDirPath()+"/Applications/korganizer/mycalendar.ics");
203 qDebug("oldfile %s ", oldFile.latin1()); 203 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"; 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";
205 finfo.setFile( oldFile ); 205 finfo.setFile( oldFile );
206 if (finfo.exists() ) { 206 if (finfo.exists() ) {
207 KMessageBox::information( this, message); 207 KMessageBox::information( this, message);
208 mView->openCalendar( oldFile ); 208 mView->openCalendar( oldFile );
209 qApp->processEvents(); 209 qApp->processEvents();
210 } else { 210 } else {
211 oldFile = QDir::convertSeparators( QDir::homeDirPath()+"/korganizer/mycalendar.ics"); 211 oldFile = QDir::convertSeparators( QDir::homeDirPath()+"/korganizer/mycalendar.ics");
212 finfo.setFile( oldFile ); 212 finfo.setFile( oldFile );
213 if (finfo.exists() ) { 213 if (finfo.exists() ) {
214 KMessageBox::information( this, message); 214 KMessageBox::information( this, message);
215 mView->openCalendar( oldFile ); 215 mView->openCalendar( oldFile );
216 qApp->processEvents(); 216 qApp->processEvents();
217 } 217 }
218 } 218 }
219 mView->saveCalendar( defaultFileName() ); 219 mView->saveCalendar( defaultFileName() );
220 newFile = true; 220 newFile = true;
221 } 221 }
222 222
223 QTime neededSaveTime = QDateTime::currentDateTime().time(); 223 QTime neededSaveTime = QDateTime::currentDateTime().time();
224 mView->openCalendar( defaultFileName() ); 224 mView->openCalendar( defaultFileName() );
225 int msNeeded = neededSaveTime.msecsTo( QDateTime::currentDateTime().time() ); 225 int msNeeded = neededSaveTime.msecsTo( QDateTime::currentDateTime().time() );
226 qDebug("KO: Calendar loading time: %d ms",msNeeded ); 226 qDebug("KO: Calendar loading time: %d ms",msNeeded );
227 227
228 if ( KOPrefs::instance()->mLanguageChanged ) { 228 if ( KOPrefs::instance()->mLanguageChanged ) {
229 KOPrefs::instance()->setCategoryDefaults(); 229 KOPrefs::instance()->setCategoryDefaults();
230 int count = mView->addCategories(); 230 int count = mView->addCategories();
231 KOPrefs::instance()->mLanguageChanged = false; 231 KOPrefs::instance()->mLanguageChanged = false;
232 } 232 }
233 processIncidenceSelection( 0 ); 233 processIncidenceSelection( 0 );
234 connect( mView, SIGNAL( incidenceSelected( Incidence * ) ), 234 connect( mView, SIGNAL( incidenceSelected( Incidence * ) ),
235 SLOT( processIncidenceSelection( Incidence * ) ) ); 235 SLOT( processIncidenceSelection( Incidence * ) ) );
236 connect( mView, SIGNAL( modifiedChanged( bool ) ), 236 connect( mView, SIGNAL( modifiedChanged( bool ) ),
237 SLOT( slotModifiedChanged( bool ) ) ); 237 SLOT( slotModifiedChanged( bool ) ) );
238 238
239 239
240 connect( mView, SIGNAL( tempDisableBR(bool) ), 240 connect( mView, SIGNAL( tempDisableBR(bool) ),
241 SLOT( disableBR(bool) ) ); 241 SLOT( disableBR(bool) ) );
242 connect( &mSaveTimer, SIGNAL( timeout() ), SLOT( save() ) ); 242 connect( &mSaveTimer, SIGNAL( timeout() ), SLOT( save() ) );
243 mView->setModified( false ); 243 mView->setModified( false );
244 mBlockAtStartup = false; 244 mBlockAtStartup = false;
245 mView->setModified( false ); 245 mView->setModified( false );
246 setCentralWidget( mView ); 246 setCentralWidget( mView );
247 globalFlagBlockStartup = 0; 247 globalFlagBlockStartup = 0;
248 mView->show(); 248 mView->show();
249 delete splash; 249 delete splash;
250 if ( newFile ) 250 if ( newFile )
251 mView->updateConfig(); 251 mView->updateConfig();
252 // qApp->processEvents(); 252 // qApp->processEvents();
253 //qDebug("MainView x %d y %d w %d h %d", mView->x(),mView-> y(), mView->width(), mView->height ()); 253 //qDebug("MainView x %d y %d w %d h %d", mView->x(),mView-> y(), mView->width(), mView->height ());
254 //fillSyncMenu(); 254 //fillSyncMenu();
255 255
256 256
257 connect(mSyncManager , SIGNAL( save() ), this, SLOT( save() ) ); 257 connect(mSyncManager , SIGNAL( save() ), this, SLOT( save() ) );
258 connect(mSyncManager , SIGNAL( request_file() ), this, SLOT( syncFileRequest() ) ); 258 connect(mSyncManager , SIGNAL( request_file() ), this, SLOT( syncFileRequest() ) );
259 connect(mSyncManager , SIGNAL( getFile( bool )), this, SLOT(getFile( bool ) ) ); 259 connect(mSyncManager , SIGNAL( getFile( bool )), this, SLOT(getFile( bool ) ) );
260 mSyncManager->setDefaultFileName( defaultFileName()); 260 mSyncManager->setDefaultFileName( defaultFileName());
261 connect ( syncMenu, SIGNAL( activated ( int ) ), mSyncManager, SLOT (slotSyncMenu( int ) ) ); 261 connect ( syncMenu, SIGNAL( activated ( int ) ), mSyncManager, SLOT (slotSyncMenu( int ) ) );
262 mSyncManager->fillSyncMenu(); 262 mSyncManager->fillSyncMenu();
263 263
264 264
265 265
266 mView->viewManager()->agendaView()->setStartHour( KOPrefs::instance()->mDayBegins ); 266 mView->viewManager()->agendaView()->setStartHour( KOPrefs::instance()->mDayBegins );
267 if ( showWarning ) { 267 if ( showWarning ) {
268 KMessageBox::information( this, 268 KMessageBox::information( this,
269 "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"); 269 "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");
270 qApp->processEvents(); 270 qApp->processEvents();
271 mView->dialogManager()->showSyncOptions(); 271 mView->dialogManager()->showSyncOptions();
272 } 272 }
273 273
274 //US listen for result adressed from Ka/Pi 274 //US listen for result adressed from Ka/Pi
275#ifndef DESKTOP_VERSION 275#ifndef DESKTOP_VERSION
276 connect(qApp, SIGNAL (appMessage ( const QCString &, const QByteArray & )), ExternalAppHandler::instance(), SLOT (appMessage ( const QCString &, const QByteArray & ))); 276 connect(qApp, SIGNAL (appMessage ( const QCString &, const QByteArray & )), ExternalAppHandler::instance(), SLOT (appMessage ( const QCString &, const QByteArray & )));
277#endif 277#endif
278#ifndef DESKTOP_VERSION 278#ifndef DESKTOP_VERSION
279 infrared = 0; 279 infrared = 0;
280#endif 280#endif
281 281
282 mBRdisabled = false; 282 mBRdisabled = false;
283 toggleBeamReceive(); 283 toggleBeamReceive();
284} 284}
285MainWindow::~MainWindow() 285MainWindow::~MainWindow()
286{ 286{
287 //qDebug("MainWindow::~MainWindow() "); 287 //qDebug("MainWindow::~MainWindow() ");
288 //save toolbar location 288 //save toolbar location
289 delete mCalendar; 289 delete mCalendar;
290 delete mSyncManager; 290 delete mSyncManager;
291#ifndef DESKTOP_VERSION
291 if ( infrared ) 292 if ( infrared )
292 delete infrared; 293 delete infrared;
294#endif
293 295
294 296
295} 297}
296 298
297void MainWindow::disableBR(bool b) 299void MainWindow::disableBR(bool b)
298{ 300{
301#ifndef DESKTOP_VERSION
299 if ( b ) { 302 if ( b ) {
300 if ( infrared ) { 303 if ( infrared ) {
301 toggleBeamReceive(); 304 toggleBeamReceive();
302 mBRdisabled = true; 305 mBRdisabled = true;
303 } 306 }
307 mBRdisabled = true;
304 } else { 308 } else {
305 if ( mBRdisabled ) { 309 if ( mBRdisabled ) {
306 mBRdisabled = false; 310 mBRdisabled = false;
307 toggleBeamReceive(); 311 //makes no sense,because other cal ap is probably running
312 // toggleBeamReceive();
308 } 313 }
309 } 314 }
315#endif
310 316
311} 317}
312bool MainWindow::beamReceiveEnabled() 318bool MainWindow::beamReceiveEnabled()
313{ 319{
314#ifndef DESKTOP_VERSION 320#ifndef DESKTOP_VERSION
315 return ( infrared != 0 ); 321 return ( infrared != 0 );
316#endif 322#endif
317 return false; 323 return false;
318} 324}
319 325
320void MainWindow::toggleBeamReceive() 326void MainWindow::toggleBeamReceive()
321{ 327{
322 if ( mBRdisabled ) 328 if ( mBRdisabled )
323 return; 329 return;
324#ifndef DESKTOP_VERSION 330#ifndef DESKTOP_VERSION
325 if ( infrared ) { 331 if ( infrared ) {
326 qDebug("disable BeamReceive "); 332 qDebug("disable BeamReceive ");
327 delete infrared; 333 delete infrared;
328 infrared = 0; 334 infrared = 0;
329 brAction->setOn(false); 335 brAction->setOn(false);
330 return; 336 return;
331 } 337 }
332 qDebug("enable BeamReceive "); 338 qDebug("enable BeamReceive ");
333 brAction->setOn(true); 339 brAction->setOn(true);
334 infrared = new QCopChannel("QPE/Application/datebook",this, "channel" ) ; 340 infrared = new QCopChannel("QPE/Application/datebook",this, "channel" ) ;
335 QObject::connect( infrared, SIGNAL (received ( const QCString &, const QByteArray & )),this, SLOT(recieve( const QCString&, const QByteArray& ))); 341 QObject::connect( infrared, SIGNAL (received ( const QCString &, const QByteArray & )),this, SLOT(recieve( const QCString&, const QByteArray& )));
336#endif 342#endif
337} 343}
338void MainWindow::showMaximized () 344void MainWindow::showMaximized ()
339{ 345{
340#ifndef DESKTOP_VERSION 346#ifndef DESKTOP_VERSION
341 if ( ! globalFlagBlockStartup ) 347 if ( ! globalFlagBlockStartup )
342 if ( mClosed ) 348 if ( mClosed )
343 mView->goToday(); 349 mView->goToday();
344#endif 350#endif
345 QWidget::showMaximized () ; 351 QWidget::showMaximized () ;
346 mClosed = false; 352 mClosed = false;
347} 353}
348void MainWindow::closeEvent( QCloseEvent* ce ) 354void MainWindow::closeEvent( QCloseEvent* ce )
349{ 355{
350 356
351 357
352 358
353 if ( ! KOPrefs::instance()->mAskForQuit ) { 359 if ( ! KOPrefs::instance()->mAskForQuit ) {
354 saveOnClose(); 360 saveOnClose();
355 mClosed = true; 361 mClosed = true;
356 ce->accept(); 362 ce->accept();
357 return; 363 return;
358 364
359 } 365 }
360 366
361 switch( QMessageBox::information( this, "KO/Pi", 367 switch( QMessageBox::information( this, "KO/Pi",
362 i18n("Do you really want\nto close KO/Pi?"), 368 i18n("Do you really want\nto close KO/Pi?"),
363 i18n("Close"), i18n("No"), 369 i18n("Close"), i18n("No"),
364 0, 0 ) ) { 370 0, 0 ) ) {
365 case 0: 371 case 0:
366 saveOnClose(); 372 saveOnClose();
367 mClosed = true; 373 mClosed = true;
368 ce->accept(); 374 ce->accept();
369 break; 375 break;
370 case 1: 376 case 1:
371 ce->ignore(); 377 ce->ignore();
372 break; 378 break;
373 case 2: 379 case 2:
374 380
375 default: 381 default:
376 break; 382 break;
377 } 383 }
378 384
379 385
380} 386}
381 387
382void MainWindow::recieve( const QCString& cmsg, const QByteArray& data ) 388void MainWindow::recieve( const QCString& cmsg, const QByteArray& data )
383{ 389{
384 QDataStream stream( data, IO_ReadOnly ); 390 QDataStream stream( data, IO_ReadOnly );
385 // QMessageBox::about( this, "About KOrganizer/Pi", "*" +msg +"*" ); 391 // QMessageBox::about( this, "About KOrganizer/Pi", "*" +msg +"*" );
386 //QString datamess; 392 //QString datamess;
387 //qDebug("message "); 393 //qDebug("message ");
388 qDebug("KO: QCOP message received: %s ", cmsg.data() ); 394 qDebug("KO: QCOP message received: %s ", cmsg.data() );
389 395
390 if ( cmsg == "setDocument(QString)" ) { 396 if ( cmsg == "setDocument(QString)" ) {
391 QDataStream stream( data, IO_ReadOnly ); 397 QDataStream stream( data, IO_ReadOnly );
392 QString fileName; 398 QString fileName;
393 stream >> fileName; 399 stream >> fileName;
394 //qDebug("filename %s ", fileName.latin1()); 400 //qDebug("filename %s ", fileName.latin1());
395 showMaximized(); 401 showMaximized();
396 raise(); 402 raise();
397 KOPrefs::instance()->mLastSyncedLocalFile = fileName ; 403 KOPrefs::instance()->mLastSyncedLocalFile = fileName ;
398 mSyncManager->slotSyncMenu( 1002 ); 404 mSyncManager->slotSyncMenu( 1002 );
399 return; 405 return;
400 } 406 }
401 407
402 if ( cmsg == "-writeFile" ) { 408 if ( cmsg == "-writeFile" ) {
403 // I made from the "-writeFile" an "-writeAlarm" 409 // I made from the "-writeFile" an "-writeAlarm"
404 mView->viewManager()->showWhatsNextView(); 410 mView->viewManager()->showWhatsNextView();
405 mCalendar->checkAlarmForIncidence( 0, true); 411 mCalendar->checkAlarmForIncidence( 0, true);
406 showMaximized(); 412 showMaximized();
407 raise(); 413 raise();
408 return; 414 return;
409 415
410 } 416 }
411 if ( cmsg == "-writeFileSilent" ) { 417 if ( cmsg == "-writeFileSilent" ) {
412 // I made from the "-writeFile" an "-writeAlarm" 418 // I made from the "-writeFile" an "-writeAlarm"
413 // mView->viewManager()->showWhatsNextView(); 419 // mView->viewManager()->showWhatsNextView();
414 mCalendar->checkAlarmForIncidence( 0, true); 420 mCalendar->checkAlarmForIncidence( 0, true);
415 //showMaximized(); 421 //showMaximized();
416 //raise(); 422 //raise();
417 hide(); 423 hide();
418 return; 424 return;
419 } 425 }
420 if ( cmsg == "-newCountdown" ) { 426 if ( cmsg == "-newCountdown" ) {
421 qDebug("newCountdown "); 427 qDebug("newCountdown ");
422 428
423 } 429 }
424 QString msg ; 430 QString msg ;
425 QString allmsg = cmsg; 431 QString allmsg = cmsg;
426 while ( allmsg.length() > 0 ) { 432 while ( allmsg.length() > 0 ) {
427 int nextC = allmsg.find( "-", 1 ); 433 int nextC = allmsg.find( "-", 1 );
428 if ( nextC == -1 ) { 434 if ( nextC == -1 ) {
429 msg = allmsg; 435 msg = allmsg;
430 allmsg = ""; 436 allmsg = "";
431 } else{ 437 } else{
432 msg = allmsg.left( nextC ); 438 msg = allmsg.left( nextC );
433 allmsg = allmsg.mid( nextC, allmsg.length()-nextC ); 439 allmsg = allmsg.mid( nextC, allmsg.length()-nextC );
434 } 440 }
435 //qDebug("msg: %s all: %s ", msg.latin1(), allmsg.latin1() ); 441 //qDebug("msg: %s all: %s ", msg.latin1(), allmsg.latin1() );
436 if ( msg == "-newEvent" ) { 442 if ( msg == "-newEvent" ) {
437 mView->newEvent(); 443 mView->newEvent();
438 } 444 }
439 if ( msg == "-newTodo" ) { 445 if ( msg == "-newTodo" ) {
440 mView->newTodo(); 446 mView->newTodo();
441 447
442 } 448 }
443 if ( msg == "-showWN" ) { 449 if ( msg == "-showWN" ) {
444 mView->viewManager()->showWhatsNextView(); 450 mView->viewManager()->showWhatsNextView();
445 } 451 }
446 if ( msg == "-showTodo" ) { 452 if ( msg == "-showTodo" ) {
447 mView->viewManager()->showTodoView(); 453 mView->viewManager()->showTodoView();
448 } 454 }
449 if ( msg == "-showList" ) { 455 if ( msg == "-showList" ) {
450 mView->viewManager()->showListView(); 456 mView->viewManager()->showListView();
451 } 457 }
452 else if ( msg == "-showDay" ) { 458 else if ( msg == "-showDay" ) {
453 mView->viewManager()->showDayView(); 459 mView->viewManager()->showDayView();
454 } 460 }
455 else if ( msg == "-showWWeek" ) { 461 else if ( msg == "-showWWeek" ) {
456 mView->viewManager()->showWorkWeekView(); 462 mView->viewManager()->showWorkWeekView();
457 } 463 }
458 else if ( msg == "-ringSync" ) { 464 else if ( msg == "-ringSync" ) {
459 mSyncManager->multiSync( false ); 465 mSyncManager->multiSync( false );
460 } 466 }
461 else if ( msg == "-showWeek" ) { 467 else if ( msg == "-showWeek" ) {
462 mView->viewManager()->showWeekView(); 468 mView->viewManager()->showWeekView();
463 } 469 }
464 else if ( msg == "-showTodo" ) { 470 else if ( msg == "-showTodo" ) {
465 mView->viewManager()->showTodoView(); 471 mView->viewManager()->showTodoView();
466 } 472 }
467 else if ( msg == "-showJournal" ) { 473 else if ( msg == "-showJournal" ) {
468 mView->dateNavigator()->selectDates( 1 ); 474 mView->dateNavigator()->selectDates( 1 );
469 mView->dateNavigator()->selectToday(); 475 mView->dateNavigator()->selectToday();
470 mView->viewManager()->showJournalView(); 476 mView->viewManager()->showJournalView();
471 } 477 }
472 else if ( msg == "-showKO" ) { 478 else if ( msg == "-showKO" ) {
473 mView->viewManager()->showNextXView(); 479 mView->viewManager()->showNextXView();
474 } 480 }
475 else if ( msg == "-showWNext" || msg == "nextView()" ) { 481 else if ( msg == "-showWNext" || msg == "nextView()" ) {
476 mView->viewManager()->showWhatsNextView(); 482 mView->viewManager()->showWhatsNextView();
477 } 483 }
478 else if ( msg == "-showNextXView" ) { 484 else if ( msg == "-showNextXView" ) {
479 mView->viewManager()->showNextXView(); 485 mView->viewManager()->showNextXView();
480 } 486 }
481 487
482 488
483 } 489 }
484 490
485 showMaximized(); 491 showMaximized();
486 raise(); 492 raise();
487} 493}
488 494
489QPixmap MainWindow::loadPixmap( QString name ) 495QPixmap MainWindow::loadPixmap( QString name )
490{ 496{
491 return SmallIcon( name ); 497 return SmallIcon( name );
492 498
493} 499}
494void MainWindow::initActions() 500void MainWindow::initActions()
495{ 501{
496 //KOPrefs::instance()->mShowFullMenu 502 //KOPrefs::instance()->mShowFullMenu
497 iconToolBar->clear(); 503 iconToolBar->clear();
498 KOPrefs *p = KOPrefs::instance(); 504 KOPrefs *p = KOPrefs::instance();
499 //QPEMenuBar *menuBar1;// = new QPEMenuBar( iconToolBar ); 505 //QPEMenuBar *menuBar1;// = new QPEMenuBar( iconToolBar );
500 506
501 QPopupMenu *viewMenu = new QPopupMenu( this ); 507 QPopupMenu *viewMenu = new QPopupMenu( this );
502 QPopupMenu *actionMenu = new QPopupMenu( this ); 508 QPopupMenu *actionMenu = new QPopupMenu( this );
503 QPopupMenu *importMenu = new QPopupMenu( this ); 509 QPopupMenu *importMenu = new QPopupMenu( this );
504 selectFilterMenu = new QPopupMenu( this ); 510 selectFilterMenu = new QPopupMenu( this );
505 selectFilterMenu->setCheckable( true ); 511 selectFilterMenu->setCheckable( true );
506 syncMenu = new QPopupMenu( this ); 512 syncMenu = new QPopupMenu( this );
507 configureAgendaMenu = new QPopupMenu( this ); 513 configureAgendaMenu = new QPopupMenu( this );
508 configureToolBarMenu = new QPopupMenu( this ); 514 configureToolBarMenu = new QPopupMenu( this );
509 QPopupMenu *helpMenu = new QPopupMenu( this ); 515 QPopupMenu *helpMenu = new QPopupMenu( this );
510 if ( KOPrefs::instance()->mShowFullMenu ) { 516 if ( KOPrefs::instance()->mShowFullMenu ) {
511 QMenuBar *menuBar1; 517 QMenuBar *menuBar1;
512 menuBar1 = menuBar(); 518 menuBar1 = menuBar();
513 menuBar1->insertItem( i18n("File"), importMenu ); 519 menuBar1->insertItem( i18n("File"), importMenu );
514 menuBar1->insertItem( i18n("View"), viewMenu ); 520 menuBar1->insertItem( i18n("View"), viewMenu );
515 menuBar1->insertItem( i18n("Actions"), actionMenu ); 521 menuBar1->insertItem( i18n("Actions"), actionMenu );
516 menuBar1->insertItem( i18n("Synchronize"), syncMenu ); 522 menuBar1->insertItem( i18n("Synchronize"), syncMenu );
517 menuBar1->insertItem( i18n("AgendaSize"),configureAgendaMenu ); 523 menuBar1->insertItem( i18n("AgendaSize"),configureAgendaMenu );
518 //menuBar1->insertItem( i18n("Toolbar"),configureToolBarMenu ); 524 //menuBar1->insertItem( i18n("Toolbar"),configureToolBarMenu );
519 menuBar1->insertItem( i18n("Filter"),selectFilterMenu ); 525 menuBar1->insertItem( i18n("Filter"),selectFilterMenu );
520 menuBar1->insertItem( i18n("Help"), helpMenu ); 526 menuBar1->insertItem( i18n("Help"), helpMenu );
521 } else { 527 } else {
522 QPEMenuBar *menuBar1; 528 QPEMenuBar *menuBar1;
523 menuBar1 = new QPEMenuBar( iconToolBar ); 529 menuBar1 = new QPEMenuBar( iconToolBar );
524 QPopupMenu *menuBar = new QPopupMenu( this ); 530 QPopupMenu *menuBar = new QPopupMenu( this );
525 menuBar1->insertItem( i18n("ME"), menuBar); 531 menuBar1->insertItem( i18n("ME"), menuBar);
526 menuBar->insertItem( i18n("File"), importMenu ); 532 menuBar->insertItem( i18n("File"), importMenu );
527 menuBar->insertItem( i18n("View"), viewMenu ); 533 menuBar->insertItem( i18n("View"), viewMenu );
528 menuBar->insertItem( i18n("Actions"), actionMenu ); 534 menuBar->insertItem( i18n("Actions"), actionMenu );
529 menuBar->insertItem( i18n("Synchronize"), syncMenu ); 535 menuBar->insertItem( i18n("Synchronize"), syncMenu );
530 menuBar->insertItem( i18n("AgendaSize"),configureAgendaMenu ); 536 menuBar->insertItem( i18n("AgendaSize"),configureAgendaMenu );
531 menuBar->insertItem( i18n("Toolbar"),configureToolBarMenu ); 537 menuBar->insertItem( i18n("Toolbar"),configureToolBarMenu );
532 menuBar->insertItem( i18n("Filter"),selectFilterMenu ); 538 menuBar->insertItem( i18n("Filter"),selectFilterMenu );
533 menuBar->insertItem( i18n("Help"), helpMenu ); 539 menuBar->insertItem( i18n("Help"), helpMenu );
534 //menuBar1->setMaximumWidth( menuBar1->sizeHint().width() ); 540 //menuBar1->setMaximumWidth( menuBar1->sizeHint().width() );
535 menuBar1->setMaximumSize( menuBar1->sizeHint( )); 541 menuBar1->setMaximumSize( menuBar1->sizeHint( ));
536 } 542 }
537 connect ( selectFilterMenu, SIGNAL( activated ( int ) ), this, SLOT (selectFilter( int ) ) ); 543 connect ( selectFilterMenu, SIGNAL( activated ( int ) ), this, SLOT (selectFilter( int ) ) );
538 connect ( selectFilterMenu, SIGNAL( aboutToShow () ), this, SLOT (fillFilterMenu() ) ); 544 connect ( selectFilterMenu, SIGNAL( aboutToShow () ), this, SLOT (fillFilterMenu() ) );
539 545
540 // ****************** 546 // ******************
541 QAction *action; 547 QAction *action;
542 QIconSet icon; 548 QIconSet icon;
543 // QPopupMenu *configureMenu= new QPopupMenu( menuBar ); 549 // QPopupMenu *configureMenu= new QPopupMenu( menuBar );
544 configureToolBarMenu->setCheckable( true ); 550 configureToolBarMenu->setCheckable( true );
545 551
546 QString pathString = ""; 552 QString pathString = "";
547 if ( !p->mToolBarMiniIcons ) { 553 if ( !p->mToolBarMiniIcons ) {
548 if ( QApplication::desktop()->width() < 480 ) 554 if ( QApplication::desktop()->width() < 480 )
549 pathString += "icons16/"; 555 pathString += "icons16/";
550 } else 556 } else
551 pathString += "iconsmini/"; 557 pathString += "iconsmini/";
552 configureAgendaMenu->setCheckable( true ); 558 configureAgendaMenu->setCheckable( true );
553 configureAgendaMenu->insertItem(i18n("Toggle Allday"), 1 ); 559 configureAgendaMenu->insertItem(i18n("Toggle Allday"), 1 );
554 configureAgendaMenu->insertSeparator(); 560 configureAgendaMenu->insertSeparator();
555 configureAgendaMenu->insertItem(i18n("Tiny"), 4 ); 561 configureAgendaMenu->insertItem(i18n("Tiny"), 4 );
556 configureAgendaMenu->insertItem(i18n("Small"), 6 ); 562 configureAgendaMenu->insertItem(i18n("Small"), 6 );
557 configureAgendaMenu->insertItem(i18n("Medium"), 8 ); 563 configureAgendaMenu->insertItem(i18n("Medium"), 8 );
558 configureAgendaMenu->insertItem(i18n("Normal"), 10 ); 564 configureAgendaMenu->insertItem(i18n("Normal"), 10 );
559 configureAgendaMenu->insertItem(i18n("Large"), 12 ); 565 configureAgendaMenu->insertItem(i18n("Large"), 12 );
560 configureAgendaMenu->insertItem(i18n("Big"), 14 ); 566 configureAgendaMenu->insertItem(i18n("Big"), 14 );
561 configureAgendaMenu->insertItem(i18n("Bigger"), 16 ); 567 configureAgendaMenu->insertItem(i18n("Bigger"), 16 );
562 configureAgendaMenu->insertItem(i18n("Biggest"), 18 ); 568 configureAgendaMenu->insertItem(i18n("Biggest"), 18 );
563 //configureMenu->insertItem( "AgendaSize",configureAgendaMenu ); 569 //configureMenu->insertItem( "AgendaSize",configureAgendaMenu );
564 570
565 icon = loadPixmap( pathString + "configure" ); 571 icon = loadPixmap( pathString + "configure" );
566 action = new QAction( i18n("Configure"),icon, i18n("Configure..."), 0, this ); 572 action = new QAction( i18n("Configure"),icon, i18n("Configure..."), 0, this );
567 action->addTo( actionMenu ); 573 action->addTo( actionMenu );
568 connect( action, SIGNAL( activated() ), 574 connect( action, SIGNAL( activated() ),
569 mView, SLOT( edit_options() ) ); 575 mView, SLOT( edit_options() ) );
570 actionMenu->insertSeparator(); 576 actionMenu->insertSeparator();
571 icon = loadPixmap( pathString + "newevent" ); 577 icon = loadPixmap( pathString + "newevent" );
572 configureToolBarMenu->insertItem(i18n("Stretched TB"), 5 ); 578 configureToolBarMenu->insertItem(i18n("Stretched TB"), 5 );
573 configureToolBarMenu->insertSeparator(); 579 configureToolBarMenu->insertSeparator();
574 configureToolBarMenu->insertItem(icon, i18n("New Event..."), 10 ); 580 configureToolBarMenu->insertItem(icon, i18n("New Event..."), 10 );
575 QAction* ne_action = new QAction( i18n("New Event..."), icon, i18n("New Event..."), 0, this ); 581 QAction* ne_action = new QAction( i18n("New Event..."), icon, i18n("New Event..."), 0, this );
576 ne_action->addTo( actionMenu ); 582 ne_action->addTo( actionMenu );
577 connect( ne_action, SIGNAL( activated() ), 583 connect( ne_action, SIGNAL( activated() ),
578 mView, SLOT( newEvent() ) ); 584 mView, SLOT( newEvent() ) );
579 icon = loadPixmap( pathString + "newtodo" ); 585 icon = loadPixmap( pathString + "newtodo" );
580 configureToolBarMenu->insertItem(icon, i18n("New Todo..."), 20 ); 586 configureToolBarMenu->insertItem(icon, i18n("New Todo..."), 20 );
581 QAction* nt_action = new QAction( i18n("New Todo..."), icon, i18n("New Todo..."), 0, this ); 587 QAction* nt_action = new QAction( i18n("New Todo..."), icon, i18n("New Todo..."), 0, this );
582 nt_action->addTo( actionMenu ); 588 nt_action->addTo( actionMenu );
583 connect( nt_action, SIGNAL( activated() ), 589 connect( nt_action, SIGNAL( activated() ),
584 mView, SLOT( newTodo() ) ); 590 mView, SLOT( newTodo() ) );
585 icon = loadPixmap( pathString + "navi" ); 591 icon = loadPixmap( pathString + "navi" );
586 action = new QAction( i18n("Toggle DateNavigator"), icon, i18n("Toggle DateNavigator"), 0, this ); 592 action = new QAction( i18n("Toggle DateNavigator"), icon, i18n("Toggle DateNavigator"), 0, this );
587 action->addTo( viewMenu ); 593 action->addTo( viewMenu );
588 connect( action, SIGNAL( activated() ), 594 connect( action, SIGNAL( activated() ),
589 mView, SLOT( toggleDateNavigatorWidget() ) ); 595 mView, SLOT( toggleDateNavigatorWidget() ) );
590 icon = loadPixmap( pathString + "filter" ); 596 icon = loadPixmap( pathString + "filter" );
591 action = new QAction( i18n("Toggle FilterView"), icon, i18n("Toggle FilterView"), 0, this ); 597 action = new QAction( i18n("Toggle FilterView"), icon, i18n("Toggle FilterView"), 0, this );
592 action->addTo( viewMenu ); 598 action->addTo( viewMenu );
593 connect( action, SIGNAL( activated() ), 599 connect( action, SIGNAL( activated() ),
594 mView, SLOT( toggleFilter() ) ); 600 mView, SLOT( toggleFilter() ) );
595 601
596 602
597 viewMenu->insertSeparator(); 603 viewMenu->insertSeparator();
598 icon = loadPixmap( pathString + "picker" ); 604 icon = loadPixmap( pathString + "picker" );
599 action = new QAction( i18n("Date Picker"), icon, i18n("Date Picker"), 0, this ); 605 action = new QAction( i18n("Date Picker"), icon, i18n("Date Picker"), 0, this );
600 action->addTo( viewMenu ); 606 action->addTo( viewMenu );
601 connect( action, SIGNAL( activated() ), 607 connect( action, SIGNAL( activated() ),
602 mView, SLOT( showDatePicker() ) ); 608 mView, SLOT( showDatePicker() ) );
603 action->addTo( iconToolBar ); 609 action->addTo( iconToolBar );
604 viewMenu->insertSeparator(); 610 viewMenu->insertSeparator();
605 icon = loadPixmap( pathString + "list" ); 611 icon = loadPixmap( pathString + "list" );
606 configureToolBarMenu->insertItem(icon, i18n("List View"), 30 ); 612 configureToolBarMenu->insertItem(icon, i18n("List View"), 30 );
607 QAction* showlist_action = new QAction( i18n("List View"), icon, i18n("List View"), 0, this ); 613 QAction* showlist_action = new QAction( i18n("List View"), icon, i18n("List View"), 0, this );
608 showlist_action->addTo( viewMenu ); 614 showlist_action->addTo( viewMenu );
609 connect( showlist_action, SIGNAL( activated() ), 615 connect( showlist_action, SIGNAL( activated() ),
610 mView->viewManager(), SLOT( showListView() ) ); 616 mView->viewManager(), SLOT( showListView() ) );
611 617
612 618
613 icon = loadPixmap( pathString + "day" ); 619 icon = loadPixmap( pathString + "day" );
614 configureToolBarMenu->insertItem(icon, i18n("Day View"), 40 ); 620 configureToolBarMenu->insertItem(icon, i18n("Day View"), 40 );
615 QAction* day1_action = new QAction( i18n("Day View"), icon, i18n("Day View"), 0, this ); 621 QAction* day1_action = new QAction( i18n("Day View"), icon, i18n("Day View"), 0, this );
616 day1_action->addTo( viewMenu ); 622 day1_action->addTo( viewMenu );
617 // action->addTo( toolBar ); 623 // action->addTo( toolBar );
618 connect( day1_action, SIGNAL( activated() ), 624 connect( day1_action, SIGNAL( activated() ),
619 mView->viewManager(), SLOT( showDayView() ) ); 625 mView->viewManager(), SLOT( showDayView() ) );
620 626
621 icon = loadPixmap( pathString + "workweek" ); 627 icon = loadPixmap( pathString + "workweek" );
622 configureToolBarMenu->insertItem(icon, i18n("Work Week"), 50 ); 628 configureToolBarMenu->insertItem(icon, i18n("Work Week"), 50 );
623 QAction* day5_action = new QAction( i18n("Work Week"), icon, i18n("Work Week"), 0, this ); 629 QAction* day5_action = new QAction( i18n("Work Week"), icon, i18n("Work Week"), 0, this );
624 day5_action->addTo( viewMenu ); 630 day5_action->addTo( viewMenu );
625 connect( day5_action, SIGNAL( activated() ), 631 connect( day5_action, SIGNAL( activated() ),
626 mView->viewManager(), SLOT( showWorkWeekView() ) ); 632 mView->viewManager(), SLOT( showWorkWeekView() ) );
627 633
628 icon = loadPixmap( pathString + "week" ); 634 icon = loadPixmap( pathString + "week" );
629 configureToolBarMenu->insertItem(icon, i18n("Week"), 60 ); 635 configureToolBarMenu->insertItem(icon, i18n("Week"), 60 );
630 QAction* day7_action = new QAction( i18n("Week"), icon, i18n("Week"), 0, this ); 636 QAction* day7_action = new QAction( i18n("Week"), icon, i18n("Week"), 0, this );
631 day7_action->addTo( viewMenu ); 637 day7_action->addTo( viewMenu );
632 connect( day7_action, SIGNAL( activated() ), 638 connect( day7_action, SIGNAL( activated() ),
633 mView->viewManager(), SLOT( showWeekView() ) ); 639 mView->viewManager(), SLOT( showWeekView() ) );
634 640
635 icon = loadPixmap( pathString + "month" ); 641 icon = loadPixmap( pathString + "month" );
636 configureToolBarMenu->insertItem(icon, i18n("Month"), 70 ); 642 configureToolBarMenu->insertItem(icon, i18n("Month"), 70 );
637 QAction* month_action = new QAction( i18n("Month"), icon, i18n("Month"), 0, this ); 643 QAction* month_action = new QAction( i18n("Month"), icon, i18n("Month"), 0, this );
638 month_action->addTo( viewMenu ); 644 month_action->addTo( viewMenu );
639 connect( month_action, SIGNAL( activated() ), 645 connect( month_action, SIGNAL( activated() ),
640 mView->viewManager(), SLOT( showMonthView() ) ); 646 mView->viewManager(), SLOT( showMonthView() ) );
641 647
642 icon = loadPixmap( pathString + "todo" ); 648 icon = loadPixmap( pathString + "todo" );
643 configureToolBarMenu->insertItem(icon, i18n("Todo View"), 80 ); 649 configureToolBarMenu->insertItem(icon, i18n("Todo View"), 80 );
644 QAction* todoview_action = new QAction( i18n("Todo View"), icon, i18n("Todo View"), 0, this ); 650 QAction* todoview_action = new QAction( i18n("Todo View"), icon, i18n("Todo View"), 0, this );
645 todoview_action->addTo( viewMenu ); 651 todoview_action->addTo( viewMenu );
646 connect( todoview_action, SIGNAL( activated() ), 652 connect( todoview_action, SIGNAL( activated() ),
647 mView->viewManager(), SLOT( showTodoView() ) ); 653 mView->viewManager(), SLOT( showTodoView() ) );
648 654
649 icon = loadPixmap( pathString + "journal" ); 655 icon = loadPixmap( pathString + "journal" );
650 configureToolBarMenu->insertItem(icon, i18n("Journal"), 90 ); 656 configureToolBarMenu->insertItem(icon, i18n("Journal"), 90 );
651 QAction* viewjournal_action = new QAction( i18n("Journal"), icon, i18n("Journal"), 0, this ); 657 QAction* viewjournal_action = new QAction( i18n("Journal"), icon, i18n("Journal"), 0, this );
652 viewjournal_action->addTo( viewMenu ); 658 viewjournal_action->addTo( viewMenu );
653 connect( viewjournal_action, SIGNAL( activated() ), 659 connect( viewjournal_action, SIGNAL( activated() ),
654 mView->viewManager(), SLOT( showJournalView() ) ); 660 mView->viewManager(), SLOT( showJournalView() ) );
655 661
656 icon = loadPixmap( pathString + "xdays" ); 662 icon = loadPixmap( pathString + "xdays" );
657 configureToolBarMenu->insertItem(icon, i18n("Next days"), 100,4 ); 663 configureToolBarMenu->insertItem(icon, i18n("Next days"), 100,4 );
658 QAction* xdays_action = new QAction( i18n("Next days"), icon, i18n("Next days"), 0, this ); 664 QAction* xdays_action = new QAction( i18n("Next days"), icon, i18n("Next days"), 0, this );
659 xdays_action->addTo( viewMenu ); 665 xdays_action->addTo( viewMenu );
660 connect( xdays_action, SIGNAL( activated() ), 666 connect( xdays_action, SIGNAL( activated() ),
661 mView->viewManager(), SLOT( showNextXView() ) ); 667 mView->viewManager(), SLOT( showNextXView() ) );
662 668
663 icon = loadPixmap( pathString + "whatsnext" ); 669 icon = loadPixmap( pathString + "whatsnext" );
664 configureToolBarMenu->insertItem(icon, i18n("What's Next"), 110, 4 ); 670 configureToolBarMenu->insertItem(icon, i18n("What's Next"), 110, 4 );
665 QAction* whatsnext_action = new QAction( i18n("What's Next"), icon, i18n("What's Next"), 0, this ); 671 QAction* whatsnext_action = new QAction( i18n("What's Next"), icon, i18n("What's Next"), 0, this );
666 whatsnext_action->addTo( viewMenu ); 672 whatsnext_action->addTo( viewMenu );
667 connect( whatsnext_action, SIGNAL( activated() ), 673 connect( whatsnext_action, SIGNAL( activated() ),
668 mView->viewManager(), SLOT( showWhatsNextView() ) ); 674 mView->viewManager(), SLOT( showWhatsNextView() ) );
669 675
670#if 0 676#if 0
671 action = new QAction( "view_timespan", "Time Span", 0, this ); 677 action = new QAction( "view_timespan", "Time Span", 0, this );
672 action->addTo( viewMenu ); 678 action->addTo( viewMenu );
673 connect( action, SIGNAL( activated() ), 679 connect( action, SIGNAL( activated() ),
674 mView->viewManager(), SLOT( showTimeSpanView() ) ); 680 mView->viewManager(), SLOT( showTimeSpanView() ) );
675#endif 681#endif
676 682
677 mNewSubTodoAction = new QAction( "new_subtodo", i18n("New Sub-Todo..."), 0, 683 mNewSubTodoAction = new QAction( "new_subtodo", i18n("New Sub-Todo..."), 0,
678 this ); 684 this );
679 mNewSubTodoAction->addTo( actionMenu ); 685 mNewSubTodoAction->addTo( actionMenu );
680 connect( mNewSubTodoAction, SIGNAL( activated() ), 686 connect( mNewSubTodoAction, SIGNAL( activated() ),
681 mView, SLOT( newSubTodo() ) ); 687 mView, SLOT( newSubTodo() ) );
682 688
683 actionMenu->insertSeparator(); 689 actionMenu->insertSeparator();
684 690
685 mShowAction = new QAction( "show_incidence", i18n("Show..."), 0, this ); 691 mShowAction = new QAction( "show_incidence", i18n("Show..."), 0, this );
686 mShowAction->addTo( actionMenu ); 692 mShowAction->addTo( actionMenu );
687 connect( mShowAction, SIGNAL( activated() ), 693 connect( mShowAction, SIGNAL( activated() ),
688 mView, SLOT( showIncidence() ) ); 694 mView, SLOT( showIncidence() ) );
689 695
690 mEditAction = new QAction( "edit_incidence", i18n("Edit..."), 0, this ); 696 mEditAction = new QAction( "edit_incidence", i18n("Edit..."), 0, this );
691 mEditAction->addTo( actionMenu ); 697 mEditAction->addTo( actionMenu );
692 connect( mEditAction, SIGNAL( activated() ), 698 connect( mEditAction, SIGNAL( activated() ),
693 mView, SLOT( editIncidence() ) ); 699 mView, SLOT( editIncidence() ) );
694 700
695 mDeleteAction = new QAction( "delete_incidence", i18n("Delete..."), 0, this ); 701 mDeleteAction = new QAction( "delete_incidence", i18n("Delete..."), 0, this );
696 mDeleteAction->addTo( actionMenu ); 702 mDeleteAction->addTo( actionMenu );
697 connect( mDeleteAction, SIGNAL( activated() ), 703 connect( mDeleteAction, SIGNAL( activated() ),
698 mView, SLOT( deleteIncidence() ) ); 704 mView, SLOT( deleteIncidence() ) );
699 705
700 706
701 mCloneAction = new QAction( "clone_incidence", i18n("Clone..."), 0, this ); 707 mCloneAction = new QAction( "clone_incidence", i18n("Clone..."), 0, this );
702 mCloneAction->addTo( actionMenu ); 708 mCloneAction->addTo( actionMenu );
703 connect( mCloneAction, SIGNAL( activated() ), 709 connect( mCloneAction, SIGNAL( activated() ),
704 mView, SLOT( cloneIncidence() ) ); 710 mView, SLOT( cloneIncidence() ) );
705 mMoveAction = new QAction( "Move_incidence", i18n("Move..."), 0, this ); 711 mMoveAction = new QAction( "Move_incidence", i18n("Move..."), 0, this );
706 mMoveAction->addTo( actionMenu ); 712 mMoveAction->addTo( actionMenu );
707 connect( mMoveAction, SIGNAL( activated() ), 713 connect( mMoveAction, SIGNAL( activated() ),
708 mView, SLOT( moveIncidence() ) ); 714 mView, SLOT( moveIncidence() ) );
709 mBeamAction = new QAction( "Beam_incidence", i18n("Beam..."), 0, this ); 715 mBeamAction = new QAction( "Beam_incidence", i18n("Beam..."), 0, this );
710 mBeamAction->addTo( actionMenu ); 716 mBeamAction->addTo( actionMenu );
711 connect( mBeamAction, SIGNAL( activated() ), 717 connect( mBeamAction, SIGNAL( activated() ),
712 mView, SLOT( beamIncidence() ) ); 718 mView, SLOT( beamIncidence() ) );
713 mCancelAction = new QAction( "Cancel_incidence", i18n("Toggle Cancel"), 0, this ); 719 mCancelAction = new QAction( "Cancel_incidence", i18n("Toggle Cancel"), 0, this );
714 mCancelAction->addTo( actionMenu ); 720 mCancelAction->addTo( actionMenu );
715 connect( mCancelAction, SIGNAL( activated() ), 721 connect( mCancelAction, SIGNAL( activated() ),
716 mView, SLOT( toggleCancelIncidence() ) ); 722 mView, SLOT( toggleCancelIncidence() ) );
717 723
718 actionMenu->insertSeparator(); 724 actionMenu->insertSeparator();
719 725
720 action = new QAction( "purge_completed", i18n("Purge Completed"), 0, 726 action = new QAction( "purge_completed", i18n("Purge Completed"), 0,
721 this ); 727 this );
722 action->addTo( actionMenu ); 728 action->addTo( actionMenu );
723 connect( action, SIGNAL( activated() ), mView, SLOT( purgeCompleted() ) ); 729 connect( action, SIGNAL( activated() ), mView, SLOT( purgeCompleted() ) );
724 730
725 icon = loadPixmap( pathString + "search" ); 731 icon = loadPixmap( pathString + "search" );
726 QAction* search_action = new QAction( i18n("Search"), icon, i18n("Search..."), 0, this ); 732 QAction* search_action = new QAction( i18n("Search"), icon, i18n("Search..."), 0, this );
727 configureToolBarMenu->insertItem(icon, i18n("Search"), 120 , 4); 733 configureToolBarMenu->insertItem(icon, i18n("Search"), 120 , 4);
728 search_action->addTo( actionMenu ); 734 search_action->addTo( actionMenu );
729 connect( search_action, SIGNAL( activated() ), 735 connect( search_action, SIGNAL( activated() ),
730 mView->dialogManager(), SLOT( showSearchDialog() ) ); 736 mView->dialogManager(), SLOT( showSearchDialog() ) );
731 737
732 icon = loadPixmap( pathString + "today" ); 738 icon = loadPixmap( pathString + "today" );
733 configureToolBarMenu->insertItem(icon, i18n("Go to Today"), 130); 739 configureToolBarMenu->insertItem(icon, i18n("Go to Today"), 130);
734 QAction* today_action = new QAction( i18n("Go to Today"), icon, i18n("Go to Today"), 0, this ); 740 QAction* today_action = new QAction( i18n("Go to Today"), icon, i18n("Go to Today"), 0, this );
735 today_action->addTo( actionMenu ); 741 today_action->addTo( actionMenu );
736 connect( today_action, SIGNAL( activated() ), 742 connect( today_action, SIGNAL( activated() ),
737 mView, SLOT( goToday() ) ); 743 mView, SLOT( goToday() ) );
738 744
739 if ( KOPrefs::instance()->mShowFullMenu ) { 745 if ( KOPrefs::instance()->mShowFullMenu ) {
740 actionMenu->insertSeparator(); 746 actionMenu->insertSeparator();
741 actionMenu->insertItem( i18n("Configure Toolbar"),configureToolBarMenu ); 747 actionMenu->insertItem( i18n("Configure Toolbar"),configureToolBarMenu );
742 748
743 } 749 }
744 // actionMenu->insertSeparator(); 750 // actionMenu->insertSeparator();
745 action = new QAction( "import_qtopia", i18n("Import (*.ics/*.vcs) file"), 0, 751 action = new QAction( "import_qtopia", i18n("Import (*.ics/*.vcs) file"), 0,
746 this ); 752 this );
747 action->addTo( importMenu ); 753 action->addTo( importMenu );
748 connect( action, SIGNAL( activated() ), SLOT( importIcal() ) ); 754 connect( action, SIGNAL( activated() ), SLOT( importIcal() ) );
749 action = new QAction( "import_quick", i18n("Import last file"), 0, 755 action = new QAction( "import_quick", i18n("Import last file"), 0,
750 this ); 756 this );
751 action->addTo( importMenu ); 757 action->addTo( importMenu );
752 connect( action, SIGNAL( activated() ), SLOT( quickImportIcal() ) ); 758 connect( action, SIGNAL( activated() ), SLOT( quickImportIcal() ) );
753 importMenu->insertSeparator(); 759 importMenu->insertSeparator();
754 action = new QAction( "import_bday", i18n("Import Birthdays (KA/Pi)"), 0, 760 action = new QAction( "import_bday", i18n("Import Birthdays (KA/Pi)"), 0,
755 this ); 761 this );
756 action->addTo( importMenu ); 762 action->addTo( importMenu );
757 connect( action, SIGNAL( activated() ), SLOT( importBday() ) ); 763 connect( action, SIGNAL( activated() ), SLOT( importBday() ) );
758#ifndef DESKTOP_VERSION 764#ifndef DESKTOP_VERSION
759 importMenu->insertSeparator(); 765 importMenu->insertSeparator();
760 action = new QAction( "import_qtopia", i18n("Import Opie/Qtopia Cal."), 0, 766 action = new QAction( "import_qtopia", i18n("Import Opie/Qtopia Cal."), 0,
761 this ); 767 this );
762 action->addTo( importMenu ); 768 action->addTo( importMenu );
763 connect( action, SIGNAL( activated() ), SLOT( importQtopia() ) ); 769 connect( action, SIGNAL( activated() ), SLOT( importQtopia() ) );
764#else 770#else
765#ifdef _WIN32_ 771#ifdef _WIN32_
766 importMenu->insertSeparator(); 772 importMenu->insertSeparator();
767 action = new QAction( "import_ol", i18n("Import from OL"), 0, 773 action = new QAction( "import_ol", i18n("Import from OL"), 0,
768 this ); 774 this );
769 action->addTo( importMenu ); 775 action->addTo( importMenu );
770 connect( action, SIGNAL( activated() ), SLOT( importOL() ) ); 776 connect( action, SIGNAL( activated() ), SLOT( importOL() ) );
771#endif 777#endif
772#endif 778#endif
773 779
774 importMenu->insertSeparator(); 780 importMenu->insertSeparator();
775 action = new QAction( "load_cal", i18n("Load Calendar Backup"), 0, 781 action = new QAction( "load_cal", i18n("Load Calendar Backup"), 0,
776 this ); 782 this );
777 action->addTo( importMenu ); 783 action->addTo( importMenu );
778 connect( action, SIGNAL( activated() ), SLOT( loadCalendar() ) ); 784 connect( action, SIGNAL( activated() ), SLOT( loadCalendar() ) );
779 785
780 action = new QAction( "save_cal", i18n("Save Calendar Backup"), 0, 786 action = new QAction( "save_cal", i18n("Save Calendar Backup"), 0,
781 this ); 787 this );
782 action->addTo( importMenu ); 788 action->addTo( importMenu );
783 connect( action, SIGNAL( activated() ), SLOT( saveCalendar() ) ); 789 connect( action, SIGNAL( activated() ), SLOT( saveCalendar() ) );
784 790
785 importMenu->insertSeparator(); 791 importMenu->insertSeparator();
786 action = new QAction( "import_qtopia", i18n("Export VCalendar"), 0, 792 action = new QAction( "import_qtopia", i18n("Export VCalendar"), 0,
787 this ); 793 this );
788 action->addTo( importMenu ); connect( action, SIGNAL( activated() ), SLOT( exportVCalendar() ) ); 794 action->addTo( importMenu ); connect( action, SIGNAL( activated() ), SLOT( exportVCalendar() ) );
789 795
790 796
791 //LR 797 //LR
792 QPopupMenu *ex2phone = new QPopupMenu( this ); 798 QPopupMenu *ex2phone = new QPopupMenu( this );
793 ex2phone->insertItem(i18n("Complete calendar..."), 1 ); 799 ex2phone->insertItem(i18n("Complete calendar..."), 1 );
794 ex2phone->insertItem(i18n("Filtered calendar..."), 2 ); 800 ex2phone->insertItem(i18n("Filtered calendar..."), 2 );
795 connect( ex2phone, SIGNAL( activated(int) ), this, SLOT( exportToPhone( int)) ); 801 connect( ex2phone, SIGNAL( activated(int) ), this, SLOT( exportToPhone( int)) );
796 importMenu->insertItem( i18n("Export to phone"), ex2phone ); 802 importMenu->insertItem( i18n("Export to phone"), ex2phone );
797 803
798 importMenu->insertSeparator(); 804 importMenu->insertSeparator();
799 action = new QAction( "manage cat", i18n("Manage new categories..."), 0, 805 action = new QAction( "manage cat", i18n("Manage new categories..."), 0,
800 this ); 806 this );
801 action->addTo( importMenu ); 807 action->addTo( importMenu );
802 connect( action, SIGNAL( activated() ), mView, SLOT( manageCategories() ) ); 808 connect( action, SIGNAL( activated() ), mView, SLOT( manageCategories() ) );
803#ifndef DESKTOP_VERSION 809#ifndef DESKTOP_VERSION
804 importMenu->insertSeparator(); 810 importMenu->insertSeparator();
805 brAction = new QAction( "beam toggle", i18n("Beam receice enabled"), 0, 811 brAction = new QAction( "beam toggle", i18n("Beam receice enabled"), 0,
806 this ); 812 this );
807 brAction->addTo( importMenu ); 813 brAction->addTo( importMenu );
808 brAction->setToggleAction (true ) ; 814 brAction->setToggleAction (true ) ;
809 connect( brAction, SIGNAL( activated() ), this, SLOT( toggleBeamReceive() ) ); 815 connect( brAction, SIGNAL( activated() ), this, SLOT( toggleBeamReceive() ) );
810 816
811 action = new QAction( "beam all", i18n("Beam complete calendar..."), 0, 817 action = new QAction( "beam all", i18n("Beam complete calendar..."), 0,
812 this ); 818 this );
813 action->addTo( importMenu ); 819 action->addTo( importMenu );
814 connect( action, SIGNAL( activated() ), mView, SLOT( beamCalendar() ) ); 820 connect( action, SIGNAL( activated() ), mView, SLOT( beamCalendar() ) );
815 821
816 action = new QAction( "beam all", i18n("Beam filtered calendar..."), 0, 822 action = new QAction( "beam all", i18n("Beam filtered calendar..."), 0,
817 this ); 823 this );
818 action->addTo( importMenu ); 824 action->addTo( importMenu );
819 connect( action, SIGNAL( activated() ), mView, SLOT( beamFilteredCalendar()) ); 825 connect( action, SIGNAL( activated() ), mView, SLOT( beamFilteredCalendar()) );
820#else 826#else
821 importMenu->insertSeparator(); 827 importMenu->insertSeparator();
822 icon = loadPixmap( pathString + "print" ); 828 icon = loadPixmap( pathString + "print" );
823 action = new QAction( i18n("Print calendar..."),icon,i18n("Print calendar..."), 0, this ); 829 action = new QAction( i18n("Print calendar..."),icon,i18n("Print calendar..."), 0, this );
824 action->addTo( importMenu ); 830 action->addTo( importMenu );
825 connect( action, SIGNAL( activated() ), 831 connect( action, SIGNAL( activated() ),
826 this, SLOT( printCal() ) ); 832 this, SLOT( printCal() ) );
827 833
828 icon = loadPixmap( pathString + "print" ); 834 icon = loadPixmap( pathString + "print" );
829 action = new QAction( i18n("Print agenda selection..."),icon,i18n("Print agenda selection..."), 0, this ); 835 action = new QAction( i18n("Print agenda selection..."),icon,i18n("Print agenda selection..."), 0, this );
830 action->addTo( importMenu ); 836 action->addTo( importMenu );
831 connect( action, SIGNAL( activated() ), 837 connect( action, SIGNAL( activated() ),
832 this, SLOT( printSel() ) ); 838 this, SLOT( printSel() ) );
833#endif 839#endif
834 importMenu->insertSeparator(); 840 importMenu->insertSeparator();
835 action = new QAction( "beam all", i18n("Save"), 0, 841 action = new QAction( "beam all", i18n("Save"), 0,
836 this ); 842 this );
837 action->addTo( importMenu ); 843 action->addTo( importMenu );
838 connect( action, SIGNAL( activated() ), this, SLOT( save() ) ); 844 connect( action, SIGNAL( activated() ), this, SLOT( save() ) );
839 action = new QAction( "beam all", i18n("Exit (+save)"), 0, 845 action = new QAction( "beam all", i18n("Exit (+save)"), 0,
840 this ); 846 this );
841 action->addTo( importMenu ); 847 action->addTo( importMenu );
842 connect( action, SIGNAL( activated() ), this, SLOT( close() ) ); 848 connect( action, SIGNAL( activated() ), this, SLOT( close() ) );
843 849
844 //menuBar->insertItem( "Configure",configureMenu ); 850 //menuBar->insertItem( "Configure",configureMenu );
845 //configureMenu->insertItem( "Toolbar",configureToolBarMenu ); 851 //configureMenu->insertItem( "Toolbar",configureToolBarMenu );
846 icon = loadPixmap( "korganizer/korganizer" ); 852 icon = loadPixmap( "korganizer/korganizer" );
847 action = new QAction( "Keys + Colors", i18n("Keys + Colors..."), 0, this ); 853 action = new QAction( "Keys + Colors", i18n("Keys + Colors..."), 0, this );
848 action->addTo( helpMenu ); 854 action->addTo( helpMenu );
849 connect( action, SIGNAL( activated() ), 855 connect( action, SIGNAL( activated() ),
850 SLOT( keyBindings() ) ); 856 SLOT( keyBindings() ) );
851 action = new QAction( "featureHowto", i18n("Features + hints..."), 0,this ); 857 action = new QAction( "featureHowto", i18n("Features + hints..."), 0,this );
852 action->addTo( helpMenu ); 858 action->addTo( helpMenu );
853 connect( action, SIGNAL( activated() ), 859 connect( action, SIGNAL( activated() ),
854 SLOT( features() ) ); 860 SLOT( features() ) );
855 action = new QAction( "Auto saving", i18n("Auto saving..."), 0, this ); 861 action = new QAction( "Auto saving", i18n("Auto saving..."), 0, this );
856 action->addTo( helpMenu ); 862 action->addTo( helpMenu );
857 connect( action, SIGNAL( activated() ), 863 connect( action, SIGNAL( activated() ),
858 SLOT( aboutAutoSaving() ) ); 864 SLOT( aboutAutoSaving() ) );
859 action = new QAction( "Problemd", i18n("Known Problems..."), 0,this ); 865 action = new QAction( "Problemd", i18n("Known Problems..."), 0,this );
860 action->addTo( helpMenu ); 866 action->addTo( helpMenu );
861 connect( action, SIGNAL( activated() ), 867 connect( action, SIGNAL( activated() ),
862 SLOT( aboutKnownBugs() ) ); 868 SLOT( aboutKnownBugs() ) );
863 action = new QAction( "Translate Howto", i18n("User translation..."), 0,this ); 869 action = new QAction( "Translate Howto", i18n("User translation..."), 0,this );
864 action->addTo( helpMenu ); 870 action->addTo( helpMenu );
865 connect( action, SIGNAL( activated() ), 871 connect( action, SIGNAL( activated() ),
866 SLOT( usertrans() ) ); 872 SLOT( usertrans() ) );
867 action = new QAction( "Sync Howto", i18n("Sync HowTo..."), 0,this ); 873 action = new QAction( "Sync Howto", i18n("Sync HowTo..."), 0,this );
868 action->addTo( helpMenu ); 874 action->addTo( helpMenu );
869 connect( action, SIGNAL( activated() ), 875 connect( action, SIGNAL( activated() ),
870 SLOT( synchowto() ) ); 876 SLOT( synchowto() ) );
871 action = new QAction( "Whats New", i18n("What's new?"), 0,this ); 877 action = new QAction( "Whats New", i18n("What's new?"), 0,this );
872 action->addTo( helpMenu ); 878 action->addTo( helpMenu );
873 connect( action, SIGNAL( activated() ), 879 connect( action, SIGNAL( activated() ),
874 SLOT( whatsNew() ) ); 880 SLOT( whatsNew() ) );
875 action = new QAction( "Frequently asked questions", i18n("FAQ..."), 0,this ); 881 action = new QAction( "Frequently asked questions", i18n("FAQ..."), 0,this );
876 action->addTo( helpMenu ); 882 action->addTo( helpMenu );
877 connect( action, SIGNAL( activated() ), 883 connect( action, SIGNAL( activated() ),
878 SLOT( faq() ) ); 884 SLOT( faq() ) );
879 885
880 886
881 action = new QAction( "about", i18n("About..."), 0, this ); 887 action = new QAction( "about", i18n("About..."), 0, this );
882 action->addTo( helpMenu ); 888 action->addTo( helpMenu );
883 connect( action, SIGNAL( activated() ), 889 connect( action, SIGNAL( activated() ),
884 SLOT( about() ) ); 890 SLOT( about() ) );
885 action = new QAction( "licence", i18n("Licence..."), 0, this ); 891 action = new QAction( "licence", i18n("Licence..."), 0, this );
886 action->addTo( helpMenu ); 892 action->addTo( helpMenu );
887 connect( action, SIGNAL( activated() ), 893 connect( action, SIGNAL( activated() ),
888 SLOT( licence() ) ); 894 SLOT( licence() ) );
889 //menuBar->insertSeparator(); 895 //menuBar->insertSeparator();
890 896
891 // ****************************************************** 897 // ******************************************************
892 // menubar icons 898 // menubar icons
893 899
894 900
895 iconToolBar->setHorizontalStretchable (true ); 901 iconToolBar->setHorizontalStretchable (true );
896 //menuBar->insertItem( iconToolBar ); 902 //menuBar->insertItem( iconToolBar );
897 //xdays_action 903 //xdays_action
898 if (p-> mShowIconNewEvent) 904 if (p-> mShowIconNewEvent)
899 ne_action->addTo( iconToolBar ); 905 ne_action->addTo( iconToolBar );
900 if (p->mShowIconNewTodo ) 906 if (p->mShowIconNewTodo )
901 nt_action->addTo( iconToolBar ); 907 nt_action->addTo( iconToolBar );
902 if (p-> mShowIconSearch) 908 if (p-> mShowIconSearch)
903 search_action->addTo( iconToolBar ); 909 search_action->addTo( iconToolBar );
904 if (p-> mShowIconNext) 910 if (p-> mShowIconNext)
905 whatsnext_action->addTo( iconToolBar ); 911 whatsnext_action->addTo( iconToolBar );
906 if (p-> mShowIconNextDays) 912 if (p-> mShowIconNextDays)
907 xdays_action->addTo( iconToolBar ); 913 xdays_action->addTo( iconToolBar );
908 if (p-> mShowIconList) 914 if (p-> mShowIconList)
909 showlist_action->addTo( iconToolBar ); 915 showlist_action->addTo( iconToolBar );
910 if (p-> mShowIconDay1) 916 if (p-> mShowIconDay1)
911 day1_action->addTo( iconToolBar ); 917 day1_action->addTo( iconToolBar );
912 if (p-> mShowIconDay5) 918 if (p-> mShowIconDay5)
913 day5_action->addTo( iconToolBar ); 919 day5_action->addTo( iconToolBar );
914 if (p-> mShowIconDay7) 920 if (p-> mShowIconDay7)
915 day7_action->addTo( iconToolBar ); 921 day7_action->addTo( iconToolBar );
916 if (p-> mShowIconMonth) 922 if (p-> mShowIconMonth)
917 month_action->addTo( iconToolBar ); 923 month_action->addTo( iconToolBar );
918 if (p-> mShowIconTodoview) 924 if (p-> mShowIconTodoview)
919 todoview_action->addTo( iconToolBar ); 925 todoview_action->addTo( iconToolBar );
920 if (p-> mShowIconJournal) 926 if (p-> mShowIconJournal)
921 viewjournal_action->addTo( iconToolBar ); 927 viewjournal_action->addTo( iconToolBar );
922 icon = loadPixmap( pathString + "2leftarrowB" ); 928 icon = loadPixmap( pathString + "2leftarrowB" );
923 configureToolBarMenu->insertItem(icon, i18n("Prev. month"), 200, 14); 929 configureToolBarMenu->insertItem(icon, i18n("Prev. month"), 200, 14);
924 if (p-> mShowIconBackFast) { 930 if (p-> mShowIconBackFast) {
925 action = new QAction( i18n("Prev. month"), icon, i18n("Prev. month"),0 , this ); 931 action = new QAction( i18n("Prev. month"), icon, i18n("Prev. month"),0 , this );
926 connect( action, SIGNAL( activated() ), 932 connect( action, SIGNAL( activated() ),
927 mView, SLOT( goPreviousMonth() ) ); 933 mView, SLOT( goPreviousMonth() ) );
928 action->addTo( iconToolBar ); 934 action->addTo( iconToolBar );
929 } 935 }
930 icon = loadPixmap( pathString + "1leftarrowB" ); 936 icon = loadPixmap( pathString + "1leftarrowB" );
931 configureToolBarMenu->insertItem(icon, i18n("Go backward"), 210,15); 937 configureToolBarMenu->insertItem(icon, i18n("Go backward"), 210,15);
932 if (p-> mShowIconBack) { 938 if (p-> mShowIconBack) {
933 action = new QAction( i18n("Go backward"), icon, i18n("Go backward"),0 , this ); 939 action = new QAction( i18n("Go backward"), icon, i18n("Go backward"),0 , this );
934 connect( action, SIGNAL( activated() ), 940 connect( action, SIGNAL( activated() ),
935 mView, SLOT( goPrevious() ) ); 941 mView, SLOT( goPrevious() ) );
936 action->addTo( iconToolBar ); 942 action->addTo( iconToolBar );
937 } 943 }
938 if (p-> mShowIconToday) 944 if (p-> mShowIconToday)
939 today_action->addTo( iconToolBar ); 945 today_action->addTo( iconToolBar );
940 icon = loadPixmap( pathString + "1rightarrowB" ); 946 icon = loadPixmap( pathString + "1rightarrowB" );
941 configureToolBarMenu->insertItem(icon, i18n("Go forward"), 220); 947 configureToolBarMenu->insertItem(icon, i18n("Go forward"), 220);
942 if (p-> mShowIconForward) { 948 if (p-> mShowIconForward) {
943 action = new QAction( i18n("Go forward"), icon, i18n("Go forward"),0 , this ); 949 action = new QAction( i18n("Go forward"), icon, i18n("Go forward"),0 , this );
944 connect( action, SIGNAL( activated() ), 950 connect( action, SIGNAL( activated() ),
945 mView, SLOT( goNext() ) ); 951 mView, SLOT( goNext() ) );
946 action->addTo( iconToolBar ); 952 action->addTo( iconToolBar );
947 } 953 }
948 icon = loadPixmap( pathString + "2rightarrowB" ); 954 icon = loadPixmap( pathString + "2rightarrowB" );
949 configureToolBarMenu->insertItem(icon, i18n("Next month"), 230); 955 configureToolBarMenu->insertItem(icon, i18n("Next month"), 230);
950 if (p-> mShowIconForwardFast) { 956 if (p-> mShowIconForwardFast) {
951 action = new QAction( i18n("Next month"), icon, i18n("Next month"),0 , this ); 957 action = new QAction( i18n("Next month"), icon, i18n("Next month"),0 , this );
952 connect( action, SIGNAL( activated() ), 958 connect( action, SIGNAL( activated() ),
953 mView, SLOT( goNextMonth() ) ); 959 mView, SLOT( goNextMonth() ) );
954 action->addTo( iconToolBar ); 960 action->addTo( iconToolBar );
955 } 961 }
956 962
957 963
958 configureToolBarMenu->insertItem(i18n("What's This?"), 300); 964 configureToolBarMenu->insertItem(i18n("What's This?"), 300);
959 965
960 if (p-> mShowIconNewEvent) 966 if (p-> mShowIconNewEvent)
961 configureToolBarMenu->setItemChecked( 10, true ); 967 configureToolBarMenu->setItemChecked( 10, true );
962 if (p->mShowIconNewTodo ) 968 if (p->mShowIconNewTodo )
963 configureToolBarMenu->setItemChecked( 20, true ); 969 configureToolBarMenu->setItemChecked( 20, true );
964 if (p-> mShowIconSearch) 970 if (p-> mShowIconSearch)
965 configureToolBarMenu->setItemChecked( 120, true ); 971 configureToolBarMenu->setItemChecked( 120, true );
966 if (p-> mShowIconList) 972 if (p-> mShowIconList)
967 configureToolBarMenu->setItemChecked( 30, true ); 973 configureToolBarMenu->setItemChecked( 30, true );
968 if (p-> mShowIconDay1) 974 if (p-> mShowIconDay1)
969 configureToolBarMenu->setItemChecked( 40, true ); 975 configureToolBarMenu->setItemChecked( 40, true );
970 if (p-> mShowIconDay5) 976 if (p-> mShowIconDay5)
971 configureToolBarMenu->setItemChecked( 50, true ); 977 configureToolBarMenu->setItemChecked( 50, true );
972 if (p-> mShowIconDay7) 978 if (p-> mShowIconDay7)
973 configureToolBarMenu->setItemChecked( 60, true ); 979 configureToolBarMenu->setItemChecked( 60, true );
974 if (p-> mShowIconMonth) 980 if (p-> mShowIconMonth)
975 configureToolBarMenu->setItemChecked( 70, true ); 981 configureToolBarMenu->setItemChecked( 70, true );
976 if (p-> mShowIconTodoview) 982 if (p-> mShowIconTodoview)
977 configureToolBarMenu->setItemChecked( 80, true ); 983 configureToolBarMenu->setItemChecked( 80, true );
978 if (p-> mShowIconBackFast) 984 if (p-> mShowIconBackFast)
979 configureToolBarMenu->setItemChecked( 200, true ); 985 configureToolBarMenu->setItemChecked( 200, true );
980 if (p-> mShowIconBack) 986 if (p-> mShowIconBack)
981 configureToolBarMenu->setItemChecked( 210, true ); 987 configureToolBarMenu->setItemChecked( 210, true );
982 if (p-> mShowIconToday) 988 if (p-> mShowIconToday)
983 configureToolBarMenu->setItemChecked( 130, true ); 989 configureToolBarMenu->setItemChecked( 130, true );
984 if (p-> mShowIconForward) 990 if (p-> mShowIconForward)
985 configureToolBarMenu->setItemChecked( 220, true ); 991 configureToolBarMenu->setItemChecked( 220, true );
986 if (p-> mShowIconForwardFast) 992 if (p-> mShowIconForwardFast)
987 configureToolBarMenu->setItemChecked( 230, true ); 993 configureToolBarMenu->setItemChecked( 230, true );
988 if (p-> mShowIconNextDays) 994 if (p-> mShowIconNextDays)
989 configureToolBarMenu->setItemChecked( 100, true ); 995 configureToolBarMenu->setItemChecked( 100, true );
990 if (p-> mShowIconNext) 996 if (p-> mShowIconNext)
991 configureToolBarMenu->setItemChecked( 110, true ); 997 configureToolBarMenu->setItemChecked( 110, true );
992 if (p-> mShowIconJournal) 998 if (p-> mShowIconJournal)
993 configureToolBarMenu->setItemChecked( 90, true ); 999 configureToolBarMenu->setItemChecked( 90, true );
994 if (p-> mShowIconWhatsThis) 1000 if (p-> mShowIconWhatsThis)
995 configureToolBarMenu->setItemChecked( 300, true ); 1001 configureToolBarMenu->setItemChecked( 300, true );
996 1002
997 QLabel* dummy = new QLabel( iconToolBar ); 1003 QLabel* dummy = new QLabel( iconToolBar );
998 dummy->setBackgroundColor( iconToolBar->backgroundColor() ); 1004 dummy->setBackgroundColor( iconToolBar->backgroundColor() );
999 if (!p-> mShowIconStretch) 1005 if (!p-> mShowIconStretch)
1000 iconToolBar->setStretchableWidget ( dummy ) ; 1006 iconToolBar->setStretchableWidget ( dummy ) ;
1001 else 1007 else
1002 configureToolBarMenu->setItemChecked( 5, true ); 1008 configureToolBarMenu->setItemChecked( 5, true );
1003 if (p-> mShowIconWhatsThis) 1009 if (p-> mShowIconWhatsThis)
1004 QWhatsThis::whatsThisButton ( iconToolBar ); 1010 QWhatsThis::whatsThisButton ( iconToolBar );
1005 connect( configureToolBarMenu, SIGNAL( activated( int ) ),this, SLOT(configureToolBar( int ) ) ); 1011 connect( configureToolBarMenu, SIGNAL( activated( int ) ),this, SLOT(configureToolBar( int ) ) );
1006 configureAgenda( p->mHourSize ); 1012 configureAgenda( p->mHourSize );
1007 connect( configureAgendaMenu, SIGNAL( activated( int ) ),this, SLOT(configureAgenda( int ) ) ); 1013 connect( configureAgendaMenu, SIGNAL( activated( int ) ),this, SLOT(configureAgenda( int ) ) );
1008} 1014}
1009 1015
1010void MainWindow::exportToPhone( int mode ) 1016void MainWindow::exportToPhone( int mode )
1011{ 1017{
1012 1018
1013 //ex2phone->insertItem(i18n("Complete calendar..."), 1 ); 1019 //ex2phone->insertItem(i18n("Complete calendar..."), 1 );
1014 //ex2phone->insertItem(i18n("Filtered calendar..."), 2 ); 1020 //ex2phone->insertItem(i18n("Filtered calendar..."), 2 );
1015 KOex2phonePrefs ex2phone; 1021 KOex2phonePrefs ex2phone;
1016 1022
1017 ex2phone.mPhoneConnection->setText( KPimGlobalPrefs::instance()->mEx2PhoneConnection ); 1023 ex2phone.mPhoneConnection->setText( KPimGlobalPrefs::instance()->mEx2PhoneConnection );
1018 ex2phone.mPhoneDevice->setText( KPimGlobalPrefs::instance()->mEx2PhoneDevice ); 1024 ex2phone.mPhoneDevice->setText( KPimGlobalPrefs::instance()->mEx2PhoneDevice );
1019 ex2phone.mPhoneModel->setText( KPimGlobalPrefs::instance()->mEx2PhoneModel ); 1025 ex2phone.mPhoneModel->setText( KPimGlobalPrefs::instance()->mEx2PhoneModel );
1020 if ( mode == 1 ) 1026 if ( mode == 1 )
1021 ex2phone.setCaption(i18n("Export complete calendar")); 1027 ex2phone.setCaption(i18n("Export complete calendar"));
1022 if ( mode == 2 ) 1028 if ( mode == 2 )
1023 ex2phone.setCaption(i18n("Export filtered calendar")); 1029 ex2phone.setCaption(i18n("Export filtered calendar"));
1024 1030
1025 if ( !ex2phone.exec() ) { 1031 if ( !ex2phone.exec() ) {
1026 return; 1032 return;
1027 } 1033 }
1028 KPimGlobalPrefs::instance()->mEx2PhoneConnection = ex2phone.mPhoneConnection->text(); 1034 KPimGlobalPrefs::instance()->mEx2PhoneConnection = ex2phone.mPhoneConnection->text();
1029 KPimGlobalPrefs::instance()->mEx2PhoneDevice = ex2phone.mPhoneDevice->text(); 1035 KPimGlobalPrefs::instance()->mEx2PhoneDevice = ex2phone.mPhoneDevice->text();
1030 KPimGlobalPrefs::instance()->mEx2PhoneModel = ex2phone.mPhoneModel->text(); 1036 KPimGlobalPrefs::instance()->mEx2PhoneModel = ex2phone.mPhoneModel->text();
1031 1037
1032 int inFuture = 0; 1038 int inFuture = 0;
1033 if ( ex2phone.mWriteBackFuture->isChecked() ) 1039 if ( ex2phone.mWriteBackFuture->isChecked() )
1034 inFuture = ex2phone.mWriteBackFutureWeeks->value(); 1040 inFuture = ex2phone.mWriteBackFutureWeeks->value();
1035 QPtrList<Incidence> delSel; 1041 QPtrList<Incidence> delSel;
1036 if ( mode == 1 ) 1042 if ( mode == 1 )
1037 delSel = mCalendar->rawIncidences(); 1043 delSel = mCalendar->rawIncidences();
1038 if ( mode == 2 ) 1044 if ( mode == 2 )
1039 delSel = mCalendar->incidences(); 1045 delSel = mCalendar->incidences();
1040 CalendarLocal* cal = new CalendarLocal(); 1046 CalendarLocal* cal = new CalendarLocal();
1041 cal->setLocalTime(); 1047 cal->setLocalTime();
1042 Incidence *incidence = delSel.first(); 1048 Incidence *incidence = delSel.first();
1043 QDateTime cur = QDateTime::currentDateTime().addDays( -7 ); 1049 QDateTime cur = QDateTime::currentDateTime().addDays( -7 );
1044 QDateTime end = cur.addDays( ( inFuture +1 ) *7 ); 1050 QDateTime end = cur.addDays( ( inFuture +1 ) *7 );
1045 while ( incidence ) { 1051 while ( incidence ) {
1046 if ( incidence->type() != "Journal" ) { 1052 if ( incidence->type() != "Journal" ) {
1047 bool add = true; 1053 bool add = true;
1048 if ( inFuture ) { 1054 if ( inFuture ) {
1049 QDateTime dt; 1055 QDateTime dt;
1050 if ( incidence->type() == "Todo" ) { 1056 if ( incidence->type() == "Todo" ) {
1051 Todo * t = (Todo*)incidence; 1057 Todo * t = (Todo*)incidence;
1052 if ( t->hasDueDate() ) 1058 if ( t->hasDueDate() )
1053 dt = t->dtDue(); 1059 dt = t->dtDue();
1054 else 1060 else
1055 dt = cur.addSecs( 62 ); 1061 dt = cur.addSecs( 62 );
1056 } 1062 }
1057 else { 1063 else {
1058 bool ok; 1064 bool ok;
1059 dt = incidence->getNextOccurence( cur, &ok ); 1065 dt = incidence->getNextOccurence( cur, &ok );
1060 if ( !ok ) 1066 if ( !ok )
1061 dt = cur.addSecs( -62 ); 1067 dt = cur.addSecs( -62 );
1062 } 1068 }
1063 if ( dt < cur || dt > end ) { 1069 if ( dt < cur || dt > end ) {
1064 add = false; 1070 add = false;
1065 } 1071 }
1066 } 1072 }
1067 if ( add ) { 1073 if ( add ) {
1068 Incidence *in = incidence->clone(); 1074 Incidence *in = incidence->clone();
1069 cal->addIncidence( in ); 1075 cal->addIncidence( in );
1070 } 1076 }
1071 } 1077 }
1072 incidence = delSel.next(); 1078 incidence = delSel.next();
1073 } 1079 }
1074 PhoneAccess::writeConfig( KPimGlobalPrefs::instance()->mEx2PhoneDevice, 1080 PhoneAccess::writeConfig( KPimGlobalPrefs::instance()->mEx2PhoneDevice,
1075 KPimGlobalPrefs::instance()->mEx2PhoneConnection, 1081 KPimGlobalPrefs::instance()->mEx2PhoneConnection,
1076 KPimGlobalPrefs::instance()->mEx2PhoneModel ); 1082 KPimGlobalPrefs::instance()->mEx2PhoneModel );
1077 1083
1078 setCaption( i18n("Writing to phone...")); 1084 setCaption( i18n("Writing to phone..."));
1079 if ( PhoneFormat::writeToPhone( cal ) ) 1085 if ( PhoneFormat::writeToPhone( cal ) )
1080 setCaption( i18n("Export to phone successful!")); 1086 setCaption( i18n("Export to phone successful!"));
1081 else 1087 else
1082 setCaption( i18n("Error exporting to phone!")); 1088 setCaption( i18n("Error exporting to phone!"));
1083 delete cal; 1089 delete cal;
1084} 1090}
1085 1091
1086 1092
1087void MainWindow::setDefaultPreferences() 1093void MainWindow::setDefaultPreferences()
1088{ 1094{
1089 KOPrefs *p = KOPrefs::instance(); 1095 KOPrefs *p = KOPrefs::instance();
1090 1096
1091 p->mCompactDialogs = true; 1097 p->mCompactDialogs = true;
1092 p->mConfirm = true; 1098 p->mConfirm = true;
1093 // p->mEnableQuickTodo = false; 1099 // p->mEnableQuickTodo = false;
1094 1100
1095} 1101}
1096 1102
1097QString MainWindow::resourcePath() 1103QString MainWindow::resourcePath()
1098{ 1104{
1099 return KGlobal::iconLoader()->iconPath(); 1105 return KGlobal::iconLoader()->iconPath();
1100} 1106}
1101 1107
1102void MainWindow::displayText( QString text ,QString cap ) 1108void MainWindow::displayText( QString text ,QString cap )
1103{ 1109{
1104 QDialog dia( this, "name", true ); ; 1110 QDialog dia( this, "name", true ); ;
1105 dia.setCaption( cap ); 1111 dia.setCaption( cap );
1106 QVBoxLayout* lay = new QVBoxLayout( &dia ); 1112 QVBoxLayout* lay = new QVBoxLayout( &dia );
1107 lay->setSpacing( 3 ); 1113 lay->setSpacing( 3 );
1108 lay->setMargin( 3 ); 1114 lay->setMargin( 3 );
1109 QTextBrowser tb ( &dia ); 1115 QTextBrowser tb ( &dia );
1110 lay->addWidget( &tb ); 1116 lay->addWidget( &tb );
1111 tb.setText( text ); 1117 tb.setText( text );
1112#ifdef DESKTOP_VERSION 1118#ifdef DESKTOP_VERSION
1113 dia.resize( 640, 480); 1119 dia.resize( 640, 480);
1114#else 1120#else
1115 dia.showMaximized(); 1121 dia.showMaximized();
1116#endif 1122#endif
1117 dia.exec(); 1123 dia.exec();
1118} 1124}
1119void MainWindow::displayFile( QString fn, QString cap ) 1125void MainWindow::displayFile( QString fn, QString cap )
1120{ 1126{
1121 QString fileName = resourcePath() + fn; 1127 QString fileName = resourcePath() + fn;
1122 QString text; 1128 QString text;
1123 QFile file( fileName ); 1129 QFile file( fileName );
1124 if (!file.open( IO_ReadOnly ) ) { 1130 if (!file.open( IO_ReadOnly ) ) {
1125 return ; 1131 return ;
1126 1132
1127 } 1133 }
1128 QTextStream ts( &file ); 1134 QTextStream ts( &file );
1129 text = ts.read(); 1135 text = ts.read();
1130 file.close(); 1136 file.close();
1131 displayText( text, cap); 1137 displayText( text, cap);
1132} 1138}
1133void MainWindow::features() 1139void MainWindow::features()
1134{ 1140{
1135 1141
1136 displayFile( "featuresKOPI.txt",i18n("KO/Pi Features and hints") ); 1142 displayFile( "featuresKOPI.txt",i18n("KO/Pi Features and hints") );
1137} 1143}
1138 1144
1139void MainWindow::usertrans() 1145void MainWindow::usertrans()
1140{ 1146{
1141 1147
1142 displayFile( "usertranslationHOWTO.txt",i18n("KO/Pi User translation HowTo") ); 1148 displayFile( "usertranslationHOWTO.txt",i18n("KO/Pi User translation HowTo") );
1143} 1149}
1144 1150
1145void MainWindow::synchowto() 1151void MainWindow::synchowto()
1146{ 1152{
1147 1153
1148 KApplication::showFile( "KDE-Pim/Pi Synchronization HowTo", "kdepim/SyncHowto.txt" ); 1154 KApplication::showFile( "KDE-Pim/Pi Synchronization HowTo", "kdepim/SyncHowto.txt" );
1149} 1155}
1150void MainWindow::faq() 1156void MainWindow::faq()
1151{ 1157{
1152 displayFile( "kopiFAQ.txt",i18n("KO/Pi FAQ") ); 1158 displayFile( "kopiFAQ.txt",i18n("KO/Pi FAQ") );
1153 1159
1154} 1160}
1155void MainWindow::whatsNew() 1161void MainWindow::whatsNew()
1156{ 1162{
1157 KApplication::showFile( "KDE-Pim/Pi Version Info", "kdepim/WhatsNew.txt" ); 1163 KApplication::showFile( "KDE-Pim/Pi Version Info", "kdepim/WhatsNew.txt" );
1158 1164
1159} 1165}
1160void MainWindow::licence() 1166void MainWindow::licence()
1161{ 1167{
1162 KApplication::showLicence(); 1168 KApplication::showLicence();
1163 1169
1164} 1170}
1165void MainWindow::about() 1171void MainWindow::about()
1166{ 1172{
1167 QString version; 1173 QString version;
1168#include <../version> 1174#include <../version>
1169 QMessageBox::about( this, i18n("About KOrganizer/Pi"), 1175 QMessageBox::about( this, i18n("About KOrganizer/Pi"),
1170 i18n("KOrganizer/Platform-independent\n") + 1176 i18n("KOrganizer/Platform-independent\n") +
1171 "(KO/Pi) " + version + " - " + 1177 "(KO/Pi) " + version + " - " +
1172 1178
1173#ifdef DESKTOP_VERSION 1179#ifdef DESKTOP_VERSION
1174 i18n("Desktop Edition\n") + 1180 i18n("Desktop Edition\n") +
1175#else 1181#else
1176 i18n("PDA-Edition\nfor: Zaurus 5x00 / 7x0 / 8x0\n") + 1182 i18n("PDA-Edition\nfor: Zaurus 5x00 / 7x0 / 8x0\n") +
1177#endif 1183#endif
1178 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") ); 1184 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") );
1179} 1185}
1180void MainWindow::keyBindings() 1186void MainWindow::keyBindings()
1181{ 1187{
1182 QString cap = i18n("Key bindings KOrganizer/Pi"); 1188 QString cap = i18n("Key bindings KOrganizer/Pi");
1183 QString text = i18n("<p><h2>KO/Pi key shortcuts:</h2></p>\n") + 1189 QString text = i18n("<p><h2>KO/Pi key shortcuts:</h2></p>\n") +
1184 i18n("<p><b>H</b>: This help dialog | <b>S</b>: Search dialog</p>\n")+ 1190 i18n("<p><b>H</b>: This help dialog | <b>S</b>: Search dialog</p>\n")+
1185 i18n("<p><b>I</b>: Show info for selected event/todo</p>\n") + 1191 i18n("<p><b>I</b>: Show info for selected event/todo</p>\n") +
1186 i18n("<p><b>Space</b>: Toggle fullscreen | <b>P</b>: Date picker</p>\n")+ 1192 i18n("<p><b>Space</b>: Toggle fullscreen | <b>P</b>: Date picker</p>\n")+
1187 i18n("<p><b>F</b>: Toggle filterview |<b>F+ctrl</b>: Edit filter </p>\n")+ 1193 i18n("<p><b>F</b>: Toggle filterview |<b>F+ctrl</b>: Edit filter </p>\n")+
1188 i18n("<p><b>O</b>: Filter On/Off | <b>J</b>: Journal view</p>\n")+ 1194 i18n("<p><b>O</b>: Filter On/Off | <b>J</b>: Journal view</p>\n")+
1189 i18n("<p><b>1-0</b> (+<b>ctrl</b>): Select filter 1-10 (11-20)</p>\n")+ 1195 i18n("<p><b>1-0</b> (+<b>ctrl</b>): Select filter 1-10 (11-20)</p>\n")+
1190 i18n("<p><b>N</b>: Next days view| <b>W</b>: What's next view\n ")+ 1196 i18n("<p><b>N</b>: Next days view| <b>W</b>: What's next view\n ")+
1191 i18n("<p><b>V</b>: Todo view | <b>L</b>: Event list view</p>\n")+ 1197 i18n("<p><b>V</b>: Todo view | <b>L</b>: Event list view</p>\n")+
1192 i18n("<p><b>Z,Y</b>: Work week view | <b>U</b>: Week view</p>\n")+ 1198 i18n("<p><b>Z,Y</b>: Work week view | <b>U</b>: Week view</p>\n")+
1193 i18n("<p><b>D</b>: One day view | <b>M</b>: Month view</p>\n")+ 1199 i18n("<p><b>D</b>: One day view | <b>M</b>: Month view</p>\n")+
1194 i18n("<p><b>E</b>: Edit selected item |<b> E+ctrl</b>: New Event</p>\n")+ 1200 i18n("<p><b>E</b>: Edit selected item |<b> E+ctrl</b>: New Event</p>\n")+
1195 i18n("<p><b>T</b>: Goto today | <b>T+ctrl</b>: New Todo</p>\n")+ 1201 i18n("<p><b>T</b>: Goto today | <b>T+ctrl</b>: New Todo</p>\n")+
1196 i18n("<p><b>S+ctrl</b>: Add sub-todo | <b>X</b>: Toggle datenavigator</p>\n")+ 1202 i18n("<p><b>S+ctrl</b>: Add sub-todo | <b>X</b>: Toggle datenavigator</p>\n")+
1197 i18n("<p><b>+,-</b> : Zoom in/out agenda | <b>A</b>: Toggle allday agenda height</p>\n")+ 1203 i18n("<p><b>+,-</b> : Zoom in/out agenda | <b>A</b>: Toggle allday agenda height</p>\n")+
1198 i18n("<p><b>C</b>: Show current time in agenda view</p>\n")+ 1204 i18n("<p><b>C</b>: Show current time in agenda view</p>\n")+
1199 i18n("<p><b>B</b>: Edit description (details) of selected item</p>\n")+ 1205 i18n("<p><b>B</b>: Edit description (details) of selected item</p>\n")+
1200 i18n("<p><b>right</b>: Next week | <b>right+ctrl</b>: Next month</p>\n")+ 1206 i18n("<p><b>right</b>: Next week | <b>right+ctrl</b>: Next month</p>\n")+
1201 i18n("<p><b>left</b>: Prev. week | <b>left+ctrl</b>: Prev. month</p>\n")+ 1207 i18n("<p><b>left</b>: Prev. week | <b>left+ctrl</b>: Prev. month</p>\n")+
1202 i18n("<p><b>del,backspace</b>: Delete selected item</p>\n")+ 1208 i18n("<p><b>del,backspace</b>: Delete selected item</p>\n")+
1203 i18n("<p><h3>In agenda view:</h3></p>\n") + 1209 i18n("<p><h3>In agenda view:</h3></p>\n") +
1204 i18n("<p><b>up/down</b>: Scroll agenda view</p>\n")+ 1210 i18n("<p><b>up/down</b>: Scroll agenda view</p>\n")+
1205 i18n("<p><b>ctrl+up/down</b>: Scroll small todo view</p>\n")+ 1211 i18n("<p><b>ctrl+up/down</b>: Scroll small todo view</p>\n")+
1206 i18n("<p><h3>In todo view:</h3></p>\n") + 1212 i18n("<p><h3>In todo view:</h3></p>\n") +
1207 i18n("<p><b>shift+U</b>: <b>U</b>nparent todo (make root todo)</p>\n")+ 1213 i18n("<p><b>shift+U</b>: <b>U</b>nparent todo (make root todo)</p>\n")+
1208 i18n("<p><b>shift+S</b>: Make <b>S</b>ubtodo (reparent todo)</p>\n")+ 1214 i18n("<p><b>shift+S</b>: Make <b>S</b>ubtodo (reparent todo)</p>\n")+
1209 i18n("<p><b>shift+P</b>: Make new <b>P</b>arent for todo selected with shift+S</p>\n")+ 1215 i18n("<p><b>shift+P</b>: Make new <b>P</b>arent for todo selected with shift+S</p>\n")+
1210 i18n("<p><b>Q</b>: Toggle quick todo line edit.</p>\n")+ 1216 i18n("<p><b>Q</b>: Toggle quick todo line edit.</p>\n")+
1211 i18n("<p><b>I</b>: Show info of current item+one step down.</p>\n")+ 1217 i18n("<p><b>I</b>: Show info of current item+one step down.</p>\n")+
1212 i18n("<p><b>return</b>: Mark item as completed+one step down.</p>\n")+ 1218 i18n("<p><b>return</b>: Mark item as completed+one step down.</p>\n")+
1213 i18n("<p><b>return+shift</b>: Mark item as not completed+one step down</p>\n")+ 1219 i18n("<p><b>return+shift</b>: Mark item as not completed+one step down</p>\n")+
1214 i18n("<p><h3>In list view:</h3></p>\n") + 1220 i18n("<p><h3>In list view:</h3></p>\n") +
1215 i18n("<p><b>I</b>: Show info of current item+one step down.</p>\n")+ 1221 i18n("<p><b>I</b>: Show info of current item+one step down.</p>\n")+
1216 i18n("<p><b>return</b>: Select item+one step down</p>\n")+ 1222 i18n("<p><b>return</b>: Select item+one step down</p>\n")+
1217 i18n("<p><b>return+shift</b>: Deselect item+one step down</p>\n")+ 1223 i18n("<p><b>return+shift</b>: Deselect item+one step down</p>\n")+
1218 i18n("<p><b>up/down</b>: Next/prev item</p>\n")+ 1224 i18n("<p><b>up/down</b>: Next/prev item</p>\n")+
1219 i18n("<p><b>ctrl+up/down</b>: Goto up/down by 20% of items</p>\n")+ 1225 i18n("<p><b>ctrl+up/down</b>: Goto up/down by 20% of items</p>\n")+
1220 i18n("<p><b>shift+up/down</b>: Goto first/last item</p>\n")+ 1226 i18n("<p><b>shift+up/down</b>: Goto first/last item</p>\n")+
1221 i18n("<p><h3>In event/todo viewer:</h3></p>\n") + 1227 i18n("<p><h3>In event/todo viewer:</h3></p>\n") +
1222 i18n("<p><b>I,C</b>: Close dialog.</p>\n")+ 1228 i18n("<p><b>I,C</b>: Close dialog.</p>\n")+
1223 i18n("<p><b>A</b>: Show agenda view.</p>\n")+ 1229 i18n("<p><b>A</b>: Show agenda view.</p>\n")+
1224 i18n("<p><b>E</b>: Edit item</p>\n") + 1230 i18n("<p><b>E</b>: Edit item</p>\n") +
1225 i18n("<p><h2>KO/Pi icon colors:</h2></p>\n") + 1231 i18n("<p><h2>KO/Pi icon colors:</h2></p>\n") +
1226 i18n("<p><b>(for square icons in agenda and month view)</b></p>\n") + 1232 i18n("<p><b>(for square icons in agenda and month view)</b></p>\n") +
1227 i18n("<p><b>Cross</b>: Item cancelled.([c] in Whats'Next view)</p>\n")+ 1233 i18n("<p><b>Cross</b>: Item cancelled.([c] in Whats'Next view)</p>\n")+
1228 i18n("<p><b>Red</b>: Alarm set.([a] in Whats'Next view)</p>\n")+ 1234 i18n("<p><b>Red</b>: Alarm set.([a] in Whats'Next view)</p>\n")+
1229 i18n("<p><b>Blue</b>: Recurrent event.([r] in Whats'Next view)</p>\n")+ 1235 i18n("<p><b>Blue</b>: Recurrent event.([r] in Whats'Next view)</p>\n")+
1230 i18n("<p><b>Dark green</b>: Information(description) available.([i] in WN view)</p>\n")+ 1236 i18n("<p><b>Dark green</b>: Information(description) available.([i] in WN view)</p>\n")+
1231 i18n("<p><b>Black</b>: Event/todo with attendees. You are the organizer!</p>\n")+ 1237 i18n("<p><b>Black</b>: Event/todo with attendees. You are the organizer!</p>\n")+
1232 i18n("<p><b>Dark yellow</b>: Event/todo with attendees.</p>\n") + 1238 i18n("<p><b>Dark yellow</b>: Event/todo with attendees.</p>\n") +
1233 i18n("<p><b>White</b>: Item readonly</p>\n"); 1239 i18n("<p><b>White</b>: Item readonly</p>\n");
1234 displayText( text, cap); 1240 displayText( text, cap);
1235 1241
1236} 1242}
1237void MainWindow::aboutAutoSaving() 1243void MainWindow::aboutAutoSaving()
1238{ 1244{
1239 QMessageBox* msg; 1245 QMessageBox* msg;
1240 msg = new QMessageBox( i18n("Auto Saving in KOrganizer/Pi"), 1246 msg = new QMessageBox( i18n("Auto Saving in KOrganizer/Pi"),
1241 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, 1247 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,
1242 QMessageBox::Ok, 1248 QMessageBox::Ok,
1243 QMessageBox::NoButton, 1249 QMessageBox::NoButton,
1244 QMessageBox::NoButton); 1250 QMessageBox::NoButton);
1245 msg->exec(); 1251 msg->exec();
1246 delete msg; 1252 delete msg;
1247 1253
1248 1254
1249} 1255}
1250void MainWindow::aboutKnownBugs() 1256void MainWindow::aboutKnownBugs()
1251{ 1257{
1252 QMessageBox* msg; 1258 QMessageBox* msg;
1253 msg = new QMessageBox( i18n("Known Problems in KOrganizer/Pi"), 1259 msg = new QMessageBox( i18n("Known Problems in KOrganizer/Pi"),
1254 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")+ 1260 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")+
1255 i18n("2) Audio alarm daemon\nfor Zaurus is available!\nas an additional small application\n")+ 1261 i18n("2) Audio alarm daemon\nfor Zaurus is available!\nas an additional small application\n")+
1256 i18n("\nPlease report unexpected behaviour to\nlutz@pi-sync.net\n") + 1262 i18n("\nPlease report unexpected behaviour to\nlutz@pi-sync.net\n") +
1257 i18n("\nor report them in the bugtracker on\n") + 1263 i18n("\nor report them in the bugtracker on\n") +
1258 i18n("\nhttp://sourceforge.net/projects/kdepimpi\n"), 1264 i18n("\nhttp://sourceforge.net/projects/kdepimpi\n"),
1259 QMessageBox::NoIcon, 1265 QMessageBox::NoIcon,
1260 QMessageBox::Ok, 1266 QMessageBox::Ok,
1261 QMessageBox::NoButton, 1267 QMessageBox::NoButton,
1262 QMessageBox::NoButton); 1268 QMessageBox::NoButton);
1263 msg->exec(); 1269 msg->exec();
1264 delete msg; 1270 delete msg;
1265 1271
1266} 1272}
1267 1273
1268QString MainWindow::defaultFileName() 1274QString MainWindow::defaultFileName()
1269{ 1275{
1270 return locateLocal( "data", "korganizer/mycalendar.ics" ); 1276 return locateLocal( "data", "korganizer/mycalendar.ics" );
1271} 1277}
1272QString MainWindow::syncFileName() 1278QString MainWindow::syncFileName()
1273{ 1279{
1274#ifdef DESKTOP_VERSION 1280#ifdef DESKTOP_VERSION
1275 return locateLocal( "tmp", "synccalendar.ics" ); 1281 return locateLocal( "tmp", "synccalendar.ics" );
1276#else 1282#else
1277 return QString( "/tmp/synccalendar.ics" ); 1283 return QString( "/tmp/synccalendar.ics" );
1278#endif 1284#endif
1279} 1285}
1280 1286
1281void MainWindow::processIncidenceSelection( Incidence *incidence ) 1287void MainWindow::processIncidenceSelection( Incidence *incidence )
1282{ 1288{
1283 if ( !incidence ) { 1289 if ( !incidence ) {
1284 enableIncidenceActions( false ); 1290 enableIncidenceActions( false );
1285 1291
1286 mNewSubTodoAction->setEnabled( false ); 1292 mNewSubTodoAction->setEnabled( false );
1287 setCaptionToDates(); 1293 setCaptionToDates();
1288 return; 1294 return;
1289 1295
1290 } 1296 }
1291 1297
1292 //KGlobal::locale()->formatDateTime(nextA, true); 1298 //KGlobal::locale()->formatDateTime(nextA, true);
1293 QString startString = ""; 1299 QString startString = "";
1294 if ( incidence->type() != "Todo" ) { 1300 if ( incidence->type() != "Todo" ) {
1295 if ( incidence->dtStart().date() < incidence->dtEnd().date() ) { 1301 if ( incidence->dtStart().date() < incidence->dtEnd().date() ) {
1296 if ( incidence->doesFloat() ) { 1302 if ( incidence->doesFloat() ) {
1297 startString += ": "+incidence->dtStartDateStr( true ); 1303 startString += ": "+incidence->dtStartDateStr( true );
1298 startString += " --- "+((Event*)incidence)->dtEndDateStr( true ); 1304 startString += " --- "+((Event*)incidence)->dtEndDateStr( true );
1299 1305
1300 } else { 1306 } else {
1301 startString = ": "+incidence->dtStartStr(true); 1307 startString = ": "+incidence->dtStartStr(true);
1302 startString += " --- "+((Event*)incidence)->dtEndStr(true); 1308 startString += " --- "+((Event*)incidence)->dtEndStr(true);
1303 1309
1304 } 1310 }
1305 1311
1306 } else { 1312 } else {
1307 if ( incidence->dtStart().time() != incidence->dtEnd().time() ) 1313 if ( incidence->dtStart().time() != incidence->dtEnd().time() )
1308 startString = ": "+KGlobal::locale()->formatTime(incidence->dtStart().time())+ 1314 startString = ": "+KGlobal::locale()->formatTime(incidence->dtStart().time())+
1309 "-"+KGlobal::locale()->formatTime(incidence->dtEnd().time()); 1315 "-"+KGlobal::locale()->formatTime(incidence->dtEnd().time());
1310 startString +=" "+KGlobal::locale()->formatDate( incidence->dtStart().date(), true); 1316 startString +=" "+KGlobal::locale()->formatDate( incidence->dtStart().date(), true);
1311 } 1317 }
1312 1318
1313 } 1319 }
1314 else 1320 else
1315 startString = i18n(": (Prio ") +QString::number( (( KCal::Todo*)incidence)->priority() ) +") "+QString::number( (( KCal::Todo*)incidence)->percentComplete() ) +i18n("\% completed"); 1321 startString = i18n(": (Prio ") +QString::number( (( KCal::Todo*)incidence)->priority() ) +") "+QString::number( (( KCal::Todo*)incidence)->percentComplete() ) +i18n("\% completed");
1316 if ( !incidence->location().isEmpty() ) 1322 if ( !incidence->location().isEmpty() )
1317 startString += " (" +incidence->location()+")"; 1323 startString += " (" +incidence->location()+")";
1318 setCaption( incidence->summary()+startString); 1324 setCaption( incidence->summary()+startString);
1319 1325
1320 enableIncidenceActions( true ); 1326 enableIncidenceActions( true );
1321 1327
1322 if ( incidence->type() == "Event" ) { 1328 if ( incidence->type() == "Event" ) {
1323 mShowAction->setText( i18n("Show Event...") ); 1329 mShowAction->setText( i18n("Show Event...") );
1324 mEditAction->setText( i18n("Edit Event...") ); 1330 mEditAction->setText( i18n("Edit Event...") );
1325 mDeleteAction->setText( i18n("Delete Event...") ); 1331 mDeleteAction->setText( i18n("Delete Event...") );
1326 1332
1327 mNewSubTodoAction->setEnabled( false ); 1333 mNewSubTodoAction->setEnabled( false );
1328 } else if ( incidence->type() == "Todo" ) { 1334 } else if ( incidence->type() == "Todo" ) {
1329 mShowAction->setText( i18n("Show Todo...") ); 1335 mShowAction->setText( i18n("Show Todo...") );
1330 mEditAction->setText( i18n("Edit Todo...") ); 1336 mEditAction->setText( i18n("Edit Todo...") );
1331 mDeleteAction->setText( i18n("Delete Todo...") ); 1337 mDeleteAction->setText( i18n("Delete Todo...") );
1332 1338
1333 mNewSubTodoAction->setEnabled( true ); 1339 mNewSubTodoAction->setEnabled( true );
1334 } else { 1340 } else {
1335 mShowAction->setText( i18n("Show...") ); 1341 mShowAction->setText( i18n("Show...") );
1336 mShowAction->setText( i18n("Edit...") ); 1342 mShowAction->setText( i18n("Edit...") );
1337 mShowAction->setText( i18n("Delete...") ); 1343 mShowAction->setText( i18n("Delete...") );
1338 1344
1339 mNewSubTodoAction->setEnabled( false ); 1345 mNewSubTodoAction->setEnabled( false );
1340 } 1346 }
1341} 1347}
1342 1348
1343void MainWindow::enableIncidenceActions( bool enabled ) 1349void MainWindow::enableIncidenceActions( bool enabled )
1344{ 1350{
1345 mShowAction->setEnabled( enabled ); 1351 mShowAction->setEnabled( enabled );
1346 mEditAction->setEnabled( enabled ); 1352 mEditAction->setEnabled( enabled );
1347 mDeleteAction->setEnabled( enabled ); 1353 mDeleteAction->setEnabled( enabled );
1348 1354
1349 mCloneAction->setEnabled( enabled ); 1355 mCloneAction->setEnabled( enabled );
1350 mMoveAction->setEnabled( enabled ); 1356 mMoveAction->setEnabled( enabled );
1351 mBeamAction->setEnabled( enabled ); 1357 mBeamAction->setEnabled( enabled );
1352 mCancelAction->setEnabled( enabled ); 1358 mCancelAction->setEnabled( enabled );
1353} 1359}
1354 1360
1355void MainWindow::importOL() 1361void MainWindow::importOL()
1356{ 1362{
1357#ifdef _WIN32_ 1363#ifdef _WIN32_
1358 KOImportOLdialog *id = new KOImportOLdialog("Import from OL - select folder!" , mView->calendar(),this ); 1364 KOImportOLdialog *id = new KOImportOLdialog("Import from OL - select folder!" , mView->calendar(),this );
1359 id->exec(); 1365 id->exec();
1360 delete id; 1366 delete id;
1361 mView->updateView(); 1367 mView->updateView();
1362#endif 1368#endif
1363} 1369}
1364void MainWindow::importBday() 1370void MainWindow::importBday()
1365{ 1371{
1366 int result = QMessageBox::warning( this, i18n("KO/Pi: Warning!"), 1372 int result = QMessageBox::warning( this, i18n("KO/Pi: Warning!"),
1367 i18n("When importing birthdays twice\nduplicated events will be ignored,\nif the event has not been\nchanged in KO/Pi!\n"), 1373 i18n("When importing birthdays twice\nduplicated events will be ignored,\nif the event has not been\nchanged in KO/Pi!\n"),
1368 i18n("Import!"), i18n("Cancel"), 0, 1374 i18n("Import!"), i18n("Cancel"), 0,
1369 0, 1 ); 1375 0, 1 );
1370 if ( result == 0 ) { 1376 if ( result == 0 ) {
1371 mView->importBday(); 1377 mView->importBday();
1372 1378
1373 } 1379 }
1374 1380
1375 1381
1376} 1382}
1377void MainWindow::importQtopia() 1383void MainWindow::importQtopia()
1378{ 1384{
1379#ifndef DESKTOP_VERSION 1385#ifndef DESKTOP_VERSION
1380 int result = QMessageBox::warning( this, i18n("KO/Pi: Warning!"), 1386 int result = QMessageBox::warning( this, i18n("KO/Pi: Warning!"),
1381 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"), 1387 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"),
1382 i18n("Import!"), i18n("Cancel"), 0, 1388 i18n("Import!"), i18n("Cancel"), 0,
1383 0, 1 ); 1389 0, 1 );
1384 if ( result == 0 ) { 1390 if ( result == 0 ) {
1385 QString datebook = Global::applicationFileName( "datebook", "datebook.xml"); 1391 QString datebook = Global::applicationFileName( "datebook", "datebook.xml");
1386 QString todolist = Global::applicationFileName( "todolist", "todolist.xml"); 1392 QString todolist = Global::applicationFileName( "todolist", "todolist.xml");
1387 QString categories = QString( getenv( "HOME" ) ) + "/Settings/Categories.xml"; 1393 QString categories = QString( getenv( "HOME" ) ) + "/Settings/Categories.xml";
1388 mView->importQtopia( categories, datebook, todolist ); 1394 mView->importQtopia( categories, datebook, todolist );
1389 } 1395 }
1390#else 1396#else
1391 int result = QMessageBox::warning( this, i18n("KO/Pi: Warning!"), 1397 int result = QMessageBox::warning( this, i18n("KO/Pi: Warning!"),
1392 i18n("Not supported \non desktop!\n"), 1398 i18n("Not supported \non desktop!\n"),
1393 i18n("Ok"), i18n("Cancel"), 0, 1399 i18n("Ok"), i18n("Cancel"), 0,
1394 0, 1 ); 1400 0, 1 );
1395 1401
1396#endif 1402#endif
1397} 1403}
1398 1404
1399void MainWindow::saveOnClose() 1405void MainWindow::saveOnClose()
1400{ 1406{
1401 KOPrefs *p = KOPrefs::instance(); 1407 KOPrefs *p = KOPrefs::instance();
1402 p->mToolBarHor = ( iconToolBar->orientation () == Qt:: Horizontal ); 1408 p->mToolBarHor = ( iconToolBar->orientation () == Qt:: Horizontal );
1403 p->mToolBarUp = iconToolBar->x() > width()/2 || 1409 p->mToolBarUp = iconToolBar->x() > width()/2 ||
1404 iconToolBar->y() > height()/2; 1410 iconToolBar->y() > height()/2;
1405 mView->writeSettings(); 1411 mView->writeSettings();
1406 if ( mCalendarModifiedFlag || mView->checkFileChanged( defaultFileName())) 1412 if ( mCalendarModifiedFlag || mView->checkFileChanged( defaultFileName()))
1407 save(); 1413 save();
1408} 1414}
1409void MainWindow::slotModifiedChanged( bool changed ) 1415void MainWindow::slotModifiedChanged( bool changed )
1410{ 1416{
1411 if ( mBlockAtStartup ) 1417 if ( mBlockAtStartup )
1412 return; 1418 return;
1413 int msec; 1419 int msec;
1414 // we store the changes after 1 minute, 1420 // we store the changes after 1 minute,
1415 // and for safety reasons after 10 minutes again 1421 // and for safety reasons after 10 minutes again
1416 if ( !mSyncManager->blockSave() ) 1422 if ( !mSyncManager->blockSave() )
1417 msec = (1000 * 60*KOPrefs::instance()->mAutoSaveInterval) +1000; 1423 msec = (1000 * 60*KOPrefs::instance()->mAutoSaveInterval) +1000;
1418 else 1424 else
1419 msec = 1000 * 600; 1425 msec = 1000 * 600;
1420 mSaveTimer.start( msec, true ); // 1 minute 1426 mSaveTimer.start( msec, true ); // 1 minute
1421 qDebug("KO: Saving File in %d secs!", msec/1000); 1427 qDebug("KO: Saving File in %d secs!", msec/1000);
1422 mCalendarModifiedFlag = true; 1428 mCalendarModifiedFlag = true;
1423} 1429}
1424void MainWindow::save() 1430void MainWindow::save()
1425{ 1431{
1426 if ( mSyncManager->blockSave() ) 1432 if ( mSyncManager->blockSave() )
1427 return; 1433 return;
1428 mSyncManager->setBlockSave(true); 1434 mSyncManager->setBlockSave(true);
1429 if ( mView->checkFileVersion( defaultFileName()) ) { 1435 if ( mView->checkFileVersion( defaultFileName()) ) {
1430 1436
1431 QTime neededSaveTime = QDateTime::currentDateTime().time(); 1437 QTime neededSaveTime = QDateTime::currentDateTime().time();
1432 setCaption(i18n("KO/Pi:Saving Data to File ..." )); 1438 setCaption(i18n("KO/Pi:Saving Data to File ..." ));
1433 qDebug("KO: Start saving data to file!"); 1439 qDebug("KO: Start saving data to file!");
1434 mView->saveCalendar( defaultFileName() ); 1440 mView->saveCalendar( defaultFileName() );
1435 1441
1436 int msNeeded = neededSaveTime.msecsTo( QDateTime::currentDateTime().time() ); 1442 int msNeeded = neededSaveTime.msecsTo( QDateTime::currentDateTime().time() );
1437 qDebug("KO: Needed %d ms for saving.",msNeeded ); 1443 qDebug("KO: Needed %d ms for saving.",msNeeded );
1438 QString savemes; 1444 QString savemes;
1439 savemes.sprintf(i18n("KO/Pi:File Saved. Needed %d sec, %d ms"),(msNeeded/1000)%100,msNeeded%1000 ); 1445 savemes.sprintf(i18n("KO/Pi:File Saved. Needed %d sec, %d ms"),(msNeeded/1000)%100,msNeeded%1000 );
1440 setCaption(savemes); 1446 setCaption(savemes);
1441 } else 1447 } else
1442 setCaption(i18n("Saving cancelled!")); 1448 setCaption(i18n("Saving cancelled!"));
1443 mCalendarModifiedFlag = false; 1449 mCalendarModifiedFlag = false;
1444 mSyncManager->setBlockSave( false ); 1450 mSyncManager->setBlockSave( false );
1445} 1451}
1446 1452
1447void MainWindow::keyReleaseEvent ( QKeyEvent * e) 1453void MainWindow::keyReleaseEvent ( QKeyEvent * e)
1448{ 1454{
1449 if ( !e->isAutoRepeat() ) { 1455 if ( !e->isAutoRepeat() ) {
1450 mFlagKeyPressed = false; 1456 mFlagKeyPressed = false;
1451 } 1457 }
1452} 1458}
1453void MainWindow::keyPressEvent ( QKeyEvent * e ) 1459void MainWindow::keyPressEvent ( QKeyEvent * e )
1454{ 1460{
1455 qApp->processEvents(); 1461 qApp->processEvents();
1456 if ( e->isAutoRepeat() && !mFlagKeyPressed ) { 1462 if ( e->isAutoRepeat() && !mFlagKeyPressed ) {
1457 e->ignore(); 1463 e->ignore();
1458 // qDebug(" ignore %d",e->isAutoRepeat() ); 1464 // qDebug(" ignore %d",e->isAutoRepeat() );
1459 return; 1465 return;
1460 } 1466 }
1461 if (! e->isAutoRepeat() ) 1467 if (! e->isAutoRepeat() )
1462 mFlagKeyPressed = true; 1468 mFlagKeyPressed = true;
1463 KOPrefs *p = KOPrefs::instance(); 1469 KOPrefs *p = KOPrefs::instance();
1464 bool showSelectedDates = false; 1470 bool showSelectedDates = false;
1465 int size; 1471 int size;
1466 int pro = 0; 1472 int pro = 0;
1467 //qDebug("MainWindow::keyPressEvent "); 1473 //qDebug("MainWindow::keyPressEvent ");
1468 switch ( e->key() ) { 1474 switch ( e->key() ) {
1469 case Qt::Key_Right: 1475 case Qt::Key_Right:
1470 if ( e->state() == Qt::ControlButton || e->state() == Qt::ShiftButton) 1476 if ( e->state() == Qt::ControlButton || e->state() == Qt::ShiftButton)
1471 mView->goNextMonth(); 1477 mView->goNextMonth();
1472 else 1478 else
1473 mView->goNext(); 1479 mView->goNext();
1474 showSelectedDates = true; 1480 showSelectedDates = true;
1475 break; 1481 break;
1476 case Qt::Key_Left: 1482 case Qt::Key_Left:
1477 if ( e->state() == Qt::ControlButton|| e->state() == Qt::ShiftButton ) 1483 if ( e->state() == Qt::ControlButton|| e->state() == Qt::ShiftButton )
1478 mView->goPreviousMonth(); 1484 mView->goPreviousMonth();
1479 else 1485 else
1480 mView->goPrevious(); 1486 mView->goPrevious();
1481 showSelectedDates = true; 1487 showSelectedDates = true;
1482 break; 1488 break;
1483 case Qt::Key_Down: 1489 case Qt::Key_Down:
1484 mView->viewManager()->agendaView()->scrollOneHourDown(); 1490 mView->viewManager()->agendaView()->scrollOneHourDown();
1485 break; 1491 break;
1486 case Qt::Key_Up: 1492 case Qt::Key_Up:
1487 mView->viewManager()->agendaView()->scrollOneHourUp(); 1493 mView->viewManager()->agendaView()->scrollOneHourUp();
1488 break; 1494 break;
1489 case Qt::Key_I: 1495 case Qt::Key_I:
1490 mView->showIncidence(); 1496 mView->showIncidence();
1491 break; 1497 break;
1492 case Qt::Key_Delete: 1498 case Qt::Key_Delete:
1493 case Qt::Key_Backspace: 1499 case Qt::Key_Backspace:
1494 mView->deleteIncidence(); 1500 mView->deleteIncidence();
1495 break; 1501 break;
1496 case Qt::Key_D: 1502 case Qt::Key_D:
1497 mView->viewManager()->showDayView(); 1503 mView->viewManager()->showDayView();
1498 showSelectedDates = true; 1504 showSelectedDates = true;
1499 break; 1505 break;
1500 case Qt::Key_O: 1506 case Qt::Key_O:
1501 mView->toggleFilerEnabled( ); 1507 mView->toggleFilerEnabled( );
1502 break; 1508 break;
1503 case Qt::Key_0: 1509 case Qt::Key_0:
1504 case Qt::Key_1: 1510 case Qt::Key_1:
1505 case Qt::Key_2: 1511 case Qt::Key_2:
1506 case Qt::Key_3: 1512 case Qt::Key_3:
1507 case Qt::Key_4: 1513 case Qt::Key_4:
1508 case Qt::Key_5: 1514 case Qt::Key_5:
1509 case Qt::Key_6: 1515 case Qt::Key_6:
1510 case Qt::Key_7: 1516 case Qt::Key_7:
1511 case Qt::Key_8: 1517 case Qt::Key_8:
1512 case Qt::Key_9: 1518 case Qt::Key_9:
1513 pro = e->key()-48; 1519 pro = e->key()-48;
1514 if ( pro == 0 ) 1520 if ( pro == 0 )
1515 pro = 10; 1521 pro = 10;
1516 if ( e->state() == Qt::ControlButton) 1522 if ( e->state() == Qt::ControlButton)
1517 pro += 10; 1523 pro += 10;
1518 break; 1524 break;
1519 case Qt::Key_M: 1525 case Qt::Key_M:
1520 mView->viewManager()->showMonthView(); 1526 mView->viewManager()->showMonthView();
1521 showSelectedDates = true; 1527 showSelectedDates = true;
1522 break; 1528 break;
1523 case Qt::Key_Insert: 1529 case Qt::Key_Insert:
1524 mView->newEvent(); 1530 mView->newEvent();
1525 break; 1531 break;
1526 case Qt::Key_S : 1532 case Qt::Key_S :
1527 if ( e->state() == Qt::ControlButton || e->state() == Qt::ShiftButton) 1533 if ( e->state() == Qt::ControlButton || e->state() == Qt::ShiftButton)
1528 mView->newSubTodo(); 1534 mView->newSubTodo();
1529 else 1535 else
1530 mView->dialogManager()->showSearchDialog(); 1536 mView->dialogManager()->showSearchDialog();
1531 break; 1537 break;
1532 case Qt::Key_Y : 1538 case Qt::Key_Y :
1533 case Qt::Key_Z : 1539 case Qt::Key_Z :
1534 mView->viewManager()->showWorkWeekView(); 1540 mView->viewManager()->showWorkWeekView();
1535 showSelectedDates = true; 1541 showSelectedDates = true;
1536 break; 1542 break;
1537 case Qt::Key_U : 1543 case Qt::Key_U :
1538 mView->viewManager()->showWeekView(); 1544 mView->viewManager()->showWeekView();
1539 showSelectedDates = true; 1545 showSelectedDates = true;
1540 break; 1546 break;
1541 case Qt::Key_H : 1547 case Qt::Key_H :
1542 keyBindings(); 1548 keyBindings();
1543 break; 1549 break;
1544 case Qt::Key_W: 1550 case Qt::Key_W:
1545 mView->viewManager()->showWhatsNextView(); 1551 mView->viewManager()->showWhatsNextView();
1546 break; 1552 break;
1547 case Qt::Key_L: 1553 case Qt::Key_L:
1548 mView->viewManager()->showListView(); 1554 mView->viewManager()->showListView();
1549 break; 1555 break;
1550 case Qt::Key_N: 1556 case Qt::Key_N:
1551 mView->viewManager()->showNextXView(); 1557 mView->viewManager()->showNextXView();
1552 showSelectedDates = true; 1558 showSelectedDates = true;
1553 break; 1559 break;
1554 case Qt::Key_V: 1560 case Qt::Key_V:
1555 mView->viewManager()->showTodoView(); 1561 mView->viewManager()->showTodoView();
1556 break; 1562 break;
1557 case Qt::Key_C: 1563 case Qt::Key_C:
1558 mView->viewManager()->agendaView()->setStartHour( QTime::currentTime ().hour() ); 1564 mView->viewManager()->agendaView()->setStartHour( QTime::currentTime ().hour() );
1559 break; 1565 break;
1560 case Qt::Key_P: 1566 case Qt::Key_P:
1561 mView->showDatePicker( ); 1567 mView->showDatePicker( );
1562 break; 1568 break;
1563 case Qt::Key_F: 1569 case Qt::Key_F:
1564 if ( e->state() == Qt::ControlButton|| e->state() == Qt::ShiftButton ) 1570 if ( e->state() == Qt::ControlButton|| e->state() == Qt::ShiftButton )
1565 mView->editFilters(); 1571 mView->editFilters();
1566 else 1572 else
1567 mView->toggleFilter(); 1573 mView->toggleFilter();
1568 break; 1574 break;
1569 case Qt::Key_X: 1575 case Qt::Key_X:
1570 mView->toggleDateNavigatorWidget(); 1576 mView->toggleDateNavigatorWidget();
1571 break; 1577 break;
1572 case Qt::Key_Space: 1578 case Qt::Key_Space:
1573 mView->toggleExpand(); 1579 mView->toggleExpand();
1574 break; 1580 break;
1575 case Qt::Key_A: 1581 case Qt::Key_A:
1576 mView->toggleAllDaySize(); 1582 mView->toggleAllDaySize();
1577 break; 1583 break;
1578 case Qt::Key_T: 1584 case Qt::Key_T:
1579 if ( e->state() == Qt::ControlButton|| e->state() == Qt::ShiftButton ) 1585 if ( e->state() == Qt::ControlButton|| e->state() == Qt::ShiftButton )
1580 mView->newTodo(); 1586 mView->newTodo();
1581 else { 1587 else {
1582 mView->goToday(); 1588 mView->goToday();
1583 showSelectedDates = true; 1589 showSelectedDates = true;
1584 } 1590 }
1585 break; 1591 break;
1586 case Qt::Key_J: 1592 case Qt::Key_J:
1587 mView->viewManager()->showJournalView(); 1593 mView->viewManager()->showJournalView();
1588 break; 1594 break;
1589 case Qt::Key_B: 1595 case Qt::Key_B:
1590 mView->editIncidenceDescription();; 1596 mView->editIncidenceDescription();;
1591 break; 1597 break;
1592 // case Qt::Key_Return: 1598 // case Qt::Key_Return:
1593 case Qt::Key_E: 1599 case Qt::Key_E:
1594 if ( e->state() == Qt::ControlButton|| e->state() == Qt::ShiftButton ) 1600 if ( e->state() == Qt::ControlButton|| e->state() == Qt::ShiftButton )
1595 mView->newEvent(); 1601 mView->newEvent();
1596 else 1602 else
1597 mView->editIncidence(); 1603 mView->editIncidence();
1598 break; 1604 break;
1599 case Qt::Key_Plus: 1605 case Qt::Key_Plus:
1600 size = p->mHourSize +2; 1606 size = p->mHourSize +2;
1601 if ( size <= 18 ) 1607 if ( size <= 18 )
1602 configureAgenda( size ); 1608 configureAgenda( size );
1603 break; 1609 break;
1604 case Qt::Key_Minus: 1610 case Qt::Key_Minus:
1605 size = p->mHourSize - 2; 1611 size = p->mHourSize - 2;
1606 if ( size >= 4 ) 1612 if ( size >= 4 )
1607 configureAgenda( size ); 1613 configureAgenda( size );
1608 break; 1614 break;
1609 1615
1610 1616
1611 default: 1617 default:
1612 e->ignore(); 1618 e->ignore();
1613 } 1619 }
1614 if ( pro > 0 ) { 1620 if ( pro > 0 ) {
1615 mView->selectFilter( pro-1 ); 1621 mView->selectFilter( pro-1 );
1616 } 1622 }
1617 if ( showSelectedDates ) { 1623 if ( showSelectedDates ) {
1618 ;// setCaptionToDates(); 1624 ;// setCaptionToDates();
1619 } 1625 }
1620 1626
1621} 1627}
1622 1628
1623void MainWindow::fillFilterMenu() 1629void MainWindow::fillFilterMenu()
1624{ 1630{
1625 selectFilterMenu->clear(); 1631 selectFilterMenu->clear();
1626 bool disable = false; 1632 bool disable = false;
1627 if ( mView->filterView()->filtersEnabled() ) { 1633 if ( mView->filterView()->filtersEnabled() ) {
1628 selectFilterMenu->insertItem(i18n ( "Turn filter off" ), 0 ); 1634 selectFilterMenu->insertItem(i18n ( "Turn filter off" ), 0 );
1629 } 1635 }
1630 else { 1636 else {
1631 selectFilterMenu->insertItem(i18n ( "Turn filter on" ), 0 ); 1637 selectFilterMenu->insertItem(i18n ( "Turn filter on" ), 0 );
1632 disable = true; 1638 disable = true;
1633 } 1639 }
1634 selectFilterMenu->insertSeparator(); 1640 selectFilterMenu->insertSeparator();
1635 QPtrList<CalFilter> fili = mView->filters(); 1641 QPtrList<CalFilter> fili = mView->filters();
1636 CalFilter *curfilter = mView->filterView()->selectedFilter(); 1642 CalFilter *curfilter = mView->filterView()->selectedFilter();
1637 CalFilter *filter = fili.first(); 1643 CalFilter *filter = fili.first();
1638 int iii = 1; 1644 int iii = 1;
1639 while(filter) { 1645 while(filter) {
1640 selectFilterMenu->insertItem( filter->name(), iii ); 1646 selectFilterMenu->insertItem( filter->name(), iii );
1641 if ( filter == curfilter) 1647 if ( filter == curfilter)
1642 selectFilterMenu->setItemChecked( iii, true ); 1648 selectFilterMenu->setItemChecked( iii, true );
1643 if ( disable ) 1649 if ( disable )
1644 selectFilterMenu->setItemEnabled( iii, false ); 1650 selectFilterMenu->setItemEnabled( iii, false );
1645 filter = fili.next(); 1651 filter = fili.next();
1646 ++iii; 1652 ++iii;
1647 } 1653 }
1648} 1654}
1649void MainWindow::selectFilter( int fil ) 1655void MainWindow::selectFilter( int fil )
1650{ 1656{
1651 if ( fil == 0 ) { 1657 if ( fil == 0 ) {
1652 mView->toggleFilerEnabled( ); 1658 mView->toggleFilerEnabled( );
1653 } else { 1659 } else {
1654 mView->selectFilter( fil-1 ); 1660 mView->selectFilter( fil-1 );
1655 } 1661 }
1656} 1662}
1657void MainWindow::configureToolBar( int item ) 1663void MainWindow::configureToolBar( int item )
1658{ 1664{
1659 1665
1660 configureToolBarMenu->setItemChecked( item, !configureToolBarMenu-> isItemChecked ( item ) ); 1666 configureToolBarMenu->setItemChecked( item, !configureToolBarMenu-> isItemChecked ( item ) );
1661 KOPrefs *p = KOPrefs::instance(); 1667 KOPrefs *p = KOPrefs::instance();
1662 p-> mShowIconStretch= configureToolBarMenu->isItemChecked( 5 ); 1668 p-> mShowIconStretch= configureToolBarMenu->isItemChecked( 5 );
1663 p-> mShowIconNewEvent= configureToolBarMenu->isItemChecked( 10 ); 1669 p-> mShowIconNewEvent= configureToolBarMenu->isItemChecked( 10 );
1664 p->mShowIconNewTodo = configureToolBarMenu->isItemChecked( 20 ); 1670 p->mShowIconNewTodo = configureToolBarMenu->isItemChecked( 20 );
1665 p-> mShowIconSearch= configureToolBarMenu->isItemChecked( 120 ); 1671 p-> mShowIconSearch= configureToolBarMenu->isItemChecked( 120 );
1666 p-> mShowIconList= configureToolBarMenu->isItemChecked( 30 ); 1672 p-> mShowIconList= configureToolBarMenu->isItemChecked( 30 );
1667 p-> mShowIconDay1= configureToolBarMenu->isItemChecked( 40 ); 1673 p-> mShowIconDay1= configureToolBarMenu->isItemChecked( 40 );
1668 p-> mShowIconDay5= configureToolBarMenu->isItemChecked( 50 ); 1674 p-> mShowIconDay5= configureToolBarMenu->isItemChecked( 50 );
1669 p-> mShowIconDay7= configureToolBarMenu->isItemChecked( 60 ); 1675 p-> mShowIconDay7= configureToolBarMenu->isItemChecked( 60 );
1670 p-> mShowIconMonth= configureToolBarMenu->isItemChecked( 70 ); 1676 p-> mShowIconMonth= configureToolBarMenu->isItemChecked( 70 );
1671 p-> mShowIconTodoview= configureToolBarMenu->isItemChecked( 80 ); 1677 p-> mShowIconTodoview= configureToolBarMenu->isItemChecked( 80 );
1672 p-> mShowIconBackFast= configureToolBarMenu->isItemChecked( 200 ); 1678 p-> mShowIconBackFast= configureToolBarMenu->isItemChecked( 200 );
1673 p-> mShowIconBack = configureToolBarMenu->isItemChecked( 210 ); 1679 p-> mShowIconBack = configureToolBarMenu->isItemChecked( 210 );
1674 p-> mShowIconToday= configureToolBarMenu->isItemChecked( 130 ); 1680 p-> mShowIconToday= configureToolBarMenu->isItemChecked( 130 );
1675 p-> mShowIconForward= configureToolBarMenu->isItemChecked( 220 ); 1681 p-> mShowIconForward= configureToolBarMenu->isItemChecked( 220 );
1676 p-> mShowIconForwardFast= configureToolBarMenu->isItemChecked( 230 ); 1682 p-> mShowIconForwardFast= configureToolBarMenu->isItemChecked( 230 );
1677 p-> mShowIconNextDays= configureToolBarMenu->isItemChecked( 100 ); 1683 p-> mShowIconNextDays= configureToolBarMenu->isItemChecked( 100 );
1678 p-> mShowIconNext= configureToolBarMenu->isItemChecked( 110 ); 1684 p-> mShowIconNext= configureToolBarMenu->isItemChecked( 110 );
1679 p-> mShowIconJournal= configureToolBarMenu->isItemChecked( 90 ); 1685 p-> mShowIconJournal= configureToolBarMenu->isItemChecked( 90 );
1680 p-> mShowIconWhatsThis= configureToolBarMenu->isItemChecked( 300 ); 1686 p-> mShowIconWhatsThis= configureToolBarMenu->isItemChecked( 300 );
1681 // initActions(); 1687 // initActions();
1682} 1688}
1683 1689
1684void MainWindow::setCaptionToDates() 1690void MainWindow::setCaptionToDates()
1685{ 1691{
1686 QString selDates; 1692 QString selDates;
1687 selDates = KGlobal::locale()->formatDate(mView->startDate(), true); 1693 selDates = KGlobal::locale()->formatDate(mView->startDate(), true);
1688 if (mView->startDate() < mView->endDate() ) 1694 if (mView->startDate() < mView->endDate() )
1689 selDates += " - " + KGlobal::locale()->formatDate(mView->endDate(), true); 1695 selDates += " - " + KGlobal::locale()->formatDate(mView->endDate(), true);
1690 setCaption( i18n("Dates: ") + selDates ); 1696 setCaption( i18n("Dates: ") + selDates );
1691 1697
1692} 1698}
1693// parameter item == 0: reinit 1699// parameter item == 0: reinit
1694void MainWindow::configureAgenda( int item ) 1700void MainWindow::configureAgenda( int item )
1695{ 1701{
1696 1702
1697 KOPrefs *p = KOPrefs::instance(); 1703 KOPrefs *p = KOPrefs::instance();
1698 1704
1699 int i; 1705 int i;
1700 if ( item == 1 ) { 1706 if ( item == 1 ) {
1701 mView->toggleAllDaySize(); 1707 mView->toggleAllDaySize();
1702 return; 1708 return;
1703 } 1709 }
1704 // do not allow 4 for widgets higher than 480 1710 // do not allow 4 for widgets higher than 480
1705 // if ( QApplication::desktop()->height() > 480 ) { 1711 // if ( QApplication::desktop()->height() > 480 ) {
1706// if ( item == 4 ) 1712// if ( item == 4 )
1707// item = 6; 1713// item = 6;
1708// } 1714// }
1709 for ( i = 4; i <= 18; i= i+2 ) 1715 for ( i = 4; i <= 18; i= i+2 )
1710 configureAgendaMenu->setItemChecked( i, false ); 1716 configureAgendaMenu->setItemChecked( i, false );
1711 configureAgendaMenu->setItemChecked( item, true ); 1717 configureAgendaMenu->setItemChecked( item, true );
1712 if ( p->mHourSize == item ) 1718 if ( p->mHourSize == item )
1713 return; 1719 return;
1714 p->mHourSize=item; 1720 p->mHourSize=item;
1715 mView->viewManager()->agendaView()->updateConfig(); 1721 mView->viewManager()->agendaView()->updateConfig();
1716} 1722}
1717 1723
1718void MainWindow::saveCalendar() 1724void MainWindow::saveCalendar()
1719{ 1725{
1720 QString fn = KOPrefs::instance()->mLastSaveFile; 1726 QString fn = KOPrefs::instance()->mLastSaveFile;
1721 fn = KFileDialog::getSaveFileName( fn, i18n("Save backup filename"), this ); 1727 fn = KFileDialog::getSaveFileName( fn, i18n("Save backup filename"), this );
1722 1728
1723 if ( fn == "" ) 1729 if ( fn == "" )
1724 return; 1730 return;
1725 QFileInfo info; 1731 QFileInfo info;
1726 info.setFile( fn ); 1732 info.setFile( fn );
1727 QString mes; 1733 QString mes;
1728 bool createbup = true; 1734 bool createbup = true;
1729 if ( info. exists() ) { 1735 if ( info. exists() ) {
1730 mes = i18n("Backup file\nalready exists!\nOld backup file from:\n%1\nOverwrite?\n").arg(KGlobal::locale()->formatDateTime(info.lastModified (), true, false )) ; 1736 mes = i18n("Backup file\nalready exists!\nOld backup file from:\n%1\nOverwrite?\n").arg(KGlobal::locale()->formatDateTime(info.lastModified (), true, false )) ;
1731 int result = QMessageBox::warning( this, i18n("KO/Pi: Warning!"),mes, 1737 int result = QMessageBox::warning( this, i18n("KO/Pi: Warning!"),mes,
1732 i18n("Overwrite!"), i18n("Cancel"), 0, 1738 i18n("Overwrite!"), i18n("Cancel"), 0,
1733 0, 1 ); 1739 0, 1 );
1734 if ( result != 0 ) { 1740 if ( result != 0 ) {
1735 createbup = false; 1741 createbup = false;
1736 } 1742 }
1737 } 1743 }
1738 if ( createbup ) { 1744 if ( createbup ) {
1739 mView->saveCalendar( fn ); 1745 mView->saveCalendar( fn );
1740 mes = i18n("KO/Pi:Saved %1").arg(fn); 1746 mes = i18n("KO/Pi:Saved %1").arg(fn);
1741 KOPrefs::instance()->mLastSaveFile = fn; 1747 KOPrefs::instance()->mLastSaveFile = fn;
1742 setCaption(mes); 1748 setCaption(mes);
1743 } 1749 }
1744} 1750}
1745void MainWindow::loadCalendar() 1751void MainWindow::loadCalendar()
1746{ 1752{
1747 1753
1748 QString fn = KOPrefs::instance()->mLastLoadFile; 1754 QString fn = KOPrefs::instance()->mLastLoadFile;
1749 fn = KFileDialog::getOpenFileName( fn, i18n("Load backup filename"), this ); 1755 fn = KFileDialog::getOpenFileName( fn, i18n("Load backup filename"), this );
1750 1756
1751 if ( fn == "" ) 1757 if ( fn == "" )
1752 return; 1758 return;
1753 QFileInfo info; 1759 QFileInfo info;
1754 info.setFile( fn ); 1760 info.setFile( fn );
1755 QString mess; 1761 QString mess;
1756 bool loadbup = true; 1762 bool loadbup = true;
1757 if ( info. exists() ) { 1763 if ( info. exists() ) {
1758 mess = i18n("Backup file from:\n%1\nLoading backup\nfile will delete\nyour current Data!\n").arg(KGlobal::locale()->formatDateTime(info.lastModified (), true, false )); 1764 mess = i18n("Backup file from:\n%1\nLoading backup\nfile will delete\nyour current Data!\n").arg(KGlobal::locale()->formatDateTime(info.lastModified (), true, false ));
1759 int result = QMessageBox::warning( this, "KO/Pi: Warning!", 1765 int result = QMessageBox::warning( this, "KO/Pi: Warning!",
1760 mess, 1766 mess,
1761 i18n("Load!"), i18n("Cancel"), 0, 1767 i18n("Load!"), i18n("Cancel"), 0,
1762 0, 1 ); 1768 0, 1 );
1763 if ( result != 0 ) { 1769 if ( result != 0 ) {
1764 loadbup = false; 1770 loadbup = false;
1765 } 1771 }
1766 } else { 1772 } else {
1767 QMessageBox::warning( this, i18n("KO/Pi: Warning!"), 1773 QMessageBox::warning( this, i18n("KO/Pi: Warning!"),
1768 i18n("Backup file\ndoes not exist!\nNothing loaded!"), 0, 0, 1774 i18n("Backup file\ndoes not exist!\nNothing loaded!"), 0, 0,
1769 0, 1 ); 1775 0, 1 );
1770 1776
1771 return; 1777 return;
1772 } 1778 }
1773 if ( loadbup ) { 1779 if ( loadbup ) {
1774 mView->openCalendar( fn ); 1780 mView->openCalendar( fn );
1775 KOPrefs::instance()->mLastLoadFile = fn; 1781 KOPrefs::instance()->mLastLoadFile = fn;
1776 mess = i18n("KO/Pi:Loaded %1").arg(fn) ; 1782 mess = i18n("KO/Pi:Loaded %1").arg(fn) ;
1777 setCaption(mess); 1783 setCaption(mess);
1778 } 1784 }
1779 1785
1780} 1786}
1781void MainWindow::quickImportIcal() 1787void MainWindow::quickImportIcal()
1782{ 1788{
1783 importFile( KOPrefs::instance()->mLastImportFile, false ); 1789 importFile( KOPrefs::instance()->mLastImportFile, false );
1784} 1790}
1785void MainWindow::importFile( QString fn, bool quick ) 1791void MainWindow::importFile( QString fn, bool quick )
1786{ 1792{
1787 QFileInfo info; 1793 QFileInfo info;
1788 info.setFile( fn ); 1794 info.setFile( fn );
1789 QString mess; 1795 QString mess;
1790 bool loadbup = true; 1796 bool loadbup = true;
1791 if ( !info. exists() ) { 1797 if ( !info. exists() ) {
1792 mess = i18n("Import file \n...%1\ndoes not exist!\nNothing imported!\n").arg(fn.right( 30)); 1798 mess = i18n("Import file \n...%1\ndoes not exist!\nNothing imported!\n").arg(fn.right( 30));
1793 int result = QMessageBox::warning( this, i18n("KO/Pi: Warning!"), 1799 int result = QMessageBox::warning( this, i18n("KO/Pi: Warning!"),
1794 mess ); 1800 mess );
1795 return; 1801 return;
1796 } 1802 }
1797 int result = 0; 1803 int result = 0;
1798 if ( !quick ) { 1804 if ( !quick ) {
1799 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 )); 1805 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 ));
1800 result = QMessageBox::warning( this, "KO/Pi: Warning!", 1806 result = QMessageBox::warning( this, "KO/Pi: Warning!",
1801 mess, 1807 mess,
1802 "Import", "Cancel", 0, 1808 "Import", "Cancel", 0,
1803 0, 1 ); 1809 0, 1 );
1804 } 1810 }
1805 if ( result == 0 ) { 1811 if ( result == 0 ) {
1806 if ( mView->openCalendar( fn, true )) { 1812 if ( mView->openCalendar( fn, true )) {
1807 KOPrefs::instance()->mLastImportFile = fn; 1813 KOPrefs::instance()->mLastImportFile = fn;
1808 setCaption(i18n("Imported file successfully")); 1814 setCaption(i18n("Imported file successfully"));
1809 } else { 1815 } else {
1810 setCaption(i18n("Error importing file")); 1816 setCaption(i18n("Error importing file"));
1811 } 1817 }
1812 } 1818 }
1813} 1819}
1814 1820
1815void MainWindow::importIcal() 1821void MainWindow::importIcal()
1816{ 1822{
1817 1823
1818 QString fn =KOPrefs::instance()->mLastImportFile; 1824 QString fn =KOPrefs::instance()->mLastImportFile;
1819 1825
1820 fn =KFileDialog:: getOpenFileName( fn, i18n("Import filename(*.ics/*.vcs)"), this ); 1826 fn =KFileDialog:: getOpenFileName( fn, i18n("Import filename(*.ics/*.vcs)"), this );
1821 if ( fn == "" ) 1827 if ( fn == "" )
1822 return; 1828 return;
1823 importFile( fn, true ); 1829 importFile( fn, true );
1824 1830
1825} 1831}
1826 1832
1827void MainWindow::exportVCalendar() 1833void MainWindow::exportVCalendar()
1828{ 1834{
1829 QString fn = KOPrefs::instance()->mLastVcalFile; 1835 QString fn = KOPrefs::instance()->mLastVcalFile;
1830 fn = KFileDialog::getSaveFileName( fn, i18n("Export vcal filename(*.vcs)"), this ); 1836 fn = KFileDialog::getSaveFileName( fn, i18n("Export vcal filename(*.vcs)"), this );
1831 if ( fn == "" ) 1837 if ( fn == "" )
1832 return; 1838 return;
1833 QFileInfo info; 1839 QFileInfo info;
1834 info.setFile( fn ); 1840 info.setFile( fn );
1835 QString mes; 1841 QString mes;
1836 bool createbup = true; 1842 bool createbup = true;
1837 if ( info. exists() ) { 1843 if ( info. exists() ) {
1838 mes = i18n("Save file\nalready exists!\nOld save file from:\n%1\nOverwrite?\n").arg (KGlobal::locale()->formatDateTime(info.lastModified (), true, false ) ); 1844 mes = i18n("Save file\nalready exists!\nOld save file from:\n%1\nOverwrite?\n").arg (KGlobal::locale()->formatDateTime(info.lastModified (), true, false ) );
1839 int result = QMessageBox::warning( this, i18n("KO/Pi: Warning!"),mes, 1845 int result = QMessageBox::warning( this, i18n("KO/Pi: Warning!"),mes,
1840 i18n("Overwrite!"), i18n("Cancel"), 0, 1846 i18n("Overwrite!"), i18n("Cancel"), 0,
1841 0, 1 ); 1847 0, 1 );
1842 if ( result != 0 ) { 1848 if ( result != 0 ) {
1843 createbup = false; 1849 createbup = false;
1844 } 1850 }
1845 } 1851 }
1846 if ( createbup ) { 1852 if ( createbup ) {
1847 if ( mView->exportVCalendar( fn ) ) { 1853 if ( mView->exportVCalendar( fn ) ) {
1848 KOPrefs::instance()->mLastVcalFile = fn; 1854 KOPrefs::instance()->mLastVcalFile = fn;
1849 if ( fn.length() > 20 ) 1855 if ( fn.length() > 20 )
1850 mes = i18n("KO/Pi:Exported to ...%1").arg(fn.right(20)) ; 1856 mes = i18n("KO/Pi:Exported to ...%1").arg(fn.right(20)) ;
1851 else 1857 else
1852 mes = i18n("KO/Pi:Exported to %1").arg(fn ); 1858 mes = i18n("KO/Pi:Exported to %1").arg(fn );
1853 setCaption(mes); 1859 setCaption(mes);
1854 } 1860 }
1855 } 1861 }
1856 1862
1857} 1863}
1858 1864
1859void MainWindow::syncFileRequest() 1865void MainWindow::syncFileRequest()
1860{ 1866{
1861 save(); 1867 save();
1862} 1868}
1863void MainWindow::getFile( bool success ) 1869void MainWindow::getFile( bool success )
1864{ 1870{
1865 if ( ! success ) { 1871 if ( ! success ) {
1866 setCaption( i18n("Error receiving file. Nothing changed!") ); 1872 setCaption( i18n("Error receiving file. Nothing changed!") );
1867 return; 1873 return;
1868 } 1874 }
1869 mView->openCalendar( defaultFileName() ); 1875 mView->openCalendar( defaultFileName() );
1870 setCaption( i18n("Pi-Sync successful!") ); 1876 setCaption( i18n("Pi-Sync successful!") );
1871} 1877}
1872 1878
1873void MainWindow::printSel( ) 1879void MainWindow::printSel( )
1874{ 1880{
1875 mView->viewManager()->agendaView()->agenda()->printSelection(); 1881 mView->viewManager()->agendaView()->agenda()->printSelection();
1876} 1882}
1877 1883
1878void MainWindow::printCal() 1884void MainWindow::printCal()
1879{ 1885{
1880 mView->print();//mCp->showDialog(); 1886 mView->print();//mCp->showDialog();
1881} 1887}
1882 1888