• Skip to content
  • Skip to link menu
KDE API Reference
  • KDE API Reference
  • kdepim API Reference
  • KDE Home
  • Contact Us
 

korganizer

  • sources
  • kde-4.14
  • kdepim
  • korganizer
  • prefs
koprefsdialog.cpp
Go to the documentation of this file.
1 /*
2  This file is part of KOrganizer.
3 
4  Copyright (c) 2000-2003 Cornelius Schumacher <schumacher@kde.org>
5  Copyright (C) 2003-2004 Reinhold Kainhofer <reinhold@kainhofer.com>
6 
7  This program is free software; you can redistribute it and/or modify
8  it under the terms of the GNU General Public License as published by
9  the Free Software Foundation; either version 2 of the License, or
10  (at your option) any later version.
11 
12  This program is distributed in the hope that it will be useful,
13  but WITHOUT ANY WARRANTY; without even the implied warranty of
14  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15  GNU General Public License for more details.
16 
17  You should have received a copy of the GNU General Public License along
18  with this program; if not, write to the Free Software Foundation, Inc.,
19  51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
20 
21  As a special exception, permission is given to link this program
22  with any edition of Qt, and distribute the resulting executable,
23  without including the source code for Qt in the source distribution.
24 */
25 
26 #include "koprefsdialog.h"
27 #include "widgets/kitemiconcheckcombo.h"
28 #include "kocore.h"
29 #include "koglobals.h"
30 #include "koprefs.h"
31 #include "ui_kogroupwareprefspage.h"
32 
33 #include <calendarsupport/kcalprefs.h>
34 #include <calendarsupport/categoryconfig.h>
35 
36 #include <incidenceeditor-ng/globalsettings.h>
37 #include <widgets/tagselectioncombo.h>
38 #include <widgets/tagwidgets.h>
39 
40 #include <Akonadi/AgentFilterProxyModel>
41 #include <Akonadi/AgentInstanceCreateJob>
42 #include <Akonadi/AgentManager>
43 #include <Akonadi/AgentTypeDialog>
44 #include <Akonadi/CollectionComboBox>
45 #include <Akonadi/CollectionModel>
46 #include <akonadi/calendar/calendarsettings.h>
47 
48 #include <KCalCore/Event>
49 #include <KCalCore/Journal>
50 
51 #include <KHolidays/Holidays>
52 
53 #include <Mailtransport/TransportManagementWidget>
54 
55 #include "pimcommon/widgets/manageaccountwidget.h"
56 
57 #include <KCalendarSystem>
58 #include <KColorButton>
59 #include <KComboBox>
60 #include <KHBox>
61 #include <KIntSpinBox>
62 #include <KMessageBox>
63 #include <KService>
64 #include <KStandardDirs>
65 #include <KTabWidget>
66 #include <KTimeComboBox>
67 #include <KUrlRequester>
68 #include <KWindowSystem>
69 
70 #include <QCheckBox>
71 #include <QFormLayout>
72 #include <QGridLayout>
73 #include <QGroupBox>
74 #include <QLabel>
75 #include <QListWidget>
76 #include <QRadioButton>
77 #include <QTimeEdit>
78 #include <QTreeWidget>
79 #include <QVBoxLayout>
80 
81 KOPrefsDialogMain::KOPrefsDialogMain( const KComponentData &inst, QWidget *parent )
82  : KPrefsModule( KOPrefs::instance(), inst, parent )
83 {
84  QBoxLayout *topTopLayout = new QVBoxLayout( this );
85  KTabWidget *tabWidget = new KTabWidget( this );
86  topTopLayout->addWidget( tabWidget );
87 
88  // Personal Settings
89  QWidget *personalFrame = new QWidget( this );
90  QVBoxLayout *personalLayout = new QVBoxLayout( personalFrame );
91  tabWidget->addTab( personalFrame, KIcon( QLatin1String("preferences-desktop-personal") ),
92  i18nc( "@title:tab personal settings", "Personal" ) );
93 
94  KPIM::KPrefsWidBool *emailControlCenter =
95  addWidBool( CalendarSupport::KCalPrefs::instance()->emailControlCenterItem(), personalFrame );
96  connect( emailControlCenter->checkBox(), SIGNAL(toggled(bool)), SLOT(toggleEmailSettings(bool)) );
97  personalLayout->addWidget( emailControlCenter->checkBox() );
98 
99  mUserEmailSettings =
100  new QGroupBox( i18nc( "@title:group email settings", "Email Settings" ), personalFrame );
101 
102  personalLayout->addWidget( mUserEmailSettings );
103  QFormLayout *emailSettingsLayout = new QFormLayout( mUserEmailSettings );
104  KPIM::KPrefsWidString *s =
105  addWidString( CalendarSupport::KCalPrefs::instance()->userNameItem(), mUserEmailSettings );
106  emailSettingsLayout->addRow ( s->label(), s->lineEdit() );
107 
108  s=addWidString( CalendarSupport::KCalPrefs::instance()->userEmailItem(), mUserEmailSettings );
109  emailSettingsLayout->addRow ( s->label(), s->lineEdit() );
110 
111  KPIM::KPrefsWidRadios *defaultEmailAttachMethod =
112  addWidRadios(
113  IncidenceEditorNG::GlobalSettings::self()->defaultEmailAttachMethodItem(), personalFrame );
114  personalLayout->addWidget( defaultEmailAttachMethod->groupBox() );
115  personalLayout->addStretch( 1 );
116 
117  // Save Settings
118  QFrame *saveFrame = new QFrame( this );
119  tabWidget->addTab( saveFrame, KIcon( QLatin1String("document-save") ),
120  i18nc( "@title:tab", "Save" ) );
121  QVBoxLayout *saveLayout = new QVBoxLayout( saveFrame );
122 
123  QGroupBox *saveGroupBox =
124  new QGroupBox( i18nc( "@title:group", "Exporting Calendar" ), saveFrame );
125  saveLayout->addWidget( saveGroupBox );
126  QVBoxLayout *saveGroupLayout = new QVBoxLayout;
127  saveGroupBox->setLayout( saveGroupLayout );
128 
129  KPIM::KPrefsWidBool *autoExportHTML =
130  addWidBool( KOPrefs::instance()->autoExportItem(), saveGroupBox );
131  saveGroupLayout->addWidget( autoExportHTML->checkBox() );
132 
133  QBoxLayout *intervalLayout = new QHBoxLayout;
134  saveGroupLayout->addLayout( intervalLayout );
135 
136  KPIM::KPrefsWidInt *autoExportInterval =
137  addWidInt( KOPrefs::instance()->autoExportIntervalItem(), saveGroupBox );
138  connect( autoExportHTML->checkBox(), SIGNAL(toggled(bool)),
139  autoExportInterval->label(), SLOT(setEnabled(bool)) );
140  connect( autoExportHTML->checkBox(), SIGNAL(toggled(bool)),
141  autoExportInterval->spinBox(), SLOT(setEnabled(bool)) );
142  intervalLayout->addWidget( autoExportInterval->label() );
143  intervalLayout->addWidget( autoExportInterval->spinBox() );
144  autoExportInterval->spinBox()->setEnabled(autoExportHTML->checkBox()->isChecked());
145  autoExportInterval->label()->setEnabled(autoExportHTML->checkBox()->isChecked());
146 
147  KPIM::KPrefsWidBool *confirmItem =
148  addWidBool( KOPrefs::instance()->confirmItem(), saveFrame );
149  saveLayout->addWidget( confirmItem->checkBox() );
150  KPIM::KPrefsWidRadios *destinationItem =
151  addWidRadios( KOPrefs::instance()->destinationItem(), saveFrame );
152 
153  saveLayout->addWidget( destinationItem->groupBox() );
154  saveLayout->addStretch( 1 );
155 
156  // System Tray Settings
157  QFrame *systrayFrame = new QFrame( this );
158  QVBoxLayout *systrayLayout = new QVBoxLayout( systrayFrame );
159  tabWidget->addTab( systrayFrame, KIcon( QLatin1String("preferences-other") ),
160  i18nc( "@title:tab systray settings", "System Tray" ) );
161 
162  QGroupBox *systrayGroupBox =
163  new QGroupBox( i18nc( "@title:group", "Show/Hide Options" ), systrayFrame );
164  systrayLayout->addWidget( systrayGroupBox );
165  QVBoxLayout *systrayGroupLayout = new QVBoxLayout;
166  systrayGroupBox->setLayout( systrayGroupLayout );
167 
168  KPIM::KPrefsWidBool *showReminderDaemonItem =
169  addWidBool( KOPrefs::instance()->showReminderDaemonItem(), systrayGroupBox );
170  systrayGroupLayout->addWidget( showReminderDaemonItem->checkBox() );
171  showReminderDaemonItem->checkBox()->setToolTip(
172  i18nc( "@info:tooltip", "Enable this setting to show the KOrganizer "
173  "reminder daemon in your system tray (recommended)." ) );
174 
175  QLabel *note = new QLabel(
176  i18nc( "@info",
177  "<note>The daemon will continue running even if it is not shown "
178  "in the system tray.</note>" ) );
179  systrayGroupLayout->addWidget( note );
180 
181  systrayLayout->addStretch( 1 );
182 
183  //Calendar Account
184  QFrame *calendarFrame = new QFrame( this );
185  tabWidget->addTab( calendarFrame, KIcon( QLatin1String("office-calendar") ),
186  i18nc( "@title:tab calendar account settings", "Calendars" ) );
187  QHBoxLayout *calendarFrameLayout = new QHBoxLayout;
188  calendarFrame->setLayout(calendarFrameLayout);
189  PimCommon::ManageAccountWidget *manageAccountWidget = new PimCommon::ManageAccountWidget(this);
190  calendarFrameLayout->addWidget(manageAccountWidget);
191 
192  manageAccountWidget->setMimeTypeFilter(QStringList() <<QLatin1String("text/calendar"));
193  manageAccountWidget->setCapabilityFilter(QStringList() << QLatin1String("Resource") ); // show only resources, no agents
194 
195  load();
196 }
197 
198 void KOPrefsDialogMain::usrWriteConfig()
199 {
200  KPIM::KPrefsModule::usrWriteConfig();
201  IncidenceEditorNG::GlobalSettings::self()->writeConfig();
202 }
203 
204 void KOPrefsDialogMain::toggleEmailSettings( bool on )
205 {
206  mUserEmailSettings->setEnabled( !on );
207 /* if (on) {
208  KEMailSettings settings;
209  mNameEdit->setText( settings.getSetting(KEMailSettings::RealName) );
210  mEmailEdit->setText( settings.getSetting(KEMailSettings::EmailAddress) );
211  } else {
212  mNameEdit->setText( CalendarSupport::KCalPrefs::instance()->mName );
213  mEmailEdit->setText( CalendarSupport::KCalPrefs::instance()->mEmail );
214  }*/
215 }
216 
217 extern "C"
218 {
219  KDE_EXPORT KCModule *create_korganizerconfigmain( QWidget *parent, const char * )
220  {
221  return new KOPrefsDialogMain( KOGlobals::self()->componentData(), parent );
222  }
223 }
224 
227 
228 class KOPrefsDialogTime : public KPIM::KPrefsModule
229 {
230  public:
231  KOPrefsDialogTime( const KComponentData &inst, QWidget *parent )
232  : KPIM::KPrefsModule( KOPrefs::instance(), inst, parent )
233  {
234  QVBoxLayout *layout = new QVBoxLayout( this );
235  KTabWidget *tabWidget = new KTabWidget( this );
236  layout->addWidget( tabWidget );
237 
238  QFrame *regionalPage = new QFrame( parent );
239  tabWidget->addTab( regionalPage, KIcon( QLatin1String("flag") ),
240  i18nc( "@title:tab", "Regional" ) );
241 
242  QGridLayout *regionalLayout = new QGridLayout( regionalPage );
243  regionalLayout->setSpacing( KDialog::spacingHint() );
244 
245  QGroupBox *datetimeGroupBox =
246  new QGroupBox( i18nc( "@title:group", "General Time and Date" ), regionalPage );
247  regionalLayout->addWidget( datetimeGroupBox, 0, 0 );
248 
249  QGridLayout *datetimeLayout = new QGridLayout( datetimeGroupBox );
250 
251  KPIM::KPrefsWidTime *dayBegins =
252  addWidTime( KOPrefs::instance()->dayBeginsItem(), regionalPage );
253  datetimeLayout->addWidget( dayBegins->label(), 1, 0 );
254  datetimeLayout->addWidget( dayBegins->timeEdit(), 1, 1 );
255 
256  QGroupBox *holidaysGroupBox =
257  new QGroupBox( i18nc( "@title:group", "Holidays" ), regionalPage );
258  regionalLayout->addWidget( holidaysGroupBox, 1, 0 );
259 
260  QGridLayout *holidaysLayout = new QGridLayout( holidaysGroupBox );
261 
262  // holiday region selection
263  KHBox *holidayRegBox = new KHBox( regionalPage );
264  holidaysLayout->addWidget( holidayRegBox, 1, 0, 1, 2 );
265 
266  QLabel *holidayLabel = new QLabel(
267  i18nc( "@label", "Use holiday region:" ), holidayRegBox );
268  holidayLabel->setWhatsThis( KOPrefs::instance()->holidaysItem()->whatsThis() );
269 
270  mHolidayCombo = new KComboBox( holidayRegBox );
271  connect( mHolidayCombo, SIGNAL(activated(int)), SLOT(slotWidChanged()) );
272 
273  mHolidayCombo->setWhatsThis( KOPrefs::instance()->holidaysItem()->whatsThis() );
274 
275  QStringList regions = KHolidays::HolidayRegion::regionCodes();
276  QMap<QString, QString> regionsMap;
277 
278  foreach ( const QString & regionCode, regions ) {
279  QString name = KHolidays::HolidayRegion::name( regionCode );
280  QString languageName =
281  KGlobal::locale()->languageCodeToName(
282  KHolidays::HolidayRegion::languageCode( regionCode ) );
283  QString label;
284  if ( languageName.isEmpty() ) {
285  label = name;
286  } else {
287  label = i18nc( "Holday region, region language", "%1 (%2)", name, languageName );
288  }
289  regionsMap.insert( label, regionCode );
290  }
291 
292  mHolidayCombo->addItem( i18nc( "No holiday region", "None" ), QString() );
293  QMapIterator<QString, QString> i( regionsMap );
294  while ( i.hasNext() ) {
295  i.next();
296  mHolidayCombo->addItem( i.key(), i.value() );
297  }
298 
299  if ( KOGlobals::self()->holidays() && KOGlobals::self()->holidays()->isValid() ) {
300  mHolidayCombo->setCurrentIndex(
301  mHolidayCombo->findData( KOGlobals::self()->holidays()->regionCode() ) );
302  } else {
303  mHolidayCombo->setCurrentIndex( 0 );
304  }
305 
306  QGroupBox *workingHoursGroupBox =
307  new QGroupBox( i18nc( "@title:group", "Working Period" ), regionalPage );
308  regionalLayout->addWidget( workingHoursGroupBox, 2, 0 );
309 
310  QBoxLayout *workingHoursLayout = new QVBoxLayout( workingHoursGroupBox );
311 
312  QBoxLayout *workDaysLayout = new QHBoxLayout;
313  workingHoursLayout->addLayout( workDaysLayout );
314 
315  // Respect start of week setting
316  int weekStart = KGlobal::locale()->weekStartDay();
317  for ( int i=0; i < 7; ++i ) {
318  const KCalendarSystem *calSys = KOGlobals::self()->calendarSystem();
319  QString weekDayName = calSys->weekDayName( ( i + weekStart + 6 ) % 7 + 1,
320  KCalendarSystem::ShortDayName );
321  int index = ( i + weekStart + 6 ) % 7;
322  mWorkDays[ index ] = new QCheckBox( weekDayName );
323  mWorkDays[ index ]->setWhatsThis(
324  i18nc( "@info:whatsthis",
325  "Check this box to make KOrganizer mark the "
326  "working hours for this day of the week. "
327  "If this is a work day for you, check "
328  "this box, or the working hours will not be "
329  "marked with color." ) );
330 
331  connect( mWorkDays[ index ], SIGNAL(stateChanged(int)), SLOT(slotWidChanged()) );
332 
333  workDaysLayout->addWidget( mWorkDays[ index ] );
334  }
335 
336  KPIM::KPrefsWidTime *workStart =
337  addWidTime( KOPrefs::instance()->workingHoursStartItem() );
338 
339  QHBoxLayout *workStartLayout = new QHBoxLayout;
340  workingHoursLayout->addLayout( workStartLayout );
341 
342  workStartLayout->addWidget( workStart->label() );
343  workStartLayout->addWidget( workStart->timeEdit() );
344 
345  KPIM::KPrefsWidTime *workEnd =
346  addWidTime( KOPrefs::instance()->workingHoursEndItem() );
347 
348  QHBoxLayout *workEndLayout = new QHBoxLayout;
349  workingHoursLayout->addLayout( workEndLayout );
350 
351  workEndLayout->addWidget( workEnd->label() );
352  workEndLayout->addWidget( workEnd->timeEdit() );
353 
354  KPIM::KPrefsWidBool *excludeHolidays =
355  addWidBool( KOPrefs::instance()->excludeHolidaysItem() );
356 
357  workingHoursLayout->addWidget( excludeHolidays->checkBox() );
358 
359  regionalLayout->setRowStretch( 4, 1 );
360 
361  QFrame *defaultPage = new QFrame( parent );
362  tabWidget->addTab( defaultPage, KIcon( QLatin1String("draw-eraser") ),
363  i18nc( "@title:tab", "Default Values" ) );
364  QGridLayout *defaultLayout = new QGridLayout( defaultPage );
365  defaultLayout->setSpacing( KDialog::spacingHint() );
366 
367  QGroupBox *timesGroupBox =
368  new QGroupBox( i18nc( "@title:group", "Appointments" ), defaultPage );
369  defaultLayout->addWidget( timesGroupBox, 0, 0 );
370 
371  QGridLayout *timesLayout = new QGridLayout( timesGroupBox );
372 
373  KPIM::KPrefsWidTime *defaultTime =
374  addWidTime( CalendarSupport::KCalPrefs::instance()->startTimeItem(), defaultPage );
375  timesLayout->addWidget( defaultTime->label(), 0, 0 );
376  timesLayout->addWidget( defaultTime->timeEdit(), 0, 1 );
377 
378  KPIM::KPrefsWidDuration *defaultDuration =
379  addWidDuration( CalendarSupport::KCalPrefs::instance()->defaultDurationItem(),
380  QLatin1String("hh:mm"), defaultPage );
381 
382  timesLayout->addWidget( defaultDuration->label(), 1, 0 );
383  timesLayout->addWidget( defaultDuration->timeEdit(), 1, 1 );
384 
385  QGroupBox *remindersGroupBox =
386  new QGroupBox( i18nc( "@title:group", "Reminders" ), defaultPage );
387  defaultLayout->addWidget( remindersGroupBox, 1, 0 );
388 
389  QGridLayout *remindersLayout = new QGridLayout( remindersGroupBox );
390 
391  QLabel *reminderLabel =
392  new QLabel( i18nc( "@label", "Default reminder time:" ), defaultPage );
393  remindersLayout->addWidget( reminderLabel, 0, 0 );
394  reminderLabel->setWhatsThis(
395  CalendarSupport::KCalPrefs::instance()->reminderTimeItem()->whatsThis() );
396  mReminderTimeSpin = new KIntSpinBox( defaultPage );
397  mReminderTimeSpin->setWhatsThis(
398  CalendarSupport::KCalPrefs::instance()->reminderTimeItem()->whatsThis() );
399  mReminderTimeSpin->setToolTip(
400  CalendarSupport::KCalPrefs::instance()->reminderTimeItem()->toolTip() );
401  connect( mReminderTimeSpin, SIGNAL(valueChanged(int)), SLOT(slotWidChanged()) );
402  remindersLayout->addWidget( mReminderTimeSpin, 0, 1 );
403 
404  mReminderUnitsCombo = new KComboBox( defaultPage );
405  mReminderUnitsCombo->setToolTip(
406  CalendarSupport::KCalPrefs::instance()->reminderTimeUnitsItem()->toolTip() );
407  mReminderUnitsCombo->setWhatsThis(
408  CalendarSupport::KCalPrefs::instance()->reminderTimeUnitsItem()->whatsThis() );
409  connect( mReminderUnitsCombo, SIGNAL(activated(int)), SLOT(slotWidChanged()) );
410  mReminderUnitsCombo->addItem(
411  i18nc( "@item:inlistbox reminder units in minutes", "minute(s)" ) );
412  mReminderUnitsCombo->addItem(
413  i18nc( "@item:inlistbox reminder time units in hours", "hour(s)" ) );
414  mReminderUnitsCombo->addItem(
415  i18nc( "@item:inlistbox reminder time units in days", "day(s)" ) );
416  remindersLayout->addWidget( mReminderUnitsCombo, 0, 2 );
417 
418  QCheckBox *cb =
419  addWidBool(
420  CalendarSupport::KCalPrefs::instance()->defaultAudioFileRemindersItem() )->checkBox();
421  cb->setText( QString() );
422 
423  if ( CalendarSupport::KCalPrefs::instance()->audioFilePathItem()->value().isEmpty() ) {
424  const QString defAudioFile = KGlobal::dirs()->locate( "sound", QLatin1String("KDE-Sys-Warning.ogg") );
425  CalendarSupport::KCalPrefs::instance()->audioFilePathItem()->setValue(defAudioFile);
426  }
427  QString filter =
428  i18n( "*.ogg *.wav *.mp3 *.wma *.flac *.aiff *.raw *.au *.ra|"
429  "Audio Files (*.ogg *.wav *.mp3 *.wma *.flac *.aiff *.raw *.au *.ra)" );
430  KUrlRequester *rq = addWidPath( CalendarSupport::KCalPrefs::instance()->audioFilePathItem(),
431  0, filter )->urlRequester();
432  rq->setEnabled( cb->isChecked() );
433 
434  connect( cb, SIGNAL(toggled(bool)), rq, SLOT(setEnabled(bool)) );
435 
436  QHBoxLayout *audioFileRemindersBox = new QHBoxLayout( remindersGroupBox );
437  audioFileRemindersBox->addWidget( cb );
438  audioFileRemindersBox->addWidget( rq );
439 
440  remindersLayout->addLayout( audioFileRemindersBox, 1, 0 );
441  remindersLayout->addWidget(
442  addWidBool(
443  CalendarSupport::KCalPrefs::instance()->defaultEventRemindersItem() )->checkBox(), 2, 0 );
444  remindersLayout->addWidget(
445  addWidBool(
446  CalendarSupport::KCalPrefs::instance()->defaultTodoRemindersItem() )->checkBox(), 3, 0 );
447 
448  defaultLayout->setRowStretch( 3, 1 );
449  load();
450  }
451 
452  protected:
453  void usrReadConfig()
454  {
455  mReminderTimeSpin->setValue( CalendarSupport::KCalPrefs::instance()->mReminderTime );
456  mReminderUnitsCombo->setCurrentIndex(
457  CalendarSupport::KCalPrefs::instance()->mReminderTimeUnits );
458  for ( int i = 0; i < 7; ++i ) {
459  mWorkDays[i]->setChecked( ( 1 << i ) & ( KOPrefs::instance()->mWorkWeekMask ) );
460  }
461  }
462 
463  void usrWriteConfig()
464  {
465  KOPrefs::instance()->mHolidays =
466  mHolidayCombo->itemData( mHolidayCombo->currentIndex() ).toString();
467 
468  CalendarSupport::KCalPrefs::instance()->mReminderTime =
469  mReminderTimeSpin->value();
470  CalendarSupport::KCalPrefs::instance()->mReminderTimeUnits =
471  mReminderUnitsCombo->currentIndex();
472 
473  int mask = 0;
474  for ( int i = 0; i < 7; ++i ) {
475  if ( mWorkDays[i]->isChecked() ) {
476  mask = mask | ( 1 << i );
477  }
478  }
479  KOPrefs::instance()->mWorkWeekMask = mask;
480  KOPrefs::instance()->writeConfig();
481  CalendarSupport::KCalPrefs::instance()->writeConfig();
482  }
483 
484  void setCombo( KComboBox *combo, const QString &text, const QStringList *tags = 0 )
485  {
486  if ( tags ) {
487  int i = tags->indexOf( text );
488  if ( i > 0 ) {
489  combo->setCurrentIndex( i );
490  }
491  } else {
492  for ( int i=0; i < combo->count(); ++i ) {
493  if ( combo->itemText( i ) == text ) {
494  combo->setCurrentIndex( i );
495  break;
496  }
497  }
498  }
499  }
500 
501  private:
502  QStringList tzonenames;
503  KComboBox *mHolidayCombo;
504  KIntSpinBox *mReminderTimeSpin;
505  KComboBox *mReminderUnitsCombo;
506  QCheckBox *mWorkDays[7];
507 };
508 
509 extern "C"
510 {
511  KDE_EXPORT KCModule *create_korganizerconfigtime( QWidget *parent, const char * )
512  {
513  KGlobal::locale()->insertCatalog( QLatin1String("timezones4") );
514  return new KOPrefsDialogTime( KOGlobals::self()->componentData(), parent );
515  }
516 }
517 
520 
521 class KOPrefsDialogViews : public KPIM::KPrefsModule
522 {
523  public:
524  KOPrefsDialogViews( const KComponentData &inst, QWidget *parent )
525  : KPIM::KPrefsModule( KOPrefs::instance(), inst, parent ),
526  mMonthIconComboBox( new KItemIconCheckCombo( KItemIconCheckCombo::MonthType, this ) ),
527  mAgendaIconComboBox( new KItemIconCheckCombo( KItemIconCheckCombo::AgendaType, this ) )
528  {
529  QBoxLayout *topTopLayout = new QVBoxLayout( this );
530  KTabWidget *tabWidget = new KTabWidget( this );
531  topTopLayout->addWidget( tabWidget );
532 
533  connect( mMonthIconComboBox, SIGNAL(checkedItemsChanged(QStringList)),
534  SLOT(slotWidChanged()) );
535  connect( mAgendaIconComboBox, SIGNAL(checkedItemsChanged(QStringList)),
536  SLOT(slotWidChanged()) );
537 
538  // Tab: Views->General
539  QFrame *generalFrame = new QFrame( this );
540  tabWidget->addTab( generalFrame, KIcon( QLatin1String("view-choose") ),
541  i18nc( "@title:tab general settings", "General" ) );
542 
543  QBoxLayout *generalLayout = new QVBoxLayout( generalFrame );
544 
545  // GroupBox: Views->General->Display Options
546  QVBoxLayout *gdisplayLayout = new QVBoxLayout;
547  QGroupBox *gdisplayBox = new QGroupBox( i18nc( "@title:group", "Display Options" ) );
548 
549  QBoxLayout *nextDaysLayout = new QHBoxLayout;
550  gdisplayLayout->addLayout( nextDaysLayout );
551 
552  KPIM::KPrefsWidInt *nextDays =
553  addWidInt( KOPrefs::instance()->nextXDaysItem() );
554  nextDays->spinBox()->setSuffix(
555  i18nc( "@label suffix in the N days spin box", " days" ) );
556 
557  nextDaysLayout->addWidget( nextDays->label() );
558  nextDaysLayout->addWidget( nextDays->spinBox() );
559  nextDaysLayout->addStretch( 1 );
560 
561  gdisplayLayout->addWidget(
562  addWidBool( KOPrefs::instance()->enableToolTipsItem() )->checkBox() );
563  gdisplayLayout->addWidget(
564  addWidBool( KOPrefs::instance()->todosUseCategoryColorsItem() )->checkBox() );
565  gdisplayBox->setLayout( gdisplayLayout );
566  generalLayout->addWidget( gdisplayBox );
567 
568  // GroupBox: Views->General->Date Navigator
569  QVBoxLayout *datenavLayout = new QVBoxLayout;
570  QGroupBox *datenavBox = new QGroupBox( i18nc( "@title:group", "Date Navigator" ) );
571  datenavLayout->addWidget(
572  addWidBool( KOPrefs::instance()->dailyRecurItem() )->checkBox() );
573  datenavLayout->addWidget(
574  addWidBool( KOPrefs::instance()->weeklyRecurItem() )->checkBox() );
575  datenavLayout->addWidget(
576  addWidBool( KOPrefs::instance()->highlightTodosItem() )->checkBox() );
577  datenavLayout->addWidget(
578  addWidBool( KOPrefs::instance()->highlightJournalsItem() )->checkBox() );
579  datenavLayout->addWidget(
580  addWidBool( KOPrefs::instance()->weekNumbersShowWorkItem() )->checkBox() );
581  datenavBox->setLayout( datenavLayout );
582  generalLayout->addWidget( datenavBox );
583  generalLayout->addStretch( 1 );
584 
585  // Tab: Views->Agenda View
586  QFrame *agendaFrame = new QFrame( this );
587  tabWidget->addTab( agendaFrame, KIcon( QLatin1String("view-calendar-workweek") ),
588  i18nc( "@title:tab", "Agenda View" ) );
589 
590  QBoxLayout *agendaLayout = new QVBoxLayout( agendaFrame );
591 
592  // GroupBox: Views->Agenda View->Display Options
593  QVBoxLayout *adisplayLayout = new QVBoxLayout;
594  QGroupBox *adisplayBox = new QGroupBox( i18nc( "@title:group", "Display Options" ) );
595 
596  QHBoxLayout *hourSizeLayout = new QHBoxLayout;
597  adisplayLayout->addLayout( hourSizeLayout );
598 
599  KPIM::KPrefsWidInt *hourSize =
600  addWidInt( KOPrefs::instance()->hourSizeItem() );
601  hourSize->spinBox()->setSuffix(
602  i18nc( "@label suffix in the hour size spin box", " pixels" ) );
603 
604  hourSizeLayout->addWidget( hourSize->label() );
605  hourSizeLayout->addWidget( hourSize->spinBox() );
606  hourSizeLayout->addStretch( 1 );
607 
608  adisplayLayout->addWidget(
609  addWidBool( KOPrefs::instance()->enableAgendaItemIconsItem() )->checkBox() );
610  adisplayLayout->addWidget(
611  addWidBool( KOPrefs::instance()->showTodosAgendaViewItem() )->checkBox() );
612  KPIM::KPrefsWidBool *marcusBainsEnabled =
613  addWidBool( KOPrefs::instance()->marcusBainsEnabledItem() );
614  adisplayLayout->addWidget( marcusBainsEnabled->checkBox() );
615 
616  KPIM::KPrefsWidBool *marcusBainsShowSeconds =
617  addWidBool( KOPrefs::instance()->marcusBainsShowSecondsItem() );
618  connect( marcusBainsEnabled->checkBox(), SIGNAL(toggled(bool)),
619  marcusBainsShowSeconds->checkBox(), SLOT(setEnabled(bool)) );
620 
621  adisplayLayout->addWidget( marcusBainsShowSeconds->checkBox() );
622  adisplayLayout->addWidget(
623  addWidBool( KOPrefs::instance()->selectionStartsEditorItem() )->checkBox() );
624  mAgendaIconComboBox->setCheckedIcons(
625  KOPrefs::instance()->eventViewsPreferences()->agendaViewIcons() );
626  adisplayLayout->addWidget( mAgendaIconComboBox );
627  adisplayBox->setLayout( adisplayLayout );
628  agendaLayout->addWidget( adisplayBox );
629 
630  // GroupBox: Views->Agenda View->Color Usage
631  agendaLayout->addWidget(
632  addWidRadios( KOPrefs::instance()->agendaViewColorsItem() )->groupBox() );
633 
634  agendaLayout->addWidget(
635  addWidBool( KOPrefs::instance()->colorBusyDaysEnabledItem() )->checkBox() );
636 
637  // GroupBox: Views->Agenda View->Multiple Calendars
638  agendaLayout->addWidget(
639  addWidRadios( KOPrefs::instance()->agendaViewCalendarDisplayItem() )->groupBox() );
640 
641  agendaLayout->addStretch( 1 );
642 
643  // Tab: Views->Month View
644  QFrame *monthFrame = new QFrame( this );
645  tabWidget->addTab( monthFrame, KIcon( QLatin1String("view-calendar-month") ),
646  i18nc( "@title:tab", "Month View" ) );
647 
648  QBoxLayout *monthLayout = new QVBoxLayout( monthFrame );
649 
650  // GroupBox: Views->Month View->Display Options
651  QVBoxLayout *mdisplayLayout = new QVBoxLayout;
652  QGroupBox *mdisplayBox = new QGroupBox( i18nc( "@title:group", "Display Options" ) );
653  /*mdisplayLayout->addWidget(
654  addWidBool( KOPrefs::instance()->enableMonthScrollItem() )->checkBox() );*/
655  mdisplayLayout->addWidget(
656  addWidBool( KOPrefs::instance()->showTimeInMonthViewItem() )->checkBox() );
657  mdisplayLayout->addWidget(
658  addWidBool( KOPrefs::instance()->enableMonthItemIconsItem() )->checkBox() );
659  mdisplayLayout->addWidget(
660  addWidBool( KOPrefs::instance()->showTodosMonthViewItem() )->checkBox() );
661  mdisplayLayout->addWidget(
662  addWidBool( KOPrefs::instance()->showJournalsMonthViewItem() )->checkBox() );
663  mdisplayBox->setLayout( mdisplayLayout );
664 
665  mMonthIconComboBox->setCheckedIcons(
666  KOPrefs::instance()->eventViewsPreferences()->monthViewIcons() );
667  mdisplayLayout->addWidget( mMonthIconComboBox );
668 
669  monthLayout->addWidget( mdisplayBox );
670 
671  monthLayout->addWidget(
672  addWidBool( KOPrefs::instance()->colorMonthBusyDaysEnabledItem() )->checkBox() );
673 
674  // GroupBox: Views->Month View->Color Usage
675  monthLayout->addWidget(
676  addWidRadios( KOPrefs::instance()->monthViewColorsItem() )->groupBox() );
677  monthLayout->addStretch( 1 );
678 
679  // Tab: Views->Todo View
680  QFrame *todoFrame = new QFrame( this );
681  tabWidget->addTab( todoFrame, KIcon( QLatin1String("view-calendar-tasks") ),
682  i18nc( "@title:tab", "Todo View" ) );
683 
684  QBoxLayout *todoLayout = new QVBoxLayout( todoFrame );
685 
686  // GroupBox: Views->Todo View->Display Options
687  QVBoxLayout *tdisplayLayout = new QVBoxLayout;
688  QGroupBox *tdisplayBox = new QGroupBox( i18nc( "@title:group", "Display Options" ) );
689  tdisplayLayout->addWidget(
690  addWidBool( KOPrefs::instance()->sortCompletedTodosSeparatelyItem() )->checkBox() );
691  tdisplayBox->setLayout( tdisplayLayout );
692  todoLayout->addWidget( tdisplayBox );
693 
694  // GroupBox: Views->Todo View->Other
695  QVBoxLayout *otherLayout = new QVBoxLayout;
696  QGroupBox *otherBox = new QGroupBox( i18nc( "@title:group", "Other Options" ) );
697  otherLayout->addWidget(
698  addWidBool( KOPrefs::instance()->recordTodosInJournalsItem() )->checkBox() );
699  otherBox->setLayout( otherLayout );
700  todoLayout->addWidget( otherBox );
701  todoLayout->addStretch( 1 );
702 
703  load();
704  }
705  protected:
706  void usrWriteConfig()
707  {
708  KOPrefs::instance()->eventViewsPreferences()->setAgendaViewIcons(
709  mAgendaIconComboBox->checkedIcons() );
710  KOPrefs::instance()->eventViewsPreferences()->setMonthViewIcons(
711  mMonthIconComboBox->checkedIcons() );
712  }
713  private:
714  KItemIconCheckCombo *mMonthIconComboBox;
715  KItemIconCheckCombo *mAgendaIconComboBox;
716 };
717 
718 extern "C"
719 {
720  KDE_EXPORT KCModule *create_korganizerconfigviews( QWidget *parent, const char * )
721  {
722  return new KOPrefsDialogViews( KOGlobals::self()->componentData(), parent );
723  }
724 }
725 
728 
729 KOPrefsDialogColorsAndFonts::KOPrefsDialogColorsAndFonts( const KComponentData &inst,
730  QWidget *parent )
731  : KPIM::KPrefsModule( KOPrefs::instance(), inst, parent )
732 {
733  QBoxLayout *topTopLayout = new QVBoxLayout( this );
734  KTabWidget *tabWidget = new KTabWidget( this );
735  topTopLayout->addWidget( tabWidget );
736 
737  QWidget *colorFrame = new QWidget( this );
738  topTopLayout->addWidget( colorFrame );
739  QGridLayout *colorLayout = new QGridLayout(colorFrame);
740  colorLayout->setSpacing( KDialog::spacingHint() );
741  tabWidget->addTab( colorFrame, KIcon( QLatin1String("preferences-desktop-color") ),
742  i18nc( "@title:tab", "Colors" ) );
743 
744  // Holiday Color
745  KPIM::KPrefsWidColor *holidayColor =
746  addWidColor( KOPrefs::instance()->agendaHolidaysBackgroundColorItem(), colorFrame );
747  colorLayout->addWidget( holidayColor->label(), 0, 0 );
748  colorLayout->addWidget( holidayColor->button(), 0, 1 );
749 
750  // agenda view background color
751  KPIM::KPrefsWidColor *agendaBgColor =
752  addWidColor( KOPrefs::instance()->agendaGridBackgroundColorItem(), colorFrame );
753  colorLayout->addWidget( agendaBgColor->label(), 3, 0 );
754  colorLayout->addWidget( agendaBgColor->button(), 3, 1 );
755 
756  // agenda view Marcus Bains line color
757  KPIM::KPrefsWidColor *mblColor =
758  addWidColor( KOPrefs::instance()->agendaMarcusBainsLineLineColorItem(), colorFrame );
759  colorLayout->addWidget( mblColor->label(), 5, 0 );
760  colorLayout->addWidget( mblColor->button(), 5, 1 );
761 
762  KPIM::KPrefsWidColor *viewBgBusyColor =
763  addWidColor( KOPrefs::instance()->viewBgBusyColorItem(), colorFrame );
764  colorLayout->addWidget( viewBgBusyColor->label(), 4, 0 );
765  colorLayout->addWidget( viewBgBusyColor->button(), 4, 1 );
766 
767  // working hours color
768  KPIM::KPrefsWidColor *agendaGridWorkHoursBackgroundColor =
769  addWidColor( KOPrefs::instance()->workingHoursColorItem(), colorFrame );
770  colorLayout->addWidget( agendaGridWorkHoursBackgroundColor->label(), 6, 0 );
771  colorLayout->addWidget( agendaGridWorkHoursBackgroundColor->button(), 6, 1 );
772 
773  // Todo due today color
774  KPIM::KPrefsWidColor *todoDueTodayColor =
775  addWidColor(
776  KOPrefs::instance()->todoDueTodayColorItem(), colorFrame );
777  colorLayout->addWidget( todoDueTodayColor->label(), 7, 0 );
778  colorLayout->addWidget( todoDueTodayColor->button(), 7, 1 );
779 
780  // Todo overdue color
781  KPIM::KPrefsWidColor *todoOverdueColor =
782  addWidColor(
783  KOPrefs::instance()->todoOverdueColorItem(), colorFrame );
784  colorLayout->addWidget( todoOverdueColor->label(), 8, 0 );
785  colorLayout->addWidget( todoOverdueColor->button(), 8, 1 );
786 
787  // categories colors
788  QGroupBox *categoryGroup = new QGroupBox( i18nc( "@title:group", "Categories" ), colorFrame );
789  colorLayout->addWidget( categoryGroup, 9, 0, 1, 2 );
790 
791  QGridLayout *categoryLayout = new QGridLayout;
792  categoryGroup->setLayout( categoryLayout );
793 
794  KPIM::KPrefsWidColor *unsetCategoryColor =
795  addWidColor( CalendarSupport::KCalPrefs::instance()->unsetCategoryColorItem(), categoryGroup );
796  categoryLayout->addWidget( unsetCategoryColor->label(), 0, 0 );
797  categoryLayout->addWidget( unsetCategoryColor->button(), 0, 1 );
798  unsetCategoryColor->label()->setWhatsThis( unsetCategoryColor->button()->whatsThis() );
799  unsetCategoryColor->label()->setToolTip( unsetCategoryColor->button()->toolTip() );
800 
801  mCategoryCombo = new KPIM::TagCombo( categoryGroup );
802  mCategoryCombo->setWhatsThis(
803  i18nc( "@info:whatsthis",
804  "Select here the event category you want to modify. "
805  "You can change the selected category color using "
806  "the button below." ) );
807  connect( mCategoryCombo, SIGNAL(activated(int)), SLOT(updateCategoryColor()) );
808  categoryLayout->addWidget( mCategoryCombo, 1, 0 );
809 
810  mCategoryButton = new KColorButton( categoryGroup );
811  mCategoryButton->setWhatsThis(
812  i18nc( "@info:whatsthis",
813  "Choose here the color of the event category selected "
814  "using the combo box above." ) );
815  connect( mCategoryButton, SIGNAL(changed(QColor)), SLOT(setCategoryColor()) );
816  categoryLayout->addWidget( mCategoryButton, 1, 1 );
817 
818  updateCategoryColor();
819 
820  // resources colors
821  QGroupBox *resourceGroup = new QGroupBox( i18nc( "@title:group", "Resources" ), colorFrame );
822  colorLayout->addWidget( resourceGroup, 10, 0, 1, 2 );
823 
824  QBoxLayout *resourceLayout = new QHBoxLayout;
825  resourceGroup->setLayout( resourceLayout );
826 
827  mResourceCombo = new Akonadi::CollectionComboBox( resourceGroup );
828  //mResourceCombo->addExcludedSpecialResources(Akonadi::Collection::SearchResource);
829  QStringList mimetypes;
830  mimetypes << KCalCore::Todo::todoMimeType();
831  mimetypes << KCalCore::Journal::journalMimeType();
832  mimetypes << KCalCore::Event::eventMimeType();
833 
834  mResourceCombo->setMimeTypeFilter( mimetypes );
835  mResourceCombo->setWhatsThis(
836  i18nc( "@info:whatsthis",
837  "Select the calendar you want to modify. "
838  "You can change the selected calendar color using "
839  "the button below." ) );
840  connect( mResourceCombo, SIGNAL(activated(int)), SLOT(updateResourceColor()) );
841  resourceLayout->addWidget( mResourceCombo );
842 
843  mResourceButton = new KColorButton( resourceGroup );
844  mResourceButton->setWhatsThis(
845  i18nc( "@info:whatsthis",
846  "Choose here the color of the calendar selected "
847  "using the combo box above." ) );
848  connect( mResourceButton, SIGNAL(changed(QColor)), SLOT(setResourceColor()) );
849  resourceLayout->addWidget( mResourceButton );
850 
851  colorLayout->setRowStretch( 11, 1 );
852 
853  QWidget *fontFrame = new QWidget( this );
854  tabWidget->addTab( fontFrame, KIcon( QLatin1String("preferences-desktop-font") ),
855  i18nc( "@title:tab", "Fonts" ) );
856 
857  QGridLayout *fontLayout = new QGridLayout( fontFrame );
858  fontLayout->setSpacing( KDialog::spacingHint() );
859 
860  KPIM::KPrefsWidFont *timeBarFont =
861  addWidFont( KOPrefs::instance()->agendaTimeLabelsFontItem(), fontFrame,
862  KGlobal::locale()->formatTime( QTime( 12, 34 ) ) );
863  fontLayout->addWidget( timeBarFont->label(), 0, 0 );
864  fontLayout->addWidget( timeBarFont->preview(), 0, 1 );
865  fontLayout->addWidget( timeBarFont->button(), 0, 2 );
866 
867  KPIM::KPrefsWidFont *monthViewFont =
868  addWidFont( KOPrefs::instance()->monthViewFontItem(), fontFrame,
869  KGlobal::locale()->formatTime( QTime( 12, 34 ) ) + QLatin1Char(' ') +
870  i18nc( "@label", "Event text" ) );
871 
872  fontLayout->addWidget( monthViewFont->label(), 1, 0 );
873  fontLayout->addWidget( monthViewFont->preview(), 1, 1 );
874  fontLayout->addWidget( monthViewFont->button(), 1, 2 );
875 
876  KPIM::KPrefsWidFont *agendaViewFont =
877  addWidFont( KOPrefs::instance()->agendaViewFontItem(), fontFrame,
878  i18nc( "@label", "Event text" ) );
879  fontLayout->addWidget( agendaViewFont->label(), 2, 0 );
880  fontLayout->addWidget( agendaViewFont->preview(), 2, 1 );
881  fontLayout->addWidget( agendaViewFont->button(), 2, 2 );
882 
883  KPIM::KPrefsWidFont *marcusBainsFont =
884  addWidFont( KOPrefs::instance()->agendaMarcusBainsLineFontItem(), fontFrame,
885  KGlobal::locale()->formatTime( QTime( 12, 34, 23 ) ) );
886  fontLayout->addWidget( marcusBainsFont->label(), 3, 0 );
887  fontLayout->addWidget( marcusBainsFont->preview(), 3, 1 );
888  fontLayout->addWidget( marcusBainsFont->button(), 3, 2 );
889 
890  fontLayout->setColumnStretch( 1, 1 );
891  fontLayout->setRowStretch( 4, 1 );
892 
893  load();
894 }
895 
896 void KOPrefsDialogColorsAndFonts::usrWriteConfig()
897 {
898  QHash<QString, QColor>::const_iterator i = mCategoryDict.constBegin();
899  while ( i != mCategoryDict.constEnd() ) {
900  CalendarSupport::KCalPrefs::instance()->setCategoryColor( i.key(), i.value() );
901  ++i;
902  }
903 
904  i = mResourceDict.constBegin();
905  while ( i != mResourceDict.constEnd() ) {
906  KOPrefs::instance()->setResourceColor( i.key(), i.value() );
907  ++i;
908  }
909 
910  //mCalendarViewsPrefs->writeConfig();
911 }
912 
913 void KOPrefsDialogColorsAndFonts::usrReadConfig()
914 {
915  updateCategories();
916  updateResources();
917  //mCalendarViewsPrefs->readConfig();
918 }
919 
920 void KOPrefsDialogColorsAndFonts::updateCategories()
921 {
922  updateCategoryColor();
923 }
924 
925 void KOPrefsDialogColorsAndFonts::setCategoryColor()
926 {
927  mCategoryDict.insert( mCategoryCombo->currentText(), mCategoryButton->color() );
928  slotWidChanged();
929 }
930 
931 void KOPrefsDialogColorsAndFonts::updateCategoryColor()
932 {
933  const QString cat = mCategoryCombo->currentText();
934  QColor color = mCategoryDict.value( cat );
935  if ( !color.isValid() ) {
936  //TODO get this from the tag
937  color = CalendarSupport::KCalPrefs::instance()->categoryColor( cat );
938  }
939  if ( color.isValid() ) {
940  mCategoryButton->setColor( color );
941  }
942 }
943 
944 void KOPrefsDialogColorsAndFonts::updateResources()
945 {
946  updateResourceColor();
947 }
948 
949 void KOPrefsDialogColorsAndFonts::setResourceColor()
950 {
951  bool ok;
952  const QString id =
953  QString::number( mResourceCombo->itemData(
954  mResourceCombo->currentIndex(),
955  Akonadi::CollectionModel::CollectionIdRole ).toLongLong( &ok ) );
956  if( ! ok ) {
957  return;
958  }
959  mResourceDict.insert( id, mResourceButton->color() );
960  slotWidChanged();
961 }
962 
963 void KOPrefsDialogColorsAndFonts::updateResourceColor()
964 {
965  bool ok;
966  const QString id =
967  QString::number( mResourceCombo->itemData(
968  mResourceCombo->currentIndex(),
969  Akonadi::CollectionModel::CollectionIdRole ).toLongLong( &ok ) );
970  if ( !ok ) {
971  return;
972  }
973  kDebug() << id << mResourceCombo->itemText( mResourceCombo->currentIndex() );
974 
975  QColor color = mResourceDict.value( id );
976  if ( ! color.isValid() ) {
977  color = KOPrefs::instance()->resourceColor( id );
978  }
979  mResourceButton->setColor( color );
980 }
981 
982 extern "C"
983 {
984  KDE_EXPORT KCModule *create_korganizerconfigcolorsandfonts( QWidget *parent, const char * )
985  {
986  return new KOPrefsDialogColorsAndFonts( KOGlobals::self()->componentData(), parent );
987  }
988 }
989 
992 
993 KOPrefsDialogGroupScheduling::KOPrefsDialogGroupScheduling( const KComponentData &inst,
994  QWidget *parent )
995  : KPIM::KPrefsModule( KOPrefs::instance(), inst, parent )
996 {
997  QBoxLayout *topTopLayout = new QVBoxLayout( this );
998 
999  QWidget *topFrame = new QWidget( this );
1000  topTopLayout->addWidget( topFrame );
1001 
1002  QGridLayout *topLayout = new QGridLayout( topFrame );
1003  topLayout->setSpacing( KDialog::spacingHint() );
1004 
1005  KPIM::KPrefsWidBool *useGroupwareBool =
1006  addWidBool( CalendarSupport::KCalPrefs::instance()->useGroupwareCommunicationItem(), topFrame );
1007  topLayout->addWidget( useGroupwareBool->checkBox(), 0, 0, 1, 2 );
1008 
1009  KPIM::KPrefsWidBool *bcc =
1010  addWidBool( Akonadi::CalendarSettings::self()->bccItem(), topFrame );
1011  topLayout->addWidget( bcc->checkBox(), 1, 0, 1, 2 );
1012 
1013  QLabel *aTransportLabel = new QLabel(
1014  i18nc( "@label", "Mail transport:" ), topFrame );
1015  topLayout->addWidget( aTransportLabel, 2, 0, 1, 2 );
1016 
1017  MailTransport::TransportManagementWidget *tmw =
1018  new MailTransport::TransportManagementWidget( topFrame );
1019  tmw->layout()->setContentsMargins( 0, 0, 0, 0 );
1020  topLayout->addWidget( tmw, 3, 0, 1, 2 );
1021 
1022  //topLayout->setRowStretch( 2, 1 );
1023 
1024 
1025  load();
1026 }
1027 
1028 void KOPrefsDialogGroupScheduling::usrReadConfig()
1029 {
1030 }
1031 
1032 void KOPrefsDialogGroupScheduling::usrWriteConfig()
1033 {
1034 }
1035 
1036 extern "C"
1037 {
1038  KDE_EXPORT KCModule *create_korganizerconfiggroupscheduling( QWidget *parent, const char * )
1039  {
1040  return new KOPrefsDialogGroupScheduling( KOGlobals::self()->componentData(), parent );
1041  }
1042 }
1043 
1046 
1047 KOPrefsDialogGroupwareScheduling::KOPrefsDialogGroupwareScheduling( const KComponentData &inst,
1048  QWidget *parent )
1049  : KPrefsModule( CalendarSupport::KCalPrefs::instance(), inst, parent )
1050 {
1051  mGroupwarePage = new Ui::KOGroupwarePrefsPage();
1052  QWidget *widget = new QWidget( this );
1053  widget->setObjectName( QLatin1String("KOGrouparePrefsPage") );
1054 
1055  mGroupwarePage->setupUi( widget );
1056 
1057  mGroupwarePage->groupwareTab->setTabIcon( 0, KIcon( QLatin1String("go-up") ) );
1058  mGroupwarePage->groupwareTab->setTabIcon( 1, KIcon( QLatin1String("go-down") ) );
1059 
1060  // signals and slots connections
1061 
1062  connect( mGroupwarePage->publishDays, SIGNAL(valueChanged(int)),
1063  SLOT(slotWidChanged()) );
1064  connect( mGroupwarePage->publishUrl, SIGNAL(textChanged(QString)),
1065  SLOT(slotWidChanged()) );
1066  connect( mGroupwarePage->publishUser, SIGNAL(textChanged(QString)),
1067  SLOT(slotWidChanged()) );
1068  connect( mGroupwarePage->publishPassword, SIGNAL(textChanged(QString)),
1069  SLOT(slotWidChanged()) );
1070  connect( mGroupwarePage->publishSavePassword, SIGNAL(toggled(bool)),
1071  SLOT(slotWidChanged()) );
1072  connect( mGroupwarePage->retrieveEnable, SIGNAL(toggled(bool)),
1073  SLOT(slotWidChanged()) );
1074  connect( mGroupwarePage->retrieveUser, SIGNAL(textChanged(QString)),
1075  SLOT(slotWidChanged()) );
1076  connect( mGroupwarePage->retrievePassword, SIGNAL(textChanged(QString)),
1077  SLOT(slotWidChanged()) );
1078  connect( mGroupwarePage->retrieveSavePassword, SIGNAL(toggled(bool)),
1079  SLOT(slotWidChanged()) );
1080  connect( mGroupwarePage->retrieveUrl, SIGNAL(textChanged(QString)),
1081  SLOT(slotWidChanged()));
1082  connect( mGroupwarePage->publishDelay, SIGNAL(valueChanged(int)),
1083  SLOT(slotWidChanged()) );
1084  connect( mGroupwarePage->fullDomainRetrieval, SIGNAL(toggled(bool)),
1085  SLOT(slotWidChanged()) );
1086  connect( mGroupwarePage->publishEnable, SIGNAL(toggled(bool)),
1087  SLOT(slotWidChanged()) );
1088 
1089  ( new QVBoxLayout( this ) )->addWidget( widget );
1090 
1091  load();
1092 }
1093 
1094 KOPrefsDialogGroupwareScheduling::~KOPrefsDialogGroupwareScheduling()
1095 {
1096  delete mGroupwarePage;
1097 }
1098 
1099 void KOPrefsDialogGroupwareScheduling::usrReadConfig()
1100 {
1101  mGroupwarePage->publishEnable->setChecked(
1102  Akonadi::CalendarSettings::self()->freeBusyPublishAuto() );
1103  mGroupwarePage->publishDelay->setValue(
1104  Akonadi::CalendarSettings::self()->freeBusyPublishDelay() );
1105  mGroupwarePage->publishDays->setValue(
1106  Akonadi::CalendarSettings::self()->freeBusyPublishDays() );
1107  mGroupwarePage->publishUrl->setText(
1108  Akonadi::CalendarSettings::self()->freeBusyPublishUrl() );
1109  mGroupwarePage->publishUser->setText(
1110  Akonadi::CalendarSettings::self()->freeBusyPublishUser() );
1111  mGroupwarePage->publishPassword->setText(
1112  Akonadi::CalendarSettings::self()->freeBusyPublishPassword() );
1113  mGroupwarePage->publishSavePassword->setChecked(
1114  Akonadi::CalendarSettings::self()->freeBusyPublishSavePassword() );
1115 
1116  mGroupwarePage->retrieveEnable->setChecked(
1117  Akonadi::CalendarSettings::self()->freeBusyRetrieveAuto() );
1118  mGroupwarePage->fullDomainRetrieval->setChecked(
1119  Akonadi::CalendarSettings::self()->freeBusyFullDomainRetrieval() );
1120  mGroupwarePage->retrieveUrl->setText(
1121  Akonadi::CalendarSettings::self()->freeBusyRetrieveUrl() );
1122  mGroupwarePage->retrieveUser->setText(
1123  Akonadi::CalendarSettings::self()->freeBusyRetrieveUser() );
1124  mGroupwarePage->retrievePassword->setText(
1125  Akonadi::CalendarSettings::self()->freeBusyRetrievePassword() );
1126  mGroupwarePage->retrieveSavePassword->setChecked(
1127  Akonadi::CalendarSettings::self()->freeBusyRetrieveSavePassword() );
1128 }
1129 
1130 void KOPrefsDialogGroupwareScheduling::usrWriteConfig()
1131 {
1132  Akonadi::CalendarSettings::self()->setFreeBusyPublishAuto(
1133  mGroupwarePage->publishEnable->isChecked());
1134  Akonadi::CalendarSettings::self()->setFreeBusyPublishDelay(mGroupwarePage->publishDelay->value());
1135  Akonadi::CalendarSettings::self()->setFreeBusyPublishDays(
1136  mGroupwarePage->publishDays->value());
1137  Akonadi::CalendarSettings::self()->setFreeBusyPublishUrl(
1138  mGroupwarePage->publishUrl->text());
1139  Akonadi::CalendarSettings::self()->setFreeBusyPublishUser(
1140  mGroupwarePage->publishUser->text());
1141  Akonadi::CalendarSettings::self()->setFreeBusyPublishPassword(
1142  mGroupwarePage->publishPassword->text());
1143  Akonadi::CalendarSettings::self()->setFreeBusyPublishSavePassword(
1144  mGroupwarePage->publishSavePassword->isChecked());
1145 
1146  Akonadi::CalendarSettings::self()->setFreeBusyRetrieveAuto(
1147  mGroupwarePage->retrieveEnable->isChecked());
1148  Akonadi::CalendarSettings::self()->setFreeBusyFullDomainRetrieval(
1149  mGroupwarePage->fullDomainRetrieval->isChecked());
1150  Akonadi::CalendarSettings::self()->setFreeBusyRetrieveUrl(
1151  mGroupwarePage->retrieveUrl->text());
1152  Akonadi::CalendarSettings::self()->setFreeBusyRetrieveUser(
1153  mGroupwarePage->retrieveUser->text());
1154  Akonadi::CalendarSettings::self()->setFreeBusyRetrievePassword(
1155  mGroupwarePage->retrievePassword->text());
1156  Akonadi::CalendarSettings::self()->setFreeBusyRetrieveSavePassword(
1157  mGroupwarePage->retrieveSavePassword->isChecked());
1158 
1159  // clear the url cache for our user
1160  const QString configFile = KStandardDirs::locateLocal( "data", QLatin1String("korganizer/freebusyurls") );
1161  KConfig cfg( configFile );
1162  cfg.deleteGroup( CalendarSupport::KCalPrefs::instance()->email() );
1163 
1164 
1165  Akonadi::CalendarSettings::self()->writeConfig();
1166 }
1167 
1168 extern "C"
1169 {
1170  KDE_EXPORT KCModule *create_korganizerconfigfreebusy( QWidget *parent, const char * )
1171  {
1172  return new KOPrefsDialogGroupwareScheduling( KOGlobals::self()->componentData(), parent );
1173  }
1174 }
1175 
1178 
1179 class PluginItem : public QTreeWidgetItem
1180 {
1181  public:
1182  PluginItem( QTreeWidget *parent, KService::Ptr service )
1183  : QTreeWidgetItem( parent, QStringList( service->name() ) ),
1184  mService( service ) {}
1185  PluginItem( QTreeWidgetItem *parent, KService::Ptr service )
1186  : QTreeWidgetItem( parent, QStringList( service->name() ) ),
1187  mService( service ) {}
1188 
1189  KService::Ptr service()
1190  { return mService; }
1191 
1192  private:
1193  KService::Ptr mService;
1194 };
1195 
1199 KOPrefsDialogPlugins::KOPrefsDialogPlugins( const KComponentData &inst, QWidget *parent )
1200  : KPrefsModule( KOPrefs::instance(), inst, parent )
1201 {
1202  QBoxLayout *topTopLayout = new QVBoxLayout( this );
1203 
1204  QWidget *topFrame = new QWidget( this );
1205  topTopLayout->addWidget( topFrame );
1206  QBoxLayout *topLayout = new QVBoxLayout( topFrame );
1207  topLayout->setSpacing( KDialog::spacingHint() );
1208 
1209  mTreeWidget = new QTreeWidget( topFrame );
1210  mTreeWidget->setColumnCount( 1 );
1211  mTreeWidget->setHeaderLabel( i18nc( "@title:column plugin name", "Name" ) );
1212  topLayout->addWidget( mTreeWidget );
1213 
1214  mDescription = new QLabel( topFrame );
1215  mDescription->setAlignment( Qt::AlignVCenter );
1216  mDescription->setWordWrap( true );
1217  mDescription->setFrameShape( QLabel::Panel );
1218  mDescription->setFrameShadow( QLabel::Sunken );
1219  mDescription->setMinimumSize( QSize( 0, 55 ) );
1220  QSizePolicy policy( QSizePolicy::MinimumExpanding, QSizePolicy::Fixed );
1221  policy.setHorizontalStretch( 0 );
1222  policy.setVerticalStretch( 0 );
1223  policy.setHeightForWidth( mDescription->sizePolicy().hasHeightForWidth() );
1224  mDescription->setSizePolicy( policy );
1225  topLayout->addWidget( mDescription );
1226 
1227  QWidget *buttonRow = new QWidget( topFrame );
1228  QBoxLayout *buttonRowLayout = new QHBoxLayout( buttonRow );
1229  mConfigureButton = new KPushButton(
1230  KGuiItem( i18nc( "@action:button", "Configure &Plugin..." ),
1231  QLatin1String("configure"), QString(),
1232  i18nc( "@info:whatsthis",
1233  "This button allows you to configure"
1234  " the plugin that you have selected in the list above" ) ),
1235  buttonRow );
1236  buttonRowLayout->addWidget( mConfigureButton );
1237  buttonRowLayout->addItem( new QSpacerItem( 1, 1, QSizePolicy::Expanding ) );
1238  topLayout->addWidget( buttonRow );
1239 
1240  mPositioningGroupBox = new QGroupBox( i18nc( "@title:group", "Position" ), topFrame );
1241  //mPositionMonthTop = new QCheckBox(
1242  //i18nc( "@option:check", "Show in the month view" ), mPositioningGroupBox );
1243  mPositionAgendaTop = new QRadioButton(
1244  i18nc( "@option:check", "Show at the top of the agenda views" ), mPositioningGroupBox );
1245  mPositionAgendaBottom = new QRadioButton(
1246  i18nc( "@option:check", "Show at the bottom of the agenda views" ), mPositioningGroupBox );
1247  QVBoxLayout *positioningLayout = new QVBoxLayout( mPositioningGroupBox );
1248  //positioningLayout->addWidget( mPositionMonthTop );
1249  positioningLayout->addWidget( mPositionAgendaTop );
1250  positioningLayout->addWidget( mPositionAgendaBottom );
1251  positioningLayout->addStretch( 1 );
1252  topLayout->addWidget( mPositioningGroupBox );
1253 
1254  connect( mConfigureButton, SIGNAL(clicked()), SLOT(configure()) );
1255 
1256  //connect( mPositionMonthTop, SIGNAL(clicked()), SLOT(positioningChanged()) );
1257  connect( mPositionAgendaTop, SIGNAL(clicked()), SLOT(positioningChanged()) );
1258  connect( mPositionAgendaBottom, SIGNAL(clicked()), SLOT(positioningChanged()) );
1259 
1260  connect( mTreeWidget, SIGNAL(itemSelectionChanged()), SLOT(selectionChanged()) );
1261  connect( mTreeWidget, SIGNAL(itemChanged(QTreeWidgetItem*,int)), SLOT(selectionChanged()) );
1262  connect( mTreeWidget, SIGNAL(itemClicked(QTreeWidgetItem*,int)), SLOT(slotWidChanged()) );
1263 
1264  load();
1265 
1266  selectionChanged();
1267 }
1268 
1269 void KOPrefsDialogPlugins::usrReadConfig()
1270 {
1271  mTreeWidget->clear();
1272  KService::List plugins = KOCore::self()->availablePlugins();
1273  plugins += KOCore::self()->availableParts();
1274 
1275  EventViews::PrefsPtr viewPrefs = KOPrefs::instance()->eventViewsPreferences();
1276 
1277  QStringList selectedPlugins = viewPrefs->selectedPlugins();
1278 
1279  QTreeWidgetItem *decorations =
1280  new QTreeWidgetItem( mTreeWidget, QStringList(
1281  i18nc( "@title:group", "Calendar Decorations" ) ) );
1282  QTreeWidgetItem *others =
1283  new QTreeWidgetItem( mTreeWidget, QStringList(
1284  i18nc( "@title:group", "Other Plugins" ) ) );
1285 
1286  KService::List::ConstIterator it;
1287  KService::List::ConstIterator end(plugins.constEnd());
1288  for ( it = plugins.constBegin(); it != end; ++it ) {
1289  QTreeWidgetItem *item = 0;
1290  if ( (*it)->hasServiceType( EventViews::CalendarDecoration::Decoration::serviceType() ) ) {
1291  item = new PluginItem( decorations, *it );
1292  } else if ( !(*it)->hasServiceType( QLatin1String( "KOrganizer/PrintPlugin" ) ) ) {
1293  // we specifically skip print plugins since we no longer support them
1294  item = new PluginItem( others, *it );
1295  } else {
1296  continue;
1297  }
1298  if ( selectedPlugins.contains( (*it)->desktopEntryName() ) ) {
1299  item->setCheckState( 0, Qt::Checked );
1300  } else {
1301  item->setCheckState( 0, Qt::Unchecked );
1302  }
1303  }
1304 
1305  decorations->setExpanded( true );
1306  others->setExpanded( true );
1307 
1308  mDecorationsAtMonthViewTop = KOPrefs::instance()->decorationsAtMonthViewTop().toSet();
1309  mDecorationsAtAgendaViewTop = viewPrefs->decorationsAtAgendaViewTop().toSet();
1310  mDecorationsAtAgendaViewBottom = viewPrefs->decorationsAtAgendaViewBottom().toSet();
1311 }
1312 
1313 void KOPrefsDialogPlugins::usrWriteConfig()
1314 {
1315  QStringList selectedPlugins;
1316 
1317  for ( int i = 0; i < mTreeWidget->topLevelItemCount(); ++i) {
1318  QTreeWidgetItem *serviceTypeGroup = mTreeWidget->topLevelItem( i );
1319  for ( int j = 0; j < serviceTypeGroup->childCount(); ++j) {
1320  PluginItem *item = static_cast<PluginItem *>( serviceTypeGroup->child( j ) );
1321  if( item->checkState( 0 ) == Qt::Checked ) {
1322  selectedPlugins.append( item->service()->desktopEntryName() );
1323  }
1324  }
1325  }
1326  EventViews::PrefsPtr viewPrefs = KOPrefs::instance()->eventViewsPreferences();
1327  viewPrefs->setSelectedPlugins( selectedPlugins );
1328 
1329  KOPrefs::instance()->setDecorationsAtMonthViewTop( mDecorationsAtMonthViewTop.toList() );
1330  viewPrefs->setDecorationsAtAgendaViewTop( mDecorationsAtAgendaViewTop.toList() );
1331  viewPrefs->setDecorationsAtAgendaViewBottom( mDecorationsAtAgendaViewBottom.toList() );
1332 }
1333 
1334 void KOPrefsDialogPlugins::configure()
1335 {
1336  if ( mTreeWidget->selectedItems().count() != 1 ) {
1337  return;
1338  }
1339 
1340  PluginItem *item = static_cast<PluginItem *>( mTreeWidget->selectedItems().last() );
1341  if ( !item ) {
1342  return;
1343  }
1344 
1345  CalendarSupport::Plugin *plugin = KOCore::self()->loadPlugin( item->service() );
1346 
1347  if ( plugin ) {
1348  plugin->configure( this );
1349  delete plugin;
1350 
1351  slotWidChanged();
1352  } else {
1353  KMessageBox::sorry( this,
1354  i18nc( "@info", "Unable to configure this plugin" ),
1355  QLatin1String("PluginConfigUnable") );
1356  }
1357 }
1358 
1359 void KOPrefsDialogPlugins::positioningChanged()
1360 {
1361  if ( mTreeWidget->selectedItems().count() != 1 ) {
1362  return;
1363  }
1364 
1365  PluginItem *item = dynamic_cast<PluginItem*>( mTreeWidget->selectedItems().last() );
1366  if ( !item ) {
1367  return;
1368  }
1369 
1370  QString decoration = item->service()->desktopEntryName();
1371 
1372  /*if ( mPositionMonthTop->checkState() == Qt::Checked ) {
1373  if ( !mDecorationsAtMonthViewTop.contains( decoration ) ) {
1374  mDecorationsAtMonthViewTop.insert( decoration );
1375  }
1376  } else {
1377  mDecorationsAtMonthViewTop.remove( decoration );
1378  }*/
1379 
1380  if ( mPositionAgendaTop->isChecked() ) {
1381  if ( !mDecorationsAtAgendaViewTop.contains( decoration ) ) {
1382  mDecorationsAtAgendaViewTop.insert( decoration );
1383  }
1384  } else {
1385  mDecorationsAtAgendaViewTop.remove( decoration );
1386  }
1387 
1388  if ( mPositionAgendaBottom->isChecked() ) {
1389  if ( !mDecorationsAtAgendaViewBottom.contains( decoration ) ) {
1390  mDecorationsAtAgendaViewBottom.insert( decoration );
1391  }
1392  } else {
1393  mDecorationsAtAgendaViewBottom.remove( decoration );
1394  }
1395 
1396  slotWidChanged();
1397 }
1398 
1399 void KOPrefsDialogPlugins::selectionChanged()
1400 {
1401  mPositioningGroupBox->hide();
1402  //mPositionMonthTop->setChecked( false );
1403  mPositionAgendaTop->setChecked( false );
1404  mPositionAgendaBottom->setChecked( false );
1405 
1406  if ( mTreeWidget->selectedItems().count() != 1 ) {
1407  mConfigureButton->setEnabled( false );
1408  mDescription->setText( QString() );
1409  return;
1410  }
1411 
1412  PluginItem *item = dynamic_cast<PluginItem*>( mTreeWidget->selectedItems().last() );
1413  if ( !item ) {
1414  mConfigureButton->setEnabled( false );
1415  mDescription->setText( QString() );
1416  return;
1417  }
1418 
1419  QVariant variant = item->service()->property( QLatin1String("X-KDE-KOrganizer-HasSettings") );
1420 
1421  bool hasSettings = true;
1422  if ( variant.isValid() ) {
1423  hasSettings = variant.toBool();
1424  }
1425 
1426  mDescription->setText( item->service()->comment() );
1427  if ( !hasSettings ) {
1428  mConfigureButton->hide();
1429  } else {
1430  mConfigureButton->show();
1431  mConfigureButton->setEnabled( item->checkState(0) == Qt::Checked );
1432  }
1433 
1434  bool hasPosition = false;
1435  if ( item->service()->hasServiceType(
1436  EventViews::CalendarDecoration::Decoration::serviceType() ) ) {
1437  QString decoration = item->service()->desktopEntryName();
1438  /*if ( mDecorationsAtMonthViewTop.contains( decoration ) ) {
1439  mPositionMonthTop->setChecked( true );
1440  hasPosition = true;
1441  }*/
1442  if ( mDecorationsAtAgendaViewTop.contains( decoration ) ) {
1443  mPositionAgendaTop->setChecked( true );
1444  hasPosition = true;
1445  }
1446  if ( mDecorationsAtAgendaViewBottom.contains( decoration ) ) {
1447  mPositionAgendaBottom->setChecked( true );
1448  hasPosition = true;
1449  }
1450 
1451  if ( !hasPosition ) {
1452  // no position has been selected, so default to Agenda Top
1453  mDecorationsAtAgendaViewTop << decoration;
1454  mPositionAgendaTop->setChecked( true );
1455  }
1456 
1457  mPositioningGroupBox->setEnabled( item->checkState(0) == Qt::Checked );
1458  mPositioningGroupBox->show();
1459  }
1460 
1461  slotWidChanged();
1462 }
1463 
1464 extern "C"
1465 {
1466  KDE_EXPORT KCModule *create_korganizerconfigplugins( QWidget *parent, const char * )
1467  {
1468  return new KOPrefsDialogPlugins( KOGlobals::self()->componentData(), parent );
1469  }
1470 }
1471 
1474 
1475 extern "C"
1476 {
1477  KDE_EXPORT KCModule *create_korgdesignerfields( QWidget *parent, const char * ) {
1478  return new KOPrefsDesignerFields( KOGlobals::self()->componentData(), parent );
1479  }
1480 }
1481 
1482 KOPrefsDesignerFields::KOPrefsDesignerFields( const KComponentData &inst, QWidget *parent )
1483  : KCMDesignerFields( inst, parent )
1484 {
1485 }
1486 
1487 QString KOPrefsDesignerFields::localUiDir()
1488 {
1489  const QString dir = KStandardDirs::locateLocal( "data", QLatin1String("korganizer/designer/event/") );
1490  return dir;
1491 }
1492 
1493 QString KOPrefsDesignerFields::uiPath()
1494 {
1495  return QLatin1String("korganizer/designer/event/");
1496 }
1497 
1498 void KOPrefsDesignerFields::writeActivePages( const QStringList &activePages )
1499 {
1500  CalendarSupport::KCalPrefs::instance()->setActiveDesignerFields( activePages );
1501  CalendarSupport::KCalPrefs::instance()->writeConfig();
1502 }
1503 
1504 QStringList KOPrefsDesignerFields::readActivePages()
1505 {
1506  return CalendarSupport::KCalPrefs::instance()->activeDesignerFields();
1507 }
1508 
1509 QString KOPrefsDesignerFields::applicationName()
1510 {
1511  return QLatin1String("KORGANIZER");
1512 }
1513 
QSizePolicy::setVerticalStretch
void setVerticalStretch(uchar stretchFactor)
QSpacerItem
kitemiconcheckcombo.h
QWidget
KOPrefsDesignerFields
Definition: koprefsdialog.h:146
QHash::insert
iterator insert(const Key &key, const T &value)
koglobals.h
create_korganizerconfigmain
KCModule * create_korganizerconfigmain(QWidget *parent, const char *)
Definition: koprefsdialog.cpp:219
KOPrefs::setResourceColor
void setResourceColor(const QString &, const QColor &)
Definition: koprefs.cpp:105
KOCore::availablePlugins
KService::List availablePlugins()
Definition: kocore.cpp:67
QHash::key
const Key key(const T &value) const
create_korganizerconfigplugins
KCModule * create_korganizerconfigplugins(QWidget *parent, const char *)
Definition: koprefsdialog.cpp:1466
QGridLayout::addWidget
void addWidget(QWidget *widget, int row, int column, QFlags< Qt::AlignmentFlag > alignment)
QTreeWidgetItem::child
QTreeWidgetItem * child(int index) const
KOPrefsDialogPlugins::positioningChanged
void positioningChanged()
Definition: koprefsdialog.cpp:1359
KOPrefs::eventViewsPreferences
EventViews::PrefsPtr eventViewsPreferences() const
Definition: koprefs.cpp:135
QFrame::setFrameShape
void setFrameShape(Shape)
koprefsdialog.h
KOPrefsDesignerFields::uiPath
QString uiPath()
Definition: koprefsdialog.cpp:1493
KOPrefsDialogGroupwareScheduling::usrWriteConfig
void usrWriteConfig()
Definition: koprefsdialog.cpp:1130
KOPrefsDialogPlugins::selectionChanged
void selectionChanged()
Definition: koprefsdialog.cpp:1399
QSizePolicy
QMap
QStringList::contains
bool contains(const QString &str, Qt::CaseSensitivity cs) const
KOPrefsDialogPlugins
Definition: koprefsdialog.h:116
KOPrefsDialogColorsAndFonts::updateCategories
void updateCategories()
Definition: koprefsdialog.cpp:920
QHBoxLayout
QLabel::setAlignment
void setAlignment(QFlags< Qt::AlignmentFlag >)
create_korganizerconfigcolorsandfonts
KCModule * create_korganizerconfigcolorsandfonts(QWidget *parent, const char *)
Definition: koprefsdialog.cpp:984
KOPrefsDesignerFields::localUiDir
QString localUiDir()
Definition: koprefsdialog.cpp:1487
QGridLayout
KOPrefs
Definition: koprefs.h:33
KOPrefsDialogPlugins::configure
void configure()
Definition: koprefsdialog.cpp:1334
KOPrefsDesignerFields::readActivePages
QStringList readActivePages()
Definition: koprefsdialog.cpp:1504
QSet::insert
const_iterator insert(const T &value)
create_korganizerconfiggroupscheduling
KCModule * create_korganizerconfiggroupscheduling(QWidget *parent, const char *)
Definition: koprefsdialog.cpp:1038
KOPrefsDialogGroupScheduling::usrWriteConfig
void usrWriteConfig()
Definition: koprefsdialog.cpp:1032
KOPrefsDialogGroupScheduling::KOPrefsDialogGroupScheduling
KOPrefsDialogGroupScheduling(const KComponentData &inst, QWidget *parent)
Definition: koprefsdialog.cpp:993
QTime
create_korgdesignerfields
KCModule * create_korgdesignerfields(QWidget *parent, const char *)
Definition: koprefsdialog.cpp:1477
KOGlobals::holidays
KHolidays::HolidayRegion * holidays() const
return the HolidayRegion object or 0 if none has been defined
Definition: koglobals.cpp:136
QGridLayout::setSpacing
void setSpacing(int spacing)
KOPrefsDialogGroupwareScheduling::usrReadConfig
void usrReadConfig()
Definition: koprefsdialog.cpp:1099
QTreeWidget::clear
void clear()
KOPrefsDialogColorsAndFonts::setResourceColor
void setResourceColor()
Definition: koprefsdialog.cpp:949
KOPrefsDialogColorsAndFonts::setCategoryColor
void setCategoryColor()
Definition: koprefsdialog.cpp:925
QWidget::setMinimumSize
void setMinimumSize(const QSize &)
QTreeWidget
KOPrefsDialogColorsAndFonts::updateResourceColor
void updateResourceColor()
Definition: koprefsdialog.cpp:963
KOPrefsDialogGroupwareScheduling::KOPrefsDialogGroupwareScheduling
KOPrefsDialogGroupwareScheduling(const KComponentData &inst, QWidget *parent)
Definition: koprefsdialog.cpp:1047
QWidget::setEnabled
void setEnabled(bool)
QBoxLayout::addWidget
void addWidget(QWidget *widget, int stretch, QFlags< Qt::AlignmentFlag > alignment)
QString::number
QString number(int n, int base)
QList::append
void append(const T &value)
QMapIterator
QGridLayout::setRowStretch
void setRowStretch(int row, int stretch)
QWidget::setLayout
void setLayout(QLayout *layout)
QHash::constEnd
const_iterator constEnd() const
QGroupBox
KOPrefsDesignerFields::applicationName
QString applicationName()
Definition: koprefsdialog.cpp:1509
QHash
koprefs.h
KOPrefsDialogColorsAndFonts::usrWriteConfig
void usrWriteConfig()
Definition: koprefsdialog.cpp:896
KOPrefsDialogColorsAndFonts::usrReadConfig
void usrReadConfig()
Definition: koprefsdialog.cpp:913
create_korganizerconfigviews
KCModule * create_korganizerconfigviews(QWidget *parent, const char *)
Definition: koprefsdialog.cpp:720
QCheckBox
QBoxLayout::addItem
virtual void addItem(QLayoutItem *item)
QObject::setObjectName
void setObjectName(const QString &name)
QString::isEmpty
bool isEmpty() const
create_korganizerconfigtime
KCModule * create_korganizerconfigtime(QWidget *parent, const char *)
Definition: koprefsdialog.cpp:511
QVBoxLayout
QLabel::setText
void setText(const QString &)
QString
QWidget::hide
void hide()
QColor
KOCore::availableParts
KService::List availableParts()
Definition: kocore.cpp:79
QTreeWidget::setColumnCount
void setColumnCount(int columns)
QWidget::sizePolicy
sizePolicy
QFormLayout::addRow
void addRow(QWidget *label, QWidget *field)
QStringList
KOCore::loadPlugin
CalendarSupport::Plugin * loadPlugin(KService::Ptr service)
Definition: kocore.cpp:84
QHash::value
const T value(const Key &key) const
KOPrefsDialogGroupScheduling
Definition: koprefsdialog.h:88
QSize
KOPrefsDesignerFields::writeActivePages
void writeActivePages(const QStringList &)
Definition: koprefsdialog.cpp:1498
KOPrefsDialogColorsAndFonts::KOPrefsDialogColorsAndFonts
KOPrefsDialogColorsAndFonts(const KComponentData &inst, QWidget *parent)
Definition: koprefsdialog.cpp:729
QLatin1Char
KOPrefsDialogMain::usrWriteConfig
void usrWriteConfig()
Definition: koprefsdialog.cpp:198
QFrame
QSet::contains
bool contains(const T &value) const
KOPrefsDialogColorsAndFonts::updateResources
void updateResources()
Definition: koprefsdialog.cpp:944
QFrame::setFrameShadow
void setFrameShadow(Shadow)
KOGlobals::calendarSystem
const KCalendarSystem * calendarSystem() const
Definition: koglobals.cpp:65
KOGlobals::self
static KOGlobals * self()
Definition: koglobals.cpp:43
QTreeWidget::selectedItems
QList< QTreeWidgetItem * > selectedItems() const
QAbstractButton::isChecked
bool isChecked() const
QTreeWidget::setHeaderLabel
void setHeaderLabel(const QString &label)
QGridLayout::addLayout
void addLayout(QLayout *layout, int row, int column, QFlags< Qt::AlignmentFlag > alignment)
KOPrefsDialogMain::toggleEmailSettings
void toggleEmailSettings(bool on)
Definition: koprefsdialog.cpp:204
KOPrefsDialogPlugins::KOPrefsDialogPlugins
KOPrefsDialogPlugins(const KComponentData &inst, QWidget *parent)
Dialog for selecting and configuring KOrganizer plugins.
Definition: koprefsdialog.cpp:1199
QHash::constBegin
const_iterator constBegin() const
QTreeWidgetItem::setExpanded
void setExpanded(bool expand)
KOPrefsDialogPlugins::usrReadConfig
void usrReadConfig()
Definition: koprefsdialog.cpp:1269
QTreeWidgetItem::setCheckState
void setCheckState(int column, Qt::CheckState state)
KOPrefsDialogGroupScheduling::usrReadConfig
void usrReadConfig()
Definition: koprefsdialog.cpp:1028
QWidget::setWhatsThis
void setWhatsThis(const QString &)
QSet::remove
bool remove(const T &value)
KOPrefsDialogColorsAndFonts::updateCategoryColor
void updateCategoryColor()
Definition: koprefsdialog.cpp:931
QTest::toString
char * toString(const T &value)
QTreeWidgetItem
QLatin1String
QBoxLayout::addStretch
void addStretch(int stretch)
create_korganizerconfigfreebusy
KCModule * create_korganizerconfigfreebusy(QWidget *parent, const char *)
Definition: koprefsdialog.cpp:1170
QRadioButton
KItemIconCheckCombo
Definition: kitemiconcheckcombo.h:29
QGridLayout::setColumnStretch
void setColumnStretch(int column, int stretch)
KOPrefsDialogGroupwareScheduling::~KOPrefsDialogGroupwareScheduling
~KOPrefsDialogGroupwareScheduling()
Definition: koprefsdialog.cpp:1094
KOPrefsDialogPlugins::usrWriteConfig
void usrWriteConfig()
Definition: koprefsdialog.cpp:1313
QVariant::toBool
bool toBool() const
KOPrefsDialogMain
Definition: koprefsdialog.h:43
KOPrefs::instance
static KOPrefs * instance()
Get instance of KOPrefs.
Definition: koprefs.cpp:68
QAbstractButton::setText
void setText(const QString &text)
QSet::toList
QList< T > toList() const
QVariant::isValid
bool isValid() const
QMap::insert
iterator insert(const Key &key, const T &value)
QSizePolicy::setHorizontalStretch
void setHorizontalStretch(uchar stretchFactor)
QWidget::show
void show()
KOPrefsDialogMain::KOPrefsDialogMain
KOPrefsDialogMain(const KComponentData &inst, QWidget *parent)
Definition: koprefsdialog.cpp:81
QtConcurrent::filter
QFuture< void > filter(Sequence &sequence, FilterFunction filterFunction)
QTreeWidget::topLevelItem
QTreeWidgetItem * topLevelItem(int index) const
KOPrefsDialogGroupwareScheduling
Definition: koprefsdialog.h:101
KOPrefsDesignerFields::KOPrefsDesignerFields
KOPrefsDesignerFields(const KComponentData &inst, QWidget *parent=0)
Definition: koprefsdialog.cpp:1482
QTreeWidget::topLevelItemCount
topLevelItemCount
QLabel
QTreeWidgetItem::childCount
int childCount() const
KOPrefs::resourceColor
QColor resourceColor(const QString &)
Definition: koprefs.cpp:110
QBoxLayout
KCModule
QLabel::setWordWrap
void setWordWrap(bool on)
kocore.h
QBoxLayout::setSpacing
void setSpacing(int spacing)
KOCore::self
static KOCore * self()
Definition: kocore.cpp:37
QSizePolicy::setHeightForWidth
void setHeightForWidth(bool dependent)
QColor::isValid
bool isValid() const
QBoxLayout::addLayout
void addLayout(QLayout *layout, int stretch)
KCMDesignerFields
Definition: kcmdesignerfields.h:35
QFormLayout
KOPrefsDialogColorsAndFonts
Definition: koprefsdialog.h:59
QVariant
This file is part of the KDE documentation.
Documentation copyright © 1996-2020 The KDE developers.
Generated on Mon Jun 22 2020 13:32:59 by doxygen 1.8.7 written by Dimitri van Heesch, © 1997-2006

KDE's Doxygen guidelines are available online.

korganizer

Skip menu "korganizer"
  • Main Page
  • Namespace List
  • Namespace Members
  • Alphabetical List
  • Class List
  • Class Hierarchy
  • Class Members
  • File List
  • File Members
  • Related Pages

kdepim API Reference

Skip menu "kdepim API Reference"
  • akonadi_next
  • akregator
  • blogilo
  • calendarsupport
  • console
  •   kabcclient
  •   konsolekalendar
  • kaddressbook
  • kalarm
  •   lib
  • kdgantt2
  • kjots
  • kleopatra
  • kmail
  • knode
  • knotes
  • kontact
  • korgac
  • korganizer
  • ktimetracker
  • libkdepim
  • libkleo
  • libkpgp
  • mailcommon
  • messagelist
  • messageviewer
  • pimprint

Search



Report problems with this website to our bug tracking system.
Contact the specific authors with questions and comments about the page contents.

KDE® and the K Desktop Environment® logo are registered trademarks of KDE e.V. | Legal