summaryrefslogtreecommitdiffstats
path: root/scribus/actionmanager.cpp
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.cpp
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.cpp')
-rw-r--r--scribus/actionmanager.cpp2034
1 files changed, 2034 insertions, 0 deletions
diff --git a/scribus/actionmanager.cpp b/scribus/actionmanager.cpp
new file mode 100644
index 0000000..6e865a2
--- /dev/null
+++ b/scribus/actionmanager.cpp
@@ -0,0 +1,2034 @@
+/*
+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 : Apr 2005
+ copyright : (C) 2005 by Craig Bradney
+ email : cbradney@zip.com.au
+***************************************************************************/
+
+/***************************************************************************
+* *
+* mainWindow 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. *
+* *
+***************************************************************************/
+
+#include "actionmanager.h"
+#include "scribus.h"
+#include "scribuscore.h"
+#include "scribusdoc.h"
+#include "scribusview.h"
+#include "selection.h"
+#include "text/storytext.h"
+#include "undomanager.h"
+#include "urllauncher.h"
+#include "util_icon.h"
+
+
+QMap<QString, QKeySequence> ActionManager::defKeys;
+QVector< QPair<QString, QStringList> > ActionManager::defMenuNames;
+QVector< QPair<QString, QStringList> > ActionManager::defMenus;
+QVector< QPair<QString, QStringList> > ActionManager::defNonMenuNames;
+QVector< QPair<QString, QStringList> > ActionManager::defNonMenuActions;
+
+ActionManager::ActionManager ( QObject * parent ) :
+ QObject ( parent),
+ mainWindow(0)
+{
+}
+
+ActionManager::~ActionManager()
+{
+ while (!scrActions->isEmpty())
+ {
+ ScrAction *value = (*scrActions->begin());
+ scrActions->erase(scrActions->begin());
+ delete value;
+ }
+ scrActions->clear();
+ delete modeActionNames;
+ delete nonEditActionNames;
+ delete unicodeCharActionNames;
+}
+
+void ActionManager::init(ScribusMainWindow *mw)
+{
+ mainWindow=mw;
+ scrActions=&(mainWindow->scrActions);
+ scrActionGroups=&(mainWindow->scrActionGroups);
+ modeActionNames=new QStringList();
+ nonEditActionNames=new QStringList();
+ unicodeCharActionNames=new QStringList();
+ undoManager = UndoManager::instance();
+
+#ifdef Q_WS_MAC
+ noIcon = loadIcon("noicon.xpm");
+#endif
+
+ createActions();
+ createDefaultMenus();
+ createDefaultNonMenuActions();
+ languageChange();
+}
+
+void ActionManager::createActions()
+{
+ initFileMenuActions();
+ initEditMenuActions();
+ initStyleMenuActions();
+ initItemMenuActions();
+ initInsertMenuActions();
+ initPageMenuActions();
+ initViewMenuActions();
+ initToolsMenuActions();
+ initExtrasMenuActions();
+ initWindowsMenuActions();
+ initScriptMenuActions();
+ initHelpMenuActions();
+ initUnicodeActions(scrActions, mainWindow, unicodeCharActionNames);
+ enableUnicodeActions(scrActions, false);
+ initSpecialActions();
+
+}
+
+void ActionManager::initFileMenuActions()
+{
+ QString name;
+ //File Menu
+ name="fileNew";
+ scrActions->insert(name, new ScrAction(loadIcon("16/document-new.png"), loadIcon("22/document-new.png"), "", defaultKey(name), mainWindow));
+ name="fileNewFromTemplate";
+ scrActions->insert(name, new ScrAction("", defaultKey(name), mainWindow));
+ name="fileOpen";
+ scrActions->insert(name, new ScrAction(loadIcon("16/document-open.png"), loadIcon("22/document-open.png"), "", defaultKey(name), mainWindow));
+ name="fileClose";
+ scrActions->insert(name, new ScrAction(loadIcon("16/close.png"), loadIcon("22/close.png"), "", defaultKey(name), mainWindow));
+ name="fileSave";
+ scrActions->insert(name, new ScrAction(loadIcon("16/document-save.png"), loadIcon("22/document-save.png"), "", defaultKey(name), mainWindow));
+ name="fileSaveAs";
+ scrActions->insert(name, new ScrAction(loadIcon("16/document-save-as.png"), loadIcon("22/document-save-as.png"), "", defaultKey(name), mainWindow));
+ name="fileRevert";
+ scrActions->insert(name, new ScrAction(loadIcon("revert.png"), QPixmap(), "", defaultKey(name), mainWindow));
+ name="fileCollect";
+ scrActions->insert(name, new ScrAction("", defaultKey(name), mainWindow));
+ //File Import Menu
+ name="fileImportText";
+ scrActions->insert(name, new ScrAction("", defaultKey(name), mainWindow));
+ name="fileImportText2";
+ scrActions->insert(name, new ScrAction("", defaultKey(name), mainWindow));
+ name="fileImportAppendText";
+ scrActions->insert(name, new ScrAction("", defaultKey(name), mainWindow));
+ name="fileImportImage";
+ scrActions->insert(name, new ScrAction("", defaultKey(name), mainWindow));
+ name="fileImportVector";
+ scrActions->insert(name, new ScrAction("", defaultKey(name), mainWindow));
+
+ //File Export Menu
+ name="fileExportText";
+ scrActions->insert(name, new ScrAction("", defaultKey(name), mainWindow));
+ name="fileExportAsEPS";
+ scrActions->insert(name, new ScrAction("", defaultKey(name), mainWindow));
+ name="fileExportAsPDF";
+ scrActions->insert(name, new ScrAction(loadIcon("acroread16.png"), loadIcon("acroread22.png"), "", defaultKey(name), mainWindow));
+ //Rest of File Menu
+ name="fileDocSetup";
+ scrActions->insert(name, new ScrAction(loadIcon("16/document-properties.png"), loadIcon("22/document-properties.png"), "", defaultKey(name), mainWindow));
+ name="filePreferences";
+ scrActions->insert(name, new ScrAction("", defaultKey(name), mainWindow));
+ (*scrActions)[name]->setMenuRole(QAction::PreferencesRole);
+ name="filePrint";
+ scrActions->insert(name, new ScrAction(loadIcon("16/document-print.png"), loadIcon("22/document-print.png"), "", defaultKey(name), mainWindow));
+ name="PrintPreview";
+ scrActions->insert(name, new ScrAction(loadIcon("16/document-print-preview.png"), loadIcon("22/document-print-preview.png"), "", defaultKey(name), mainWindow));
+ name="fileQuit";
+ scrActions->insert(name, new ScrAction(loadIcon("exit.png"), QPixmap(), "", defaultKey(name), mainWindow));
+ (*scrActions)[name]->setMenuRole(QAction::QuitRole);
+
+ //Connect our signals and slots
+ //File Menu
+ connect( (*scrActions)["fileNew"], SIGNAL(triggered()), mainWindow, SLOT(slotFileNew()) );
+ connect( (*scrActions)["fileNewFromTemplate"], SIGNAL(triggered()), mainWindow, SLOT(newFileFromTemplate()) );
+ connect( (*scrActions)["fileOpen"], SIGNAL(triggered()), mainWindow, SLOT(slotDocOpen()) );
+ connect( (*scrActions)["fileClose"], SIGNAL(triggered()), mainWindow, SLOT(slotFileClose()) );
+ connect( (*scrActions)["filePrint"], SIGNAL(triggered()), mainWindow, SLOT(slotFilePrint()) );
+ connect( (*scrActions)["PrintPreview"], SIGNAL(triggered()), mainWindow, SLOT(printPreview()) );
+ connect( (*scrActions)["fileSave"], SIGNAL(triggered()), mainWindow, SLOT(slotFileSave()) );
+ connect( (*scrActions)["fileSaveAs"], SIGNAL(triggered()), mainWindow, SLOT(slotFileSaveAs()) );
+ connect( (*scrActions)["fileDocSetup"], SIGNAL(triggered()), mainWindow, SLOT(slotDocSetup()) );
+ connect( (*scrActions)["filePreferences"], SIGNAL(triggered()), mainWindow, SLOT(slotPrefsOrg()) );
+ connect( (*scrActions)["fileRevert"], SIGNAL(triggered()), mainWindow, SLOT(slotFileRevert()) );
+ connect( (*scrActions)["fileCollect"], SIGNAL(triggered()), mainWindow, SLOT(Collect()) );
+ connect( (*scrActions)["fileQuit"], SIGNAL(triggered()), mainWindow, SLOT(slotFileQuit()) );
+ //File Import Menu
+ connect( (*scrActions)["fileImportText"], SIGNAL(triggered()), mainWindow, SLOT(slotGetContent()) );
+ connect( (*scrActions)["fileImportText2"], SIGNAL(triggered()), mainWindow, SLOT(slotGetContent2()) );
+ connect( (*scrActions)["fileImportAppendText"], SIGNAL(triggered()), mainWindow, SLOT(slotFileAppend()) );
+ connect( (*scrActions)["fileImportImage"], SIGNAL(triggered()), mainWindow, SLOT(slotGetContent()) );
+ connect( (*scrActions)["fileImportVector"], SIGNAL(triggered()), mainWindow, SLOT(importVectorFile()) );
+ //File Export Menu
+ connect( (*scrActions)["fileExportText"], SIGNAL(triggered()), mainWindow, SLOT(SaveText()) );
+ connect( (*scrActions)["fileExportAsEPS"], SIGNAL(triggered()), mainWindow, SLOT(SaveAsEps()) );
+ connect( (*scrActions)["fileExportAsPDF"], SIGNAL(triggered()), mainWindow, SLOT(SaveAsPDF()) );
+ //The rest are plugins
+
+
+ (*scrActions)["fileClose"]->setShortcutContext(Qt::WidgetShortcut);
+}
+
+void ActionManager::initEditMenuActions()
+{
+ QString name;
+ //Edit Menu
+ name="editUndoAction";
+ scrActions->insert(name, new ScrAction(ScrAction::DataInt, loadIcon("16/edit-undo.png"), loadIcon("22/edit-undo.png"), "", defaultKey(name), mainWindow, 1));
+ name="editRedoAction";
+ scrActions->insert(name, new ScrAction(ScrAction::DataInt, loadIcon("16/edit-redo.png"), loadIcon("22/edit-redo.png"), "", defaultKey(name), mainWindow, 1));
+ name="editActionMode";
+ scrActions->insert(name, new ScrAction("", defaultKey(name), mainWindow));
+ (*scrActions)["editActionMode"]->setToggleAction(true);
+
+ name="editCut";
+ scrActions->insert(name, new ScrAction(loadIcon("16/edit-cut.png"), loadIcon("22/edit-cut.png"), "", defaultKey(name), mainWindow));
+ name="editCopy";
+ scrActions->insert(name, new ScrAction(loadIcon("16/edit-copy.png"), loadIcon("22/edit-copy.png"), "", defaultKey(name), mainWindow));
+ name="editPaste";
+ scrActions->insert(name, new ScrAction(loadIcon("16/edit-paste.png"), loadIcon("22/edit-paste.png"), "", defaultKey(name), mainWindow));
+ name="editCopyContents";
+ scrActions->insert(name, new ScrAction(loadIcon("16/edit-copy.png"), loadIcon("22/edit-copy.png"), "", defaultKey(name), mainWindow));
+ name="editPasteContents";
+ scrActions->insert(name, new ScrAction(ScrAction::DataInt, loadIcon("16/edit-paste.png"), QPixmap(), "", defaultKey(name), mainWindow, 0));
+ name="editPasteContentsAbs";
+ scrActions->insert(name, new ScrAction(ScrAction::DataInt, loadIcon("16/edit-paste.png"), QPixmap(), "", defaultKey(name), mainWindow, 1));
+ name="editPasteImageFromClipboard";
+ scrActions->insert(name, new ScrAction(loadIcon("16/edit-paste.png"), loadIcon("22/edit-paste.png"), "", defaultKey(name), mainWindow));
+ name="editClearContents";
+ scrActions->insert(name, new ScrAction(loadIcon("16/edit-delete.png"), loadIcon("22/edit-delete.png"), "", defaultKey(name), mainWindow));
+ name="editSelectAll";
+ scrActions->insert(name, new ScrAction("", defaultKey(name), mainWindow));
+ name="editSelectAllOnLayer";
+ scrActions->insert(name, new ScrAction("", defaultKey(name), mainWindow));
+ name="editDeselectAll";
+ scrActions->insert(name, new ScrAction("", defaultKey(name), mainWindow));
+ name="editSearchReplace";
+ scrActions->insert(name, new ScrAction(loadIcon("16/edit-find-replace.png"), loadIcon("22/edit-find-replace.png"), "", defaultKey(name), mainWindow));
+ name="editEditWithImageEditor";
+ scrActions->insert(name, new ScrAction("", defaultKey(name), mainWindow));
+ name="editEditRenderSource";
+ scrActions->insert(name, new ScrAction("", defaultKey(name), mainWindow));
+ name="editColors";
+ scrActions->insert(name, new ScrAction("", defaultKey(name), mainWindow));
+ name="editReplaceColors";
+ scrActions->insert(name, new ScrAction("", defaultKey(name), mainWindow));
+ name="editPatterns";
+ scrActions->insert(name, new ScrAction("", defaultKey(name), mainWindow));
+ name="editStyles";
+ scrActions->insert(name, new ScrAction("", defaultKey(name), mainWindow));
+ name="editMasterPages";
+ scrActions->insert(name, new ScrAction("", defaultKey(name), mainWindow));
+ name="editJavascripts";
+ scrActions->insert(name, new ScrAction("", defaultKey(name), mainWindow));
+
+ (*scrActions)["editStyles"]->setToggleAction(true);
+
+ connect( (*scrActions)["editUndoAction"], SIGNAL(triggeredData(int)) , undoManager, SLOT(undo(int)) );
+ connect( (*scrActions)["editRedoAction"], SIGNAL(triggeredData(int)) , undoManager, SLOT(redo(int)) );
+ connect( (*scrActions)["editActionMode"], SIGNAL(toggled(bool)), mainWindow, SLOT(setUndoMode(bool)) );
+ connect( (*scrActions)["editCut"], SIGNAL(triggered()), mainWindow, SLOT(slotEditCut()) );
+ connect( (*scrActions)["editCopy"], SIGNAL(triggered()), mainWindow, SLOT(slotEditCopy()) );
+ connect( (*scrActions)["editPaste"], SIGNAL(triggered()), mainWindow, SLOT(slotEditPaste()) );
+ connect( (*scrActions)["editCopyContents"], SIGNAL(triggered()), mainWindow, SLOT(slotEditCopyContents()) );
+ connect( (*scrActions)["editPasteContents"], SIGNAL(triggeredData(int)), mainWindow, SLOT(slotEditPasteContents(int)) );
+ connect( (*scrActions)["editPasteContentsAbs"], SIGNAL(triggeredData(int)), mainWindow, SLOT(slotEditPasteContents(int)) );
+ connect( (*scrActions)["editPasteImageFromClipboard"], SIGNAL(triggered()), mainWindow, SLOT(slotGetClipboardImage()) );
+ connect( (*scrActions)["editSelectAll"], SIGNAL(triggered()), mainWindow, SLOT(SelectAll()) );
+ connect( (*scrActions)["editSelectAllOnLayer"], SIGNAL(triggered()), mainWindow, SLOT(SelectAllOnLayer()) );
+ connect( (*scrActions)["editDeselectAll"], SIGNAL(triggered()), mainWindow, SLOT(deselectAll()) );
+ connect( (*scrActions)["editSearchReplace"], SIGNAL(triggered()), mainWindow, SLOT(SearchText()) );
+ connect( (*scrActions)["editEditWithImageEditor"], SIGNAL(triggered()), mainWindow, SLOT(callImageEditor()) );
+ connect( (*scrActions)["editEditRenderSource"], SIGNAL(triggered()), mainWindow, SLOT(callImageEditor()) );
+ connect( (*scrActions)["editColors"], SIGNAL(triggered()), mainWindow, SLOT(slotEditColors()) );
+ connect( (*scrActions)["editReplaceColors"], SIGNAL(triggered()), mainWindow, SLOT(slotReplaceColors()) );
+ connect( (*scrActions)["editPatterns"], SIGNAL(triggered()), mainWindow, SLOT(managePatterns()) );
+ connect( (*scrActions)["editMasterPages"], SIGNAL(triggered()), mainWindow, SLOT(manageMasterPages()) );
+ connect( (*scrActions)["editJavascripts"], SIGNAL(triggered()), mainWindow, SLOT(ManageJava()) );
+}
+
+void ActionManager::initStyleMenuActions()
+{
+ QString name;
+ //Text Size actions
+ (*scrActionGroups).insert("fontSize", new QActionGroup(mainWindow));
+ name="fontSizeOther";
+ scrActions->insert(name, new ScrAction(ScrAction::DataInt, QPixmap(), QPixmap(), "", defaultKey(name), (*scrActionGroups).value("fontSize"), -1));
+ connect( (*scrActions)["fontSizeOther"], SIGNAL(triggeredData(int)), mainWindow, SLOT(setItemFSize(int)));
+
+ int font_sizes[] = {7, 9, 10, 11, 12, 14, 18, 24, 36, 48, 60, 72};
+ size_t f_size = sizeof(font_sizes) / sizeof(*font_sizes);
+ for (uint s = 0; s < f_size; ++s)
+ {
+ QString fontSizeName=QString("fontSize%1").arg(font_sizes[s]);
+ scrActions->insert(fontSizeName, new ScrAction(ScrAction::DataInt, QPixmap(), QPixmap(), "", defaultKey(name), (*scrActionGroups).value("fontSize"), font_sizes[s]));
+ (*scrActions)[fontSizeName]->setToggleAction(true);
+ connect( (*scrActions)[fontSizeName], SIGNAL(triggeredData(int)), mainWindow, SLOT(setItemFSize(int)));
+ }
+
+ //Alignment actions
+ name="alignLeft";
+ scrActions->insert(name, new ScrAction(ScrAction::DataInt, QPixmap(), QPixmap(), "", defaultKey(name), mainWindow, 0));
+ name="alignCenter";
+ scrActions->insert(name, new ScrAction(ScrAction::DataInt, QPixmap(), QPixmap(), "", defaultKey(name), mainWindow, 1));
+ name="alignRight";
+ scrActions->insert(name, new ScrAction(ScrAction::DataInt, QPixmap(), QPixmap(), "", defaultKey(name), mainWindow, 2));
+ name="alignBlock";
+ scrActions->insert(name, new ScrAction(ScrAction::DataInt, QPixmap(), QPixmap(), "", defaultKey(name), mainWindow, 3));
+ name="alignForced";
+ scrActions->insert(name, new ScrAction(ScrAction::DataInt, QPixmap(), QPixmap(), "", defaultKey(name), mainWindow, 4));
+
+ (*scrActions)["alignLeft"]->setToggleAction(true);
+ (*scrActions)["alignCenter"]->setToggleAction(true);
+ (*scrActions)["alignRight"]->setToggleAction(true);
+ (*scrActions)["alignBlock"]->setToggleAction(true);
+ (*scrActions)["alignForced"]->setToggleAction(true);
+
+ connect( (*scrActions)["alignLeft"], SIGNAL(triggeredData(int)), mainWindow, SLOT(setNewAlignment(int)));
+ connect( (*scrActions)["alignCenter"], SIGNAL(triggeredData(int)), mainWindow, SLOT(setNewAlignment(int)));
+ connect( (*scrActions)["alignRight"], SIGNAL(triggeredData(int)), mainWindow, SLOT(setNewAlignment(int)));
+ connect( (*scrActions)["alignBlock"], SIGNAL(triggeredData(int)), mainWindow, SLOT(setNewAlignment(int)));
+ connect( (*scrActions)["alignForced"], SIGNAL(triggeredData(int)), mainWindow, SLOT(setNewAlignment(int)));
+
+ //Shade actions
+/*
+ scrActionGroups->insert("shade", new QActionGroup(mainWindow));
+ name="shadeOther";
+ scrActions->insert(name, new ScrAction(ScrAction::DataInt, QPixmap(), QPixmap(), "", defaultKey(name), (*scrActionGroups).value("shade"), -1));
+ connect( (*scrActions)["shadeOther"], SIGNAL(triggeredData(int)), mainWindow, SLOT(setItemShade(int)));
+ for (uint i=0; i<=100 ; i+=10)
+ {
+ QString shadeName=QString("shade%1").arg(i);
+ scrActions->insert(shadeName, new ScrAction(ScrAction::DataInt, QPixmap(), QPixmap(), "", defaultKey(name), (*scrActionGroups).value("shade"), i));
+ (*scrActions)[shadeName]->setToggleAction(true);
+ connect( (*scrActions)[shadeName], SIGNAL(triggeredData(int)), mainWindow, SLOT(setItemShade(int)));
+ }
+*/
+
+ //Type Effects actions
+ scrActionGroups->insert("typeEffects", new QActionGroup(mainWindow));
+ name="typeEffectNormal";
+ scrActions->insert(name, new ScrAction(ScrAction::DataInt, QPixmap(), QPixmap(), "", defaultKey(name), (*scrActionGroups).value("typeEffects"), 0));
+ name="typeEffectUnderline";
+ scrActions->insert(name, new ScrAction(ScrAction::DataInt, QPixmap(), QPixmap(), "", defaultKey(name), (*scrActionGroups).value("typeEffects"), 1));
+ name="typeEffectUnderlineWords";
+ scrActions->insert(name, new ScrAction(ScrAction::DataInt, QPixmap(), QPixmap(), "", defaultKey(name), (*scrActionGroups).value("typeEffects"), 8));
+ name="typeEffectStrikeThrough";
+ scrActions->insert(name, new ScrAction(ScrAction::DataInt, QPixmap(), QPixmap(), "", defaultKey(name), (*scrActionGroups).value("typeEffects"), 2));
+ name="typeEffectAllCaps";
+ scrActions->insert(name, new ScrAction(ScrAction::DataInt, QPixmap(), QPixmap(), "", defaultKey(name), (*scrActionGroups).value("typeEffects"), 7));
+ name="typeEffectSmallCaps";
+ scrActions->insert(name, new ScrAction(ScrAction::DataInt, QPixmap(), QPixmap(), "", defaultKey(name), (*scrActionGroups).value("typeEffects"), 3));
+ name="typeEffectSuperscript";
+ scrActions->insert(name, new ScrAction(ScrAction::DataInt, QPixmap(), QPixmap(), "", defaultKey(name), (*scrActionGroups).value("typeEffects"), 4));
+ name="typeEffectSubscript";
+ scrActions->insert(name, new ScrAction(ScrAction::DataInt, QPixmap(), QPixmap(), "", defaultKey(name), (*scrActionGroups).value("typeEffects"), 5));
+ name="typeEffectOutline";
+ scrActions->insert(name, new ScrAction(ScrAction::DataInt, QPixmap(), QPixmap(), "", defaultKey(name), (*scrActionGroups).value("typeEffects"), 6));
+ name="typeEffectShadow";
+ scrActions->insert(name, new ScrAction(ScrAction::DataInt, QPixmap(), QPixmap(), "", defaultKey(name), (*scrActionGroups).value("typeEffects"), 9));
+ (*scrActions)["typeEffectNormal"]->setToggleAction(true);
+ (*scrActions)["typeEffectUnderline"]->setToggleAction(true);
+ (*scrActions)["typeEffectUnderlineWords"]->setToggleAction(true);
+ (*scrActions)["typeEffectStrikeThrough"]->setToggleAction(true);
+ (*scrActions)["typeEffectAllCaps"]->setToggleAction(true);
+ (*scrActions)["typeEffectSmallCaps"]->setToggleAction(true);
+ (*scrActions)["typeEffectSuperscript"]->setToggleAction(true);
+ (*scrActions)["typeEffectSubscript"]->setToggleAction(true);
+ (*scrActions)["typeEffectOutline"]->setToggleAction(true);
+ (*scrActions)["typeEffectShadow"]->setToggleAction(true);
+ connect( (*scrActions)["typeEffectNormal"], SIGNAL(triggeredData(int)), mainWindow, SLOT(setItemTypeStyle(int)));
+ connect( (*scrActions)["typeEffectUnderline"], SIGNAL(triggeredData(int)), mainWindow, SLOT(setItemTypeStyle(int)));
+ connect( (*scrActions)["typeEffectUnderlineWords"], SIGNAL(triggeredData(int)), mainWindow, SLOT(setItemTypeStyle(int)));
+ connect( (*scrActions)["typeEffectStrikeThrough"], SIGNAL(triggeredData(int)), mainWindow, SLOT(setItemTypeStyle(int)));
+ connect( (*scrActions)["typeEffectSmallCaps"], SIGNAL(triggeredData(int)), mainWindow, SLOT(setItemTypeStyle(int)));
+ connect( (*scrActions)["typeEffectAllCaps"], SIGNAL(triggeredData(int)), mainWindow, SLOT(setItemTypeStyle(int)));
+ connect( (*scrActions)["typeEffectSuperscript"], SIGNAL(triggeredData(int)), mainWindow, SLOT(setItemTypeStyle(int)));
+ connect( (*scrActions)["typeEffectSubscript"], SIGNAL(triggeredData(int)), mainWindow, SLOT(setItemTypeStyle(int)));
+ connect( (*scrActions)["typeEffectOutline"], SIGNAL(triggeredData(int)), mainWindow, SLOT(setItemTypeStyle(int)));
+ connect( (*scrActions)["typeEffectShadow"], SIGNAL(triggeredData(int)), mainWindow, SLOT(setItemTypeStyle(int)));
+
+ //Other Style menu items that get added in various places
+ name="styleImageEffects";
+ scrActions->insert(name, new ScrAction("", defaultKey(name), mainWindow));
+ name="styleTabulators";
+ scrActions->insert(name, new ScrAction("", defaultKey(name), mainWindow));
+ connect( (*scrActions)["styleImageEffects"], SIGNAL(triggered()), mainWindow, SLOT(ImageEffects()));
+ connect( (*scrActions)["styleTabulators"], SIGNAL(triggered()), mainWindow, SLOT(EditTabs()));
+
+}
+
+void ActionManager::initItemMenuActions()
+{
+ QString name;
+ //Item Menu
+ name="itemDuplicate";
+ scrActions->insert(name, new ScrAction("", defaultKey(name), mainWindow));
+ name="itemMulDuplicate";
+ scrActions->insert(name, new ScrAction("", defaultKey(name), mainWindow));
+ name="itemDelete";
+ scrActions->insert(name, new ScrAction("", defaultKey(name), mainWindow));
+ name="itemGroup";
+ scrActions->insert(name, new ScrAction("", defaultKey(name), mainWindow));
+ name="itemUngroup";
+ scrActions->insert(name, new ScrAction("", defaultKey(name), mainWindow));
+ name="itemLock";
+ scrActions->insert(name, new ScrAction("", defaultKey(name), mainWindow));
+ name="itemLockSize";
+ scrActions->insert(name, new ScrAction("", defaultKey(name), mainWindow));
+ name="itemPrintingEnabled";
+ scrActions->insert(name, new ScrAction("", defaultKey(name), mainWindow));
+ name="itemFlipH";
+ scrActions->insert(name, new ScrAction("", defaultKey(name), mainWindow));
+ name="itemFlipV";
+ scrActions->insert(name, new ScrAction("", defaultKey(name), mainWindow));
+ (*scrActions)["itemLock"]->setToggleAction(true, true);
+ (*scrActions)["itemLockSize"]->setToggleAction(true, true);
+ (*scrActions)["itemPrintingEnabled"]->setToggleAction(true, true);
+ (*scrActions)["itemFlipH"]->setToggleAction(true, true);
+ (*scrActions)["itemFlipV"]->setToggleAction(true, true);
+ name="itemLowerToBottom";
+ scrActions->insert(name, new ScrAction(loadIcon("16/go-bottom.png"), loadIcon("22/go-bottom.png"), "", defaultKey(name), mainWindow));
+ name="itemRaiseToTop";
+ scrActions->insert(name, new ScrAction(loadIcon("16/go-top.png"), loadIcon("22/go-top.png"), "", defaultKey(name), mainWindow));
+ name="itemLower";
+ scrActions->insert(name, new ScrAction(loadIcon("16/go-down.png"), loadIcon("22/go-down.png"), "", defaultKey(name), mainWindow));
+ name="itemRaise";
+ scrActions->insert(name, new ScrAction(loadIcon("16/go-up.png"), loadIcon("22/go-up.png"), "", defaultKey(name), mainWindow));
+// name="itemSendToScrapbook";
+// scrActions->insert(name, new ScrAction("", defaultKey(name), mainWindow));
+ name="itemSendToPattern";
+ scrActions->insert(name, new ScrAction("", defaultKey(name), mainWindow));
+ name="itemImageInfo";
+ scrActions->insert(name, new ScrAction("", defaultKey(name), mainWindow));
+ name="itemAttributes";
+ scrActions->insert(name, new ScrAction("", defaultKey(name), mainWindow));
+ name="itemImageIsVisible";
+ scrActions->insert(name, new ScrAction("", defaultKey(name), mainWindow));
+ name="itemUpdateImage";
+ scrActions->insert(name, new ScrAction("", defaultKey(name), mainWindow));
+ name="itemAdjustFrameToImage";
+ scrActions->insert(name, new ScrAction("", defaultKey(name), mainWindow));
+ name = "itemAdjustImageToFrame";
+ scrActions->insert(name, new ScrAction("", defaultKey(name), mainWindow));
+ name="itemExtendedImageProperties";
+ scrActions->insert(name, new ScrAction("", defaultKey(name), mainWindow));
+ name="itemPreviewLow";
+ scrActions->insert(name, new ScrAction(ScrAction::DataInt, QPixmap(), QPixmap(), "", defaultKey(name), mainWindow, 2));
+ name="itemPreviewNormal";
+ scrActions->insert(name, new ScrAction(ScrAction::DataInt, QPixmap(), QPixmap(), "", defaultKey(name), mainWindow, 1));
+ name="itemPreviewFull";
+ scrActions->insert(name, new ScrAction(ScrAction::DataInt, QPixmap(), QPixmap(), "", defaultKey(name), mainWindow, 0));
+ name="itemPDFIsBookmark";
+ scrActions->insert(name, new ScrAction("", defaultKey(name), mainWindow));
+ (*scrActions)["itemPDFIsBookmark"]->setToggleAction(true);
+ name="itemPDFIsAnnotation";
+ scrActions->insert(name, new ScrAction("", defaultKey(name), mainWindow));
+ (*scrActions)["itemPDFIsAnnotation"]->setToggleAction(true);
+ name="itemPDFAnnotationProps";
+ scrActions->insert(name, new ScrAction("", defaultKey(name), mainWindow));
+ name="itemPDFFieldProps";
+ scrActions->insert(name, new ScrAction("", defaultKey(name), mainWindow));
+
+ (*scrActions)["itemPDFIsBookmark"]->setEnabled(false);
+ (*scrActions)["itemPDFIsAnnotation"]->setEnabled(false);
+ (*scrActions)["itemPDFAnnotationProps"]->setEnabled(false);
+ (*scrActions)["itemPDFFieldProps"]->setEnabled(false);
+
+ (*scrActions)["itemImageIsVisible"]->setToggleAction(true);
+ (*scrActions)["itemPreviewLow"]->setToggleAction(true);
+ (*scrActions)["itemPreviewNormal"]->setToggleAction(true);
+ (*scrActions)["itemPreviewFull"]->setToggleAction(true);
+
+ name="itemShapeEdit";
+ scrActions->insert(name, new ScrAction("", defaultKey(name), mainWindow));
+ (*scrActions)["itemShapeEdit"]->setToggleAction(true);
+ name="itemAttachTextToPath";
+ scrActions->insert(name, new ScrAction("", defaultKey(name), mainWindow));
+ name="itemDetachTextFromPath";
+ scrActions->insert(name, new ScrAction("", defaultKey(name), mainWindow));
+ name="itemCombinePolygons";
+ scrActions->insert(name, new ScrAction("", defaultKey(name), mainWindow));
+ name="itemSplitPolygons";
+ scrActions->insert(name, new ScrAction("", defaultKey(name), mainWindow));
+ name="itemConvertToBezierCurve";
+ scrActions->insert(name, new ScrAction("", defaultKey(name), mainWindow));
+ name="itemConvertToImageFrame";
+ scrActions->insert(name, new ScrAction("", defaultKey(name), mainWindow));
+ name="itemConvertToOutlines";
+ scrActions->insert(name, new ScrAction("", defaultKey(name), mainWindow));
+ name="itemConvertToPolygon";
+ scrActions->insert(name, new ScrAction("", defaultKey(name), mainWindow));
+ name="itemConvertToTextFrame";
+ scrActions->insert(name, new ScrAction("", defaultKey(name), mainWindow));
+
+ connect( (*scrActions)["itemDuplicate"], SIGNAL(triggered()), mainWindow, SLOT(duplicateItem()) );
+ connect( (*scrActions)["itemMulDuplicate"], SIGNAL(triggered()), mainWindow, SLOT(duplicateItemMulti()) );
+ connect( (*scrActions)["itemGroup"], SIGNAL(triggered()), mainWindow, SLOT(GroupObj()) );
+ connect( (*scrActions)["itemUngroup"], SIGNAL(triggered()), mainWindow, SLOT(UnGroupObj()) );
+ connect( (*scrActions)["itemPDFAnnotationProps"], SIGNAL(triggered()), mainWindow, SLOT(ModifyAnnot()) );
+ connect( (*scrActions)["itemPDFFieldProps"], SIGNAL(triggered()), mainWindow, SLOT(ModifyAnnot()) );
+// connect( (*scrActions)["itemSendToScrapbook"], SIGNAL(triggered()), mainWindow, SLOT(PutScrap()) );
+ connect( (*scrActions)["itemSendToPattern"], SIGNAL(triggered()), mainWindow, SLOT(PutToPatterns()) );
+ connect( (*scrActions)["itemAttributes"], SIGNAL(triggered()), mainWindow, SLOT(objectAttributes()) );
+ connect( (*scrActions)["itemShapeEdit"], SIGNAL(triggered()), mainWindow, SLOT(toggleNodeEdit()) );
+ connect( (*scrActions)["itemImageInfo"], SIGNAL(triggered()), mainWindow, SLOT(getImageInfo()) );
+}
+
+void ActionManager::initInsertMenuActions()
+{
+ QString name;
+ //Insert Menu
+ name="insertFrame";
+ scrActions->insert(name, new ScrAction("", defaultKey(name), mainWindow));
+ name="insertGlyph";
+ scrActions->insert(name, new ScrAction("", defaultKey(name), mainWindow));
+ (*scrActions)["insertGlyph"]->setToggleAction(true);
+ name="insertSampleText";
+ scrActions->insert(name, new ScrAction("", defaultKey(name), mainWindow));
+ name="stickyTools";
+ scrActions->insert(name, new ScrAction("", defaultKey(name), mainWindow));
+ (*scrActions)["stickyTools"]->setToggleAction(true);
+
+ connect( (*scrActions)["insertFrame"], SIGNAL(triggered()), mainWindow, SLOT(slotInsertFrame()) );
+ connect( (*scrActions)["insertGlyph"], SIGNAL(triggered()), mainWindow, SLOT(slotCharSelect()) );
+ connect( (*scrActions)["insertSampleText"], SIGNAL(triggered()), mainWindow, SLOT(insertSampleText()) );
+ connect( (*scrActions)["stickyTools"], SIGNAL(triggered()), mainWindow, SLOT(ToggleStickyTools()) );
+}
+
+void ActionManager::initPageMenuActions()
+{
+ QString name;
+ //Page menu
+ name="pageInsert";
+ scrActions->insert(name, new ScrAction("", defaultKey(name), mainWindow));
+ name="pageImport";
+ scrActions->insert(name, new ScrAction("", defaultKey(name), mainWindow));
+ name="pageDelete";
+ scrActions->insert(name, new ScrAction("", defaultKey(name), mainWindow));
+ name="pageCopy";
+ scrActions->insert(name, new ScrAction("", defaultKey(name), mainWindow));
+ name="pageMove";
+ scrActions->insert(name, new ScrAction("", defaultKey(name), mainWindow));
+ name="pageApplyMasterPage";
+ scrActions->insert(name, new ScrAction("", defaultKey(name), mainWindow));
+ name="pageCopyToMasterPage";
+ scrActions->insert(name, new ScrAction("", defaultKey(name), mainWindow));
+ name="pageManageGuides";
+ scrActions->insert(name, new ScrAction("", defaultKey(name), mainWindow));
+ (*scrActions)["pageManageGuides"]->setToggleAction(true);
+ name="pageManageMargins";
+ scrActions->insert(name, new ScrAction("", defaultKey(name), mainWindow));
+
+ connect( (*scrActions)["pageInsert"], SIGNAL(triggered()), mainWindow, SLOT(slotNewPageM()) );
+ connect( (*scrActions)["pageImport"], SIGNAL(triggered()), mainWindow, SLOT(slotPageImport()) );
+ connect( (*scrActions)["pageDelete"], SIGNAL(triggered()), mainWindow, SLOT(DeletePage()) );
+ connect( (*scrActions)["pageCopy"], SIGNAL(triggered()), mainWindow, SLOT(CopyPage()) );
+ connect( (*scrActions)["pageMove"], SIGNAL(triggered()), mainWindow, SLOT(MovePage()) );
+ connect( (*scrActions)["pageApplyMasterPage"], SIGNAL(triggered()), mainWindow, SLOT(ApplyMasterPage()) );
+ connect( (*scrActions)["pageCopyToMasterPage"], SIGNAL(triggered()), mainWindow, SLOT(duplicateToMasterPage()) );
+ connect( (*scrActions)["pageManageMargins"], SIGNAL(triggered()), mainWindow, SLOT(changePageMargins()) );
+}
+
+void ActionManager::initViewMenuActions()
+{
+ QString name;
+ name="viewFitInWindow";
+ scrActions->insert(name, new ScrAction(ScrAction::DataDouble, QPixmap(), QPixmap(), "", defaultKey(name), mainWindow, 0, -100.0));
+ name="viewFitWidth";
+ scrActions->insert(name, new ScrAction(ScrAction::DataDouble, QPixmap(), QPixmap(), "", defaultKey(name), mainWindow, 0, -200.0));
+ name="viewFit50";
+ scrActions->insert(name, new ScrAction(ScrAction::DataDouble, QPixmap(), QPixmap(), "", defaultKey(name), mainWindow, 0, 50.0));
+ name="viewFit75";
+ scrActions->insert(name, new ScrAction(ScrAction::DataDouble, QPixmap(), QPixmap(), "", defaultKey(name), mainWindow, 0, 75.0));
+ name="viewFit100";
+ scrActions->insert(name, new ScrAction(ScrAction::DataDouble, loadIcon("16/zoom-original.png"), loadIcon("22/zoom-original.png"), "", defaultKey(name), mainWindow, 0, 100.0));
+ name="viewFit200";
+ scrActions->insert(name, new ScrAction(ScrAction::DataDouble, QPixmap(), QPixmap(), "", defaultKey(name), mainWindow, 0, 200.0));
+ name="viewFit400";
+ scrActions->insert(name, new ScrAction(ScrAction::DataDouble, QPixmap(), QPixmap(), "", defaultKey(name), mainWindow, 0, 400.0));
+ name="viewFitPreview";
+ scrActions->insert(name, new ScrAction(ScrAction::DataDouble, QPixmap(), QPixmap(), "", defaultKey(name), mainWindow, 0, 20.0));
+ name="viewShowMargins";
+ scrActions->insert(name, new ScrAction("", defaultKey(name), mainWindow));
+ name="viewShowBleeds";
+ scrActions->insert(name, new ScrAction("", defaultKey(name), mainWindow));
+ name="viewShowFrames";
+ scrActions->insert(name, new ScrAction("", defaultKey(name), mainWindow));
+ name="viewShowLayerMarkers";
+ scrActions->insert(name, new ScrAction("", defaultKey(name), mainWindow));
+ name="viewShowImages";
+ scrActions->insert(name, new ScrAction("", defaultKey(name), mainWindow));
+ name="viewShowGrid";
+ scrActions->insert(name, new ScrAction("", defaultKey(name), mainWindow));
+ name="viewShowGuides";
+ scrActions->insert(name, new ScrAction("", defaultKey(name), mainWindow));
+ name="viewShowColumnBorders";
+ scrActions->insert(name, new ScrAction("", defaultKey(name), mainWindow));
+ name="viewShowBaseline";
+ scrActions->insert(name, new ScrAction("", defaultKey(name), mainWindow));
+ name="viewShowTextChain";
+ scrActions->insert(name, new ScrAction("", defaultKey(name), mainWindow));
+ name="viewShowTextControls";
+ scrActions->insert(name, new ScrAction("", defaultKey(name), mainWindow));
+ name="viewShowRulers";
+ scrActions->insert(name, new ScrAction("", defaultKey(name), mainWindow));
+ name="viewRulerMode";
+ scrActions->insert(name, new ScrAction("", defaultKey(name), mainWindow));
+ name="viewSnapToGrid";
+ scrActions->insert(name, new ScrAction("", defaultKey(name), mainWindow));
+ name="viewSnapToGuides";
+ scrActions->insert(name, new ScrAction("", defaultKey(name), mainWindow));
+ name="viewShowContextMenu";
+ scrActions->insert(name, new ScrAction("", defaultKey(name), mainWindow));
+ name="showMouseCoordinates";
+ scrActions->insert(name, new ScrAction("", defaultKey(name), mainWindow));
+// scrActions->insert("viewNewView", new ScrAction("", defaultKey(name), mainWindow));
+
+ (*scrActions)["viewFitPreview"]->setToggleAction(true);
+ (*scrActions)["viewShowMargins"]->setToggleAction(true);
+ (*scrActions)["viewShowBleeds"]->setToggleAction(true);
+ (*scrActions)["viewShowFrames"]->setToggleAction(true);
+ (*scrActions)["viewShowLayerMarkers"]->setToggleAction(true);
+ (*scrActions)["viewShowImages"]->setToggleAction(true);
+ (*scrActions)["viewShowGrid"]->setToggleAction(true);
+ (*scrActions)["viewShowGuides"]->setToggleAction(true);
+ (*scrActions)["viewShowColumnBorders"]->setToggleAction(true);
+ (*scrActions)["viewShowBaseline"]->setToggleAction(true);
+ (*scrActions)["viewShowTextChain"]->setToggleAction(true);
+ (*scrActions)["viewShowTextControls"]->setToggleAction(true);
+ (*scrActions)["viewShowRulers"]->setToggleAction(true);
+ (*scrActions)["viewRulerMode"]->setToggleAction(true);
+ (*scrActions)["viewSnapToGrid"]->setToggleAction(true);
+ (*scrActions)["viewSnapToGuides"]->setToggleAction(true);
+ (*scrActions)["showMouseCoordinates"]->setToggleAction(true);
+
+ (*scrActions)["viewFitPreview"]->setChecked(false);
+ (*scrActions)["viewShowMargins"]->setChecked(true);
+ (*scrActions)["viewShowBleeds"]->setChecked(true);
+ (*scrActions)["viewShowFrames"]->setChecked(true);
+ (*scrActions)["viewShowLayerMarkers"]->setChecked(false);
+ (*scrActions)["viewShowImages"]->setChecked(true);
+ (*scrActions)["viewShowGuides"]->setChecked(true);
+ (*scrActions)["viewShowColumnBorders"]->setChecked(false);
+ (*scrActions)["viewShowRulers"]->setChecked(true);
+ (*scrActions)["viewRulerMode"]->setChecked(true);
+ (*scrActions)["showMouseCoordinates"]->setChecked(true);
+
+ connect( (*scrActions)["viewFitInWindow"], SIGNAL(triggeredData(double)), mainWindow, SLOT(slotZoom(double)) );
+ connect( (*scrActions)["viewFitWidth"], SIGNAL(triggeredData(double)), mainWindow, SLOT(slotZoom(double)) );
+ connect( (*scrActions)["viewFit50"], SIGNAL(triggeredData(double)), mainWindow, SLOT(slotZoom(double)) );
+ connect( (*scrActions)["viewFit75"], SIGNAL(triggeredData(double)), mainWindow, SLOT(slotZoom(double)) );
+ connect( (*scrActions)["viewFit100"], SIGNAL(triggeredData(double)), mainWindow, SLOT(slotZoom(double)) );
+ connect( (*scrActions)["viewFit200"], SIGNAL(triggeredData(double)), mainWindow, SLOT(slotZoom(double)) );
+ connect( (*scrActions)["viewFit400"], SIGNAL(triggeredData(double)), mainWindow, SLOT(slotZoom(double)) );
+ connect( (*scrActions)["viewShowMargins"], SIGNAL(triggered()), mainWindow, SLOT(ToggleMarks()) );
+ connect( (*scrActions)["viewShowBleeds"], SIGNAL(triggered()), mainWindow, SLOT(ToggleBleeds()) );
+ connect( (*scrActions)["viewShowFrames"], SIGNAL(triggered()), mainWindow, SLOT(ToggleFrames()) );
+ connect( (*scrActions)["viewShowLayerMarkers"], SIGNAL(triggered()), mainWindow, SLOT(ToggleLayerMarkers()) );
+ connect( (*scrActions)["viewShowImages"], SIGNAL(triggered()), mainWindow, SLOT(TogglePics()) );
+ connect( (*scrActions)["viewShowGrid"], SIGNAL(triggered()), mainWindow, SLOT(ToggleRaster()) );
+ connect( (*scrActions)["viewShowGuides"], SIGNAL(triggered()), mainWindow, SLOT(ToggleGuides()) );
+ connect( (*scrActions)["viewShowColumnBorders"], SIGNAL(triggered()), mainWindow, SLOT(ToggleColumnBorders()) );
+ connect( (*scrActions)["viewShowBaseline"], SIGNAL(triggered()), mainWindow, SLOT(ToggleBase()) );
+ connect( (*scrActions)["viewShowTextChain"], SIGNAL(triggered()), mainWindow, SLOT(ToggleTextLinks()) );
+ connect( (*scrActions)["viewShowTextControls"], SIGNAL(triggered()), mainWindow, SLOT(ToggleTextControls()) );
+ connect( (*scrActions)["viewShowRulers"], SIGNAL(triggered()), mainWindow, SLOT(ToggleRulers()) );
+ connect( (*scrActions)["viewRulerMode"], SIGNAL(triggered()), mainWindow, SLOT(ToggleRulerMode()) );
+ connect( (*scrActions)["viewSnapToGrid"], SIGNAL(triggered()), mainWindow, SLOT(ToggleURaster()) );
+ connect( (*scrActions)["viewSnapToGuides"], SIGNAL(triggered()), mainWindow, SLOT(ToggleUGuides()) );
+ connect( (*scrActions)["showMouseCoordinates"], SIGNAL(triggered()), mainWindow, SLOT(ToggleMouseTips()) );
+// connect( (*scrActions)["viewNewView"], SIGNAL(triggered()), mainWindow, SLOT(newView()) );
+
+}
+
+void ActionManager::initToolsMenuActions()
+{
+ QString name;
+ //Tool menu
+ name="toolsProperties";
+ scrActions->insert(name, new ScrAction("", defaultKey(name), mainWindow));
+ name="toolsOutline";
+ scrActions->insert(name, new ScrAction("", defaultKey(name), mainWindow));
+ name="toolsScrapbook";
+ scrActions->insert(name, new ScrAction("", defaultKey(name), mainWindow));
+ name="toolsLayers";
+ scrActions->insert(name, new ScrAction("", defaultKey(name), mainWindow));
+ name="toolsPages";
+ scrActions->insert(name, new ScrAction("", defaultKey(name), mainWindow));
+ name="toolsBookmarks";
+ scrActions->insert(name, new ScrAction("", defaultKey(name), mainWindow));
+ name="toolsMeasurements";
+ scrActions->insert(name, new ScrAction(ScrAction::DataInt, loadIcon("16/measure.png"), loadIcon("22/measure.png"), "", defaultKey(name), mainWindow, modeMeasurementTool));
+ name="toolsActionHistory";
+ scrActions->insert(name, new ScrAction("", defaultKey(name), mainWindow));
+ name="toolsPreflightVerifier";
+ scrActions->insert(name, new ScrAction(loadIcon("16/preflight-verifier.png"), loadIcon("22/preflight-verifier.png"),"", defaultKey(name), mainWindow));
+ name="toolsAlignDistribute";
+ scrActions->insert(name, new ScrAction("", defaultKey(name), mainWindow));
+ name="toolsToolbarTools";
+ scrActions->insert(name, new ScrAction("", defaultKey(name), mainWindow));
+ name="toolsToolbarPDF";
+ scrActions->insert(name, new ScrAction("", defaultKey(name), mainWindow));
+
+ //toolbar only items
+ name="toolsSelect";
+ scrActions->insert(name, new ScrAction(ScrAction::DataInt, loadIcon("16/pointer.png"), loadIcon("22/pointer.png"), "", defaultKey(name), mainWindow, modeNormal));
+ name="toolsInsertTextFrame";
+ scrActions->insert(name, new ScrAction(ScrAction::DataInt, loadIcon("16/insert-text-frame.png"), loadIcon("22/insert-text-frame.png"), "", defaultKey(name), mainWindow, modeDrawText));
+ name="toolsInsertImageFrame";
+ scrActions->insert(name, new ScrAction(ScrAction::DataInt, loadIcon("16/insert-image.png"), loadIcon("22/insert-image.png"), "", defaultKey(name), mainWindow, modeDrawImage));
+ name="toolsInsertRenderFrame";
+ scrActions->insert(name, new ScrAction(ScrAction::DataInt, loadIcon("16/insert-renderframe.png"), loadIcon("22/insert-renderframe.png"), "", defaultKey(name), mainWindow, modeDrawLatex));
+ name="toolsInsertTableFrame";
+ scrActions->insert(name, new ScrAction(ScrAction::DataInt, loadIcon("16/insert-table.png"), loadIcon("22/insert-table.png"), "", defaultKey(name), mainWindow, modeDrawTable));
+ name="toolsInsertShape";
+ scrActions->insert(name, new ScrAction(ScrAction::DataInt, QPixmap(), QPixmap(), "", defaultKey(name), mainWindow, modeDrawShapes));
+ name="toolsInsertPolygon";
+ scrActions->insert(name, new ScrAction(ScrAction::DataInt, loadIcon("16/draw-polygon.png"), loadIcon("22/draw-polygon.png"), "", defaultKey(name), mainWindow, modeDrawRegularPolygon));
+ name="toolsInsertLine";
+ scrActions->insert(name, new ScrAction(ScrAction::DataInt, loadIcon("Stift16.xpm"), loadIcon("Stift.xpm"), "", defaultKey(name), mainWindow, modeDrawLine));
+ name="toolsInsertBezier";
+ scrActions->insert(name, new ScrAction(ScrAction::DataInt, loadIcon("16/draw-path.png"), loadIcon("22/draw-path.png"), "", defaultKey(name), mainWindow, modeDrawBezierLine));
+ name="toolsInsertFreehandLine";
+ scrActions->insert(name, new ScrAction(ScrAction::DataInt, loadIcon("16/draw-freehand.png"), loadIcon("22/draw-freehand.png"), "", defaultKey(name), mainWindow, modeDrawFreehandLine));
+ name="toolsRotate";
+ scrActions->insert(name, new ScrAction(ScrAction::DataInt, loadIcon("16/transform-rotate.png"), loadIcon("22/transform-rotate.png"), "", defaultKey(name), mainWindow, modeRotation));
+ name="toolsZoom";
+ scrActions->insert(name, new ScrAction(ScrAction::DataInt, loadIcon("16/zoom.png"), loadIcon("22/zoom.png"), "", defaultKey(name), mainWindow, modeMagnifier));
+ name="toolsZoomIn";
+ scrActions->insert(name, new ScrAction(loadIcon("16/zoom-in.png"), loadIcon("22/zoom-in.png"), "", defaultKey(name), mainWindow));
+ name="toolsZoomOut";
+ scrActions->insert(name, new ScrAction(loadIcon("16/zoom-out.png"), loadIcon("22/zoom-out.png"), "", defaultKey(name), mainWindow));
+ name="toolsEditContents";
+ scrActions->insert(name, new ScrAction(ScrAction::DataInt, loadIcon("Editm16.png"), loadIcon("Editm.xpm"), "", defaultKey(name), mainWindow, modeEdit));
+ name="toolsEditWithStoryEditor";
+ scrActions->insert(name, new ScrAction(ScrAction::DataInt, loadIcon("16/story-editor.png"), loadIcon("22/story-editor.png"), "", defaultKey(name), mainWindow, modeStoryEditor));
+ name="toolsLinkTextFrame";
+ scrActions->insert(name, new ScrAction(ScrAction::DataInt, loadIcon("16/text-frame-link.png"), loadIcon("22/text-frame-link.png"), "", defaultKey(name), mainWindow, modeLinkFrames));
+ name="toolsUnlinkTextFrame";
+ scrActions->insert(name, new ScrAction(ScrAction::DataInt, loadIcon("16/text-frame-unlink.png"), loadIcon("22/text-frame-unlink.png"), "", defaultKey(name), mainWindow, modeUnlinkFrames));
+ name="toolsEyeDropper";
+ scrActions->insert(name, new ScrAction(ScrAction::DataInt, loadIcon("16/color-picker.png"), loadIcon("22/color-picker.png"), "", defaultKey(name), mainWindow, modeEyeDropper));
+ name="toolsCopyProperties";
+ scrActions->insert(name, new ScrAction(ScrAction::DataInt, loadIcon("wizard16.png"), loadIcon("wizard.png"), "", defaultKey(name), mainWindow, modeCopyProperties));
+
+ //PDF toolbar
+ name="toolsPDFPushButton";
+ scrActions->insert(name, new ScrAction(ScrAction::DataInt, loadIcon("16/insert-button.png"), loadIcon("22/insert-button.png"), "", defaultKey(name), mainWindow, modeInsertPDFButton));
+ name="toolsPDFTextField";
+ scrActions->insert(name, new ScrAction(ScrAction::DataInt, loadIcon("16/text-field.png"), loadIcon("22/text-field.png"), "", defaultKey(name), mainWindow, modeInsertPDFTextfield));
+ name="toolsPDFCheckBox";
+ scrActions->insert(name, new ScrAction(ScrAction::DataInt, loadIcon("16/checkbox.png"), loadIcon("22/checkbox.png"), "", defaultKey(name), mainWindow, modeInsertPDFCheckbox));
+ name="toolsPDFComboBox";
+ scrActions->insert(name, new ScrAction(ScrAction::DataInt, loadIcon("16/combobox.png"), loadIcon("22/combobox.png"), "", defaultKey(name), mainWindow, modeInsertPDFCombobox));
+ name="toolsPDFListBox";
+ scrActions->insert(name, new ScrAction(ScrAction::DataInt, loadIcon("16/list-box.png"), loadIcon("22/list-box.png"), "", defaultKey(name), mainWindow, modeInsertPDFListbox));
+ name="toolsPDFAnnotText";
+ scrActions->insert(name, new ScrAction(ScrAction::DataInt, loadIcon("16/pdf-annotations.png"), loadIcon("22/pdf-annotations.png"), "", defaultKey(name), mainWindow, modeInsertPDFTextAnnotation));
+ name="toolsPDFAnnotLink";
+ scrActions->insert(name, new ScrAction(ScrAction::DataInt, loadIcon("goto16.png"), loadIcon("goto.png"), "", defaultKey(name), mainWindow, modeInsertPDFLinkAnnotation));
+
+ //Set the applicaton wide palette shortcuts
+ (*scrActions)["toolsProperties"]->setShortcutContext(Qt::ApplicationShortcut);
+ (*scrActions)["toolsScrapbook"]->setShortcutContext(Qt::ApplicationShortcut);
+ (*scrActions)["toolsLayers"]->setShortcutContext(Qt::ApplicationShortcut);
+ (*scrActions)["toolsPages"]->setShortcutContext(Qt::ApplicationShortcut);
+ (*scrActions)["toolsBookmarks"]->setShortcutContext(Qt::ApplicationShortcut);
+ (*scrActions)["toolsActionHistory"]->setShortcutContext(Qt::ApplicationShortcut);
+ (*scrActions)["toolsPreflightVerifier"]->setShortcutContext(Qt::ApplicationShortcut);
+ (*scrActions)["toolsAlignDistribute"]->setShortcutContext(Qt::ApplicationShortcut);
+
+
+ (*scrActions)["toolsProperties"]->setToggleAction(true);
+ (*scrActions)["toolsOutline"]->setToggleAction(true);
+ (*scrActions)["toolsScrapbook"]->setToggleAction(true);
+ (*scrActions)["toolsLayers"]->setToggleAction(true);
+ (*scrActions)["toolsPages"]->setToggleAction(true);
+ (*scrActions)["toolsBookmarks"]->setToggleAction(true);
+ (*scrActions)["toolsMeasurements"]->setToggleAction(true);
+ (*scrActions)["toolsActionHistory"]->setToggleAction(true);
+ (*scrActions)["toolsPreflightVerifier"]->setToggleAction(true);
+ (*scrActions)["toolsAlignDistribute"]->setToggleAction(true);
+ (*scrActions)["toolsToolbarTools"]->setToggleAction(true);
+ (*scrActions)["toolsToolbarPDF"]->setToggleAction(true);
+
+ *modeActionNames << "toolsSelect" << "toolsInsertTextFrame" << "toolsInsertImageFrame" << "toolsInsertTableFrame";
+ *modeActionNames << "toolsInsertShape" << "toolsInsertPolygon" << "toolsInsertLine" << "toolsInsertBezier";
+ *modeActionNames << "toolsInsertFreehandLine" << "toolsInsertRenderFrame" << "toolsRotate" << "toolsZoom" << "toolsEditContents";
+ *modeActionNames << "toolsEditWithStoryEditor" << "toolsLinkTextFrame" << "toolsUnlinkTextFrame";
+ *modeActionNames << "toolsEyeDropper" << "toolsCopyProperties";
+ *modeActionNames << "toolsPDFPushButton" << "toolsPDFTextField" << "toolsPDFCheckBox" << "toolsPDFComboBox" << "toolsPDFListBox" << "toolsPDFAnnotText" << "toolsPDFAnnotLink";
+
+ for ( QStringList::Iterator it = modeActionNames->begin(); it != modeActionNames->end(); ++it )
+ {
+ (*scrActions)[*it]->setEnabled(false);
+ (*scrActions)[*it]->setToggleAction(true);
+ }
+
+
+ *nonEditActionNames << "itemLowerToBottom" << "itemRaiseToTop" << "itemRaise" << "itemLower";
+
+ connect( (*scrActions)["toolsActionHistory"], SIGNAL(toggled(bool)), mainWindow, SLOT(setUndoPalette(bool)) );
+
+ connectModeActions();
+}
+
+void ActionManager::initExtrasMenuActions()
+{
+ QString name;
+ name="extrasManageImages";
+ scrActions->insert(name, new ScrAction("", defaultKey(name), mainWindow));
+ name="extrasHyphenateText";
+ scrActions->insert(name, new ScrAction("", defaultKey(name), mainWindow));
+ name="extrasDeHyphenateText";
+ scrActions->insert(name, new ScrAction("", defaultKey(name), mainWindow));
+ name="extrasGenerateTableOfContents";
+ scrActions->insert(name, new ScrAction("", defaultKey(name), mainWindow));
+
+ connect( (*scrActions)["extrasManageImages"], SIGNAL(triggered()), mainWindow, SLOT(StatusPic()) );
+ connect( (*scrActions)["extrasGenerateTableOfContents"], SIGNAL(triggered()), mainWindow, SLOT(generateTableOfContents()) );
+}
+
+
+void ActionManager::initWindowsMenuActions()
+{
+ QString name;
+ name="windowsCascade";
+ scrActions->insert(name, new ScrAction( "", defaultKey(name), mainWindow));
+ name="windowsTile";
+ scrActions->insert(name, new ScrAction( "", defaultKey(name), mainWindow));
+}
+
+void ActionManager::initScriptMenuActions()
+{
+}
+
+void ActionManager::initHelpMenuActions()
+{
+ QString name;
+ name="helpAboutScribus";
+ scrActions->insert(name, new ScrAction("", defaultKey(name), mainWindow));
+ (*scrActions)[name]->setMenuRole(QAction::AboutRole);
+ name="helpAboutPlugins";
+ scrActions->insert(name, new ScrAction("", defaultKey(name), mainWindow));
+ (*scrActions)[name]->setMenuRole(QAction::ApplicationSpecificRole);
+ name="helpAboutQt";
+ scrActions->insert(name, new ScrAction("", defaultKey(name), mainWindow));
+ (*scrActions)[name]->setMenuRole(QAction::AboutQtRole);
+ name="helpTooltips";
+ scrActions->insert(name, new ScrAction("", defaultKey(name), mainWindow));
+ name="helpManual";
+ scrActions->insert(name, new ScrAction(loadIcon("16/help-browser.png"), QPixmap(), "", defaultKey(name), mainWindow));
+ name="helpOnlineWWW";
+ scrActions->insert(name, new ScrAction(ScrAction::DataQString, QPixmap(), QPixmap(), "", defaultKey(name), mainWindow, 0, 0.0, "http://www.scribus.net"));
+ name="helpOnlineDocs";
+ scrActions->insert(name, new ScrAction(ScrAction::DataQString, QPixmap(), QPixmap(), "", defaultKey(name), mainWindow, 0, 0.0, "http://docs.scribus.net"));
+ name="helpOnlineWiki";
+ scrActions->insert(name, new ScrAction(ScrAction::DataQString, QPixmap(), QPixmap(), "", defaultKey(name), mainWindow, 0, 0.0, "http://wiki.scribus.net"));
+ name="helpOnlineTutorial1";
+ scrActions->insert(name, new ScrAction(ScrAction::DataQString, QPixmap(), QPixmap(), "", defaultKey(name), mainWindow, 0, 0.0, ""));
+ name="helpCheckUpdates";
+ scrActions->insert(name, new ScrAction("", defaultKey(name), mainWindow));
+
+ (*scrActions)["helpTooltips"]->setToggleAction(true);
+ (*scrActions)["helpTooltips"]->setChecked(true);
+
+ connect( (*scrActions)["helpAboutScribus"], SIGNAL(triggered()), mainWindow, SLOT(slotHelpAbout()) );
+ connect( (*scrActions)["helpAboutPlugins"], SIGNAL(triggered()), mainWindow, SLOT(slotHelpAboutPlugins()) );
+ connect( (*scrActions)["helpAboutQt"], SIGNAL(triggered()), mainWindow, SLOT(slotHelpAboutQt()) );
+ connect( (*scrActions)["helpTooltips"], SIGNAL(triggered()), mainWindow, SLOT(ToggleTips()) );
+ connect( (*scrActions)["helpManual"], SIGNAL(triggered()), mainWindow, SLOT(slotOnlineHelp()) );
+ connect( (*scrActions)["helpCheckUpdates"], SIGNAL(triggered()), mainWindow, SLOT(slotHelpCheckUpdates()) );
+ UrlLauncher* ul=UrlLauncher::instance();
+ connect( (*scrActions)["helpOnlineWWW"], SIGNAL(triggeredData(QString)), ul, SLOT(launchUrlExt(const QString)) );
+ connect( (*scrActions)["helpOnlineDocs"], SIGNAL(triggeredData(QString)), ul, SLOT(launchUrlExt(const QString)) );
+ connect( (*scrActions)["helpOnlineWiki"], SIGNAL(triggeredData(QString)), ul, SLOT(launchUrlExt(const QString)) );
+ connect( (*scrActions)["helpOnlineTutorial1"], SIGNAL(triggeredData(QString)), ul, SLOT(launchUrlExt(const QString)) );
+}
+
+void ActionManager::initUnicodeActions(QMap<QString, QPointer<ScrAction> > *actionMap, QWidget *actionParent, QStringList *actionNamesList)
+{
+ QString name;
+ //typography
+ name="unicodeSmartHyphen";
+ actionMap->insert(name, new ScrAction(defaultKey(name), actionParent, SpecialChars::SHYPHEN.unicode(), name));
+ name="unicodeNonBreakingHyphen";
+ actionMap->insert(name, new ScrAction(defaultKey(name), actionParent, SpecialChars::NBHYPHEN.unicode(), name));
+ name="unicodeNonBreakingSpace";
+ actionMap->insert(name, new ScrAction(defaultKey(name), actionParent, SpecialChars::NBSPACE.unicode(), name));
+ name="unicodePageNumber";
+ actionMap->insert(name, new ScrAction(defaultKey(name), actionParent, SpecialChars::PAGENUMBER.unicode(), name));
+ name="unicodePageCount";
+ actionMap->insert(name, new ScrAction(defaultKey(name), actionParent, SpecialChars::PAGECOUNT.unicode(), name));
+ //Spaces
+ name="unicodeSpaceEN";
+ actionMap->insert(name, new ScrAction(defaultKey(name), actionParent, 0x2002, name));
+ name="unicodeSpaceEM";
+ actionMap->insert(name, new ScrAction(defaultKey(name), actionParent, 0x2003, name));
+ name="unicodeSpaceThin";
+ actionMap->insert(name, new ScrAction(defaultKey(name), actionParent, 0x2009, name));
+ name="unicodeSpaceThick";
+ actionMap->insert(name, new ScrAction(defaultKey(name), actionParent, 0x2004, name));
+ name="unicodeSpaceMid";
+ actionMap->insert(name, new ScrAction(defaultKey(name), actionParent, 0x2005, name));
+ name="unicodeSpaceHair";
+ actionMap->insert(name, new ScrAction(defaultKey(name), actionParent, 0x200A, name));
+ //Breaks
+ name="unicodeNewLine";
+ actionMap->insert(name, new ScrAction(defaultKey(name), actionParent, SpecialChars::LINEBREAK.unicode(), name));
+ name="unicodeFrameBreak";
+ actionMap->insert(name, new ScrAction(defaultKey(name), actionParent, SpecialChars::FRAMEBREAK.unicode(), name));
+ name="unicodeColumnBreak";
+ actionMap->insert(name, new ScrAction(defaultKey(name), actionParent, SpecialChars::COLBREAK.unicode(), name));
+ name="unicodeZerowidthSpace";
+ actionMap->insert(name, new ScrAction(defaultKey(name), actionParent, SpecialChars::ZWSPACE.unicode(), name));
+ name="unicodeZerowidthNonBreakingSpace";
+ actionMap->insert(name, new ScrAction(defaultKey(name), actionParent, SpecialChars::ZWNBSPACE.unicode(), name));
+ //Special
+ name="unicodeCopyRight";
+ actionMap->insert(name, new ScrAction(defaultKey(name), actionParent, 0x0A9, name));
+ name="unicodeRegdTM";
+ actionMap->insert(name, new ScrAction(defaultKey(name), actionParent, 0x00AE, name));
+ name="unicodeTM";
+ actionMap->insert(name, new ScrAction(defaultKey(name), actionParent, 0x2122, name));
+ name="unicodeBullet";
+ actionMap->insert(name, new ScrAction(defaultKey(name), actionParent, 0x2022, name));
+ name="unicodeMidpoint";
+ actionMap->insert(name, new ScrAction(defaultKey(name), actionParent, 0x00B7, name));
+ name="unicodeSolidus";
+ actionMap->insert(name, new ScrAction(defaultKey(name), actionParent, 0x2044, name));
+ //Dashes
+ name="unicodeDashEm";
+ actionMap->insert(name, new ScrAction(defaultKey(name), actionParent, 0x2014, name));
+ name="unicodeDashEn";
+ actionMap->insert(name, new ScrAction(defaultKey(name), actionParent, 0x2013, name));
+ name="unicodeDashFigure";
+ actionMap->insert(name, new ScrAction(defaultKey(name), actionParent, 0x2012, name));
+ name="unicodeDashQuotation";
+ actionMap->insert(name, new ScrAction(defaultKey(name), actionParent, 0x2015, name));
+ //Quotes
+ name="unicodeQuoteApostrophe";
+ actionMap->insert(name, new ScrAction(defaultKey(name), actionParent, 0x0027, name));
+ name="unicodeQuoteStraight";
+ actionMap->insert(name, new ScrAction(defaultKey(name), actionParent, 0x0022, name));
+ name="unicodeQuoteSingleLeft";
+ actionMap->insert(name, new ScrAction(defaultKey(name), actionParent, 0x2018, name));
+ name="unicodeQuoteSingleRight";
+ actionMap->insert(name, new ScrAction(defaultKey(name), actionParent, 0x2019, name));
+ name="unicodeQuoteDoubleLeft";
+ actionMap->insert(name, new ScrAction(defaultKey(name), actionParent, 0x201C, name));
+ name="unicodeQuoteDoubleRight";
+ actionMap->insert(name, new ScrAction(defaultKey(name), actionParent, 0x201D, name));
+ name="unicodeQuoteSingleReversed";
+ actionMap->insert(name, new ScrAction(defaultKey(name), actionParent, 0x201B, name));
+ name="unicodeQuoteDoubleReversed";
+ actionMap->insert(name, new ScrAction(defaultKey(name), actionParent, 0x201F, name));
+ name="unicodeQuoteSingleLeftGuillemet";
+ actionMap->insert(name, new ScrAction(defaultKey(name), actionParent, 0x2039, name));
+ name="unicodeQuoteSingleRightGuillemet";
+ actionMap->insert(name, new ScrAction(defaultKey(name), actionParent, 0x203A, name));
+ name="unicodeQuoteDoubleLeftGuillemet";
+ actionMap->insert(name, new ScrAction(defaultKey(name), actionParent, 0x00AB, name));
+ name="unicodeQuoteDoubleRightGuillemet";
+ actionMap->insert(name, new ScrAction(defaultKey(name), actionParent, 0x00BB, name));
+ name="unicodeQuoteLowSingleComma";
+ actionMap->insert(name, new ScrAction(defaultKey(name), actionParent, 0x201A, name));
+ name="unicodeQuoteLowDoubleComma";
+ actionMap->insert(name, new ScrAction(defaultKey(name), actionParent, 0x201E, name));
+ name="unicodeQuoteCJKSingleLeft";
+ actionMap->insert(name, new ScrAction(defaultKey(name), actionParent, 0x300C, name));
+ name="unicodeQuoteCJKSingleRight";
+ actionMap->insert(name, new ScrAction(defaultKey(name), actionParent, 0x300D, name));
+ name="unicodeQuoteCJKDoubleLeft";
+ actionMap->insert(name, new ScrAction(defaultKey(name), actionParent, 0x300E, name));
+ name="unicodeQuoteCJKDoubleRight";
+ actionMap->insert(name, new ScrAction(defaultKey(name), actionParent, 0x300F, name));
+ //Ligatures
+ name="unicodeLigature_ff";
+ actionMap->insert(name, new ScrAction(defaultKey(name), actionParent, 0xFB00, name));
+ name="unicodeLigature_fi";
+ actionMap->insert(name, new ScrAction(defaultKey(name), actionParent, 0xFB01, name));
+ name="unicodeLigature_fl";
+ actionMap->insert(name, new ScrAction(defaultKey(name), actionParent, 0xFB02, name));
+ name="unicodeLigature_ffi";
+ actionMap->insert(name, new ScrAction(defaultKey(name), actionParent, 0xFB03, name));
+ name="unicodeLigature_ffl";
+ actionMap->insert(name, new ScrAction(defaultKey(name), actionParent, 0xFB04, name));
+ name="unicodeLigature_ft";
+ actionMap->insert(name, new ScrAction(defaultKey(name), actionParent, 0xFB05, name));
+ name="unicodeLigature_st";
+ actionMap->insert(name, new ScrAction(defaultKey(name), actionParent, 0xFB06, name));
+
+ //Spaces and special characters
+
+ *actionNamesList << "unicodeSmartHyphen" << "unicodeNonBreakingHyphen" << "unicodeNonBreakingSpace" << "unicodePageNumber" << "unicodePageCount";
+ *actionNamesList << "unicodeSpaceEN" << "unicodeSpaceEM" << "unicodeSpaceThin" << "unicodeSpaceThick" << "unicodeSpaceMid" << "unicodeSpaceHair";
+ //Breaks
+ *actionNamesList << "unicodeNewLine" << "unicodeFrameBreak" << "unicodeColumnBreak" << "unicodeZerowidthSpace";
+ //Copyrights and TMs
+ *actionNamesList << "unicodeCopyRight" << "unicodeRegdTM" << "unicodeTM";
+ //Slashes
+ *actionNamesList << "unicodeSolidus";
+ //Bullets
+ *actionNamesList << "unicodeBullet" << "unicodeMidpoint";
+ //Dashes
+ *actionNamesList << "unicodeDashEm" << "unicodeDashEn" << "unicodeDashFigure" << "unicodeDashQuotation";
+ //Straight quotes
+ *actionNamesList << "unicodeQuoteApostrophe" << "unicodeQuoteStraight";
+ //Double quotes
+ *actionNamesList << "unicodeQuoteDoubleLeft" << "unicodeQuoteDoubleRight" << "unicodeQuoteSingleLeft" << "unicodeQuoteSingleRight";
+ //Alternative single quotes
+ *actionNamesList << "unicodeQuoteSingleReversed" << "unicodeQuoteDoubleReversed";
+ //French quotes
+ *actionNamesList << "unicodeQuoteSingleLeftGuillemet" << "unicodeQuoteSingleRightGuillemet" << "unicodeQuoteDoubleLeftGuillemet" << "unicodeQuoteDoubleRightGuillemet";
+ //German quotes
+ *actionNamesList << "unicodeQuoteLowSingleComma" << "unicodeQuoteLowDoubleComma";
+ //CJK Quotes
+ *actionNamesList << "unicodeQuoteCJKSingleLeft" << "unicodeQuoteCJKSingleRight" << "unicodeQuoteCJKDoubleLeft" << "unicodeQuoteCJKDoubleRight";
+ //Ligatures
+ *actionNamesList << "unicodeLigature_ff" << "unicodeLigature_fi" << "unicodeLigature_fl" << "unicodeLigature_ffi" << "unicodeLigature_ffl" << "unicodeLigature_ft" << "unicodeLigature_st";
+ for ( QStringList::Iterator it = actionNamesList->begin(); it != actionNamesList->end(); ++it )
+ connect( (*actionMap)[*it], SIGNAL(triggeredUnicodeShortcut(const QString&, int)), actionParent, SLOT(specialActionKeyEvent(const QString&, int)) );
+}
+
+void ActionManager::initSpecialActions()
+{
+ QString name;
+ //GUI
+ name="specialToggleAllPalettes";
+// scrActions->insert(name, new ScrAction(ScrAction::DataQString, QPixmap(), QPixmap(), "", defaultKey(name), mainWindow, 0,0.0,name));
+ scrActions->insert(name, new ScrAction( "", defaultKey(name), mainWindow));
+ name="specialToggleAllGuides";
+// scrActions->insert(name, new ScrAction(ScrAction::DataQString, QPixmap(), QPixmap(), "", defaultKey(name), mainWindow, 0,0.0,name));
+ scrActions->insert(name, new ScrAction( "", defaultKey(name), mainWindow));
+ name="specialUnicodeSequenceBegin";
+ scrActions->insert(name, new ScrAction( "", defaultKey(name), mainWindow));
+
+ connect( (*scrActions)["specialToggleAllPalettes"], SIGNAL(triggered()), mainWindow, SLOT(ToggleAllPalettes()) );
+ connect( (*scrActions)["specialToggleAllGuides"], SIGNAL(triggered()), mainWindow, SLOT(ToggleAllGuides()) );
+}
+
+void ActionManager::disconnectModeActions()
+{
+ for ( QStringList::Iterator it = modeActionNames->begin(); it != modeActionNames->end(); ++it )
+ disconnect( (*scrActions)[*it], SIGNAL(toggledData(bool, int)) , mainWindow, SLOT(setAppModeByToggle(bool, int)) );
+}
+
+void ActionManager::connectModeActions()
+{
+ for ( QStringList::Iterator it = modeActionNames->begin(); it != modeActionNames->end(); ++it )
+ connect( (*scrActions)[*it], SIGNAL(toggledData(bool, int)) , mainWindow, SLOT(setAppModeByToggle(bool, int)) );
+}
+
+void ActionManager::disconnectNewDocActions()
+{
+ disconnect( (*scrActions)["itemAdjustFrameToImage"], 0, 0, 0 );
+ disconnect( (*scrActions)["itemAdjustImageToFrame"], 0, 0, 0 );
+ disconnect( (*scrActions)["itemLock"], 0, 0, 0);
+ disconnect( (*scrActions)["itemLockSize"], 0, 0, 0);
+ disconnect( (*scrActions)["itemPrintingEnabled"], 0, 0, 0);
+ disconnect( (*scrActions)["itemFlipH"], 0, 0, 0);
+ disconnect( (*scrActions)["itemFlipV"], 0, 0, 0);
+ disconnect( (*scrActions)["itemCombinePolygons"], 0, 0, 0);
+ disconnect( (*scrActions)["itemSplitPolygons"], 0, 0, 0);
+ disconnect( (*scrActions)["itemUpdateImage"], 0, 0, 0 );
+ disconnect( (*scrActions)["itemDelete"], 0, 0, 0);
+ disconnect( (*scrActions)["extrasHyphenateText"], 0, 0, 0 );
+ disconnect( (*scrActions)["extrasDeHyphenateText"], 0, 0, 0 );
+
+}
+
+void ActionManager::connectNewDocActions(ScribusDoc *currDoc)
+{
+ if (currDoc==NULL)
+ return;
+ connect( (*scrActions)["itemLock"], SIGNAL(triggered()), currDoc, SLOT(itemSelection_ToggleLock()) );
+ connect( (*scrActions)["itemLockSize"], SIGNAL(triggered()), currDoc, SLOT(itemSelection_ToggleSizeLock()));
+ connect( (*scrActions)["itemPrintingEnabled"], SIGNAL(triggered()), currDoc, SLOT(itemSelection_TogglePrintEnabled()));
+ connect( (*scrActions)["itemFlipH"], SIGNAL(triggered()), currDoc, SLOT(itemSelection_FlipH()));
+ connect( (*scrActions)["itemFlipV"], SIGNAL(triggered()), currDoc, SLOT(itemSelection_FlipV()));
+ connect( (*scrActions)["itemCombinePolygons"], SIGNAL(triggered()), currDoc, SLOT(itemSelection_UniteItems()) );
+ connect( (*scrActions)["itemSplitPolygons"], SIGNAL(triggered()), currDoc, SLOT(itemSelection_SplitItems()) );
+ connect( (*scrActions)["itemUpdateImage"], SIGNAL(triggered()), currDoc, SLOT(updatePic()) );
+ connect( (*scrActions)["extrasHyphenateText"], SIGNAL(triggered()), currDoc, SLOT(itemSelection_DoHyphenate()) );
+ connect( (*scrActions)["extrasDeHyphenateText"], SIGNAL(triggered()), currDoc, SLOT(itemSelection_DoDeHyphenate()) );
+ connect( (*scrActions)["itemDelete"], SIGNAL(triggered()), currDoc, SLOT(itemSelection_DeleteItem()) );
+ connect( (*scrActions)["itemAdjustFrameToImage"], SIGNAL(triggered()), currDoc, SLOT(itemSelection_AdjustFrametoImageSize()) );
+ connect( (*scrActions)["itemAdjustImageToFrame"], SIGNAL(triggered()), currDoc, SLOT(itemSelection_AdjustImagetoFrameSize()) );
+}
+
+void ActionManager::disconnectNewViewActions()
+{
+ disconnect( (*scrActions)["viewFitPreview"], 0, 0, 0);
+ disconnect( (*scrActions)["toolsZoomIn"], 0, 0, 0);
+ disconnect( (*scrActions)["toolsZoomOut"], 0, 0, 0);
+ disconnect( (*scrActions)["itemLowerToBottom"], 0, 0, 0);
+ disconnect( (*scrActions)["itemImageIsVisible"], 0, 0, 0);
+ disconnect( (*scrActions)["itemPreviewLow"], SIGNAL(triggeredData(int)), 0, 0 );
+ disconnect( (*scrActions)["itemPreviewNormal"], SIGNAL(triggeredData(int)), 0,0 );
+ disconnect( (*scrActions)["itemPreviewFull"], SIGNAL(triggeredData(int)), 0, 0 );
+ disconnect( (*scrActions)["itemRaise"], 0, 0, 0);
+ disconnect( (*scrActions)["itemLower"], 0, 0, 0);
+ disconnect( (*scrActions)["itemConvertToBezierCurve"], 0, 0, 0);
+ disconnect( (*scrActions)["itemConvertToImageFrame"], 0, 0, 0);
+ disconnect( (*scrActions)["itemConvertToOutlines"], 0, 0, 0);
+ disconnect( (*scrActions)["itemConvertToPolygon"], 0, 0, 0);
+ disconnect( (*scrActions)["itemConvertToTextFrame"], 0, 0, 0);
+ disconnect( (*scrActions)["itemAttachTextToPath"], 0, 0, 0);
+ disconnect( (*scrActions)["itemDetachTextFromPath"], 0, 0, 0);
+ disconnect( (*scrActions)["itemExtendedImageProperties"], 0, 0, 0 );
+}
+
+void ActionManager::connectNewViewActions(ScribusView *currView)
+{
+ if (currView==NULL)
+ return;
+ connect( (*scrActions)["viewFitPreview"], SIGNAL(triggered()), currView, SLOT(togglePreview()) );
+ connect( (*scrActions)["toolsZoomIn"], SIGNAL(triggered()) , currView, SLOT(slotZoomIn()) );
+ connect( (*scrActions)["toolsZoomOut"], SIGNAL(triggered()) , currView, SLOT(slotZoomOut()) );
+ connect( (*scrActions)["itemLowerToBottom"], SIGNAL(triggered()), currView, SLOT(ToBack()) );
+ connect( (*scrActions)["itemRaiseToTop"], SIGNAL(triggered()), currView, SLOT(ToFront()) );
+ connect( (*scrActions)["itemRaise"], SIGNAL(triggered()), currView, SLOT(RaiseItem()) );
+ connect( (*scrActions)["itemLower"], SIGNAL(triggered()), currView, SLOT(LowerItem()) );
+ connect( (*scrActions)["itemConvertToBezierCurve"], SIGNAL(triggered()), currView, SLOT(ToBezierFrame()) );
+ connect( (*scrActions)["itemConvertToImageFrame"], SIGNAL(triggered()), currView, SLOT(ToPicFrame()) );
+ connect( (*scrActions)["itemConvertToOutlines"], SIGNAL(triggered()), currView, SLOT(TextToPath()) );
+ connect( (*scrActions)["itemConvertToPolygon"], SIGNAL(triggered()), currView, SLOT(ToPolyFrame()) );
+ connect( (*scrActions)["itemConvertToTextFrame"], SIGNAL(triggered()), currView, SLOT(ToTextFrame()) );
+ connect( (*scrActions)["itemAttachTextToPath"], SIGNAL(triggered()), currView, SLOT(ToPathText()) );
+ connect( (*scrActions)["itemDetachTextFromPath"], SIGNAL(triggered()), currView, SLOT(FromPathText()) );
+ connect( (*scrActions)["itemExtendedImageProperties"], SIGNAL(triggered()), currView, SLOT(editExtendedImageProperties()) );
+}
+
+void ActionManager::disconnectNewSelectionActions()
+{
+ disconnect( (*scrActions)["itemImageIsVisible"], 0, 0, 0);
+ //Only disconnect triggeredData for data based actions or you will disconnect the internal signal
+ disconnect( (*scrActions)["itemPreviewLow"], SIGNAL(triggeredData(int)) , 0, 0);
+ disconnect( (*scrActions)["itemPreviewNormal"], SIGNAL(triggeredData(int)) , 0, 0);
+ disconnect( (*scrActions)["itemPreviewFull"], SIGNAL(triggeredData(int)) , 0, 0);
+ disconnect( (*scrActions)["editClearContents"], 0, 0, 0);
+}
+
+void ActionManager::connectNewSelectionActions(ScribusView* /*currView*/, ScribusDoc* currDoc)
+{
+ connect( (*scrActions)["itemImageIsVisible"], SIGNAL(toggled(bool)), currDoc, SLOT(itemSelection_ToggleImageShown()) );
+ connect( (*scrActions)["itemPreviewLow"], SIGNAL(triggeredData(int)), currDoc, SLOT(itemSelection_ChangePreviewResolution(int)) );
+ connect( (*scrActions)["itemPreviewNormal"], SIGNAL(triggeredData(int)), currDoc, SLOT(itemSelection_ChangePreviewResolution(int)) );
+ connect( (*scrActions)["itemPreviewFull"], SIGNAL(triggeredData(int)), currDoc, SLOT(itemSelection_ChangePreviewResolution(int)) );
+ connect( (*scrActions)["editClearContents"], SIGNAL(triggered()), currDoc, SLOT(itemSelection_ClearItem()) );
+}
+
+void ActionManager::saveActionShortcutsPreEditMode()
+{
+ for ( QStringList::Iterator it = modeActionNames->begin(); it != modeActionNames->end(); ++it )
+ {
+ (*scrActions)[*it]->setShortcutContext(Qt::WidgetShortcut); // in theory, this should be enough, but...
+ (*scrActions)[*it]->saveShortcut();
+#ifdef Q_WS_MAC
+ if ((*scrActions)[*it]->menu() != NULL)
+ (*scrActions)[*it]->setEnabled(false);
+#endif
+ }
+ for ( QStringList::Iterator it = nonEditActionNames->begin(); it != nonEditActionNames->end(); ++it )
+ {
+ (*scrActions)[*it]->setShortcutContext(Qt::WidgetShortcut); // in theory, this should be enough, but...
+ (*scrActions)[*it]->saveShortcut();
+ }
+}
+
+void ActionManager::restoreActionShortcutsPostEditMode()
+{
+ for ( QStringList::Iterator it = modeActionNames->begin(); it != modeActionNames->end(); ++it )
+ {
+ (*scrActions)[*it]->setShortcutContext(Qt::WindowShortcut); // see above
+ (*scrActions)[*it]->restoreShortcut();
+#ifdef Q_WS_MAC
+ (*scrActions)[*it]->setEnabled(true);
+#endif
+ }
+ for ( QStringList::Iterator it = nonEditActionNames->begin(); it != nonEditActionNames->end(); ++it )
+ {
+ (*scrActions)[*it]->setShortcutContext(Qt::WindowShortcut); // see above
+ (*scrActions)[*it]->restoreShortcut();
+ }
+}
+
+void ActionManager::enableActionStringList(QMap<QString, QPointer<ScrAction> > *actionMap, QStringList *list, bool enabled, bool checkingUnicode, const QString& fontName)
+{
+ for ( QStringList::Iterator it = list->begin(); it != list->end(); ++it )
+ {
+ if(!checkingUnicode)
+ (*actionMap)[*it]->setEnabled(enabled);
+ else
+ {
+ //For UnicodeChar actions, only enable when the current font has that character.
+ if (mainWindow->HaveDoc && (*actionMap)[*it]->actionType()==ScrAction::UnicodeChar)
+ {
+ int charCode=(*actionMap)[*it]->actionInt();
+ if(charCode==-1 ||
+ charCode==23 ||
+ charCode==24 ||
+ charCode==26 ||
+ charCode==27 ||
+ charCode==28 ||
+ charCode==29 ||
+ charCode==30 ||
+ ((*mainWindow->doc->AllFonts)[fontName].usable() &&
+ (*mainWindow->doc->AllFonts)[fontName].canRender(charCode)) )
+ (*actionMap)[*it]->setEnabled(true);
+ else
+ (*actionMap)[*it]->setEnabled(false);
+ }
+ }
+ }
+}
+
+void ActionManager::enableUnicodeActions(QMap<QString, QPointer<ScrAction> > *actionMap, bool enabled, const QString& fontName)
+{
+ enableActionStringList(actionMap, unicodeCharActionNames, enabled, enabled, fontName);
+ (*actionMap)["insertGlyph"]->setEnabled(enabled);
+}
+
+void ActionManager::setPDFActions(ScribusView *currView)
+{
+ if (currView==NULL)
+ return;
+ PageItem* currItem = mainWindow->doc->m_Selection->itemAt(0);
+ if (currItem==NULL)
+ return;
+
+ disconnect( (*scrActions)["itemPDFIsBookmark"], 0, 0, 0);
+ disconnect( (*scrActions)["itemPDFIsAnnotation"], 0, 0, 0);
+
+ if (!currItem->asTextFrame())
+ {
+ (*scrActions)["itemPDFIsAnnotation"]->setEnabled(false);
+ (*scrActions)["itemPDFIsBookmark"]->setEnabled(false);
+ (*scrActions)["itemPDFIsAnnotation"]->setChecked(false);
+ (*scrActions)["itemPDFIsBookmark"]->setChecked(false);
+ (*scrActions)["itemPDFAnnotationProps"]->setEnabled(false);
+ (*scrActions)["itemPDFFieldProps"]->setEnabled(false);
+ return;
+ }
+
+ (*scrActions)["itemPDFIsAnnotation"]->setEnabled(true);
+ (*scrActions)["itemPDFIsBookmark"]->setEnabled(true);
+ (*scrActions)["itemPDFIsAnnotation"]->setChecked(currItem->isAnnotation());
+ (*scrActions)["itemPDFIsBookmark"]->setChecked(currItem->isBookmark);
+ if (currItem->isAnnotation())
+ {
+ int aType=currItem->annotation().Type();
+ bool setter=((aType == 0) || (aType == 1) || (aType > 9));
+ (*scrActions)["itemPDFAnnotationProps"]->setEnabled(setter);
+ (*scrActions)["itemPDFFieldProps"]->setEnabled(!setter);
+ }
+ else
+ {
+ (*scrActions)["itemPDFAnnotationProps"]->setEnabled(false);
+ (*scrActions)["itemPDFFieldProps"]->setEnabled(false);
+ }
+ connect( (*scrActions)["itemPDFIsAnnotation"], SIGNAL(triggered()), currView, SLOT(ToggleAnnotation()) );
+ connect( (*scrActions)["itemPDFIsBookmark"], SIGNAL(triggered()), currView, SLOT(ToggleBookmark()) );
+}
+
+void ActionManager::changeEvent(QEvent *e)
+{
+ if (e->type() == QEvent::LanguageChange)
+ {
+ languageChange();
+ }
+}
+
+void ActionManager::languageChange()
+{
+ createDefaultMenuNames();
+ createDefaultNonMenuNames();
+
+ //File Menu
+ (*scrActions)["fileNew"]->setTexts( tr("&New"));
+ (*scrActions)["fileNewFromTemplate"]->setTexts( tr("New &from Template..."));
+ (*scrActions)["fileOpen"]->setTexts( tr("&Open..."));
+ (*scrActions)["fileClose"]->setTexts( tr("&Close"));
+ (*scrActions)["fileSave"]->setTexts( tr("&Save"));
+ (*scrActions)["fileSaveAs"]->setTexts( tr("Save &As..."));
+ (*scrActions)["fileRevert"]->setTexts( tr("Re&vert to Saved"));
+ (*scrActions)["fileCollect"]->setTexts( tr("Collect for O&utput..."));
+ (*scrActions)["fileImportText"]->setTexts( tr("Get Text..."));
+ (*scrActions)["fileImportAppendText"]->setTexts( tr("Append &Text..."));
+ (*scrActions)["fileImportImage"]->setTexts( tr("Get Image..."));
+ (*scrActions)["fileImportVector"]->setTexts( tr("Get Vector File..."));
+
+ (*scrActions)["fileExportText"]->setTexts( tr("Save &Text..."));
+ (*scrActions)["fileExportAsEPS"]->setTexts( tr("Save as &EPS..."));
+ (*scrActions)["fileExportAsPDF"]->setTexts( tr("Save as P&DF..."));
+ (*scrActions)["fileDocSetup"]->setTexts( tr("Document &Setup..."));
+ (*scrActions)["filePreferences"]->setTexts( tr("P&references..."));
+ (*scrActions)["filePrint"]->setTexts( tr("&Print..."));
+ (*scrActions)["PrintPreview"]->setTexts( tr("Print Previe&w"));
+ (*scrActions)["fileQuit"]->setTexts( tr("&Quit"));
+ //Edit Menu
+ (*scrActions)["editUndoAction"]->setTexts( tr("&Undo"));
+ (*scrActions)["editRedoAction"]->setTexts( tr("&Redo"));
+ (*scrActions)["editActionMode"]->setTexts( tr("&Item Action Mode"));
+ (*scrActions)["editCut"]->setTexts( tr("Cu&t"));
+ (*scrActions)["editCopy"]->setTexts( tr("&Copy"));
+ (*scrActions)["editPaste"]->setTexts( tr("&Paste"));
+ (*scrActions)["editCopyContents"]->setTexts( tr("&Copy"));
+ (*scrActions)["editPasteContents"]->setTexts( tr("&Paste"));
+ (*scrActions)["editPasteContentsAbs"]->setTexts( tr("Paste (&Absolute)"));
+ (*scrActions)["editPasteImageFromClipboard"]->setTexts( tr("Paste Image from Clipboard"));
+ (*scrActions)["editClearContents"]->setTexts( tr("C&lear"));
+ (*scrActions)["editSelectAll"]->setTexts( tr("Select &All"));
+ (*scrActions)["editSelectAllOnLayer"]->setTexts( tr("Advanced Select All..."));
+ (*scrActions)["editDeselectAll"]->setTexts( tr("&Deselect All"));
+ (*scrActions)["editSearchReplace"]->setTexts( tr("&Search/Replace..."));
+ (*scrActions)["editEditWithImageEditor"]->setTexts( tr("Edit Image..."));
+ (*scrActions)["editEditRenderSource"]->setTexts( tr("Edit Source..."));
+ (*scrActions)["editColors"]->setTexts( tr("C&olors..."));
+ (*scrActions)["editReplaceColors"]->setTexts( tr("Replace Colors..."));
+ (*scrActions)["editPatterns"]->setTexts( tr("Patterns..."));
+ (*scrActions)["editStyles"]->setTexts( tr("S&tyles..."));
+ (*scrActions)["editMasterPages"]->setTexts( tr("&Master Pages..."));
+ (*scrActions)["editJavascripts"]->setTexts( tr("&JavaScripts..."));
+
+ int font_sizes[] = {7, 9, 10, 11, 12, 14, 18, 24, 36, 48, 60, 72};
+ size_t f_size = sizeof(font_sizes) / sizeof(*font_sizes);
+ for (uint s = 0; s < f_size; ++s)
+ {
+ QString fontSizeName=QString("fontSize%1").arg(font_sizes[s]);
+ (*scrActions)[fontSizeName]->setTexts( tr("%1 pt").arg(font_sizes[s]));
+ }
+ (*scrActions)["fontSizeOther"]->setTexts( tr("&Other..."));
+ (*scrActions)["alignLeft"]->setTexts( tr("&Left"));
+ (*scrActions)["alignCenter"]->setTexts( tr("&Center"));
+ (*scrActions)["alignRight"]->setTexts( tr("&Right"));
+ (*scrActions)["alignBlock"]->setTexts( tr("&Block"));
+ (*scrActions)["alignForced"]->setTexts( tr("&Forced"));
+
+/*
+ for (uint i=0; i<=100 ; i+=10)
+ {
+ QString shadeName=QString("shade%1").arg(i);
+ (*scrActions)[shadeName]->setTexts( tr("&%1 %").arg(i));
+ }
+
+ (*scrActions)["shadeOther"]->setTexts( tr("&Other..."));
+*/
+ (*scrActions)["typeEffectNormal"]->setTexts( tr("&Normal"));
+ (*scrActions)["typeEffectUnderline"]->setTexts( tr("&Underline"));
+ (*scrActions)["typeEffectUnderlineWords"]->setTexts( tr("Underline &Words"));
+ (*scrActions)["typeEffectStrikeThrough"]->setTexts( tr("&Strike Through"));
+ (*scrActions)["typeEffectAllCaps"]->setTexts( tr("&All Caps"));
+ (*scrActions)["typeEffectSmallCaps"]->setTexts( tr("Small &Caps"));
+ (*scrActions)["typeEffectSuperscript"]->setTexts( tr("Su&perscript"));
+ (*scrActions)["typeEffectSubscript"]->setTexts( tr("Su&bscript"));
+ (*scrActions)["typeEffectOutline"]->setTexts( tr("&Outline", "type effect"));
+ (*scrActions)["typeEffectShadow"]->setTexts( tr("S&hadow"));
+
+ (*scrActions)["styleImageEffects"]->setTexts( tr("&Image Effects"));
+ (*scrActions)["styleTabulators"]->setTexts( tr("&Tabulators..."));
+
+ //Item Menu
+ (*scrActions)["itemDuplicate"]->setTexts( tr("D&uplicate"));
+ (*scrActions)["itemMulDuplicate"]->setTexts( tr("&Multiple Duplicate"));
+ (*scrActions)["itemDelete"]->setTexts( tr("&Delete"));
+ (*scrActions)["itemGroup"]->setTexts( tr("&Group"));
+ (*scrActions)["itemUngroup"]->setTexts( tr("&Ungroup"));
+ (*scrActions)["itemLock"]->setTexts( tr("Is &Locked"));
+ (*scrActions)["itemLockSize"]->setTexts( tr("Si&ze is Locked"));
+ (*scrActions)["itemPrintingEnabled"]->setTexts( tr("&Printing Enabled"));
+ (*scrActions)["itemFlipH"]->setTexts( tr("&Flip Horizontally"));
+ (*scrActions)["itemFlipV"]->setTexts( tr("&Flip Vertically"));
+ (*scrActions)["itemLowerToBottom"]->setTexts( tr("Lower to &Bottom"));
+ (*scrActions)["itemRaiseToTop"]->setTexts( tr("Raise to &Top"));
+ (*scrActions)["itemLower"]->setTexts( tr("&Lower"));
+ (*scrActions)["itemRaise"]->setTexts( tr("&Raise"));
+// (*scrActions)["itemSendToScrapbook"]->setTexts( tr("Send to S&crapbook"));
+ (*scrActions)["itemSendToPattern"]->setTexts( tr("Send to Patterns"));
+ (*scrActions)["itemAttributes"]->setTexts( tr("&Attributes..."));
+ (*scrActions)["itemImageInfo"]->setTexts( tr("More Info..."));
+ (*scrActions)["itemImageIsVisible"]->setTexts( tr("I&mage Visible"));
+ (*scrActions)["itemUpdateImage"]->setTexts( tr("&Update Image"));
+ (*scrActions)["itemAdjustFrameToImage"]->setTexts( tr("Adjust Frame to Image"));
+ (*scrActions)["itemAdjustImageToFrame"]->setTexts( tr("Adjust Image to Frame"));
+ (*scrActions)["itemExtendedImageProperties"]->setTexts( tr("Extended Image Properties"));
+ (*scrActions)["itemPreviewLow"]->setTexts( tr("&Low Resolution"));
+ (*scrActions)["itemPreviewNormal"]->setTexts( tr("&Normal Resolution"));
+ (*scrActions)["itemPreviewFull"]->setTexts( tr("&Full Resolution"));
+ (*scrActions)["itemPDFIsBookmark"]->setTexts( tr("Is PDF &Bookmark"));
+ (*scrActions)["itemPDFIsAnnotation"]->setTexts( tr("Is PDF A&nnotation"));
+ (*scrActions)["itemPDFAnnotationProps"]->setTexts( tr("Annotation P&roperties"));
+ (*scrActions)["itemPDFFieldProps"]->setTexts( tr("Field P&roperties"));
+ (*scrActions)["itemShapeEdit"]->setTexts( tr("&Edit Shape..."));
+ (*scrActions)["itemAttachTextToPath"]->setTexts( tr("&Attach Text to Path"));
+ (*scrActions)["itemDetachTextFromPath"]->setTexts( tr("&Detach Text from Path"));
+ (*scrActions)["itemCombinePolygons"]->setTexts( tr("&Combine Polygons"));
+ (*scrActions)["itemSplitPolygons"]->setTexts( tr("Split &Polygons"));
+ (*scrActions)["itemConvertToBezierCurve"]->setTexts( tr("&Bezier Curve"));
+ (*scrActions)["itemConvertToImageFrame"]->setTexts( tr("&Image Frame"));
+ (*scrActions)["itemConvertToOutlines"]->setTexts( tr("&Outlines", "Convert to oulines"));
+ (*scrActions)["itemConvertToPolygon"]->setTexts( tr("&Polygon"));
+ (*scrActions)["itemConvertToTextFrame"]->setTexts( tr("&Text Frame"));
+
+ //Insert Menu
+ (*scrActions)["insertFrame"]->setTexts( tr("&Frame..."));
+ (*scrActions)["insertGlyph"]->setTexts( tr("&Glyph..."));
+ (*scrActions)["insertSampleText"]->setTexts( tr("Sample Text"));
+ (*scrActions)["stickyTools"]->setTexts( tr("Sticky Tools"));
+
+ //Page menu
+ (*scrActions)["pageInsert"]->setTexts( tr("&Insert..."));
+ (*scrActions)["pageImport"]->setTexts( tr("Im&port..."));
+ (*scrActions)["pageDelete"]->setTexts( tr("&Delete..."));
+ (*scrActions)["pageCopy"]->setTexts( tr("&Copy..."));
+ (*scrActions)["pageMove"]->setTexts( tr("&Move..."));
+ (*scrActions)["pageApplyMasterPage"]->setTexts( tr("&Apply Master Page..."));
+ (*scrActions)["pageCopyToMasterPage"]->setTexts( tr("Convert to Master Page..."));
+ (*scrActions)["pageManageGuides"]->setTexts( tr("Manage &Guides..."));
+ (*scrActions)["pageManageMargins"]->setTexts( tr("Manage Page Properties..."));
+
+ //View Menu
+ (*scrActions)["viewFitInWindow"]->setTexts( tr("&Fit to Height"));
+ (*scrActions)["viewFitWidth"]->setTexts( tr("Fit to Width"));
+ (*scrActions)["viewFit50"]->setTexts( tr("&50%"));
+ (*scrActions)["viewFit75"]->setTexts( tr("&75%"));
+ (*scrActions)["viewFit100"]->setTexts( tr("&100%"));
+ (*scrActions)["viewFit200"]->setTexts( tr("&200%"));
+ (*scrActions)["viewFit400"]->setTexts( tr("&400%"));
+ (*scrActions)["viewFitPreview"]->setTexts( tr("Preview Mode"));
+ (*scrActions)["viewShowMargins"]->setTexts( tr("Show &Margins"));
+ (*scrActions)["viewShowBleeds"]->setTexts( tr("Show Bleeds"));
+ (*scrActions)["viewShowFrames"]->setTexts( tr("Show &Frames"));
+ (*scrActions)["viewShowLayerMarkers"]->setTexts( tr("Show Layer Indicators"));
+ (*scrActions)["viewShowImages"]->setTexts( tr("Show &Images"));
+ (*scrActions)["viewShowGrid"]->setTexts( tr("Show &Grid"));
+ (*scrActions)["viewShowGuides"]->setTexts( tr("Show G&uides"));
+ (*scrActions)["viewShowColumnBorders"]->setTexts( tr("Show Text Frame Columns"));
+ (*scrActions)["viewShowBaseline"]->setTexts( tr("Show &Baseline Grid"));
+ (*scrActions)["viewShowTextChain"]->setTexts( tr("Show &Text Chain"));
+ (*scrActions)["viewShowTextControls"]->setTexts( tr("Show Control Characters"));
+ (*scrActions)["viewShowRulers"]->setTexts( tr("Show Rulers"));
+ (*scrActions)["viewRulerMode"]->setTexts( tr("Rulers Relative to Page"));
+ (*scrActions)["viewSnapToGrid"]->setTexts( tr("Sn&ap to Grid"));
+ (*scrActions)["viewSnapToGuides"]->setTexts( tr("Sna&p to Guides"));
+ (*scrActions)["viewShowContextMenu"]->setTexts( tr("Show Context Menu"));
+// (*scrActions)["viewNewView"]->setTexts( tr("New View"));
+
+ //Tool menu
+ (*scrActions)["toolsProperties"]->setTexts( tr("&Properties"));
+ (*scrActions)["toolsOutline"]->setTexts( tr("&Outline", "Document Outline Palette"));
+ (*scrActions)["toolsScrapbook"]->setTexts( tr("&Scrapbook"));
+ (*scrActions)["toolsLayers"]->setTexts( tr("&Layers"));
+ (*scrActions)["toolsPages"]->setTexts( tr("&Arrange Pages"));
+ (*scrActions)["toolsBookmarks"]->setTexts( tr("&Bookmarks"));
+ (*scrActions)["toolsMeasurements"]->setTexts( tr("&Measurements"));
+ (*scrActions)["toolsActionHistory"]->setTexts( tr("Action &History"));
+ (*scrActions)["toolsPreflightVerifier"]->setTexts( tr("Preflight &Verifier"));
+ (*scrActions)["toolsAlignDistribute"]->setTexts( tr("&Align and Distribute"));
+ (*scrActions)["toolsToolbarTools"]->setTexts( tr("&Tools"));
+ (*scrActions)["toolsToolbarPDF"]->setTexts( tr("P&DF Tools"));
+
+ //toolbar only items
+ (*scrActions)["toolsSelect"]->setTexts( tr("Select Item"));
+ (*scrActions)["toolsRotate"]->setTexts( tr("Rotate Item"));
+ (*scrActions)["toolsZoom"]->setTexts( tr("Zoom in or out"));
+ (*scrActions)["toolsZoomIn"]->setTexts( tr("Zoom in"));
+ (*scrActions)["toolsZoomOut"]->setTexts( tr("Zoom out"));
+ (*scrActions)["toolsEditContents"]->setTexts( tr("Edit Contents of Frame"));
+ (*scrActions)["toolsEditWithStoryEditor"]->setText( tr("Edit Text..."));
+ (*scrActions)["toolsLinkTextFrame"]->setTexts( tr("Link Text Frames"));
+ (*scrActions)["toolsUnlinkTextFrame"]->setTexts( tr("Unlink Text Frames"));
+ (*scrActions)["toolsEyeDropper"]->setTexts( tr("&Eye Dropper"));
+ (*scrActions)["toolsCopyProperties"]->setTexts( tr("Copy Item Properties"));
+
+ (*scrActions)["toolsInsertTextFrame"]->setText( tr("Insert &Text Frame"));
+ (*scrActions)["toolsInsertImageFrame"]->setText( tr("Insert &Image Frame"));
+ (*scrActions)["toolsInsertRenderFrame"]->setText( tr("Insert &Render Frame"));
+ (*scrActions)["toolsInsertTableFrame"]->setText( tr("Insert T&able"));
+ (*scrActions)["toolsInsertShape"]->setText( tr("Insert &Shape"));
+ (*scrActions)["toolsInsertPolygon"]->setText( tr("Insert &Polygon"));
+ (*scrActions)["toolsInsertLine"]->setText( tr("Insert &Line"));
+ (*scrActions)["toolsInsertBezier"]->setText( tr("Insert &Bezier Curve"));
+ (*scrActions)["toolsInsertFreehandLine"]->setText( tr("Insert &Freehand Line"));
+
+ (*scrActions)["toolsPDFPushButton"]->setTexts( tr("Insert PDF Push Button"));
+ (*scrActions)["toolsPDFTextField"]->setTexts( tr("Insert PDF Text Field"));
+ (*scrActions)["toolsPDFCheckBox"]->setTexts( tr("Insert PDF Check Box"));
+ (*scrActions)["toolsPDFComboBox"]->setTexts( tr("Insert PDF Combo Box"));
+ (*scrActions)["toolsPDFListBox"]->setTexts( tr("Insert PDF List Box"));
+ (*scrActions)["toolsPDFAnnotText"]->setTexts( tr("Insert Text Annotation"));
+ (*scrActions)["toolsPDFAnnotLink"]->setTexts( tr("Insert Link Annotation"));
+
+
+ //Extras Menu
+ (*scrActions)["extrasManageImages"]->setTexts( tr("&Manage Images"));
+ (*scrActions)["extrasHyphenateText"]->setTexts( tr("&Hyphenate Text"));
+ (*scrActions)["extrasDeHyphenateText"]->setTexts( tr("Dehyphenate Text"));
+ (*scrActions)["extrasGenerateTableOfContents"]->setTexts( tr("&Generate Table Of Contents"));
+
+ //Windows Menu
+ (*scrActions)["windowsCascade"]->setText( tr("&Cascade"));
+ (*scrActions)["windowsTile"]->setText( tr("&Tile"));
+
+ //Help Menu
+ (*scrActions)["helpAboutScribus"]->setTexts( tr("&About Scribus"));
+ (*scrActions)["helpAboutPlugins"]->setTexts( tr("&About Plugins"));
+ (*scrActions)["helpAboutQt"]->setTexts( tr("About &Qt"));
+ (*scrActions)["helpTooltips"]->setTexts( tr("Toolti&ps"));
+ (*scrActions)["showMouseCoordinates"]->setTexts( tr("Move/Resize Value Indicator"));
+ (*scrActions)["helpManual"]->setTexts( tr("Scribus &Manual..."));
+ (*scrActions)["helpOnlineWWW"]->setTexts( tr("Scribus Homepage"));
+ (*scrActions)["helpOnlineDocs"]->setTexts( tr("Scribus Online Documentation"));
+ (*scrActions)["helpOnlineWiki"]->setTexts( tr("Scribus Wiki"));
+ (*scrActions)["helpOnlineTutorial1"]->setTexts( tr("Getting Started with Scribus"));
+ (*scrActions)["helpCheckUpdates"]->setTexts( tr("Check for Updates"));
+
+ //GUI and specials
+ (*scrActions)["specialToggleAllPalettes"]->setTexts( tr("Toggle Palettes"));
+ (*scrActions)["specialToggleAllGuides"]->setTexts( tr("Toggle Guides"));
+ (*scrActions)["specialUnicodeSequenceBegin"]->setTexts( tr("Insert Unicode Character Begin Sequence"));
+ languageChangeUnicodeActions(scrActions);
+ languageChangeActions();
+}
+
+void ActionManager::languageChangeUnicodeActions(QMap<QString, QPointer<ScrAction> > *actionMap)
+{
+ //typography
+ (*actionMap)["unicodeSmartHyphen"]->setText( tr("Soft &Hyphen"));
+ (*actionMap)["unicodeNonBreakingHyphen"]->setText( tr("Non Breaking Dash"));
+ (*actionMap)["unicodeNonBreakingSpace"]->setText( tr("Non Breaking &Space"));
+ (*actionMap)["unicodePageNumber"]->setText( tr("Page &Number"));
+ (*actionMap)["unicodePageCount"]->setText( tr("Number of Pages"));
+ (*actionMap)["unicodeNewLine"]->setText( tr("New Line"));
+ (*actionMap)["unicodeFrameBreak"]->setText( tr("Frame Break"));
+ (*actionMap)["unicodeColumnBreak"]->setText( tr("Column Break"));
+ (*actionMap)["unicodeZerowidthSpace"]->setText( tr("&Zero Width Space"));
+ (*actionMap)["unicodeZerowidthNonBreakingSpace"]->setText( tr("Zero Width NB Space"));
+ (*actionMap)["unicodeCopyRight"]->setTexts( tr("Copyright"));
+ (*actionMap)["unicodeRegdTM"]->setTexts( tr("Registered Trademark"));
+ (*actionMap)["unicodeTM"]->setTexts( tr("Trademark"));
+ (*actionMap)["unicodeSolidus"]->setTexts( tr("Solidus"));
+ (*actionMap)["unicodeBullet"]->setTexts( tr("Bullet"));
+ (*actionMap)["unicodeMidpoint"]->setTexts( tr("Middle Dot"));
+ (*actionMap)["unicodeDashEm"]->setTexts( tr("Em Dash"));
+ (*actionMap)["unicodeDashEn"]->setTexts( tr("En Dash"));
+ (*actionMap)["unicodeDashFigure"]->setTexts( tr("Figure Dash"));
+ (*actionMap)["unicodeDashQuotation"]->setTexts( tr("Quotation Dash"));
+
+ (*actionMap)["unicodeQuoteApostrophe"]->setTexts( tr("Apostrophe", "Unicode 0x0027"));
+ (*actionMap)["unicodeQuoteStraight"]->setTexts( tr("Straight Double", "Unicode 0x0022"));
+ (*actionMap)["unicodeQuoteSingleLeft"]->setTexts( tr("Single Left", "Unicode 0x2018"));
+ (*actionMap)["unicodeQuoteSingleRight"]->setTexts( tr("Single Right", "Unicode 0x2019"));
+ (*actionMap)["unicodeQuoteDoubleLeft"]->setTexts( tr("Double Left", "Unicode 0x201C"));
+ (*actionMap)["unicodeQuoteDoubleRight"]->setTexts( tr("Double Right", "Unicode 0x201D"));
+ (*actionMap)["unicodeQuoteSingleReversed"]->setTexts( tr("Single Reversed", "Unicode 0x201B"));
+ (*actionMap)["unicodeQuoteDoubleReversed"]->setTexts( tr("Double Reversed", "Unicode 0x201F"));
+ (*actionMap)["unicodeQuoteSingleLeftGuillemet"]->setTexts( tr("Single Left Guillemet", "Unicode 0x2039"));
+ (*actionMap)["unicodeQuoteSingleRightGuillemet"]->setTexts( tr("Single Right Guillemet", "Unicode 0x203A"));
+ (*actionMap)["unicodeQuoteDoubleLeftGuillemet"]->setTexts( tr("Double Left Guillemet", "Unicode 0x00AB"));
+ (*actionMap)["unicodeQuoteDoubleRightGuillemet"]->setTexts( tr("Double Right Guillemet", "Unicode 0x00BB"));
+ (*actionMap)["unicodeQuoteLowSingleComma"]->setTexts( tr("Low Single Comma", "Unicode 0x201A"));
+ (*actionMap)["unicodeQuoteLowDoubleComma"]->setTexts( tr("Low Double Comma", "Unicode 0x201E"));
+ (*actionMap)["unicodeQuoteCJKSingleLeft"]->setTexts( tr("CJK Single Left", "Unicode 0x300C"));
+ (*actionMap)["unicodeQuoteCJKSingleRight"]->setTexts( tr("CJK Single Right", "Unicode 0x300D"));
+ (*actionMap)["unicodeQuoteCJKDoubleLeft"]->setTexts( tr("CJK Double Left", "Unicode 0x300E"));
+ (*actionMap)["unicodeQuoteCJKDoubleRight"]->setTexts( tr("CJK Double Right", "Unicode 0x300F"));
+
+ (*actionMap)["unicodeSpaceEN"]->setTexts( tr("En Space"));
+ (*actionMap)["unicodeSpaceEM"]->setTexts( tr("Em Space"));
+ (*actionMap)["unicodeSpaceThin"]->setTexts( tr("Thin Space"));
+ (*actionMap)["unicodeSpaceThick"]->setTexts( tr("Thick Space"));
+ (*actionMap)["unicodeSpaceMid"]->setTexts( tr("Mid Space"));
+ (*actionMap)["unicodeSpaceHair"]->setTexts( tr("Hair Space"));
+
+// (*actionMap)["unicodeSmartHyphen"]->setText( tr("Insert Smart Hyphen"));
+// (*actionMap)["unicodeNonBreakingHyphen"]->setText( tr("Insert Non Breaking Dash"));
+// (*actionMap)["unicodeNonBreakingSpace"]->setText( tr("Insert Non Breaking Space"));
+// (*actionMap)["unicodePageNumber"]->setText( tr("Insert Page Number"));
+// (*actionMap)["unicodeNewLine"]->setText( tr("New Line"));
+// (*actionMap)["unicodeFrameBreak"]->setText( tr("Frame Break"));
+// (*actionMap)["unicodeColumnBreak"]->setText( tr("Column Break"));
+// (*actionMap)["unicodeZerowidthSpace"]->setText( tr("&Zero Width Space"));
+// (*actionMap)["unicodeZerowidthNonBreakingSpace"]->setText( tr("Zero Width NB Space"));
+
+ (*actionMap)["unicodeLigature_ff"]->setTexts( tr("ff"));
+ (*actionMap)["unicodeLigature_fi"]->setTexts( tr("fi"));
+ (*actionMap)["unicodeLigature_fl"]->setTexts( tr("fl"));
+ (*actionMap)["unicodeLigature_ffi"]->setTexts( tr("ffi"));
+ (*actionMap)["unicodeLigature_ffl"]->setTexts( tr("ffl"));
+ (*actionMap)["unicodeLigature_ft"]->setTexts( tr("ft"));
+ (*actionMap)["unicodeLigature_st"]->setTexts( tr("st"));
+}
+
+void ActionManager::createDefaultShortcuts()
+{
+ defKeys.clear();
+
+ defKeys.insert("fileNew", QKeySequence::New);
+ defKeys.insert("fileNewFromTemplate", Qt::CTRL+Qt::ALT+Qt::Key_N);
+ defKeys.insert("fileOpen", QKeySequence::Open);
+ defKeys.insert("fileClose", QKeySequence::Close);
+ defKeys.insert("fileSave", QKeySequence::Save);
+ defKeys.insert("fileSaveAs", Qt::CTRL+Qt::SHIFT+Qt::Key_S);
+ defKeys.insert("fileImportText", Qt::CTRL+Qt::Key_I);
+ defKeys.insert("fileImportImage", Qt::CTRL+Qt::Key_I);
+ defKeys.insert("filePrint", QKeySequence::Print);
+ defKeys.insert("PrintPreview", Qt::CTRL+Qt::ALT+Qt::Key_P);
+ defKeys.insert("fileQuit", Qt::CTRL+Qt::Key_Q);
+ //Edit Menu
+ defKeys.insert("editUndoAction", QKeySequence::Undo);
+ defKeys.insert("editRedoAction", QKeySequence::Redo);
+ defKeys.insert("editCut", QKeySequence::Cut);
+ defKeys.insert("editCopy", QKeySequence::Copy);
+ defKeys.insert("editPaste", QKeySequence::Paste);
+ defKeys.insert("editCopyContents", Qt::CTRL+Qt::SHIFT+Qt::Key_C);
+ defKeys.insert("editPasteContents", Qt::CTRL+Qt::SHIFT+Qt::Key_V);
+ defKeys.insert("editPasteContentsAbs", Qt::CTRL+Qt::ALT+Qt::SHIFT+Qt::Key_V);
+ defKeys.insert("editSelectAll", Qt::CTRL+Qt::Key_A);
+ defKeys.insert("editSelectAllOnLayer", Qt::CTRL+Qt::ALT+Qt::Key_A);
+ defKeys.insert("editDeselectAll", Qt::CTRL+Qt::SHIFT+Qt::Key_A);
+ defKeys.insert("editSearchReplace", Qt::CTRL+Qt::Key_F);
+ defKeys.insert("editStyles", QKeySequence(Qt::Key_F3));
+ defKeys.insert("styleImageEffects", Qt::CTRL+Qt::Key_E);
+
+ //Item Menu
+ defKeys.insert("itemDuplicate", Qt::CTRL+Qt::Key_D);
+ defKeys.insert("itemMulDuplicate", Qt::CTRL+Qt::SHIFT+Qt::Key_D);
+ defKeys.insert("itemDelete", Qt::CTRL+Qt::Key_K);
+ defKeys.insert("itemGroup", Qt::CTRL+Qt::Key_G);
+ defKeys.insert("itemUngroup", Qt::CTRL+Qt::SHIFT+Qt::Key_G);
+ defKeys.insert("itemLock", Qt::CTRL+Qt::Key_L);
+ defKeys.insert("itemLockSize", Qt::CTRL+Qt::SHIFT+Qt::Key_L);
+ defKeys.insert("itemLowerToBottom", Qt::Key_End);
+ defKeys.insert("itemRaiseToTop", Qt::Key_Home);
+ defKeys.insert("itemLower", Qt::CTRL+Qt::Key_End);
+ defKeys.insert("itemRaise", Qt::CTRL+Qt::Key_Home);
+
+ //Insert Menu
+ //Page menu
+ //View Menu
+ defKeys.insert("viewFitInWindow", Qt::CTRL+Qt::Key_0);
+ defKeys.insert("viewFit100", Qt::CTRL+Qt::Key_1);
+ defKeys.insert("viewShowRulers", Qt::CTRL+Qt::SHIFT+Qt::Key_R);
+ defKeys.insert("viewShowContextMenu", Qt::Key_Menu); //Context menu key on Windows. Do we have one to use on Linux/OSX? Super_L ?
+
+ //Tool menu
+ defKeys.insert("toolsProperties", Qt::Key_F2);
+ defKeys.insert("toolsLayers", Qt::Key_F6);
+
+ //toolbar only items
+ defKeys.insert("toolsSelect", Qt::Key_C);
+ defKeys.insert("toolsInsertTextFrame", QKeySequence(Qt::Key_T));
+ defKeys.insert("toolsInsertImageFrame", Qt::Key_I);
+ defKeys.insert("toolsInsertTableFrame", Qt::Key_A);
+ defKeys.insert("toolsInsertShape", Qt::Key_S);
+ defKeys.insert("toolsInsertPolygon", Qt::Key_P);
+ defKeys.insert("toolsInsertLine", Qt::Key_L);
+ defKeys.insert("toolsInsertBezier", Qt::Key_B);
+ defKeys.insert("toolsInsertFreehandLine", Qt::Key_F);
+ defKeys.insert("toolsInsertRenderFrame", Qt::Key_D); //TODO: First free key. Select a meaningful
+ defKeys.insert("toolsRotate", Qt::Key_R);
+ defKeys.insert("toolsZoom", Qt::Key_Z);
+ defKeys.insert("toolsZoomIn", Qt::CTRL+Qt::Key_Plus);
+ defKeys.insert("toolsZoomOut", Qt::CTRL+Qt::Key_Minus);
+ defKeys.insert("toolsEditContents", Qt::Key_E);
+ defKeys.insert("toolsEditWithStoryEditor", Qt::CTRL+Qt::Key_T);
+ defKeys.insert("toolsLinkTextFrame", Qt::Key_N);
+ defKeys.insert("toolsUnlinkTextFrame", Qt::Key_U);
+ defKeys.insert("toolsEyeDropper", Qt::Key_Y);
+
+ //PDF items
+ //Extras Menu
+ //Windows Menu
+ //Help Menu
+ defKeys.insert("helpManual", Qt::Key_F1);
+
+ //GUI and specials
+ defKeys.insert("specialToggleAllPalettes", Qt::Key_F12);
+ defKeys.insert("specialToggleAllGuides", Qt::Key_F11);
+ defKeys.insert("specialUnicodeSequenceBegin", Qt::CTRL+Qt::SHIFT+Qt::Key_U);
+
+ //typography
+ defKeys.insert("unicodeFrameBreak", Qt::CTRL+Qt::Key_Return);
+ defKeys.insert("unicodeColumnBreak", Qt::CTRL+Qt::SHIFT+Qt::Key_Return);
+
+ defKeys.insert("unicodeSmartHyphen", Qt::CTRL+Qt::SHIFT+Qt::Key_Minus);
+ defKeys.insert("unicodeNonBreakingHyphen", Qt::CTRL+Qt::ALT+Qt::Key_Minus);
+ defKeys.insert("unicodeNonBreakingSpace", Qt::CTRL+Qt::Key_Space);
+ defKeys.insert("unicodePageNumber", Qt::CTRL+Qt::SHIFT+Qt::ALT+Qt::Key_P);
+ defKeys.insert("unicodeNewLine", Qt::SHIFT+Qt::Key_Return);
+
+ //Plugins
+ defKeys.insert("ExportAsImage", Qt::CTRL+Qt::SHIFT+Qt::Key_E);
+ defKeys.insert("NewFromDocumentTemplate", Qt::CTRL+Qt::ALT+Qt::Key_N);
+ defKeys.insert("SaveAsDocumentTemplate", Qt::CTRL+Qt::ALT+Qt::Key_S);
+}
+
+void ActionManager::createDefaultMenuNames()
+{
+ defMenuNames.clear();
+
+ defMenuNames.append(QPair<QString, QStringList>("File", QStringList()));
+ defMenuNames.append(QPair<QString, QStringList>("Edit", QStringList()));
+ defMenuNames.append(QPair<QString, QStringList>("Style", QStringList()));
+ defMenuNames.append(QPair<QString, QStringList>("Item", QStringList()));
+ defMenuNames.append(QPair<QString, QStringList>("Insert", QStringList()));
+ defMenuNames.append(QPair<QString, QStringList>("Page", QStringList()));
+ defMenuNames.append(QPair<QString, QStringList>("View", QStringList()));
+ defMenuNames.append(QPair<QString, QStringList>("Extras", QStringList()));
+ defMenuNames.append(QPair<QString, QStringList>("Windows", QStringList()));
+ defMenuNames.append(QPair<QString, QStringList>("Help", QStringList()));
+
+ QVector< QPair<QString, QStringList> >::Iterator itMenuNames = defMenuNames.begin();
+ itMenuNames->second << tr("File") << "&File" << tr("&File");
+ ++itMenuNames;
+ itMenuNames->second << tr("Edit") << "&Edit" << tr("&Edit");
+ ++itMenuNames;
+ itMenuNames->second << tr("Style") << "&Style" << tr("&Style");
+ ++itMenuNames;
+ itMenuNames->second << tr("Item") << "&Item" << tr("&Item");
+ ++itMenuNames;
+ itMenuNames->second << tr("Insert") << "I&nsert" << tr("I&nsert");
+ ++itMenuNames;
+ itMenuNames->second << tr("Page") << "&Page" << tr("&Page");
+ ++itMenuNames;
+ itMenuNames->second << tr("View") << "&View" << tr("&View");
+ ++itMenuNames;
+ itMenuNames->second << tr("Extras") << "E&xtras" << tr("E&xtras");
+ ++itMenuNames;
+ itMenuNames->second << tr("Windows") << "&Windows" << tr("&Windows");
+ ++itMenuNames;
+ itMenuNames->second << tr("Help") << "&Help" << tr("&Help");
+ ++itMenuNames;
+}
+
+void ActionManager::createDefaultMenus()
+{ //CB TODO use this to also create the menus
+
+ if (defMenuNames.size()==0)
+ createDefaultMenuNames();
+
+ defMenus.clear();
+ for (int i = 0; i < defMenuNames.size(); ++i)
+ {
+ if (!defMenuNames.at(i).second.isEmpty())
+ defMenus.append(QPair<QString, QStringList>(defMenuNames.at(i).second.at(0), QStringList()));
+ }
+/*
+ defMenus.append(QPair<QString, QStringList>("File", QStringList()));
+ defMenus.append(QPair<QString, QStringList>("Edit", QStringList()));
+ defMenus.append(QPair<QString, QStringList>("Style", QStringList()));
+ defMenus.append(QPair<QString, QStringList>("Item", QStringList()));
+ defMenus.append(QPair<QString, QStringList>("Insert", QStringList()));
+ defMenus.append(QPair<QString, QStringList>("Page", QStringList()));
+ defMenus.append(QPair<QString, QStringList>("View", QStringList()));
+ defMenus.append(QPair<QString, QStringList>("Extras", QStringList()));
+ defMenus.append(QPair<QString, QStringList>("Window", QStringList()));
+ defMenus.append(QPair<QString, QStringList>("Help", QStringList()));
+*/
+// defMenus.append(QPair<QString, QStringList>("Other", QStringList()));
+
+ QVector< QPair<QString, QStringList> >::Iterator itmenu = defMenus.begin();
+ //File
+ itmenu->second << "fileNew" << "fileNewFromTemplate" << "fileOpen" << "fileClose" << "fileSave" << "fileSaveAs" << "fileRevert" << "fileCollect";
+ itmenu->second << "fileImportText" << "fileImportText2" << "fileImportAppendText" << "fileImportImage" << "fileImportVector" << "fileExportText" << "fileExportAsEPS" << "fileExportAsPDF";
+ itmenu->second << "fileDocSetup" << "filePreferences" << "filePrint" << "PrintPreview" << "fileQuit";
+ ++itmenu;
+ //Edit
+ itmenu->second << "editUndoAction" << "editRedoAction" << "editActionMode" << "editCut" << "editCopy" << "editPaste" << "editCopyContents" << "editPasteContents" << "editPasteContentsAbs" << "editClearContents" << "editSelectAll" << "editSelectAllOnLayer" << "editDeselectAll" << "editSearchReplace" << "toolsEditWithStoryEditor" << "editEditWithImageEditor" << "editEditRenderSource" << "editExtendedImageProperties" << "editColors" << "editReplaceColors" << "editPatterns" << "editStyles" << "editMasterPages" << "editJavascripts";
+ //Style
+ ++itmenu;
+ int font_sizes[] = {7, 9, 10, 11, 12, 14, 18, 24, 36, 48, 60, 72};
+ size_t f_size = sizeof(font_sizes) / sizeof(*font_sizes);
+ for (uint s = 0; s < f_size; ++s)
+ itmenu->second << QString("fontSize%1").arg(font_sizes[s]);
+ itmenu->second << "fontSizeOther";
+ itmenu->second << "alignLeft" << "alignCenter" << "alignRight" << "alignBlock" << "alignForced";
+// for (uint i=0; i<=100 ; i+=10)
+// itmenu->second << QString("shade%1").arg(i);
+// itmenu->second << "shadeOther";
+ itmenu->second << "typeEffectNormal" << "typeEffectUnderline" << "typeEffectUnderlineWords" << "typeEffectStrikeThrough" << "typeEffectAllCaps" << "typeEffectSmallCaps" << "typeEffectSuperscript" << "typeEffectSubscript" << "typeEffectOutline" << "typeEffectShadow" << "styleImageEffects" << "styleTabulators";
+ //Item
+ ++itmenu;
+ itmenu->second << "itemDuplicate" << "itemMulDuplicate" << "itemDelete" << "itemGroup" << "itemUngroup" << "itemLock" << "itemLockSize" << "itemImageIsVisible" << "itemUpdateImage" << "itemAdjustFrameToImage" << "itemAdjustImageToFrame" << "itemExtendedImageProperties" << "itemPreviewLow" << "itemPreviewNormal" << "itemPreviewFull" << "itemRaise" << "itemLower" << "itemRaiseToTop" << "itemLowerToBottom" << "itemSendToPattern" << "itemAttributes" << "itemPDFIsAnnotation" << "itemPDFIsBookmark" << "itemPDFAnnotationProps" << "itemPDFFieldProps" << "itemShapeEdit" << "itemConvertToBezierCurve" << "itemConvertToImageFrame" << "itemConvertToOutlines" << "itemConvertToPolygon" << "itemConvertToTextFrame" << "itemAttachTextToPath" << "itemDetachTextFromPath" << "itemCombinePolygons" << "itemSplitPolygons";
+ //Insert
+ ++itmenu;
+ itmenu->second
+ << "insertFrame"
+ << "toolsInsertTextFrame"
+ << "toolsInsertImageFrame"
+ << "toolsInsertTableFrame"
+ << "toolsInsertShape"
+ << "toolsInsertPolygon"
+ << "toolsInsertLine"
+ << "toolsInsertBezier"
+ << "toolsInsertFreehandLine"
+ << "toolsInsertRenderFrame"
+ << "stickyTools"
+ << "insertGlyph"
+ << "insertSampleText";
+
+ itmenu->second
+ << "unicodeSmartHyphen"
+ << "unicodeNonBreakingHyphen"
+ << "unicodeNonBreakingSpace"
+ << "unicodePageNumber"
+ << "unicodePageCount"
+ << "unicodeNewLine"
+ << "unicodeFrameBreak"
+ << "unicodeColumnBreak"
+ << "unicodeZerowidthSpace"
+ << "unicodeCopyRight"
+ << "unicodeRegdTM"
+ << "unicodeTM"
+ << "unicodeSolidus"
+ << "unicodeBullet"
+ << "unicodeMidpoint"
+ << "unicodeDashEm"
+ << "unicodeDashEn"
+ << "unicodeDashFigure"
+ << "unicodeDashQuotation";
+
+ itmenu->second
+ << "unicodeQuoteApostrophe"
+ << "unicodeQuoteStraight"
+ << "unicodeQuoteSingleLeft"
+ << "unicodeQuoteSingleRight"
+ << "unicodeQuoteDoubleLeft"
+ << "unicodeQuoteDoubleRight"
+ << "unicodeQuoteSingleReversed"
+ << "unicodeQuoteDoubleReversed"
+ << "unicodeQuoteSingleLeftGuillemet"
+ << "unicodeQuoteSingleRightGuillemet"
+ << "unicodeQuoteDoubleLeftGuillemet"
+ << "unicodeQuoteDoubleRightGuillemet"
+ << "unicodeQuoteLowSingleComma"
+ << "unicodeQuoteLowDoubleComma"
+ << "unicodeQuoteCJKSingleLeft"
+ << "unicodeQuoteCJKSingleRight"
+ << "unicodeQuoteCJKDoubleLeft"
+ << "unicodeQuoteCJKDoubleRight";
+
+ itmenu->second
+ << "unicodeSpaceEN"
+ << "unicodeSpaceEM"
+ << "unicodeSpaceThin"
+ << "unicodeSpaceThick"
+ << "unicodeSpaceMid"
+ << "unicodeSpaceHair";
+
+ itmenu->second
+ << "unicodeSmartHyphen"
+ << "unicodeNonBreakingHyphen"
+ << "unicodeNonBreakingSpace"
+ << "unicodePageNumber"
+ << "unicodePageCount"
+ << "unicodeNewLine"
+ << "unicodeFrameBreak"
+ << "unicodeColumnBreak";
+
+ itmenu->second
+ << "unicodeLigature_ff"
+ << "unicodeLigature_fi"
+ << "unicodeLigature_fl"
+ << "unicodeLigature_ffi"
+ << "unicodeLigature_ffl"
+ << "unicodeLigature_ft"
+ << "unicodeLigature_st";
+
+
+ //Page
+ ++itmenu;
+ itmenu->second << "pageInsert" << "pageImport" << "pageDelete" << "pageCopy" << "pageMove" << "pageApplyMasterPage" << "pageCopyToMasterPage" << "pageManageGuides" << "pageManageMargins" << "viewSnapToGrid" << "viewSnapToGuides";
+ //View
+ ++itmenu;
+ itmenu->second << "viewFitWidth" << "viewFitInWindow" << "viewFit50" << "viewFit75" << "viewFit100" << "viewFit200" << "viewFit400" << "viewFitPreview" << "viewShowMargins" << "viewShowBleeds" << "viewShowFrames" << "viewShowLayerMarkers" << "viewShowImages" << "viewShowGrid" << "viewShowGuides" << "viewShowColumnBorders" << "viewShowBaseline" << "viewShowTextChain" << "viewShowTextControls" << "viewShowRulers" << "viewRulerMode" << "showMouseCoordinates";
+ //Extras
+ ++itmenu;
+ itmenu->second << "extrasManageImages" << "extrasHyphenateText" << "extrasDeHyphenateText" << "extrasGenerateTableOfContents";
+ //Windows
+ ++itmenu;
+ itmenu->second << "windowsCascade" << "windowsTile" << "toolsProperties" << "toolsOutline" << "toolsScrapbook" << "toolsLayers" << "toolsPages" << "toolsBookmarks" << "toolsMeasurements" << "toolsActionHistory" << "toolsPreflightVerifier" << "toolsAlignDistribute" << "toolsToolbarTools" << "toolsToolbarPDF";
+ //Help
+ ++itmenu;
+ itmenu->second << "helpAboutScribus" << "helpAboutPlugins" << "helpAboutQt" << "helpTooltips" << "helpManual" << "helpOnlineWWW" << "helpOnlineDocs" << "helpOnlineWiki" << "helpOnlineTutorial1" << "helpCheckUpdates";
+ //Other
+// ++itmenu;
+// itmenu->second << "";
+}
+
+void ActionManager::createDefaultNonMenuNames()
+{
+ defNonMenuNames.clear();
+
+ defNonMenuNames.append(QPair<QString, QStringList>("Plugin Menu Items", QStringList()));
+ defNonMenuNames.append(QPair<QString, QStringList>("Others", QStringList()));
+ defNonMenuNames.append(QPair<QString, QStringList>("Unicode Characters", QStringList()));
+
+ QVector< QPair<QString, QStringList> >::Iterator itNonMenuNames = defNonMenuNames.begin();
+ itNonMenuNames->second << tr("Plugin Menu Items") << "Plugin Menu Items" << tr("Plugin Menu Items");
+ ++itNonMenuNames;
+ itNonMenuNames->second << tr("Others") << "Others" << tr("Others");
+ ++itNonMenuNames;
+ itNonMenuNames->second << tr("Unicode Characters") << "Unicode Characters" << tr("Unicode Characters");
+ ++itNonMenuNames;
+}
+
+void ActionManager::createDefaultNonMenuActions()
+{ //CB TODO use this to also create the menus
+
+ if (defNonMenuNames.size()==0)
+ createDefaultNonMenuNames();
+
+ defNonMenuActions.clear();
+ for (int i = 0; i < defNonMenuNames.size(); ++i)
+ {
+ if (!defNonMenuNames.at(i).second.isEmpty())
+ defNonMenuActions.append(QPair<QString, QStringList>(defNonMenuNames.at(i).second.at(0), QStringList()));
+ }
+/*
+ defNonMenuActions.append(QPair<QString, QStringList>("Plugin Menu Items", QStringList()));
+ defNonMenuActions.append(QPair<QString, QStringList>("Others", QStringList()));
+ defNonMenuActions.append(QPair<QString, QStringList>("Unicode Characters", QStringList()));
+*/
+
+ QVector< QPair<QString, QStringList> >::Iterator itnmenua = defNonMenuActions.begin();
+ //Plugins
+// itnmenua->second << "ExportAsImage";
+// itnmenua->second << "NewFromDocumentTemplate";
+// itnmenua->second << "SaveAsDocumentTemplate";
+
+ //Others
+ ++itnmenua;
+ itnmenua->second << "toolsSelect";
+ itnmenua->second << "toolsRotate";
+ itnmenua->second << "toolsZoom";
+ itnmenua->second << "toolsZoomIn";
+ itnmenua->second << "toolsZoomOut";
+ itnmenua->second << "toolsEditContents";
+ itnmenua->second << "toolsLinkTextFrame";
+ itnmenua->second << "toolsUnlinkTextFrame";
+ itnmenua->second << "toolsEyeDropper";
+ itnmenua->second << "toolsCopyProperties";
+ itnmenua->second << "toolsPDFPushButton";
+ itnmenua->second << "toolsPDFTextField";
+ itnmenua->second << "toolsPDFCheckBox";
+ itnmenua->second << "toolsPDFListBox";
+ itnmenua->second << "toolsPDFAnnotText";
+ itnmenua->second << "toolsPDFAnnotLink";
+ itnmenua->second << "specialToggleAllPalettes";
+ itnmenua->second << "specialToggleAllGuides";
+ itnmenua->second << "specialUnicodeSequenceBegin";
+ itnmenua->second << "viewShowContextMenu";
+
+ //Unicode
+ ++itnmenua;
+ itnmenua->second << "unicodeSmartHyphen";
+ itnmenua->second << "unicodeNonBreakingHyphen";
+ itnmenua->second << "unicodeNonBreakingSpace";
+ itnmenua->second << "unicodePageNumber";
+ itnmenua->second << "unicodePageCount";
+ itnmenua->second << "unicodeNewLine";
+ itnmenua->second << "unicodeFrameBreak";
+ itnmenua->second << "unicodeColumnBreak";
+ itnmenua->second << "unicodeZerowidthSpace";
+ itnmenua->second << "unicodeCopyRight";
+ itnmenua->second << "unicodeRegdTM";
+ itnmenua->second << "unicodeTM";
+ itnmenua->second << "unicodeSolidus";
+ itnmenua->second << "unicodeBullet";
+ itnmenua->second << "unicodeMidpoint";
+ itnmenua->second << "unicodeDashEm";
+ itnmenua->second << "unicodeDashEn";
+ itnmenua->second << "unicodeDashFigure";
+ itnmenua->second << "unicodeDashQuotation";
+
+ itnmenua->second << "unicodeQuoteApostrophe";
+ itnmenua->second << "unicodeQuoteStraight";
+ itnmenua->second << "unicodeQuoteSingleLeft";
+ itnmenua->second << "unicodeQuoteSingleRight";
+ itnmenua->second << "unicodeQuoteDoubleLeft";
+ itnmenua->second << "unicodeQuoteDoubleRight";
+ itnmenua->second << "unicodeQuoteSingleReversed";
+ itnmenua->second << "unicodeQuoteDoubleReversed";
+ itnmenua->second << "unicodeQuoteSingleLeftGuillemet";
+ itnmenua->second << "unicodeQuoteSingleRightGuillemet";
+ itnmenua->second << "unicodeQuoteDoubleLeftGuillemet";
+ itnmenua->second << "unicodeQuoteDoubleRightGuillemet";
+ itnmenua->second << "unicodeQuoteLowSingleComma";
+ itnmenua->second << "unicodeQuoteLowDoubleComma";
+ itnmenua->second << "unicodeQuoteCJKSingleLeft";
+ itnmenua->second << "unicodeQuoteCJKSingleRight";
+ itnmenua->second << "unicodeQuoteCJKDoubleLeft";
+ itnmenua->second << "unicodeQuoteCJKDoubleRight";
+
+ itnmenua->second << "unicodeSpaceEN";
+ itnmenua->second << "unicodeSpaceEM";
+ itnmenua->second << "unicodeSpaceThin";
+ itnmenua->second << "unicodeSpaceThick";
+ itnmenua->second << "unicodeSpaceMid";
+ itnmenua->second << "unicodeSpaceHair";
+
+ itnmenua->second << "unicodeSmartHyphen";
+ itnmenua->second << "unicodeNonBreakingHyphen";
+ itnmenua->second << "unicodeNonBreakingSpace";
+ itnmenua->second << "unicodePageNumber";
+ itnmenua->second << "unicodePageCount";
+ itnmenua->second << "unicodeNewLine";
+
+ itnmenua->second << "unicodeLigature_ff";
+ itnmenua->second << "unicodeLigature_fi";
+ itnmenua->second << "unicodeLigature_fl";
+ itnmenua->second << "unicodeLigature_ffi";
+ itnmenua->second << "unicodeLigature_ffl";
+ itnmenua->second << "unicodeLigature_ft";
+ itnmenua->second << "unicodeLigature_st";
+}
+
+void ActionManager::handleMultipleSelections(bool isMultiple)
+{
+ (*scrActions)["itemAttributes"]->setEnabled(!isMultiple);
+}
+
+void ActionManager::languageChangeActions()
+{
+ //Here we mangle the URL based on the current GUI language, returning English if we dont get one of these hard coded options.
+ //CB TODO make more flexible one day.
+ QString language="EN";
+ QString langpref(ScCore->getGuiLanguage().left(2));
+ if (langpref=="de" || langpref=="fr" || langpref=="po" || langpref=="pt" || langpref=="ru")
+ language=langpref.toUpper();
+ (*scrActions)["helpOnlineTutorial1"]->setActionQString("http://wiki.scribus.net/index.php/tutorial"+language);
+}
+
+QKeySequence ActionManager::defaultKey(const QString & actionName)
+{
+ if (defKeys.contains(actionName))
+ return defKeys.value(actionName);
+ return QKeySequence();
+}
+
+
+QString ActionManager::defaultMenuNameEntryTranslated(const QString& index)
+{
+ for (int i = 0; i < defMenuNames.size(); ++i)
+ {
+ if (defMenuNames.at(i).first == index)
+ return defMenuNames.at(i).second.at(2);
+ }
+ return QString::null;
+}