File indexing completed on 2024-04-21 05:54:05
0001 /* 0002 SPDX-FileCopyrightText: 2005-2007, 2010 Tom Albers <toma@kde.org> 0003 0004 SPDX-License-Identifier: GPL-2.0-or-later 0005 */ 0006 0007 #include "setup.h" 0008 0009 // Qt includes. 0010 #include <QIcon> 0011 0012 // KDE includes. 0013 #include <KConfigGroup> 0014 #include <KSharedConfig> 0015 #include <KWindowConfig> 0016 #include <klocalizedstring.h> 0017 0018 // Local includes. 0019 #include "setupgeneral.h" 0020 #include "setupmaximized.h" 0021 #include "setupnotifications.h" 0022 #include "setuptiming.h" 0023 0024 class SetupPriv 0025 { 0026 public: 0027 SetupGeneral *generalPage; 0028 SetupTiming *timingPage; 0029 SetupMaximized *maximizedPage; 0030 SetupNotifications *notificationsPage; 0031 }; 0032 0033 Setup::Setup(QWidget *parent) 0034 : KPageDialog(parent) 0035 { 0036 setFaceType(List); 0037 d = new SetupPriv; 0038 0039 d->generalPage = new SetupGeneral(this); 0040 KPageWidgetItem *page1 = addPage(d->generalPage, i18n("General Settings")); 0041 page1->setIcon(QIcon::fromTheme("configure")); 0042 0043 d->timingPage = new SetupTiming(this); 0044 KPageWidgetItem *page2 = addPage(d->timingPage, i18n("Timings")); 0045 page2->setIcon(QIcon::fromTheme("timings")); 0046 0047 d->maximizedPage = new SetupMaximized(this); 0048 KPageWidgetItem *page3 = addPage(d->maximizedPage, i18n("During Breaks")); 0049 page3->setIcon(QIcon::fromTheme("duringbreaks")); // krazy:exclude=iconnames 0050 0051 d->notificationsPage = new SetupNotifications(this); 0052 KPageWidgetItem *page4 = addPage(d->notificationsPage, i18n("Actions")); 0053 page4->setIcon(QIcon::fromTheme("configure")); // krazy:exclude=iconnames 0054 0055 connect(this, &Setup::accepted, this, &Setup::slotOkClicked); 0056 0057 connect(d->generalPage, &SetupGeneral::useIdleTimerChanged, d->maximizedPage, &SetupMaximized::slotSetUseIdleTimer); 0058 d->maximizedPage->slotSetUseIdleTimer(d->generalPage->useIdleTimer()); 0059 connect(d->generalPage, &SetupGeneral::useIdleTimerChanged, d->timingPage, &SetupTiming::slotSetUseIdleTimer); 0060 d->timingPage->slotSetUseIdleTimer(d->generalPage->useIdleTimer()); 0061 0062 KConfigGroup config = KSharedConfig::openConfig()->group("SetupDimensions"); 0063 KWindowConfig::restoreWindowSize(windowHandle(), config); 0064 show(); 0065 } 0066 0067 Setup::~Setup() 0068 { 0069 KConfigGroup config = KSharedConfig::openConfig()->group("SetupDimensions"); 0070 KWindowConfig::saveWindowSize(windowHandle(), config); 0071 delete d; 0072 } 0073 0074 void Setup::slotOkClicked() 0075 { 0076 d->generalPage->applySettings(); 0077 d->timingPage->applySettings(); 0078 d->maximizedPage->applySettings(); 0079 d->notificationsPage->save(); 0080 close(); 0081 }