Subversion Repositories Scribus

Rev

Rev 19339 | Rev 19388 | Go to most recent revision | Details | Compare with Previous | Last modification | View Log | RSS feed

Rev Author Line No. Line
18888 craig 1
/***************************************************************************
2
 *                                                                         *
3
 *   This program is free software; you can redistribute it and/or modify  *
4
 *   it under the terms of the GNU General Public License as published by  *
5
 *   the Free Software Foundation; either version 2 of the License, or     *
6
 *   (at your option) any later version.                                   *
7
 *                                                                         *
8
 ***************************************************************************/
9
 
10
/*
11
For general Scribus (>=1.3.2) copyright and licensing information please refer
12
to the COPYING file provided with the program. Following this notice may exist
13
a copyright and/or license notice that predates the release of Scribus 1.3.2
14
for which a new license (GPL+exception) is in place.
15
*/
16
 
17
#include "appmodehelper.h"
18
#include "scribusdoc.h"
19
#include "scribuscore.h"
20
 
21
AppModeHelper::AppModeHelper(QObject *parent) :
22
    QObject(parent)
23
{
24
        scrActions=NULL;
18903 craig 25
        actMgr=NULL;
18888 craig 26
}
27
 
18903 craig 28
void AppModeHelper::setup(ActionManager* am, QMap<QString, QPointer<ScrAction> > *scra)
18888 craig 29
{
18903 craig 30
        actMgr=am;
18888 craig 31
        scrActions=scra;
32
}
33
 
34
void AppModeHelper::setFrameEditMode(bool b)
35
{
36
        bool b2=!b;
19365 jghali 37
        (*scrActions)["insertFrame"]->setEnabled(b2);
18888 craig 38
        (*scrActions)["toolsSelect"]->setEnabled(b2);
39
        (*scrActions)["toolsRotate"]->setEnabled(b2);
40
        (*scrActions)["toolsEditContents"]->setEnabled(b2);
41
        (*scrActions)["toolsEditWithStoryEditor"]->setEnabled(b2);
42
        (*scrActions)["toolsZoom"]->setEnabled(b2);
43
        (*scrActions)["toolsInsertTextFrame"]->setEnabled(b2);
44
        (*scrActions)["toolsInsertImageFrame"]->setEnabled(b2);
45
        (*scrActions)["toolsInsertTable"]->setEnabled(b2);
46
        (*scrActions)["toolsInsertShape"]->setEnabled(b2);
47
        (*scrActions)["toolsInsertLine"]->setEnabled(b2);
48
        (*scrActions)["toolsInsertBezier"]->setEnabled(b2);
49
        (*scrActions)["toolsInsertFreehandLine"]->setEnabled(b2);
50
        (*scrActions)["toolsInsertCalligraphicLine"]->setEnabled(b2);
51
        (*scrActions)["toolsInsertPolygon"]->setEnabled(b2);
52
        (*scrActions)["toolsInsertArc"]->setEnabled(b2);
53
        (*scrActions)["toolsInsertSpiral"]->setEnabled(b2);
54
        (*scrActions)["toolsInsertRenderFrame"]->setEnabled(b2);
55
        (*scrActions)["toolsLinkTextFrame"]->setEnabled(b2);
56
        (*scrActions)["toolsUnlinkTextFrame"]->setEnabled(b2);
57
        (*scrActions)["toolsUnlinkTextFrameWithTextCopy"]->setEnabled(b2);
58
        (*scrActions)["toolsUnlinkTextFrameWithTextCut"]->setEnabled(b2);
59
        (*scrActions)["toolsMeasurements"]->setEnabled(b2);
60
        (*scrActions)["toolsCopyProperties"]->setEnabled(b2);
61
        (*scrActions)["toolsEyeDropper"]->setEnabled(b2);
62
        (*scrActions)["toolsPDFPushButton"]->setEnabled(b2);
63
        (*scrActions)["toolsPDFRadioButton"]->setEnabled(b2);
64
        (*scrActions)["toolsPDFTextField"]->setEnabled(b2);
65
        (*scrActions)["toolsPDFCheckBox"]->setEnabled(b2);
66
        (*scrActions)["toolsPDFComboBox"]->setEnabled(b2);
67
        (*scrActions)["toolsPDFListBox"]->setEnabled(b2);
68
        (*scrActions)["toolsPDFAnnotText"]->setEnabled(b2);
69
        (*scrActions)["toolsPDFAnnotLink"]->setEnabled(b2);
70
#ifdef HAVE_OSG
71
        (*scrActions)["toolsPDFAnnot3D"]->setEnabled(b2);
72
#endif
73
        (*scrActions)["itemDelete"]->setEnabled(b2);
74
}
75
 
76
void AppModeHelper::setSymbolEditMode(bool b, ScribusDoc* doc)
77
{
78
        bool b2=!b;
79
        (*scrActions)["pageInsert"]->setEnabled(b2);
80
        (*scrActions)["pageImport"]->setEnabled(b2);
81
        (*scrActions)["pageCopy"]->setEnabled(b2);
82
        (*scrActions)["pageApplyMasterPage"]->setEnabled(b2);
83
        (*scrActions)["pageCopyToMasterPage"]->setEnabled(b2);
84
        (*scrActions)["editMasterPages"]->setEnabled(b2);
85
        (*scrActions)["fileNew"]->setEnabled(b2);
86
        (*scrActions)["fileNewFromTemplate"]->setEnabled(b2);
87
        (*scrActions)["fileOpen"]->setEnabled(b2);
88
        (*scrActions)["fileClose"]->setEnabled(b2);
89
        (*scrActions)["fileSave"]->setEnabled(b2);
90
        (*scrActions)["pageDelete"]->setEnabled(b2);
91
        (*scrActions)["pageMove"]->setEnabled(b2);
92
        if (b2)
93
        {
94
                (*scrActions)["fileSave"]->setEnabled(!doc->isConverted);
95
                bool setter = doc->DocPages.count() > 1 ? true : false;
96
                (*scrActions)["pageDelete"]->setEnabled(setter);
97
                (*scrActions)["pageMove"]->setEnabled(setter);
98
        }
99
        (*scrActions)["fileRevert"]->setEnabled(b2);
100
        (*scrActions)["fileDocSetup150"]->setEnabled(b2);
101
        (*scrActions)["filePrint"]->setEnabled(b2);
102
        (*scrActions)["fileCollect"]->setEnabled(b2);
103
        (*scrActions)["fileSaveAs"]->setEnabled(b2);
104
        (*scrActions)["fileExportAsEPS"]->setEnabled(b2);
105
        (*scrActions)["fileExportAsPDF"]->setEnabled(b2);
19179 craig 106
        if ( ScCore->haveGS() || ScCore->isWinGUI() )
19184 jghali 107
                (*scrActions)["PrintPreview"]->setEnabled(b2);
18888 craig 108
        (*scrActions)["toolsPDFPushButton"]->setEnabled(b2);
109
        (*scrActions)["toolsPDFRadioButton"]->setEnabled(b2);
110
        (*scrActions)["toolsPDFTextField"]->setEnabled(b2);
111
        (*scrActions)["toolsPDFCheckBox"]->setEnabled(b2);
112
        (*scrActions)["toolsPDFComboBox"]->setEnabled(b2);
113
        (*scrActions)["toolsPDFListBox"]->setEnabled(b2);
114
        (*scrActions)["toolsPDFAnnotText"]->setEnabled(b2);
115
#ifdef HAVE_OSG
116
        (*scrActions)["toolsPDFAnnot3D"]->setEnabled(b2);
117
#endif
118
}
119
 
120
void AppModeHelper::setInlineEditMode(bool b, ScribusDoc *doc)
121
{
122
        bool b2=!b;
123
        (*scrActions)["pageInsert"]->setEnabled(b2);
124
        (*scrActions)["pageImport"]->setEnabled(b2);
125
        (*scrActions)["pageDelete"]->setEnabled(b2);
126
        (*scrActions)["pageCopy"]->setEnabled(b2);
127
        (*scrActions)["pageMove"]->setEnabled(b2);
128
        (*scrActions)["pageApplyMasterPage"]->setEnabled(b2);
129
        (*scrActions)["pageCopyToMasterPage"]->setEnabled(b2);
130
        (*scrActions)["editMasterPages"]->setEnabled(b2);
131
        (*scrActions)["fileNew"]->setEnabled(b2);
132
        (*scrActions)["fileNewFromTemplate"]->setEnabled(b2);
133
        (*scrActions)["fileOpen"]->setEnabled(b2);
134
        (*scrActions)["fileSave"]->setEnabled(b2);
135
        if (b2)
136
        {
137
                (*scrActions)["fileSave"]->setEnabled(!doc->isConverted);
138
                if ( ScCore->haveGS() || ScCore->isWinGUI() )
139
                        (*scrActions)["PrintPreview"]->setEnabled(true);
140
                bool setter = doc->DocPages.count() > 1 ? true : false;
141
                (*scrActions)["pageDelete"]->setEnabled(setter);
142
                (*scrActions)["pageMove"]->setEnabled(setter);
143
        }
144
        (*scrActions)["fileRevert"]->setEnabled(b2);
145
        (*scrActions)["fileDocSetup150"]->setEnabled(b2);
146
        (*scrActions)["filePrint"]->setEnabled(b2);
147
        (*scrActions)["fileCollect"]->setEnabled(b2);
148
        (*scrActions)["fileSaveAs"]->setEnabled(b2);
149
        (*scrActions)["fileExportAsEPS"]->setEnabled(b2);
150
        (*scrActions)["fileExportAsPDF"]->setEnabled(b2);
19179 craig 151
        if ( ScCore->haveGS() || ScCore->isWinGUI() )
152
                (*scrActions)["PrintPreview"]->setEnabled(b2);
18888 craig 153
        (*scrActions)["toolsPDFPushButton"]->setEnabled(b2);
154
        (*scrActions)["toolsPDFRadioButton"]->setEnabled(b2);
155
        (*scrActions)["toolsPDFTextField"]->setEnabled(b2);
156
        (*scrActions)["toolsPDFCheckBox"]->setEnabled(b2);
157
        (*scrActions)["toolsPDFComboBox"]->setEnabled(b2);
158
        (*scrActions)["toolsPDFListBox"]->setEnabled(b2);
159
        (*scrActions)["toolsPDFAnnotText"]->setEnabled(b2);
160
#ifdef HAVE_OSG
161
        (*scrActions)["toolsPDFAnnot3D"]->setEnabled(b2);
162
#endif
163
}
164
 
165
void AppModeHelper::setMasterPageEditMode(bool b, ScribusDoc* doc)
166
{
167
        bool b2=!b;
168
        (*scrActions)["pageInsert"]->setEnabled(b2);
169
        (*scrActions)["pageImport"]->setEnabled(b2);
170
        (*scrActions)["pageDelete"]->setEnabled(b2);
171
        (*scrActions)["pageCopy"]->setEnabled(b2);
172
        (*scrActions)["pageMove"]->setEnabled(b2);
173
        (*scrActions)["pageApplyMasterPage"]->setEnabled(b2);
174
        (*scrActions)["pageCopyToMasterPage"]->setEnabled(b2);
175
        (*scrActions)["editMasterPages"]->setEnabled(b2);
176
        (*scrActions)["fileNew"]->setEnabled(b2);
177
        (*scrActions)["fileNewFromTemplate"]->setEnabled(b2);
178
        (*scrActions)["fileOpen"]->setEnabled(b2);
179
        (*scrActions)["fileClose"]->setEnabled(!b2);
180
        (*scrActions)["fileSave"]->setEnabled(b2);
19335 craig 181
        (*scrActions)["fileExportAsEPS"]->setEnabled(b2);
182
        (*scrActions)["fileExportAsPDF"]->setEnabled(b2);
18888 craig 183
        if (b2)
184
        {
185
                (*scrActions)["fileSave"]->setEnabled(!doc->isConverted);
186
                if ( ScCore->haveGS() || ScCore->isWinGUI() )
187
                        (*scrActions)["PrintPreview"]->setEnabled(true);
188
                bool setter = doc->DocPages.count() > 1 ? true : false;
189
                (*scrActions)["pageDelete"]->setEnabled(setter);
190
                (*scrActions)["pageMove"]->setEnabled(setter);
191
        }
192
 
193
        (*scrActions)["fileRevert"]->setEnabled(b2);
194
        (*scrActions)["fileDocSetup150"]->setEnabled(b2);
195
        (*scrActions)["filePrint"]->setEnabled(b2);
19179 craig 196
        if ( ScCore->haveGS() || ScCore->isWinGUI() )
197
                (*scrActions)["PrintPreview"]->setEnabled(b2);
18888 craig 198
        (*scrActions)["toolsPDFPushButton"]->setEnabled(b2);
199
        (*scrActions)["toolsPDFRadioButton"]->setEnabled(b2);
200
        (*scrActions)["toolsPDFTextField"]->setEnabled(b2);
201
        (*scrActions)["toolsPDFCheckBox"]->setEnabled(b2);
202
        (*scrActions)["toolsPDFComboBox"]->setEnabled(b2);
203
        (*scrActions)["toolsPDFListBox"]->setEnabled(b2);
204
        (*scrActions)["toolsPDFAnnotText"]->setEnabled(b2);
205
#ifdef HAVE_OSG
206
        (*scrActions)["toolsPDFAnnot3D"]->setEnabled(b2);
207
#endif
19274 craig 208
        //(*scrActions)["viewPreviewMode"]->setEnabled(b2);
18888 craig 209
}
210
 
211
void AppModeHelper::changeLayer(ScribusDoc *doc, bool clipScrapHaveData)
212
{
213
        bool setter = !doc->layerLocked( doc->activeLayer() );
214
        (*scrActions)["editPaste"]->setEnabled(clipScrapHaveData && setter);
215
        (*scrActions)["editSelectAll"]->setEnabled(setter);
216
        (*scrActions)["editSelectAllOnLayer"]->setEnabled(setter);
217
        (*scrActions)["editDeselectAll"]->setEnabled(false);
218
        (*scrActions)["insertFrame"]->setEnabled(setter);
219
        (*scrActions)["toolsSelect"]->setEnabled(setter);
220
        (*scrActions)["toolsInsertTextFrame"]->setEnabled(setter);
221
        (*scrActions)["toolsInsertImageFrame"]->setEnabled(setter);
222
        (*scrActions)["toolsInsertTable"]->setEnabled(setter);
223
        (*scrActions)["toolsInsertShape"]->setEnabled(setter);
224
        (*scrActions)["toolsInsertLine"]->setEnabled(setter);
225
        (*scrActions)["toolsInsertBezier"]->setEnabled(setter);
226
        (*scrActions)["toolsInsertFreehandLine"]->setEnabled(setter);
227
        (*scrActions)["toolsInsertCalligraphicLine"]->setEnabled(setter);
228
        (*scrActions)["toolsInsertPolygon"]->setEnabled(setter);
229
        (*scrActions)["toolsInsertArc"]->setEnabled(setter);
230
        (*scrActions)["toolsInsertSpiral"]->setEnabled(setter);
231
        (*scrActions)["toolsInsertRenderFrame"]->setEnabled(setter);
232
        bool setter2=doc->masterPageMode() ? false : setter;
233
        (*scrActions)["toolsPDFPushButton"]->setEnabled(setter2);
234
        (*scrActions)["toolsPDFRadioButton"]->setEnabled(setter2);
235
        (*scrActions)["toolsPDFTextField"]->setEnabled(setter2);
236
        (*scrActions)["toolsPDFCheckBox"]->setEnabled(setter2);
237
        (*scrActions)["toolsPDFComboBox"]->setEnabled(setter2);
238
        (*scrActions)["toolsPDFListBox"]->setEnabled(setter2);
239
        (*scrActions)["toolsPDFAnnotText"]->setEnabled(setter2);
240
        (*scrActions)["toolsPDFAnnotLink"]->setEnabled(setter);
241
}
18903 craig 242
 
18905 craig 243
void AppModeHelper::mainWindowHasNewDoc(ScribusDoc *doc, bool clipScrapHaveData)
244
{
245
        (*scrActions)["filePrint"]->setEnabled(true);
246
        (*scrActions)["fileSave"]->setEnabled(!doc->isConverted);
247
        (*scrActions)["fileClose"]->setEnabled(true);
248
        (*scrActions)["fileDocSetup150"]->setEnabled(true);
249
        (*scrActions)["fileRevert"]->setEnabled(false);
250
        (*scrActions)["fileCollect"]->setEnabled(true);
251
        (*scrActions)["fileSaveAs"]->setEnabled(true);
252
        (*scrActions)["fileExportAsEPS"]->setEnabled(true);
253
        (*scrActions)["fileExportAsPDF"]->setEnabled(true);
19121 craig 254
        (*scrActions)["fileImportVector"]->setEnabled(true);
18905 craig 255
        (*scrActions)["pageImport"]->setEnabled(true);
256
 
257
        if ( ScCore->haveGS() || ScCore->isWinGUI() )
258
                (*scrActions)["PrintPreview"]->setEnabled(true);
259
 
260
        if ((*scrActions)["SaveAsDocumentTemplate"])
261
                (*scrActions)["SaveAsDocumentTemplate"]->setEnabled(true);
262
 
263
        (*scrActions)["editCut"]->setEnabled(false);
264
        (*scrActions)["editCopy"]->setEnabled(false);
265
        (*scrActions)["editPaste"]->setEnabled(clipScrapHaveData);
266
        (*scrActions)["editCopyContents"]->setEnabled(false);
267
        (*scrActions)["editPasteContents"]->setEnabled(false);
268
        (*scrActions)["editPasteContentsAbs"]->setEnabled(false);
269
        (*scrActions)["editSelectAll"]->setEnabled(true);
270
        (*scrActions)["editSelectAllOnLayer"]->setEnabled(true);
271
        (*scrActions)["editDeselectAll"]->setEnabled(false);
272
        (*scrActions)["editReplaceColors"]->setEnabled(true);
273
        (*scrActions)["editStyles"]->setEnabled(true);
274
        (*scrActions)["editMarks"]->setEnabled(true);
275
        (*scrActions)["editNotesStyles"]->setEnabled(true);
276
        (*scrActions)["editMasterPages"]->setEnabled(true);
277
        (*scrActions)["editJavascripts"]->setEnabled(true);
278
 
279
        (*scrActions)["viewFitInWindow"]->setEnabled(true);
280
        (*scrActions)["viewFitWidth"]->setEnabled(true);
281
        (*scrActions)["viewFit50"]->setEnabled(true);
282
        (*scrActions)["viewFit75"]->setEnabled(true);
283
        (*scrActions)["viewFit100"]->setEnabled(true);
284
        (*scrActions)["viewFit200"]->setEnabled(true);
285
        (*scrActions)["viewFit400"]->setEnabled(true);
286
 
287
        (*scrActions)["viewSnapToGrid"]->setChecked(doc->SnapGrid);
288
        (*scrActions)["viewSnapToGuides"]->setChecked(doc->SnapGuides);
289
        (*scrActions)["viewSnapToElements"]->setChecked(doc->SnapElement);
290
        (*scrActions)["viewShowRulers"]->setEnabled(true);
291
 
292
        (*scrActions)["insertFrame"]->setEnabled(true);
293
 
294
        (*scrActions)["toolsSelect"]->setEnabled(true);
295
        (*scrActions)["toolsZoom"]->setEnabled(true);
296
        (*scrActions)["toolsInsertTextFrame"]->setEnabled(true);
297
        (*scrActions)["toolsInsertImageFrame"]->setEnabled(true);
298
        (*scrActions)["toolsInsertTable"]->setEnabled(true);
299
        (*scrActions)["toolsInsertShape"]->setEnabled(true);
300
        (*scrActions)["toolsInsertLine"]->setEnabled(true);
301
        (*scrActions)["toolsInsertBezier"]->setEnabled(true);
302
        (*scrActions)["toolsInsertFreehandLine"]->setEnabled(true);
303
        (*scrActions)["toolsInsertCalligraphicLine"]->setEnabled(true);
304
        (*scrActions)["toolsInsertPolygon"]->setEnabled(true);
305
        (*scrActions)["toolsInsertArc"]->setEnabled(true);
306
        (*scrActions)["toolsInsertSpiral"]->setEnabled(true);
307
        (*scrActions)["toolsInsertRenderFrame"]->setEnabled(true);
308
        (*scrActions)["toolsMeasurements"]->setEnabled(true);
309
        (*scrActions)["toolsEyeDropper"]->setEnabled(true);
310
        (*scrActions)["toolsPDFPushButton"]->setEnabled(true);
311
        (*scrActions)["toolsPDFRadioButton"]->setEnabled(true);
312
        (*scrActions)["toolsPDFTextField"]->setEnabled(true);
313
        (*scrActions)["toolsPDFCheckBox"]->setEnabled(true);
314
        (*scrActions)["toolsPDFComboBox"]->setEnabled(true);
315
        (*scrActions)["toolsPDFListBox"]->setEnabled(true);
316
        (*scrActions)["toolsPDFAnnotText"]->setEnabled(true);
317
        (*scrActions)["toolsPDFAnnotLink"]->setEnabled(true);
318
#ifdef HAVE_OSG
319
        (*scrActions)["toolsPDFAnnot3D"]->setEnabled(true);
320
#endif
19207 craig 321
        (*scrActions)["toolsPreflightVerifier"]->setEnabled(true);
18905 craig 322
        bool setter = doc->DocPages.count() > 1 ? true : false;
323
        (*scrActions)["pageDelete"]->setEnabled(setter);
324
        (*scrActions)["pageMove"]->setEnabled(setter);
325
        (*scrActions)["pageInsert"]->setEnabled(true);
326
        (*scrActions)["pageImport"]->setEnabled(true);
327
        (*scrActions)["pageCopy"]->setEnabled(true);
328
        (*scrActions)["pageApplyMasterPage"]->setEnabled(true);
329
        (*scrActions)["pageCopyToMasterPage"]->setEnabled(true);
330
        (*scrActions)["pageManageGuides"]->setEnabled(true);
331
        (*scrActions)["pageManageMargins"]->setEnabled(true);
332
}
333
 
18914 craig 334
void AppModeHelper::mainWindowSwitchWin(ScribusDoc *doc)
335
{
336
        (*scrActions)["fileClose"]->setEnabled(true);
337
        if (doc->masterPageMode() || doc->symbolEditMode() || doc->inlineEditMode())
338
        {
339
                (*scrActions)["pageInsert"]->setEnabled(false);
340
                (*scrActions)["pageDelete"]->setEnabled(false);
341
                (*scrActions)["pageCopy"]->setEnabled(false);
342
                (*scrActions)["pageMove"]->setEnabled(false);
343
                (*scrActions)["pageApplyMasterPage"]->setEnabled(false);
344
                (*scrActions)["pageCopyToMasterPage"]->setEnabled(false);
345
                (*scrActions)["editMasterPages"]->setEnabled(false);
346
                (*scrActions)["fileNew"]->setEnabled(false);
347
                (*scrActions)["fileNewFromTemplate"]->setEnabled(false);
348
                if (doc->symbolEditMode() || doc->inlineEditMode())
349
                {
350
                        (*scrActions)["fileCollect"]->setEnabled(false);
351
                        (*scrActions)["fileSaveAs"]->setEnabled(false);
352
                        (*scrActions)["fileExportAsEPS"]->setEnabled(false);
353
                        (*scrActions)["fileExportAsPDF"]->setEnabled(false);
354
                        (*scrActions)["fileSave"]->setEnabled(false);
355
                }
356
                else
357
                        (*scrActions)["fileSave"]->setEnabled(!doc->isConverted);
358
                (*scrActions)["fileOpen"]->setEnabled(false);
359
                (*scrActions)["fileRevert"]->setEnabled(false);
360
                (*scrActions)["toolsPDFPushButton"]->setEnabled(false);
361
                (*scrActions)["toolsPDFRadioButton"]->setEnabled(false);
362
                (*scrActions)["toolsPDFTextField"]->setEnabled(false);
363
                (*scrActions)["toolsPDFCheckBox"]->setEnabled(false);
364
                (*scrActions)["toolsPDFComboBox"]->setEnabled(false);
365
                (*scrActions)["toolsPDFListBox"]->setEnabled(false);
366
                (*scrActions)["toolsPDFAnnotText"]->setEnabled(false);
367
#ifdef HAVE_OSG
368
                (*scrActions)["toolsPDFAnnot3D"]->setEnabled(false);
369
#endif
370
        }
371
        else
372
        {
373
                (*scrActions)["editMasterPages"]->setEnabled(true);
374
                (*scrActions)["fileNew"]->setEnabled(true);
375
                (*scrActions)["fileNewFromTemplate"]->setEnabled(true);
376
                (*scrActions)["fileOpen"]->setEnabled(true);
377
                (*scrActions)["fileClose"]->setEnabled(true);
378
                (*scrActions)["fileSave"]->setEnabled(!doc->isConverted);
379
                (*scrActions)["fileRevert"]->setEnabled(false);
380
 
381
                if (!doc->isModified())
382
                {
383
                        bool setter = doc->DocPages.count() > 1 ? true : false;
384
                        (*scrActions)["pageDelete"]->setEnabled(setter);
385
                        (*scrActions)["pageMove"]->setEnabled(setter);
386
                }
387
                (*scrActions)["pageInsert"]->setEnabled(true);
388
                (*scrActions)["pageImport"]->setEnabled(true);
389
                (*scrActions)["pageCopy"]->setEnabled(true);
390
                (*scrActions)["pageApplyMasterPage"]->setEnabled(true);
391
                (*scrActions)["pageCopyToMasterPage"]->setEnabled(true);
392
                (*scrActions)["pageManageGuides"]->setEnabled(true);
393
                (*scrActions)["pageManageMargins"]->setEnabled(true);
394
 
395
                (*scrActions)["fileSaveAs"]->setEnabled(true);
396
                (*scrActions)["fileCollect"]->setEnabled(true);
397
                (*scrActions)["toolsPDFPushButton"]->setEnabled(true);
398
                (*scrActions)["toolsPDFRadioButton"]->setEnabled(true);
399
                (*scrActions)["toolsPDFTextField"]->setEnabled(true);
400
                (*scrActions)["toolsPDFCheckBox"]->setEnabled(true);
401
                (*scrActions)["toolsPDFComboBox"]->setEnabled(true);
402
                (*scrActions)["toolsPDFListBox"]->setEnabled(true);
403
                (*scrActions)["toolsPDFAnnotText"]->setEnabled(true);
404
#ifdef HAVE_OSG
405
                (*scrActions)["toolsPDFAnnot3D"]->setEnabled(true);
406
#endif
407
        }
19023 jghali 408
 
409
        (*scrActions)["viewSnapToGrid"]->setChecked(doc->SnapGrid);
410
        (*scrActions)["viewSnapToGuides"]->setChecked(doc->SnapGuides);
411
        (*scrActions)["viewSnapToElements"]->setChecked(doc->SnapElement);
18914 craig 412
}
413
 
18918 craig 414
void AppModeHelper::mainWindowCloseLastDoc()
415
{
19179 craig 416
        if ( ScCore->haveGS() || ScCore->isWinGUI() )
417
                (*scrActions)["PrintPreview"]->setEnabled(false);
18918 craig 418
        if ((*scrActions)["SaveAsDocumentTemplate"])
419
                (*scrActions)["SaveAsDocumentTemplate"]->setEnabled(false);
19205 craig 420
        (*scrActions)["editClearContents"]->setEnabled(false);
421
        (*scrActions)["editCopy"]->setEnabled(false);
18918 craig 422
        (*scrActions)["editCut"]->setEnabled(false);
19205 craig 423
        (*scrActions)["editDeselectAll"]->setEnabled(false);
424
        (*scrActions)["editEditRenderSource"]->setEnabled(false);
425
        (*scrActions)["editEditWithImageEditor"]->setEnabled(false);
426
        (*scrActions)["editJavascripts"]->setEnabled(false);
427
        (*scrActions)["editMarks"]->setEnabled(false);
428
        (*scrActions)["editMasterPages"]->setEnabled(false);
429
        (*scrActions)["editNotesStyles"]->setEnabled(false);
18918 craig 430
        (*scrActions)["editPaste"]->setEnabled(false);
19205 craig 431
        (*scrActions)["editRedoAction"]->setEnabled(false);
432
        (*scrActions)["editReplaceColors"]->setEnabled(false);
433
        (*scrActions)["editSearchReplace"]->setEnabled(false);
18918 craig 434
        (*scrActions)["editSelectAll"]->setEnabled(false);
435
        (*scrActions)["editSelectAllOnLayer"]->setEnabled(false);
436
        (*scrActions)["editStyles"]->setEnabled(false);
19205 craig 437
        (*scrActions)["editUndoAction"]->setEnabled(false);
438
        (*scrActions)["extrasDeHyphenateText"]->setEnabled(false);
18918 craig 439
        (*scrActions)["extrasHyphenateText"]->setEnabled(false);
19205 craig 440
        (*scrActions)["fileClose"]->setEnabled(false);
441
        (*scrActions)["fileCollect"]->setEnabled(false);
442
        (*scrActions)["fileDocSetup150"]->setEnabled(false);
443
        (*scrActions)["fileExportAsEPS"]->setEnabled(false);
444
        (*scrActions)["fileExportAsPDF"]->setEnabled(false);
445
        (*scrActions)["fileExportText"]->setEnabled(false);
446
        (*scrActions)["fileImportAppendText"]->setEnabled(false);
447
        (*scrActions)["fileImportImage"]->setEnabled(false);
448
        (*scrActions)["fileImportText"]->setEnabled(false);
449
        (*scrActions)["fileImportText2"]->setEnabled(false);
450
        (*scrActions)["fileImportVector"]->setEnabled(false);
451
        (*scrActions)["filePrint"]->setEnabled(false);
452
        (*scrActions)["fileRevert"]->setEnabled(false);
453
        (*scrActions)["fileSave"]->setEnabled(false);
454
        (*scrActions)["fileSaveAs"]->setEnabled(false);
455
        (*scrActions)["insertFrame"]->setEnabled(false);
19204 craig 456
        (*scrActions)["insertSampleText"]->setEnabled(false);
19205 craig 457
        (*scrActions)["itemAdjustFrameToImage"]->setEnabled(false);
458
        (*scrActions)["itemAdjustImageToFrame"]->setEnabled(false);
459
        (*scrActions)["itemAttributes"]->setEnabled(false);
460
        (*scrActions)["itemDelete"]->setEnabled(false);
18918 craig 461
        (*scrActions)["itemDuplicate"]->setEnabled(false);
19205 craig 462
        (*scrActions)["itemExtendedImageProperties"]->setEnabled(false);
463
        (*scrActions)["itemLower"]->setEnabled(false);
464
        (*scrActions)["itemLowerToBottom"]->setEnabled(false);
18918 craig 465
        (*scrActions)["itemMulDuplicate"]->setEnabled(false);
19339 jghali 466
        (*scrActions)["itemPDFAnnotationProps"]->setEnabled(false);
467
        (*scrActions)["itemPDFFieldProps"]->setEnabled(false);
19205 craig 468
        (*scrActions)["itemPreviewFull"]->setEnabled(false);
469
        (*scrActions)["itemPreviewLow"]->setEnabled(false);
470
        (*scrActions)["itemPreviewNormal"]->setEnabled(false);
18918 craig 471
        (*scrActions)["itemRaise"]->setEnabled(false);
472
        (*scrActions)["itemRaiseToTop"]->setEnabled(false);
19205 craig 473
        (*scrActions)["itemSendToInline"]->setEnabled(false);
18918 craig 474
        (*scrActions)["itemSendToPattern"]->setEnabled(false);
19205 craig 475
        (*scrActions)["itemToggleInlineImage"]->setEnabled(false);
476
        (*scrActions)["itemTransform"]->setEnabled(false);
18918 craig 477
        (*scrActions)["itemUpdateImage"]->setEnabled(false);
19205 craig 478
        (*scrActions)["pageApplyMasterPage"]->setEnabled(false);
479
        (*scrActions)["pageCopy"]->setEnabled(false);
480
        (*scrActions)["pageCopyToMasterPage"]->setEnabled(false);
481
        (*scrActions)["pageDelete"]->setEnabled(false);
482
        (*scrActions)["pageImport"]->setEnabled(false);
483
        (*scrActions)["pageImport"]->setEnabled(false);
484
        (*scrActions)["pageInsert"]->setEnabled(false);
485
        (*scrActions)["pageManageGuides"]->setEnabled(false);
486
        (*scrActions)["pageManageMargins"]->setEnabled(false);
487
        (*scrActions)["pageMove"]->setEnabled(false);
488
        (*scrActions)["toolsCopyProperties"]->setEnabled(false);
18918 craig 489
        (*scrActions)["toolsEditContents"]->setEnabled(false);
490
        (*scrActions)["toolsEditWithStoryEditor"]->setEnabled(false);
19205 craig 491
        (*scrActions)["toolsEyeDropper"]->setEnabled(false);
492
        (*scrActions)["toolsInsertArc"]->setEnabled(false);
493
        (*scrActions)["toolsInsertBezier"]->setEnabled(false);
494
        (*scrActions)["toolsInsertCalligraphicLine"]->setEnabled(false);
495
        (*scrActions)["toolsInsertFreehandLine"]->setEnabled(false);
18918 craig 496
        (*scrActions)["toolsInsertImageFrame"]->setEnabled(false);
497
        (*scrActions)["toolsInsertLine"]->setEnabled(false);
498
        (*scrActions)["toolsInsertPolygon"]->setEnabled(false);
19205 craig 499
        (*scrActions)["toolsInsertRenderFrame"]->setEnabled(false);
500
        (*scrActions)["toolsInsertShape"]->setEnabled(false);
18918 craig 501
        (*scrActions)["toolsInsertSpiral"]->setEnabled(false);
502
        (*scrActions)["toolsInsertTable"]->setEnabled(false);
19205 craig 503
        (*scrActions)["toolsInsertTextFrame"]->setEnabled(false);
18918 craig 504
        (*scrActions)["toolsLinkTextFrame"]->setEnabled(false);
505
        (*scrActions)["toolsMeasurements"]->setEnabled(false);
19205 craig 506
        (*scrActions)["toolsPDFAnnotLink"]->setEnabled(false);
507
        (*scrActions)["toolsPDFAnnotText"]->setEnabled(false);
508
        (*scrActions)["toolsPDFCheckBox"]->setEnabled(false);
509
        (*scrActions)["toolsPDFComboBox"]->setEnabled(false);
510
        (*scrActions)["toolsPDFListBox"]->setEnabled(false);
18918 craig 511
        (*scrActions)["toolsPDFPushButton"]->setEnabled(false);
512
        (*scrActions)["toolsPDFRadioButton"]->setEnabled(false);
513
        (*scrActions)["toolsPDFTextField"]->setEnabled(false);
19207 craig 514
        (*scrActions)["toolsPreflightVerifier"]->setEnabled(false);
19205 craig 515
        (*scrActions)["toolsRotate"]->setEnabled(false);
516
        (*scrActions)["toolsSelect"]->setEnabled(false);
517
        (*scrActions)["toolsUnlinkTextFrame"]->setEnabled(false);
518
        (*scrActions)["toolsUnlinkTextFrameWithTextCopy"]->setEnabled(false);
519
        (*scrActions)["toolsUnlinkTextFrameWithTextCut"]->setEnabled(false);
520
        (*scrActions)["toolsZoom"]->setEnabled(false);
521
        (*scrActions)["viewFit100"]->setEnabled(false);
522
        (*scrActions)["viewFit200"]->setEnabled(false);
523
        (*scrActions)["viewFit400"]->setEnabled(false);
524
        (*scrActions)["viewFit50"]->setEnabled(false);
525
        (*scrActions)["viewFit75"]->setEnabled(false);
526
        (*scrActions)["viewFitInWindow"]->setEnabled(false);
527
        (*scrActions)["viewFitWidth"]->setEnabled(false);
528
        (*scrActions)["viewShowRulers"]->setEnabled(false);
529
        (*scrActions)["viewSnapToElements"]->setChecked(false);
530
        (*scrActions)["viewSnapToGrid"]->setChecked(false);
531
        (*scrActions)["viewSnapToGuides"]->setChecked(false);
532
 
18918 craig 533
#ifdef HAVE_OSG
534
        (*scrActions)["toolsPDFAnnot3D"]->setEnabled(false);
535
#endif
19053 fschmid 536
        (*scrActions)["itemConvertToBezierCurve"]->setEnabled(false);
537
        (*scrActions)["itemConvertToImageFrame"]->setEnabled(false);
538
        (*scrActions)["itemConvertToOutlines"]->setEnabled(false);
539
        (*scrActions)["itemConvertToPolygon"]->setEnabled(false);
540
        (*scrActions)["itemConvertToTextFrame"]->setEnabled(false);
541
        (*scrActions)["itemConvertToSymbolFrame"]->setEnabled(false);
542
        (*scrActions)["itemLock"]->setEnabled(false);
543
        (*scrActions)["itemLockSize"]->setEnabled(false);
18918 craig 544
}
545
 
18923 craig 546
void AppModeHelper::setPreviewMode(bool b)
547
{
548
        bool b2=!b;
549
        (*scrActions)["viewShowMargins"]->setEnabled(b2);
550
        (*scrActions)["viewShowFrames"]->setEnabled(b2);
551
        (*scrActions)["viewShowLayerMarkers"]->setEnabled(b2);
552
        (*scrActions)["viewShowGrid"]->setEnabled(b2);
553
        (*scrActions)["viewShowGuides"]->setEnabled(b2);
554
        (*scrActions)["viewShowColumnBorders"]->setEnabled(b2);
555
        (*scrActions)["viewShowBaseline"]->setEnabled(b);
556
        (*scrActions)["viewShowTextChain"]->setEnabled(b2);
557
        (*scrActions)["viewShowTextControls"]->setEnabled(b2);
558
}
559
 
18903 craig 560
void AppModeHelper::enableTextActions(bool enabled, const QString& fontName)
561
{
562
        (*scrActions)["insertGlyph"]->setEnabled(enabled);
563
        actMgr->enableUnicodeActions(scrActions, enabled, fontName);
564
        if (!enabled)
565
        {
566
                (*scrActions)["insertMarkVariableText"]->setEnabled(false);
567
                (*scrActions)["insertMarkAnchor"]->setEnabled(false);
568
                (*scrActions)["insertMarkItem"]->setEnabled(false);
569
                (*scrActions)["insertMark2Mark"]->setEnabled(false);
570
                (*scrActions)["insertMarkNote"]->setEnabled(false);
571
                (*scrActions)["editMark"]->setEnabled(false);
572
        }
573
}