Scribus Developer Documentation - API
logo-pen

Scribus Developer Documentation - API

actionmanager.cpp

Go to the documentation of this file.
00001 /*
00002 For general Scribus (>=1.3.2) copyright and licensing information please refer
00003 to the COPYING file provided with the program. Following this notice may exist
00004 a copyright and/or license notice that predates the release of Scribus 1.3.2
00005 for which a new license (GPL+exception) is in place.
00006 */
00007 /***************************************************************************
00008     begin                : Apr 2005
00009     copyright            : (C) 2005 by Craig Bradney
00010     email                : cbradney@zip.com.au
00011 ***************************************************************************/
00012 
00013 /***************************************************************************
00014 *                                                                         *
00015 *   mainWindow program is free software; you can redistribute it and/or modify  *
00016 *   it under the terms of the GNU General Public License as published by  *
00017 *   the Free Software Foundation; either version 2 of the License, or     *
00018 *   (at your option) any later version.                                   *
00019 *                                                                         *
00020 ***************************************************************************/
00021 
00022 #include "actionmanager.h"
00023 #include "scribus.h"
00024 #include "scribuscore.h"
00025 #include "scribusdoc.h"
00026 #include "scribusview.h"
00027 #include "selection.h"
00028 #include "text/storytext.h"
00029 #include "undomanager.h"
00030 #include "urllauncher.h"
00031 #include "util_icon.h"
00032 
00033 
00034 QMap<QString, QKeySequence> ActionManager::defKeys;
00035 QVector< QPair<QString, QStringList> > ActionManager::defMenus;
00036 QVector< QPair<QString, QStringList> > ActionManager::defNonMenuActions;
00037 
00038 ActionManager::ActionManager ( QObject * parent ) :
00039     QObject ( parent),
00040     mainWindow(0)
00041 {
00042 }
00043 
00044 ActionManager::~ActionManager()
00045 {
00046     while (!scrActions->isEmpty())
00047     {
00048         ScrAction *value = (*scrActions->begin());
00049         scrActions->erase(scrActions->begin());
00050         delete value;
00051     }
00052     scrActions->clear();
00053     delete modeActionNames;
00054     delete nonEditActionNames;
00055     delete unicodeCharActionNames;
00056 }
00057 
00058 void ActionManager::init(ScribusMainWindow *mw)
00059 {
00060     mainWindow=mw;
00061     scrActions=&(mainWindow->scrActions);
00062     scrActionGroups=&(mainWindow->scrActionGroups);
00063     modeActionNames=new QStringList();
00064     nonEditActionNames=new QStringList();
00065     unicodeCharActionNames=new QStringList();
00066     undoManager = UndoManager::instance();
00067 
00068 #ifdef Q_WS_MAC
00069     noIcon = loadIcon("noicon.xpm");
00070 #endif
00071 
00072     createActions();
00073     languageChange();
00074 }
00075 
00076 void ActionManager::createActions()
00077 {
00078     initFileMenuActions();
00079     initEditMenuActions();
00080     initStyleMenuActions();
00081     initItemMenuActions();
00082     initInsertMenuActions();
00083     initPageMenuActions();
00084     initViewMenuActions();
00085     initToolsMenuActions();
00086     initExtrasMenuActions();
00087     initWindowsMenuActions();
00088     initScriptMenuActions();
00089     initHelpMenuActions();
00090     initUnicodeActions(scrActions, mainWindow, unicodeCharActionNames);
00091     enableUnicodeActions(scrActions, false);
00092     initSpecialActions();
00093     
00094 }
00095 
00096 void ActionManager::initFileMenuActions()
00097 {
00098     QString name;
00099     //File Menu
00100     name="fileNew";
00101     scrActions->insert(name, new ScrAction(loadIcon("16/document-new.png"), loadIcon("22/document-new.png"), "", defKeys[name], mainWindow));
00102     name="fileOpen";
00103     scrActions->insert(name, new ScrAction(loadIcon("16/document-open.png"), loadIcon("22/document-open.png"), "", defKeys[name], mainWindow));
00104     name="fileClose";
00105     scrActions->insert(name, new ScrAction(loadIcon("16/close.png"), loadIcon("22/close.png"), "", defKeys[name], mainWindow));
00106     name="fileSave";
00107     scrActions->insert(name, new ScrAction(loadIcon("16/document-save.png"), loadIcon("22/document-save.png"), "", defKeys[name], mainWindow));
00108     name="fileSaveAs";
00109     scrActions->insert(name, new ScrAction(loadIcon("16/document-save-as.png"), loadIcon("22/document-save-as.png"), "", defKeys[name], mainWindow));
00110     name="fileRevert";
00111     scrActions->insert(name, new ScrAction(loadIcon("revert.png"), QPixmap(), "", defKeys[name], mainWindow));
00112     name="fileCollect";
00113     scrActions->insert(name, new ScrAction("", defKeys[name], mainWindow));
00114     //File Import Menu
00115     name="fileImportText";
00116     scrActions->insert(name, new ScrAction("", defKeys[name], mainWindow));
00117     name="fileImportText2";
00118     scrActions->insert(name, new ScrAction("", defKeys[name], mainWindow));
00119     name="fileImportAppendText";
00120     scrActions->insert(name, new ScrAction("", defKeys[name], mainWindow));
00121     name="fileImportImage";
00122     scrActions->insert(name, new ScrAction("", defKeys[name], mainWindow));
00123 
00124     //File Export Menu
00125     name="fileExportText";
00126     scrActions->insert(name, new ScrAction("", defKeys[name], mainWindow));
00127     name="fileExportAsEPS";
00128     scrActions->insert(name, new ScrAction("", defKeys[name], mainWindow));
00129     name="fileExportAsPDF";
00130     scrActions->insert(name, new ScrAction(loadIcon("acroread16.png"), loadIcon("acroread22.png"), "", defKeys[name], mainWindow));
00131     //Rest of File Menu
00132     name="fileDocSetup";
00133     scrActions->insert(name, new ScrAction(loadIcon("16/document-properties.png"), loadIcon("22/document-properties.png"), "", defKeys[name], mainWindow));
00134     name="filePreferences";
00135     scrActions->insert(name, new ScrAction("", defKeys[name], mainWindow));
00136     (*scrActions)[name]->setMenuRole(QAction::PreferencesRole);
00137     name="filePrint";
00138     scrActions->insert(name, new ScrAction(loadIcon("16/document-print.png"), loadIcon("22/document-print.png"), "", defKeys[name], mainWindow));
00139     name="PrintPreview";
00140     scrActions->insert(name, new ScrAction(loadIcon("16/document-print-preview.png"), loadIcon("22/document-print-preview.png"), "", defKeys[name], mainWindow));
00141     name="fileQuit";
00142     scrActions->insert(name, new ScrAction(loadIcon("exit.png"), QPixmap(), "", defKeys[name], mainWindow));
00143     (*scrActions)[name]->setMenuRole(QAction::QuitRole);
00144 
00145     //Connect our signals and slots
00146     //File Menu
00147     connect( (*scrActions)["fileNew"], SIGNAL(triggered()), mainWindow, SLOT(slotFileNew()) );
00148     connect( (*scrActions)["fileOpen"], SIGNAL(triggered()), mainWindow, SLOT(slotDocOpen()) );
00149     connect( (*scrActions)["fileClose"], SIGNAL(triggered()), mainWindow, SLOT(slotFileClose()) );
00150     connect( (*scrActions)["filePrint"], SIGNAL(triggered()), mainWindow, SLOT(slotFilePrint()) );
00151     connect( (*scrActions)["PrintPreview"], SIGNAL(triggered()), mainWindow, SLOT(printPreview()) );
00152     connect( (*scrActions)["fileSave"], SIGNAL(triggered()), mainWindow, SLOT(slotFileSave()) );
00153     connect( (*scrActions)["fileSaveAs"], SIGNAL(triggered()), mainWindow, SLOT(slotFileSaveAs()) );
00154     connect( (*scrActions)["fileDocSetup"], SIGNAL(triggered()), mainWindow, SLOT(slotDocSetup()) );
00155     connect( (*scrActions)["filePreferences"], SIGNAL(triggered()), mainWindow, SLOT(slotPrefsOrg()) );
00156     connect( (*scrActions)["fileRevert"], SIGNAL(triggered()), mainWindow, SLOT(slotFileRevert()) );
00157     connect( (*scrActions)["fileCollect"], SIGNAL(triggered()), mainWindow, SLOT(Collect()) );
00158     connect( (*scrActions)["fileQuit"], SIGNAL(triggered()), mainWindow, SLOT(slotFileQuit()) );
00159     //File Import Menu
00160     connect( (*scrActions)["fileImportText"], SIGNAL(triggered()), mainWindow, SLOT(slotGetContent()) );
00161     connect( (*scrActions)["fileImportText2"], SIGNAL(triggered()), mainWindow, SLOT(slotGetContent2()) );
00162     connect( (*scrActions)["fileImportAppendText"], SIGNAL(triggered()), mainWindow, SLOT(slotFileAppend()) );
00163     connect( (*scrActions)["fileImportImage"], SIGNAL(triggered()), mainWindow, SLOT(slotGetContent()) );
00164     //File Export Menu
00165     connect( (*scrActions)["fileExportText"], SIGNAL(triggered()), mainWindow, SLOT(SaveText()) );
00166     connect( (*scrActions)["fileExportAsEPS"], SIGNAL(triggered()), mainWindow, SLOT(SaveAsEps()) );
00167     connect( (*scrActions)["fileExportAsPDF"], SIGNAL(triggered()), mainWindow, SLOT(SaveAsPDF()) );
00168     //The rest are plugins
00169 }
00170 
00171 void ActionManager::initEditMenuActions()
00172 {
00173     QString name;
00174     //Edit Menu
00175     name="editUndoAction";
00176     scrActions->insert(name, new ScrAction(ScrAction::DataInt, loadIcon("16/edit-undo.png"), loadIcon("22/edit-undo.png"), "", defKeys[name], mainWindow, 1));
00177     name="editRedoAction";
00178     scrActions->insert(name, new ScrAction(ScrAction::DataInt, loadIcon("16/edit-redo.png"), loadIcon("22/edit-redo.png"), "", defKeys[name], mainWindow, 1));
00179     name="editActionMode";
00180     scrActions->insert(name, new ScrAction("", defKeys[name], mainWindow));
00181     (*scrActions)["editActionMode"]->setToggleAction(true);
00182 
00183     name="editCut";
00184     scrActions->insert(name, new ScrAction(loadIcon("16/edit-cut.png"), loadIcon("22/edit-cut.png"), "", defKeys[name], mainWindow));
00185     name="editCopy";
00186     scrActions->insert(name, new ScrAction(loadIcon("16/edit-copy.png"), loadIcon("22/edit-copy.png"), "", defKeys[name], mainWindow));
00187     name="editPaste";
00188     scrActions->insert(name, new ScrAction(loadIcon("16/edit-paste.png"), loadIcon("22/edit-paste.png"), "", defKeys[name], mainWindow));
00189     name="editCopyContents";
00190     scrActions->insert(name, new ScrAction(loadIcon("16/edit-copy.png"), loadIcon("22/edit-copy.png"), "", defKeys[name], mainWindow));
00191     name="editPasteContents";
00192     scrActions->insert(name, new ScrAction(ScrAction::DataInt, loadIcon("16/edit-paste.png"), QPixmap(), "", defKeys[name], mainWindow, 0));
00193     name="editPasteContentsAbs";
00194     scrActions->insert(name, new ScrAction(ScrAction::DataInt, loadIcon("16/edit-paste.png"), QPixmap(), "", defKeys[name], mainWindow, 1));
00195     name="editClearContents";
00196     scrActions->insert(name, new ScrAction(loadIcon("16/edit-delete.png"), loadIcon("22/edit-delete.png"), "", defKeys[name], mainWindow));
00197     name="editSelectAll";
00198     scrActions->insert(name, new ScrAction("", defKeys[name], mainWindow));
00199     name="editDeselectAll";
00200     scrActions->insert(name, new ScrAction("", defKeys[name], mainWindow));
00201     name="editSearchReplace";
00202     scrActions->insert(name, new ScrAction(loadIcon("16/edit-find-replace.png"), loadIcon("22/edit-find-replace.png"), "", defKeys[name], mainWindow));
00203     name="editEditWithImageEditor";
00204     scrActions->insert(name, new ScrAction("", defKeys[name], mainWindow));
00205     name="editEditWithLatexEditor";
00206     scrActions->insert(name, new ScrAction("", defKeys[name], mainWindow));
00207     name="editColors";
00208     scrActions->insert(name, new ScrAction("", defKeys[name], mainWindow));
00209     name="editPatterns";
00210     scrActions->insert(name, new ScrAction("", defKeys[name], mainWindow));
00211     name="editStyles";
00212     scrActions->insert(name, new ScrAction("", defKeys[name], mainWindow));
00213     name="editMasterPages";
00214     scrActions->insert(name, new ScrAction("", defKeys[name], mainWindow));
00215     name="editJavascripts";
00216     scrActions->insert(name, new ScrAction("", defKeys[name], mainWindow));
00217 
00218     (*scrActions)["editStyles"]->setToggleAction(true);
00219 
00220     connect( (*scrActions)["editUndoAction"], SIGNAL(triggeredData(int)) , undoManager, SLOT(undo(int)) );
00221     connect( (*scrActions)["editRedoAction"], SIGNAL(triggeredData(int)) , undoManager, SLOT(redo(int)) );
00222     connect( (*scrActions)["editActionMode"], SIGNAL(toggled(bool)), mainWindow, SLOT(setUndoMode(bool)) );
00223     connect( (*scrActions)["editCut"], SIGNAL(triggered()), mainWindow, SLOT(slotEditCut()) );
00224     connect( (*scrActions)["editCopy"], SIGNAL(triggered()), mainWindow, SLOT(slotEditCopy()) );
00225     connect( (*scrActions)["editPaste"], SIGNAL(triggered()), mainWindow, SLOT(slotEditPaste()) );
00226     connect( (*scrActions)["editCopyContents"], SIGNAL(triggered()), mainWindow, SLOT(slotEditCopyContents()) );
00227     connect( (*scrActions)["editPasteContents"], SIGNAL(triggeredData(int)), mainWindow, SLOT(slotEditPasteContents(int)) );
00228     connect( (*scrActions)["editPasteContentsAbs"], SIGNAL(triggeredData(int)), mainWindow, SLOT(slotEditPasteContents(int)) );
00229     connect( (*scrActions)["editSelectAll"], SIGNAL(triggered()), mainWindow, SLOT(SelectAll()) );
00230     connect( (*scrActions)["editDeselectAll"], SIGNAL(triggered()), mainWindow, SLOT(deselectAll()) );
00231     connect( (*scrActions)["editSearchReplace"], SIGNAL(triggered()), mainWindow, SLOT(SearchText()) );
00232     connect( (*scrActions)["editEditWithImageEditor"], SIGNAL(triggered()), mainWindow, SLOT(callImageEditor()) );
00233     connect( (*scrActions)["editEditWithLatexEditor"], SIGNAL(triggered()), mainWindow, SLOT(callImageEditor()) );
00234     connect( (*scrActions)["editColors"], SIGNAL(triggered()), mainWindow, SLOT(slotEditColors()) );
00235     connect( (*scrActions)["editPatterns"], SIGNAL(triggered()), mainWindow, SLOT(managePatterns()) );
00236     connect( (*scrActions)["editMasterPages"], SIGNAL(triggered()), mainWindow, SLOT(manageMasterPages()) );
00237     connect( (*scrActions)["editJavascripts"], SIGNAL(triggered()), mainWindow, SLOT(ManageJava()) );
00238 }
00239 
00240 void ActionManager::initStyleMenuActions()
00241 {
00242     QString name;
00243     //Text Size actions
00244     (*scrActionGroups).insert("fontSize", new QActionGroup(mainWindow));
00245     name="fontSizeOther";
00246     scrActions->insert(name, new ScrAction(ScrAction::DataInt, QPixmap(), QPixmap(), "", defKeys[name], (*scrActionGroups).value("fontSize"), -1));
00247     connect( (*scrActions)["fontSizeOther"], SIGNAL(triggeredData(int)), mainWindow, SLOT(setItemFSize(int)));
00248 
00249     int font_sizes[] = {7, 9, 10, 11, 12, 14, 18, 24, 36, 48, 60, 72};
00250     size_t f_size = sizeof(font_sizes) / sizeof(*font_sizes);
00251     for (uint s = 0; s < f_size; ++s)
00252     {
00253         QString fontSizeName=QString("fontSize%1").arg(font_sizes[s]);
00254         scrActions->insert(fontSizeName, new ScrAction(ScrAction::DataInt, QPixmap(), QPixmap(), "", defKeys[name], (*scrActionGroups).value("fontSize"), font_sizes[s]));
00255         (*scrActions)[fontSizeName]->setToggleAction(true);
00256         connect( (*scrActions)[fontSizeName], SIGNAL(triggeredData(int)), mainWindow, SLOT(setItemFSize(int)));
00257     }
00258 
00259     //Alignment actions
00260     name="alignLeft";
00261     scrActions->insert(name, new ScrAction(ScrAction::DataInt, QPixmap(), QPixmap(), "", defKeys[name], mainWindow, 0));
00262     name="alignCenter";
00263     scrActions->insert(name, new ScrAction(ScrAction::DataInt, QPixmap(), QPixmap(), "", defKeys[name], mainWindow, 1));
00264     name="alignRight";
00265     scrActions->insert(name, new ScrAction(ScrAction::DataInt, QPixmap(), QPixmap(), "", defKeys[name], mainWindow, 2));
00266     name="alignBlock";
00267     scrActions->insert(name, new ScrAction(ScrAction::DataInt, QPixmap(), QPixmap(), "", defKeys[name], mainWindow, 3));
00268     name="alignForced";
00269     scrActions->insert(name, new ScrAction(ScrAction::DataInt, QPixmap(), QPixmap(), "", defKeys[name], mainWindow, 4));
00270 
00271     (*scrActions)["alignLeft"]->setToggleAction(true);
00272     (*scrActions)["alignCenter"]->setToggleAction(true);
00273     (*scrActions)["alignRight"]->setToggleAction(true);
00274     (*scrActions)["alignBlock"]->setToggleAction(true);
00275     (*scrActions)["alignForced"]->setToggleAction(true);
00276 
00277     connect( (*scrActions)["alignLeft"], SIGNAL(triggeredData(int)), mainWindow, SLOT(setNewAlignment(int)));
00278     connect( (*scrActions)["alignCenter"], SIGNAL(triggeredData(int)), mainWindow, SLOT(setNewAlignment(int)));
00279     connect( (*scrActions)["alignRight"], SIGNAL(triggeredData(int)), mainWindow, SLOT(setNewAlignment(int)));
00280     connect( (*scrActions)["alignBlock"], SIGNAL(triggeredData(int)), mainWindow, SLOT(setNewAlignment(int)));
00281     connect( (*scrActions)["alignForced"], SIGNAL(triggeredData(int)), mainWindow, SLOT(setNewAlignment(int)));
00282 
00283     //Shade actions
00284     scrActionGroups->insert("shade", new QActionGroup(mainWindow));
00285     name="shadeOther";
00286     scrActions->insert(name, new ScrAction(ScrAction::DataInt, QPixmap(), QPixmap(), "", defKeys[name], (*scrActionGroups).value("shade"), -1));
00287     connect( (*scrActions)["shadeOther"], SIGNAL(triggeredData(int)), mainWindow, SLOT(setItemShade(int)));
00288     for (uint i=0; i<=100 ; i+=10)
00289     {
00290         QString shadeName=QString("shade%1").arg(i);
00291         scrActions->insert(shadeName, new ScrAction(ScrAction::DataInt, QPixmap(), QPixmap(), "", defKeys[name], (*scrActionGroups).value("shade"), i));
00292         (*scrActions)[shadeName]->setToggleAction(true);
00293         connect( (*scrActions)[shadeName], SIGNAL(triggeredData(int)), mainWindow, SLOT(setItemShade(int)));
00294     }
00295 
00296     //Type Effects actions
00297     scrActionGroups->insert("typeEffects", new QActionGroup(mainWindow));
00298     name="typeEffectNormal";
00299     scrActions->insert(name, new ScrAction(ScrAction::DataInt, QPixmap(), QPixmap(), "", defKeys[name], (*scrActionGroups).value("typeEffects"), 0));
00300     name="typeEffectUnderline";
00301     scrActions->insert(name, new ScrAction(ScrAction::DataInt, QPixmap(), QPixmap(), "", defKeys[name], (*scrActionGroups).value("typeEffects"), 1));
00302     name="typeEffectUnderlineWords";
00303     scrActions->insert(name, new ScrAction(ScrAction::DataInt, QPixmap(), QPixmap(), "", defKeys[name], (*scrActionGroups).value("typeEffects"), 8));
00304     name="typeEffectStrikeThrough";
00305     scrActions->insert(name, new ScrAction(ScrAction::DataInt, QPixmap(), QPixmap(), "", defKeys[name], (*scrActionGroups).value("typeEffects"), 2));
00306     name="typeEffectAllCaps";
00307     scrActions->insert(name, new ScrAction(ScrAction::DataInt, QPixmap(), QPixmap(), "", defKeys[name], (*scrActionGroups).value("typeEffects"), 7));
00308     name="typeEffectSmallCaps";
00309     scrActions->insert(name, new ScrAction(ScrAction::DataInt, QPixmap(), QPixmap(), "", defKeys[name], (*scrActionGroups).value("typeEffects"), 3));
00310     name="typeEffectSuperscript";
00311     scrActions->insert(name, new ScrAction(ScrAction::DataInt, QPixmap(), QPixmap(), "", defKeys[name], (*scrActionGroups).value("typeEffects"), 4));
00312     name="typeEffectSubscript";
00313     scrActions->insert(name, new ScrAction(ScrAction::DataInt, QPixmap(), QPixmap(), "", defKeys[name], (*scrActionGroups).value("typeEffects"), 5));
00314     name="typeEffectOutline";
00315     scrActions->insert(name, new ScrAction(ScrAction::DataInt, QPixmap(), QPixmap(), "", defKeys[name], (*scrActionGroups).value("typeEffects"), 6));
00316     name="typeEffectShadow";
00317     scrActions->insert(name, new ScrAction(ScrAction::DataInt, QPixmap(), QPixmap(), "", defKeys[name], (*scrActionGroups).value("typeEffects"), 9));
00318     (*scrActions)["typeEffectNormal"]->setToggleAction(true);
00319     (*scrActions)["typeEffectUnderline"]->setToggleAction(true);
00320     (*scrActions)["typeEffectUnderlineWords"]->setToggleAction(true);
00321     (*scrActions)["typeEffectStrikeThrough"]->setToggleAction(true);
00322     (*scrActions)["typeEffectAllCaps"]->setToggleAction(true);
00323     (*scrActions)["typeEffectSmallCaps"]->setToggleAction(true);
00324     (*scrActions)["typeEffectSuperscript"]->setToggleAction(true);
00325     (*scrActions)["typeEffectSubscript"]->setToggleAction(true);
00326     (*scrActions)["typeEffectOutline"]->setToggleAction(true);
00327     (*scrActions)["typeEffectShadow"]->setToggleAction(true);
00328     connect( (*scrActions)["typeEffectNormal"], SIGNAL(triggeredData(int)), mainWindow, SLOT(setItemTypeStyle(int)));
00329     connect( (*scrActions)["typeEffectUnderline"], SIGNAL(triggeredData(int)), mainWindow, SLOT(setItemTypeStyle(int)));
00330     connect( (*scrActions)["typeEffectUnderlineWords"], SIGNAL(triggeredData(int)), mainWindow, SLOT(setItemTypeStyle(int)));
00331     connect( (*scrActions)["typeEffectStrikeThrough"], SIGNAL(triggeredData(int)), mainWindow, SLOT(setItemTypeStyle(int)));
00332     connect( (*scrActions)["typeEffectSmallCaps"], SIGNAL(triggeredData(int)), mainWindow, SLOT(setItemTypeStyle(int)));
00333     connect( (*scrActions)["typeEffectAllCaps"], SIGNAL(triggeredData(int)), mainWindow, SLOT(setItemTypeStyle(int)));
00334     connect( (*scrActions)["typeEffectSuperscript"], SIGNAL(triggeredData(int)), mainWindow, SLOT(setItemTypeStyle(int)));
00335     connect( (*scrActions)["typeEffectSubscript"], SIGNAL(triggeredData(int)), mainWindow, SLOT(setItemTypeStyle(int)));
00336     connect( (*scrActions)["typeEffectOutline"], SIGNAL(triggeredData(int)), mainWindow, SLOT(setItemTypeStyle(int)));
00337     connect( (*scrActions)["typeEffectShadow"], SIGNAL(triggeredData(int)), mainWindow, SLOT(setItemTypeStyle(int)));
00338 
00339     //Other Style menu items that get added in various places
00340     name="styleImageEffects";
00341     scrActions->insert(name, new ScrAction("", defKeys[name], mainWindow));
00342     name="styleTabulators";
00343     scrActions->insert(name, new ScrAction("", defKeys[name], mainWindow));
00344     connect( (*scrActions)["styleImageEffects"], SIGNAL(triggered()), mainWindow, SLOT(ImageEffects()));
00345     connect( (*scrActions)["styleTabulators"], SIGNAL(triggered()), mainWindow, SLOT(EditTabs()));
00346 
00347 }
00348 
00349 void ActionManager::initItemMenuActions()
00350 {
00351     QString name;
00352     //Item Menu
00353     name="itemDuplicate";
00354     scrActions->insert(name, new ScrAction("", defKeys[name], mainWindow));
00355     name="itemMulDuplicate";
00356     scrActions->insert(name, new ScrAction("", defKeys[name], mainWindow));
00357     name="itemDelete";
00358     scrActions->insert(name, new ScrAction("", defKeys[name], mainWindow));
00359     name="itemGroup";
00360     scrActions->insert(name, new ScrAction("", defKeys[name], mainWindow));
00361     name="itemUngroup";
00362     scrActions->insert(name, new ScrAction("", defKeys[name], mainWindow));
00363     name="itemLock";
00364     scrActions->insert(name, new ScrAction("", defKeys[name], mainWindow));
00365     name="itemLockSize";
00366     scrActions->insert(name, new ScrAction("", defKeys[name], mainWindow));
00367     name="itemPrintingEnabled";
00368     scrActions->insert(name, new ScrAction("", defKeys[name], mainWindow));
00369     name="itemFlipH";
00370     scrActions->insert(name, new ScrAction("", defKeys[name], mainWindow));
00371     name="itemFlipV";
00372     scrActions->insert(name, new ScrAction("", defKeys[name], mainWindow));
00373     (*scrActions)["itemLock"]->setToggleAction(true, true);
00374     (*scrActions)["itemLockSize"]->setToggleAction(true, true);
00375     (*scrActions)["itemPrintingEnabled"]->setToggleAction(true, true);
00376     (*scrActions)["itemFlipH"]->setToggleAction(true, true);
00377     (*scrActions)["itemFlipV"]->setToggleAction(true, true);
00378     name="itemLowerToBottom";
00379     scrActions->insert(name, new ScrAction(loadIcon("16/go-bottom.png"), loadIcon("22/go-bottom.png"), "", defKeys[name], mainWindow));
00380     name="itemRaiseToTop";
00381     scrActions->insert(name, new ScrAction(loadIcon("16/go-top.png"), loadIcon("22/go-top.png"), "", defKeys[name], mainWindow));
00382     name="itemLower";
00383     scrActions->insert(name, new ScrAction(loadIcon("16/go-down.png"), loadIcon("22/go-down.png"), "", defKeys[name], mainWindow));
00384     name="itemRaise";
00385     scrActions->insert(name, new ScrAction(loadIcon("16/go-up.png"), loadIcon("22/go-up.png"), "", defKeys[name], mainWindow));
00386     name="itemSendToScrapbook";
00387     scrActions->insert(name, new ScrAction("", defKeys[name], mainWindow));
00388     name="itemSendToPattern";
00389     scrActions->insert(name, new ScrAction("", defKeys[name], mainWindow));
00390     name="itemImageInfo";
00391     scrActions->insert(name, new ScrAction("", defKeys[name], mainWindow));
00392     name="itemAttributes";
00393     scrActions->insert(name, new ScrAction("", defKeys[name], mainWindow));
00394     name="itemImageIsVisible";
00395     scrActions->insert(name, new ScrAction("", defKeys[name], mainWindow));
00396     name="itemUpdateImage";
00397     scrActions->insert(name, new ScrAction("", defKeys[name], mainWindow));
00398     name="itemAdjustFrameToImage";
00399     scrActions->insert(name, new ScrAction("", defKeys[name], mainWindow));
00400     name="itemExtendedImageProperties";
00401     scrActions->insert(name, new ScrAction("", defKeys[name], mainWindow));
00402     name="itemPreviewLow";
00403     scrActions->insert(name, new ScrAction(ScrAction::DataInt, QPixmap(), QPixmap(), "", defKeys[name], mainWindow, 2));
00404     name="itemPreviewNormal";
00405     scrActions->insert(name, new ScrAction(ScrAction::DataInt, QPixmap(), QPixmap(), "", defKeys[name], mainWindow, 1));
00406     name="itemPreviewFull";
00407     scrActions->insert(name, new ScrAction(ScrAction::DataInt, QPixmap(), QPixmap(), "", defKeys[name], mainWindow, 0));
00408     name="itemPDFIsBookmark";
00409     scrActions->insert(name, new ScrAction("", defKeys[name], mainWindow));
00410     (*scrActions)["itemPDFIsBookmark"]->setToggleAction(true);
00411     name="itemPDFIsAnnotation";
00412     scrActions->insert(name, new ScrAction("", defKeys[name], mainWindow));
00413     (*scrActions)["itemPDFIsAnnotation"]->setToggleAction(true);
00414     name="itemPDFAnnotationProps";
00415     scrActions->insert(name, new ScrAction("", defKeys[name], mainWindow));
00416     name="itemPDFFieldProps";
00417     scrActions->insert(name, new ScrAction("", defKeys[name], mainWindow));
00418 
00419     (*scrActions)["itemPDFIsBookmark"]->setEnabled(false);
00420     (*scrActions)["itemPDFIsAnnotation"]->setEnabled(false);
00421     (*scrActions)["itemPDFAnnotationProps"]->setEnabled(false);
00422     (*scrActions)["itemPDFFieldProps"]->setEnabled(false);
00423 
00424     (*scrActions)["itemImageIsVisible"]->setToggleAction(true);
00425     (*scrActions)["itemPreviewLow"]->setToggleAction(true);
00426     (*scrActions)["itemPreviewNormal"]->setToggleAction(true);
00427     (*scrActions)["itemPreviewFull"]->setToggleAction(true);
00428 
00429     name="itemShapeEdit";
00430     scrActions->insert(name, new ScrAction("", defKeys[name], mainWindow));
00431     (*scrActions)["itemShapeEdit"]->setToggleAction(true);
00432     name="itemAttachTextToPath";
00433     scrActions->insert(name, new ScrAction("", defKeys[name], mainWindow));
00434     name="itemDetachTextFromPath";
00435     scrActions->insert(name, new ScrAction("", defKeys[name], mainWindow));
00436     name="itemCombinePolygons";
00437     scrActions->insert(name, new ScrAction("", defKeys[name], mainWindow));
00438     name="itemSplitPolygons";
00439     scrActions->insert(name, new ScrAction("", defKeys[name], mainWindow));
00440     name="itemConvertToBezierCurve";
00441     scrActions->insert(name, new ScrAction("", defKeys[name], mainWindow));
00442     name="itemConvertToImageFrame";
00443     scrActions->insert(name, new ScrAction("", defKeys[name], mainWindow));
00444     name="itemConvertToOutlines";
00445     scrActions->insert(name, new ScrAction("", defKeys[name], mainWindow));
00446     name="itemConvertToPolygon";
00447     scrActions->insert(name, new ScrAction("", defKeys[name], mainWindow));
00448     name="itemConvertToTextFrame";
00449     scrActions->insert(name, new ScrAction("", defKeys[name], mainWindow));
00450 
00451     connect( (*scrActions)["itemDuplicate"], SIGNAL(triggered()), mainWindow, SLOT(duplicateItem()) );
00452     connect( (*scrActions)["itemMulDuplicate"], SIGNAL(triggered()), mainWindow, SLOT(duplicateItemMulti()) );
00453     connect( (*scrActions)["itemGroup"], SIGNAL(triggered()), mainWindow, SLOT(GroupObj()) );
00454     connect( (*scrActions)["itemUngroup"], SIGNAL(triggered()), mainWindow, SLOT(UnGroupObj()) );
00455     connect( (*scrActions)["itemPDFAnnotationProps"], SIGNAL(triggered()), mainWindow, SLOT(ModifyAnnot()) );
00456     connect( (*scrActions)["itemPDFFieldProps"], SIGNAL(triggered()), mainWindow, SLOT(ModifyAnnot()) );
00457     connect( (*scrActions)["itemSendToScrapbook"], SIGNAL(triggered()), mainWindow, SLOT(PutScrap()) );
00458     connect( (*scrActions)["itemSendToPattern"], SIGNAL(triggered()), mainWindow, SLOT(PutToPatterns()) );
00459     connect( (*scrActions)["itemAttributes"], SIGNAL(triggered()), mainWindow, SLOT(objectAttributes()) );
00460     connect( (*scrActions)["itemShapeEdit"], SIGNAL(triggered()), mainWindow, SLOT(toggleNodeEdit()) );
00461     connect( (*scrActions)["itemImageInfo"], SIGNAL(triggered()), mainWindow, SLOT(getImageInfo()) );
00462 }
00463 
00464 void ActionManager::initInsertMenuActions()
00465 {
00466     QString name;
00467     //Insert Menu
00468     name="insertFrame";
00469     scrActions->insert(name, new ScrAction("", defKeys[name], mainWindow));
00470     name="insertGlyph";
00471     scrActions->insert(name, new ScrAction("", defKeys[name], mainWindow));
00472     (*scrActions)["insertGlyph"]->setToggleAction(true);
00473     name="insertSampleText";
00474     scrActions->insert(name, new ScrAction("", defKeys[name], mainWindow));
00475     name="stickyTools";
00476     scrActions->insert(name, new ScrAction("", defKeys[name], mainWindow));
00477     (*scrActions)["stickyTools"]->setToggleAction(true);
00478 
00479     connect( (*scrActions)["insertFrame"], SIGNAL(triggered()), mainWindow, SLOT(slotInsertFrame()) );
00480     connect( (*scrActions)["insertGlyph"], SIGNAL(triggered()), mainWindow, SLOT(slotCharSelect()) );
00481     connect( (*scrActions)["insertSampleText"], SIGNAL(triggered()), mainWindow, SLOT(insertSampleText()) );
00482     connect( (*scrActions)["stickyTools"], SIGNAL(triggered()), mainWindow, SLOT(ToggleStickyTools()) );
00483 }
00484 
00485 void ActionManager::initPageMenuActions()
00486 {
00487     QString name;
00488     //Page menu
00489     name="pageInsert";
00490     scrActions->insert(name, new ScrAction("", defKeys[name], mainWindow));
00491     name="pageImport";
00492     scrActions->insert(name, new ScrAction("", defKeys[name], mainWindow));
00493     name="pageDelete";
00494     scrActions->insert(name, new ScrAction("", defKeys[name], mainWindow));
00495     name="pageCopy";
00496     scrActions->insert(name, new ScrAction("", defKeys[name], mainWindow));
00497     name="pageMove";
00498     scrActions->insert(name, new ScrAction("", defKeys[name], mainWindow));
00499     name="pageApplyMasterPage";
00500     scrActions->insert(name, new ScrAction("", defKeys[name], mainWindow));
00501     name="pageCopyToMasterPage";
00502     scrActions->insert(name, new ScrAction("", defKeys[name], mainWindow));
00503     name="pageManageGuides";
00504     scrActions->insert(name, new ScrAction("", defKeys[name], mainWindow));
00505     (*scrActions)["pageManageGuides"]->setToggleAction(true);
00506     name="pageManageMargins";
00507     scrActions->insert(name, new ScrAction("", defKeys[name], mainWindow));
00508 
00509     connect( (*scrActions)["pageInsert"], SIGNAL(triggered()), mainWindow, SLOT(slotNewPageM()) );
00510     connect( (*scrActions)["pageImport"], SIGNAL(triggered()), mainWindow, SLOT(slotPageImport()) );
00511     connect( (*scrActions)["pageDelete"], SIGNAL(triggered()), mainWindow, SLOT(DeletePage()) );
00512     connect( (*scrActions)["pageCopy"], SIGNAL(triggered()), mainWindow, SLOT(CopyPage()) );
00513     connect( (*scrActions)["pageMove"], SIGNAL(triggered()), mainWindow, SLOT(MovePage()) );
00514     connect( (*scrActions)["pageApplyMasterPage"], SIGNAL(triggered()), mainWindow, SLOT(ApplyMasterPage()) );
00515     connect( (*scrActions)["pageCopyToMasterPage"], SIGNAL(triggered()), mainWindow, SLOT(duplicateToMasterPage()) );
00516     connect( (*scrActions)["pageManageMargins"], SIGNAL(triggered()), mainWindow, SLOT(changePageMargins()) );
00517 }
00518 
00519 void ActionManager::initViewMenuActions()
00520 {
00521     QString name;
00522     name="viewFitInWindow";
00523     scrActions->insert(name, new ScrAction(ScrAction::DataDouble, QPixmap(), QPixmap(), "", defKeys[name], mainWindow, 0, -100.0));
00524     name="viewFitWidth";
00525     scrActions->insert(name, new ScrAction(ScrAction::DataDouble, QPixmap(), QPixmap(), "", defKeys[name], mainWindow, 0, -200.0));
00526     name="viewFit50";
00527     scrActions->insert(name, new ScrAction(ScrAction::DataDouble, QPixmap(), QPixmap(), "", defKeys[name], mainWindow, 0, 50.0));
00528     name="viewFit75";
00529     scrActions->insert(name, new ScrAction(ScrAction::DataDouble,