summaryrefslogtreecommitdiffabout
Unidiff
Diffstat (more/less context) (ignore whitespace changes)
-rw-r--r--korganizer/calendarview.cpp7
-rw-r--r--korganizer/kofilterview.cpp255
-rw-r--r--korganizer/kofilterview.h118
-rw-r--r--korganizer/koprefs.cpp7
-rw-r--r--korganizer/koprefs.h1
-rw-r--r--libkdepim/kcmconfigs/kdepimconfigwidget.cpp1
-rw-r--r--microkde/kcolorbutton.cpp7
-rw-r--r--microkde/kcolorbutton.h3
8 files changed, 323 insertions, 76 deletions
diff --git a/korganizer/calendarview.cpp b/korganizer/calendarview.cpp
index 753d81f..1024b4e 100644
--- a/korganizer/calendarview.cpp
+++ b/korganizer/calendarview.cpp
@@ -3895,98 +3895,101 @@ void CalendarView::showDates(const DateList &selectedDates)
3895 addString = i18n("Tomorrow"); 3895 addString = i18n("Tomorrow");
3896 else if ( date == QDateTime::currentDateTime().date().addDays(-1) ) 3896 else if ( date == QDateTime::currentDateTime().date().addDays(-1) )
3897 addString = i18n("Yesterday"); 3897 addString = i18n("Yesterday");
3898 else if ( date == QDateTime::currentDateTime().date().addDays(-2) ) 3898 else if ( date == QDateTime::currentDateTime().date().addDays(-2) )
3899 addString = i18n("Day before yesterday"); 3899 addString = i18n("Day before yesterday");
3900 else if ( date == QDateTime::currentDateTime().date().addDays(2) ) 3900 else if ( date == QDateTime::currentDateTime().date().addDays(2) )
3901 addString = i18n("Day after tomorrow"); 3901 addString = i18n("Day after tomorrow");
3902 if ( !addString.isEmpty() ) { 3902 if ( !addString.isEmpty() ) {
3903 topLevelWidget()->setCaption( addString+", " + selDates ); 3903 topLevelWidget()->setCaption( addString+", " + selDates );
3904 return; 3904 return;
3905 } 3905 }
3906 } 3906 }
3907 topLevelWidget()->setCaption( i18n("Dates: ") + selDates ); 3907 topLevelWidget()->setCaption( i18n("Dates: ") + selDates );
3908 3908
3909} 3909}
3910 3910
3911QPtrList<CalFilter> CalendarView::filters() 3911QPtrList<CalFilter> CalendarView::filters()
3912{ 3912{
3913 return mFilters; 3913 return mFilters;
3914 3914
3915} 3915}
3916void CalendarView::editFilters() 3916void CalendarView::editFilters()
3917{ 3917{
3918 // kdDebug() << "CalendarView::editFilters()" << endl; 3918 // kdDebug() << "CalendarView::editFilters()" << endl;
3919 3919
3920 CalFilter *filter = mFilters.first(); 3920 CalFilter *filter = mFilters.first();
3921 while(filter) { 3921 while(filter) {
3922 kdDebug() << " Filter: " << filter->name() << endl; 3922 kdDebug() << " Filter: " << filter->name() << endl;
3923 filter = mFilters.next(); 3923 filter = mFilters.next();
3924 } 3924 }
3925 3925
3926 mDialogManager->showFilterEditDialog(&mFilters); 3926 mDialogManager->showFilterEditDialog(&mFilters);
3927} 3927}
3928void CalendarView::toggleFilter() 3928void CalendarView::toggleFilter()
3929{ 3929{
3930 showFilter(! mFilterView->isVisible()); 3930 showFilter(! mFilterView->isVisible());
3931} 3931}
3932 3932
3933KOFilterView *CalendarView::filterView() 3933KOFilterView *CalendarView::filterView()
3934{ 3934{
3935 return mFilterView; 3935 return mFilterView;
3936} 3936}
3937void CalendarView::selectFilter( int fil ) 3937void CalendarView::selectFilter( int fil )
3938{ 3938{
3939 mFilterView->setSelectedFilter( fil ); 3939 mFilterView->setSelectedFilter( fil );
3940} 3940}
3941void CalendarView::showFilter(bool visible) 3941void CalendarView::showFilter(bool visible)
3942{ 3942{
3943#if 0 3943#if 1
3944 if (visible) mCalEditView->show(); 3944 if (visible) {
3945 mCalEditView->readConfig();
3946 mCalEditView->show();
3947 }
3945 else mCalEditView->hide(); 3948 else mCalEditView->hide();
3946#else 3949#else
3947 if (visible) mFilterView->show(); 3950 if (visible) mFilterView->show();
3948 else mFilterView->hide(); 3951 else mFilterView->hide();
3949#endif 3952#endif
3950} 3953}
3951void CalendarView::toggleFilerEnabled( ) 3954void CalendarView::toggleFilerEnabled( )
3952{ 3955{
3953 mFilterView->setFiltersEnabled ( !mFilterView->filtersEnabled() ); 3956 mFilterView->setFiltersEnabled ( !mFilterView->filtersEnabled() );
3954 if ( !mFilterView->filtersEnabled() ) 3957 if ( !mFilterView->filtersEnabled() )
3955 topLevelWidget()->setCaption( i18n("Filter disabled ") ); 3958 topLevelWidget()->setCaption( i18n("Filter disabled ") );
3956 3959
3957} 3960}
3958void CalendarView::updateFilter() 3961void CalendarView::updateFilter()
3959{ 3962{
3960 CalFilter *filter = mFilterView->selectedFilter(); 3963 CalFilter *filter = mFilterView->selectedFilter();
3961 if (filter) { 3964 if (filter) {
3962 QString mess; 3965 QString mess;
3963 if (mFilterView->filtersEnabled()) { 3966 if (mFilterView->filtersEnabled()) {
3964 mess = i18n("Filter selected: ")+filter->name(); 3967 mess = i18n("Filter selected: ")+filter->name();
3965 filter->setEnabled(true); 3968 filter->setEnabled(true);
3966 } 3969 }
3967 else filter->setEnabled(false); 3970 else filter->setEnabled(false);
3968 mCalendar->setFilter(filter); 3971 mCalendar->setFilter(filter);
3969 updateView(); 3972 updateView();
3970 if ( !mess.isEmpty() ) 3973 if ( !mess.isEmpty() )
3971 topLevelWidget()->setCaption( mess ); 3974 topLevelWidget()->setCaption( mess );
3972 3975
3973 } 3976 }
3974} 3977}
3975 3978
3976void CalendarView::filterEdited() 3979void CalendarView::filterEdited()
3977{ 3980{
3978 mFilterView->updateFilters(); 3981 mFilterView->updateFilters();
3979 updateFilter(); 3982 updateFilter();
3980 writeSettings(); 3983 writeSettings();
3981} 3984}
3982 3985
3983 3986
3984void CalendarView::takeOverEvent() 3987void CalendarView::takeOverEvent()
3985{ 3988{
3986 Incidence *incidence = currentSelection(); 3989 Incidence *incidence = currentSelection();
3987 3990
3988 if (!incidence) return; 3991 if (!incidence) return;
3989 3992
3990 incidence->setOrganizer(KOPrefs::instance()->email()); 3993 incidence->setOrganizer(KOPrefs::instance()->email());
3991 incidence->recreate(); 3994 incidence->recreate();
3992 incidence->setReadOnly(false); 3995 incidence->setReadOnly(false);
diff --git a/korganizer/kofilterview.cpp b/korganizer/kofilterview.cpp
index dc6237b..d79b28e 100644
--- a/korganizer/kofilterview.cpp
+++ b/korganizer/kofilterview.cpp
@@ -1,176 +1,383 @@
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 30
30 31
31#include <libkcal/calfilter.h> 32#include <libkcal/calfilter.h>
32 33
33#include "kofilterview.h" 34#include "kofilterview.h"
35#include "koprefs.h"
34#include <kiconloader.h> 36#include <kiconloader.h>
35#include <kglobal.h> 37#include <kglobal.h>
38#include <kcolorbutton.h>
39#include <kmessagebox.h>
40
41
42#include <kurlrequester.h>
43#include <klineedit.h>
44
45class KONewCalPrefs : public QDialog
46{
47 public:
48 KONewCalPrefs( QWidget *parent=0, const char *name=0 ) :
49 QDialog( parent, name, true )
50 {
51 setCaption( i18n("Add new Calendar") );
52 QVBoxLayout* lay = new QVBoxLayout( this );
53 lay->setSpacing( 3 );
54 lay->setMargin( 3 );
55 QLabel * lab = new QLabel( i18n("<b>Name of new calendar:</b>"), this );
56 lay->addWidget( lab );
57 nameE = new KLineEdit( this );
58 lay->addWidget( nameE );
59 lab = new QLabel( i18n("Local ical (*.ics) file:"), this );
60 lay->addWidget( lab );
61 url = new KURLRequester ( this );
62 lay->addWidget( url );
63 QPushButton * ok = new QPushButton( i18n("OK"), this );
64 lay->addWidget( ok );
65 QPushButton * cancel = new QPushButton( i18n("Cancel"), this );
66 lay->addWidget( cancel );
67 connect ( ok,SIGNAL(clicked() ),this , SLOT ( accept() ) );
68 connect (cancel, SIGNAL(clicked() ), this, SLOT ( reject()) );
69 resize( 200, 200 );
70 }
71
72 QString calName() { return nameE->text(); }
73 QString calFileName() { return url->url(); }
74private:
75 KLineEdit* nameE;
76 KURLRequester *url;
77};
78
36 79
37KOFilterView::KOFilterView(QPtrList<CalFilter> *filterList,QWidget* parent, 80KOFilterView::KOFilterView(QPtrList<CalFilter> *filterList,QWidget* parent,
38 const char* name,WFlags fl ) 81 const char* name,WFlags fl )
39 : KOFilterView_base(parent,name,fl) 82 : KOFilterView_base(parent,name,fl)
40{ 83{
41 mFilters = filterList; 84 mFilters = filterList;
42 85
43 connect(mSelectionCombo,SIGNAL(activated(int)),SIGNAL(filterChanged())); 86 connect(mSelectionCombo,SIGNAL(activated(int)),SIGNAL(filterChanged()));
44 connect(mEnabledCheck,SIGNAL(clicked()),SIGNAL(filterChanged())); 87 connect(mEnabledCheck,SIGNAL(clicked()),SIGNAL(filterChanged()));
45 connect(mEditButton,SIGNAL(clicked()),SIGNAL(editFilters())); 88 connect(mEditButton,SIGNAL(clicked()),SIGNAL(editFilters()));
46} 89}
47 90
48KOFilterView::~KOFilterView() 91KOFilterView::~KOFilterView()
49{ 92{
50 // no need to delete child widgets, Qt does it all for us 93 // no need to delete child widgets, Qt does it all for us
51} 94}
52 95
53bool KOFilterView::filtersEnabled() 96bool KOFilterView::filtersEnabled()
54{ 97{
55 return mEnabledCheck->isChecked(); 98 return mEnabledCheck->isChecked();
56} 99}
57 100
58void KOFilterView::setFiltersEnabled(bool set) 101void KOFilterView::setFiltersEnabled(bool set)
59{ 102{
60 mEnabledCheck->setChecked(set); 103 mEnabledCheck->setChecked(set);
61 emit filterChanged(); 104 emit filterChanged();
62} 105}
63 106
64 107
65void KOFilterView::updateFilters() 108void KOFilterView::updateFilters()
66{ 109{
67 mSelectionCombo->clear(); 110 mSelectionCombo->clear();
68 111
69 CalFilter *filter = mFilters->first(); 112 CalFilter *filter = mFilters->first();
70 while(filter) { 113 while(filter) {
71 mSelectionCombo->insertItem(filter->name()); 114 mSelectionCombo->insertItem(filter->name());
72 filter = mFilters->next(); 115 filter = mFilters->next();
73 } 116 }
74} 117}
75 118
76CalFilter *KOFilterView::selectedFilter() 119CalFilter *KOFilterView::selectedFilter()
77{ 120{
78 CalFilter *f = mFilters->at(mSelectionCombo->currentItem()); 121 CalFilter *f = mFilters->at(mSelectionCombo->currentItem());
79 return f; 122 return f;
80} 123}
81 124
82void KOFilterView::setSelectedFilter(QString filterName) 125void KOFilterView::setSelectedFilter(QString filterName)
83{ 126{
84 int filter_num = mSelectionCombo->count(); 127 int filter_num = mSelectionCombo->count();
85 int i; 128 int i;
86 for (i=0;i<filter_num;i++) { 129 for (i=0;i<filter_num;i++) {
87 if (mSelectionCombo->text(i)==filterName) 130 if (mSelectionCombo->text(i)==filterName)
88 mSelectionCombo->setCurrentItem(i); 131 mSelectionCombo->setCurrentItem(i);
89 } 132 }
90 emit filterChanged(); 133 emit filterChanged();
91} 134}
92void KOFilterView::setSelectedFilter( int fil ) 135void KOFilterView::setSelectedFilter( int fil )
93{ 136{
94 if ( fil >= mSelectionCombo->count() ) 137 if ( fil >= mSelectionCombo->count() )
95 return; 138 return;
96 mSelectionCombo->setCurrentItem( fil ); 139 mSelectionCombo->setCurrentItem( fil );
97 emit filterChanged(); 140 emit filterChanged();
98} 141}
99 142
100 143
101 144
102KOCalEditView::KOCalEditView(QWidget* parent, 145KOCalEditView::KOCalEditView(QWidget* parent,
103 const char* name ) 146 const char* name )
104 : QWidget(parent,name) 147 : QWidget(parent,name)
105{ 148{
106 /* 149 mw = 0;
107 connect(mSelectionCombo,SIGNAL(activated(int)),SIGNAL(filterChanged())); 150 ml = new QVBoxLayout ( this );
108 connect(mEnabledCheck,SIGNAL(clicked()),SIGNAL(filterChanged())); 151}
109 connect(mEditButton,SIGNAL(clicked()),SIGNAL(editCalEdits())); 152
110 */ 153KOCalEditView::~KOCalEditView()
111 QGridLayout* mainLayout = new QGridLayout ( this , 2, 6 ); 154{
112 QPushButton * addBut = new QPushButton ( this ); 155 // no need to delete child widgets, Qt does it all for us
156}
157void KOCalEditView::selectCal(int id ,bool b)
158{
159 KOPrefs::instance()->getCalendar( id )->isEnabled = b;
160 emit calendarEnabled ( id, b );
161
162}
163void KOCalEditView::selectStdCal( int id, bool b )
164{
165
166 if ( !b ) {
167 KOCalCheckButton* it = (KOCalCheckButton*) sender();
168 if ( it ) {
169 it->blockSignals( true );
170 it->setChecked( true );
171 it->blockSignals( false );
172 return;
173 }
174 return;
175 }
176 KOCalCheckButton* sen = (KOCalCheckButton*) sender();
177 KOCalCheckButton* it = mStdandardB.first();
178 while ( it ) {
179 if ( it->isChecked() ) {
180 if ( it != sen ) {
181 it->blockSignals( true );
182 it->setChecked( false );
183 it->blockSignals( false );
184 break;
185 }
186 }
187 it = mStdandardB.next();
188 }
189 KopiCalendarFile * kkf = KOPrefs::instance()->mCalendars.first();
190 while ( kkf ) {
191 kkf->isStandard = false;
192 kkf = KOPrefs::instance()->mCalendars.next();
193 }
194 KOPrefs::instance()->getCalendar( id )->isStandard = true;
195 emit setCalendarDefault ( id );
196}
197
198void KOCalEditView::selectCalAlarm(int id ,bool b )
199{
200 KOPrefs::instance()->getCalendar( id )->isAlarmEnabled = b;
201 emit alarmEnabled ( id , b );
202}
203void KOCalEditView::selectReadOnly(int id ,bool b )
204{
205 KOPrefs::instance()->getCalendar( id )->isReadOnly = b;
206 emit calendarReadonly ( id , b );
207
208}
209void KOCalEditView::setColor( const QColor& c, int id )
210{
211 KOPrefs::instance()->getCalendar( id )->mDefaultColor = c;
212}
213void KOCalEditView::deleteCal( int id )
214{
215 KopiCalendarFile * kkf = KOPrefs::instance()->getCalendar( id );
216 QString name = kkf->mName;
217 QString file = kkf->mFileName;
218 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;
219 emit removeCalendar ( id );
220 KOPrefs::instance()->mCalendars.remove ( kkf );
221 readConfig();
222}
223void KOCalEditView::infoCal( int id )
224{
225 QString name = KOPrefs::instance()->getCalendar( id )->mName;
226 QString file = KOPrefs::instance()->getCalendar( id )->mFileName;
227 KMessageBox::information( this, i18n("The calendar <b>%1</b> is displaying file <b>%2</b>").arg(name).arg(file) );
228}
229void KOCalEditView::readConfig()
230{
231
232 mStdandardB.clear();
233 mEnabledB.clear();
234 mAlarmB.clear();
235 mROB.clear();
236
237 if ( mw ) delete mw;
238 mw = new QWidget ( this );
239 ml->addWidget ( mw );
240
241 mainLayout = new QGridLayout ( mw , 2, 8 );
242 mainLayout->setSpacing( 3 );
243 QPushButton * addBut = new QPushButton ( mw );
113 mainLayout->addWidget( addBut,0,0 ); 244 mainLayout->addWidget( addBut,0,0 );
114 addBut->setPixmap ( SmallIcon("plus")); 245 addBut->setPixmap ( SmallIcon("plus"));
115 connect(addBut,SIGNAL(clicked()),SLOT(addCal())); 246 connect(addBut,SIGNAL(clicked()),SLOT(addCal()));
116 addBut->setMaximumWidth( addBut->sizeHint().height() ); 247 addBut->setMaximumWidth( addBut->sizeHint().height() );
117 248
118 addBut = new QPushButton ( this ); 249 addBut = new QPushButton ( mw );
119 mainLayout->addWidget( addBut,0,1 ); 250 mainLayout->addWidget( addBut,0,1 );
120 addBut->setPixmap ( SmallIcon("eye")); 251 addBut->setPixmap ( SmallIcon("eye"));
121 connect(addBut,SIGNAL(clicked()),SLOT(enableAll())); 252 connect(addBut,SIGNAL(clicked()),SLOT(enableAll()));
122 addBut->setMaximumWidth( addBut->sizeHint().height() ); 253 addBut->setMaximumWidth( addBut->sizeHint().height() );
123 254
124 QLabel* lab = new QLabel ( " "+i18n("Calendar")+" ", this ); 255 QLabel* lab = new QLabel ( " "+i18n("Calendar")+" ", mw );
125 mainLayout->addWidget( lab,0,2 ); 256 mainLayout->addWidget( lab,0,2 );
126 257
127 addBut = new QPushButton ( this ); 258 addBut = new QPushButton ( mw );
128 mainLayout->addWidget( addBut,0,3 ); 259 mainLayout->addWidget( addBut,0,3 );
129 addBut->setPixmap ( SmallIcon("bell")); 260 addBut->setPixmap ( SmallIcon("bell"));
130 connect(addBut,SIGNAL(clicked()),SLOT(enableAlarm())); 261 connect(addBut,SIGNAL(clicked()),SLOT(enableAlarm()));
131 addBut->setMaximumWidth( addBut->sizeHint().height() ); 262 addBut->setMaximumWidth( addBut->sizeHint().height() );
132 263
133 addBut = new QPushButton ( this ); 264 addBut = new QPushButton ( mw );
134 mainLayout->addWidget( addBut,0,4 ); 265 mainLayout->addWidget( addBut,0,4 );
135 addBut->setPixmap ( SmallIcon("pencil")); 266 addBut->setPixmap ( SmallIcon("pencil"));
136 connect(addBut,SIGNAL(clicked()),SLOT(disableRO())); 267 connect(addBut,SIGNAL(clicked()),SLOT(disableRO()));
137 addBut->setMaximumWidth( addBut->sizeHint().height() ); 268 addBut->setMaximumWidth( addBut->sizeHint().height() );
138 269
139 addBut = new QPushButton ( this ); 270 lab = new QLabel ( i18n(" Color "), mw );
140 mainLayout->addWidget( addBut,0,5 ); 271 mainLayout->addWidget( lab,0,5 );
272#if 0
273 addBut = new QPushButton ( mw );
274 mainLayout->addWidget( addBut,0,6 );
141 addBut->setPixmap ( SmallIcon("minus")); 275 addBut->setPixmap ( SmallIcon("minus"));
142 connect(addBut,SIGNAL(clicked()),SLOT(deleteAll())); 276 connect(addBut,SIGNAL(clicked()),SLOT(deleteAll()));
143 addBut->setMaximumWidth( addBut->sizeHint().height() ); 277 addBut->setMaximumWidth( addBut->sizeHint().height() );
278#endif
144 279
145 280
281 KopiCalendarFile * kkf = KOPrefs::instance()->mCalendars.first();
282 int row = 1;
283 while ( kkf ) {
146 284
147} 285 KOCalCheckButton* cb = new KOCalCheckButton( mw );
148 286 mainLayout->addWidget( cb,row,0 );mStdandardB.append( cb );
149KOCalEditView::~KOCalEditView() 287 cb->setChecked( kkf->isStandard );
150{ 288 cb->setNum( kkf->mCalNumber );
151 // no need to delete child widgets, Qt does it all for us 289 connect (cb, SIGNAL (selectNum(int,bool)), SLOT ( selectStdCal(int,bool) ) );
152} 290 cb = new KOCalCheckButton( mw );
153void KOCalEditView::readConfig( KConfig *) 291 mainLayout->addWidget( cb,row,1 );mEnabledB.append( cb );
154{ 292 cb->setChecked( kkf->isEnabled );
293 cb->setNum( kkf->mCalNumber );
294 connect (cb, SIGNAL (selectNum(int,bool)), SLOT ( selectCal(int,bool) ) );
295 KOCalButton* name = new KOCalButton( mw );
296 name->setNum( kkf->mCalNumber );
297 name->setText( kkf->mName );
298 mainLayout->addWidget( name,row,2 );
299 connect (name, SIGNAL (selectNum(int)), SLOT ( infoCal(int) ) );
300 cb = new KOCalCheckButton( mw );
301 mainLayout->addWidget( cb,row,3 );mAlarmB.append( cb );
302 cb->setChecked( kkf->isAlarmEnabled );
303 cb->setNum( kkf->mCalNumber );
304 connect (cb, SIGNAL (selectNum(int,bool)), SLOT ( selectCalAlarm(int,bool) ) );
305 cb = new KOCalCheckButton( mw );
306 mainLayout->addWidget( cb,row,4 );mROB.append( cb );
307 cb->setChecked( kkf->isReadOnly );
308 cb->setNum( kkf->mCalNumber );
309 connect (cb, SIGNAL (selectNum(int,bool)), SLOT ( selectReadOnly(int,bool) ) );
310 KColorButton *colb = new KColorButton( mw );
311 mainLayout->addWidget( colb,row,5 );
312 colb->setID( kkf->mCalNumber );
313 colb->setColor( kkf->mDefaultColor );
314 connect (colb, SIGNAL (changedID(const QColor&, int )), SLOT ( setColor(const QColor&,int) ) );
315 if ( row > 1) {
316 KOCalButton* calb = new KOCalButton( mw );
317 mainLayout->addWidget( calb,row,6 );
318 calb->setNum( kkf->mCalNumber );
319 calb->setPixmap ( SmallIcon("minus"));
320 connect (calb, SIGNAL (selectNum(int)), SLOT ( deleteCal(int) ) );
321 int hei = calb->sizeHint().height();
322 calb->setMaximumSize( hei*9/10, hei*9/10 );
323 }
324 ++row;
325 kkf = KOPrefs::instance()->mCalendars.next();
326 }
327 lab = new QLabel ( "", mw );
328 mainLayout->addWidget( lab,row,0 );
329 mw->show();
155 330
156} 331}
157void KOCalEditView::addCal() 332void KOCalEditView::addCal()
158{ 333{
159 qDebug("addcal "); 334 qDebug("addcal ");
335 KONewCalPrefs prefs ( this );
336 if ( ! prefs.exec() )
337 return;
338 QString name = prefs.calName();
339 QString file = prefs.calFileName();
340 QFileInfo fi ( file );
341 if (!fi.exists() ) {
342 KMessageBox::information( this, i18n("File does not exist!\nNo calendar added!"));
343 return;
344 }
345 KopiCalendarFile * kkf = KOPrefs::instance()->getNewCalendar();
346 kkf->mName = name;
347 kkf->mFileName = file;
348 emit calendarAdded( kkf->mCalNumber );
349 readConfig();
160} 350}
161void KOCalEditView::enableAll() 351void KOCalEditView::enableAll()
162{ 352{
163 qDebug("enableAll"); 353 toggleList( mEnabledB );
164} 354}
165void KOCalEditView::enableAlarm() 355void KOCalEditView::enableAlarm()
166{ 356{
167 qDebug("enableAlarm"); 357 toggleList( mAlarmB );
168} 358}
169void KOCalEditView::disableRO() 359void KOCalEditView::disableRO()
170{ 360{
171 qDebug("OCalEditView::disableRO() "); 361 toggleList( mROB );
362}
363void KOCalEditView::toggleList ( QPtrList<KOCalCheckButton> list )
364{
365 bool dis = false;
366 KOCalCheckButton* it = list.first();
367 while ( it ) {
368 if ( !it->isChecked() ) {
369 dis = true;
370 break;
371 }
372 it = list.next();
373 }
374 it = list.first();
375 while ( it ) {
376 it->setChecked(dis);
377 it = list.next();
378 }
172} 379}
173void KOCalEditView::deleteAll() 380void KOCalEditView::deleteAll()
174{ 381{
175 qDebug("delteAll"); 382 qDebug("delteAll");
176} 383}
diff --git a/korganizer/kofilterview.h b/korganizer/kofilterview.h
index 060108f..aaf0eb6 100644
--- a/korganizer/kofilterview.h
+++ b/korganizer/kofilterview.h
@@ -1,133 +1,155 @@
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#ifndef KOFILTERVIEW_H 23#ifndef KOFILTERVIEW_H
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
34using namespace KCal; 34class QGridLayout;
35
36class KOFilterView : public KOFilterView_base
37{
38 Q_OBJECT
39 public:
40 KOFilterView(QPtrList<CalFilter> *filterList,QWidget* parent=0,const char* name=0, WFlags fl=0);
41 ~KOFilterView();
42
43 void updateFilters();
44
45 bool filtersEnabled();
46 void setFiltersEnabled(bool);
47 CalFilter *selectedFilter();
48 void setSelectedFilter(QString);
49 void setSelectedFilter( int );
50
51 signals:
52 void filterChanged();
53 void editFilters();
54
55 private:
56 QPtrList<CalFilter> *mFilters;
57};
58
59class KOCalEditView : public QWidget
60{
61 Q_OBJECT
62 public:
63 KOCalEditView( QWidget* parent=0,const char* name=0);
64 ~KOCalEditView();
65
66 void readConfig( KConfig *);
67 public slots:
68 void addCal();
69 void enableAll();
70 void enableAlarm();
71 void disableRO();
72 void deleteAll();
73 signals:
74 void alarmEnabled ( int cal, bool enable );
75 void calendarEnabled ( int cal, bool enable );
76 void calendarReadonly ( int cal, bool readonly );
77 void setCalendarDefault ( int cal );
78 void removeCalendar ( int cal );
79
80 private:
81};
82 35
36using namespace KCal;
83class KOCalButton : public QPushButton 37class KOCalButton : public QPushButton
84{ 38{
85 Q_OBJECT 39 Q_OBJECT
86 public: 40 public:
87 KOCalButton( QWidget *parent=0, const char *name=0 ) : 41 KOCalButton( QWidget *parent=0, const char *name=0 ) :
88 QPushButton( parent, name) 42 QPushButton( parent, name)
89 { 43 {
90 connect( this, SIGNAL( clicked() ), 44 connect( this, SIGNAL( clicked() ),
91 SLOT( bottonClicked() )); 45 SLOT( bottonClicked() ));
92 mNumber = -1; 46 mNumber = -1;
93 } 47 }
94 void setNum ( int num ) {mNumber = num; } 48 void setNum ( int num ) {mNumber = num; }
95 signals: 49 signals:
96 void selectNum ( int ); 50 void selectNum ( int );
97private: 51private:
98 int mNumber; 52 int mNumber;
99 void keyPressEvent ( QKeyEvent * e ) 53 void keyPressEvent ( QKeyEvent * e )
100 { 54 {
101 e->ignore(); 55 e->ignore();
102 } 56 }
103 57
104private slots : 58private slots :
105 void bottonClicked() { if ( mNumber > 0 ) emit selectNum ( mNumber ); } 59 void bottonClicked() { if ( mNumber > 0 ) emit selectNum ( mNumber ); }
106}; 60};
107class KOCalCheckButton : public QCheckBox 61class KOCalCheckButton : public QCheckBox
108{ 62{
109 Q_OBJECT 63 Q_OBJECT
110 public: 64 public:
111 KOCalCheckButton( QWidget *parent=0, const char *name=0 ) : 65 KOCalCheckButton( QWidget *parent=0, const char *name=0 ) :
112 QCheckBox( parent, name) 66 QCheckBox( parent, name)
113 { 67 {
114 connect( this, SIGNAL( toggled ( bool ) ), 68 connect( this, SIGNAL( toggled ( bool ) ),
115 SLOT( bottonClicked( bool ) )); 69 SLOT( bottonClicked( bool ) ));
116 mNumber = -1; 70 mNumber = -1;
71 //setMaximumWidth( 10 );
72
117 } 73 }
118 void setNum ( int num ) {mNumber = num; } 74 void setNum ( int num ) {mNumber = num; }
119 signals: 75 signals:
120 void selectNum ( int, bool ); 76 void selectNum ( int, bool );
121private: 77private:
122 int mNumber; 78 int mNumber;
123 void keyPressEvent ( QKeyEvent * e ) 79 void keyPressEvent ( QKeyEvent * e )
124 { 80 {
125 e->ignore(); 81 e->ignore();
126 } 82 }
127 83
128private slots : 84private slots :
129 void bottonClicked( bool b) { if ( mNumber > 0 ) emit selectNum ( mNumber , b); } 85 void bottonClicked( bool b) { if ( mNumber > 0 ) emit selectNum ( mNumber , b); }
130}; 86};
131 87
132 88
89
90class KOFilterView : public KOFilterView_base
91{
92 Q_OBJECT
93 public:
94 KOFilterView(QPtrList<CalFilter> *filterList,QWidget* parent=0,const char* name=0, WFlags fl=0);
95 ~KOFilterView();
96
97 void updateFilters();
98
99 bool filtersEnabled();
100 void setFiltersEnabled(bool);
101 CalFilter *selectedFilter();
102 void setSelectedFilter(QString);
103 void setSelectedFilter( int );
104
105 signals:
106 void filterChanged();
107 void editFilters();
108
109 private:
110 QPtrList<CalFilter> *mFilters;
111};
112
113class KOCalEditView : public QWidget
114{
115 Q_OBJECT
116 public:
117 KOCalEditView( QWidget* parent=0,const char* name=0);
118 ~KOCalEditView();
119
120 void readConfig();
121 public slots:
122 void addCal();
123 void enableAll();
124 void enableAlarm();
125 void disableRO();
126 void deleteAll();
127 void selectStdCal(int,bool );
128 void selectCal(int,bool );
129 void selectCalAlarm(int,bool );
130 void selectReadOnly(int,bool );
131 void setColor(const QColor &,int) ;
132 void deleteCal(int) ;
133 void infoCal(int) ;
134 signals:
135 void alarmEnabled ( int cal, bool enable );
136 void calendarEnabled ( int cal, bool enable );
137 void calendarReadonly ( int cal, bool readonly );
138 void setCalendarDefault ( int cal );
139 void removeCalendar ( int cal );
140 void calendarAdded( int );
141
142 private:
143 QVBoxLayout* ml;
144 QWidget *mw;
145 void toggleList ( QPtrList<KOCalCheckButton> );
146 QPtrList<KOCalCheckButton> mStdandardB;
147 QPtrList<KOCalCheckButton> mEnabledB;
148 QPtrList<KOCalCheckButton> mAlarmB;
149 QPtrList<KOCalCheckButton> mROB;
150 QGridLayout* mainLayout;
151};
152
153
154
133#endif // KOFILTERVIEW_H 155#endif // KOFILTERVIEW_H
diff --git a/korganizer/koprefs.cpp b/korganizer/koprefs.cpp
index 179f586..bc6aae4 100644
--- a/korganizer/koprefs.cpp
+++ b/korganizer/koprefs.cpp
@@ -397,119 +397,122 @@ QStringList KOPrefs::getDefaultList()
397 << i18n("Holiday") << i18n("Holiday Cards")<< i18n("Hot Contacts") << i18n("Hiking") << i18n("Hunting") << i18n("Key Customer") << i18n("Kids") 397 << i18n("Holiday") << i18n("Holiday Cards")<< i18n("Hot Contacts") << i18n("Hiking") << i18n("Hunting") << i18n("Key Customer") << i18n("Kids")
398 << i18n("Lunch") << i18n("Meeting") << i18n("Miscellaneous") << i18n("Partner")<< i18n("Party") << i18n("Personal") << i18n("Personal Travel") 398 << i18n("Lunch") << i18n("Meeting") << i18n("Miscellaneous") << i18n("Partner")<< i18n("Party") << i18n("Personal") << i18n("Personal Travel")
399 << i18n("PHB") << i18n("Phone Calls") << i18n("Projects") << i18n("Recurring") << i18n("School") << i18n("Shopping") 399 << i18n("PHB") << i18n("Phone Calls") << i18n("Projects") << i18n("Recurring") << i18n("School") << i18n("Shopping")
400 << i18n("Speach") << i18n("Special Occasion") << i18n("Sports") << i18n("Talk") << i18n("Travel") << i18n("TV")<< i18n("University") 400 << i18n("Speach") << i18n("Special Occasion") << i18n("Sports") << i18n("Talk") << i18n("Travel") << i18n("TV")<< i18n("University")
401 << i18n("Vacation") << i18n("VIP") << i18n("SyncEvent") ; 401 << i18n("Vacation") << i18n("VIP") << i18n("SyncEvent") ;
402 retval.sort(); 402 retval.sort();
403 //qDebug("cat %s ", retval.join("-").latin1()); 403 //qDebug("cat %s ", retval.join("-").latin1());
404 return retval; 404 return retval;
405} 405}
406 406
407void KOPrefs::usrReadConfig() 407void KOPrefs::usrReadConfig()
408{ 408{
409 config()->setGroup("General"); 409 config()->setGroup("General");
410 410
411 //qDebug("KOPrefs::usrReadConfig() "); 411 //qDebug("KOPrefs::usrReadConfig() ");
412 mCustomCategories = config()->readListEntry("Custom Categories"); 412 mCustomCategories = config()->readListEntry("Custom Categories");
413 mOldLoadedLanguage = mOldLanguage ; 413 mOldLoadedLanguage = mOldLanguage ;
414 mOldLanguage = KPimGlobalPrefs::instance()->mPreferredLanguage; 414 mOldLanguage = KPimGlobalPrefs::instance()->mPreferredLanguage;
415 if (mLocationDefaults.isEmpty()) { 415 if (mLocationDefaults.isEmpty()) {
416 mLocationDefaults = getLocationDefaultList(); 416 mLocationDefaults = getLocationDefaultList();
417 } 417 }
418 418
419 if (mEventSummaryUser.isEmpty()) { 419 if (mEventSummaryUser.isEmpty()) {
420 mEventSummaryUser = getDefaultList() ; 420 mEventSummaryUser = getDefaultList() ;
421 } 421 }
422 if (mTodoSummaryUser.isEmpty()) { 422 if (mTodoSummaryUser.isEmpty()) {
423 mTodoSummaryUser = getDefaultList() ; 423 mTodoSummaryUser = getDefaultList() ;
424 } 424 }
425 425
426 if (mCustomCategories.isEmpty()) setCategoryDefaults(); 426 if (mCustomCategories.isEmpty()) setCategoryDefaults();
427 427
428 config()->setGroup("Personal Settings"); 428 config()->setGroup("Personal Settings");
429 mName = config()->readEntry("user_name",""); 429 mName = config()->readEntry("user_name","");
430 mEmail = config()->readEntry("user_email",""); 430 mEmail = config()->readEntry("user_email","");
431 fillMailDefaults(); 431 fillMailDefaults();
432 432
433 config()->setGroup("Category Colors"); 433 config()->setGroup("Category Colors");
434 QStringList::Iterator it; 434 QStringList::Iterator it;
435 for (it = mCustomCategories.begin();it != mCustomCategories.end();++it ) { 435 for (it = mCustomCategories.begin();it != mCustomCategories.end();++it ) {
436 setCategoryColor(*it,config()->readColorEntry(*it,&mDefaultCategoryColor)); 436 setCategoryColor(*it,config()->readColorEntry(*it,&mDefaultCategoryColor));
437 437
438 } 438 }
439 config()->setGroup("CCal"); 439 config()->setGroup("CCal");
440 int numCals = config()->readNumEntry("NumberCalendars",0 ); 440 int numCals = config()->readNumEntry("NumberCalendars",0 );
441 mNextAvailableCalendar = 1; 441 mNextAvailableCalendar = 1;
442 if ( numCals == 0 ) { 442 if ( numCals == 0 ) {
443 KopiCalendarFile *kkf = getNewCalendar(); 443 KopiCalendarFile *kkf = getNewCalendar();
444 kkf->isStandard = true; 444 kkf->isStandard = true;
445 kkf->mName = i18n("Standard Calendar"); 445 kkf->mName = i18n("Standard");
446 kkf->mFileName = locateLocal( "data", "korganizer/mycalendar.ics" ); 446 kkf->mFileName = locateLocal( "data", "korganizer/mycalendar.ics" );
447 } 447 }
448 while ( mNextAvailableCalendar <= numCals ) { 448 while ( mNextAvailableCalendar <= numCals ) {
449 qDebug("Read cal #%d ", mNextAvailableCalendar ); 449 qDebug("Read cal #%d ", mNextAvailableCalendar );
450 QString prefix = "Cal_" +QString::number( mNextAvailableCalendar ); 450 QString prefix = "Cal_" +QString::number( mNextAvailableCalendar );
451 KopiCalendarFile *kkf = getNewCalendar(); 451 KopiCalendarFile *kkf = getNewCalendar();
452 kkf->isStandard = config()->readBoolEntry( prefix+"_isStandard", false ); 452 kkf->isStandard = config()->readBoolEntry( prefix+"_isStandard", false );
453 kkf->isEnabled = config()->readBoolEntry( prefix+"_isEnabled", true); 453 kkf->isEnabled = config()->readBoolEntry( prefix+"_isEnabled", true);
454 kkf->isAlarmEnabled = config()->readBoolEntry( prefix+"_isAlarmEnabled", true); 454 kkf->isAlarmEnabled = config()->readBoolEntry( prefix+"_isAlarmEnabled", true);
455 kkf->isReadOnly = config()->readBoolEntry( prefix+"_isReadOnly", false); 455 kkf->isReadOnly = config()->readBoolEntry( prefix+"_isReadOnly", false);
456 kkf->mName = config()->readEntry( prefix+"_Name", "Calendar"); 456 kkf->mName = config()->readEntry( prefix+"_Name", "Calendar");
457 kkf->mFileName = config()->readEntry( prefix+"_FileName", kkf->mFileName); 457 kkf->mFileName = config()->readEntry( prefix+"_FileName", kkf->mFileName);
458 kkf->mDefaultColor = config()->readColorEntry( prefix+"_Color",&mEventColor); 458 kkf->mDefaultColor = config()->readColorEntry( prefix+"_Color",&mEventColor);
459 if ( kkf->mCalNumber == 1 ) { 459 if ( kkf->mCalNumber == 1 ) {
460 kkf->mFileName = locateLocal( "data", "korganizer/mycalendar.ics" ); 460 kkf->mFileName = locateLocal( "data", "korganizer/mycalendar.ics" );
461 //kkf->mName = i18n("Standard Calendar");
462 } 461 }
463 } 462 }
464 463
465 KPimPrefs::usrReadConfig(); 464 KPimPrefs::usrReadConfig();
466} 465}
467 466
467KopiCalendarFile * KOPrefs::getCalendar( int num )
468{
469 return mDefCalColors[num-1];
470}
468 471
469KopiCalendarFile * KOPrefs::getNewCalendar() 472KopiCalendarFile * KOPrefs::getNewCalendar()
470{ 473{
471 KopiCalendarFile * kkf = new KopiCalendarFile(); 474 KopiCalendarFile * kkf = new KopiCalendarFile();
472 kkf->mCalNumber = mNextAvailableCalendar; 475 kkf->mCalNumber = mNextAvailableCalendar;
473 mDefCalColors.resize( mNextAvailableCalendar ); 476 mDefCalColors.resize( mNextAvailableCalendar );
474 mDefCalColors[mNextAvailableCalendar-1] = kkf; 477 mDefCalColors[mNextAvailableCalendar-1] = kkf;
475 ++mNextAvailableCalendar; 478 ++mNextAvailableCalendar;
476 kkf->mDefaultColor = mEventColor; 479 kkf->mDefaultColor = mEventColor;
477 kkf->mName = i18n("New Calendar"); 480 kkf->mName = i18n("New Calendar");
478 mCalendars.append( kkf ); 481 mCalendars.append( kkf );
479 return kkf; 482 return kkf;
480} 483}
481void KOPrefs::deleteCalendar( int num ) 484void KOPrefs::deleteCalendar( int num )
482{ 485{
483 KopiCalendarFile * kkf = mCalendars.first(); 486 KopiCalendarFile * kkf = mCalendars.first();
484 while ( kkf ) { 487 while ( kkf ) {
485 if ( kkf->mCalNumber == num ) { 488 if ( kkf->mCalNumber == num ) {
486 qDebug("KOPrefs::deleteCalendar %d ", num ); 489 qDebug("KOPrefs::deleteCalendar %d ", num );
487 mCalendars.remove( kkf ); 490 mCalendars.remove( kkf );
488 delete kkf; 491 delete kkf;
489 return; 492 return;
490 } 493 }
491 kkf = mCalendars.next(); 494 kkf = mCalendars.next();
492 } 495 }
493} 496}
494QColor KOPrefs::defaultColor( int calNum ) const 497QColor KOPrefs::defaultColor( int calNum ) const
495{ 498{
496 return (mDefCalColors[calNum-1])->mDefaultColor; 499 return (mDefCalColors[calNum-1])->mDefaultColor;
497} 500}
498void KOPrefs::usrWriteConfig() 501void KOPrefs::usrWriteConfig()
499{ 502{
500 config()->setGroup("General"); 503 config()->setGroup("General");
501 config()->writeEntry("Custom Categories",mCustomCategories); 504 config()->writeEntry("Custom Categories",mCustomCategories);
502 505
503 config()->setGroup("Personal Settings"); 506 config()->setGroup("Personal Settings");
504 config()->writeEntry("user_name",mName); 507 config()->writeEntry("user_name",mName);
505 config()->writeEntry("user_email",mEmail); 508 config()->writeEntry("user_email",mEmail);
506 509
507 config()->setGroup("Category Colors"); 510 config()->setGroup("Category Colors");
508 QDictIterator<QColor> it(mCategoryColors); 511 QDictIterator<QColor> it(mCategoryColors);
509 while (it.current()) { 512 while (it.current()) {
510 config()->writeEntry(it.currentKey(),*(it.current())); 513 config()->writeEntry(it.currentKey(),*(it.current()));
511 ++it; 514 ++it;
512 } 515 }
513 config()->setGroup("CCal"); 516 config()->setGroup("CCal");
514 config()->writeEntry("NumberCalendars",mCalendars.count()); 517 config()->writeEntry("NumberCalendars",mCalendars.count());
515 int numCal = 1; 518 int numCal = 1;
diff --git a/korganizer/koprefs.h b/korganizer/koprefs.h
index 7d71cbd..f114d88 100644
--- a/korganizer/koprefs.h
+++ b/korganizer/koprefs.h
@@ -48,96 +48,97 @@ class KopiCalendarFile : public QObject
48 public: 48 public:
49 KopiCalendarFile( ) : QObject( ) 49 KopiCalendarFile( ) : QObject( )
50 { 50 {
51 isStandard = false; 51 isStandard = false;
52 isEnabled = true; 52 isEnabled = true;
53 isAlarmEnabled = true; 53 isAlarmEnabled = true;
54 isReadOnly = false; 54 isReadOnly = false;
55 mName = "Calendar"; 55 mName = "Calendar";
56 mFileName = QDir::homeDirPath() + "/icalfile.ics"; 56 mFileName = QDir::homeDirPath() + "/icalfile.ics";
57 mCalNumber = 0; 57 mCalNumber = 0;
58 mDefaultColor = Qt::red; 58 mDefaultColor = Qt::red;
59 } 59 }
60 bool isStandard; 60 bool isStandard;
61 bool isEnabled; 61 bool isEnabled;
62 bool isAlarmEnabled; 62 bool isAlarmEnabled;
63 bool isReadOnly; 63 bool isReadOnly;
64 QString mName; 64 QString mName;
65 QString mFileName; 65 QString mFileName;
66 int mCalNumber; 66 int mCalNumber;
67 QColor mDefaultColor; 67 QColor mDefaultColor;
68}; 68};
69class KOPrefs : public KPimPrefs 69class KOPrefs : public KPimPrefs
70{ 70{
71 public: 71 public:
72 enum { FormatVCalendar, FormatICalendar }; 72 enum { FormatVCalendar, FormatICalendar };
73 enum { MailClientKMail, MailClientSendmail }; 73 enum { MailClientKMail, MailClientSendmail };
74 enum { IMIPDummy, IMIPKMail }; 74 enum { IMIPDummy, IMIPKMail };
75 enum { IMIPOutbox, IMIPdirectsend }; 75 enum { IMIPOutbox, IMIPdirectsend };
76 enum { neverAuto, addressbookAuto, selectedAuto }; 76 enum { neverAuto, addressbookAuto, selectedAuto };
77 enum { standardDestination, askDestination }; 77 enum { standardDestination, askDestination };
78 78
79 virtual ~KOPrefs(); 79 virtual ~KOPrefs();
80 80
81 /** Get instance of KOPrefs. It is made sure that there is only one 81 /** Get instance of KOPrefs. It is made sure that there is only one
82 instance. */ 82 instance. */
83 static KOPrefs *instance(); 83 static KOPrefs *instance();
84 84
85 /** Set preferences to default values */ 85 /** Set preferences to default values */
86 void usrSetDefaults(); 86 void usrSetDefaults();
87 87
88 /** Read preferences from config file */ 88 /** Read preferences from config file */
89 void usrReadConfig(); 89 void usrReadConfig();
90 90
91 /** Write preferences to config file */ 91 /** Write preferences to config file */
92 void usrWriteConfig(); 92 void usrWriteConfig();
93 void setCategoryDefaults(); 93 void setCategoryDefaults();
94 void setAllDefaults(); 94 void setAllDefaults();
95 KopiCalendarFile * getNewCalendar(); 95 KopiCalendarFile * getNewCalendar();
96 KopiCalendarFile * getCalendar( int );
96 void deleteCalendar( int ); 97 void deleteCalendar( int );
97 QColor defaultColor( int ) const; 98 QColor defaultColor( int ) const;
98 protected: 99 protected:
99 void setTimeZoneIdDefault(); 100 void setTimeZoneIdDefault();
100 101
101 /** Fill empty mail fields with default values. */ 102 /** Fill empty mail fields with default values. */
102 void fillMailDefaults(); 103 void fillMailDefaults();
103 104
104 private: 105 private:
105 /** Constructor disabled for public. Use instance() to create a KOPrefs 106 /** Constructor disabled for public. Use instance() to create a KOPrefs
106 object. */ 107 object. */
107 KOPrefs(); 108 KOPrefs();
108 109
109 static KOPrefs *mInstance; 110 static KOPrefs *mInstance;
110 QStringList getDefaultList(); 111 QStringList getDefaultList();
111 QStringList getLocationDefaultList(); 112 QStringList getLocationDefaultList();
112 public: 113 public:
113 // preferences data 114 // preferences data
114 KConfig* getConfig(); 115 KConfig* getConfig();
115 void setFullName(const QString &); 116 void setFullName(const QString &);
116 QString fullName(); 117 QString fullName();
117 void setEmail(const QString &); 118 void setEmail(const QString &);
118 QString email(); 119 QString email();
119 120
120 QString mAdditional; 121 QString mAdditional;
121 122
122 bool mEmailControlCenter; 123 bool mEmailControlCenter;
123 124
124 bool mBcc; 125 bool mBcc;
125 bool mAutoSave; 126 bool mAutoSave;
126 int mAutoSaveInterval; 127 int mAutoSaveInterval;
127 bool mConfirm; 128 bool mConfirm;
128 129
129 bool mEnableGroupScheduling; 130 bool mEnableGroupScheduling;
130 bool mEnableProjectView; 131 bool mEnableProjectView;
131 132
132 int mDefaultFormat; 133 int mDefaultFormat;
133 int mMailClient; 134 int mMailClient;
134 135
135 int mStartTime; 136 int mStartTime;
136 int mDefaultDuration; 137 int mDefaultDuration;
137 int mAlarmTime; 138 int mAlarmTime;
138 139
139 int mWorkingHoursStart; 140 int mWorkingHoursStart;
140 int mWorkingHoursEnd; 141 int mWorkingHoursEnd;
141 bool mExcludeHolidays; 142 bool mExcludeHolidays;
142 bool mExcludeSaturdays; 143 bool mExcludeSaturdays;
143 bool mMarcusBainsShowSeconds; 144 bool mMarcusBainsShowSeconds;
diff --git a/libkdepim/kcmconfigs/kdepimconfigwidget.cpp b/libkdepim/kcmconfigs/kdepimconfigwidget.cpp
index a0f9d2e..ff1e240 100644
--- a/libkdepim/kcmconfigs/kdepimconfigwidget.cpp
+++ b/libkdepim/kcmconfigs/kdepimconfigwidget.cpp
@@ -44,96 +44,97 @@ $Id$
44 44
45#include <kdialog.h> 45#include <kdialog.h>
46#include <kprefsdialog.h> 46#include <kprefsdialog.h>
47#include <klocale.h> 47#include <klocale.h>
48#include <kglobalsettings.h> 48#include <kglobalsettings.h>
49#include <kdateedit.h> 49#include <kdateedit.h>
50#include <kglobal.h> 50#include <kglobal.h>
51#include <stdlib.h> 51#include <stdlib.h>
52 52
53/*US 53/*US
54#include <qcheckbox.h> 54#include <qcheckbox.h>
55#include <qframe.h> 55#include <qframe.h>
56#include <qpushbutton.h> 56#include <qpushbutton.h>
57#include <qcombobox.h> 57#include <qcombobox.h>
58#include <qlineedit.h> 58#include <qlineedit.h>
59#include <qlabel.h> 59#include <qlabel.h>
60#include <qfile.h> 60#include <qfile.h>
61 61
62#include <kconfig.h> 62#include <kconfig.h>
63#include <kdebug.h> 63#include <kdebug.h>
64#include <kdialog.h> 64#include <kdialog.h>
65#include <klistview.h> 65#include <klistview.h>
66#include <klocale.h> 66#include <klocale.h>
67#include <kglobal.h> 67#include <kglobal.h>
68#include <kmessagebox.h> 68#include <kmessagebox.h>
69#include <kstandarddirs.h> 69#include <kstandarddirs.h>
70 70
71#ifndef KAB_EMBEDDED 71#ifndef KAB_EMBEDDED
72#include <ktrader.h> 72#include <ktrader.h>
73#else // KAB_EMBEDDED 73#else // KAB_EMBEDDED
74#include <mergewidget.h> 74#include <mergewidget.h>
75#include <distributionlistwidget.h> 75#include <distributionlistwidget.h>
76#endif // KAB_EMBEDDED 76#endif // KAB_EMBEDDED
77 77
78#include "addresseewidget.h" 78#include "addresseewidget.h"
79#include "extensionconfigdialog.h" 79#include "extensionconfigdialog.h"
80#include "extensionwidget.h" 80#include "extensionwidget.h"
81*/ 81*/
82 82
83#include "qapplication.h" 83#include "qapplication.h"
84 84
85#include "kpimglobalprefs.h" 85#include "kpimglobalprefs.h"
86 86
87#include "kdepimconfigwidget.h" 87#include "kdepimconfigwidget.h"
88#include <kprefs.h> 88#include <kprefs.h>
89#include <kmessagebox.h> 89#include <kmessagebox.h>
90 90
91 91
92
92KDEPIMConfigWidget::KDEPIMConfigWidget(KPimGlobalPrefs *prefs, QWidget *parent, const char *name ) 93KDEPIMConfigWidget::KDEPIMConfigWidget(KPimGlobalPrefs *prefs, QWidget *parent, const char *name )
93 : KPrefsWidget(prefs, parent, name ) 94 : KPrefsWidget(prefs, parent, name )
94{ 95{
95 mExternalAppsMap.insert(ExternalAppHandler::EMAIL, i18n("Email")); 96 mExternalAppsMap.insert(ExternalAppHandler::EMAIL, i18n("Email"));
96 mExternalAppsMap.insert(ExternalAppHandler::PHONE, i18n("Phone")); 97 mExternalAppsMap.insert(ExternalAppHandler::PHONE, i18n("Phone"));
97 mExternalAppsMap.insert(ExternalAppHandler::SMS, i18n("SMS")); 98 mExternalAppsMap.insert(ExternalAppHandler::SMS, i18n("SMS"));
98 mExternalAppsMap.insert(ExternalAppHandler::FAX, i18n("Fax")); 99 mExternalAppsMap.insert(ExternalAppHandler::FAX, i18n("Fax"));
99 mExternalAppsMap.insert(ExternalAppHandler::PAGER, i18n("Pager")); 100 mExternalAppsMap.insert(ExternalAppHandler::PAGER, i18n("Pager"));
100 mExternalAppsMap.insert(ExternalAppHandler::SIP, i18n("SIP")); 101 mExternalAppsMap.insert(ExternalAppHandler::SIP, i18n("SIP"));
101 102
102 103
103 QVBoxLayout *topLayout = new QVBoxLayout( this, 0, 104 QVBoxLayout *topLayout = new QVBoxLayout( this, 0,
104 KDialog::spacingHint() ); 105 KDialog::spacingHint() );
105 106
106 tabWidget = new QTabWidget( this ); 107 tabWidget = new QTabWidget( this );
107 topLayout->addWidget( tabWidget ); 108 topLayout->addWidget( tabWidget );
108 109
109 110
110 setupLocaleTab(); 111 setupLocaleTab();
111 setupLocaleDateTab(); 112 setupLocaleDateTab();
112 setupTimeZoneTab(); 113 setupTimeZoneTab();
113 setupExternalAppTab(); 114 setupExternalAppTab();
114 setupStoreTab(); 115 setupStoreTab();
115 setupBackupTab(); 116 setupBackupTab();
116} 117}
117void KDEPIMConfigWidget::showTimeZoneTab() 118void KDEPIMConfigWidget::showTimeZoneTab()
118{ 119{
119 tabWidget->setCurrentPage ( 3 ) ; 120 tabWidget->setCurrentPage ( 3 ) ;
120} 121}
121void KDEPIMConfigWidget::setupBackupTab() 122void KDEPIMConfigWidget::setupBackupTab()
122{ 123{
123 QVBox *colorPage = new QVBox( this ); 124 QVBox *colorPage = new QVBox( this );
124 tabWidget->addTab( colorPage, i18n( "Backup" ) ); 125 tabWidget->addTab( colorPage, i18n( "Backup" ) );
125 QWidget* topFrame = new QWidget( colorPage ); 126 QWidget* topFrame = new QWidget( colorPage );
126 QVBoxLayout *topLayout = new QVBoxLayout(topFrame); 127 QVBoxLayout *topLayout = new QVBoxLayout(topFrame);
127 KPrefsWidBool *sb = addWidBool(i18n("Backup enabled"), 128 KPrefsWidBool *sb = addWidBool(i18n("Backup enabled"),
128 &(KPimGlobalPrefs::instance()->mBackupEnabled),topFrame); 129 &(KPimGlobalPrefs::instance()->mBackupEnabled),topFrame);
129 topLayout->addWidget((QWidget*)sb->checkBox()); 130 topLayout->addWidget((QWidget*)sb->checkBox());
130 QWidget* bupFrame = new QWidget( topFrame ); 131 QWidget* bupFrame = new QWidget( topFrame );
131 topLayout->addWidget((bupFrame)); 132 topLayout->addWidget((bupFrame));
132 QObject::connect ( sb->checkBox(), SIGNAL (toggled ( bool ) ), bupFrame, SLOT ( setEnabled( bool ) ) ); 133 QObject::connect ( sb->checkBox(), SIGNAL (toggled ( bool ) ), bupFrame, SLOT ( setEnabled( bool ) ) );
133 QVBoxLayout *bupLayout = new QVBoxLayout(bupFrame); 134 QVBoxLayout *bupLayout = new QVBoxLayout(bupFrame);
134 sb = addWidBool(i18n("Use standard backup dir"), 135 sb = addWidBool(i18n("Use standard backup dir"),
135 &(KPimGlobalPrefs::instance()->mBackupUseDefaultDir),bupFrame); 136 &(KPimGlobalPrefs::instance()->mBackupUseDefaultDir),bupFrame);
136 bupLayout->addWidget((QWidget*)sb->checkBox()); 137 bupLayout->addWidget((QWidget*)sb->checkBox());
137 mBackupUrl = new KURLRequester( bupFrame ); 138 mBackupUrl = new KURLRequester( bupFrame );
138 mBackupUrl->setPathIsDir(); 139 mBackupUrl->setPathIsDir();
139 mBackupUrl->setURL( KGlobalSettings::backupDataDir() ); 140 mBackupUrl->setURL( KGlobalSettings::backupDataDir() );
diff --git a/microkde/kcolorbutton.cpp b/microkde/kcolorbutton.cpp
index 96dc256..197bea2 100644
--- a/microkde/kcolorbutton.cpp
+++ b/microkde/kcolorbutton.cpp
@@ -1,47 +1,54 @@
1#include "kcolorbutton.h" 1#include "kcolorbutton.h"
2#include "kcolordialog.h" 2#include "kcolordialog.h"
3#include "qapplication.h" 3#include "qapplication.h"
4 4
5 5
6#include "qlayout.h" 6#include "qlayout.h"
7#ifdef DESKTOP_VERSION 7#ifdef DESKTOP_VERSION
8#include <qcolordialog.h> 8#include <qcolordialog.h>
9#endif 9#endif
10void KColorButton:: edit() 10void KColorButton:: edit()
11{ 11{
12 12
13#ifdef DESKTOP_VERSION 13#ifdef DESKTOP_VERSION
14 QColor col = QColorDialog::getColor ( mColor ); 14 QColor col = QColorDialog::getColor ( mColor );
15 if ( col.isValid () ) { 15 if ( col.isValid () ) {
16 mColor = col; 16 mColor = col;
17 setColor ( mColor ); 17 setColor ( mColor );
18 emit changed ( mColor ); 18 emit changed ( mColor );
19 emit changedID ( mColor, id );
19 } 20 }
20#else 21#else
21 KColorDialog* k = new KColorDialog( this ); 22 KColorDialog* k = new KColorDialog( this );
22 k->setColor( mColor ); 23 k->setColor( mColor );
23 int res = k->exec(); 24 int res = k->exec();
24 if ( res ) { 25 if ( res ) {
25 mColor = k->getColor(); 26 mColor = k->getColor();
26 setColor ( mColor ); 27 setColor ( mColor );
27 emit changed ( mColor ); 28 emit changed ( mColor );
29 emit changedID ( mColor, id );
28 } 30 }
29 delete k; 31 delete k;
30#endif 32#endif
31} 33}
32KColorButton::KColorButton( QWidget *p ):QPushButton( p ) 34KColorButton::KColorButton( QWidget *p ):QPushButton( p )
33{ 35{
34 int size = 24; 36 int size = 24;
35 if( QApplication::desktop()->width() < 480 || QApplication::desktop()->height() <= 320 ) 37 if( QApplication::desktop()->width() < 480 || QApplication::desktop()->height() <= 320 )
36 size = 18; 38 size = 18;
37 setFixedSize( size,size ); 39 setFixedSize( size,size );
40 int id = 0;
38 connect ( this, SIGNAL( clicked() ), this ,SLOT (edit() )); 41 connect ( this, SIGNAL( clicked() ), this ,SLOT (edit() ));
39 42
40} 43}
44void KColorButton::setID ( int i)
45{
46 id = i;
47}
41void KColorButton::setColor ( const QColor & c) 48void KColorButton::setColor ( const QColor & c)
42{ 49{
43 mColor = c; 50 mColor = c;
44 QPixmap pix ( height() - 4, width() - 4 ); 51 QPixmap pix ( height() - 4, width() - 4 );
45 pix.fill( c ); 52 pix.fill( c );
46 setPixmap ( pix ); 53 setPixmap ( pix );
47} 54}
diff --git a/microkde/kcolorbutton.h b/microkde/kcolorbutton.h
index 88b3774..983771b 100644
--- a/microkde/kcolorbutton.h
+++ b/microkde/kcolorbutton.h
@@ -1,26 +1,29 @@
1#ifndef MICROKDE_KCOLORBUTTON_H 1#ifndef MICROKDE_KCOLORBUTTON_H
2#define MICROKDE_KCOLORBUTTON_H 2#define MICROKDE_KCOLORBUTTON_H
3 3
4#include <qpushbutton.h> 4#include <qpushbutton.h>
5#include <qcolor.h> 5#include <qcolor.h>
6#include <kglobal.h> 6#include <kglobal.h>
7#include <qpixmap.h> 7#include <qpixmap.h>
8#include <qlabel.h> 8#include <qlabel.h>
9 9
10 10
11class KColorButton : public QPushButton 11class KColorButton : public QPushButton
12{ 12{
13Q_OBJECT 13Q_OBJECT
14public: 14public:
15 KColorButton( QWidget *p ); 15 KColorButton( QWidget *p );
16 void setColor ( const QColor &); 16 void setColor ( const QColor &);
17 void setID ( int i) ;
17 QColor color() const { return mColor ; } 18 QColor color() const { return mColor ; }
18 signals: 19 signals:
19 void changed(const QColor &); 20 void changed(const QColor &);
21 void changedID(const QColor &, int id);
20private slots: 22private slots:
21 void edit(); 23 void edit();
22 private: 24 private:
23 QColor mColor; 25 QColor mColor;
26 int id;
24}; 27};
25 28
26#endif 29#endif