File indexing completed on 2024-06-02 05:26:13
0001 /* 0002 This file is part of KOrganizer. 0003 0004 SPDX-FileCopyrightText: 2000-2003 Cornelius Schumacher <schumacher@kde.org> 0005 SPDX-FileCopyrightText: 2003-2004 Reinhold Kainhofer <reinhold@kainhofer.com> 0006 0007 SPDX-License-Identifier: GPL-2.0-or-later WITH Qt-Commercial-exception-1.0 0008 */ 0009 0010 #include "koprefsdialogmain.h" 0011 #include "koprefs.h" 0012 #include <KPluginFactory> 0013 #include <QFormLayout> 0014 #include <QGroupBox> 0015 #include <QTabWidget> 0016 #include <QVBoxLayout> 0017 0018 #include <CalendarSupport/KCalPrefs> 0019 0020 #include <Akonadi/ManageAccountWidget> 0021 #include <IncidenceEditor/IncidenceEditorSettings> 0022 #include <akonadi/calendarsettings.h> 0023 0024 #include <KLocalizedString> 0025 #include <QCheckBox> 0026 #include <QLabel> 0027 0028 K_PLUGIN_CLASS_WITH_JSON(KOPrefsDialogMain, "korganizer_configmain.json") 0029 0030 KOPrefsDialogMain::KOPrefsDialogMain(QObject *parent, const KPluginMetaData &data) 0031 : Korganizer::KPrefsModule(KOPrefs::instance(), parent, data) 0032 { 0033 auto topTopLayout = new QVBoxLayout(widget()); 0034 topTopLayout->setContentsMargins({}); 0035 auto tabWidget = new QTabWidget(widget()); 0036 tabWidget->setDocumentMode(true); 0037 topTopLayout->addWidget(tabWidget); 0038 0039 // Personal Settings 0040 auto personalFrame = new QWidget(widget()); 0041 auto personalLayout = new QVBoxLayout(personalFrame); 0042 tabWidget->addTab(personalFrame, QIcon::fromTheme(QStringLiteral("preferences-desktop-personal")), i18nc("@title:tab personal settings", "Personal")); 0043 0044 Korganizer::KPrefsWidBool *emailControlCenter = addWidBool(CalendarSupport::KCalPrefs::instance()->emailControlCenterItem(), personalFrame); 0045 connect(emailControlCenter->checkBox(), &QAbstractButton::toggled, this, &KOPrefsDialogMain::toggleEmailSettings); 0046 personalLayout->addWidget(emailControlCenter->checkBox()); 0047 0048 mUserEmailSettings = new QGroupBox(i18nc("@title:group email settings", "Email Settings"), personalFrame); 0049 0050 personalLayout->addWidget(mUserEmailSettings); 0051 auto emailSettingsLayout = new QFormLayout(mUserEmailSettings); 0052 Korganizer::KPrefsWidString *s = addWidString(CalendarSupport::KCalPrefs::instance()->userNameItem(), mUserEmailSettings); 0053 emailSettingsLayout->addRow(s->label(), s->lineEdit()); 0054 0055 s = addWidString(CalendarSupport::KCalPrefs::instance()->userEmailItem(), mUserEmailSettings); 0056 emailSettingsLayout->addRow(s->label(), s->lineEdit()); 0057 0058 Korganizer::KPrefsWidRadios *defaultEmailAttachMethod = 0059 addWidRadios(IncidenceEditorNG::IncidenceEditorSettings::self()->defaultEmailAttachMethodItem(), personalFrame); 0060 personalLayout->addWidget(defaultEmailAttachMethod->groupBox()); 0061 0062 auto remindersGroup = new QGroupBox(i18nc("@title:group", "Reminders"), personalFrame); 0063 auto remindersLayout = new QFormLayout(remindersGroup); 0064 Korganizer::KPrefsWidBool *onlyMyReminders = addWidBool(Akonadi::CalendarSettings::self()->onlyShowRemindersForMyEventsItem(), remindersGroup); 0065 remindersLayout->addWidget(onlyMyReminders->checkBox()); 0066 personalLayout->addWidget(remindersGroup); 0067 personalLayout->addStretch(1); 0068 0069 // Save Settings 0070 auto saveFrame = new QFrame(widget()); 0071 tabWidget->addTab(saveFrame, QIcon::fromTheme(QStringLiteral("document-save")), i18nc("@title:tab", "Save")); 0072 auto saveLayout = new QVBoxLayout(saveFrame); 0073 0074 Korganizer::KPrefsWidBool *confirmItem = addWidBool(KOPrefs::instance()->confirmItem(), saveFrame); 0075 saveLayout->addWidget(confirmItem->checkBox()); 0076 Korganizer::KPrefsWidRadios *destinationItem = addWidRadios(KOPrefs::instance()->destinationItem(), saveFrame); 0077 0078 saveLayout->addWidget(destinationItem->groupBox()); 0079 saveLayout->addStretch(1); 0080 0081 // Calendar Account 0082 auto calendarFrame = new QFrame(widget()); 0083 tabWidget->addTab(calendarFrame, QIcon::fromTheme(QStringLiteral("office-calendar")), i18nc("@title:tab calendar account settings", "Calendars")); 0084 auto calendarFrameLayout = new QHBoxLayout; 0085 calendarFrame->setLayout(calendarFrameLayout); 0086 auto manageAccountWidget = new Akonadi::ManageAccountWidget(widget()); 0087 manageAccountWidget->setDescriptionLabelText(i18nc("@title", "Calendar Accounts")); 0088 calendarFrameLayout->addWidget(manageAccountWidget); 0089 0090 manageAccountWidget->setMimeTypeFilter(QStringList() << QStringLiteral("text/calendar")); 0091 // show only resources, no agents 0092 manageAccountWidget->setCapabilityFilter(QStringList() << QStringLiteral("Resource")); 0093 0094 load(); 0095 } 0096 0097 void KOPrefsDialogMain::usrWriteConfig() 0098 { 0099 Korganizer::KPrefsModule::usrWriteConfig(); 0100 IncidenceEditorNG::IncidenceEditorSettings::self()->save(); 0101 } 0102 0103 void KOPrefsDialogMain::toggleEmailSettings(bool on) 0104 { 0105 mUserEmailSettings->setEnabled(!on); 0106 /* if (on) { 0107 KEMailSettings settings; 0108 mNameEdit->setText( settings.getSetting(KEMailSettings::RealName) ); 0109 mEmailEdit->setText( settings.getSetting(KEMailSettings::EmailAddress) ); 0110 } else { 0111 mNameEdit->setText( CalendarSupport::KCalPrefs::instance()->mName ); 0112 mEmailEdit->setText( CalendarSupport::KCalPrefs::instance()->mEmail ); 0113 }*/ 0114 } 0115 0116 #include "koprefsdialogmain.moc" 0117 0118 #include "moc_koprefsdialogmain.cpp"