-rw-r--r-- | bin/kdepim/WhatsNew.txt | 1 | ||||
-rw-r--r-- | korganizer/kofilterview.cpp | 7 | ||||
-rw-r--r-- | korganizer/koprefs.cpp | 8 | ||||
-rw-r--r-- | korganizer/mainwindow.cpp | 6 |
4 files changed, 12 insertions, 10 deletions
diff --git a/bin/kdepim/WhatsNew.txt b/bin/kdepim/WhatsNew.txt index 944ee1e..0160dbe 100644 --- a/bin/kdepim/WhatsNew.txt +++ b/bin/kdepim/WhatsNew.txt | |||
@@ -1,32 +1,33 @@ | |||
1 | Info about the changes in new versions of KDE-Pim/Pi | 1 | Info about the changes in new versions of KDE-Pim/Pi |
2 | 2 | ||
3 | ********** VERSION 2.2.1 ************ | 3 | ********** VERSION 2.2.1 ************ |
4 | 4 | ||
5 | KO/Pi: | 5 | KO/Pi: |
6 | Fixed a problem displaying very long allday events in agenda view in single day mode. | 6 | Fixed a problem displaying very long allday events in agenda view in single day mode. |
7 | Fixed a problem with the default settings for new todos. | 7 | Fixed a problem with the default settings for new todos. |
8 | Added an error message dialog if saving of calendar files is not possible. | 8 | Added an error message dialog if saving of calendar files is not possible. |
9 | Made it impossible to close KO/Pi if saving fails. | 9 | Made it impossible to close KO/Pi if saving fails. |
10 | Fixed a problem adding calendars on windows such that these calendars can be used on the memory stick. | ||
10 | 11 | ||
11 | KA/Pi: | 12 | KA/Pi: |
12 | Added a config option to turn on asking before a contact is deleted. | 13 | Added a config option to turn on asking before a contact is deleted. |
13 | Fixed a problem with the default view and view selection at startup. | 14 | Fixed a problem with the default view and view selection at startup. |
14 | Formatted name is now set on import, if formatted name is empty. | 15 | Formatted name is now set on import, if formatted name is empty. |
15 | 16 | ||
16 | ********** VERSION 2.2.0 ************ | 17 | ********** VERSION 2.2.0 ************ |
17 | 18 | ||
18 | New stable release! | 19 | New stable release! |
19 | Fixed some minor usability problems. | 20 | Fixed some minor usability problems. |
20 | Added writing of next alarm to a file for usage on pdaXrom. | 21 | Added writing of next alarm to a file for usage on pdaXrom. |
21 | 22 | ||
22 | 23 | ||
23 | ************************************* | 24 | ************************************* |
24 | 25 | ||
25 | You can find the complete changelog | 26 | You can find the complete changelog |
26 | from version 1.7.7 to 2.2.0 | 27 | from version 1.7.7 to 2.2.0 |
27 | in the source package or on | 28 | in the source package or on |
28 | 29 | ||
29 | http://www.pi-sync.net/html/changelog.html | 30 | http://www.pi-sync.net/html/changelog.html |
30 | 31 | ||
31 | 32 | ||
32 | 33 | ||
diff --git a/korganizer/kofilterview.cpp b/korganizer/kofilterview.cpp index e86ec95..ef25fd0 100644 --- a/korganizer/kofilterview.cpp +++ b/korganizer/kofilterview.cpp | |||
@@ -1,128 +1,129 @@ | |||
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 <qcheckbox.h> | 24 | #include <qcheckbox.h> |
25 | #include <qcombobox.h> | 25 | #include <qcombobox.h> |
26 | #include <qpushbutton.h> | 26 | #include <qpushbutton.h> |
27 | #include <qlayout.h> | 27 | #include <qlayout.h> |
28 | #include <qlabel.h> | 28 | #include <qlabel.h> |
29 | #include <qdialog.h> | 29 | #include <qdialog.h> |
30 | #include <qtextstream.h> | 30 | #include <qtextstream.h> |
31 | #include <qtextcodec.h> | 31 | #include <qtextcodec.h> |
32 | #include <qwhatsthis.h> | 32 | #include <qwhatsthis.h> |
33 | #include <qdir.h> | ||
33 | 34 | ||
34 | 35 | ||
35 | #include <libkcal/calfilter.h> | 36 | #include <libkcal/calfilter.h> |
36 | 37 | ||
37 | #include "kofilterview.h" | 38 | #include "kofilterview.h" |
38 | #include "koprefs.h" | 39 | #include "koprefs.h" |
39 | #include <kiconloader.h> | 40 | #include <kiconloader.h> |
40 | #include <kglobal.h> | 41 | #include <kglobal.h> |
41 | #include <kglobalsettings.h> | 42 | #include <kglobalsettings.h> |
42 | #include <kcolorbutton.h> | 43 | #include <kcolorbutton.h> |
43 | #include <kmessagebox.h> | 44 | #include <kmessagebox.h> |
44 | 45 | ||
45 | 46 | ||
46 | 47 | ||
47 | 48 | ||
48 | 49 | ||
49 | KOFilterView::KOFilterView(QPtrList<CalFilter> *filterList,QWidget* parent, | 50 | KOFilterView::KOFilterView(QPtrList<CalFilter> *filterList,QWidget* parent, |
50 | const char* name,WFlags fl ) | 51 | const char* name,WFlags fl ) |
51 | : KOFilterView_base(parent,name,fl) | 52 | : KOFilterView_base(parent,name,fl) |
52 | { | 53 | { |
53 | mFilters = filterList; | 54 | mFilters = filterList; |
54 | 55 | ||
55 | connect(mSelectionCombo,SIGNAL(activated(int)),SIGNAL(filterChanged())); | 56 | connect(mSelectionCombo,SIGNAL(activated(int)),SIGNAL(filterChanged())); |
56 | connect(mEnabledCheck,SIGNAL(clicked()),SIGNAL(filterChanged())); | 57 | connect(mEnabledCheck,SIGNAL(clicked()),SIGNAL(filterChanged())); |
57 | connect(mEditButton,SIGNAL(clicked()),SIGNAL(editFilters())); | 58 | connect(mEditButton,SIGNAL(clicked()),SIGNAL(editFilters())); |
58 | } | 59 | } |
59 | 60 | ||
60 | KOFilterView::~KOFilterView() | 61 | KOFilterView::~KOFilterView() |
61 | { | 62 | { |
62 | // no need to delete child widgets, Qt does it all for us | 63 | // no need to delete child widgets, Qt does it all for us |
63 | } | 64 | } |
64 | 65 | ||
65 | bool KOFilterView::filtersEnabled() | 66 | bool KOFilterView::filtersEnabled() |
66 | { | 67 | { |
67 | return mEnabledCheck->isChecked(); | 68 | return mEnabledCheck->isChecked(); |
68 | } | 69 | } |
69 | 70 | ||
70 | void KOFilterView::setFiltersEnabled(bool set) | 71 | void KOFilterView::setFiltersEnabled(bool set) |
71 | { | 72 | { |
72 | mEnabledCheck->setChecked(set); | 73 | mEnabledCheck->setChecked(set); |
73 | emit filterChanged(); | 74 | emit filterChanged(); |
74 | } | 75 | } |
75 | 76 | ||
76 | 77 | ||
77 | void KOFilterView::updateFilters() | 78 | void KOFilterView::updateFilters() |
78 | { | 79 | { |
79 | mSelectionCombo->clear(); | 80 | mSelectionCombo->clear(); |
80 | 81 | ||
81 | CalFilter *filter = mFilters->first(); | 82 | CalFilter *filter = mFilters->first(); |
82 | while(filter) { | 83 | while(filter) { |
83 | mSelectionCombo->insertItem(filter->name()); | 84 | mSelectionCombo->insertItem(filter->name()); |
84 | filter = mFilters->next(); | 85 | filter = mFilters->next(); |
85 | } | 86 | } |
86 | } | 87 | } |
87 | 88 | ||
88 | CalFilter *KOFilterView::selectedFilter() | 89 | CalFilter *KOFilterView::selectedFilter() |
89 | { | 90 | { |
90 | CalFilter *f = mFilters->at(mSelectionCombo->currentItem()); | 91 | CalFilter *f = mFilters->at(mSelectionCombo->currentItem()); |
91 | return f; | 92 | return f; |
92 | } | 93 | } |
93 | 94 | ||
94 | void KOFilterView::setSelectedFilter(QString filterName) | 95 | void KOFilterView::setSelectedFilter(QString filterName) |
95 | { | 96 | { |
96 | int filter_num = mSelectionCombo->count(); | 97 | int filter_num = mSelectionCombo->count(); |
97 | int i; | 98 | int i; |
98 | for (i=0;i<filter_num;i++) { | 99 | for (i=0;i<filter_num;i++) { |
99 | if (mSelectionCombo->text(i)==filterName) | 100 | if (mSelectionCombo->text(i)==filterName) |
100 | mSelectionCombo->setCurrentItem(i); | 101 | mSelectionCombo->setCurrentItem(i); |
101 | } | 102 | } |
102 | emit filterChanged(); | 103 | emit filterChanged(); |
103 | } | 104 | } |
104 | void KOFilterView::setSelectedFilter( int fil ) | 105 | void KOFilterView::setSelectedFilter( int fil ) |
105 | { | 106 | { |
106 | if ( fil >= mSelectionCombo->count() ) | 107 | if ( fil >= mSelectionCombo->count() ) |
107 | return; | 108 | return; |
108 | mSelectionCombo->setCurrentItem( fil ); | 109 | mSelectionCombo->setCurrentItem( fil ); |
109 | emit filterChanged(); | 110 | emit filterChanged(); |
110 | } | 111 | } |
111 | 112 | ||
112 | 113 | ||
113 | 114 | ||
114 | KOCalEditView::KOCalEditView(QWidget* parent, | 115 | KOCalEditView::KOCalEditView(QWidget* parent, |
115 | const char* name ) | 116 | const char* name ) |
116 | : QScrollView(parent,name) | 117 | : QScrollView(parent,name) |
117 | { | 118 | { |
118 | mw = 0; | 119 | mw = 0; |
119 | setResizePolicy( AutoOneFit ); | 120 | setResizePolicy( AutoOneFit ); |
120 | setFrameStyle ( QFrame::Panel | QFrame::Plain ); | 121 | setFrameStyle ( QFrame::Panel | QFrame::Plain ); |
121 | setLineWidth ( 1 ); | 122 | setLineWidth ( 1 ); |
122 | setMidLineWidth ( 1 ); | 123 | setMidLineWidth ( 1 ); |
123 | setFocusPolicy(NoFocus); | 124 | setFocusPolicy(NoFocus); |
124 | } | 125 | } |
125 | 126 | ||
126 | KOCalEditView::~KOCalEditView() | 127 | KOCalEditView::~KOCalEditView() |
127 | { | 128 | { |
128 | // no need to delete child widgets, Qt does it all for us | 129 | // no need to delete child widgets, Qt does it all for us |
@@ -314,183 +315,183 @@ void KOCalEditView::readConfig() | |||
314 | KOCalCheckButton* cb = new KOCalCheckButton( mw ); | 315 | KOCalCheckButton* cb = new KOCalCheckButton( mw ); |
315 | mainLayout->addWidget( cb,row,++iii );mEnabledB.append( cb ); | 316 | mainLayout->addWidget( cb,row,++iii );mEnabledB.append( cb ); |
316 | cb->setChecked( kkf->isEnabled && !kkf->mErrorOnLoad ); | 317 | cb->setChecked( kkf->isEnabled && !kkf->mErrorOnLoad ); |
317 | cb->setNum( kkf->mCalNumber ); | 318 | cb->setNum( kkf->mCalNumber ); |
318 | if ( kkf->mErrorOnLoad ) | 319 | if ( kkf->mErrorOnLoad ) |
319 | cb->setEnabled( false ); | 320 | cb->setEnabled( false ); |
320 | connect (cb, SIGNAL (selectNum(int,bool)), SLOT ( selectCal(int,bool) ) ); | 321 | connect (cb, SIGNAL (selectNum(int,bool)), SLOT ( selectCal(int,bool) ) ); |
321 | KOCalButton* name = new KOCalButton( mw ); | 322 | KOCalButton* name = new KOCalButton( mw ); |
322 | name->setNum( kkf->mCalNumber ); | 323 | name->setNum( kkf->mCalNumber ); |
323 | name->setText( kkf->mName ); | 324 | name->setText( kkf->mName ); |
324 | mainLayout->addWidget( name,row,++iii ); | 325 | mainLayout->addWidget( name,row,++iii ); |
325 | connect (name, SIGNAL (selectNum(int)), SLOT ( infoCal(int) ) ); | 326 | connect (name, SIGNAL (selectNum(int)), SLOT ( infoCal(int) ) ); |
326 | //lab = new QLabel (" ", mw ); | 327 | //lab = new QLabel (" ", mw ); |
327 | //mainLayout->addWidget( lab,row,++iii ); | 328 | //mainLayout->addWidget( lab,row,++iii ); |
328 | cb = new KOCalCheckButton( mw ); | 329 | cb = new KOCalCheckButton( mw ); |
329 | mainLayout->addWidget( cb,row,++iii );mAlarmB.append( cb ); | 330 | mainLayout->addWidget( cb,row,++iii );mAlarmB.append( cb ); |
330 | cb->setChecked( kkf->isAlarmEnabled && !kkf->mErrorOnLoad); | 331 | cb->setChecked( kkf->isAlarmEnabled && !kkf->mErrorOnLoad); |
331 | cb->setNum( kkf->mCalNumber ); | 332 | cb->setNum( kkf->mCalNumber ); |
332 | connect (cb, SIGNAL (selectNum(int,bool)), SLOT ( selectCalAlarm(int,bool) ) ); | 333 | connect (cb, SIGNAL (selectNum(int,bool)), SLOT ( selectCalAlarm(int,bool) ) ); |
333 | if ( kkf->mErrorOnLoad ) | 334 | if ( kkf->mErrorOnLoad ) |
334 | cb->setEnabled( false ); | 335 | cb->setEnabled( false ); |
335 | cb = new KOCalCheckButton( mw ); | 336 | cb = new KOCalCheckButton( mw ); |
336 | mainLayout->addWidget( cb,row,++iii );mROB.append( cb ); | 337 | mainLayout->addWidget( cb,row,++iii );mROB.append( cb ); |
337 | cb->setChecked( kkf->isReadOnly ); | 338 | cb->setChecked( kkf->isReadOnly ); |
338 | cb->setNum( kkf->mCalNumber ); | 339 | cb->setNum( kkf->mCalNumber ); |
339 | connect (cb, SIGNAL (selectNum(int,bool)), SLOT ( selectReadOnly(int,bool) ) ); | 340 | connect (cb, SIGNAL (selectNum(int,bool)), SLOT ( selectReadOnly(int,bool) ) ); |
340 | if ( kkf->mErrorOnLoad ) | 341 | if ( kkf->mErrorOnLoad ) |
341 | cb->setEnabled( false ); | 342 | cb->setEnabled( false ); |
342 | if ( row > 1) { | 343 | if ( row > 1) { |
343 | KColorButton *colb = new KColorButton( mw ); | 344 | KColorButton *colb = new KColorButton( mw ); |
344 | mainLayout->addWidget( colb,row,++iii ); | 345 | mainLayout->addWidget( colb,row,++iii ); |
345 | colb->setID( kkf->mCalNumber ); | 346 | colb->setID( kkf->mCalNumber ); |
346 | colb->setColor( kkf->mDefaultColor ); | 347 | colb->setColor( kkf->mDefaultColor ); |
347 | connect (colb, SIGNAL (changedID(const QColor&, int )), SLOT ( setColor(const QColor&,int) ) ); | 348 | connect (colb, SIGNAL (changedID(const QColor&, int )), SLOT ( setColor(const QColor&,int) ) ); |
348 | KOCalButton* calb = new KOCalButton( mw ); | 349 | KOCalButton* calb = new KOCalButton( mw ); |
349 | mainLayout->addWidget( calb,row,++iii ); | 350 | mainLayout->addWidget( calb,row,++iii ); |
350 | calb->setNum( kkf->mCalNumber ); | 351 | calb->setNum( kkf->mCalNumber ); |
351 | calb->setPixmap ( SmallIcon("minus")); | 352 | calb->setPixmap ( SmallIcon("minus")); |
352 | connect (calb, SIGNAL (selectNum(int)), SLOT ( deleteCal(int) ) ); | 353 | connect (calb, SIGNAL (selectNum(int)), SLOT ( deleteCal(int) ) ); |
353 | int hei = calb->sizeHint().height(); | 354 | int hei = calb->sizeHint().height(); |
354 | //calb->setMaximumSize( hei*9/10, hei*9/10 ); | 355 | //calb->setMaximumSize( hei*9/10, hei*9/10 ); |
355 | } | 356 | } |
356 | ++row; | 357 | ++row; |
357 | kkf = KOPrefs::instance()->mCalendars.next(); | 358 | kkf = KOPrefs::instance()->mCalendars.next(); |
358 | } | 359 | } |
359 | if ( errorLoadStandard ) | 360 | if ( errorLoadStandard ) |
360 | findNewStandard(); | 361 | findNewStandard(); |
361 | lab = new QLabel ( "", mw ); | 362 | lab = new QLabel ( "", mw ); |
362 | mainLayout->addWidget( lab,row,0 ); | 363 | mainLayout->addWidget( lab,row,0 ); |
363 | mw->show(); | 364 | mw->show(); |
364 | 365 | ||
365 | } | 366 | } |
366 | 367 | ||
367 | void KOCalEditView::defaultInfo() | 368 | void KOCalEditView::defaultInfo() |
368 | { | 369 | { |
369 | KMessageBox::information( this, i18n("Please choose the <b>default calendar</b> in this column. Newly created or imported items are added to the default calendar.") ); | 370 | KMessageBox::information( this, i18n("Please choose the <b>default calendar</b> in this column. Newly created or imported items are added to the default calendar.") ); |
370 | } | 371 | } |
371 | void KOCalEditView::addCal() | 372 | void KOCalEditView::addCal() |
372 | { | 373 | { |
373 | bool tryagain = true; | 374 | bool tryagain = true; |
374 | QString name, file = KGlobalSettings::calendarDir()+"newCal.ics"; | 375 | QString name, file = KGlobalSettings::calendarDir()+"newCal.ics"; |
375 | while ( tryagain ) { | 376 | while ( tryagain ) { |
376 | KONewCalPrefs prefs ( this ); | 377 | KONewCalPrefs prefs ( this ); |
377 | prefs.nameE->setText( name ); | 378 | prefs.nameE->setText( name ); |
378 | prefs.url->setURL( file ); | 379 | prefs.url->setURL( file ); |
379 | if ( ! prefs.exec() ) | 380 | if ( ! prefs.exec() ) |
380 | return; | 381 | return; |
381 | name = prefs.calName(); | 382 | name = prefs.calName(); |
382 | file = prefs.calFileName(); | 383 | file = prefs.calFileName(); |
383 | tryagain = false; | 384 | tryagain = false; |
384 | KopiCalendarFile * kkf = KOPrefs::instance()->mCalendars.first(); | 385 | KopiCalendarFile * kkf = KOPrefs::instance()->mCalendars.first(); |
385 | while ( kkf ) { | 386 | while ( kkf ) { |
386 | if ( kkf->mName == name ) { | 387 | if ( kkf->mName == name ) { |
387 | KMessageBox::information( this, i18n("Sorry, the calendar name \n%1\nalready exists!\nPlease choose another name!").arg( name ) ); | 388 | KMessageBox::information( this, i18n("Sorry, the calendar name \n%1\nalready exists!\nPlease choose another name!").arg( name ) ); |
388 | name = ""; | 389 | name = ""; |
389 | tryagain = true; | 390 | tryagain = true; |
390 | break; | 391 | break; |
391 | } | 392 | } |
392 | if ( kkf->mFileName == file ) { | 393 | if ( kkf->mFileName == file ) { |
393 | KMessageBox::information( this, i18n("Sorry, the file \n%1\nis already loaded!\nPlease choose another file!").arg( KGlobal::formatMessage (file, 0 )) ); | 394 | KMessageBox::information( this, i18n("Sorry, the file \n%1\nis already loaded!\nPlease choose another file!").arg( KGlobal::formatMessage (file, 0 )) ); |
394 | tryagain = true; | 395 | tryagain = true; |
395 | file = KGlobalSettings::calendarDir()+"newCal.ics"; | 396 | file = KGlobalSettings::calendarDir()+"newCal.ics"; |
396 | break; | 397 | break; |
397 | } | 398 | } |
398 | kkf = KOPrefs::instance()->mCalendars.next(); | 399 | kkf = KOPrefs::instance()->mCalendars.next(); |
399 | } | 400 | } |
400 | QFileInfo fi ( file ); | 401 | QFileInfo fi ( file ); |
401 | if ( fi.isDir() ) { | 402 | if ( fi.isDir() ) { |
402 | tryagain = true; | 403 | tryagain = true; |
403 | } | 404 | } |
404 | } | 405 | } |
405 | addCalendar ( name, file ); | 406 | addCalendar ( name, file ); |
406 | QTimer::singleShot( 100, this, SIGNAL ( checkCalendar() ) ); | 407 | QTimer::singleShot( 100, this, SIGNAL ( checkCalendar() ) ); |
407 | } | 408 | } |
408 | int KOCalEditView::addCalendar( QString name, QString file, bool ask ) | 409 | int KOCalEditView::addCalendar( QString name, QString file, bool ask ) |
409 | { | 410 | { |
410 | 411 | file = QDir::convertSeparators( file ); | |
411 | QFileInfo fi ( file ); | 412 | QFileInfo fi ( file ); |
412 | QString absFile = file; | 413 | QString absFile = file; |
413 | bool isRelative = false; | 414 | bool isRelative = false; |
414 | if ( fi.isRelative() ) { | 415 | if ( fi.isRelative() ) { |
415 | isRelative = true; | 416 | isRelative = true; |
416 | absFile = KGlobalSettings::calendarDir()+file; | 417 | absFile = QDir::convertSeparators( KGlobalSettings::calendarDir()+file ); |
417 | fi.setFile( absFile ); | 418 | fi.setFile( absFile ); |
418 | } else { | 419 | } else { |
419 | QString cd = KGlobalSettings::calendarDir(); | 420 | QString cd = QDir::convertSeparators( KGlobalSettings::calendarDir() ); |
420 | if ( file.left( cd.length() ) == cd ) { | 421 | if ( file.left( cd.length() ) == cd ) { |
421 | isRelative = true; | 422 | isRelative = true; |
422 | file = fi.fileName (); | 423 | file = fi.fileName (); |
423 | fi.setFile( absFile ); | 424 | fi.setFile( absFile ); |
424 | } | 425 | } |
425 | } | 426 | } |
426 | if (!fi.exists() ) { | 427 | if (!fi.exists() ) { |
427 | if ( ask ) | 428 | if ( ask ) |
428 | if ( KMessageBox::questionYesNo(this, i18n("The file\n%1\ndoes not exist!\nShall I create it for you?").arg( KGlobal::formatMessage (absFile,0) ) )== KMessageBox::No ) | 429 | if ( KMessageBox::questionYesNo(this, i18n("The file\n%1\ndoes not exist!\nShall I create it for you?").arg( KGlobal::formatMessage (absFile,0) ) )== KMessageBox::No ) |
429 | return 0; | 430 | return 0; |
430 | QFile fileIn( absFile ); | 431 | QFile fileIn( absFile ); |
431 | if (!fileIn.open( IO_WriteOnly ) ) { | 432 | if (!fileIn.open( IO_WriteOnly ) ) { |
432 | KMessageBox::sorry( this, i18n("Sorry, cannot create the file\n%1!\nNo calendar added!").arg( file ) ); | 433 | KMessageBox::sorry( this, i18n("Sorry, cannot create the file\n%1!\nNo calendar added!").arg( file ) ); |
433 | return 0; | 434 | return 0; |
434 | } | 435 | } |
435 | QTextStream tsIn( &fileIn ); | 436 | QTextStream tsIn( &fileIn ); |
436 | tsIn.setCodec( QTextCodec::codecForName("utf8") ); | 437 | tsIn.setCodec( QTextCodec::codecForName("utf8") ); |
437 | tsIn << "BEGIN:VCALENDAR\nPRODID:-//KDE-Pim//Platform-independent 2.1.0\nVERSION:2.0\nEND:VCALENDAR\n"; | 438 | tsIn << "BEGIN:VCALENDAR\nPRODID:-//KDE-Pim//Platform-independent 2.1.0\nVERSION:2.0\nEND:VCALENDAR\n"; |
438 | fileIn.close(); | 439 | fileIn.close(); |
439 | } | 440 | } |
440 | KopiCalendarFile * kkf = KOPrefs::instance()->getNewCalendar(); | 441 | KopiCalendarFile * kkf = KOPrefs::instance()->getNewCalendar(); |
441 | kkf->mName = name; | 442 | kkf->mName = name; |
442 | kkf->mFileName = absFile; | 443 | kkf->mFileName = absFile; |
443 | kkf->mSavedFileName = file; | 444 | kkf->mSavedFileName = file; |
444 | kkf->isRelative = isRelative; | 445 | kkf->isRelative = isRelative; |
445 | emit calendarAdded( kkf->mCalNumber ); | 446 | emit calendarAdded( kkf->mCalNumber ); |
446 | if ( ask ) | 447 | if ( ask ) |
447 | emit needsUpdate(); | 448 | emit needsUpdate(); |
448 | QTimer::singleShot( 0, this, SLOT ( readConfig() ) ); | 449 | QTimer::singleShot( 0, this, SLOT ( readConfig() ) ); |
449 | return kkf->mCalNumber; | 450 | return kkf->mCalNumber; |
450 | } | 451 | } |
451 | int KOCalEditView::getBirtdayID() | 452 | int KOCalEditView::getBirtdayID() |
452 | { | 453 | { |
453 | KopiCalendarFile * kkf = KOPrefs::instance()->mCalendars.first(); | 454 | KopiCalendarFile * kkf = KOPrefs::instance()->mCalendars.first(); |
454 | while ( kkf ) { | 455 | while ( kkf ) { |
455 | if ( kkf->mName == i18n("Birthdays") ) | 456 | if ( kkf->mName == i18n("Birthdays") ) |
456 | return kkf->mCalNumber; | 457 | return kkf->mCalNumber; |
457 | kkf = KOPrefs::instance()->mCalendars.next(); | 458 | kkf = KOPrefs::instance()->mCalendars.next(); |
458 | } | 459 | } |
459 | QString file = locateLocal( "data", "korganizer/birthdays.ics" ); | 460 | QString file = locateLocal( "data", "korganizer/birthdays.ics" ); |
460 | return addCalendar( i18n("Birthdays"), file, false ); | 461 | return addCalendar( i18n("Birthdays"), file, false ); |
461 | } | 462 | } |
462 | 463 | ||
463 | void KOCalEditView::enableAll() | 464 | void KOCalEditView::enableAll() |
464 | { | 465 | { |
465 | toggleList( mEnabledB ); | 466 | toggleList( mEnabledB ); |
466 | } | 467 | } |
467 | void KOCalEditView::enableAlarm() | 468 | void KOCalEditView::enableAlarm() |
468 | { | 469 | { |
469 | toggleList( mAlarmB ); | 470 | toggleList( mAlarmB ); |
470 | } | 471 | } |
471 | void KOCalEditView::disableRO() | 472 | void KOCalEditView::disableRO() |
472 | { | 473 | { |
473 | toggleList( mROB, false ); | 474 | toggleList( mROB, false ); |
474 | } | 475 | } |
475 | void KOCalEditView::toggleList ( QPtrList<KOCalCheckButton> list , bool enable ) | 476 | void KOCalEditView::toggleList ( QPtrList<KOCalCheckButton> list , bool enable ) |
476 | { | 477 | { |
477 | bool dis = !enable; | 478 | bool dis = !enable; |
478 | KOCalCheckButton* it = list.first(); | 479 | KOCalCheckButton* it = list.first(); |
479 | while ( it ) { | 480 | while ( it ) { |
480 | if ( !it->isChecked() == enable && it->isEnabled() ) { | 481 | if ( !it->isChecked() == enable && it->isEnabled() ) { |
481 | dis = !dis; | 482 | dis = !dis; |
482 | break; | 483 | break; |
483 | } | 484 | } |
484 | it = list.next(); | 485 | it = list.next(); |
485 | } | 486 | } |
486 | it = list.first(); | 487 | it = list.first(); |
487 | while ( it ) { | 488 | while ( it ) { |
488 | if ( it->isEnabled() ) | 489 | if ( it->isEnabled() ) |
489 | it->setChecked(dis); | 490 | it->setChecked(dis); |
490 | it = list.next(); | 491 | it = list.next(); |
491 | } | 492 | } |
492 | } | 493 | } |
493 | void KOCalEditView::deleteAll() | 494 | void KOCalEditView::deleteAll() |
494 | { | 495 | { |
495 | qDebug("delteAll"); | 496 | qDebug("delteAll"); |
496 | } | 497 | } |
diff --git a/korganizer/koprefs.cpp b/korganizer/koprefs.cpp index eb997f5..77f572c 100644 --- a/korganizer/koprefs.cpp +++ b/korganizer/koprefs.cpp | |||
@@ -356,216 +356,216 @@ void KOPrefs::fillMailDefaults() | |||
356 | if (mName.isEmpty()) mName = i18n("Anonymous"); | 356 | if (mName.isEmpty()) mName = i18n("Anonymous"); |
357 | if (mEmail.isEmpty()) mEmail = i18n("nobody@nowhere"); | 357 | if (mEmail.isEmpty()) mEmail = i18n("nobody@nowhere"); |
358 | } | 358 | } |
359 | 359 | ||
360 | void KOPrefs::setTimeZoneIdDefault() | 360 | void KOPrefs::setTimeZoneIdDefault() |
361 | { | 361 | { |
362 | ; | 362 | ; |
363 | } | 363 | } |
364 | 364 | ||
365 | void KOPrefs::setAllDefaults() | 365 | void KOPrefs::setAllDefaults() |
366 | { | 366 | { |
367 | setCategoryDefaults(); | 367 | setCategoryDefaults(); |
368 | mEventSummaryUser = getDefaultList() ; | 368 | mEventSummaryUser = getDefaultList() ; |
369 | mTodoSummaryUser = getDefaultList() ; | 369 | mTodoSummaryUser = getDefaultList() ; |
370 | mJournalSummaryUser = getDefaultList() ; | 370 | mJournalSummaryUser = getDefaultList() ; |
371 | mLocationDefaults = getLocationDefaultList(); | 371 | mLocationDefaults = getLocationDefaultList(); |
372 | } | 372 | } |
373 | 373 | ||
374 | void KOPrefs::setCategoryDefaults() | 374 | void KOPrefs::setCategoryDefaults() |
375 | { | 375 | { |
376 | mCustomCategories.clear(); | 376 | mCustomCategories.clear(); |
377 | mCustomCategories = getDefaultList(); | 377 | mCustomCategories = getDefaultList(); |
378 | 378 | ||
379 | QStringList::Iterator it; | 379 | QStringList::Iterator it; |
380 | for (it = mCustomCategories.begin();it != mCustomCategories.end();++it ) { | 380 | for (it = mCustomCategories.begin();it != mCustomCategories.end();++it ) { |
381 | setCategoryColor(*it,mDefaultCategoryColor); | 381 | setCategoryColor(*it,mDefaultCategoryColor); |
382 | } | 382 | } |
383 | } | 383 | } |
384 | QStringList KOPrefs::getLocationDefaultList() | 384 | QStringList KOPrefs::getLocationDefaultList() |
385 | { | 385 | { |
386 | QStringList retval ; | 386 | QStringList retval ; |
387 | retval << i18n("Home") << i18n("Office") << i18n("Library") << i18n("School") << i18n("Doctor") << i18n("Beach") | 387 | retval << i18n("Home") << i18n("Office") << i18n("Library") << i18n("School") << i18n("Doctor") << i18n("Beach") |
388 | << i18n("University") << i18n("Restaurant") << i18n("Bar") << i18n("Conference room") | 388 | << i18n("University") << i18n("Restaurant") << i18n("Bar") << i18n("Conference room") |
389 | << i18n("Cinema") << i18n("Lake") << i18n("Kindergarten") | 389 | << i18n("Cinema") << i18n("Lake") << i18n("Kindergarten") |
390 | << i18n("Germany") << i18n("Sweden") << i18n("Forest") << i18n("Desert") << i18n("Kitchen") ; | 390 | << i18n("Germany") << i18n("Sweden") << i18n("Forest") << i18n("Desert") << i18n("Kitchen") ; |
391 | // << i18n("") << i18n("") << i18n("") << i18n("") << i18n("") << i18n("") << i18n("") << i18n("") | 391 | // << i18n("") << i18n("") << i18n("") << i18n("") << i18n("") << i18n("") << i18n("") << i18n("") |
392 | 392 | ||
393 | retval.sort(); | 393 | retval.sort(); |
394 | return retval; | 394 | return retval; |
395 | } | 395 | } |
396 | QStringList KOPrefs::getDefaultList() | 396 | QStringList KOPrefs::getDefaultList() |
397 | { | 397 | { |
398 | QStringList retval ; | 398 | QStringList retval ; |
399 | retval << i18n("Anniversary") << i18n("Appointment") << i18n("Birthday") << i18n("Business") << i18n("Customer") | 399 | retval << i18n("Anniversary") << i18n("Appointment") << i18n("Birthday") << i18n("Business") << i18n("Customer") |
400 | << i18n("Break") | 400 | << i18n("Break") |
401 | << i18n("Family") << i18n("Favorites") << i18n("Fishing") << i18n("Gifts") | 401 | << i18n("Family") << i18n("Favorites") << i18n("Fishing") << i18n("Gifts") |
402 | << i18n("Holiday") << i18n("Holiday Cards")<< i18n("Hot Contacts") | 402 | << i18n("Holiday") << i18n("Holiday Cards")<< i18n("Hot Contacts") |
403 | << i18n("Meeting") << i18n("Miscellaneous") << i18n("Partner") << i18n("Personal") | 403 | << i18n("Meeting") << i18n("Miscellaneous") << i18n("Partner") << i18n("Personal") |
404 | << i18n("PHB") << i18n("Phone Calls") << i18n("Shopping") | 404 | << i18n("PHB") << i18n("Phone Calls") << i18n("Shopping") |
405 | << i18n("Sports") << i18n("Talk") << i18n("Travel") << i18n("TV") | 405 | << i18n("Sports") << i18n("Talk") << i18n("Travel") << i18n("TV") |
406 | << i18n("Vacation") ; | 406 | << i18n("Vacation") ; |
407 | retval.sort(); | 407 | retval.sort(); |
408 | //qDebug("cat %s ", retval.join("-").latin1()); | 408 | //qDebug("cat %s ", retval.join("-").latin1()); |
409 | return retval; | 409 | return retval; |
410 | } | 410 | } |
411 | // << i18n("Business Travel") << i18n("Education") << i18n("Hiking") << i18n("Hunting") << i18n("Recurring") << i18n("Personal Travel") << i18n("Speach") << i18n("Festival") << i18n("Competition")<< i18n("Party")<< i18n("Projects")<< i18n("Kids") << i18n("Special Occasion")<< i18n("Breakfast")<< i18n("Dinner") << i18n("Lunch")<< i18n("University")<< i18n("School")<< i18n("Flight")<< i18n("Key Customer") << i18n("VIP") << i18n("SyncEvent") << i18n("Cinema") | 411 | // << i18n("Business Travel") << i18n("Education") << i18n("Hiking") << i18n("Hunting") << i18n("Recurring") << i18n("Personal Travel") << i18n("Speach") << i18n("Festival") << i18n("Competition")<< i18n("Party")<< i18n("Projects")<< i18n("Kids") << i18n("Special Occasion")<< i18n("Breakfast")<< i18n("Dinner") << i18n("Lunch")<< i18n("University")<< i18n("School")<< i18n("Flight")<< i18n("Key Customer") << i18n("VIP") << i18n("SyncEvent") << i18n("Cinema") |
412 | void KOPrefs::usrReadConfig() | 412 | void KOPrefs::usrReadConfig() |
413 | { | 413 | { |
414 | config()->setGroup("General"); | 414 | config()->setGroup("General"); |
415 | 415 | ||
416 | //qDebug("KOPrefs::usrReadConfig() "); | 416 | //qDebug("KOPrefs::usrReadConfig() "); |
417 | mCustomCategories = config()->readListEntry("Custom Categories"); | 417 | mCustomCategories = config()->readListEntry("Custom Categories"); |
418 | mOldLoadedLanguage = mOldLanguage ; | 418 | mOldLoadedLanguage = mOldLanguage ; |
419 | mOldLanguage = KPimGlobalPrefs::instance()->mPreferredLanguage; | 419 | mOldLanguage = KPimGlobalPrefs::instance()->mPreferredLanguage; |
420 | if (mLocationDefaults.isEmpty()) { | 420 | if (mLocationDefaults.isEmpty()) { |
421 | mLocationDefaults = getLocationDefaultList(); | 421 | mLocationDefaults = getLocationDefaultList(); |
422 | } | 422 | } |
423 | 423 | ||
424 | if (mEventSummaryUser.isEmpty()) { | 424 | if (mEventSummaryUser.isEmpty()) { |
425 | mEventSummaryUser = getDefaultList() ; | 425 | mEventSummaryUser = getDefaultList() ; |
426 | } | 426 | } |
427 | if (mTodoSummaryUser.isEmpty()) { | 427 | if (mTodoSummaryUser.isEmpty()) { |
428 | mTodoSummaryUser = getDefaultList() ; | 428 | mTodoSummaryUser = getDefaultList() ; |
429 | } | 429 | } |
430 | 430 | ||
431 | if (mCustomCategories.isEmpty()) setCategoryDefaults(); | 431 | if (mCustomCategories.isEmpty()) setCategoryDefaults(); |
432 | 432 | ||
433 | config()->setGroup("Personal Settings"); | 433 | config()->setGroup("Personal Settings"); |
434 | mName = config()->readEntry("user_name",""); | 434 | mName = config()->readEntry("user_name",""); |
435 | mEmail = config()->readEntry("user_email",""); | 435 | mEmail = config()->readEntry("user_email",""); |
436 | fillMailDefaults(); | 436 | fillMailDefaults(); |
437 | 437 | ||
438 | config()->setGroup("Category Colors"); | 438 | config()->setGroup("Category Colors"); |
439 | QStringList::Iterator it; | 439 | QStringList::Iterator it; |
440 | for (it = mCustomCategories.begin();it != mCustomCategories.end();++it ) { | 440 | for (it = mCustomCategories.begin();it != mCustomCategories.end();++it ) { |
441 | setCategoryColor(*it,config()->readColorEntry(*it,&mDefaultCategoryColor)); | 441 | setCategoryColor(*it,config()->readColorEntry(*it,&mDefaultCategoryColor)); |
442 | 442 | ||
443 | } | 443 | } |
444 | KConfig fc (locateLocal("config","kopicalendarrc")); | 444 | KConfig fc (locateLocal("config","kopicalendarrc")); |
445 | fc.setGroup("CC"); | 445 | fc.setGroup("CC"); |
446 | int numCals = fc.readNumEntry("NumberCalendars",0 ); | 446 | int numCals = fc.readNumEntry("NumberCalendars",0 ); |
447 | mNextAvailableCalendar = 1; | 447 | mNextAvailableCalendar = 1; |
448 | if ( numCals == 0 ) { | 448 | if ( numCals == 0 ) { |
449 | KopiCalendarFile *kkf = getNewCalendar(); | 449 | KopiCalendarFile *kkf = getNewCalendar(); |
450 | kkf->isStandard = true; | 450 | kkf->isStandard = true; |
451 | kkf->mName = i18n("Standard"); | 451 | kkf->mName = i18n("Standard"); |
452 | kkf->mFileName = locateLocal( "data", "korganizer/mycalendar.ics" ); | 452 | kkf->mFileName = QDir::convertSeparators( locateLocal( "data", "korganizer/mycalendar.ics" ) ); |
453 | } | 453 | } |
454 | while ( mNextAvailableCalendar <= numCals ) { | 454 | while ( mNextAvailableCalendar <= numCals ) { |
455 | //qDebug("Read cal #%d ", mNextAvailableCalendar ); | 455 | //qDebug("Read cal #%d ", mNextAvailableCalendar ); |
456 | QString prefix = "Cal_" +QString::number( mNextAvailableCalendar ); | 456 | QString prefix = "Cal_" +QString::number( mNextAvailableCalendar ); |
457 | KopiCalendarFile *kkf = getNewCalendar(); | 457 | KopiCalendarFile *kkf = getNewCalendar(); |
458 | kkf->isStandard = fc.readBoolEntry( prefix+"_isStandard", false ); | 458 | kkf->isStandard = fc.readBoolEntry( prefix+"_isStandard", false ); |
459 | kkf->isEnabled = fc.readBoolEntry( prefix+"_isEnabled", true); | 459 | kkf->isEnabled = fc.readBoolEntry( prefix+"_isEnabled", true); |
460 | kkf->isRelative = fc.readBoolEntry( prefix+"_isRelative", false ); | 460 | kkf->isRelative = fc.readBoolEntry( prefix+"_isRelative", false ); |
461 | kkf->isAlarmEnabled = fc.readBoolEntry( prefix+"_isAlarmEnabled", true); | 461 | kkf->isAlarmEnabled = fc.readBoolEntry( prefix+"_isAlarmEnabled", true); |
462 | kkf->isReadOnly = fc.readBoolEntry( prefix+"_isReadOnly", false); | 462 | kkf->isReadOnly = fc.readBoolEntry( prefix+"_isReadOnly", false); |
463 | kkf->mName = fc.readEntry( prefix+"_Name", "Calendar"); | 463 | kkf->mName = fc.readEntry( prefix+"_Name", "Calendar"); |
464 | kkf->mFileName = fc.readEntry( prefix+"_FileName", kkf->mFileName); | 464 | kkf->mFileName = QDir::convertSeparators( fc.readEntry( prefix+"_FileName", kkf->mFileName) ); |
465 | kkf->mSavedFileName = fc.readEntry( prefix+"_SavedFileName", kkf->mFileName); | 465 | kkf->mSavedFileName = QDir::convertSeparators( fc.readEntry( prefix+"_SavedFileName", kkf->mFileName) ); |
466 | kkf->mDefaultColor = fc.readColorEntry( prefix+"_Color",&mEventColor); | 466 | kkf->mDefaultColor = fc.readColorEntry( prefix+"_Color",&mEventColor); |
467 | if ( kkf->mCalNumber == 1 ) { | 467 | if ( kkf->mCalNumber == 1 ) { |
468 | kkf->mFileName = locateLocal( "data", "korganizer/mycalendar.ics" ); | 468 | kkf->mFileName = locateLocal( "data", "korganizer/mycalendar.ics" ); |
469 | } | 469 | } |
470 | //qDebug("NAME %s %s", kkf->mName.latin1(), i18n("Birthdays").latin1() ); | 470 | //qDebug("NAME %s %s", kkf->mName.latin1(), i18n("Birthdays").latin1() ); |
471 | if ( kkf->mName == i18n("Birthdays") ) { | 471 | if ( kkf->mName == i18n("Birthdays") ) { |
472 | kkf->mFileName = locateLocal( "data", "korganizer/birthdays.ics" ); | 472 | kkf->mFileName = locateLocal( "data", "korganizer/birthdays.ics" ); |
473 | } | 473 | } |
474 | if ( kkf->isRelative ) | 474 | if ( kkf->isRelative ) |
475 | kkf->mFileName = KGlobalSettings::calendarDir() + kkf->mSavedFileName; | 475 | kkf->mFileName = QDir::convertSeparators( KGlobalSettings::calendarDir() + kkf->mSavedFileName ); |
476 | } | 476 | } |
477 | 477 | ||
478 | KPimPrefs::usrReadConfig(); | 478 | KPimPrefs::usrReadConfig(); |
479 | } | 479 | } |
480 | 480 | ||
481 | KopiCalendarFile * KOPrefs::getCalendar( int num ) | 481 | KopiCalendarFile * KOPrefs::getCalendar( int num ) |
482 | { | 482 | { |
483 | return mDefCalColors[num-1]; | 483 | return mDefCalColors[num-1]; |
484 | } | 484 | } |
485 | 485 | ||
486 | KopiCalendarFile * KOPrefs::getNewCalendar() | 486 | KopiCalendarFile * KOPrefs::getNewCalendar() |
487 | { | 487 | { |
488 | KopiCalendarFile * kkf = new KopiCalendarFile(); | 488 | KopiCalendarFile * kkf = new KopiCalendarFile(); |
489 | kkf->mCalNumber = mNextAvailableCalendar; | 489 | kkf->mCalNumber = mNextAvailableCalendar; |
490 | mDefCalColors.resize( mNextAvailableCalendar ); | 490 | mDefCalColors.resize( mNextAvailableCalendar ); |
491 | mDefCalColors[mNextAvailableCalendar-1] = kkf; | 491 | mDefCalColors[mNextAvailableCalendar-1] = kkf; |
492 | ++mNextAvailableCalendar; | 492 | ++mNextAvailableCalendar; |
493 | kkf->mDefaultColor = mEventColor; | 493 | kkf->mDefaultColor = mEventColor; |
494 | kkf->mName = i18n("New Calendar"); | 494 | kkf->mName = i18n("New Calendar"); |
495 | mCalendars.append( kkf ); | 495 | mCalendars.append( kkf ); |
496 | return kkf; | 496 | return kkf; |
497 | } | 497 | } |
498 | void KOPrefs::deleteCalendar( int num ) | 498 | void KOPrefs::deleteCalendar( int num ) |
499 | { | 499 | { |
500 | KopiCalendarFile * kkf = mCalendars.first(); | 500 | KopiCalendarFile * kkf = mCalendars.first(); |
501 | while ( kkf ) { | 501 | while ( kkf ) { |
502 | if ( kkf->mCalNumber == num ) { | 502 | if ( kkf->mCalNumber == num ) { |
503 | qDebug("KOPrefs::deleteCalendar %d ", num ); | 503 | qDebug("KOPrefs::deleteCalendar %d ", num ); |
504 | mCalendars.remove( kkf ); | 504 | mCalendars.remove( kkf ); |
505 | delete kkf; | 505 | delete kkf; |
506 | return; | 506 | return; |
507 | } | 507 | } |
508 | kkf = mCalendars.next(); | 508 | kkf = mCalendars.next(); |
509 | } | 509 | } |
510 | } | 510 | } |
511 | int KOPrefs::getCalendarID( const QString & name ) | 511 | int KOPrefs::getCalendarID( const QString & name ) |
512 | { | 512 | { |
513 | KopiCalendarFile * kkf = mCalendars.first(); | 513 | KopiCalendarFile * kkf = mCalendars.first(); |
514 | while ( kkf ) { | 514 | while ( kkf ) { |
515 | if ( name == kkf->mName) | 515 | if ( name == kkf->mName) |
516 | return kkf->mCalNumber; | 516 | return kkf->mCalNumber; |
517 | kkf = mCalendars.next(); | 517 | kkf = mCalendars.next(); |
518 | } | 518 | } |
519 | return 1; | 519 | return 1; |
520 | } | 520 | } |
521 | QString KOPrefs::calName( int calNum) const | 521 | QString KOPrefs::calName( int calNum) const |
522 | { | 522 | { |
523 | return (mDefCalColors[calNum-1])->mName; | 523 | return (mDefCalColors[calNum-1])->mName; |
524 | } | 524 | } |
525 | QColor KOPrefs::defaultColor( int calNum ) const | 525 | QColor KOPrefs::defaultColor( int calNum ) const |
526 | { | 526 | { |
527 | if ( calNum == 1 ) return mEventColor; | 527 | if ( calNum == 1 ) return mEventColor; |
528 | return (mDefCalColors[calNum-1])->mDefaultColor; | 528 | return (mDefCalColors[calNum-1])->mDefaultColor; |
529 | } | 529 | } |
530 | void KOPrefs::usrWriteConfig() | 530 | void KOPrefs::usrWriteConfig() |
531 | { | 531 | { |
532 | config()->setGroup("General"); | 532 | config()->setGroup("General"); |
533 | config()->writeEntry("Custom Categories",mCustomCategories); | 533 | config()->writeEntry("Custom Categories",mCustomCategories); |
534 | 534 | ||
535 | config()->setGroup("Personal Settings"); | 535 | config()->setGroup("Personal Settings"); |
536 | config()->writeEntry("user_name",mName); | 536 | config()->writeEntry("user_name",mName); |
537 | config()->writeEntry("user_email",mEmail); | 537 | config()->writeEntry("user_email",mEmail); |
538 | 538 | ||
539 | config()->setGroup("Category Colors"); | 539 | config()->setGroup("Category Colors"); |
540 | QDictIterator<QColor> it(mCategoryColors); | 540 | QDictIterator<QColor> it(mCategoryColors); |
541 | while (it.current()) { | 541 | while (it.current()) { |
542 | config()->writeEntry(it.currentKey(),*(it.current())); | 542 | config()->writeEntry(it.currentKey(),*(it.current())); |
543 | ++it; | 543 | ++it; |
544 | } | 544 | } |
545 | KConfig fc (locateLocal("config","kopicalendarrc")); | 545 | KConfig fc (locateLocal("config","kopicalendarrc")); |
546 | fc.setGroup("CC"); | 546 | fc.setGroup("CC"); |
547 | fc.deleteGroup( "CC"); | 547 | fc.deleteGroup( "CC"); |
548 | fc.setGroup("CC"); | 548 | fc.setGroup("CC"); |
549 | fc.writeEntry("NumberCalendars",mCalendars.count()); | 549 | fc.writeEntry("NumberCalendars",mCalendars.count()); |
550 | int numCal = 1; | 550 | int numCal = 1; |
551 | int writeCal = 0; | 551 | int writeCal = 0; |
552 | while ( numCal < mNextAvailableCalendar ) { | 552 | while ( numCal < mNextAvailableCalendar ) { |
553 | KopiCalendarFile * kkf = mCalendars.first(); | 553 | KopiCalendarFile * kkf = mCalendars.first(); |
554 | while ( kkf ) { | 554 | while ( kkf ) { |
555 | //qDebug("cal num %d %d ", kkf->mCalNumber, numCal); | 555 | //qDebug("cal num %d %d ", kkf->mCalNumber, numCal); |
556 | if ( kkf->mCalNumber == numCal ) { | 556 | if ( kkf->mCalNumber == numCal ) { |
557 | ++writeCal; | 557 | ++writeCal; |
558 | //qDebug("Write calendar %d %d ", numCal , writeCal); | 558 | //qDebug("Write calendar %d %d ", numCal , writeCal); |
559 | QString prefix = "Cal_" + QString::number( writeCal ); | 559 | QString prefix = "Cal_" + QString::number( writeCal ); |
560 | fc.writeEntry( prefix+"_isStandard", kkf->isStandard ); | 560 | fc.writeEntry( prefix+"_isStandard", kkf->isStandard ); |
561 | fc.writeEntry( prefix+"_isEnabled", kkf->isEnabled ); | 561 | fc.writeEntry( prefix+"_isEnabled", kkf->isEnabled ); |
562 | fc.writeEntry( prefix+"_isAlarmEnabled", kkf->isAlarmEnabled ); | 562 | fc.writeEntry( prefix+"_isAlarmEnabled", kkf->isAlarmEnabled ); |
563 | fc.writeEntry( prefix+"_isReadOnly", kkf->isReadOnly ); | 563 | fc.writeEntry( prefix+"_isReadOnly", kkf->isReadOnly ); |
564 | fc.writeEntry( prefix+"_isRelative", kkf->isRelative ); | 564 | fc.writeEntry( prefix+"_isRelative", kkf->isRelative ); |
565 | fc.writeEntry( prefix+"_Name", kkf->mName); | 565 | fc.writeEntry( prefix+"_Name", kkf->mName); |
566 | fc.writeEntry( prefix+"_FileName", kkf->mFileName); | 566 | fc.writeEntry( prefix+"_FileName", kkf->mFileName); |
567 | fc.writeEntry( prefix+"_SavedFileName", kkf->mSavedFileName); | 567 | fc.writeEntry( prefix+"_SavedFileName", kkf->mSavedFileName); |
568 | fc.writeEntry( prefix+"_Color",kkf->mDefaultColor); | 568 | fc.writeEntry( prefix+"_Color",kkf->mDefaultColor); |
569 | } | 569 | } |
570 | kkf = mCalendars.next(); | 570 | kkf = mCalendars.next(); |
571 | } | 571 | } |
diff --git a/korganizer/mainwindow.cpp b/korganizer/mainwindow.cpp index 9c55e9f..9ae393d 100644 --- a/korganizer/mainwindow.cpp +++ b/korganizer/mainwindow.cpp | |||
@@ -1599,198 +1599,198 @@ void MainWindow::about() | |||
1599 | "(KO/Pi) " + version + " - " + | 1599 | "(KO/Pi) " + version + " - " + |
1600 | 1600 | ||
1601 | #ifdef DESKTOP_VERSION | 1601 | #ifdef DESKTOP_VERSION |
1602 | i18n("Desktop Edition\n") + | 1602 | i18n("Desktop Edition\n") + |
1603 | #else | 1603 | #else |
1604 | i18n("PDA-Edition\nfor: Zaurus 5x00/7x0/860/3000/6000\n") + | 1604 | i18n("PDA-Edition\nfor: Zaurus 5x00/7x0/860/3000/6000\n") + |
1605 | #endif | 1605 | #endif |
1606 | i18n("(c)2004 Lutz Rogowski (rogowski@kde.org)\nKO/Pi is based on KOrganizer\n(c)2002,2003 Cornelius Schumacher\n(schumacher@kde.org) and the KDE team.\nKOrganizer/Pi is licensed under the GPL.\nKO/Pi can be compiled for\nLinux, Zaurus-PDA and Windows\nwww.pi-sync.info --- www.korganizer.org\nSpecial thanks to Michael and Ben\nfor intensive testing!") ); | 1606 | i18n("(c)2004 Lutz Rogowski (rogowski@kde.org)\nKO/Pi is based on KOrganizer\n(c)2002,2003 Cornelius Schumacher\n(schumacher@kde.org) and the KDE team.\nKOrganizer/Pi is licensed under the GPL.\nKO/Pi can be compiled for\nLinux, Zaurus-PDA and Windows\nwww.pi-sync.info --- www.korganizer.org\nSpecial thanks to Michael and Ben\nfor intensive testing!") ); |
1607 | } | 1607 | } |
1608 | void MainWindow::keyBindings() | 1608 | void MainWindow::keyBindings() |
1609 | { | 1609 | { |
1610 | QString cap = i18n("KO/Pi Keys + Colors"); | 1610 | QString cap = i18n("KO/Pi Keys + Colors"); |
1611 | QString text = i18n("<p><h2>KO/Pi key shortcuts:</h2></p>\n") + | 1611 | QString text = i18n("<p><h2>KO/Pi key shortcuts:</h2></p>\n") + |
1612 | i18n("<p><b>H</b>: This help dialog | <b>S</b>: Search dialog</p>\n")+ | 1612 | i18n("<p><b>H</b>: This help dialog | <b>S</b>: Search dialog</p>\n")+ |
1613 | i18n("<p><b>N</b>: Switch to next view which has a toolbar icon</p>\n") + | 1613 | i18n("<p><b>N</b>: Switch to next view which has a toolbar icon</p>\n") + |
1614 | i18n("<p><b>A+(shift or ctrl)</b>: Show occurence of next alarm</p>\n") + | 1614 | i18n("<p><b>A+(shift or ctrl)</b>: Show occurence of next alarm</p>\n") + |
1615 | i18n("<p><b>I</b>: Show info for selected event/todo</p>\n") + | 1615 | i18n("<p><b>I</b>: Show info for selected event/todo</p>\n") + |
1616 | i18n("<p><b>Space</b>: Toggle fullscreen | <b>P</b>: Date picker</p>\n")+ | 1616 | i18n("<p><b>Space</b>: Toggle fullscreen | <b>P</b>: Date picker</p>\n")+ |
1617 | i18n("<p><b>R</b>: Toggle Resource View |<b>F</b>: Edit filter </p>\n")+ | 1617 | i18n("<p><b>R</b>: Toggle Resource View |<b>F</b>: Edit filter </p>\n")+ |
1618 | i18n("<p><b>O</b>: Filter On/Off | <b>J</b>: Journal view</p>\n")+ | 1618 | i18n("<p><b>O</b>: Filter On/Off | <b>J</b>: Journal view</p>\n")+ |
1619 | i18n("<p><b>1-0</b> (+<b>ctrl</b>): Select filter 1-10 (11-20)</p>\n")+ | 1619 | i18n("<p><b>1-0</b> (+<b>ctrl</b>): Select filter 1-10 (11-20)</p>\n")+ |
1620 | i18n("<p><b>X</b>: Next X days view| <b>W</b>: What's next view\n ")+ | 1620 | i18n("<p><b>X</b>: Next X days view| <b>W</b>: What's next view\n ")+ |
1621 | i18n("<p><b>Q</b>: Show next date with conflicting events\n ")+ | 1621 | i18n("<p><b>Q</b>: Show next date with conflicting events\n ")+ |
1622 | i18n("<p><b>V</b>: Todo view | <b>L</b>: Event list view</p>\n")+ | 1622 | i18n("<p><b>V</b>: Todo view | <b>L</b>: Event list view</p>\n")+ |
1623 | i18n("<p><b>Z,Y</b>: Work week view | <b>U</b>: Week view</p>\n")+ | 1623 | i18n("<p><b>Z,Y</b>: Work week view | <b>U</b>: Week view</p>\n")+ |
1624 | i18n("<p><b>D</b>: One day view | <b>M</b>: Month view</p>\n")+ | 1624 | i18n("<p><b>D</b>: One day view | <b>M</b>: Month view</p>\n")+ |
1625 | i18n("<p><b>K</b>: Week view in Month view syle</p>\n")+ | 1625 | i18n("<p><b>K</b>: Week view in Month view syle</p>\n")+ |
1626 | i18n("<p><b>E</b>: Edit selected item |<b> E+ctrl</b>: New Event</p>\n")+ | 1626 | i18n("<p><b>E</b>: Edit selected item |<b> E+ctrl</b>: New Event</p>\n")+ |
1627 | i18n("<p><b>T</b>: Goto today | <b>T+ctrl</b>: New Todo</p>\n")+ | 1627 | i18n("<p><b>T</b>: Goto today | <b>T+ctrl</b>: New Todo</p>\n")+ |
1628 | i18n("<p><b>S+ctrl</b>: Add sub-todo | <b>X+ctrl</b>: Toggle datenavigator</p>\n")+ | 1628 | i18n("<p><b>S+ctrl</b>: Add sub-todo | <b>X+ctrl</b>: Toggle datenavigator</p>\n")+ |
1629 | i18n("<p><b>+,-</b> : Zoom in/out agenda | <b>A</b>: Toggle allday agenda height</p>\n")+ | 1629 | i18n("<p><b>+,-</b> : Zoom in/out agenda | <b>A</b>: Toggle allday agenda height</p>\n")+ |
1630 | i18n("<p><b>C</b>: Show current time in agenda view</p>\n")+ | 1630 | i18n("<p><b>C</b>: Show current time in agenda view</p>\n")+ |
1631 | i18n("<p><b>B</b>: Edit description (details) of selected item</p>\n")+ | 1631 | i18n("<p><b>B</b>: Edit description (details) of selected item</p>\n")+ |
1632 | i18n("<p><b>right</b>: Next week | <b>right+ctrl</b>: Next month</p>\n")+ | 1632 | i18n("<p><b>right</b>: Next week | <b>right+ctrl</b>: Next month</p>\n")+ |
1633 | i18n("<p><b>left</b>: Prev. week | <b>left+ctrl</b>: Prev. month</p>\n")+ | 1633 | i18n("<p><b>left</b>: Prev. week | <b>left+ctrl</b>: Prev. month</p>\n")+ |
1634 | i18n("<p><b>del,backspace</b>: Delete selected item</p>\n")+ | 1634 | i18n("<p><b>del,backspace</b>: Delete selected item</p>\n")+ |
1635 | i18n("<p><h3>In agenda view:</h3></p>\n") + | 1635 | i18n("<p><h3>In agenda view:</h3></p>\n") + |
1636 | i18n("<p><b>up/down</b>: Scroll agenda view</p>\n")+ | 1636 | i18n("<p><b>up/down</b>: Scroll agenda view</p>\n")+ |
1637 | i18n("<p><b>ctrl+up/down</b>: Scroll small todo view</p>\n")+ | 1637 | i18n("<p><b>ctrl+up/down</b>: Scroll small todo view</p>\n")+ |
1638 | i18n("<p><h3>In todo view:</h3></p>\n") + | 1638 | i18n("<p><h3>In todo view:</h3></p>\n") + |
1639 | i18n("<p><b>shift+U</b>: <b>U</b>nparent todo (make root todo)</p>\n")+ | 1639 | i18n("<p><b>shift+U</b>: <b>U</b>nparent todo (make root todo)</p>\n")+ |
1640 | i18n("<p><b>shift+S</b>: Make <b>S</b>ubtodo (reparent todo)</p>\n")+ | 1640 | i18n("<p><b>shift+S</b>: Make <b>S</b>ubtodo (reparent todo)</p>\n")+ |
1641 | i18n("<p><b>shift+P</b>: Make new <b>P</b>arent for todo selected with shift+S</p>\n")+ | 1641 | i18n("<p><b>shift+P</b>: Make new <b>P</b>arent for todo selected with shift+S</p>\n")+ |
1642 | i18n("<p><b>Q</b>: Toggle quick todo line edit.</p>\n")+ | 1642 | i18n("<p><b>Q</b>: Toggle quick todo line edit.</p>\n")+ |
1643 | i18n("<p><b>I</b>: Show info of current item+one step down.</p>\n")+ | 1643 | i18n("<p><b>I</b>: Show info of current item+one step down.</p>\n")+ |
1644 | i18n("<p><b>return</b>: Mark item as completed+one step down.</p>\n")+ | 1644 | i18n("<p><b>return</b>: Mark item as completed+one step down.</p>\n")+ |
1645 | i18n("<p><b>return+shift</b>: Mark item as not completed+one step down</p>\n")+ | 1645 | i18n("<p><b>return+shift</b>: Mark item as not completed+one step down</p>\n")+ |
1646 | i18n("<p><h3>In list view:</h3></p>\n") + | 1646 | i18n("<p><h3>In list view:</h3></p>\n") + |
1647 | i18n("<p><b>I</b>: Show info of current item+one step down.</p>\n")+ | 1647 | i18n("<p><b>I</b>: Show info of current item+one step down.</p>\n")+ |
1648 | i18n("<p><b>return</b>: Select item+one step down</p>\n")+ | 1648 | i18n("<p><b>return</b>: Select item+one step down</p>\n")+ |
1649 | i18n("<p><b>return+shift</b>: Deselect item+one step down</p>\n")+ | 1649 | i18n("<p><b>return+shift</b>: Deselect item+one step down</p>\n")+ |
1650 | i18n("<p><b>up/down</b>: Next/prev item</p>\n")+ | 1650 | i18n("<p><b>up/down</b>: Next/prev item</p>\n")+ |
1651 | i18n("<p><b>ctrl+up/down</b>: Goto up/down by 20% of items</p>\n")+ | 1651 | i18n("<p><b>ctrl+up/down</b>: Goto up/down by 20% of items</p>\n")+ |
1652 | i18n("<p><b>shift+up/down</b>: Goto first/last item</p>\n")+ | 1652 | i18n("<p><b>shift+up/down</b>: Goto first/last item</p>\n")+ |
1653 | i18n("<p><h3>In event/todo viewer:</h3></p>\n") + | 1653 | i18n("<p><h3>In event/todo viewer:</h3></p>\n") + |
1654 | i18n("<p><b>I,C</b>: Close dialog.</p>\n")+ | 1654 | i18n("<p><b>I,C</b>: Close dialog.</p>\n")+ |
1655 | i18n("<p><b>A</b>: Show agenda view.</p>\n")+ | 1655 | i18n("<p><b>A</b>: Show agenda view.</p>\n")+ |
1656 | i18n("<p><b>E</b>: Edit item</p>\n") + | 1656 | i18n("<p><b>E</b>: Edit item</p>\n") + |
1657 | i18n("<p><h2>KO/Pi icon colors:</h2></p>\n") + | 1657 | i18n("<p><h2>KO/Pi icon colors:</h2></p>\n") + |
1658 | i18n("<p><b>(for square icons in agenda and month view)</b></p>\n") + | 1658 | i18n("<p><b>(for square icons in agenda and month view)</b></p>\n") + |
1659 | i18n("<p><b>Cross</b>: Item cancelled.([c] in Whats'Next view)</p>\n")+ | 1659 | i18n("<p><b>Cross</b>: Item cancelled.([c] in Whats'Next view)</p>\n")+ |
1660 | i18n("<p><b>Red</b>: Alarm set.([a] in Whats'Next view)</p>\n")+ | 1660 | i18n("<p><b>Red</b>: Alarm set.([a] in Whats'Next view)</p>\n")+ |
1661 | i18n("<p><b>Blue</b>: Recurrent event.([r] in Whats'Next view)</p>\n")+ | 1661 | i18n("<p><b>Blue</b>: Recurrent event.([r] in Whats'Next view)</p>\n")+ |
1662 | i18n("<p><b>Dark green</b>: Information(description) available.([i] in WN view)</p>\n")+ | 1662 | i18n("<p><b>Dark green</b>: Information(description) available.([i] in WN view)</p>\n")+ |
1663 | i18n("<p><b>Black</b>: Event/todo with attendees. You are the organizer!</p>\n")+ | 1663 | i18n("<p><b>Black</b>: Event/todo with attendees. You are the organizer!</p>\n")+ |
1664 | i18n("<p><b>Dark yellow</b>: Event/todo with attendees.</p>\n") + | 1664 | i18n("<p><b>Dark yellow</b>: Event/todo with attendees.</p>\n") + |
1665 | i18n("<p><b>White</b>: Item readonly</p>\n"); | 1665 | i18n("<p><b>White</b>: Item readonly</p>\n"); |
1666 | displayText( text, cap); | 1666 | displayText( text, cap); |
1667 | } | 1667 | } |
1668 | void MainWindow::aboutAutoSaving() | 1668 | void MainWindow::aboutAutoSaving() |
1669 | { | 1669 | { |
1670 | QString text = i18n("After changing something, the data is\nautomatically saved to the file\n~/kdepim/apps/korganizer/mycalendar.ics\nafter (configurable) 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"); | 1670 | QString text = i18n("After changing something, the data is\nautomatically saved to the file\n~/kdepim/apps/korganizer/mycalendar.ics\nafter (configurable) 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"); |
1671 | 1671 | ||
1672 | KApplication::showText( i18n("Auto Saving in KOrganizer/Pi"), text); | 1672 | KApplication::showText( i18n("Auto Saving in KOrganizer/Pi"), text); |
1673 | 1673 | ||
1674 | } | 1674 | } |
1675 | void MainWindow::aboutKnownBugs() | 1675 | void MainWindow::aboutKnownBugs() |
1676 | { | 1676 | { |
1677 | QMessageBox* msg; | 1677 | QMessageBox* msg; |
1678 | msg = new QMessageBox( i18n("Known Problems in KOrganizer/Pi"), | 1678 | msg = new QMessageBox( i18n("Known Problems in KOrganizer/Pi"), |
1679 | 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")+ | 1679 | 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")+ |
1680 | i18n("2) Audio alarm daemon\nfor Zaurus is available!\nas an additional small application\n")+ | 1680 | i18n("2) Audio alarm daemon\nfor Zaurus is available!\nas an additional small application\n")+ |
1681 | i18n("\nPlease report unexpected behaviour to\nlutz@pi-sync.info\n") + | 1681 | i18n("\nPlease report unexpected behaviour to\nlutz@pi-sync.info\n") + |
1682 | i18n("\nor report them in the bugtracker on\n") + | 1682 | i18n("\nor report them in the bugtracker on\n") + |
1683 | i18n("\nhttp://sourceforge.net/projects/kdepimpi\n"), | 1683 | i18n("\nhttp://sourceforge.net/projects/kdepimpi\n"), |
1684 | QMessageBox::NoIcon, | 1684 | QMessageBox::NoIcon, |
1685 | QMessageBox::Ok, | 1685 | QMessageBox::Ok, |
1686 | QMessageBox::NoButton, | 1686 | QMessageBox::NoButton, |
1687 | QMessageBox::NoButton); | 1687 | QMessageBox::NoButton); |
1688 | msg->exec(); | 1688 | msg->exec(); |
1689 | delete msg; | 1689 | delete msg; |
1690 | 1690 | ||
1691 | } | 1691 | } |
1692 | 1692 | ||
1693 | QString MainWindow::defaultFileName() | 1693 | QString MainWindow::defaultFileName() |
1694 | { | 1694 | { |
1695 | return locateLocal( "data", "korganizer/mycalendar.ics" ); | 1695 | return QDir::convertSeparators( locateLocal( "data", "korganizer/mycalendar.ics" ) ); |
1696 | } | 1696 | } |
1697 | QString MainWindow::syncFileName() | 1697 | QString MainWindow::syncFileName() |
1698 | { | 1698 | { |
1699 | #ifdef DESKTOP_VERSION | 1699 | #ifdef DESKTOP_VERSION |
1700 | return locateLocal( "tmp", "synccalendar.ics" ); | 1700 | return QDir::convertSeparators( locateLocal( "tmp", "synccalendar.ics" ) ); |
1701 | #else | 1701 | #else |
1702 | return QString( "/tmp/synccalendar.ics" ); | 1702 | return QString( "/tmp/synccalendar.ics" ); |
1703 | #endif | 1703 | #endif |
1704 | } | 1704 | } |
1705 | #include "koglobals.h" | 1705 | #include "koglobals.h" |
1706 | #include <kcalendarsystem.h> | 1706 | #include <kcalendarsystem.h> |
1707 | void MainWindow::updateWeek(QDate seda) | 1707 | void MainWindow::updateWeek(QDate seda) |
1708 | { | 1708 | { |
1709 | int weekNum = KGlobal::locale()->weekNum ( seda ); | 1709 | int weekNum = KGlobal::locale()->weekNum ( seda ); |
1710 | mWeekPixmap.fill( mWeekBgColor ); | 1710 | mWeekPixmap.fill( mWeekBgColor ); |
1711 | QPainter p ( &mWeekPixmap ); | 1711 | QPainter p ( &mWeekPixmap ); |
1712 | p.setFont( mWeekFont ); | 1712 | p.setFont( mWeekFont ); |
1713 | p.drawText( 0,0,mWeekPixmap.width(), mWeekPixmap.height(),AlignCenter, QString::number( weekNum) ); | 1713 | p.drawText( 0,0,mWeekPixmap.width(), mWeekPixmap.height(),AlignCenter, QString::number( weekNum) ); |
1714 | p.end(); | 1714 | p.end(); |
1715 | QIconSet icon3 ( mWeekPixmap ); | 1715 | QIconSet icon3 ( mWeekPixmap ); |
1716 | mWeekAction->setIconSet ( icon3 ); | 1716 | mWeekAction->setIconSet ( icon3 ); |
1717 | 1717 | ||
1718 | } | 1718 | } |
1719 | void MainWindow::updateWeekNum(const DateList &selectedDates) | 1719 | void MainWindow::updateWeekNum(const DateList &selectedDates) |
1720 | { | 1720 | { |
1721 | updateWeek( selectedDates.first() ); | 1721 | updateWeek( selectedDates.first() ); |
1722 | } | 1722 | } |
1723 | void MainWindow::processIncidenceSelection( Incidence *incidence ) | 1723 | void MainWindow::processIncidenceSelection( Incidence *incidence ) |
1724 | { | 1724 | { |
1725 | if ( !incidence ) { | 1725 | if ( !incidence ) { |
1726 | mShowAction->setMenuText( i18n("Show") ); | 1726 | mShowAction->setMenuText( i18n("Show") ); |
1727 | enableIncidenceActions( false ); | 1727 | enableIncidenceActions( false ); |
1728 | mNewSubTodoAction->setEnabled( false ); | 1728 | mNewSubTodoAction->setEnabled( false ); |
1729 | setCaptionToDates(); | 1729 | setCaptionToDates(); |
1730 | return; | 1730 | return; |
1731 | } | 1731 | } |
1732 | QString startString = ""; | 1732 | QString startString = ""; |
1733 | if ( incidence->typeID() != todoID ) { | 1733 | if ( incidence->typeID() != todoID ) { |
1734 | if ( incidence->dtStart().date() < incidence->dtEnd().date() ) { | 1734 | if ( incidence->dtStart().date() < incidence->dtEnd().date() ) { |
1735 | if ( incidence->doesFloat() ) { | 1735 | if ( incidence->doesFloat() ) { |
1736 | startString += ": "+incidence->dtStartDateStr( true ); | 1736 | startString += ": "+incidence->dtStartDateStr( true ); |
1737 | startString += " --- "+((Event*)incidence)->dtEndDateStr( true ); | 1737 | startString += " --- "+((Event*)incidence)->dtEndDateStr( true ); |
1738 | } else { | 1738 | } else { |
1739 | startString = ": "+incidence->dtStartStr(true); | 1739 | startString = ": "+incidence->dtStartStr(true); |
1740 | startString += " --- "+((Event*)incidence)->dtEndStr(true); | 1740 | startString += " --- "+((Event*)incidence)->dtEndStr(true); |
1741 | } | 1741 | } |
1742 | } else { | 1742 | } else { |
1743 | if ( incidence->dtStart().time() != incidence->dtEnd().time() ) | 1743 | if ( incidence->dtStart().time() != incidence->dtEnd().time() ) |
1744 | startString = ": "+KGlobal::locale()->formatTime(incidence->dtStart().time())+ | 1744 | startString = ": "+KGlobal::locale()->formatTime(incidence->dtStart().time())+ |
1745 | "-"+KGlobal::locale()->formatTime(incidence->dtEnd().time()); | 1745 | "-"+KGlobal::locale()->formatTime(incidence->dtEnd().time()); |
1746 | if ( incidence->isBirthday() || incidence->isAnniversary() ) { | 1746 | if ( incidence->isBirthday() || incidence->isAnniversary() ) { |
1747 | bool ok; | 1747 | bool ok; |
1748 | QDateTime noc = incidence->getNextOccurence( mView->startDate().addDays(-1), &ok ); | 1748 | QDateTime noc = incidence->getNextOccurence( mView->startDate().addDays(-1), &ok ); |
1749 | if ( ok ) { | 1749 | if ( ok ) { |
1750 | int years = noc.date().year() - incidence->dtStart().date().year(); | 1750 | int years = noc.date().year() - incidence->dtStart().date().year(); |
1751 | startString += i18n(" (%1 y.)"). arg( years ); | 1751 | startString += i18n(" (%1 y.)"). arg( years ); |
1752 | } | 1752 | } |
1753 | } | 1753 | } |
1754 | else | 1754 | else |
1755 | startString +=" "+KGlobal::locale()->formatDate( incidence->dtStart().date(), true); | 1755 | startString +=" "+KGlobal::locale()->formatDate( incidence->dtStart().date(), true); |
1756 | } | 1756 | } |
1757 | } | 1757 | } |
1758 | else { | 1758 | else { |
1759 | if ( (( KCal::Todo*)incidence)->percentComplete() == 100 ) | 1759 | if ( (( KCal::Todo*)incidence)->percentComplete() == 100 ) |
1760 | startString = i18n(": (Prio ") +QString::number( (( KCal::Todo*)incidence)->priority() ) +") "+i18n("completed on %1").arg( (( KCal::Todo*)incidence)->completedStr(true) ); | 1760 | startString = i18n(": (Prio ") +QString::number( (( KCal::Todo*)incidence)->priority() ) +") "+i18n("completed on %1").arg( (( KCal::Todo*)incidence)->completedStr(true) ); |
1761 | else | 1761 | else |
1762 | startString = i18n(": (Prio ") +QString::number( (( KCal::Todo*)incidence)->priority() ) +") "+QString::number( (( KCal::Todo*)incidence)->percentComplete() ) +i18n("\% completed"); | 1762 | startString = i18n(": (Prio ") +QString::number( (( KCal::Todo*)incidence)->priority() ) +") "+QString::number( (( KCal::Todo*)incidence)->percentComplete() ) +i18n("\% completed"); |
1763 | } | 1763 | } |
1764 | if ( !incidence->location().isEmpty() ) | 1764 | if ( !incidence->location().isEmpty() ) |
1765 | startString += " (" +incidence->location()+")"; | 1765 | startString += " (" +incidence->location()+")"; |
1766 | setCaption( incidence->summary()+startString); | 1766 | setCaption( incidence->summary()+startString); |
1767 | enableIncidenceActions( true ); | 1767 | enableIncidenceActions( true ); |
1768 | if ( incidence->typeID() == eventID ) { | 1768 | if ( incidence->typeID() == eventID ) { |
1769 | mShowAction->setMenuText( i18n("Show Event") ); | 1769 | mShowAction->setMenuText( i18n("Show Event") ); |
1770 | mNewSubTodoAction->setEnabled( false ); | 1770 | mNewSubTodoAction->setEnabled( false ); |
1771 | } else if ( incidence->typeID() == todoID ) { | 1771 | } else if ( incidence->typeID() == todoID ) { |
1772 | mShowAction->setMenuText( i18n("Show Todo") ); | 1772 | mShowAction->setMenuText( i18n("Show Todo") ); |
1773 | mNewSubTodoAction->setEnabled( true ); | 1773 | mNewSubTodoAction->setEnabled( true ); |
1774 | } else { | 1774 | } else { |
1775 | mShowAction->setMenuText( i18n("Show") ); | 1775 | mShowAction->setMenuText( i18n("Show") ); |
1776 | mNewSubTodoAction->setEnabled( false ); | 1776 | mNewSubTodoAction->setEnabled( false ); |
1777 | } | 1777 | } |
1778 | #ifdef DESKTOP_VERSION | 1778 | #ifdef DESKTOP_VERSION |
1779 | static QPixmap jP = SmallIcon( "journal" ); | 1779 | static QPixmap jP = SmallIcon( "journal" ); |
1780 | static QPixmap eP = SmallIcon( "newevent" ); | 1780 | static QPixmap eP = SmallIcon( "newevent" ); |
1781 | static QPixmap tP = SmallIcon( "newtodo" ); | 1781 | static QPixmap tP = SmallIcon( "newtodo" ); |
1782 | QIconSet icon; | 1782 | QIconSet icon; |
1783 | if ( incidence->typeID() == todoID ) | 1783 | if ( incidence->typeID() == todoID ) |
1784 | icon = QIconSet ( tP ); | 1784 | icon = QIconSet ( tP ); |
1785 | else if ( incidence->typeID() == eventID ) | 1785 | else if ( incidence->typeID() == eventID ) |
1786 | icon = QIconSet ( eP ); | 1786 | icon = QIconSet ( eP ); |
1787 | else if ( incidence->typeID() == journalID ) | 1787 | else if ( incidence->typeID() == journalID ) |
1788 | icon = QIconSet ( jP ); | 1788 | icon = QIconSet ( jP ); |
1789 | mPrintSelAction->setIconSet ( icon ); | 1789 | mPrintSelAction->setIconSet ( icon ); |
1790 | #endif | 1790 | #endif |
1791 | } | 1791 | } |
1792 | 1792 | ||
1793 | void MainWindow::enableIncidenceActions( bool enabled ) | 1793 | void MainWindow::enableIncidenceActions( bool enabled ) |
1794 | { | 1794 | { |
1795 | mShowAction->setEnabled( enabled ); | 1795 | mShowAction->setEnabled( enabled ); |
1796 | mEditAction->setEnabled( enabled ); | 1796 | mEditAction->setEnabled( enabled ); |
@@ -2472,193 +2472,193 @@ void MainWindow::loadCalendar() | |||
2472 | } | 2472 | } |
2473 | } else { | 2473 | } else { |
2474 | QMessageBox::warning( this, i18n("KO/Pi: Warning!"), | 2474 | QMessageBox::warning( this, i18n("KO/Pi: Warning!"), |
2475 | i18n("Backup file\ndoes not exist!\nNothing loaded!"), 0, 0, | 2475 | i18n("Backup file\ndoes not exist!\nNothing loaded!"), 0, 0, |
2476 | 0, 1 ); | 2476 | 0, 1 ); |
2477 | 2477 | ||
2478 | return; | 2478 | return; |
2479 | } | 2479 | } |
2480 | if ( loadbup ) { | 2480 | if ( loadbup ) { |
2481 | mView->openCalendar( fn ); | 2481 | mView->openCalendar( fn ); |
2482 | KOPrefs::instance()->mLastLoadFile = fn; | 2482 | KOPrefs::instance()->mLastLoadFile = fn; |
2483 | mess = i18n("KO/Pi:Loaded %1").arg(fn) ; | 2483 | mess = i18n("KO/Pi:Loaded %1").arg(fn) ; |
2484 | setCaption(mess); | 2484 | setCaption(mess); |
2485 | } | 2485 | } |
2486 | #endif | 2486 | #endif |
2487 | 2487 | ||
2488 | } | 2488 | } |
2489 | void MainWindow::quickImportIcal() | 2489 | void MainWindow::quickImportIcal() |
2490 | { | 2490 | { |
2491 | importFile( KOPrefs::instance()->mLastImportFile, false ); | 2491 | importFile( KOPrefs::instance()->mLastImportFile, false ); |
2492 | } | 2492 | } |
2493 | void MainWindow::importFile( QString fn, bool quick ) | 2493 | void MainWindow::importFile( QString fn, bool quick ) |
2494 | { | 2494 | { |
2495 | QFileInfo info; | 2495 | QFileInfo info; |
2496 | info.setFile( fn ); | 2496 | info.setFile( fn ); |
2497 | QString mess; | 2497 | QString mess; |
2498 | if ( !info. exists() ) { | 2498 | if ( !info. exists() ) { |
2499 | mess = i18n("Import file \n...%1\ndoes not exist!\nNothing imported!\n").arg(fn.right( 30)); | 2499 | mess = i18n("Import file \n...%1\ndoes not exist!\nNothing imported!\n").arg(fn.right( 30)); |
2500 | QMessageBox::warning( this, i18n("KO/Pi: Warning!"), | 2500 | QMessageBox::warning( this, i18n("KO/Pi: Warning!"), |
2501 | mess ); | 2501 | mess ); |
2502 | return; | 2502 | return; |
2503 | } | 2503 | } |
2504 | int result = 0; | 2504 | int result = 0; |
2505 | if ( !quick ) { | 2505 | if ( !quick ) { |
2506 | 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 )); | 2506 | 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 )); |
2507 | result = QMessageBox::warning( this, "KO/Pi: Warning!", | 2507 | result = QMessageBox::warning( this, "KO/Pi: Warning!", |
2508 | mess, | 2508 | mess, |
2509 | "Import", "Cancel", 0, | 2509 | "Import", "Cancel", 0, |
2510 | 0, 1 ); | 2510 | 0, 1 ); |
2511 | } | 2511 | } |
2512 | if ( result == 0 ) { | 2512 | if ( result == 0 ) { |
2513 | if ( mView->openCalendar( fn, true )) { | 2513 | if ( mView->openCalendar( fn, true )) { |
2514 | KOPrefs::instance()->mLastImportFile = fn; | 2514 | KOPrefs::instance()->mLastImportFile = fn; |
2515 | setCaption(i18n("Imported file successfully")); | 2515 | setCaption(i18n("Imported file successfully")); |
2516 | } else { | 2516 | } else { |
2517 | setCaption(i18n("Error importing file")); | 2517 | setCaption(i18n("Error importing file")); |
2518 | } | 2518 | } |
2519 | } | 2519 | } |
2520 | } | 2520 | } |
2521 | 2521 | ||
2522 | void MainWindow::importIcal() | 2522 | void MainWindow::importIcal() |
2523 | { | 2523 | { |
2524 | 2524 | ||
2525 | QString fn =KOPrefs::instance()->mLastImportFile; | 2525 | QString fn =KOPrefs::instance()->mLastImportFile; |
2526 | 2526 | ||
2527 | fn =KFileDialog:: getOpenFileName( fn, i18n("Import filename(*.ics/*.vcs)"), this ); | 2527 | fn =KFileDialog:: getOpenFileName( fn, i18n("Import filename(*.ics/*.vcs)"), this ); |
2528 | if ( fn == "" ) | 2528 | if ( fn == "" ) |
2529 | return; | 2529 | return; |
2530 | importFile( fn, true ); | 2530 | importFile( fn, true ); |
2531 | 2531 | ||
2532 | } | 2532 | } |
2533 | 2533 | ||
2534 | void MainWindow::exportVCalendar() | 2534 | void MainWindow::exportVCalendar() |
2535 | { | 2535 | { |
2536 | QString fn = KOPrefs::instance()->mLastVcalFile; | 2536 | QString fn = KOPrefs::instance()->mLastVcalFile; |
2537 | fn = KFileDialog::getSaveFileName( fn, i18n("Export vcal filename(*.vcs)"), this ); | 2537 | fn = KFileDialog::getSaveFileName( fn, i18n("Export vcal filename(*.vcs)"), this ); |
2538 | if ( fn == "" ) | 2538 | if ( fn == "" ) |
2539 | return; | 2539 | return; |
2540 | QFileInfo info; | 2540 | QFileInfo info; |
2541 | info.setFile( fn ); | 2541 | info.setFile( fn ); |
2542 | QString mes; | 2542 | QString mes; |
2543 | bool createbup = true; | 2543 | bool createbup = true; |
2544 | if ( info. exists() ) { | 2544 | if ( info. exists() ) { |
2545 | mes = i18n("Save file\nalready exists!\nOld save file from:\n%1\nOverwrite?\n").arg (KGlobal::locale()->formatDateTime(info.lastModified (), true, false ) ); | 2545 | mes = i18n("Save file\nalready exists!\nOld save file from:\n%1\nOverwrite?\n").arg (KGlobal::locale()->formatDateTime(info.lastModified (), true, false ) ); |
2546 | int result = QMessageBox::warning( this, i18n("KO/Pi: Warning!"),mes, | 2546 | int result = QMessageBox::warning( this, i18n("KO/Pi: Warning!"),mes, |
2547 | i18n("Overwrite!"), i18n("Cancel"), 0, | 2547 | i18n("Overwrite!"), i18n("Cancel"), 0, |
2548 | 0, 1 ); | 2548 | 0, 1 ); |
2549 | if ( result != 0 ) { | 2549 | if ( result != 0 ) { |
2550 | createbup = false; | 2550 | createbup = false; |
2551 | } | 2551 | } |
2552 | } | 2552 | } |
2553 | if ( createbup ) { | 2553 | if ( createbup ) { |
2554 | if ( mView->exportVCalendar( fn ) ) { | 2554 | if ( mView->exportVCalendar( fn ) ) { |
2555 | KOPrefs::instance()->mLastVcalFile = fn; | 2555 | KOPrefs::instance()->mLastVcalFile = fn; |
2556 | if ( fn.length() > 20 ) | 2556 | if ( fn.length() > 20 ) |
2557 | mes = i18n("KO/Pi:Exported to ...%1").arg(fn.right(20)) ; | 2557 | mes = i18n("KO/Pi:Exported to ...%1").arg(fn.right(20)) ; |
2558 | else | 2558 | else |
2559 | mes = i18n("KO/Pi:Exported to %1").arg(fn ); | 2559 | mes = i18n("KO/Pi:Exported to %1").arg(fn ); |
2560 | setCaption(mes); | 2560 | setCaption(mes); |
2561 | } | 2561 | } |
2562 | } | 2562 | } |
2563 | 2563 | ||
2564 | } | 2564 | } |
2565 | QString MainWindow::sentSyncFile() | 2565 | QString MainWindow::sentSyncFile() |
2566 | { | 2566 | { |
2567 | #ifdef DESKTOP_VERSION | 2567 | #ifdef DESKTOP_VERSION |
2568 | return locateLocal( "tmp", "copysynccal.ics" ); | 2568 | return QDir::convertSeparators( locateLocal( "tmp", "copysynccal.ics" ) ); |
2569 | #else | 2569 | #else |
2570 | return QString( "/tmp/copysynccal.ics" ); | 2570 | return QString( "/tmp/copysynccal.ics" ); |
2571 | #endif | 2571 | #endif |
2572 | } | 2572 | } |
2573 | 2573 | ||
2574 | void MainWindow::syncFileRequest() | 2574 | void MainWindow::syncFileRequest() |
2575 | { | 2575 | { |
2576 | while ( mSyncManager->blockSave() ) { | 2576 | while ( mSyncManager->blockSave() ) { |
2577 | qApp->processEvents(); | 2577 | qApp->processEvents(); |
2578 | } | 2578 | } |
2579 | mSyncManager->setBlockSave(true); | 2579 | mSyncManager->setBlockSave(true); |
2580 | 2580 | ||
2581 | if ( KOPrefs::instance()->mPassiveSyncWithDesktop ) { | 2581 | if ( KOPrefs::instance()->mPassiveSyncWithDesktop ) { |
2582 | mSyncManager->slotSyncMenu( 999 ); | 2582 | mSyncManager->slotSyncMenu( 999 ); |
2583 | } | 2583 | } |
2584 | 2584 | ||
2585 | setCaption(i18n("Saving Data to temp file ..." )); | 2585 | setCaption(i18n("Saving Data to temp file ..." )); |
2586 | mView->saveCalendar( sentSyncFile() ); | 2586 | mView->saveCalendar( sentSyncFile() ); |
2587 | setCaption(i18n("Data saved to temp file!" )); | 2587 | setCaption(i18n("Data saved to temp file!" )); |
2588 | mSyncManager->setBlockSave( false ); | 2588 | mSyncManager->setBlockSave( false ); |
2589 | 2589 | ||
2590 | } | 2590 | } |
2591 | void MainWindow::getFile( bool success ) | 2591 | void MainWindow::getFile( bool success ) |
2592 | { | 2592 | { |
2593 | if ( ! success ) { | 2593 | if ( ! success ) { |
2594 | setCaption( i18n("Error receiving file. Nothing changed!") ); | 2594 | setCaption( i18n("Error receiving file. Nothing changed!") ); |
2595 | return; | 2595 | return; |
2596 | } | 2596 | } |
2597 | mView->mergeFile( sentSyncFile() ); | 2597 | mView->mergeFile( sentSyncFile() ); |
2598 | if ( KOPrefs::instance()->mPassiveSyncWithDesktop ) { | 2598 | if ( KOPrefs::instance()->mPassiveSyncWithDesktop ) { |
2599 | mSyncManager->slotSyncMenu( 999 ); | 2599 | mSyncManager->slotSyncMenu( 999 ); |
2600 | } | 2600 | } |
2601 | setCaption( i18n("Pi-Sync successful!") ); | 2601 | setCaption( i18n("Pi-Sync successful!") ); |
2602 | } | 2602 | } |
2603 | void MainWindow::printListView() | 2603 | void MainWindow::printListView() |
2604 | { | 2604 | { |
2605 | 2605 | ||
2606 | QString message = i18n("You can make a printout of the <b>List View</b> and the list view in the <b>Search Dialog</b>! To do this, please go to the <b>List View/Search Dialog</b>. Right click on the list. Select in the popup menu the entry <b>Print complete list</b>. That prints the list as you see it. You can remove items from the list before printing without deleting the corresponding event/todo! Simply select all items you do not want to print out. Then right click on one of the items and choose <b>Hide selected items</b>. After that you can print the list without these items."); | 2606 | QString message = i18n("You can make a printout of the <b>List View</b> and the list view in the <b>Search Dialog</b>! To do this, please go to the <b>List View/Search Dialog</b>. Right click on the list. Select in the popup menu the entry <b>Print complete list</b>. That prints the list as you see it. You can remove items from the list before printing without deleting the corresponding event/todo! Simply select all items you do not want to print out. Then right click on one of the items and choose <b>Hide selected items</b>. After that you can print the list without these items."); |
2607 | 2607 | ||
2608 | KMessageBox::information( this, message); | 2608 | KMessageBox::information( this, message); |
2609 | } | 2609 | } |
2610 | void MainWindow::printSel( ) | 2610 | void MainWindow::printSel( ) |
2611 | { | 2611 | { |
2612 | mView->viewManager()->agendaView()->agenda()->printSelection(); | 2612 | mView->viewManager()->agendaView()->agenda()->printSelection(); |
2613 | } | 2613 | } |
2614 | 2614 | ||
2615 | void MainWindow::printCal() | 2615 | void MainWindow::printCal() |
2616 | { | 2616 | { |
2617 | mView->print();//mCp->showDialog(); | 2617 | mView->print();//mCp->showDialog(); |
2618 | } | 2618 | } |
2619 | 2619 | ||
2620 | 2620 | ||
2621 | #include "libkdepim/kdatepicker.h" | 2621 | #include "libkdepim/kdatepicker.h" |
2622 | #include <kdatetbl.h> | 2622 | #include <kdatetbl.h> |
2623 | 2623 | ||
2624 | void MainWindow::weekAction() | 2624 | void MainWindow::weekAction() |
2625 | { | 2625 | { |
2626 | int month; | 2626 | int month; |
2627 | KPopupFrame* popup = new KPopupFrame(this); | 2627 | KPopupFrame* popup = new KPopupFrame(this); |
2628 | KDateInternalWeekPicker* picker = new KDateInternalWeekPicker(popup); | 2628 | KDateInternalWeekPicker* picker = new KDateInternalWeekPicker(popup); |
2629 | // ----- | 2629 | // ----- |
2630 | picker->resize(picker->sizeHint()); | 2630 | picker->resize(picker->sizeHint()); |
2631 | popup->setMainWidget(picker); | 2631 | popup->setMainWidget(picker); |
2632 | picker->setFocus(); | 2632 | picker->setFocus(); |
2633 | connect(picker, SIGNAL(closeMe(int)), popup, SLOT(close(int))); | 2633 | connect(picker, SIGNAL(closeMe(int)), popup, SLOT(close(int))); |
2634 | int x = 0; | 2634 | int x = 0; |
2635 | int y = iconToolBar->height(); | 2635 | int y = iconToolBar->height(); |
2636 | int dX = 0; | 2636 | int dX = 0; |
2637 | int dY = 0; | 2637 | int dY = 0; |
2638 | if ( iconToolBar->orientation () == Qt:: Horizontal ) { | 2638 | if ( iconToolBar->orientation () == Qt:: Horizontal ) { |
2639 | if ( iconToolBar->y() > height()/2 ) { | 2639 | if ( iconToolBar->y() > height()/2 ) { |
2640 | dY = picker->sizeHint().height()+8; | 2640 | dY = picker->sizeHint().height()+8; |
2641 | y = 0; | 2641 | y = 0; |
2642 | } | 2642 | } |
2643 | } else { | 2643 | } else { |
2644 | if ( iconToolBar->x() > width()/2 ) { // right side | 2644 | if ( iconToolBar->x() > width()/2 ) { // right side |
2645 | x=0; | 2645 | x=0; |
2646 | dX= picker->sizeHint().width()+8; | 2646 | dX= picker->sizeHint().width()+8; |
2647 | y = 0; | 2647 | y = 0; |
2648 | } else { | 2648 | } else { |
2649 | x= iconToolBar->width(); | 2649 | x= iconToolBar->width(); |
2650 | y = 0; | 2650 | y = 0; |
2651 | } | 2651 | } |
2652 | } | 2652 | } |
2653 | //qDebug("dax %d dy %d %d %d ", dX, dY, iconToolBar->x(), iconToolBar->y() ); | 2653 | //qDebug("dax %d dy %d %d %d ", dX, dY, iconToolBar->x(), iconToolBar->y() ); |
2654 | if(popup->exec(iconToolBar->mapToGlobal(QPoint(x,y)-QPoint( dX,dY)))) | 2654 | if(popup->exec(iconToolBar->mapToGlobal(QPoint(x,y)-QPoint( dX,dY)))) |
2655 | { | 2655 | { |
2656 | month = picker->getResult(); | 2656 | month = picker->getResult(); |
2657 | emit selectWeek ( month ); | 2657 | emit selectWeek ( month ); |
2658 | //qDebug("weekSelected %d ", month); | 2658 | //qDebug("weekSelected %d ", month); |
2659 | } | 2659 | } |
2660 | delete popup; | 2660 | delete popup; |
2661 | } | 2661 | } |
2662 | 2662 | ||
2663 | void MainWindow::hideEvent ( QHideEvent * ) | 2663 | void MainWindow::hideEvent ( QHideEvent * ) |
2664 | { | 2664 | { |