summaryrefslogtreecommitdiffabout
Unidiff
Diffstat (more/less context) (ignore whitespace changes)
-rw-r--r--bin/kdepim/WhatsNew.txt12
-rw-r--r--korganizer/kofilterview.cpp14
-rw-r--r--korganizer/kofilterview.h2
3 files changed, 23 insertions, 5 deletions
diff --git a/bin/kdepim/WhatsNew.txt b/bin/kdepim/WhatsNew.txt
index a11fab3..9b7f6ea 100644
--- a/bin/kdepim/WhatsNew.txt
+++ b/bin/kdepim/WhatsNew.txt
@@ -1,36 +1,48 @@
1Info about the changes in new versions of KDE-Pim/Pi 1Info about the changes in new versions of KDE-Pim/Pi
2 2
3********** VERSION 2.1.6 ************ 3********** VERSION 2.1.6 ************
4 4
5This release is for testing only.
6
5KO/Pi: 7KO/Pi:
6Added to the list view (the list view is used in search dialog as well) the possibility to print it. 8Added to the list view (the list view is used in search dialog as well) the possibility to print it.
7Added to the list view the possibility to hide entries, if you do not want to print all entries of the list view. 9Added to the list view the possibility to hide entries, if you do not want to print all entries of the list view.
8Added to the list view the possibility to add all subtodos of selected todos to an export/beam. 10Added to the list view the possibility to add all subtodos of selected todos to an export/beam.
9Added to the search dialog the possibility to make an additive search such that you can get a better list for export/printout. 11Added to the search dialog the possibility to make an additive search such that you can get a better list for export/printout.
10Added to the search dialog the possibility to hide the checkboxes such that there is more space for the list view on the Zaurus. 12Added to the search dialog the possibility to hide the checkboxes such that there is more space for the list view on the Zaurus.
11Fixed a problem in the AlarmTimer Applet: Now utf8 messages are displayed properly. 13Fixed a problem in the AlarmTimer Applet: Now utf8 messages are displayed properly.
12 14
15Added support for multiple calendar files in KO/Pi. Only local ical (*.ics) files are supported as calendars.
16In the sync profile config it is still missing to specify a particular calendar to sync with this profile. That setting will be added later.
17Now on every sync the set of calendars is synced which are enabled in the resource view.
18
19A calendar is enabled in the resource view if the "eye" column is checked.
20You can set a calendar to be the default for new items( "+" column ).
21You can tell KO/Pi to ignore all alarm of a calendar ( "bell" column ) and you can set it readonly.
22To find out how to add a new calendar and how to remove a calendar is left as an exercise to the reader ...
23
24
13********** VERSION 2.1.5 ************ 25********** VERSION 2.1.5 ************
14 26
15This is the new stable version. 27This is the new stable version.
16Bugfix: 28Bugfix:
17Fixed a problem with agenda popup on the desktop in KO/Pi. 29Fixed a problem with agenda popup on the desktop in KO/Pi.
18Fixed a crash when reloading file, e.g. after a passive pi-sync synchronization. 30Fixed a crash when reloading file, e.g. after a passive pi-sync synchronization.
19Added config option to not display completed todos in agenda view. 31Added config option to not display completed todos in agenda view.
20Addressee view is now using the formatted name, if defined. 32Addressee view is now using the formatted name, if defined.
21That makes it possible to display "lastname, firstname" in that view now. 33That makes it possible to display "lastname, firstname" in that view now.
22To set the formatted name for all contacts, please use menu: 34To set the formatted name for all contacts, please use menu:
23Edit->Change->Set formatted name. 35Edit->Change->Set formatted name.
24Fixed the bug in KA/Pi that is was not possible to add images to a contact on Windows. 36Fixed the bug in KA/Pi that is was not possible to add images to a contact on Windows.
25 37
26********** VERSION 2.1.4 ************ 38********** VERSION 2.1.4 ************
27 39
28Fixed two more bugs in the KA/Pi CSV import dialog: 40Fixed two more bugs in the KA/Pi CSV import dialog:
29Made it possible to read multi-line fields and import it to the "Note" field. 41Made it possible to read multi-line fields and import it to the "Note" field.
30Fixed a problem in mapping custom fields, whatever a custem field is... 42Fixed a problem in mapping custom fields, whatever a custem field is...
31 43
32********** VERSION 2.1.3 ************ 44********** VERSION 2.1.3 ************
33 45
34Changed the menu structure of the alarm applet: 46Changed the menu structure of the alarm applet:
35Moved "Simulate" to " Play Beeps" submenu and re-added "Todo List". 47Moved "Simulate" to " Play Beeps" submenu and re-added "Todo List".
36 48
diff --git a/korganizer/kofilterview.cpp b/korganizer/kofilterview.cpp
index 9633b2c..3333ac2 100644
--- a/korganizer/kofilterview.cpp
+++ b/korganizer/kofilterview.cpp
@@ -185,78 +185,84 @@ void KOCalEditView::selectStdCal( int id, bool b )
185 break; 185 break;
186 } 186 }
187 } 187 }
188 it = mStdandardB.next(); 188 it = mStdandardB.next();
189 } 189 }
190 KopiCalendarFile * kkf = KOPrefs::instance()->mCalendars.first(); 190 KopiCalendarFile * kkf = KOPrefs::instance()->mCalendars.first();
191 while ( kkf ) { 191 while ( kkf ) {
192 kkf->isStandard = false; 192 kkf->isStandard = false;
193 kkf = KOPrefs::instance()->mCalendars.next(); 193 kkf = KOPrefs::instance()->mCalendars.next();
194 } 194 }
195 KOPrefs::instance()->getCalendar( id )->isStandard = true; 195 KOPrefs::instance()->getCalendar( id )->isStandard = true;
196 emit setCalendarDefault ( id ); 196 emit setCalendarDefault ( id );
197} 197}
198 198
199void KOCalEditView::selectCalAlarm(int id ,bool b ) 199void KOCalEditView::selectCalAlarm(int id ,bool b )
200{ 200{
201 KOPrefs::instance()->getCalendar( id )->isAlarmEnabled = b; 201 KOPrefs::instance()->getCalendar( id )->isAlarmEnabled = b;
202 emit alarmEnabled ( id , b ); 202 emit alarmEnabled ( id , b );
203 emit needsUpdate(); 203 emit needsUpdate();
204} 204}
205void KOCalEditView::selectReadOnly(int id ,bool b ) 205void KOCalEditView::selectReadOnly(int id ,bool b )
206{ 206{
207 KOPrefs::instance()->getCalendar( id )->isReadOnly = b; 207 KOPrefs::instance()->getCalendar( id )->isReadOnly = b;
208 emit calendarReadonly ( id , b ); 208 emit calendarReadonly ( id , b );
209 if ( KOPrefs::instance()->getCalendar( id )->isStandard && b && id > 1 ) {
210 KOPrefs::instance()->getCalendar( id )->isStandard = false;
211 KOPrefs::instance()->getCalendar( 1 )->isStandard = true;
212 emit setCalendarDefault ( 1 );
213 }
209 emit needsUpdate(); 214 emit needsUpdate();
215 QTimer::singleShot( 0, this, SLOT ( readConfig() ) );
210 216
211} 217}
212void KOCalEditView::setColor( const QColor& c, int id ) 218void KOCalEditView::setColor( const QColor& c, int id )
213{ 219{
214 KOPrefs::instance()->getCalendar( id )->mDefaultColor = c; 220 KOPrefs::instance()->getCalendar( id )->mDefaultColor = c;
215 emit needsUpdate(); 221 emit needsUpdate();
216} 222}
217void KOCalEditView::deleteCal( int id ) 223void KOCalEditView::deleteCal( int id )
218{ 224{
219 KopiCalendarFile * kkf = KOPrefs::instance()->getCalendar( id ); 225 KopiCalendarFile * kkf = KOPrefs::instance()->getCalendar( id );
220 QString name = kkf->mName; 226 QString name = kkf->mName;
221 QString file = kkf->mFileName; 227 QString file = kkf->mFileName;
222 if ( KMessageBox::warningContinueCancel( this, i18n("The calendar <b>%1</b> is displaying file <b>%2</b><tr> Do you want to remove this calendar from KO/Pi? (The file is not removed, of course!)").arg(name).arg(file) ) != KMessageBox::Continue ) return; 228 if ( KMessageBox::warningContinueCancel( this, i18n("The calendar <b>%1</b> is displaying file <b>%2</b><tr> Do you want to remove this calendar from KO/Pi? (The file is not removed, of course!)").arg(name).arg(file) ) != KMessageBox::Continue ) return;
223 if ( kkf->isStandard ) 229 if ( kkf->isStandard )
224 selectStdCal( 1, true ); 230 selectStdCal( 1, true );
225 emit removeCalendar ( id ); 231 emit removeCalendar ( id );
226 KOPrefs::instance()->mCalendars.remove ( kkf ); 232 KOPrefs::instance()->mCalendars.remove ( kkf );
227 emit needsUpdate(); 233 emit needsUpdate();
228 readConfig(); 234 QTimer::singleShot( 0, this, SLOT ( readConfig() ) );
229} 235}
230void KOCalEditView::infoCal( int id ) 236void KOCalEditView::infoCal( int id )
231{ 237{
232 QString name = KOPrefs::instance()->getCalendar( id )->mName; 238 QString name = KOPrefs::instance()->getCalendar( id )->mName;
233 QString file = KOPrefs::instance()->getCalendar( id )->mFileName; 239 QString file = KOPrefs::instance()->getCalendar( id )->mFileName;
234 if ( KOPrefs::instance()->getCalendar( id )->mErrorOnLoad ) { 240 if ( KOPrefs::instance()->getCalendar( id )->mErrorOnLoad ) {
235 if ( KMessageBox::Yes == KMessageBox::questionYesNo( this, i18n("The calendar <b>%1</b> is not loaded! Loading of file <b>%2</b> failed! <b>Try again to load the calendar?</b>").arg(name).arg(file) ) ) { 241 if ( KMessageBox::Yes == KMessageBox::questionYesNo( this, i18n("The calendar <b>%1</b> is not loaded! Loading of file <b>%2</b> failed! <b>Try again to load the calendar?</b>").arg(name).arg(file) ) ) {
236 emit calendarAdded( id ); 242 emit calendarAdded( id );
237 readConfig();
238 emit needsUpdate(); 243 emit needsUpdate();
244 QTimer::singleShot( 0, this, SLOT ( readConfig() ) );
239 } 245 }
240 } 246 }
241 else 247 else
242 KMessageBox::information( this, i18n("The calendar <b>%1</b> is displaying file <b>%2</b>").arg(name).arg(file) ); 248 KMessageBox::information( this, i18n("The calendar <b>%1</b> is displaying file <b>%2</b>").arg(name).arg(file) );
243} 249}
244void KOCalEditView::readConfig() 250void KOCalEditView::readConfig()
245{ 251{
246 252
247 mStdandardB.clear(); 253 mStdandardB.clear();
248 mEnabledB.clear(); 254 mEnabledB.clear();
249 mAlarmB.clear(); 255 mAlarmB.clear();
250 mROB.clear(); 256 mROB.clear();
251 257
252 if ( mw ) delete mw; 258 if ( mw ) delete mw;
253 mw = new QWidget ( this ); 259 mw = new QWidget ( this );
254 ml->addWidget ( mw ); 260 ml->addWidget ( mw );
255 261
256 mainLayout = new QGridLayout ( mw , 2, 8 ); 262 mainLayout = new QGridLayout ( mw , 2, 8 );
257 //mainLayout->setSpacing( 3 ); 263 //mainLayout->setSpacing( 3 );
258 QPushButton * addBut = new QPushButton ( mw ); 264 QPushButton * addBut = new QPushButton ( mw );
259 mainLayout->addWidget( addBut,0,0 ); 265 mainLayout->addWidget( addBut,0,0 );
260 addBut->setPixmap ( SmallIcon("plus")); 266 addBut->setPixmap ( SmallIcon("plus"));
261 connect(addBut,SIGNAL(clicked()),SLOT(addCal())); 267 connect(addBut,SIGNAL(clicked()),SLOT(addCal()));
262 addBut->setMaximumWidth( addBut->sizeHint().height() ); 268 addBut->setMaximumWidth( addBut->sizeHint().height() );
@@ -281,49 +287,49 @@ void KOCalEditView::readConfig()
281 addBut->setPixmap ( SmallIcon("pencil")); 287 addBut->setPixmap ( SmallIcon("pencil"));
282 connect(addBut,SIGNAL(clicked()),SLOT(disableRO())); 288 connect(addBut,SIGNAL(clicked()),SLOT(disableRO()));
283 addBut->setMaximumWidth( addBut->sizeHint().height() ); 289 addBut->setMaximumWidth( addBut->sizeHint().height() );
284 290
285 lab = new QLabel ( i18n(" Color "), mw ); 291 lab = new QLabel ( i18n(" Color "), mw );
286 mainLayout->addWidget( lab,0,5 ); 292 mainLayout->addWidget( lab,0,5 );
287#if 0 293#if 0
288 addBut = new QPushButton ( mw ); 294 addBut = new QPushButton ( mw );
289 mainLayout->addWidget( addBut,0,6 ); 295 mainLayout->addWidget( addBut,0,6 );
290 addBut->setPixmap ( SmallIcon("minus")); 296 addBut->setPixmap ( SmallIcon("minus"));
291 connect(addBut,SIGNAL(clicked()),SLOT(deleteAll())); 297 connect(addBut,SIGNAL(clicked()),SLOT(deleteAll()));
292 addBut->setMaximumWidth( addBut->sizeHint().height() ); 298 addBut->setMaximumWidth( addBut->sizeHint().height() );
293#endif 299#endif
294 300
295 301
296 KopiCalendarFile * kkf = KOPrefs::instance()->mCalendars.first(); 302 KopiCalendarFile * kkf = KOPrefs::instance()->mCalendars.first();
297 int row = 1; 303 int row = 1;
298 while ( kkf ) { 304 while ( kkf ) {
299 305
300 KOCalCheckButton* cb = new KOCalCheckButton( mw ); 306 KOCalCheckButton* cb = new KOCalCheckButton( mw );
301 mainLayout->addWidget( cb,row,0 );mStdandardB.append( cb ); 307 mainLayout->addWidget( cb,row,0 );mStdandardB.append( cb );
302 cb->setChecked( kkf->isStandard ); 308 cb->setChecked( kkf->isStandard );
303 cb->setNum( kkf->mCalNumber ); 309 cb->setNum( kkf->mCalNumber );
304 connect (cb, SIGNAL (selectNum(int,bool)), SLOT ( selectStdCal(int,bool) ) ); 310 connect (cb, SIGNAL (selectNum(int,bool)), SLOT ( selectStdCal(int,bool) ) );
305 if ( kkf->mErrorOnLoad ) 311 if ( kkf->mErrorOnLoad || kkf->isReadOnly )
306 cb->setEnabled( false ); 312 cb->setEnabled( false );
307 cb = new KOCalCheckButton( mw ); 313 cb = new KOCalCheckButton( mw );
308 mainLayout->addWidget( cb,row,1 );mEnabledB.append( cb ); 314 mainLayout->addWidget( cb,row,1 );mEnabledB.append( cb );
309 cb->setChecked( kkf->isEnabled ); 315 cb->setChecked( kkf->isEnabled );
310 cb->setNum( kkf->mCalNumber ); 316 cb->setNum( kkf->mCalNumber );
311 if ( kkf->mErrorOnLoad ) 317 if ( kkf->mErrorOnLoad )
312 cb->setEnabled( false ); 318 cb->setEnabled( false );
313 connect (cb, SIGNAL (selectNum(int,bool)), SLOT ( selectCal(int,bool) ) ); 319 connect (cb, SIGNAL (selectNum(int,bool)), SLOT ( selectCal(int,bool) ) );
314 KOCalButton* name = new KOCalButton( mw ); 320 KOCalButton* name = new KOCalButton( mw );
315 name->setNum( kkf->mCalNumber ); 321 name->setNum( kkf->mCalNumber );
316 name->setText( kkf->mName ); 322 name->setText( kkf->mName );
317 mainLayout->addWidget( name,row,2 ); 323 mainLayout->addWidget( name,row,2 );
318 connect (name, SIGNAL (selectNum(int)), SLOT ( infoCal(int) ) ); 324 connect (name, SIGNAL (selectNum(int)), SLOT ( infoCal(int) ) );
319 cb = new KOCalCheckButton( mw ); 325 cb = new KOCalCheckButton( mw );
320 mainLayout->addWidget( cb,row,3 );mAlarmB.append( cb ); 326 mainLayout->addWidget( cb,row,3 );mAlarmB.append( cb );
321 cb->setChecked( kkf->isAlarmEnabled ); 327 cb->setChecked( kkf->isAlarmEnabled );
322 cb->setNum( kkf->mCalNumber ); 328 cb->setNum( kkf->mCalNumber );
323 connect (cb, SIGNAL (selectNum(int,bool)), SLOT ( selectCalAlarm(int,bool) ) ); 329 connect (cb, SIGNAL (selectNum(int,bool)), SLOT ( selectCalAlarm(int,bool) ) );
324 if ( kkf->mErrorOnLoad ) 330 if ( kkf->mErrorOnLoad )
325 cb->setEnabled( false ); 331 cb->setEnabled( false );
326 cb = new KOCalCheckButton( mw ); 332 cb = new KOCalCheckButton( mw );
327 mainLayout->addWidget( cb,row,4 );mROB.append( cb ); 333 mainLayout->addWidget( cb,row,4 );mROB.append( cb );
328 cb->setChecked( kkf->isReadOnly ); 334 cb->setChecked( kkf->isReadOnly );
329 cb->setNum( kkf->mCalNumber ); 335 cb->setNum( kkf->mCalNumber );
@@ -347,50 +353,50 @@ void KOCalEditView::readConfig()
347 ++row; 353 ++row;
348 kkf = KOPrefs::instance()->mCalendars.next(); 354 kkf = KOPrefs::instance()->mCalendars.next();
349 } 355 }
350 lab = new QLabel ( "", mw ); 356 lab = new QLabel ( "", mw );
351 mainLayout->addWidget( lab,row,0 ); 357 mainLayout->addWidget( lab,row,0 );
352 mw->show(); 358 mw->show();
353 359
354} 360}
355void KOCalEditView::addCal() 361void KOCalEditView::addCal()
356{ 362{
357 KONewCalPrefs prefs ( this ); 363 KONewCalPrefs prefs ( this );
358 if ( ! prefs.exec() ) 364 if ( ! prefs.exec() )
359 return; 365 return;
360 QString name = prefs.calName(); 366 QString name = prefs.calName();
361 QString file = prefs.calFileName(); 367 QString file = prefs.calFileName();
362 QFileInfo fi ( file ); 368 QFileInfo fi ( file );
363 if (!fi.exists() ) { 369 if (!fi.exists() ) {
364 KMessageBox::information( this, i18n("File does not exist!\nNo calendar added!")); 370 KMessageBox::information( this, i18n("File does not exist!\nNo calendar added!"));
365 return; 371 return;
366 } 372 }
367 KopiCalendarFile * kkf = KOPrefs::instance()->getNewCalendar(); 373 KopiCalendarFile * kkf = KOPrefs::instance()->getNewCalendar();
368 kkf->mName = name; 374 kkf->mName = name;
369 kkf->mFileName = file; 375 kkf->mFileName = file;
370 emit calendarAdded( kkf->mCalNumber ); 376 emit calendarAdded( kkf->mCalNumber );
371 readConfig();
372 emit needsUpdate(); 377 emit needsUpdate();
378 QTimer::singleShot( 0, this, SLOT ( readConfig() ) );
373} 379}
374void KOCalEditView::enableAll() 380void KOCalEditView::enableAll()
375{ 381{
376 toggleList( mEnabledB ); 382 toggleList( mEnabledB );
377} 383}
378void KOCalEditView::enableAlarm() 384void KOCalEditView::enableAlarm()
379{ 385{
380 toggleList( mAlarmB ); 386 toggleList( mAlarmB );
381} 387}
382void KOCalEditView::disableRO() 388void KOCalEditView::disableRO()
383{ 389{
384 toggleList( mROB ); 390 toggleList( mROB );
385} 391}
386void KOCalEditView::toggleList ( QPtrList<KOCalCheckButton> list ) 392void KOCalEditView::toggleList ( QPtrList<KOCalCheckButton> list )
387{ 393{
388 bool dis = false; 394 bool dis = false;
389 KOCalCheckButton* it = list.first(); 395 KOCalCheckButton* it = list.first();
390 while ( it ) { 396 while ( it ) {
391 if ( !it->isChecked() ) { 397 if ( !it->isChecked() ) {
392 dis = true; 398 dis = true;
393 break; 399 break;
394 } 400 }
395 it = list.next(); 401 it = list.next();
396 } 402 }
diff --git a/korganizer/kofilterview.h b/korganizer/kofilterview.h
index 4a0cd8a..1849e36 100644
--- a/korganizer/kofilterview.h
+++ b/korganizer/kofilterview.h
@@ -96,61 +96,61 @@ class KOFilterView : public KOFilterView_base
96 96
97 void updateFilters(); 97 void updateFilters();
98 98
99 bool filtersEnabled(); 99 bool filtersEnabled();
100 void setFiltersEnabled(bool); 100 void setFiltersEnabled(bool);
101 CalFilter *selectedFilter(); 101 CalFilter *selectedFilter();
102 void setSelectedFilter(QString); 102 void setSelectedFilter(QString);
103 void setSelectedFilter( int ); 103 void setSelectedFilter( int );
104 104
105 signals: 105 signals:
106 void filterChanged(); 106 void filterChanged();
107 void editFilters(); 107 void editFilters();
108 108
109 private: 109 private:
110 QPtrList<CalFilter> *mFilters; 110 QPtrList<CalFilter> *mFilters;
111}; 111};
112 112
113class KOCalEditView : public QWidget 113class KOCalEditView : public QWidget
114{ 114{
115 Q_OBJECT 115 Q_OBJECT
116 public: 116 public:
117 KOCalEditView( QWidget* parent=0,const char* name=0); 117 KOCalEditView( QWidget* parent=0,const char* name=0);
118 ~KOCalEditView(); 118 ~KOCalEditView();
119 119
120 void readConfig();
121 public slots: 120 public slots:
122 void addCal(); 121 void addCal();
123 void enableAll(); 122 void enableAll();
124 void enableAlarm(); 123 void enableAlarm();
125 void disableRO(); 124 void disableRO();
126 void deleteAll(); 125 void deleteAll();
127 void selectStdCal(int,bool ); 126 void selectStdCal(int,bool );
128 void selectCal(int,bool ); 127 void selectCal(int,bool );
129 void selectCalAlarm(int,bool ); 128 void selectCalAlarm(int,bool );
130 void selectReadOnly(int,bool ); 129 void selectReadOnly(int,bool );
131 void setColor(const QColor &,int) ; 130 void setColor(const QColor &,int) ;
132 void deleteCal(int) ; 131 void deleteCal(int) ;
133 void infoCal(int) ; 132 void infoCal(int) ;
133 void readConfig();
134 signals: 134 signals:
135 void alarmEnabled ( int cal, bool enable ); 135 void alarmEnabled ( int cal, bool enable );
136 void calendarEnabled ( int cal, bool enable ); 136 void calendarEnabled ( int cal, bool enable );
137 void calendarReadonly ( int cal, bool readonly ); 137 void calendarReadonly ( int cal, bool readonly );
138 void setCalendarDefault ( int cal ); 138 void setCalendarDefault ( int cal );
139 void removeCalendar ( int cal ); 139 void removeCalendar ( int cal );
140 void calendarAdded( int ); 140 void calendarAdded( int );
141 void needsUpdate(); 141 void needsUpdate();
142 142
143 private: 143 private:
144 QVBoxLayout* ml; 144 QVBoxLayout* ml;
145 QWidget *mw; 145 QWidget *mw;
146 void toggleList ( QPtrList<KOCalCheckButton> ); 146 void toggleList ( QPtrList<KOCalCheckButton> );
147 QPtrList<KOCalCheckButton> mStdandardB; 147 QPtrList<KOCalCheckButton> mStdandardB;
148 QPtrList<KOCalCheckButton> mEnabledB; 148 QPtrList<KOCalCheckButton> mEnabledB;
149 QPtrList<KOCalCheckButton> mAlarmB; 149 QPtrList<KOCalCheckButton> mAlarmB;
150 QPtrList<KOCalCheckButton> mROB; 150 QPtrList<KOCalCheckButton> mROB;
151 QGridLayout* mainLayout; 151 QGridLayout* mainLayout;
152}; 152};
153 153
154 154
155 155
156#endif // KOFILTERVIEW_H 156#endif // KOFILTERVIEW_H