1 /*************************************************************************** 2 * * 3 * This program is free software; you can redistribute it and/or modify * 4 * it under the terms of the GNU General Public License as published by * 5 * the Free Software Foundation; either version 2 of the License, or * 6 * (at your option) any later version. * 7 * * 8 ***************************************************************************/ 9 10 /* 11 For general Scribus (>=1.3.2) copyright and licensing information please refer 12 to the COPYING file provided with the program. Following this notice may exist 13 a copyright and/or license notice that predates the release of Scribus 1.3.2 14 for which a new license (GPL+exception) is in place. 15 */ 16 17 #ifndef APPMODEHELPER_H 18 #define APPMODEHELPER_H 19 20 #include <QMap> 21 #include <QObject> 22 #include <QPointer> 23 #include <QString> 24 #include "actionmanager.h" 25 #include "appmodes.h" 26 #include "scraction.h" 27 28 class PageItem; 29 30 class AppModeHelper : public QObject 31 { 32 Q_OBJECT 33 34 friend class ActionManager; 35 friend class ScribusMainWindow; 36 37 public: 38 explicit AppModeHelper(QObject *parent = nullptr); 39 void setup(ActionManager* am, QMap<QString, QPointer<ScrAction> > *, QMap<QString, QPointer<ScrAction> > *, QMap<QString, QPointer<ScrAction> > *, QMap<QString, QPointer<ScrAction> > *, QMap<QString, QPointer<ScrAction> > *, QMap<QString, QPointer<ScrAction> > *); 40 void resetApplicationMode(int newMode); 41 void setApplicationMode(ScribusMainWindow* scmw, ScribusDoc* doc, int newMode); 42 void enableActionsForSelection(ScribusMainWindow* scmw, ScribusDoc *doc); 43 void setModeActionsPerMode(int newMode); 44 void setActionGroupEnabled(QMap<QString, QPointer<ScrAction> > *, bool enabled); 45 void setTextEditMode(bool b); 46 void setSpecialEditMode(bool b); 47 void setFrameEditMode(bool b); 48 void setSymbolEditMode(bool b, ScribusDoc* doc); 49 void setInlineEditMode(bool b, ScribusDoc* doc); 50 void setMasterPageEditMode(bool b, ScribusDoc *doc); 51 void updateActionPluginsActions(ScribusDoc* doc); 52 void updateTableMenuActions(ScribusDoc* doc); 53 void changeLayer(ScribusDoc *doc, bool clipScrapHaveData); 54 void mainWindowHasNewDoc(ScribusDoc *doc, bool clipScrapHaveData); 55 void mainWindowSwitchWin(ScribusDoc *doc); 56 void mainWindowCloseLastDoc(); 57 void setPreviewMode(bool b); 58 //! \brief enable or disable the unicode actions and their menus 59 void enableTextActions(bool enabled, const QString& fontName=QString()); 60 void setStartupActionsEnabled(bool enabled); 61 62 63 signals: 64 void AppModeChanged(int oldMode, int newMode); 65 void UpdateRequest(int updateFlags); 66 67 private: 68 QMap<QString, QPointer<ScrAction> > *a_scrActions {nullptr}; 69 QMap<QString, QPointer<ScrAction> > *a_scrRecentFileActions {nullptr}; 70 QMap<QString, QPointer<ScrAction> > *a_scrWindowsActions {nullptr}; 71 QMap<QString, QPointer<ScrAction> > *a_scrScrapActions {nullptr}; 72 QMap<QString, QPointer<ScrAction> > *a_scrLayersActions {nullptr}; 73 QMap<QString, QPointer<ScrAction> > *a_scrRecentPasteActions {nullptr}; 74 ActionManager* a_actMgr {nullptr}; 75 }; 76 77 #endif // APPMODEHELPER_H 78