diff options
| author | craig <craig@11d20701-8431-0410-a711-e3c959e3b870> | 2012-01-01 11:40:09 +0000 |
|---|---|---|
| committer | craig <craig@11d20701-8431-0410-a711-e3c959e3b870> | 2012-01-01 11:40:09 +0000 |
| commit | 7ed83b6c6666eb8b6b104c211ae7e52907350372 (patch) | |
| tree | 4430b556abac0ad660a0aacf1887d77f85d8be02 /scribus/actionmanager.h | |
| download | scribus-7ed83b6c6666eb8b6b104c211ae7e52907350372.tar.gz scribus-7ed83b6c6666eb8b6b104c211ae7e52907350372.tar.xz scribus-7ed83b6c6666eb8b6b104c211ae7e52907350372.zip | |
Branch 1.3.5 tree to 1.4.x tree, goodbye 1.3.x
git-svn-id: svn://scribus.net/branches/Version14x/Scribus@17163 11d20701-8431-0410-a711-e3c959e3b870
Diffstat (limited to 'scribus/actionmanager.h')
| -rw-r--r-- | scribus/actionmanager.h | 126 |
1 files changed, 126 insertions, 0 deletions
diff --git a/scribus/actionmanager.h b/scribus/actionmanager.h new file mode 100644 index 0000000..d2e161d --- /dev/null +++ b/scribus/actionmanager.h @@ -0,0 +1,126 @@ +/* +For general Scribus (>=1.3.2) copyright and licensing information please refer +to the COPYING file provided with the program. Following this notice may exist +a copyright and/or license notice that predates the release of Scribus 1.3.2 +for which a new license (GPL+exception) is in place. +*/ +/*************************************************************************** + begin : Jan 2005 + copyright : (C) 2005 by Craig Bradney + email : cbradney@zip.com.au + ***************************************************************************/ + +/*************************************************************************** + * * + * This program is free software; you can redistribute it and/or modify * + * it under the terms of the GNU General Public License as published by * + * the Free Software Foundation; either version 2 of the License, or * + * (at your option) any later version. * + * * + ***************************************************************************/ +#ifndef ACTIONMANAGER_H +#define ACTIONMANAGER_H + +#include <QKeySequence> +#include <QObject> +#include <QString> +#include <QStringList> +#include <QMap> +#include <QPair> +#include <QVector> +#include <QPointer> +#include <QMultiHash> +#include <QPixmap> +#include <QActionGroup> + +class QEvent; + +#include "scribusapi.h" +#include "scraction.h" + +class ScribusDoc; +class ScribusMainWindow; +class ScribusQApp; +class ScribusView; +class UndoManager; +/** +@author Craig Bradney +*/ +class SCRIBUS_API ActionManager : public QObject +{ + Q_OBJECT + + friend class StoryEditor; + public: + ActionManager ( QObject * parent ); + ~ActionManager(); + + virtual void changeEvent(QEvent *e); + + void init(ScribusMainWindow *); + static void createDefaultShortcuts(); + static QMap<QString, QKeySequence>* defaultShortcuts() {return &defKeys;}; + static void createDefaultMenus(); + static void createDefaultMenuNames(); + static void createDefaultNonMenuActions(); + static void createDefaultNonMenuNames(); + static QVector< QPair<QString, QStringList> >* defaultMenuNames() {return &defMenuNames;}; + static QVector< QPair<QString, QStringList> >* defaultNonMenuNames() {return &defNonMenuNames;}; + static QString defaultMenuNameEntryTranslated(const QString& index); + static QVector< QPair<QString, QStringList> >* defaultMenus() {return &defMenus;}; + static QVector< QPair<QString, QStringList> >* defaultNonMenuActions() {return &defNonMenuActions;}; + void createActions(); + void disconnectModeActions(); + void connectModeActions(); + void disconnectNewViewActions(); + void connectNewViewActions(ScribusView *); + void disconnectNewDocActions(); + void connectNewDocActions(ScribusDoc *); + void disconnectNewSelectionActions(); + void connectNewSelectionActions(ScribusView *,ScribusDoc *); + void saveActionShortcutsPreEditMode(); + void restoreActionShortcutsPostEditMode(); + void enableActionStringList(QMap<QString, QPointer<ScrAction> > *actionMap, QStringList *list, bool enabled, bool checkingUnicode=false, const QString& fontName=QString::null); + void enableUnicodeActions(QMap<QString, QPointer<ScrAction> > *actionMap, bool enabled, const QString& fontName=QString::null); + void setPDFActions(ScribusView *); + + public slots: + void languageChange(); + void handleMultipleSelections(bool isMultiple); + + protected: + void initFileMenuActions(); + void initEditMenuActions(); + void initStyleMenuActions(); + void initItemMenuActions(); + void initInsertMenuActions(); + void initPageMenuActions(); + void initViewMenuActions(); + void initToolsMenuActions(); + void initExtrasMenuActions(); + void initWindowsMenuActions(); + void initScriptMenuActions(); + void initHelpMenuActions(); + static void initUnicodeActions(QMap<QString, QPointer<ScrAction> > *actionMap, QWidget *actionParent, QStringList *actionNamesList); + void initSpecialActions(); + static void languageChangeUnicodeActions(QMap<QString, QPointer<ScrAction> > *actionMap); + void languageChangeActions(); + static QKeySequence defaultKey(const QString &actionName); + + QPixmap noIcon; + ScribusMainWindow *mainWindow; + ScribusQApp *ScQApp; + UndoManager *undoManager; + QMap<QString, QPointer<ScrAction> > *scrActions; + QMultiHash<QString, QActionGroup*> *scrActionGroups; + QStringList *modeActionNames; + QStringList *nonEditActionNames; + QStringList *unicodeCharActionNames; + static QMap<QString, QKeySequence> defKeys; + static QVector< QPair<QString, QStringList> > defMenuNames; + static QVector< QPair<QString, QStringList> > defMenus; + static QVector< QPair<QString, QStringList> > defNonMenuNames; + static QVector< QPair<QString, QStringList> > defNonMenuActions; +}; + +#endif |
