Subversion Repositories Scribus

Rev

Rev 19121 | Rev 19184 | Go to most recent revision | Blame | Compare with Previous | Last modification | View Log | RSS feed

/***************************************************************************
 *                                                                         *
 *   This program is free software; you can redistribute it and/or modify  *
 *   it under the terms of the GNU General Public License as published by  *
 *   the Free Software Foundation; either version 2 of the License, or     *
 *   (at your option) any later version.                                   *
 *                                                                         *
 ***************************************************************************/


/*
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.
*/


#include "appmodehelper.h"
#include "scribusdoc.h"
#include "scribuscore.h"

AppModeHelper::AppModeHelper(QObject *parent) :
    QObject(parent)
{
        scrActions=NULL;
        actMgr=NULL;
}

void AppModeHelper::setup(ActionManager* am, QMap<QString, QPointer<ScrAction> > *scra)
{
        actMgr=am;
        scrActions=scra;
}

void AppModeHelper::setFrameEditMode(bool b)
{
        bool b2=!b;
        (*scrActions)["toolsSelect"]->setEnabled(b2);
        (*scrActions)["toolsRotate"]->setEnabled(b2);
        (*scrActions)["toolsEditContents"]->setEnabled(b2);
        (*scrActions)["toolsEditWithStoryEditor"]->setEnabled(b2);
        (*scrActions)["toolsZoom"]->setEnabled(b2);
        (*scrActions)["toolsInsertTextFrame"]->setEnabled(b2);
        (*scrActions)["toolsInsertImageFrame"]->setEnabled(b2);
        (*scrActions)["toolsInsertTable"]->setEnabled(b2);
        (*scrActions)["toolsInsertShape"]->setEnabled(b2);
        (*scrActions)["toolsInsertLine"]->setEnabled(b2);
        (*scrActions)["toolsInsertBezier"]->setEnabled(b2);
        (*scrActions)["toolsInsertFreehandLine"]->setEnabled(b2);
        (*scrActions)["toolsInsertCalligraphicLine"]->setEnabled(b2);
        (*scrActions)["toolsInsertPolygon"]->setEnabled(b2);
        (*scrActions)["toolsInsertArc"]->setEnabled(b2);
        (*scrActions)["toolsInsertSpiral"]->setEnabled(b2);
        (*scrActions)["toolsInsertRenderFrame"]->setEnabled(b2);
        (*scrActions)["toolsLinkTextFrame"]->setEnabled(b2);
        (*scrActions)["toolsUnlinkTextFrame"]->setEnabled(b2);
        (*scrActions)["toolsUnlinkTextFrameWithTextCopy"]->setEnabled(b2);
        (*scrActions)["toolsUnlinkTextFrameWithTextCut"]->setEnabled(b2);
        (*scrActions)["toolsMeasurements"]->setEnabled(b2);
        (*scrActions)["toolsCopyProperties"]->setEnabled(b2);
        (*scrActions)["toolsEyeDropper"]->setEnabled(b2);
        (*scrActions)["toolsPDFPushButton"]->setEnabled(b2);
        (*scrActions)["toolsPDFRadioButton"]->setEnabled(b2);
        (*scrActions)["toolsPDFTextField"]->setEnabled(b2);
        (*scrActions)["toolsPDFCheckBox"]->setEnabled(b2);
        (*scrActions)["toolsPDFComboBox"]->setEnabled(b2);
        (*scrActions)["toolsPDFListBox"]->setEnabled(b2);
        (*scrActions)["toolsPDFAnnotText"]->setEnabled(b2);
        (*scrActions)["toolsPDFAnnotLink"]->setEnabled(b2);
#ifdef HAVE_OSG
        (*scrActions)["toolsPDFAnnot3D"]->setEnabled(b2);
#endif
        (*scrActions)["itemDelete"]->setEnabled(b2);
}

void AppModeHelper::setSymbolEditMode(bool b, ScribusDoc* doc)
{
        bool b2=!b;
        (*scrActions)["pageInsert"]->setEnabled(b2);
        (*scrActions)["pageImport"]->setEnabled(b2);
        (*scrActions)["pageCopy"]->setEnabled(b2);
        (*scrActions)["pageApplyMasterPage"]->setEnabled(b2);
        (*scrActions)["pageCopyToMasterPage"]->setEnabled(b2);
        (*scrActions)["editMasterPages"]->setEnabled(b2);
        (*scrActions)["fileNew"]->setEnabled(b2);
        (*scrActions)["fileNewFromTemplate"]->setEnabled(b2);
        (*scrActions)["fileOpen"]->setEnabled(b2);
        (*scrActions)["fileClose"]->setEnabled(b2);
        (*scrActions)["fileSave"]->setEnabled(b2);
        (*scrActions)["pageDelete"]->setEnabled(b2);
        (*scrActions)["pageMove"]->setEnabled(b2);
        if (b2)
        {
                (*scrActions)["fileSave"]->setEnabled(!doc->isConverted);
                bool setter = doc->DocPages.count() > 1 ? true : false;
                (*scrActions)["pageDelete"]->setEnabled(setter);
                (*scrActions)["pageMove"]->setEnabled(setter);
        }
        (*scrActions)["fileRevert"]->setEnabled(b2);
        (*scrActions)["fileDocSetup150"]->setEnabled(b2);
        (*scrActions)["filePrint"]->setEnabled(b2);
        (*scrActions)["fileCollect"]->setEnabled(b2);
        (*scrActions)["fileSaveAs"]->setEnabled(b2);
        (*scrActions)["fileExportAsEPS"]->setEnabled(b2);
        (*scrActions)["fileExportAsPDF"]->setEnabled(b2);
        if ( ScCore->haveGS() || ScCore->isWinGUI() )
        (*scrActions)["PrintPreview"]->setEnabled(b2);
        (*scrActions)["toolsPDFPushButton"]->setEnabled(b2);
        (*scrActions)["toolsPDFRadioButton"]->setEnabled(b2);
        (*scrActions)["toolsPDFTextField"]->setEnabled(b2);
        (*scrActions)["toolsPDFCheckBox"]->setEnabled(b2);
        (*scrActions)["toolsPDFComboBox"]->setEnabled(b2);
        (*scrActions)["toolsPDFListBox"]->setEnabled(b2);
        (*scrActions)["toolsPDFAnnotText"]->setEnabled(b2);
#ifdef HAVE_OSG
        (*scrActions)["toolsPDFAnnot3D"]->setEnabled(b2);
#endif
}

void AppModeHelper::setInlineEditMode(bool b, ScribusDoc *doc)
{
        bool b2=!b;
        (*scrActions)["pageInsert"]->setEnabled(b2);
        (*scrActions)["pageImport"]->setEnabled(b2);
        (*scrActions)["pageDelete"]->setEnabled(b2);
        (*scrActions)["pageCopy"]->setEnabled(b2);
        (*scrActions)["pageMove"]->setEnabled(b2);
        (*scrActions)["pageApplyMasterPage"]->setEnabled(b2);
        (*scrActions)["pageCopyToMasterPage"]->setEnabled(b2);
        (*scrActions)["editMasterPages"]->setEnabled(b2);
        (*scrActions)["fileNew"]->setEnabled(b2);
        (*scrActions)["fileNewFromTemplate"]->setEnabled(b2);
        (*scrActions)["fileOpen"]->setEnabled(b2);
        (*scrActions)["fileSave"]->setEnabled(b2);
        if (b2)
        {
                (*scrActions)["fileSave"]->setEnabled(!doc->isConverted);
                if ( ScCore->haveGS() || ScCore->isWinGUI() )
                        (*scrActions)["PrintPreview"]->setEnabled(true);
                bool setter = doc->DocPages.count() > 1 ? true : false;
                (*scrActions)["pageDelete"]->setEnabled(setter);
                (*scrActions)["pageMove"]->setEnabled(setter);
        }
        (*scrActions)["fileRevert"]->setEnabled(b2);
        (*scrActions)["fileDocSetup150"]->setEnabled(b2);
        (*scrActions)["filePrint"]->setEnabled(b2);
        (*scrActions)["fileCollect"]->setEnabled(b2);
        (*scrActions)["fileSaveAs"]->setEnabled(b2);
        (*scrActions)["fileExportAsEPS"]->setEnabled(b2);
        (*scrActions)["fileExportAsPDF"]->setEnabled(b2);
        if ( ScCore->haveGS() || ScCore->isWinGUI() )
                (*scrActions)["PrintPreview"]->setEnabled(b2);
        (*scrActions)["toolsPDFPushButton"]->setEnabled(b2);
        (*scrActions)["toolsPDFRadioButton"]->setEnabled(b2);
        (*scrActions)["toolsPDFTextField"]->setEnabled(b2);
        (*scrActions)["toolsPDFCheckBox"]->setEnabled(b2);
        (*scrActions)["toolsPDFComboBox"]->setEnabled(b2);
        (*scrActions)["toolsPDFListBox"]->setEnabled(b2);
        (*scrActions)["toolsPDFAnnotText"]->setEnabled(b2);
#ifdef HAVE_OSG
        (*scrActions)["toolsPDFAnnot3D"]->setEnabled(b2);
#endif
}

void AppModeHelper::setMasterPageEditMode(bool b, ScribusDoc* doc)
{
        bool b2=!b;
        (*scrActions)["pageInsert"]->setEnabled(b2);
        (*scrActions)["pageImport"]->setEnabled(b2);
        (*scrActions)["pageDelete"]->setEnabled(b2);
        (*scrActions)["pageCopy"]->setEnabled(b2);
        (*scrActions)["pageMove"]->setEnabled(b2);
        (*scrActions)["pageApplyMasterPage"]->setEnabled(b2);
        (*scrActions)["pageCopyToMasterPage"]->setEnabled(b2);
        (*scrActions)["editMasterPages"]->setEnabled(b2);
        (*scrActions)["fileNew"]->setEnabled(b2);
        (*scrActions)["fileNewFromTemplate"]->setEnabled(b2);
        (*scrActions)["fileOpen"]->setEnabled(b2);
        (*scrActions)["fileClose"]->setEnabled(!b2);
        (*scrActions)["fileSave"]->setEnabled(b2);
        if (b2)
        {
                (*scrActions)["fileSave"]->setEnabled(!doc->isConverted);
                if ( ScCore->haveGS() || ScCore->isWinGUI() )
                        (*scrActions)["PrintPreview"]->setEnabled(true);
                bool setter = doc->DocPages.count() > 1 ? true : false;
                (*scrActions)["pageDelete"]->setEnabled(setter);
                (*scrActions)["pageMove"]->setEnabled(setter);
        }

        (*scrActions)["fileRevert"]->setEnabled(b2);
        (*scrActions)["fileDocSetup150"]->setEnabled(b2);
        (*scrActions)["filePrint"]->setEnabled(b2);
        if ( ScCore->haveGS() || ScCore->isWinGUI() )
                (*scrActions)["PrintPreview"]->setEnabled(b2);
        (*scrActions)["toolsPDFPushButton"]->setEnabled(b2);
        (*scrActions)["toolsPDFRadioButton"]->setEnabled(b2);
        (*scrActions)["toolsPDFTextField"]->setEnabled(b2);
        (*scrActions)["toolsPDFCheckBox"]->setEnabled(b2);
        (*scrActions)["toolsPDFComboBox"]->setEnabled(b2);
        (*scrActions)["toolsPDFListBox"]->setEnabled(b2);
        (*scrActions)["toolsPDFAnnotText"]->setEnabled(b2);
#ifdef HAVE_OSG
        (*scrActions)["toolsPDFAnnot3D"]->setEnabled(b2);
#endif
        (*scrActions)["viewPreviewMode"]->setEnabled(b2);
}

void AppModeHelper::changeLayer(ScribusDoc *doc, bool clipScrapHaveData)
{
        bool setter = !doc->layerLocked( doc->activeLayer() );
        (*scrActions)["editPaste"]->setEnabled(clipScrapHaveData && setter);
        (*scrActions)["editSelectAll"]->setEnabled(setter);
        (*scrActions)["editSelectAllOnLayer"]->setEnabled(setter);
        (*scrActions)["editDeselectAll"]->setEnabled(false);
        (*scrActions)["insertFrame"]->setEnabled(setter);
        (*scrActions)["toolsSelect"]->setEnabled(setter);
        (*scrActions)["toolsInsertTextFrame"]->setEnabled(setter);
        (*scrActions)["toolsInsertImageFrame"]->setEnabled(setter);
        (*scrActions)["toolsInsertTable"]->setEnabled(setter);
        (*scrActions)["toolsInsertShape"]->setEnabled(setter);
        (*scrActions)["toolsInsertLine"]->setEnabled(setter);
        (*scrActions)["toolsInsertBezier"]->setEnabled(setter);
        (*scrActions)["toolsInsertFreehandLine"]->setEnabled(setter);
        (*scrActions)["toolsInsertCalligraphicLine"]->setEnabled(setter);
        (*scrActions)["toolsInsertPolygon"]->setEnabled(setter);
        (*scrActions)["toolsInsertArc"]->setEnabled(setter);
        (*scrActions)["toolsInsertSpiral"]->setEnabled(setter);
        (*scrActions)["toolsInsertRenderFrame"]->setEnabled(setter);
        bool setter2=doc->masterPageMode() ? false : setter;
        (*scrActions)["toolsPDFPushButton"]->setEnabled(setter2);
        (*scrActions)["toolsPDFRadioButton"]->setEnabled(setter2);
        (*scrActions)["toolsPDFTextField"]->setEnabled(setter2);
        (*scrActions)["toolsPDFCheckBox"]->setEnabled(setter2);
        (*scrActions)["toolsPDFComboBox"]->setEnabled(setter2);
        (*scrActions)["toolsPDFListBox"]->setEnabled(setter2);
        (*scrActions)["toolsPDFAnnotText"]->setEnabled(setter2);
        (*scrActions)["toolsPDFAnnotLink"]->setEnabled(setter);
}

void AppModeHelper::mainWindowHasNewDoc(ScribusDoc *doc, bool clipScrapHaveData)
{
        (*scrActions)["filePrint"]->setEnabled(true);
        (*scrActions)["fileSave"]->setEnabled(!doc->isConverted);
        (*scrActions)["fileClose"]->setEnabled(true);
        (*scrActions)["fileDocSetup150"]->setEnabled(true);
        (*scrActions)["fileRevert"]->setEnabled(false);
        (*scrActions)["fileCollect"]->setEnabled(true);
        (*scrActions)["fileSaveAs"]->setEnabled(true);
        (*scrActions)["fileExportAsEPS"]->setEnabled(true);
        (*scrActions)["fileExportAsPDF"]->setEnabled(true);
        (*scrActions)["fileImportVector"]->setEnabled(true);
        (*scrActions)["pageImport"]->setEnabled(true);

        if ( ScCore->haveGS() || ScCore->isWinGUI() )
                (*scrActions)["PrintPreview"]->setEnabled(true);

        if ((*scrActions)["SaveAsDocumentTemplate"])
                (*scrActions)["SaveAsDocumentTemplate"]->setEnabled(true);

        (*scrActions)["editCut"]->setEnabled(false);
        (*scrActions)["editCopy"]->setEnabled(false);
        (*scrActions)["editPaste"]->setEnabled(clipScrapHaveData);
        (*scrActions)["editCopyContents"]->setEnabled(false);
        (*scrActions)["editPasteContents"]->setEnabled(false);
        (*scrActions)["editPasteContentsAbs"]->setEnabled(false);
        (*scrActions)["editSelectAll"]->setEnabled(true);
        (*scrActions)["editSelectAllOnLayer"]->setEnabled(true);
        (*scrActions)["editDeselectAll"]->setEnabled(false);
        (*scrActions)["editReplaceColors"]->setEnabled(true);
        (*scrActions)["editStyles"]->setEnabled(true);
        (*scrActions)["editMarks"]->setEnabled(true);
        (*scrActions)["editNotesStyles"]->setEnabled(true);
        (*scrActions)["editMasterPages"]->setEnabled(true);
        (*scrActions)["editJavascripts"]->setEnabled(true);

        (*scrActions)["viewFitInWindow"]->setEnabled(true);
        (*scrActions)["viewFitWidth"]->setEnabled(true);
        (*scrActions)["viewFit50"]->setEnabled(true);
        (*scrActions)["viewFit75"]->setEnabled(true);
        (*scrActions)["viewFit100"]->setEnabled(true);
        (*scrActions)["viewFit200"]->setEnabled(true);
        (*scrActions)["viewFit400"]->setEnabled(true);

        (*scrActions)["viewSnapToGrid"]->setChecked(doc->SnapGrid);
        (*scrActions)["viewSnapToGuides"]->setChecked(doc->SnapGuides);
        (*scrActions)["viewSnapToElements"]->setChecked(doc->SnapElement);
        (*scrActions)["viewShowRulers"]->setEnabled(true);

        (*scrActions)["insertFrame"]->setEnabled(true);

        (*scrActions)["toolsSelect"]->setEnabled(true);
        (*scrActions)["toolsZoom"]->setEnabled(true);
        (*scrActions)["toolsInsertTextFrame"]->setEnabled(true);
        (*scrActions)["toolsInsertImageFrame"]->setEnabled(true);
        (*scrActions)["toolsInsertTable"]->setEnabled(true);
        (*scrActions)["toolsInsertShape"]->setEnabled(true);
        (*scrActions)["toolsInsertLine"]->setEnabled(true);
        (*scrActions)["toolsInsertBezier"]->setEnabled(true);
        (*scrActions)["toolsInsertFreehandLine"]->setEnabled(true);
        (*scrActions)["toolsInsertCalligraphicLine"]->setEnabled(true);
        (*scrActions)["toolsInsertPolygon"]->setEnabled(true);
        (*scrActions)["toolsInsertArc"]->setEnabled(true);
        (*scrActions)["toolsInsertSpiral"]->setEnabled(true);
        (*scrActions)["toolsInsertRenderFrame"]->setEnabled(true);
        (*scrActions)["toolsMeasurements"]->setEnabled(true);
        (*scrActions)["toolsEyeDropper"]->setEnabled(true);
        (*scrActions)["toolsPDFPushButton"]->setEnabled(true);
        (*scrActions)["toolsPDFRadioButton"]->setEnabled(true);
        (*scrActions)["toolsPDFTextField"]->setEnabled(true);
        (*scrActions)["toolsPDFCheckBox"]->setEnabled(true);
        (*scrActions)["toolsPDFComboBox"]->setEnabled(true);
        (*scrActions)["toolsPDFListBox"]->setEnabled(true);
        (*scrActions)["toolsPDFAnnotText"]->setEnabled(true);
        (*scrActions)["toolsPDFAnnotLink"]->setEnabled(true);
#ifdef HAVE_OSG
        (*scrActions)["toolsPDFAnnot3D"]->setEnabled(true);
#endif

        bool setter = doc->DocPages.count() > 1 ? true : false;
        (*scrActions)["pageDelete"]->setEnabled(setter);
        (*scrActions)["pageMove"]->setEnabled(setter);
        (*scrActions)["pageInsert"]->setEnabled(true);
        (*scrActions)["pageImport"]->setEnabled(true);
        (*scrActions)["pageCopy"]->setEnabled(true);
        (*scrActions)["pageApplyMasterPage"]->setEnabled(true);
        (*scrActions)["pageCopyToMasterPage"]->setEnabled(true);
        (*scrActions)["pageManageGuides"]->setEnabled(true);
        (*scrActions)["pageManageMargins"]->setEnabled(true);
}

void AppModeHelper::mainWindowSwitchWin(ScribusDoc *doc)
{
        (*scrActions)["fileClose"]->setEnabled(true);
        if (doc->masterPageMode() || doc->symbolEditMode() || doc->inlineEditMode())
        {
                (*scrActions)["pageInsert"]->setEnabled(false);
                (*scrActions)["pageDelete"]->setEnabled(false);
                (*scrActions)["pageCopy"]->setEnabled(false);
                (*scrActions)["pageMove"]->setEnabled(false);
                (*scrActions)["pageApplyMasterPage"]->setEnabled(false);
                (*scrActions)["pageCopyToMasterPage"]->setEnabled(false);
                (*scrActions)["editMasterPages"]->setEnabled(false);
                (*scrActions)["fileNew"]->setEnabled(false);
                (*scrActions)["fileNewFromTemplate"]->setEnabled(false);
                if (doc->symbolEditMode() || doc->inlineEditMode())
                {
                        (*scrActions)["fileCollect"]->setEnabled(false);
                        (*scrActions)["fileSaveAs"]->setEnabled(false);
                        (*scrActions)["fileExportAsEPS"]->setEnabled(false);
                        (*scrActions)["fileExportAsPDF"]->setEnabled(false);
                        (*scrActions)["fileSave"]->setEnabled(false);
                }
                else
                        (*scrActions)["fileSave"]->setEnabled(!doc->isConverted);
                (*scrActions)["fileOpen"]->setEnabled(false);
                (*scrActions)["fileRevert"]->setEnabled(false);
                (*scrActions)["toolsPDFPushButton"]->setEnabled(false);
                (*scrActions)["toolsPDFRadioButton"]->setEnabled(false);
                (*scrActions)["toolsPDFTextField"]->setEnabled(false);
                (*scrActions)["toolsPDFCheckBox"]->setEnabled(false);
                (*scrActions)["toolsPDFComboBox"]->setEnabled(false);
                (*scrActions)["toolsPDFListBox"]->setEnabled(false);
                (*scrActions)["toolsPDFAnnotText"]->setEnabled(false);
#ifdef HAVE_OSG
                (*scrActions)["toolsPDFAnnot3D"]->setEnabled(false);
#endif
        }
        else
        {
                (*scrActions)["editMasterPages"]->setEnabled(true);
                (*scrActions)["fileNew"]->setEnabled(true);
                (*scrActions)["fileNewFromTemplate"]->setEnabled(true);
                (*scrActions)["fileOpen"]->setEnabled(true);
                (*scrActions)["fileClose"]->setEnabled(true);
                (*scrActions)["fileSave"]->setEnabled(!doc->isConverted);
                (*scrActions)["fileRevert"]->setEnabled(false);

                if (!doc->isModified())
                {
                        bool setter = doc->DocPages.count() > 1 ? true : false;
                        (*scrActions)["pageDelete"]->setEnabled(setter);
                        (*scrActions)["pageMove"]->setEnabled(setter);
                }
                (*scrActions)["pageInsert"]->setEnabled(true);
                (*scrActions)["pageImport"]->setEnabled(true);
                (*scrActions)["pageCopy"]->setEnabled(true);
                (*scrActions)["pageApplyMasterPage"]->setEnabled(true);
                (*scrActions)["pageCopyToMasterPage"]->setEnabled(true);
                (*scrActions)["pageManageGuides"]->setEnabled(true);
                (*scrActions)["pageManageMargins"]->setEnabled(true);

                (*scrActions)["fileSaveAs"]->setEnabled(true);
                (*scrActions)["fileCollect"]->setEnabled(true);
                (*scrActions)["toolsPDFPushButton"]->setEnabled(true);
                (*scrActions)["toolsPDFRadioButton"]->setEnabled(true);
                (*scrActions)["toolsPDFTextField"]->setEnabled(true);
                (*scrActions)["toolsPDFCheckBox"]->setEnabled(true);
                (*scrActions)["toolsPDFComboBox"]->setEnabled(true);
                (*scrActions)["toolsPDFListBox"]->setEnabled(true);
                (*scrActions)["toolsPDFAnnotText"]->setEnabled(true);
#ifdef HAVE_OSG
                (*scrActions)["toolsPDFAnnot3D"]->setEnabled(true);
#endif
        }

        (*scrActions)["viewSnapToGrid"]->setChecked(doc->SnapGrid);
        (*scrActions)["viewSnapToGuides"]->setChecked(doc->SnapGuides);
        (*scrActions)["viewSnapToElements"]->setChecked(doc->SnapElement);
}

void AppModeHelper::mainWindowCloseLastDoc()
{
        (*scrActions)["fileDocSetup150"]->setEnabled(false);
        (*scrActions)["filePrint"]->setEnabled(false);
        (*scrActions)["fileSave"]->setEnabled(false);
        (*scrActions)["fileSaveAs"]->setEnabled(false);
        (*scrActions)["fileRevert"]->setEnabled(false);
        (*scrActions)["fileCollect"]->setEnabled(false);
        (*scrActions)["fileClose"]->setEnabled(false);
        if ( ScCore->haveGS() || ScCore->isWinGUI() )
                (*scrActions)["PrintPreview"]->setEnabled(false);
        if ((*scrActions)["SaveAsDocumentTemplate"])
                (*scrActions)["SaveAsDocumentTemplate"]->setEnabled(false);
        (*scrActions)["fileExportAsPDF"]->setEnabled(false);
        (*scrActions)["fileExportText"]->setEnabled(false);
        (*scrActions)["fileExportAsEPS"]->setEnabled(false);
        (*scrActions)["fileImportText"]->setEnabled(false);
        (*scrActions)["fileImportText2"]->setEnabled(false);
        (*scrActions)["fileImportImage"]->setEnabled(false);
        (*scrActions)["fileImportAppendText"]->setEnabled(false);
        (*scrActions)["fileImportVector"]->setEnabled(false);
        (*scrActions)["pageInsert"]->setEnabled(false);
        (*scrActions)["pageImport"]->setEnabled(false);
        (*scrActions)["pageDelete"]->setEnabled(false);
        (*scrActions)["pageImport"]->setEnabled(false);
        (*scrActions)["pageMove"]->setEnabled(false);
        (*scrActions)["pageCopy"]->setEnabled(false);
        (*scrActions)["pageApplyMasterPage"]->setEnabled(false);
        (*scrActions)["pageCopyToMasterPage"]->setEnabled(false);
        (*scrActions)["pageManageGuides"]->setEnabled(false);
        (*scrActions)["pageManageMargins"]->setEnabled(false);
        (*scrActions)["editUndoAction"]->setEnabled(false);
        (*scrActions)["editRedoAction"]->setEnabled(false);
        (*scrActions)["editCut"]->setEnabled(false);
        (*scrActions)["editCopy"]->setEnabled(false);
        (*scrActions)["editPaste"]->setEnabled(false);
        (*scrActions)["editClearContents"]->setEnabled(false);
        (*scrActions)["editSelectAll"]->setEnabled(false);
        (*scrActions)["editSelectAllOnLayer"]->setEnabled(false);
        (*scrActions)["editDeselectAll"]->setEnabled(false);
        (*scrActions)["editReplaceColors"]->setEnabled(false);
        (*scrActions)["editStyles"]->setEnabled(false);
        (*scrActions)["editMarks"]->setEnabled(false);
        (*scrActions)["editNotesStyles"]->setEnabled(false);
        (*scrActions)["editSearchReplace"]->setEnabled(false);
        (*scrActions)["editMasterPages"]->setEnabled(false);
        (*scrActions)["editJavascripts"]->setEnabled(false);
        (*scrActions)["editEditWithImageEditor"]->setEnabled(false);
        (*scrActions)["editEditRenderSource"]->setEnabled(false);
        (*scrActions)["extrasHyphenateText"]->setEnabled(false);
        (*scrActions)["extrasDeHyphenateText"]->setEnabled(false);
        (*scrActions)["viewFitInWindow"]->setEnabled(false);
        (*scrActions)["viewFitWidth"]->setEnabled(false);
        (*scrActions)["viewFit50"]->setEnabled(false);
        (*scrActions)["viewFit75"]->setEnabled(false);
        (*scrActions)["viewFit100"]->setEnabled(false);
        (*scrActions)["viewFit200"]->setEnabled(false);
        (*scrActions)["viewFit400"]->setEnabled(false);
        (*scrActions)["viewSnapToGuides"]->setChecked(false);
        (*scrActions)["viewSnapToElements"]->setChecked(false);
        (*scrActions)["viewSnapToGrid"]->setChecked(false);
        (*scrActions)["viewShowRulers"]->setEnabled(false);
        (*scrActions)["insertFrame"]->setEnabled(false);
        (*scrActions)["itemDuplicate"]->setEnabled(false);
        (*scrActions)["itemMulDuplicate"]->setEnabled(false);
        (*scrActions)["itemTransform"]->setEnabled(false);
        (*scrActions)["itemDelete"]->setEnabled(false);
        (*scrActions)["itemRaise"]->setEnabled(false);
        (*scrActions)["itemLower"]->setEnabled(false);
        (*scrActions)["itemRaiseToTop"]->setEnabled(false);
        (*scrActions)["itemLowerToBottom"]->setEnabled(false);
        (*scrActions)["itemSendToPattern"]->setEnabled(false);
        (*scrActions)["itemSendToInline"]->setEnabled(false);
        (*scrActions)["itemAdjustFrameToImage"]->setEnabled(false);
        (*scrActions)["itemAdjustImageToFrame"]->setEnabled(false);
        (*scrActions)["itemExtendedImageProperties"]->setEnabled(false);
        (*scrActions)["itemUpdateImage"]->setEnabled(false);
        (*scrActions)["itemPreviewLow"]->setEnabled(false);
        (*scrActions)["itemPreviewNormal"]->setEnabled(false);
        (*scrActions)["itemPreviewFull"]->setEnabled(false);
        (*scrActions)["itemAttributes"]->setEnabled(false);
        (*scrActions)["toolsSelect"]->setEnabled(false);
        (*scrActions)["toolsRotate"]->setEnabled(false);
        (*scrActions)["toolsEditContents"]->setEnabled(false);
        (*scrActions)["toolsEditWithStoryEditor"]->setEnabled(false);
        (*scrActions)["toolsZoom"]->setEnabled(false);
        (*scrActions)["toolsInsertTextFrame"]->setEnabled(false);
        (*scrActions)["toolsInsertImageFrame"]->setEnabled(false);
        (*scrActions)["toolsInsertShape"]->setEnabled(false);
        (*scrActions)["toolsInsertLine"]->setEnabled(false);
        (*scrActions)["toolsInsertBezier"]->setEnabled(false);
        (*scrActions)["toolsInsertFreehandLine"]->setEnabled(false);
        (*scrActions)["toolsInsertCalligraphicLine"]->setEnabled(false);
        (*scrActions)["toolsInsertPolygon"]->setEnabled(false);
        (*scrActions)["toolsInsertArc"]->setEnabled(false);
        (*scrActions)["toolsInsertSpiral"]->setEnabled(false);
        (*scrActions)["toolsInsertRenderFrame"]->setEnabled(false);
        (*scrActions)["toolsInsertTable"]->setEnabled(false);
        (*scrActions)["toolsLinkTextFrame"]->setEnabled(false);
        (*scrActions)["toolsUnlinkTextFrame"]->setEnabled(false);
        (*scrActions)["toolsUnlinkTextFrameWithTextCopy"]->setEnabled(false);
        (*scrActions)["toolsUnlinkTextFrameWithTextCut"]->setEnabled(false);
        (*scrActions)["toolsMeasurements"]->setEnabled(false);
        (*scrActions)["toolsCopyProperties"]->setEnabled(false);
        (*scrActions)["toolsEyeDropper"]->setEnabled(false);
        (*scrActions)["toolsPDFPushButton"]->setEnabled(false);
        (*scrActions)["toolsPDFRadioButton"]->setEnabled(false);
        (*scrActions)["toolsPDFTextField"]->setEnabled(false);
        (*scrActions)["toolsPDFCheckBox"]->setEnabled(false);
        (*scrActions)["toolsPDFComboBox"]->setEnabled(false);
        (*scrActions)["toolsPDFListBox"]->setEnabled(false);
        (*scrActions)["toolsPDFAnnotText"]->setEnabled(false);
        (*scrActions)["toolsPDFAnnotLink"]->setEnabled(false);
#ifdef HAVE_OSG
        (*scrActions)["toolsPDFAnnot3D"]->setEnabled(false);
#endif
        (*scrActions)["itemConvertToBezierCurve"]->setEnabled(false);
        (*scrActions)["itemConvertToImageFrame"]->setEnabled(false);
        (*scrActions)["itemConvertToOutlines"]->setEnabled(false);
        (*scrActions)["itemConvertToPolygon"]->setEnabled(false);
        (*scrActions)["itemConvertToTextFrame"]->setEnabled(false);
        (*scrActions)["itemConvertToSymbolFrame"]->setEnabled(false);
        (*scrActions)["itemLock"]->setEnabled(false);
        (*scrActions)["itemLockSize"]->setEnabled(false);
}

void AppModeHelper::setPreviewMode(bool b)
{
        bool b2=!b;
        (*scrActions)["viewShowMargins"]->setEnabled(b2);
        (*scrActions)["viewShowFrames"]->setEnabled(b2);
        (*scrActions)["viewShowLayerMarkers"]->setEnabled(b2);
        (*scrActions)["viewShowGrid"]->setEnabled(b2);
        (*scrActions)["viewShowGuides"]->setEnabled(b2);
        (*scrActions)["viewShowColumnBorders"]->setEnabled(b2);
        (*scrActions)["viewShowBaseline"]->setEnabled(b);
        (*scrActions)["viewShowTextChain"]->setEnabled(b2);
        (*scrActions)["viewShowTextControls"]->setEnabled(b2);
}

void AppModeHelper::enableTextActions(bool enabled, const QString& fontName)
{
        (*scrActions)["insertGlyph"]->setEnabled(enabled);
        actMgr->enableUnicodeActions(scrActions, enabled, fontName);
        if (!enabled)
        {
                (*scrActions)["insertMarkVariableText"]->setEnabled(false);
                (*scrActions)["insertMarkAnchor"]->setEnabled(false);
                (*scrActions)["insertMarkItem"]->setEnabled(false);
                (*scrActions)["insertMark2Mark"]->setEnabled(false);
                (*scrActions)["insertMarkNote"]->setEnabled(false);
                (*scrActions)["editMark"]->setEnabled(false);
        }
}