summaryrefslogtreecommitdiffstats
path: root/scribus/actionmanager.h
diff options
context:
space:
mode:
authorcraig <craig@11d20701-8431-0410-a711-e3c959e3b870>2012-01-01 11:40:09 +0000
committercraig <craig@11d20701-8431-0410-a711-e3c959e3b870>2012-01-01 11:40:09 +0000
commit7ed83b6c6666eb8b6b104c211ae7e52907350372 (patch)
tree4430b556abac0ad660a0aacf1887d77f85d8be02 /scribus/actionmanager.h
downloadscribus-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.h126
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