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,102 +1,114 @@
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
37Fixed several problems in the KA/Pi CSV import dialog: 49Fixed several problems in the KA/Pi CSV import dialog:
38Added "Category", made codec configureable and made it possible to map many fields to the "Note" field. 50Added "Category", made codec configureable and made it possible to map many fields to the "Note" field.
39 51
40 52
41********** VERSION 2.1.2 ************ 53********** VERSION 2.1.2 ************
42 54
43Fixed a problem closing the alarm dialog on Zaurus with "OK" button. 55Fixed a problem closing the alarm dialog on Zaurus with "OK" button.
44 56
45Fixed a problem when importing data from Outlook with mutiple categories set. 57Fixed a problem when importing data from Outlook with mutiple categories set.
46 58
47Changed display of days in datenavigator: 59Changed display of days in datenavigator:
48Birthdays are now blue, not dark green. 60Birthdays are now blue, not dark green.
49When todo view is shown, no birtdays are shown and days with due todos are shown blue. 61When todo view is shown, no birtdays are shown and days with due todos are shown blue.
50When journal view is shown, only holidays are shown and days with journals are blue. 62When journal view is shown, only holidays are shown and days with journals are blue.
51 63
52Added Backup options to global config: 64Added Backup options to global config:
53You can create now x-daily backups for KO/Pi, KA/Pi (for file resources only, file resource is the standard type) and PwM/Pi ( all files you will open ). 65You can create now x-daily backups for KO/Pi, KA/Pi (for file resources only, file resource is the standard type) and PwM/Pi ( all files you will open ).
54It is recommended to use another HDD/Memory card for the backup directory. If (very useful on the Zaurus) the specified backup directory does not exist you are asked if you want to try again to create a backup. That makes it possible to insert your memory card in the Zaurus and then trying again. 66It is recommended to use another HDD/Memory card for the backup directory. If (very useful on the Zaurus) the specified backup directory does not exist you are asked if you want to try again to create a backup. That makes it possible to insert your memory card in the Zaurus and then trying again.
55The backup is created when the application wants to save for the first time on a backup-day. You can specify the amount of backups and the day interval of backups. 67The backup is created when the application wants to save for the first time on a backup-day. You can specify the amount of backups and the day interval of backups.
56 68
57********** VERSION 2.1.1 ************ 69********** VERSION 2.1.1 ************
58 70
59Stable release 2.1.1! 71Stable release 2.1.1!
60 72
61KO/Pi: 73KO/Pi:
62Fixed one problem in the layout of the edit dialogs on the Zaurus with 640x480 display. 74Fixed one problem in the layout of the edit dialogs on the Zaurus with 640x480 display.
63 75
64********** VERSION 2.1.0 ************ 76********** VERSION 2.1.0 ************
65 77
66Stable release 2.1.0! 78Stable release 2.1.0!
67 79
68Summary of changes/fixes compared to version 2.0.6: 80Summary of changes/fixes compared to version 2.0.6:
69 81
70Many bugs of version 2.0.6 fixed. 82Many bugs of version 2.0.6 fixed.
71Most of them were small bugs, but some of them were important. 83Most of them were small bugs, but some of them were important.
72It is recommended to use version 2.1.0 and not version 2.0.6. 84It is recommended to use version 2.1.0 and not version 2.0.6.
73 85
74Important changes: 86Important changes:
75 87
76Added recurring todos to KO/Pi. 88Added recurring todos to KO/Pi.
77 89
78Added global application font settings (for all KDE-Pim/Pi apps) to the general settings. 90Added global application font settings (for all KDE-Pim/Pi apps) to the general settings.
79 91
80Made Passwordmanager PwM/Pi more userfriendly: Rearranged some toolbar icons, optimized setting of focus, fixed layout problems and more. 92Made Passwordmanager PwM/Pi more userfriendly: Rearranged some toolbar icons, optimized setting of focus, fixed layout problems and more.
81 93
82Datenavigator can now display many months. Very useful on the desktop. 94Datenavigator can now display many months. Very useful on the desktop.
83 95
84KO/Pi alarm applet changed: Made buttons in alarm dialog much bigger and other usebility enhancements. 96KO/Pi alarm applet changed: Made buttons in alarm dialog much bigger and other usebility enhancements.
85 97
86Made alarm sound working on Linux desktop. 98Made alarm sound working on Linux desktop.
87 99
88Made KO/Pi and KA/Pi running from a memory stick. Please read storage HowTo for details. 100Made KO/Pi and KA/Pi running from a memory stick. Please read storage HowTo for details.
89 101
90Added timetracking feature in KO/Pi todo view. Please read timetraker HowTo for details. 102Added timetracking feature in KO/Pi todo view. Please read timetraker HowTo for details.
91 103
92Many other usebility enhancements. 104Many other usebility enhancements.
93Special thanks to Ben for his suggestions! 105Special thanks to Ben for his suggestions!
94 106
95You can find the complete changelog 107You can find the complete changelog
96from version 1.7.7 to 2.1.0 108from version 1.7.7 to 2.1.0
97in the source package or on 109in the source package or on
98 110
99http://www.pi-sync.net/html/changelog.html 111http://www.pi-sync.net/html/changelog.html
100 112
101 113
102 114
diff --git a/korganizer/kofilterview.cpp b/korganizer/kofilterview.cpp
index 9633b2c..3333ac2 100644
--- a/korganizer/kofilterview.cpp
+++ b/korganizer/kofilterview.cpp
@@ -113,294 +113,300 @@ void KOFilterView::updateFilters()
113 while(filter) { 113 while(filter) {
114 mSelectionCombo->insertItem(filter->name()); 114 mSelectionCombo->insertItem(filter->name());
115 filter = mFilters->next(); 115 filter = mFilters->next();
116 } 116 }
117} 117}
118 118
119CalFilter *KOFilterView::selectedFilter() 119CalFilter *KOFilterView::selectedFilter()
120{ 120{
121 CalFilter *f = mFilters->at(mSelectionCombo->currentItem()); 121 CalFilter *f = mFilters->at(mSelectionCombo->currentItem());
122 return f; 122 return f;
123} 123}
124 124
125void KOFilterView::setSelectedFilter(QString filterName) 125void KOFilterView::setSelectedFilter(QString filterName)
126{ 126{
127 int filter_num = mSelectionCombo->count(); 127 int filter_num = mSelectionCombo->count();
128 int i; 128 int i;
129 for (i=0;i<filter_num;i++) { 129 for (i=0;i<filter_num;i++) {
130 if (mSelectionCombo->text(i)==filterName) 130 if (mSelectionCombo->text(i)==filterName)
131 mSelectionCombo->setCurrentItem(i); 131 mSelectionCombo->setCurrentItem(i);
132 } 132 }
133 emit filterChanged(); 133 emit filterChanged();
134} 134}
135void KOFilterView::setSelectedFilter( int fil ) 135void KOFilterView::setSelectedFilter( int fil )
136{ 136{
137 if ( fil >= mSelectionCombo->count() ) 137 if ( fil >= mSelectionCombo->count() )
138 return; 138 return;
139 mSelectionCombo->setCurrentItem( fil ); 139 mSelectionCombo->setCurrentItem( fil );
140 emit filterChanged(); 140 emit filterChanged();
141} 141}
142 142
143 143
144 144
145KOCalEditView::KOCalEditView(QWidget* parent, 145KOCalEditView::KOCalEditView(QWidget* parent,
146 const char* name ) 146 const char* name )
147 : QWidget(parent,name) 147 : QWidget(parent,name)
148{ 148{
149 mw = 0; 149 mw = 0;
150 ml = new QVBoxLayout ( this ); 150 ml = new QVBoxLayout ( this );
151} 151}
152 152
153KOCalEditView::~KOCalEditView() 153KOCalEditView::~KOCalEditView()
154{ 154{
155 // no need to delete child widgets, Qt does it all for us 155 // no need to delete child widgets, Qt does it all for us
156} 156}
157void KOCalEditView::selectCal(int id ,bool b) 157void KOCalEditView::selectCal(int id ,bool b)
158{ 158{
159 KOPrefs::instance()->getCalendar( id )->isEnabled = b; 159 KOPrefs::instance()->getCalendar( id )->isEnabled = b;
160 emit calendarEnabled ( id, b ); 160 emit calendarEnabled ( id, b );
161 emit needsUpdate(); 161 emit needsUpdate();
162 162
163} 163}
164void KOCalEditView::selectStdCal( int id, bool b ) 164void KOCalEditView::selectStdCal( int id, bool b )
165{ 165{
166 166
167 if ( !b ) { 167 if ( !b ) {
168 KOCalCheckButton* it = (KOCalCheckButton*) sender(); 168 KOCalCheckButton* it = (KOCalCheckButton*) sender();
169 if ( it ) { 169 if ( it ) {
170 it->blockSignals( true ); 170 it->blockSignals( true );
171 it->setChecked( true ); 171 it->setChecked( true );
172 it->blockSignals( false ); 172 it->blockSignals( false );
173 return; 173 return;
174 } 174 }
175 return; 175 return;
176 } 176 }
177 KOCalCheckButton* sen = (KOCalCheckButton*) sender(); 177 KOCalCheckButton* sen = (KOCalCheckButton*) sender();
178 KOCalCheckButton* it = mStdandardB.first(); 178 KOCalCheckButton* it = mStdandardB.first();
179 while ( it ) { 179 while ( it ) {
180 if ( it->isChecked() ) { 180 if ( it->isChecked() ) {
181 if ( it != sen ) { 181 if ( it != sen ) {
182 it->blockSignals( true ); 182 it->blockSignals( true );
183 it->setChecked( false ); 183 it->setChecked( false );
184 it->blockSignals( false ); 184 it->blockSignals( false );
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() );
263 269
264 addBut = new QPushButton ( mw ); 270 addBut = new QPushButton ( mw );
265 mainLayout->addWidget( addBut,0,1 ); 271 mainLayout->addWidget( addBut,0,1 );
266 addBut->setPixmap ( SmallIcon("eye")); 272 addBut->setPixmap ( SmallIcon("eye"));
267 connect(addBut,SIGNAL(clicked()),SLOT(enableAll())); 273 connect(addBut,SIGNAL(clicked()),SLOT(enableAll()));
268 addBut->setMaximumWidth( addBut->sizeHint().height() ); 274 addBut->setMaximumWidth( addBut->sizeHint().height() );
269 275
270 QLabel* lab = new QLabel ( " "+i18n("Calendar")+" ", mw ); 276 QLabel* lab = new QLabel ( " "+i18n("Calendar")+" ", mw );
271 mainLayout->addWidget( lab,0,2 ); 277 mainLayout->addWidget( lab,0,2 );
272 278
273 addBut = new QPushButton ( mw ); 279 addBut = new QPushButton ( mw );
274 mainLayout->addWidget( addBut,0,3 ); 280 mainLayout->addWidget( addBut,0,3 );
275 addBut->setPixmap ( SmallIcon("bell")); 281 addBut->setPixmap ( SmallIcon("bell"));
276 connect(addBut,SIGNAL(clicked()),SLOT(enableAlarm())); 282 connect(addBut,SIGNAL(clicked()),SLOT(enableAlarm()));
277 addBut->setMaximumWidth( addBut->sizeHint().height() ); 283 addBut->setMaximumWidth( addBut->sizeHint().height() );
278 284
279 addBut = new QPushButton ( mw ); 285 addBut = new QPushButton ( mw );
280 mainLayout->addWidget( addBut,0,4 ); 286 mainLayout->addWidget( addBut,0,4 );
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 );
330 connect (cb, SIGNAL (selectNum(int,bool)), SLOT ( selectReadOnly(int,bool) ) ); 336 connect (cb, SIGNAL (selectNum(int,bool)), SLOT ( selectReadOnly(int,bool) ) );
331 if ( kkf->mErrorOnLoad ) 337 if ( kkf->mErrorOnLoad )
332 cb->setEnabled( false ); 338 cb->setEnabled( false );
333 KColorButton *colb = new KColorButton( mw ); 339 KColorButton *colb = new KColorButton( mw );
334 mainLayout->addWidget( colb,row,5 ); 340 mainLayout->addWidget( colb,row,5 );
335 colb->setID( kkf->mCalNumber ); 341 colb->setID( kkf->mCalNumber );
336 colb->setColor( kkf->mDefaultColor ); 342 colb->setColor( kkf->mDefaultColor );
337 connect (colb, SIGNAL (changedID(const QColor&, int )), SLOT ( setColor(const QColor&,int) ) ); 343 connect (colb, SIGNAL (changedID(const QColor&, int )), SLOT ( setColor(const QColor&,int) ) );
338 if ( row > 1) { 344 if ( row > 1) {
339 KOCalButton* calb = new KOCalButton( mw ); 345 KOCalButton* calb = new KOCalButton( mw );
340 mainLayout->addWidget( calb,row,6 ); 346 mainLayout->addWidget( calb,row,6 );
341 calb->setNum( kkf->mCalNumber ); 347 calb->setNum( kkf->mCalNumber );
342 calb->setPixmap ( SmallIcon("minus")); 348 calb->setPixmap ( SmallIcon("minus"));
343 connect (calb, SIGNAL (selectNum(int)), SLOT ( deleteCal(int) ) ); 349 connect (calb, SIGNAL (selectNum(int)), SLOT ( deleteCal(int) ) );
344 int hei = calb->sizeHint().height(); 350 int hei = calb->sizeHint().height();
345 //calb->setMaximumSize( hei*9/10, hei*9/10 ); 351 //calb->setMaximumSize( hei*9/10, hei*9/10 );
346 } 352 }
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 }
397 it = list.first(); 403 it = list.first();
398 while ( it ) { 404 while ( it ) {
399 it->setChecked(dis); 405 it->setChecked(dis);
400 it = list.next(); 406 it = list.next();
401 } 407 }
402} 408}
403void KOCalEditView::deleteAll() 409void KOCalEditView::deleteAll()
404{ 410{
405 qDebug("delteAll"); 411 qDebug("delteAll");
406} 412}
diff --git a/korganizer/kofilterview.h b/korganizer/kofilterview.h
index 4a0cd8a..1849e36 100644
--- a/korganizer/kofilterview.h
+++ b/korganizer/kofilterview.h
@@ -24,133 +24,133 @@
24#define KOFILTERVIEW_H 24#define KOFILTERVIEW_H
25 25
26#include <qstring.h> 26#include <qstring.h>
27#include <qcheckbox.h> 27#include <qcheckbox.h>
28#include <qpushbutton.h> 28#include <qpushbutton.h>
29#include <kconfig.h> 29#include <kconfig.h>
30#include "kofilterview_base.h" 30#include "kofilterview_base.h"
31 31
32#include <libkcal/calfilter.h> 32#include <libkcal/calfilter.h>
33 33
34class QGridLayout; 34class QGridLayout;
35 35
36using namespace KCal; 36using namespace KCal;
37class KOCalButton : public QPushButton 37class KOCalButton : public QPushButton
38{ 38{
39 Q_OBJECT 39 Q_OBJECT
40 public: 40 public:
41 KOCalButton( QWidget *parent=0, const char *name=0 ) : 41 KOCalButton( QWidget *parent=0, const char *name=0 ) :
42 QPushButton( parent, name) 42 QPushButton( parent, name)
43 { 43 {
44 connect( this, SIGNAL( clicked() ), 44 connect( this, SIGNAL( clicked() ),
45 SLOT( bottonClicked() )); 45 SLOT( bottonClicked() ));
46 mNumber = -1; 46 mNumber = -1;
47 } 47 }
48 void setNum ( int num ) {mNumber = num; } 48 void setNum ( int num ) {mNumber = num; }
49 signals: 49 signals:
50 void selectNum ( int ); 50 void selectNum ( int );
51private: 51private:
52 int mNumber; 52 int mNumber;
53 void keyPressEvent ( QKeyEvent * e ) 53 void keyPressEvent ( QKeyEvent * e )
54 { 54 {
55 e->ignore(); 55 e->ignore();
56 } 56 }
57 57
58private slots : 58private slots :
59 void bottonClicked() { if ( mNumber > 0 ) emit selectNum ( mNumber ); } 59 void bottonClicked() { if ( mNumber > 0 ) emit selectNum ( mNumber ); }
60}; 60};
61class KOCalCheckButton : public QCheckBox 61class KOCalCheckButton : public QCheckBox
62{ 62{
63 Q_OBJECT 63 Q_OBJECT
64 public: 64 public:
65 KOCalCheckButton( QWidget *parent=0, const char *name=0 ) : 65 KOCalCheckButton( QWidget *parent=0, const char *name=0 ) :
66 QCheckBox( parent, name) 66 QCheckBox( parent, name)
67 { 67 {
68 connect( this, SIGNAL( toggled ( bool ) ), 68 connect( this, SIGNAL( toggled ( bool ) ),
69 SLOT( bottonClicked( bool ) )); 69 SLOT( bottonClicked( bool ) ));
70 mNumber = -1; 70 mNumber = -1;
71 //setMaximumWidth( 10 ); 71 //setMaximumWidth( 10 );
72 72
73 } 73 }
74 void setNum ( int num ) {mNumber = num; } 74 void setNum ( int num ) {mNumber = num; }
75 signals: 75 signals:
76 void selectNum ( int, bool ); 76 void selectNum ( int, bool );
77private: 77private:
78 int mNumber; 78 int mNumber;
79 void keyPressEvent ( QKeyEvent * e ) 79 void keyPressEvent ( QKeyEvent * e )
80 { 80 {
81 e->ignore(); 81 e->ignore();
82 } 82 }
83 83
84private slots : 84private slots :
85 void bottonClicked( bool b) { if ( mNumber > 0 ) emit selectNum ( mNumber , b); } 85 void bottonClicked( bool b) { if ( mNumber > 0 ) emit selectNum ( mNumber , b); }
86}; 86};
87 87
88 88
89 89
90class KOFilterView : public KOFilterView_base 90class KOFilterView : public KOFilterView_base
91{ 91{
92 Q_OBJECT 92 Q_OBJECT
93 public: 93 public:
94 KOFilterView(QPtrList<CalFilter> *filterList,QWidget* parent=0,const char* name=0, WFlags fl=0); 94 KOFilterView(QPtrList<CalFilter> *filterList,QWidget* parent=0,const char* name=0, WFlags fl=0);
95 ~KOFilterView(); 95 ~KOFilterView();
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