00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
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
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
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
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
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
00146
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
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
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
00169 }
00170
00171 void ActionManager::initEditMenuActions()
00172 {
00173 QString name;
00174
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
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
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
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
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
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
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
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
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,