File indexing completed on 2024-05-12 05:14:54
0001 /* 0002 * prefdlg.h - program preferences dialog 0003 * Program: kalarm 0004 * SPDX-FileCopyrightText: 2001-2022 David Jarvie <djarvie@kde.org> 0005 * 0006 * SPDX-License-Identifier: GPL-2.0-or-later 0007 */ 0008 0009 #pragma once 0010 0011 #include <KPageDialog> 0012 0013 class EditPrefTab; 0014 class EmailPrefTab; 0015 class ViewPrefTab; 0016 class StorePrefTab; 0017 class TimePrefTab; 0018 class MiscPrefTab; 0019 class StackedScrollGroup; 0020 0021 0022 // The Preferences dialog 0023 class KAlarmPrefDlg : public KPageDialog 0024 { 0025 Q_OBJECT 0026 public: 0027 static void display(); 0028 ~KAlarmPrefDlg() override; 0029 QSize minimumSizeHint() const override; 0030 void accept() override; 0031 0032 protected: 0033 void showEvent(QShowEvent*) override; 0034 void resizeEvent(QResizeEvent*) override; 0035 0036 protected Q_SLOTS: 0037 virtual void slotOk(); 0038 virtual void slotApply(); 0039 virtual void slotHelp(); 0040 virtual void slotDefault(); 0041 virtual void slotCancel(); 0042 void slotTabChanged(KPageWidgetItem*); 0043 0044 private: 0045 KAlarmPrefDlg(); 0046 void apply(); 0047 void restore(bool defaults); 0048 void restoreTab(); 0049 0050 static KAlarmPrefDlg* mInstance; 0051 enum TabType { AnyTab, Misc, Time, Store, Edit, Email, View }; 0052 static TabType mLastTab; 0053 StackedScrollGroup* mTabScrollGroup; 0054 0055 MiscPrefTab* mMiscPage; 0056 TimePrefTab* mTimePage; 0057 StorePrefTab* mStorePage; 0058 EditPrefTab* mEditPage; 0059 EmailPrefTab* mEmailPage; 0060 ViewPrefTab* mViewPage; 0061 0062 KPageWidgetItem* mMiscPageItem; 0063 KPageWidgetItem* mTimePageItem; 0064 KPageWidgetItem* mStorePageItem; 0065 KPageWidgetItem* mEditPageItem; 0066 KPageWidgetItem* mEmailPageItem; 0067 KPageWidgetItem* mViewPageItem; 0068 0069 bool mShown {false}; 0070 bool mValid; 0071 }; 0072 0073 // vim: et sw=4: