File indexing completed on 2024-05-12 05:20:43
0001 /* 0002 * kmail: KDE mail client 0003 * SPDX-FileCopyrightText: 1996-1998 Stefan Taferner <taferner@kde.org> 0004 * 0005 * SPDX-License-Identifier: GPL-2.0-or-later 0006 * 0007 */ 0008 #pragma once 0009 0010 #include "kmail_export.h" 0011 0012 #include <kxmlguiwindow.h> 0013 0014 class KMMainWidget; 0015 class KToggleAction; 0016 class QLabel; 0017 class KHamburgerMenu; 0018 class KToggleFullScreenAction; 0019 namespace KPIM 0020 { 0021 class ProgressStatusBarWidget; 0022 } 0023 0024 class KMAIL_EXPORT KMMainWin : public KXmlGuiWindow 0025 { 0026 Q_OBJECT 0027 0028 public: 0029 // the main window needs to have a name since else restoring the window 0030 // settings by kwin doesn't work 0031 explicit KMMainWin(QWidget *parent = nullptr); 0032 ~KMMainWin() override; 0033 KMMainWidget *mainKMWidget() const; 0034 0035 /// Same as KMMainWin::restore(), except that it also restores the docked state, 0036 /// which we have saved in saveProperties(). 0037 bool restoreDockedState(int number); 0038 0039 void showAndActivateWindow(); 0040 public Q_SLOTS: 0041 void displayStatusMessage(const QString &); 0042 void slotEditToolbars(); 0043 void slotUpdateGui(); 0044 void setupStatusBar(); 0045 0046 protected: 0047 /// Reimplemented to save the docked state 0048 void saveProperties(KConfigGroup &) override; 0049 0050 bool queryClose() override; 0051 0052 protected Q_SLOTS: 0053 void slotQuit(); 0054 0055 private: 0056 void slotConfigureShortcuts(); 0057 void slotToggleMenubar(bool dontShowWarning); 0058 void updateHamburgerMenu(); 0059 void slotShortcutSaved(); 0060 void slotFullScreen(bool t); 0061 KPIM::ProgressStatusBarWidget *mProgressBar = nullptr; 0062 KMMainWidget *mKMMainWidget = nullptr; 0063 KToggleAction *mShowMenuBarAction = nullptr; 0064 QLabel *const mMessageLabel; 0065 KHamburgerMenu *mHamburgerMenu = nullptr; 0066 KToggleFullScreenAction *mShowFullScreenAction = nullptr; 0067 bool mReallyClose = false; 0068 };