Subversion Repositories Scribus

Rev

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

Rev Author Line No. Line
4430 cbradney 1
/*
2
For general Scribus (>=1.3.2) copyright and licensing information please refer
3
to the COPYING file provided with the program. Following this notice may exist
4
a copyright and/or license notice that predates the release of Scribus 1.3.2
5
for which a new license (GPL+exception) is in place.
6
*/
2834 cbradney 7
/***************************************************************************
8
        copyright            : (C) 2005 by Craig Bradney
9
        email                : cbradney@zip.com.au
10
***************************************************************************/
11
 
12
/***************************************************************************
13
*                                                                         *
14
*   This program is free software; you can redistribute it and/or modify  *
15
*   it under the terms of the GNU General Public License as published by  *
16
*   the Free Software Foundation; either version 2 of the License, or     *
17
*   (at your option) any later version.                                   *
18
*                                                                         *
19
***************************************************************************/
2835 cbradney 20
 
21
#include <qcolor.h>
22
#include <qdir.h>
2889 cbradney 23
#include <qdom.h>
2835 cbradney 24
#include <qfile.h>
25
#include <qstring.h>
2889 cbradney 26
#include <qstylefactory.h>
2835 cbradney 27
#include <qwmatrix.h>
28
 
2834 cbradney 29
#include "prefsmanager.h"
3120 fschmid 30
#include "prefsmanager.moc"
5243 cbradney 31
 
32
#include "actionmanager.h"
4606 cbradney 33
#include "colorsetmanager.h"
4538 cbradney 34
#include "commonstrings.h"
2859 cbradney 35
#include "filewatcher.h"
2889 cbradney 36
#include "missing.h"
5354 cbradney 37
#include "tabkeyboardshortcutswidget.h"
2865 cbradney 38
#include "pagesize.h"
4122 cbradney 39
#include "pagestructs.h"
2835 cbradney 40
#include "pdfoptions.h"
41
#include "prefsfile.h"
42
#include "scfonts.h"
3953 cbradney 43
#include "scmessagebox.h"
2835 cbradney 44
#include "scpaths.h"
5781 cbradney 45
#include "scribuscore.h"
2835 cbradney 46
#include "scribusstructs.h"
5243 cbradney 47
#include "scribuscore.h"
4506 cbradney 48
#include "gsutil.h"
2835 cbradney 49
#include "util.h"
2859 cbradney 50
#include "werktoolb.h"
2835 cbradney 51
 
3205 craig 52
 
2859 cbradney 53
extern bool emergencyActivated;
2835 cbradney 54
 
2834 cbradney 55
PrefsManager* PrefsManager::_instance = 0;
56
 
57
PrefsManager::PrefsManager(QObject *parent, const char *name)
58
 : QObject(parent, name)
59
{
60
}
61
 
62
PrefsManager::~PrefsManager()
63
{
2871 cbradney 64
        appPrefs.AvailFonts.~SCFonts();
2856 cbradney 65
        delete prefsFile;
2834 cbradney 66
}
67
 
68
PrefsManager* PrefsManager::instance()
69
{
70
    if (_instance == 0)
71
        _instance = new PrefsManager();
72
 
73
    return _instance;
74
}
75
 
76
void PrefsManager::deleteInstance()
77
{
78
    if (_instance)
79
        delete _instance;
80
    _instance = 0;
81
}
82
 
83
 
84
ApplicationPrefs* PrefsManager::applicationPrefs()
85
{
86
        return &appPrefs;
87
}
2835 cbradney 88
 
2856 cbradney 89
PrefsFile* PrefsManager::applicationPrefsFile()
90
{
91
        return prefsFile;
92
}
93
 
94
const bool PrefsManager::importingFrom12x()
95
{
96
        return importingFrom12;
97
}
98
 
99
 
100
void PrefsManager::setup()
101
{
102
        setupPreferencesLocation();
103
 
5200 cbradney 104
        importingFrom12=copyOldPreferences();
105
        prefsFile = new PrefsFile( prefsLocation + "/prefs134.xml" );
2856 cbradney 106
        if (importingFrom12)
107
                convert12Preferences();
108
        //<<CB TODO Reset keyboard shortcuts of all 1.3 users as too many
109
        //     have conflicts if they dont nuke their settings.
110
        // - Remove for 1.3.0 release: importingFrom12=true;
111
        //>>CB
112
}
113
 
2835 cbradney 114
void PrefsManager::initDefaults()
115
{
116
        /** Default font and size **/
117
        SCFontsIterator it(appPrefs.AvailFonts);
4221 fschmid 118
        bool goodFont = false;
119
        for ( SCFontsIterator itf(appPrefs.AvailFonts); itf.current(); ++itf)
120
        {
121
                if ((itf.currentKey() == "Arial Regular") || (itf.currentKey() == "Times New Roman Regular"))
122
                {
123
                        appPrefs.toolSettings.defFont = itf.currentKey();
124
                        goodFont = true;
125
                        break;
126
                }
127
        }
128
        if (!goodFont)
129
                appPrefs.toolSettings.defFont = it.currentKey();
2835 cbradney 130
        appPrefs.toolSettings.defSize = 120;
131
 
132
        /** Default colours **/
133
        appPrefs.DColors.clear();
4606 cbradney 134
 
135
        ColorSetManager csm;
136
        csm.initialiseDefaultPrefs(appPrefs);
137
        csm.findPaletteLocations();
138
        csm.findPalettes();
139
        /*
4602 cbradney 140
        QString pfadC = ScPaths::instance().libDir()+"swatches/";
4606 cbradney 141
        QString pfadC2 = pfadC + "Scribus_X11.txt";
2835 cbradney 142
        QFile fiC(pfadC2);
143
        if (!fiC.exists())
144
        {
2886 fschmid 145
                appPrefs.DColors.insert("White", ScColor(0, 0, 0, 0));
146
                appPrefs.DColors.insert("Black", ScColor(0, 0, 0, 255));
147
                appPrefs.DColors.insert("Blue", ScColor(255, 255, 0, 0));
148
                appPrefs.DColors.insert("Cyan", ScColor(255, 0, 0, 0));
149
                appPrefs.DColors.insert("Green", ScColor(255, 0, 255, 0));
150
                appPrefs.DColors.insert("Red", ScColor(0, 255, 255, 0));
151
                appPrefs.DColors.insert("Yellow", ScColor(0, 0, 255, 0));
152
                appPrefs.DColors.insert("Magenta", ScColor(0, 255, 0, 0));
2835 cbradney 153
                appPrefs.DColorSet = "Scribus-Small";
154
        }
155
        else
156
        {
157
                if (fiC.open(IO_ReadOnly))
158
                {
159
                        QString ColorEn, Cname;
160
                        int Rval, Gval, Bval;
161
                        QTextStream tsC(&fiC);
162
                        ColorEn = tsC.readLine();
163
                        while (!tsC.atEnd())
164
                        {
165
                                ColorEn = tsC.readLine();
166
                                QTextStream CoE(&ColorEn, IO_ReadOnly);
167
                                CoE >> Rval;
168
                                CoE >> Gval;
169
                                CoE >> Bval;
170
                                CoE >> Cname;
2886 fschmid 171
                                ScColor tmp;
2835 cbradney 172
                                tmp.setColorRGB(Rval, Gval, Bval);
173
                                appPrefs.DColors.insert(Cname, tmp);
174
                        }
175
                        fiC.close();
176
                }
177
                appPrefs.DColorSet = "X11 RGB-Set";
178
        }
4606 cbradney 179
        */
2835 cbradney 180
 
181
        appPrefs.Wheelval = 40;
3641 fschmid 182
        /** Set Default window position and size to sane default values which should work on every screen */
183
        appPrefs.mainWinSettings.xPosition = 0;
184
        appPrefs.mainWinSettings.yPosition = 0;
185
        appPrefs.mainWinSettings.width = 640;
186
        appPrefs.mainWinSettings.height = 480;
4892 cbradney 187
        appPrefs.mainWinSettings.maximized = false;
2835 cbradney 188
        appPrefs.guidesSettings.marginsShown = true;
189
        appPrefs.guidesSettings.framesShown = true;
5584 fschmid 190
        appPrefs.guidesSettings.layerMarkersShown = false;
2835 cbradney 191
        appPrefs.guidesSettings.gridShown = false;
192
        appPrefs.guidesSettings.guidesShown = false;
5384 cbradney 193
        appPrefs.guidesSettings.colBordersShown = false;
2835 cbradney 194
        appPrefs.guidesSettings.baseShown = false;
195
        appPrefs.guidesSettings.showPic = true;
196
        appPrefs.guidesSettings.showControls = false;
197
        appPrefs.guidesSettings.linkShown = false;
4651 cbradney 198
        appPrefs.guidesSettings.rulersShown = true;
2863 fschmid 199
        appPrefs.guidesSettings.rulerMode = true;
2835 cbradney 200
        appPrefs.guidesSettings.grabRad = 4;
201
        appPrefs.guidesSettings.guideRad = 10;
202
        appPrefs.guidesSettings.minorGrid = 20;
203
        appPrefs.guidesSettings.majorGrid = 100;
204
        appPrefs.guidesSettings.minorColor = QColor(green);
205
        appPrefs.guidesSettings.majorColor = QColor(green);
206
        appPrefs.guidesSettings.margColor = QColor(blue);
207
        appPrefs.guidesSettings.guideColor = QColor(darkBlue);
208
        appPrefs.guidesSettings.baseColor = QColor(lightGray);
2889 cbradney 209
        appPrefs.typographicSettings.valueSuperScript = 33;
210
        appPrefs.typographicSettings.scalingSuperScript = 100;
211
        appPrefs.typographicSettings.valueSubScript = 33;
212
        appPrefs.typographicSettings.scalingSubScript = 100;
213
        appPrefs.typographicSettings.valueSmallCaps = 75;
214
        appPrefs.typographicSettings.autoLineSpacing = 20;
215
        appPrefs.typographicSettings.valueUnderlinePos = -1;
216
        appPrefs.typographicSettings.valueUnderlineWidth = -1;
217
        appPrefs.typographicSettings.valueStrikeThruPos = -1;
218
        appPrefs.typographicSettings.valueStrikeThruWidth = -1;
219
        appPrefs.typographicSettings.valueBaseGrid = 14.4;
220
        appPrefs.typographicSettings.offsetBaseGrid = 0.0;
2835 cbradney 221
        appPrefs.GUI = "Default";
4039 fschmid 222
        appPrefs.showToolTips = true;
5912 fschmid 223
        appPrefs.moveTimeout = 150;
2835 cbradney 224
        //FIXME
225
        //Black here causes issues when a colour set is loaded without "Black" in it.
226
        //"Black" is created with wrong values. Eg SVG colour set
227
        appPrefs.toolSettings.dPen = "Black";
228
        appPrefs.toolSettings.dBrush = "Black";
229
        appPrefs.toolSettings.dShade = 100;
230
        appPrefs.toolSettings.dShade2 = 100;
231
        appPrefs.toolSettings.dLineArt = SolidLine;
232
        appPrefs.toolSettings.dWidth = 1;
233
        appPrefs.toolSettings.dPenLine = "Black";
234
        appPrefs.toolSettings.dPenText = "Black";
235
        appPrefs.toolSettings.dStrokeText = "Black";
4546 subik 236
        appPrefs.toolSettings.dTextBackGround = CommonStrings::None;
237
        appPrefs.toolSettings.dTextLineColor = CommonStrings::None;
3093 fschmid 238
        appPrefs.toolSettings.dTextBackGroundShade = 100;
239
        appPrefs.toolSettings.dTextLineShade = 100;
240
        appPrefs.toolSettings.dTextPenShade = 100;
241
        appPrefs.toolSettings.dTextStrokeShade = 100;
2835 cbradney 242
        appPrefs.toolSettings.tabFillChar = "";
243
        appPrefs.toolSettings.dTabWidth = 36.0;
244
        appPrefs.DpapColor = QColor(white);
245
        appPrefs.toolSettings.dCols = 1;
246
        appPrefs.toolSettings.dGap = 0.0;
247
        appPrefs.toolSettings.dShadeLine = 100;
248
        appPrefs.toolSettings.dLstyleLine = SolidLine;
249
        appPrefs.toolSettings.dWidthLine = 1;
250
        appPrefs.toolSettings.dStartArrow = 0;
251
        appPrefs.toolSettings.dEndArrow = 0;
252
        appPrefs.toolSettings.magMin = 10;
253
        appPrefs.toolSettings.magMax = 3200;
4285 cbradney 254
        appPrefs.toolSettings.magStep = 200;
5510 cbradney 255
        appPrefs.toolSettings.dBrushPict = CommonStrings::None;
2835 cbradney 256
        appPrefs.toolSettings.shadePict = 100;
257
        appPrefs.toolSettings.scaleX = 1;
258
        appPrefs.toolSettings.scaleY = 1;
259
        appPrefs.guidesSettings.before = true;
260
        appPrefs.docUnitIndex = 0;
261
        appPrefs.toolSettings.polyC = 4;
262
        appPrefs.toolSettings.polyF = 0.5;
263
        appPrefs.toolSettings.polyS = false;
264
        appPrefs.toolSettings.polyFd = 0;
265
        appPrefs.toolSettings.polyR = 0;
4649 fschmid 266
//      appPrefs.PSize = 40;
4450 cbradney 267
        appPrefs.ClipMargin = false;
2835 cbradney 268
        appPrefs.GCRMode = false;
5308 fschmid 269
        appPrefs.doOverprint = false;
2835 cbradney 270
        appPrefs.RecentDocs.clear();
4735 fschmid 271
        appPrefs.RecentScrapbooks.clear();
2835 cbradney 272
        appPrefs.RecentDCount = 5;
5787 fschmid 273
        appPrefs.doCopyToScrapbook = true;
274
        appPrefs.persistentScrapbook = false;
275
        appPrefs.numScrapbookCopies = 10;
2835 cbradney 276
        appPrefs.marginColored = false;
277
        appPrefs.pageSize = "A4";
278
        appPrefs.pageOrientation = 0;
2865 cbradney 279
        PageSize a4("A4");
5785 cbradney 280
        appPrefs.PageWidth = a4.width();
281
        appPrefs.PageHeight = a4.height();
2835 cbradney 282
        appPrefs.RandOben = 40;
283
        appPrefs.RandUnten = 40;
284
        appPrefs.RandLinks = 40;
285
        appPrefs.RandRechts = 40;
286
        appPrefs.toolSettings.scaleType = true;
287
        appPrefs.toolSettings.aspectRatio = true;
288
        appPrefs.toolSettings.lowResType = 1;
289
        appPrefs.toolSettings.useEmbeddedPath = false;
290
        appPrefs.MinWordLen = 3;
291
        appPrefs.HyCount = 2;
292
        appPrefs.Language = "";
293
        appPrefs.Automatic = true;
294
        appPrefs.AutoCheck = false;
295
        appPrefs.AutoSave = false;
296
        appPrefs.AutoSaveTime = 600000;
297
        appPrefs.DisScale = 1.0;
5917 jghali 298
        appPrefs.DocDir = ScPaths::getUserDocumentDir();
2835 cbradney 299
        appPrefs.ProfileDir = "";
300
        appPrefs.ScriptDir = "";
301
        appPrefs.documentTemplatesDir = "";
302
        appPrefs.CustomColorSets.clear();
303
        appPrefs.PrPr_Mode = false;
304
        appPrefs.Gcr_Mode = true;
305
        appPrefs.PrPr_AlphaText = false;
306
        appPrefs.PrPr_AlphaGraphics = false;
307
        appPrefs.PrPr_Transparency = false;
308
        appPrefs.PrPr_C = true;
309
        appPrefs.PrPr_M = true;
310
        appPrefs.PrPr_Y = true;
311
        appPrefs.PrPr_K = true;
312
        appPrefs.imageEditorExecutable = "gimp";
5418 cbradney 313
        appPrefs.extBrowserExecutable = "";
2835 cbradney 314
        appPrefs.gs_AntiAliasGraphics = true;
315
        appPrefs.gs_AntiAliasText = true;
2910 fschmid 316
        appPrefs.gs_exe = getGSDefaultExeName();
2835 cbradney 317
        appPrefs.gs_Resolution = 72;
318
        appPrefs.STEcolor = QColor(white);
319
        appPrefs.DCMSset.DefaultMonitorProfile = "";
320
        appPrefs.DCMSset.DefaultPrinterProfile = "";
2984 fschmid 321
        appPrefs.DCMSset.DefaultImageRGBProfile = "";
5345 mrdocs 322
        appPrefs.DCMSset.DefaultSolidColorRGBProfile = "";
323
        appPrefs.DCMSset.DefaultSolidColorCMYKProfile = "";
2835 cbradney 324
        appPrefs.DCMSset.CMSinUse = false;
325
        appPrefs.DCMSset.SoftProofOn = false;
5345 mrdocs 326
        appPrefs.DCMSset.SoftProofFullOn = false;
2835 cbradney 327
        appPrefs.DCMSset.GamutCheck = false;
328
        appPrefs.DCMSset.BlackPoint = true;
5345 mrdocs 329
        appPrefs.DCMSset.DefaultIntentColors = 0;
2984 fschmid 330
        appPrefs.DCMSset.DefaultIntentImages = 1;
2835 cbradney 331
        appPrefs.GFontSub.clear();
332
        appPrefs.ScratchLeft = 100;
333
        appPrefs.ScratchRight = 100;
334
        appPrefs.ScratchTop = 20;
335
        appPrefs.ScratchBottom = 20;
3016 fschmid 336
        struct PageSet pageS;
4538 cbradney 337
        pageS.Name = CommonStrings::pageSet1;
3016 fschmid 338
        pageS.FirstPage = 0;
339
        pageS.Rows = 1;
340
        pageS.Columns = 1;
341
        pageS.GapHorizontal = 0.0;
342
        pageS.GapVertical = 0.0;
343
        pageS.GapBelow = 40.0;
3026 fschmid 344
        pageS.pageNames.clear();
3016 fschmid 345
        appPrefs.pageSets.append(pageS);
4538 cbradney 346
        pageS.Name = CommonStrings::pageSet2;
3016 fschmid 347
        pageS.FirstPage = 1;
348
        pageS.Columns = 2;
3026 fschmid 349
        pageS.pageNames.clear();
4538 cbradney 350
        pageS.pageNames.append(CommonStrings::pageLocLeft);
351
        pageS.pageNames.append(CommonStrings::pageLocRight);
3016 fschmid 352
        appPrefs.pageSets.append(pageS);
4538 cbradney 353
        pageS.Name = CommonStrings::pageSet3;
3016 fschmid 354
        pageS.FirstPage = 0;
355
        pageS.Columns = 3;
3026 fschmid 356
        pageS.pageNames.clear();
4538 cbradney 357
        pageS.pageNames.append(CommonStrings::pageLocLeft);
358
        pageS.pageNames.append(CommonStrings::pageLocMiddle);
359
        pageS.pageNames.append(CommonStrings::pageLocRight);
3016 fschmid 360
        appPrefs.pageSets.append(pageS);
4538 cbradney 361
        pageS.Name = CommonStrings::pageSet4;
3016 fschmid 362
        pageS.FirstPage = 0;
363
        pageS.Columns = 4;
3026 fschmid 364
        pageS.pageNames.clear();
4538 cbradney 365
        pageS.pageNames.append(CommonStrings::pageLocLeft);
366
        pageS.pageNames.append(CommonStrings::pageLocMiddleLeft);
367
        pageS.pageNames.append(CommonStrings::pageLocMiddleRight);
368
        pageS.pageNames.append(CommonStrings::pageLocRight);
3016 fschmid 369
        appPrefs.pageSets.append(pageS);
370
        appPrefs.FacingPages = singlePage;
2835 cbradney 371
        appPrefs.askBeforeSubstituite = true;
372
        appPrefs.haveStylePreview = true;
373
        // lorem ipsum defaults
374
        appPrefs.useStandardLI = false;
375
        appPrefs.paragraphsLI = 10;
376
        appPrefs.showStartupDialog = true;
3873 subik 377
        initDefaultCheckerPrefs(&appPrefs.checkerProfiles);
3142 cbradney 378
        appPrefs.curCheckProfile = tr("PostScript");
2835 cbradney 379
        appPrefs.PDF_Options.Thumbnails = false;
380
        appPrefs.PDF_Options.Articles = false;
381
        appPrefs.PDF_Options.useLayers = false;
382
        appPrefs.PDF_Options.Compress = true;
383
        appPrefs.PDF_Options.CompressMethod = 0;
384
        appPrefs.PDF_Options.Quality = 0;
385
        appPrefs.PDF_Options.RecalcPic = false;
386
        appPrefs.PDF_Options.Bookmarks = false;
387
        appPrefs.PDF_Options.PicRes = 300;
388
        appPrefs.PDF_Options.Version = PDFOptions::PDFVersion_14;
389
        appPrefs.PDF_Options.Resolution = 300;
390
        appPrefs.PDF_Options.Binding = 0;
391
        appPrefs.PDF_Options.EmbedList.clear();
392
        appPrefs.PDF_Options.SubsetList.clear();
393
        appPrefs.PDF_Options.MirrorH = false;
394
        appPrefs.PDF_Options.MirrorV = false;
4649 fschmid 395
        appPrefs.PDF_Options.doClip = false;
2835 cbradney 396
        appPrefs.PDF_Options.RotateDeg = 0;
397
        appPrefs.PDF_Options.PresentMode = false;
398
        appPrefs.PDF_Options.Datei = "";
399
        appPrefs.PDF_Options.PresentVals.clear();
400
        appPrefs.PDF_Options.isGrayscale = false;
401
        appPrefs.PDF_Options.UseRGB = true;
402
        appPrefs.PDF_Options.UseProfiles = false;
403
        appPrefs.PDF_Options.UseProfiles2 = false;
404
        appPrefs.PDF_Options.SolidProf = "";
405
        appPrefs.PDF_Options.SComp = 3;
406
        appPrefs.PDF_Options.ImageProf = "";
407
        appPrefs.PDF_Options.PrintProf = "";
408
        appPrefs.PDF_Options.Info = "";
409
        appPrefs.PDF_Options.Intent = 0;
410
        appPrefs.PDF_Options.Intent2 = 0;
411
        appPrefs.PDF_Options.BleedTop = 0;
412
        appPrefs.PDF_Options.BleedLeft = 0;
413
        appPrefs.PDF_Options.BleedRight = 0;
414
        appPrefs.PDF_Options.BleedBottom = 0;
415
        appPrefs.PDF_Options.EmbeddedI = false;
416
        appPrefs.PDF_Options.Encrypt = false;
417
        appPrefs.PDF_Options.PassOwner = "";
418
        appPrefs.PDF_Options.PassUser = "";
419
        appPrefs.PDF_Options.Permissions = -4;
420
        appPrefs.PDF_Options.UseLPI = false;
421
        appPrefs.PDF_Options.LPISettings.clear();
3079 fschmid 422
        appPrefs.PDF_Options.UseSpotColors = true;
5320 fschmid 423
        appPrefs.PDF_Options.doOverprint = false;
3079 fschmid 424
        appPrefs.PDF_Options.doMultiFile = false;
4197 fschmid 425
        appPrefs.PDF_Options.displayBookmarks = false;
426
        appPrefs.PDF_Options.displayFullscreen = false;
427
        appPrefs.PDF_Options.displayLayers = false;
428
        appPrefs.PDF_Options.displayThumbs = false;
4201 fschmid 429
        appPrefs.PDF_Options.hideMenuBar = false;
430
        appPrefs.PDF_Options.hideToolBar = false;
431
        appPrefs.PDF_Options.fitWindow = false;
4197 fschmid 432
        appPrefs.PDF_Options.PageLayout = PDFOptions::SinglePage;
433
        appPrefs.PDF_Options.openAction = "";
2835 cbradney 434
 
435
        //Attribute setup
436
        appPrefs.defaultItemAttributes.clear();
437
        appPrefs.defaultToCSetups.clear();
5243 cbradney 438
 
439
        initDefaultActionKeys();
2835 cbradney 440
}
441
 
5243 cbradney 442
void PrefsManager::initDefaultActionKeys()
443
{
444
        ActionManager::createDefaultShortcuts();
5257 cbradney 445
        QMap<QString, QKeySequence > *map=ActionManager::defaultShortcuts();
5243 cbradney 446
        for( QMap<QString, QKeySequence >::ConstIterator it = map->begin(); it!=map->end(); ++it )
447
        {
448
                appPrefs.KeyActions[it.key()].actionName = it.key();
449
                appPrefs.KeyActions[it.key()].keySequence = it.data();
450
        }
451
}
452
 
2835 cbradney 453
void PrefsManager::initDefaultGUIFont(const QFont& guiFont)
454
{
3873 subik 455
        appPrefs.AppFontSize = guiFont.pointSize();
456
        appPrefs.STEfont = guiFont.toString();
3940 tsoots 457
        appPrefs.PaletteFontSize = appPrefs.AppFontSize;
2835 cbradney 458
}
459
 
460
void PrefsManager::initArrowStyles()
461
{
462
        struct ArrowDesc arrow;
463
        FPointArray points;
464
        QWMatrix arrowScaling;
465
        arrowScaling.scale(0.5, 0.5);
466
        arrow.name = "Arrow1L";
467
        arrow.userArrow = false;
468
        points.addQuadPoint(0, 0, 0, 0, 0, 0, 0, 0);
469
        points.addQuadPoint(-5, -5, -5, -5, -5, -5, -5, -5);
470
        points.addQuadPoint(12, 0, 12, 0, 12, 0, 12, 0);
471
        points.addQuadPoint(-5, 5, -5, 5, -5, 5, -5, 5);
472
        points.addQuadPoint(0, 0, 0, 0, 0, 0, 0, 0);
473
        arrow.points = points.copy();
474
        appPrefs.arrowStyles.append(arrow);
475
        arrow.name = "Arrow1M";
476
        points.map(arrowScaling);
477
        arrow.points = points.copy();
478
        appPrefs.arrowStyles.append(arrow);
479
        arrow.name = "Arrow1S";
480
        points.map(arrowScaling);
481
        arrow.points = points.copy();
482
        appPrefs.arrowStyles.append(arrow);
483
        arrow.name = "SquareL";
484
        points.resize(0);
485
        points.addQuadPoint(-5, -5, -5, -5, -5, -5, -5, -5);
486
        points.addQuadPoint(5, -5, 5, -5, 5, -5, 5, -5);
487
        points.addQuadPoint(5, 5, 5, 5, 5, 5, 5, 5);
488
        points.addQuadPoint(-5, 5, -5, 5, -5, 5, -5, 5);
489
        points.addQuadPoint(-5, -5, -5, -5, -5, -5, -5, -5);
490
        arrow.points = points.copy();
491
        appPrefs.arrowStyles.append(arrow);
492
        arrow.name = "SquareM";
493
        points.map(arrowScaling);
494
        arrow.points = points.copy();
495
        appPrefs.arrowStyles.append(arrow);
496
        arrow.name = "SquareS";
497
        points.map(arrowScaling);
498
        arrow.points = points.copy();
499
        appPrefs.arrowStyles.append(arrow);
500
        arrow.name = "TriangleInL";
501
        points.resize(0);
502
        points.addQuadPoint(5.77, 0, 5.77, 0, 5.77, 0, 5.77, 0);
503
        points.addQuadPoint(-2.88, 5, -2.88, 5, -2.88, 5, -2.88, 5);
504
        points.addQuadPoint(-2.88, -5, -2.88, -5, -2.88, -5, -2.88, -5);
505
        points.addQuadPoint(5.77, 0, 5.77, 0, 5.77, 0, 5.77, 0);
506
        arrow.points = points.copy();
507
        appPrefs.arrowStyles.append(arrow);
508
        arrow.name = "TriangleInM";
509
        points.map(arrowScaling);
510
        arrow.points = points.copy();
511
        appPrefs.arrowStyles.append(arrow);
512
        arrow.name = "TriangleInS";
513
        points.map(arrowScaling);
514
        arrow.points = points.copy();
515
        appPrefs.arrowStyles.append(arrow);
516
        arrow.name = "TriangleOutL";
517
        points.resize(0);
518
        points.addQuadPoint(-5.77, 0, -5.77, 0, -5.77, 0, -5.77, 0);
519
        points.addQuadPoint(2.88, 5, 2.88, 5, 2.88, 5, 2.88, 5);
520
        points.addQuadPoint(2.88, -5, 2.88, -5, 2.88, -5, 2.88, -5);
521
        points.addQuadPoint(-5.77, 0, -5.77, 0, -5.77, 0, -5.77, 0);
522
        arrow.points = points.copy();
523
        appPrefs.arrowStyles.append(arrow);
524
        arrow.name = "TriangleOutM";
525
        points.map(arrowScaling);
526
        arrow.points = points.copy();
527
        appPrefs.arrowStyles.append(arrow);
528
        arrow.name = "TriangleOutS";
529
        points.map(arrowScaling);
530
        arrow.points = points.copy();
531
        appPrefs.arrowStyles.append(arrow);
532
}
533
 
534
QString PrefsManager::setupPreferencesLocation()
535
{
5917 jghali 536
        QString Pff = QDir::convertSeparators(ScPaths::getApplicationDataDir());
2835 cbradney 537
        QFileInfo Pffi = QFileInfo(Pff);
538
        QString PrefsPfad;
539
        //If we are using ~/.scribus
540
        if (Pffi.exists())
541
        {
542
                if (Pffi.isDir())
543
                        PrefsPfad = Pff;
544
                else
545
                        PrefsPfad = QDir::homeDirPath();
546
        }
547
        else // Move to using ~/.scribus/scribus.* from ~/.scribus.*
548
        {
549
                QDir prefsDirectory = QDir();
550
                prefsDirectory.mkdir(Pff);
551
                PrefsPfad = Pff;
552
                QString oldPR = QDir::convertSeparators(QDir::homeDirPath()+"/.scribus.rc");
553
                QFileInfo oldPi = QFileInfo(oldPR);
554
                if (oldPi.exists())
555
                        moveFile(oldPR, Pff+"/scribus.rc");
556
                QString oldPR2 = QDir::convertSeparators(QDir::homeDirPath()+"/.scribusfont.rc");
557
                QFileInfo oldPi2 = QFileInfo(oldPR2);
558
                if (oldPi2.exists())
559
                        moveFile(oldPR2, Pff+"/scribusfont.rc");
560
                QString oldPR3 = QDir::convertSeparators(QDir::homeDirPath()+"/.scribusscrap.scs");
561
                QFileInfo oldPi3 = QFileInfo(oldPR3);
562
                if (oldPi3.exists())
563
                        moveFile(oldPR3, Pff+"/scrap.scs");
564
        }
4611 fschmid 565
        QString scB = QDir::convertSeparators(Pff+"/scrapbook");
566
        QFileInfo scBi = QFileInfo(scB);
567
        if (!scBi.exists())
568
        {
569
                QDir scrapDirectory = QDir();
570
                scrapDirectory.mkdir(scB);
571
                QDir scrapMainDirectory = QDir();
572
                scrapDirectory.mkdir(QDir::convertSeparators(scB+"/main"));
573
        }
5760 fschmid 574
        QFileInfo scTmp = QFileInfo(QDir::convertSeparators(scB+"/tmp"));
575
        if (!scTmp.exists())
576
        {
577
                QDir scrapDirectoryT = QDir();
578
                scrapDirectoryT.mkdir(QDir::convertSeparators(scB+"/tmp"));
579
        }
2835 cbradney 580
        prefsLocation=PrefsPfad;
581
        return PrefsPfad;
582
}
583
 
584
const QString PrefsManager::preferencesLocation()
585
{
586
        return prefsLocation;
587
}
588
 
5200 cbradney 589
bool PrefsManager::copyOldPreferences()
2835 cbradney 590
{
591
        //Now make copies for 1.3 use and leave the old ones alone for <1.3.0 usage
5200 cbradney 592
        QString prefs12[4], prefs130[4], prefs134[4];
3152 craig 593
 
594
        // Special case for scribus.rc - if found, use scribus123.rc,
595
        // otherwise fall back to the possibly mis-encoded scribus.rc .
5200 cbradney 596
        prefs12[0]=QDir::convertSeparators(prefsLocation+"/scribus123.rc");
597
        if (!QFile::exists(prefs12[0]))
598
                prefs12[0] = prefsLocation+"/scribus.rc";
3152 craig 599
 
5200 cbradney 600
        prefs12[1]=QDir::convertSeparators(prefsLocation+"/scrap.scs");
601
        prefs12[2]=QDir::convertSeparators(prefsLocation+"/prefs.xml");
602
        prefs12[3]=QDir::convertSeparators(prefsLocation+"/scripter.rc");
603
        prefs130[0]=QDir::convertSeparators(prefsLocation+"/scribus13.rc");
604
        prefs130[1]=QDir::convertSeparators(prefsLocation+"/scrap13.scs");
605
        prefs130[2]=QDir::convertSeparators(prefsLocation+"/prefs13.xml");
606
        prefs130[3]=QDir::convertSeparators(prefsLocation+"/scripter13.rc");
607
        prefs134[0]=QDir::convertSeparators(prefsLocation+"/scribus134.rc");
608
        prefs134[1]=QDir::convertSeparators(prefsLocation+"/scrap134.scs");
609
        prefs134[2]=QDir::convertSeparators(prefsLocation+"/prefs134.xml");
610
        prefs134[3]=QDir::convertSeparators(prefsLocation+"/scripter134.rc");
2835 cbradney 611
 
5200 cbradney 612
        bool existsPrefs12[4], existsPrefs130[4], existsPrefs134[4];
3156 craig 613
        for (uint i=0;i<4;++i)
2835 cbradney 614
        {
5200 cbradney 615
                existsPrefs12[i]=QFile::exists(prefs12[i]);
616
                existsPrefs130[i]=QFile::exists(prefs130[i]);
617
                existsPrefs134[i]=QFile::exists(prefs134[i]);
2835 cbradney 618
        }
619
 
620
        bool retVal=false;
5200 cbradney 621
        if (existsPrefs134[0] && existsPrefs134[2])
622
                return retVal;
2835 cbradney 623
        //Only check for these two as they will be autocreated if they dont exist.
5200 cbradney 624
        if( (existsPrefs12[0] && !existsPrefs130[0]) || (existsPrefs12[2] && !existsPrefs130[2]) )
2835 cbradney 625
        {
626
                retVal=true; // converting from 1.2 prefs
5243 cbradney 627
                if (ScCore->usingGUI())
2835 cbradney 628
                {
5656 cbradney 629
                        bool splashShown=ScCore->splashShowing();
630
                        if (splashShown)
631
                                ScCore->showSplash(false);
5781 cbradney 632
                        if ( (ScMessageBox::question( ScCore->primaryMainWindow(), tr("Migrate Old Scribus Settings?"),
2835 cbradney 633
                                tr("Scribus has detected existing Scribus 1.2 preferences files.\n"
634
                                                "Do you want to migrate them to the new Scribus version?"),
635
                                QMessageBox::Yes | QMessageBox::Default, QMessageBox::No, QMessageBox::NoButton))==QMessageBox::Yes )
636
                        {
637
                                for (uint i=0;i<4;++i)
638
                                {
5200 cbradney 639
                                        if (existsPrefs12[i] && !existsPrefs134[i])
640
                                                copyFile(prefs12[i], prefs134[i]);
2835 cbradney 641
                                }
642
                        }
5656 cbradney 643
                        if (splashShown)
644
                                ScCore->showSplash(true);
2835 cbradney 645
                }
646
        }
5200 cbradney 647
        else
648
        if(existsPrefs130[0])
649
        {
650
                for (uint i=0;i<4;++i)
651
                {
652
                        if (existsPrefs130[i] && !existsPrefs134[i])
653
                                copyFile(prefs130[i], prefs134[i]);
654
                }
655
        }
2835 cbradney 656
        return retVal;
657
}
658
 
2856 cbradney 659
void PrefsManager::convert12Preferences()
2835 cbradney 660
{
661
        // Import 1.2 font search path prefs
662
        QFile fontPrefsFile12(QDir::convertSeparators(prefsLocation+"/scribusfont.rc"));
663
        if (fontPrefsFile12.open(IO_ReadOnly))
664
        {
2856 cbradney 665
                PrefsContext *pc = prefsFile->getContext("Fonts");
2835 cbradney 666
                PrefsTable *fontPrefs = pc->getTable("ExtraFontDirs");
667
                QTextStream tsx(&fontPrefsFile12);
668
                QString extraPath = tsx.read();
669
                fontPrefsFile12.close();
670
                QStringList extraFonts = QStringList::split("\n",extraPath);
671
                for (uint i = 0; i < extraFonts.count(); ++i)
672
                        fontPrefs->set(i, 0, extraFonts[i]);
673
        }
674
}
2859 cbradney 675
 
3873 subik 676
void PrefsManager::ReadPrefs(const QString & fname)
2859 cbradney 677
{
3873 subik 678
        QString realFile;
679
        if (fname.isNull())
5200 cbradney 680
                realFile = prefsLocation + "/scribus134.rc";
3873 subik 681
        else
682
                realFile = fname;
683
 
684
        if (QFile::exists(realFile))
685
        {
686
                if (!ReadPref(realFile))
3171 craig 687
                {
688
                        alertLoadPrefsFailed();
689
                        return;
690
                }
3873 subik 691
        }
5243 cbradney 692
}
3873 subik 693
 
5243 cbradney 694
void PrefsManager::setupMainWindow(ScribusMainWindow* mw)
695
{
696
        mw->setDefaultPrinter(appPrefs.PrinterName, appPrefs.PrinterFile, appPrefs.PrinterCommand);
2859 cbradney 697
 
698
        uint max = QMIN(appPrefs.RecentDCount, appPrefs.RecentDocs.count());
699
        for (uint m = 0; m < max; ++m)
700
        {
701
                QFileInfo fd(appPrefs.RecentDocs[m]);
702
                if (fd.exists())
703
                {
5243 cbradney 704
                        mw->RecentDocs.append(appPrefs.RecentDocs[m]);
705
                        ScCore->fileWatcher->addFile(appPrefs.RecentDocs[m]);
2859 cbradney 706
                }
707
        }
5243 cbradney 708
        mw->rebuildRecentFileMenu();
709
        mw->move(appPrefs.mainWinSettings.xPosition, appPrefs.mainWinSettings.yPosition);
710
        mw->resize(appPrefs.mainWinSettings.width, appPrefs.mainWinSettings.height);
4892 cbradney 711
        if (appPrefs.mainWinSettings.maximized)
5781 cbradney 712
                mw->setWindowState(ScCore->primaryMainWindow()->windowState() & ~Qt::WindowMinimized | Qt::WindowMaximized);
2859 cbradney 713
        ReadPrefsXML();
714
        if (appPrefs.checkerProfiles.count() == 0)
715
        {
3873 subik 716
                initDefaultCheckerPrefs(&appPrefs.checkerProfiles);
3142 cbradney 717
                appPrefs.curCheckProfile = tr("PostScript");
2859 cbradney 718
        }
719
}
720
 
721
void PrefsManager::ReadPrefsXML()
722
{
3171 craig 723
    if (prefsFile)
2859 cbradney 724
    {
725
        PrefsContext* userprefsContext = prefsFile->getContext("user_preferences");
726
        if (userprefsContext) {
727
            appPrefs.guiLanguage = userprefsContext->get("gui_language","");
728
            //continue here...
729
            //Prefs."blah blah" =...
730
        }
731
    }
732
}
733
 
734
 
3873 subik 735
void PrefsManager::SavePrefs(const QString & fname)
2859 cbradney 736
{
737
        // If closing because of a crash don't save prefs as we can
738
        // accidentally nuke the settings if the crash is before prefs are loaded
3170 craig 739
        // The caller is responsible for ensuring we aren't called under those
740
        // conditions.
741
        Q_ASSERT(!emergencyActivated);
5781 cbradney 742
        appPrefs.mainWinSettings.xPosition = abs(ScCore->primaryMainWindow()->pos().x());
743
        appPrefs.mainWinSettings.yPosition = abs(ScCore->primaryMainWindow()->pos().y());
744
        appPrefs.mainWinSettings.width = ScCore->primaryMainWindow()->size().width();
745
        appPrefs.mainWinSettings.height = ScCore->primaryMainWindow()->size().height();
746
        appPrefs.mainWinSettings.maximized = ScCore->primaryMainWindow()->isMaximized();
2859 cbradney 747
 
748
        appPrefs.RecentDocs.clear();
5781 cbradney 749
        uint max = QMIN(appPrefs.RecentDCount, ScCore->primaryMainWindow()->RecentDocs.count());
2859 cbradney 750
        for (uint m = 0; m < max; ++m)
751
        {
5781 cbradney 752
                appPrefs.RecentDocs.append(ScCore->primaryMainWindow()->RecentDocs[m]);
2859 cbradney 753
        }
5781 cbradney 754
        ScCore->primaryMainWindow()->getDefaultPrinter(&appPrefs.PrinterName, &appPrefs.PrinterFile, &appPrefs.PrinterCommand);
3170 craig 755
        SavePrefsXML();
3873 subik 756
        QString realFile;
757
        if (fname.isNull())
5200 cbradney 758
                realFile = prefsLocation+"/scribus134.rc";
3873 subik 759
        else
760
                realFile = fname;
761
        if (!WritePref(realFile))
3170 craig 762
                alertSavePrefsFailed();
5257 cbradney 763
        emit prefsChanged();
2859 cbradney 764
}
765
 
766
void PrefsManager::SavePrefsXML()
767
{
3170 craig 768
    if (prefsFile)
2859 cbradney 769
    {
770
        PrefsContext* userprefsContext = prefsFile->getContext("user_preferences");
771
        if (userprefsContext) {
772
            userprefsContext->set("gui_language",appPrefs.guiLanguage);
773
            //continue here...
774
            //Prefs."blah blah" =...
775
        }
776
        prefsFile->write();
777
    }
778
}
2862 cbradney 779
 
780
void PrefsManager::setGhostscriptExecutable(const QString& executableName)
781
{
782
        appPrefs.gs_exe=executableName;
783
}
784
 
785
void PrefsManager::setImageEditorExecutable(const QString& executableName)
786
{
787
        appPrefs.imageEditorExecutable=executableName;
788
}
789
 
5418 cbradney 790
void PrefsManager::setExtBrowserExecutable(const QString& executableName)
2862 cbradney 791
{
5418 cbradney 792
        appPrefs.extBrowserExecutable=executableName;
2862 cbradney 793
}
794
 
2871 cbradney 795
const QString PrefsManager::documentDir()
796
{
797
        return appPrefs.DocDir;
798
}
799
 
3931 subik 800
void PrefsManager::setDocumentDir(const QString& dirname)
801
{
802
        appPrefs.DocDir = dirname;
803
}
804
 
2871 cbradney 805
const int PrefsManager::mouseWheelValue()
806
{
807
        return appPrefs.Wheelval;
808
}
809
 
2870 cbradney 810
//Changed to return false when we have no fonts
811
const bool PrefsManager::GetAllFonts(bool showFontInfo)
812
{
813
        appPrefs.AvailFonts.GetFonts(prefsLocation, showFontInfo);
814
        if (appPrefs.AvailFonts.isEmpty())
815
                return false;
816
        return true;
817
}
2871 cbradney 818
 
819
void PrefsManager::setShowStartupDialog(const bool showDialog)
820
{
821
        appPrefs.showStartupDialog=showDialog;
822
}
823
 
824
const ColorList& PrefsManager::colorSet()
825
{
826
        return appPrefs.DColors;
827
}
828
 
829
ColorList* PrefsManager::colorSetPtr()
830
{
831
        return &appPrefs.DColors;
832
}
833
 
834
const QString& PrefsManager::colorSetName()
835
{
836
        return appPrefs.DColorSet;
837
}
838
 
839
void PrefsManager::setColorSet(const ColorList& colorSet)
840
{
841
        appPrefs.DColors=colorSet;
842
}
843
 
844
void PrefsManager::setColorSetName(const QString& colorSetName)
845
{
846
        appPrefs.DColorSet=colorSetName;
847
}
2873 cbradney 848
 
849
 
3932 avox 850
void PrefsManager::setKeyEntry(const QString& actName, const QString& cleanMenuText, const QKeySequence& keyseq, const int& rowNumber)
2873 cbradney 851
{
852
        Keys ke;
2877 cbradney 853
        if (!actName.isEmpty())
2873 cbradney 854
        {
5781 cbradney 855
                if (ScCore->primaryMainWindow()->scrActions[actName])
2873 cbradney 856
                {
857
                        ke.actionName=actName;
858
                        ke.keySequence = keyseq;
859
                        ke.cleanMenuText=cleanMenuText;
860
                        ke.tableRow=rowNumber;
861
                        appPrefs.KeyActions.insert(actName, ke);
862
                }
863
                else
864
                        qDebug("%s", QString("Action Name: %1 does not exist").arg(actName).ascii());
865
        }
866
}
867
 
868
const double PrefsManager::displayScale()
869
{
870
        return appPrefs.DisScale;
871
}
872
 
873
const QString& PrefsManager::guiLanguage()
874
{
875
        return appPrefs.guiLanguage;
876
}
877
 
878
const QString& PrefsManager::guiStyle()
879
{
880
        return appPrefs.GUI;
881
}
882
 
883
const int& PrefsManager::guiFontSize()
884
{
885
        return appPrefs.AppFontSize;
886
}
2889 cbradney 887
 
3940 tsoots 888
const int& PrefsManager::paletteFontSize()
889
{
890
        return appPrefs.PaletteFontSize;
891
}
892
 
3170 craig 893
bool PrefsManager::WritePref(QString ho)
2889 cbradney 894
{
895
        QDomDocument docu("scribusrc");
896
        QString st="<SCRIBUSRC></SCRIBUSRC>";
897
        docu.setContent(st);
898
        QDomElement elem=docu.documentElement();
899
        QDomElement dc=docu.createElement("GUI");
900
        dc.setAttribute("STILT",appPrefs.GUI);
901
        dc.setAttribute("RAD",appPrefs.Wheelval);
5912 fschmid 902
        dc.setAttribute("MOVT", appPrefs.moveTimeout);
2889 cbradney 903
        dc.setAttribute("APF",appPrefs.AppFontSize);
3940 tsoots 904
        dc.setAttribute("PFS",appPrefs.PaletteFontSize);
2889 cbradney 905
        dc.setAttribute("GRAB",appPrefs.guidesSettings.grabRad);
906
        dc.setAttribute("UNIT",appPrefs.docUnitIndex);
907
        dc.setAttribute("RCD", appPrefs.RecentDCount);
908
        dc.setAttribute("DOC", appPrefs.DocDir);
909
        dc.setAttribute("PROFILES", appPrefs.ProfileDir);
910
        dc.setAttribute("SCRIPTS", appPrefs.ScriptDir);
911
        dc.setAttribute("TEMPLATES", appPrefs.documentTemplatesDir);
912
        dc.setAttribute("SHOWGUIDES", static_cast<int>(appPrefs.guidesSettings.guidesShown));
5384 cbradney 913
        dc.setAttribute("showcolborders", static_cast<int>(appPrefs.guidesSettings.colBordersShown));
2889 cbradney 914
        dc.setAttribute("FRV", static_cast<int>(appPrefs.guidesSettings.framesShown));
5584 fschmid 915
        dc.setAttribute("SHOWLAYERM", static_cast<int>(appPrefs.guidesSettings.layerMarkersShown));
2889 cbradney 916
        dc.setAttribute("SHOWMARGIN", static_cast<int>(appPrefs.guidesSettings.marginsShown));
917
        dc.setAttribute("SHOWBASE", static_cast<int>(appPrefs.guidesSettings.baseShown));
918
        dc.setAttribute("SHOWLINK", static_cast<int>(appPrefs.guidesSettings.linkShown));
919
        dc.setAttribute("SHOWPICT", static_cast<int>(appPrefs.guidesSettings.showPic));
920
        dc.setAttribute("SHOWControl", static_cast<int>(appPrefs.guidesSettings.showControls));
4651 cbradney 921
        dc.setAttribute("rulersShown", static_cast<int>(appPrefs.guidesSettings.rulersShown));
2889 cbradney 922
        dc.setAttribute("rulerMode", static_cast<int>(appPrefs.guidesSettings.rulerMode));
923
        dc.setAttribute("ScratchBottom", appPrefs.ScratchBottom);
924
        dc.setAttribute("ScratchLeft", appPrefs.ScratchLeft);
925
        dc.setAttribute("ScratchRight", appPrefs.ScratchRight);
926
        dc.setAttribute("ScratchTop", appPrefs.ScratchTop);
927
        dc.setAttribute("STECOLOR", appPrefs.STEcolor.name());
928
        dc.setAttribute("STEFONT", appPrefs.STEfont);
929
        dc.setAttribute("STYLEPREVIEW", static_cast<int>(appPrefs.haveStylePreview));
930
        dc.setAttribute("StartUp", static_cast<int>(appPrefs.showStartupDialog));
4039 fschmid 931
        dc.setAttribute("ToolTips", static_cast<int>(appPrefs.showToolTips));
2889 cbradney 932
        elem.appendChild(dc);
933
        QDomElement dc1=docu.createElement("GRID");
934
        dc1.setAttribute("MINOR",appPrefs.guidesSettings.minorGrid);
935
        dc1.setAttribute("MAJOR",appPrefs.guidesSettings.majorGrid);
936
        dc1.setAttribute("MINORC",appPrefs.guidesSettings.minorColor.name());
937
        dc1.setAttribute("MAJORC",appPrefs.guidesSettings.majorColor.name());
938
        dc1.setAttribute("GuideC", appPrefs.guidesSettings.guideColor.name());
939
        dc1.setAttribute("BaseC", appPrefs.guidesSettings.baseColor.name());
940
        dc1.setAttribute("GuideZ", appPrefs.guidesSettings.guideRad);
941
        dc1.setAttribute("BACKG", static_cast<int>(appPrefs.guidesSettings.before));
942
        dc1.setAttribute("SHOW", static_cast<int>(appPrefs.guidesSettings.gridShown));
943
        elem.appendChild(dc1);
944
        QDomElement dc1a=docu.createElement("PAGE");
945
        dc1a.setAttribute("PAGEC",appPrefs.DpapColor.name());
946
        dc1a.setAttribute("MARGC",appPrefs.guidesSettings.margColor.name());
947
        dc1a.setAttribute("RANDF", static_cast<int>(appPrefs.marginColored));
948
        dc1a.setAttribute("DScale",appPrefs.DisScale);
949
        elem.appendChild(dc1a);
950
        QDomElement dc2=docu.createElement("FONTS");
951
        dc2.setAttribute("FACE",appPrefs.toolSettings.defFont);
952
        dc2.setAttribute("SIZE",appPrefs.toolSettings.defSize / 10.0);
953
        dc2.setAttribute("AutomaticSubst", static_cast<int>(appPrefs.askBeforeSubstituite));
954
        elem.appendChild(dc2);
955
        QDomElement dc3=docu.createElement("TYPO");
956
        dc3.setAttribute("TIEF",appPrefs.typographicSettings.valueSubScript);
957
        dc3.setAttribute("TIEFSC",appPrefs.typographicSettings.scalingSubScript);
958
        dc3.setAttribute("HOCH",appPrefs.typographicSettings.valueSuperScript);
959
        dc3.setAttribute("HOCHSC",appPrefs.typographicSettings.scalingSuperScript);
960
        dc3.setAttribute("SMCAPS",appPrefs.typographicSettings.valueSmallCaps);
961
        dc3.setAttribute("AUTOL", appPrefs.typographicSettings.autoLineSpacing);
962
        dc3.setAttribute("BASE", appPrefs.typographicSettings.valueBaseGrid);
963
        dc3.setAttribute("BASEO", appPrefs.typographicSettings.offsetBaseGrid);
964
        if (appPrefs.typographicSettings.valueUnderlinePos == -1)
965
                dc3.setAttribute("UnderlinePos", appPrefs.typographicSettings.valueUnderlinePos);
966
        else
967
                dc3.setAttribute("UnderlinePos", appPrefs.typographicSettings.valueUnderlinePos / 10.0);
968
        if (appPrefs.typographicSettings.valueUnderlineWidth == -1)
969
                dc3.setAttribute("UnderlineWidth", appPrefs.typographicSettings.valueUnderlineWidth);
970
        else
971
                dc3.setAttribute("UnderlineWidth", appPrefs.typographicSettings.valueUnderlineWidth / 10.0);
972
        if (appPrefs.typographicSettings.valueStrikeThruPos == -1)
973
                dc3.setAttribute("StrikeThruPos", appPrefs.typographicSettings.valueStrikeThruPos);
974
        else
975
                dc3.setAttribute("StrikeThruPos", appPrefs.typographicSettings.valueStrikeThruPos / 10.0);
976
        if (appPrefs.typographicSettings.valueStrikeThruWidth == -1)
977
                dc3.setAttribute("StrikeThruWidth", appPrefs.typographicSettings.valueStrikeThruWidth);
978
        else
979
                dc3.setAttribute("StrikeThruWidth", appPrefs.typographicSettings.valueStrikeThruWidth / 10.0);
980
        elem.appendChild(dc3);
981
        QDomElement dc9=docu.createElement("TOOLS");
982
        dc9.setAttribute("PEN",appPrefs.toolSettings.dPen);
983
        dc9.setAttribute("BRUSH",appPrefs.toolSettings.dBrush);
984
        dc9.setAttribute("PENLINE",appPrefs.toolSettings.dPenLine);
985
        dc9.setAttribute("PENTEXT",appPrefs.toolSettings.dPenText);
986
        dc9.setAttribute("StrokeText",appPrefs.toolSettings.dStrokeText);
3093 fschmid 987
        dc9.setAttribute("TextBackGround", appPrefs.toolSettings.dTextBackGround);
988
        dc9.setAttribute("TextLineColor", appPrefs.toolSettings.dTextLineColor);
989
        dc9.setAttribute("TextBackGroundShade", appPrefs.toolSettings.dTextBackGroundShade);
990
        dc9.setAttribute("TextLineShade", appPrefs.toolSettings.dTextLineShade);
991
        dc9.setAttribute("TextPenShade", appPrefs.toolSettings.dTextPenShade);
992
        dc9.setAttribute("TextStrokeShade", appPrefs.toolSettings.dTextStrokeShade);
2889 cbradney 993
        dc9.setAttribute("TEXTCOL",appPrefs.toolSettings.dCols);
994
        dc9.setAttribute("TEXTGAP",appPrefs.toolSettings.dGap);
995
        dc9.setAttribute("TabWidth",appPrefs.toolSettings.dTabWidth);
996
        dc9.setAttribute("TabFill",appPrefs.toolSettings.tabFillChar);
997
        dc9.setAttribute("STIL",appPrefs.toolSettings.dLineArt);
998
        dc9.setAttribute("STILLINE",appPrefs.toolSettings.dLstyleLine);
999
        dc9.setAttribute("WIDTH",appPrefs.toolSettings.dWidth);
1000
        dc9.setAttribute("WIDTHLINE",appPrefs.toolSettings.dWidthLine);
1001
        dc9.setAttribute("PENSHADE",appPrefs.toolSettings.dShade2);
1002
        dc9.setAttribute("LINESHADE",appPrefs.toolSettings.dShadeLine);
1003
        dc9.setAttribute("BRUSHSHADE",appPrefs.toolSettings.dShade);
1004
        dc9.setAttribute("MAGMIN",appPrefs.toolSettings.magMin);
1005
        dc9.setAttribute("MAGMAX",appPrefs.toolSettings.magMax);
1006
        dc9.setAttribute("MAGSTEP",appPrefs.toolSettings.magStep);
1007
        dc9.setAttribute("CPICT",appPrefs.toolSettings.dBrushPict);
1008
        dc9.setAttribute("PICTSHADE",appPrefs.toolSettings.shadePict);
1009
        dc9.setAttribute("PICTSCX",appPrefs.toolSettings.scaleX);
1010
        dc9.setAttribute("PICTSCY",appPrefs.toolSettings.scaleY);
1011
        dc9.setAttribute("POLYC", appPrefs.toolSettings.polyC);
1012
        dc9.setAttribute("POLYF", appPrefs.toolSettings.polyF);
1013
        dc9.setAttribute("POLYR", appPrefs.toolSettings.polyR);
1014
        dc9.setAttribute("POLYFD", appPrefs.toolSettings.polyFd);
1015
        dc9.setAttribute("POLYS", static_cast<int>(appPrefs.toolSettings.polyS));
1016
        dc9.setAttribute("PSCALE", static_cast<int>(appPrefs.toolSettings.scaleType));
1017
        dc9.setAttribute("PASPECT", static_cast<int>(appPrefs.toolSettings.aspectRatio));
1018
        dc9.setAttribute("EmbeddedPath", static_cast<int>(appPrefs.toolSettings.useEmbeddedPath));
1019
        dc9.setAttribute("HalfRes", appPrefs.toolSettings.lowResType);
1020
        dc9.setAttribute("StartArrow", appPrefs.toolSettings.dStartArrow);
1021
        dc9.setAttribute("EndArrow", appPrefs.toolSettings.dEndArrow);
1022
        elem.appendChild(dc9);
1023
        QDomElement dc4=docu.createElement("MAINWINDOW");
1024
        dc4.setAttribute("XPOS",appPrefs.mainWinSettings.xPosition);
1025
        dc4.setAttribute("YPOS",appPrefs.mainWinSettings.yPosition);
1026
        dc4.setAttribute("WIDTH",appPrefs.mainWinSettings.width);
1027
        dc4.setAttribute("HEIGHT",appPrefs.mainWinSettings.height);
4892 cbradney 1028
        dc4.setAttribute("MAXIMIZED",static_cast<int>(appPrefs.mainWinSettings.maximized));
2889 cbradney 1029
        elem.appendChild(dc4);
4735 fschmid 1030
        QDomElement dc73=docu.createElement("SCRAPBOOK");
5787 fschmid 1031
        dc73.setAttribute("CopyToScrapbook",static_cast<int>(appPrefs.doCopyToScrapbook));
1032
        dc73.setAttribute("persistentScrapbook",static_cast<int>(appPrefs.persistentScrapbook));
1033
        dc73.setAttribute("numScrapbookCopies",appPrefs.numScrapbookCopies);
4735 fschmid 1034
        for (uint rd=0; rd<appPrefs.RecentScrapbooks.count(); ++rd)
1035
        {
1036
                QDomElement rde=docu.createElement("RECENT");
1037
                rde.setAttribute("NAME",appPrefs.RecentScrapbooks[rd]);
1038
                dc73.appendChild(rde);
1039
        }
1040
        elem.appendChild(dc73);
2889 cbradney 1041
        QDomElement dc75=docu.createElement("PAGEPALETTE");
1042
        dc75.setAttribute("THUMBS", static_cast<int>(appPrefs.SepalT));
1043
        dc75.setAttribute("NAMES", static_cast<int>(appPrefs.SepalN));
1044
        elem.appendChild(dc75);
1045
        QDomElement dc76=docu.createElement("DOKUMENT");
1046
        dc76.setAttribute("PAGESIZE",appPrefs.pageSize);
1047
        dc76.setAttribute("AUSRICHTUNG",appPrefs.pageOrientation);
1048
        dc76.setAttribute("BREITE",appPrefs.PageWidth);
1049
        dc76.setAttribute("HOEHE",appPrefs.PageHeight);
1050
        dc76.setAttribute("RANDO",appPrefs.RandOben);
1051
        dc76.setAttribute("RANDU",appPrefs.RandUnten);
1052
        dc76.setAttribute("RANDL",appPrefs.RandLinks);
1053
        dc76.setAttribute("RANDR",appPrefs.RandRechts);
2894 fschmid 1054
        dc76.setAttribute("DOPPEL", appPrefs.FacingPages);
2889 cbradney 1055
        dc76.setAttribute("AutoSave", static_cast<int>(appPrefs.AutoSave));
1056
        dc76.setAttribute("AutoSaveTime", appPrefs.AutoSaveTime);
1057
        elem.appendChild(dc76);
3016 fschmid 1058
        QDomElement pageSetAttr = docu.createElement("PageSets");
1059
        QValueList<PageSet>::Iterator itpgset;
1060
        for(itpgset = appPrefs.pageSets.begin(); itpgset != appPrefs.pageSets.end(); ++itpgset )
1061
        {
1062
                QDomElement pgst = docu.createElement("Set");
1063
                pgst.setAttribute("Name", (*itpgset).Name);
1064
                pgst.setAttribute("FirstPage", (*itpgset).FirstPage);
1065
                pgst.setAttribute("Rows", (*itpgset).Rows);
1066
                pgst.setAttribute("Columns", (*itpgset).Columns);
1067
                pgst.setAttribute("GapHorizontal", (*itpgset).GapHorizontal);
1068
                pgst.setAttribute("GapVertical", (*itpgset).GapVertical);
1069
                pgst.setAttribute("GapBelow", (*itpgset).GapBelow);
3026 fschmid 1070
                QStringList pNames = (*itpgset).pageNames;
1071
                QStringList::Iterator itpgsetN;
1072
                for(itpgsetN = pNames.begin(); itpgsetN != pNames.end(); ++itpgsetN )
1073
                {
1074
                        QDomElement pgstN = docu.createElement("PageNames");
1075
                        pgstN.setAttribute("Name", (*itpgsetN));
1076
                        pgst.appendChild(pgstN);
1077
                }
3016 fschmid 1078
                pageSetAttr.appendChild(pgst);
1079
        }
1080
        elem.appendChild(pageSetAttr);
3183 fschmid 1081
        QDomElement dc79ac=docu.createElement("Checker");
1082
        dc79ac.setAttribute("currentProfile", appPrefs.curCheckProfile);
1083
        elem.appendChild(dc79ac);
3033 cbradney 1084
        CheckerPrefsList::Iterator itcp;
1085
        CheckerPrefsList::Iterator itcpend=appPrefs.checkerProfiles.end();
1086
        for (itcp = appPrefs.checkerProfiles.begin(); itcp != itcpend; ++itcp)
2889 cbradney 1087
        {
1088
                QDomElement dc79a=docu.createElement("CheckProfile");
1089
                dc79a.setAttribute("Name",itcp.key());
1090
                dc79a.setAttribute("ignoreErrors", static_cast<int>(itcp.data().ignoreErrors));
1091
                dc79a.setAttribute("autoCheck", static_cast<int>(itcp.data().autoCheck));
1092
                dc79a.setAttribute("checkGlyphs", static_cast<int>(itcp.data().checkGlyphs));
1093
                dc79a.setAttribute("checkOrphans", static_cast<int>(itcp.data().checkOrphans));
1094
                dc79a.setAttribute("checkOverflow", static_cast<int>(itcp.data().checkOverflow));
1095
                dc79a.setAttribute("checkPictures", static_cast<int>(itcp.data().checkPictures));
1096
                dc79a.setAttribute("checkResolution", static_cast<int>(itcp.data().checkResolution));
1097
                dc79a.setAttribute("checkTransparency", static_cast<int>(itcp.data().checkTransparency));
1098
                dc79a.setAttribute("checkAnnotations", static_cast<int>(itcp.data().checkAnnotations));
1099
                dc79a.setAttribute("checkRasterPDF", static_cast<int>(itcp.data().checkRasterPDF));
5270 subik 1100
                dc79a.setAttribute("checkForGIF", static_cast<int>(itcp.data().checkForGIF));
2889 cbradney 1101
                dc79a.setAttribute("minResolution",itcp.data().minResolution);
5239 fschmid 1102
                dc79a.setAttribute("maxResolution",itcp.data().maxResolution);
2889 cbradney 1103
                elem.appendChild(dc79a);
1104
        }
1105
        QDomElement dc81=docu.createElement("CMS");
1106
        dc81.setAttribute("DPSo", static_cast<int>(appPrefs.DCMSset.SoftProofOn));
5345 mrdocs 1107
        dc81.setAttribute("DPSFo", static_cast<int>(appPrefs.DCMSset.SoftProofFullOn));
2889 cbradney 1108
        dc81.setAttribute("DPuse", static_cast<int>(appPrefs.DCMSset.CMSinUse));
1109
        dc81.setAttribute("DPgam", static_cast<int>(appPrefs.DCMSset.GamutCheck));
1110
        dc81.setAttribute("DPbla", static_cast<int>(appPrefs.DCMSset.BlackPoint));
1111
        dc81.setAttribute("DPMo",appPrefs.DCMSset.DefaultMonitorProfile);
1112
        dc81.setAttribute("DPPr",appPrefs.DCMSset.DefaultPrinterProfile);
2984 fschmid 1113
        dc81.setAttribute("DPIn",appPrefs.DCMSset.DefaultImageRGBProfile);
1114
        dc81.setAttribute("DPInCMYK",appPrefs.DCMSset.DefaultImageCMYKProfile);
5345 mrdocs 1115
        dc81.setAttribute("DPIn2",appPrefs.DCMSset.DefaultSolidColorRGBProfile);
1116
        dc81.setAttribute("DPIn3",appPrefs.DCMSset.DefaultSolidColorCMYKProfile);
1117
        //dc81.setAttribute("DIPr",appPrefs.DCMSset.DefaultIntentPrinter);
1118
        //dc81.setAttribute("DIMo",appPrefs.DCMSset.DefaultIntentMonitor);
1119
        dc81.setAttribute("DISc",appPrefs.DCMSset.DefaultIntentColors);
1120
        dc81.setAttribute("DIIm",appPrefs.DCMSset.DefaultIntentImages);
2889 cbradney 1121
        elem.appendChild(dc81);
1122
        QDomElement dc82=docu.createElement("PRINTER");
1123
        dc82.setAttribute("NAME",appPrefs.PrinterName);
1124
        dc82.setAttribute("FILE",appPrefs.PrinterFile);
1125
        dc82.setAttribute("COMMAND",appPrefs.PrinterCommand);
1126
        dc82.setAttribute("CLIPMARGIN", static_cast<int>(appPrefs.ClipMargin));
1127
        dc82.setAttribute("GMODE", static_cast<int>(appPrefs.GCRMode));
1128
        elem.appendChild(dc82);
1129
        QDomElement dc8Pr=docu.createElement("PRINTPREVIEW");
1130
        dc8Pr.setAttribute("Mode", static_cast<int>(appPrefs.PrPr_Mode));
1131
        dc8Pr.setAttribute("GcrMode", static_cast<int>(appPrefs.Gcr_Mode));
5308 fschmid 1132
        dc8Pr.setAttribute("doOverprint", static_cast<int>(appPrefs.doOverprint));
2889 cbradney 1133
        dc8Pr.setAttribute("AlphaText", static_cast<int>(appPrefs.PrPr_AlphaText));
1134
        dc8Pr.setAttribute("AlphaGraphics", static_cast<int>(appPrefs.PrPr_AlphaGraphics));
1135
        dc8Pr.setAttribute("Transparency", static_cast<int>(appPrefs.PrPr_Transparency));
1136
        dc8Pr.setAttribute("Cyan", static_cast<int>(appPrefs.PrPr_C));
1137
        dc8Pr.setAttribute("Magenta", static_cast<int>(appPrefs.PrPr_M));
1138
        dc8Pr.setAttribute("Yellow", static_cast<int>(appPrefs.PrPr_Y));
1139
        dc8Pr.setAttribute("Black", static_cast<int>(appPrefs.PrPr_K));
1140
        elem.appendChild(dc8Pr);
1141
        QDomElement dc8Ex = docu.createElement("EXTERNAL");
1142
        dc8Ex.setAttribute("GIMP", imageEditorExecutable());
1143
        dc8Ex.setAttribute("GS", ghostscriptExecutable());
5418 cbradney 1144
        dc8Ex.setAttribute("WebBrowser", extBrowserExecutable());
2889 cbradney 1145
        dc8Ex.setAttribute("AlphaGraphics", static_cast<int>(appPrefs.gs_AntiAliasGraphics));
1146
        dc8Ex.setAttribute("AlphaText", static_cast<int>(appPrefs.gs_AntiAliasText));
1147
        dc8Ex.setAttribute("Resolution", appPrefs.gs_Resolution);
1148
        elem.appendChild(dc8Ex);
1149
        QDomElement rde=docu.createElement("HYPHEN");
1150
        rde.setAttribute("LANG", appPrefs.Language);
1151
        rde.setAttribute("WORDLEN", appPrefs.MinWordLen);
1152
        rde.setAttribute("HYCOUNT", appPrefs.HyCount);
1153
        rde.setAttribute("MODE", static_cast<int>(appPrefs.Automatic));
1154
        rde.setAttribute("INMODE", static_cast<int>(appPrefs.AutoCheck));
1155
        elem.appendChild(rde);
1156
        ColorList::Iterator itc;
1157
        for (itc = appPrefs.DColors.begin(); itc != appPrefs.DColors.end(); ++itc)
1158
        {
1159
                QDomElement co=docu.createElement("COLOR");
1160
                co.setAttribute("NAME",itc.key());
4535 fschmid 1161
                if (appPrefs.DColors[itc.key()].getColorModel() == colorModelRGB)
1162
                        co.setAttribute("RGB",appPrefs.DColors[itc.key()].nameRGB());
1163
                else
1164
                        co.setAttribute("CMYK",appPrefs.DColors[itc.key()].nameCMYK());
3051 fschmid 1165
                co.setAttribute("Spot",static_cast<int>(appPrefs.DColors[itc.key()].isSpotColor()));
3060 fschmid 1166
                co.setAttribute("Register",static_cast<int>(appPrefs.DColors[itc.key()].isRegistrationColor()));
2889 cbradney 1167
                elem.appendChild(co);
1168
        }
1169
        for ( SCFontsIterator itf(appPrefs.AvailFonts); itf.current(); ++itf)
1170
        {
1171
                QDomElement fn=docu.createElement("FONT");
1172
                fn.setAttribute("NAME",itf.currentKey());
5387 avox 1173
                fn.setAttribute("EMBED",static_cast<int>(itf.current()->embedPs()));
1174
                fn.setAttribute("USE", static_cast<int>(itf.current()->usable()));
1175
                fn.setAttribute("SUBSET", static_cast<int>(itf.current()->subset()));
2889 cbradney 1176
                elem.appendChild(fn);
1177
        }
1178
        for (uint rd=0; rd<appPrefs.RecentDocs.count(); ++rd)
1179
        {
1180
                QDomElement rde=docu.createElement("RECENT");
4321 cbradney 1181
                rde.setAttribute("NAME",appPrefs.RecentDocs[rd]);
2889 cbradney 1182
                elem.appendChild(rde);
1183
        }
1184
        for (QMap<QString,Keys>::Iterator ksc=appPrefs.KeyActions.begin(); ksc!=appPrefs.KeyActions.end(); ++ksc)
1185
        {
5354 cbradney 1186
                if (ksc.data().actionName.isEmpty())
1187
                        continue;
2889 cbradney 1188
                QDomElement kscc=docu.createElement("SHORTCUT");
1189
                kscc.setAttribute("ACTION",ksc.data().actionName);
5354 cbradney 1190
                kscc.setAttribute("SEQUENCE",TabKeyboardShortcutsWidget::getKeyText(ksc.data().keySequence));
2889 cbradney 1191
                elem.appendChild(kscc);
1192
        }
1193
        QMap<QString,QString>::Iterator itfsu;
1194
        for (itfsu = appPrefs.GFontSub.begin(); itfsu != appPrefs.GFontSub.end(); ++itfsu)
1195
        {
1196
                QDomElement fosu = docu.createElement("Substitute");
1197
                fosu.setAttribute("Name",itfsu.key());
1198
                fosu.setAttribute("Replace",itfsu.data());
1199
                elem.appendChild(fosu);
1200
        }
1201
        for (uint ccs=0; ccs<appPrefs.CustomColorSets.count(); ++ccs)
1202
        {
1203
                QDomElement cos=docu.createElement("COLORSET");
1204
                cos.setAttribute("NAME",appPrefs.CustomColorSets[ccs]);
1205
                elem.appendChild(cos);
1206
        }
1207
        QDomElement cosd=docu.createElement("DCOLORSET");
1208
        cosd.setAttribute("NAME",appPrefs.DColorSet);
1209
        elem.appendChild(cosd);
1210
        QDomElement pdf = docu.createElement("PDF");
1211
        pdf.setAttribute("Thumbnails", static_cast<int>(appPrefs.PDF_Options.Thumbnails));
1212
        pdf.setAttribute("Articles", static_cast<int>(appPrefs.PDF_Options.Articles));
1213
        pdf.setAttribute("Bookmarks", static_cast<int>(appPrefs.PDF_Options.Bookmarks));
1214
        pdf.setAttribute("Compress", static_cast<int>(appPrefs.PDF_Options.Compress));
1215
        pdf.setAttribute("CMethod", appPrefs.PDF_Options.CompressMethod);
1216
        pdf.setAttribute("Quality", appPrefs.PDF_Options.Quality);
1217
        pdf.setAttribute("MirrorH", static_cast<int>(appPrefs.PDF_Options.MirrorH));
1218
        pdf.setAttribute("MirrorV", static_cast<int>(appPrefs.PDF_Options.MirrorV));
4649 fschmid 1219
        pdf.setAttribute("Clip", static_cast<int>(appPrefs.PDF_Options.doClip));
2889 cbradney 1220
        pdf.setAttribute("RotateDeg", static_cast<int>(appPrefs.PDF_Options.RotateDeg));
1221
        pdf.setAttribute("PresentMode", static_cast<int>(appPrefs.PDF_Options.PresentMode));
1222
        pdf.setAttribute("RecalcPic", static_cast<int>(appPrefs.PDF_Options.RecalcPic));
1223
        pdf.setAttribute("Grayscale", static_cast<int>(appPrefs.PDF_Options.isGrayscale));
1224
        pdf.setAttribute("RGBMode", static_cast<int>(appPrefs.PDF_Options.UseRGB));
1225
        pdf.setAttribute("UseProfiles", static_cast<int>(appPrefs.PDF_Options.UseProfiles));
1226
        pdf.setAttribute("UseProfiles2", static_cast<int>(appPrefs.PDF_Options.UseProfiles2));
1227
        pdf.setAttribute("Binding", appPrefs.PDF_Options.Binding);
1228
        pdf.setAttribute("PicRes", appPrefs.PDF_Options.PicRes);
1229
        pdf.setAttribute("Resolution", appPrefs.PDF_Options.Resolution);
1230
        pdf.setAttribute("Version", appPrefs.PDF_Options.Version);
1231
        pdf.setAttribute("Intent", appPrefs.PDF_Options.Intent);
1232
        pdf.setAttribute("Intent2", appPrefs.PDF_Options.Intent2);
1233
        pdf.setAttribute("SolidP", appPrefs.PDF_Options.SolidProf);
1234
        pdf.setAttribute("ImageP", appPrefs.PDF_Options.ImageProf);
1235
        pdf.setAttribute("PrintP", appPrefs.PDF_Options.PrintProf);
1236
        pdf.setAttribute("InfoString", appPrefs.PDF_Options.Info);
1237
        pdf.setAttribute("BTop", appPrefs.PDF_Options.BleedTop);
1238
        pdf.setAttribute("BLeft", appPrefs.PDF_Options.BleedLeft);
1239
        pdf.setAttribute("BRight", appPrefs.PDF_Options.BleedRight);
1240
        pdf.setAttribute("BBottom", appPrefs.PDF_Options.BleedBottom);
1241
        pdf.setAttribute("ImagePr", static_cast<int>(appPrefs.PDF_Options.EmbeddedI));
1242
        pdf.setAttribute("PassOwner", appPrefs.PDF_Options.PassOwner);
1243
        pdf.setAttribute("PassUser", appPrefs.PDF_Options.PassUser);
1244
        pdf.setAttribute("Permissions", appPrefs.PDF_Options.Permissions);
1245
        pdf.setAttribute("Encrypt", static_cast<int>(appPrefs.PDF_Options.Encrypt));
1246
        pdf.setAttribute("UseLayers", static_cast<int>(appPrefs.PDF_Options.useLayers));
1247
        pdf.setAttribute("UseLpi", static_cast<int>(appPrefs.PDF_Options.UseLPI));
3079 fschmid 1248
        pdf.setAttribute("UseSpotColors", static_cast<int>(appPrefs.PDF_Options.UseSpotColors));
5320 fschmid 1249
        pdf.setAttribute("doOverprint", static_cast<int>(appPrefs.PDF_Options.doOverprint));
3079 fschmid 1250
        pdf.setAttribute("doMultiFile", static_cast<int>(appPrefs.PDF_Options.doMultiFile));
4197 fschmid 1251
        pdf.setAttribute("displayBookmarks", static_cast<int>(appPrefs.PDF_Options.displayBookmarks));
1252
        pdf.setAttribute("displayFullscreen", static_cast<int>(appPrefs.PDF_Options.displayFullscreen));
1253
        pdf.setAttribute("displayLayers", static_cast<int>(appPrefs.PDF_Options.displayLayers));
1254
        pdf.setAttribute("displayThumbs", static_cast<int>(appPrefs.PDF_Options.displayThumbs));
1255
        pdf.setAttribute("PageLayout", appPrefs.PDF_Options.PageLayout);
1256
        pdf.setAttribute("openAction", appPrefs.PDF_Options.openAction);
2889 cbradney 1257
        QMap<QString,LPIData>::Iterator itlp;
1258
        for (itlp = appPrefs.PDF_Options.LPISettings.begin(); itlp != appPrefs.PDF_Options.LPISettings.end(); ++itlp)
1259
        {
1260
                QDomElement pdf4 = docu.createElement("LPI");
1261
                pdf4.setAttribute("Color", itlp.key());
1262
                pdf4.setAttribute("Frequency", itlp.data().Frequency);
1263
                pdf4.setAttribute("Angle", itlp.data().Angle);
1264
                pdf4.setAttribute("SpotFunction", itlp.data().SpotFunc);
1265
                pdf.appendChild(pdf4);
1266
        }
1267
        elem.appendChild(pdf);
1268
        QDomElement docItemAttrs = docu.createElement("DefaultItemAttributes");
1269
        for(ObjAttrVector::Iterator objAttrIt = appPrefs.defaultItemAttributes.begin() ; objAttrIt != appPrefs.defaultItemAttributes.end(); ++objAttrIt )
1270
        {
1271
                QDomElement itemAttr = docu.createElement("ItemAttribute");
1272
                itemAttr.setAttribute("Name", (*objAttrIt).name);
1273
                itemAttr.setAttribute("Type", (*objAttrIt).type);
1274
                itemAttr.setAttribute("Value", (*objAttrIt).value);
1275
                itemAttr.setAttribute("Parameter", (*objAttrIt).parameter);
1276
                itemAttr.setAttribute("Relationship", (*objAttrIt).relationship);
1277
                itemAttr.setAttribute("RelationshipTo", (*objAttrIt).relationshipto);
1278
                itemAttr.setAttribute("AutoAddTo", (*objAttrIt).autoaddto);
1279
                docItemAttrs.appendChild(itemAttr);
1280
        }
1281
        elem.appendChild(docItemAttrs);
1282
        QDomElement tocElem = docu.createElement("TablesOfContents");
1283
        for(ToCSetupVector::Iterator tocSetupIt = appPrefs.defaultToCSetups.begin() ; tocSetupIt != appPrefs.defaultToCSetups.end(); ++tocSetupIt )
1284
        {
1285
                QDomElement tocsetup = docu.createElement("TableOfContents");
1286
                tocsetup.setAttribute("Name", (*tocSetupIt).name);
1287
                tocsetup.setAttribute("ItemAttributeName", (*tocSetupIt).itemAttrName);
1288
                tocsetup.setAttribute("FrameName", (*tocSetupIt).frameName);
1289
                tocsetup.setAttribute("ListNonPrinting", (*tocSetupIt).listNonPrintingFrames);
1290
                tocsetup.setAttribute("Style", (*tocSetupIt).textStyle);
1291
                tocsetup.setAttribute("NumberPlacement", (*tocSetupIt).pageLocation);
1292
                tocElem.appendChild(tocsetup);
1293
        }
1294
        elem.appendChild(tocElem);
1295
        // lorem ipsum
1296
        QDomElement liElem = docu.createElement("LoremIpsum");
1297
        liElem.setAttribute("useStandardLI", static_cast<int>(appPrefs.useStandardLI));
1298
        liElem.setAttribute("paragraphsLI", appPrefs.paragraphsLI);
1299
        elem.appendChild(liElem);
1300
        // write file
3170 craig 1301
        bool result = false;
2889 cbradney 1302
        QFile f(ho);
1303
        if(!f.open(IO_WriteOnly))
3170 craig 1304
        {
1305
                m_lastError = tr("Could not open preferences file \"%1\" for writing: %2")
1306
                        .arg(ho).arg(qApp->translate("QFile",f.errorString()));
1307
        }
1308
        else
1309
        {
1310
                QTextStream s(&f);
1311
                s.setEncoding(QTextStream::UnicodeUTF8);
1312
                s<<docu.toString();
1313
                if (f.status() == IO_Ok)
1314
                        result = true;
1315
                else
1316
                        m_lastError = tr("Writing to preferences file \"%1\" failed: "
1317
                                             "QIODevice status code %2")
1318
                                .arg(ho).arg(f.status());
1319
        }
1320
        if (f.isOpen())
1321
                f.close();
1322
        return result;
2889 cbradney 1323
}
1324
 
1325
bool PrefsManager::ReadPref(QString ho)
1326
{
1327
        QDomDocument docu("scridoc");
1328
        QFile f(ho);
1329
        if(!f.open(IO_ReadOnly))
3171 craig 1330
        {
1331
                m_lastError = tr("Failed to open prefs file \"%1\": %2")
1332
                        .arg(ho).arg( qApp->translate("QFile",f.errorString()) );
2889 cbradney 1333
                return false;
3171 craig 1334
        }
2889 cbradney 1335
        QTextStream ts(&f);
1336
        ts.setEncoding(QTextStream::UnicodeUTF8);
1337
        QString errorMsg;
1338
        int errorLine = 0, errorColumn = 0;
1339
        if( !docu.setContent(ts.read(), &errorMsg, &errorLine, &errorColumn) )
1340
        {
3171 craig 1341
                m_lastError = tr("Failed to read prefs XML from \"%1\": %2 at line %3, col %4")
1342
                        .arg(ho).arg(errorMsg).arg(errorLine).arg(errorColumn);
2889 cbradney 1343
                f.close();
1344
                return false;
1345
        }
1346
        f.close();
1347
        QDomElement elem=docu.documentElement();
1348
        if (elem.tagName() != "SCRIBUSRC")
1349
                return false;
1350
        appPrefs.DColors.clear();
1351
        ScColor lf = ScColor();
1352
        QDomNode DOC=elem.firstChild();
3183 fschmid 1353
        if (!DOC.namedItem("CheckProfile").isNull())
1354
                appPrefs.checkerProfiles.clear();
2889 cbradney 1355
        while(!DOC.isNull())
1356
        {
1357
                QDomElement dc=DOC.toElement();
1358
                if (dc.tagName()=="GUI")
1359
                {
1360
                        appPrefs.GUI = dc.attribute("STILT","Default");
4026 craig 1361
                        appPrefs.Wheelval = dc.attribute("RAD").toInt();
5912 fschmid 1362
                        appPrefs.moveTimeout = dc.attribute("MOVT", "150").toInt();
4026 craig 1363
                        appPrefs.guidesSettings.grabRad = dc.attribute("GRAB", "4").toInt();
1364
                        appPrefs.docUnitIndex = dc.attribute("UNIT", "0").toInt();
1365
                        appPrefs.AppFontSize = dc.attribute("APF", "12").toInt();
1366
                        appPrefs.PaletteFontSize = dc.attribute("PFS", "10").toInt();
2889 cbradney 1367
                        appPrefs.RecentDCount = dc.attribute("RCD","5").toUInt();
1368
                        appPrefs.DocDir = dc.attribute("DOC","");
1369
                        appPrefs.ProfileDir = dc.attribute("PROFILES","");
1370
                        appPrefs.ScriptDir = dc.attribute("SCRIPTS","");
1371
                        appPrefs.documentTemplatesDir = dc.attribute("TEMPLATES","");
4026 craig 1372
                        appPrefs.guidesSettings.guidesShown = static_cast<bool>(dc.attribute("SHOWGUIDES", "1").toInt());
5384 cbradney 1373
                        appPrefs.guidesSettings.colBordersShown = static_cast<bool>(dc.attribute("showcolborders", "0").toInt());
4026 craig 1374
                        appPrefs.guidesSettings.framesShown = static_cast<bool>(dc.attribute("FRV", "1").toInt());
5584 fschmid 1375
                        appPrefs.guidesSettings.layerMarkersShown = static_cast<bool>(dc.attribute("SHOWLAYERM", "0").toInt());
4026 craig 1376
                        appPrefs.guidesSettings.marginsShown = static_cast<bool>(dc.attribute("SHOWMARGIN", "1").toInt());
1377
                        appPrefs.guidesSettings.baseShown = static_cast<bool>(dc.attribute("SHOWBASE", "1").toInt());
1378
                        appPrefs.guidesSettings.linkShown = static_cast<bool>(dc.attribute("SHOWLINK", "0").toInt());
1379
                        appPrefs.guidesSettings.showPic = static_cast<bool>(dc.attribute("SHOWPICT", "1").toInt());
1380
                        appPrefs.guidesSettings.showControls = static_cast<bool>(dc.attribute("SHOWControl", "0").toInt());
4651 cbradney 1381
                        appPrefs.guidesSettings.rulersShown = static_cast<bool>(dc.attribute("rulersShown", "1").toInt());
4026 craig 1382
                        appPrefs.guidesSettings.rulerMode = static_cast<bool>(dc.attribute("rulerMode", "1").toInt());
1383
                        appPrefs.haveStylePreview = static_cast<bool>(dc.attribute("STYLEPREVIEW", "1").toInt());
1384
                        appPrefs.showStartupDialog = static_cast<bool>(dc.attribute("StartUp", "1").toInt());
1385
                        appPrefs.ScratchBottom = dc.attribute("ScratchBottom", "20").toDouble();
1386
                        appPrefs.ScratchLeft = dc.attribute("ScratchLeft", "100").toDouble();
1387
                        appPrefs.ScratchRight = dc.attribute("ScratchRight", "100").toDouble();
1388
                        appPrefs.ScratchTop = dc.attribute("ScratchTop", "20").toDouble();
2889 cbradney 1389
                        if (dc.hasAttribute("STECOLOR"))
1390
                                appPrefs.STEcolor = QColor(dc.attribute("STECOLOR"));
1391
                        if (dc.hasAttribute("STEFONT"))
1392
                                appPrefs.STEfont = dc.attribute("STEFONT");
4039 fschmid 1393
                        appPrefs.showToolTips = static_cast<bool>(dc.attribute("ToolTips", "1").toInt());
2889 cbradney 1394
                }
1395
                if (dc.tagName()=="GRID")
1396
                {
4026 craig 1397
                        appPrefs.guidesSettings.minorGrid = dc.attribute("MINOR").toDouble();
1398
                        appPrefs.guidesSettings.majorGrid = dc.attribute("MAJOR").toDouble();
2889 cbradney 1399
                        appPrefs.guidesSettings.minorColor = QColor(dc.attribute("MINORC"));
1400
                        appPrefs.guidesSettings.majorColor = QColor(dc.attribute("MAJORC"));
4026 craig 1401
                        appPrefs.guidesSettings.before = static_cast<bool>(dc.attribute("BACKG", "1").toInt());
1402
                        appPrefs.guidesSettings.gridShown = static_cast<bool>(dc.attribute("SHOW", "0").toInt());
2889 cbradney 1403
                        if (dc.hasAttribute("GuideC"))
1404
                                appPrefs.guidesSettings.guideColor = QColor(dc.attribute("GuideC"));
1405
                        if (dc.hasAttribute("GuideZ"))
4026 craig 1406
                                appPrefs.guidesSettings.guideRad = dc.attribute("GuideZ").toDouble();
2889 cbradney 1407
                        if (dc.hasAttribute("BaseC"))
1408
                                appPrefs.guidesSettings.baseColor = QColor(dc.attribute("BaseC"));
1409
                }
1410
                if (dc.tagName()=="PAGE")
1411
                {
1412
                        appPrefs.DpapColor = QColor(dc.attribute("PAGEC"));
1413
                        appPrefs.guidesSettings.margColor = QColor(dc.attribute("MARGC","#0000ff"));
4026 craig 1414
                        appPrefs.marginColored = static_cast<bool>(dc.attribute("RANDF", "0").toInt());
1415
                        appPrefs.DisScale = dc.attribute("DScale", "1").toDouble();
2889 cbradney 1416
                }
1417
                if (dc.tagName()=="TYPO")
1418
                {
4026 craig 1419
                        appPrefs.typographicSettings.valueSuperScript = dc.attribute("HOCH").toInt();
1420
                        appPrefs.typographicSettings.scalingSuperScript = dc.attribute("HOCHSC").toInt();
1421
                        appPrefs.typographicSettings.valueSubScript = dc.attribute("TIEF").toInt();
1422
                        appPrefs.typographicSettings.scalingSubScript = dc.attribute("TIEFSC").toInt();
1423
                        appPrefs.typographicSettings.valueSmallCaps = dc.attribute("SMCAPS").toInt();
1424
                        appPrefs.typographicSettings.valueBaseGrid = dc.attribute("BASE", "12").toDouble();
1425
                        appPrefs.typographicSettings.offsetBaseGrid = dc.attribute("BASEO", "0").toDouble();
1426
                        appPrefs.typographicSettings.autoLineSpacing = dc.attribute("AUTOL", "20").toInt();
1427
                        double ulp = dc.attribute("UnderlinePos", "-1").toDouble();
2889 cbradney 1428
                        if (ulp != -1)
1429
                                appPrefs.typographicSettings.valueUnderlinePos = qRound(ulp * 10);
1430
                        else
1431
                                appPrefs.typographicSettings.valueUnderlinePos = -1;
4026 craig 1432
                        double ulw = dc.attribute("UnderlineWidth", "-1").toDouble();
2889 cbradney 1433
                        if (ulw != -1)
1434
                                appPrefs.typographicSettings.valueUnderlineWidth = qRound(ulw * 10);
1435
                        else
1436
                                appPrefs.typographicSettings.valueUnderlineWidth = -1;
4026 craig 1437
                        double stp = dc.attribute("StrikeThruPos", "-1").toDouble();
2889 cbradney 1438
                        if (stp != -1)
1439
                                appPrefs.typographicSettings.valueStrikeThruPos = qRound(ulp * 10);
1440
                        else
1441
                                appPrefs.typographicSettings.valueStrikeThruPos = -1;
4026 craig 1442
                        double stw = dc.attribute("StrikeThruWidth", "-1").toDouble();
2889 cbradney 1443
                        if (stw != -1)
1444
                                appPrefs.typographicSettings.valueStrikeThruWidth = qRound(stw * 10);
1445
                        else
1446
                                appPrefs.typographicSettings.valueStrikeThruWidth = -1;
1447
                }
1448
                if (dc.tagName()=="TOOLS")
1449
                {
1450
                        appPrefs.toolSettings.dPen = dc.attribute("PEN");
1451
                        appPrefs.toolSettings.dBrush = dc.attribute("BRUSH");
1452
                        appPrefs.toolSettings.dPenLine = dc.attribute("PENLINE");
1453
                        appPrefs.toolSettings.dPenText = dc.attribute("PENTEXT");
1454
                        appPrefs.toolSettings.dStrokeText = dc.attribute("StrokeText", appPrefs.toolSettings.dPenText);
4546 subik 1455
                        appPrefs.toolSettings.dTextBackGround = dc.attribute("TextBackGround", CommonStrings::None);
1456
                        appPrefs.toolSettings.dTextLineColor = dc.attribute("TextLineColor", CommonStrings::None);
4026 craig 1457
                        appPrefs.toolSettings.dTextBackGroundShade = dc.attribute("TextBackGroundShade", "100").toInt();
1458
                        appPrefs.toolSettings.dTextLineShade = dc.attribute("TextLineShade", "100").toInt();
1459
                        appPrefs.toolSettings.dTextPenShade = dc.attribute("TextPenShade", "100").toInt();
1460
                        appPrefs.toolSettings.dTextStrokeShade = dc.attribute("TextStrokeShade", "100").toInt();
1461
                        appPrefs.toolSettings.dCols = dc.attribute("TEXTCOL", "1").toInt();
1462
                        appPrefs.toolSettings.dGap = dc.attribute("TEXTGAP", "0.0").toDouble();
2889 cbradney 1463
                        appPrefs.toolSettings.tabFillChar = dc.attribute("TabFill", "");
4026 craig 1464
                        appPrefs.toolSettings.dTabWidth = dc.attribute("TabWidth", "36.0").toDouble();
1465
                        appPrefs.toolSettings.dLineArt = dc.attribute("STIL").toInt();
1466
                        appPrefs.toolSettings.dLstyleLine = dc.attribute("STILLINE").toInt();
1467
                        appPrefs.toolSettings.dWidth = dc.attribute("WIDTH").toDouble();
1468
                        appPrefs.toolSettings.dWidthLine = dc.attribute("WIDTHLINE").toDouble();
1469
                        appPrefs.toolSettings.dShade2 = dc.attribute("PENSHADE").toInt();
1470
                        appPrefs.toolSettings.dShadeLine = dc.attribute("LINESHADE").toInt();
1471
                        appPrefs.toolSettings.dShade = dc.attribute("BRUSHSHADE").toInt();
1472
                        appPrefs.toolSettings.magMin = dc.attribute("MAGMIN", "10").toInt();
1473
                        appPrefs.toolSettings.magMax = dc.attribute("MAGMAX", "3200").toInt();
4285 cbradney 1474
                        appPrefs.toolSettings.magStep = dc.attribute("MAGSTEP", "200").toInt();
4295 cbradney 1475
                        //CB Reset prefs zoom step value to 200% instead of old values.
1476
                        if (appPrefs.toolSettings.magStep<100)
1477
                                appPrefs.toolSettings.magStep=200;
5510 cbradney 1478
                        appPrefs.toolSettings.dBrushPict = dc.attribute("CPICT", CommonStrings::None);
4026 craig 1479
                        appPrefs.toolSettings.shadePict = dc.attribute("PICTSHADE", "100").toInt();
1480
                        appPrefs.toolSettings.scaleX = dc.attribute("PICTSCX", "1").toDouble();
1481
                        appPrefs.toolSettings.scaleY = dc.attribute("PICTSCY", "1").toDouble();
1482
                        appPrefs.toolSettings.scaleType = static_cast<bool>(dc.attribute("PSCALE", "1").toInt());
1483
                        appPrefs.toolSettings.aspectRatio = static_cast<bool>(dc.attribute("PASPECT", "0").toInt());
1484
                        appPrefs.toolSettings.useEmbeddedPath = static_cast<bool>(dc.attribute("EmbeddedPath", "0").toInt());
1485
                        appPrefs.toolSettings.lowResType = dc.attribute("HalfRes", "1").toInt();
1486
                        appPrefs.toolSettings.polyC = dc.attribute("POLYC", "4").toInt();
1487
                        appPrefs.toolSettings.polyF = dc.attribute("POLYF", "0.5").toDouble();
1488
                        appPrefs.toolSettings.polyR = dc.attribute("POLYR", "0").toDouble();
1489
                        appPrefs.toolSettings.polyFd = dc.attribute("POLYFD", "0").toInt();
1490
                        appPrefs.toolSettings.polyS = static_cast<bool>(dc.attribute("POLYS", "0").toInt());
1491
                        appPrefs.toolSettings.dStartArrow = dc.attribute("StartArrow", "0").toInt();
1492
                        appPrefs.toolSettings.dEndArrow = dc.attribute("EndArrow", "0").toInt();
2889 cbradney 1493
                }
1494
                if (dc.tagName()=="MAINWINDOW")
1495
                {
4026 craig 1496
                        appPrefs.mainWinSettings.xPosition = dc.attribute("XPOS", "0").toInt();
1497
                        appPrefs.mainWinSettings.yPosition = dc.attribute("YPOS", "0").toInt();
1498
                        appPrefs.mainWinSettings.width = dc.attribute("WIDTH", "640").toInt();
1499
                        appPrefs.mainWinSettings.height = dc.attribute("HEIGHT", "480").toInt();
4892 cbradney 1500
                        appPrefs.mainWinSettings.maximized = static_cast<bool>(dc.attribute("MAXIMIZED", "0").toInt());
3932 avox 1501
                        QDesktopWidget *d = QApplication::desktop();
1502
                        QSize gStrut = QApplication::globalStrut();
1503
                        int minX = 0;
1504
#ifndef QT_MAC
1505
                        int minY = 0;
1506
#else
1507
                        // on Mac you're dead if the titlebar is not on screen
1508
                        int minY = 22;
1509
#endif
1510
                        if (appPrefs.mainWinSettings.xPosition < minX )
1511
                                appPrefs.mainWinSettings.xPosition = minX;
1512
                        if (appPrefs.mainWinSettings.yPosition <  minY)
1513
                                appPrefs.mainWinSettings.yPosition = minY;
1514
                        int minWidth = 5*gStrut.width();
1515
                        int minHeight = 5*gStrut.width();
1516
                        int maxWidth = d->width();
1517
                        int maxHeight = d->height();
1518
                        if (appPrefs.mainWinSettings.width > maxWidth)
1519
                                appPrefs.mainWinSettings.width = maxWidth;
1520
                        if (appPrefs.mainWinSettings.width < minWidth)
1521
                                appPrefs.mainWinSettings.width = minWidth;
1522
                        if (appPrefs.mainWinSettings.height > maxHeight)
1523
                                appPrefs.mainWinSettings.height = maxHeight;
1524
                        if (appPrefs.mainWinSettings.height < minHeight)
1525
                                appPrefs.mainWinSettings.height = minHeight;
1526
                        int maxX = d->width() - minWidth;
1527
                        int maxY = d->height() - minHeight;
1528
                        if (appPrefs.mainWinSettings.xPosition >= maxX)
1529
                                appPrefs.mainWinSettings.xPosition = maxX;
1530
                        if (appPrefs.mainWinSettings.yPosition >= maxY)
1531
                                appPrefs.mainWinSettings.yPosition = maxY;
2889 cbradney 1532
                }
1533
                if (dc.tagName()=="PAGEPALETTE")
1534
                {
4026 craig 1535
                        appPrefs.SepalT = static_cast<bool>(dc.attribute("THUMBS").toInt());
1536
                        appPrefs.SepalN = static_cast<bool>(dc.attribute("NAMES").toInt());
2889 cbradney 1537
                }
4735 fschmid 1538
                if (dc.tagName()=="SCRAPBOOK")
2889 cbradney 1539
                {
5787 fschmid 1540
                        appPrefs.doCopyToScrapbook = static_cast<bool>(dc.attribute("CopyToScrapbook", "1").toInt());
1541
                        appPrefs.persistentScrapbook = static_cast<bool>(dc.attribute("persistentScrapbook", "0").toInt());
1542
                        appPrefs.numScrapbookCopies = dc.attribute("numScrapbookCopies", "10").toInt();
4735 fschmid 1543
                        QDomNode scrp = dc.firstChild();
1544
                        while(!scrp.isNull())
1545
                        {
1546
                                QDomElement scrpElem = scrp.toElement();
1547
                                if (scrpElem.tagName()=="RECENT")
1548
                                {
1549
                                        QString nam = scrpElem.attribute("NAME");
1550
                                        QFileInfo fd(nam);
1551
                                        if (fd.exists())
1552
                                                appPrefs.RecentScrapbooks.append(nam);
1553
                                }
1554
                                scrp = scrp.nextSibling();
1555
                        }
1556
                }
2889 cbradney 1557
                if (dc.tagName() == "DOKUMENT")
1558
                {
1559
                        appPrefs.pageSize = dc.attribute("PAGESIZE","A4");
4026 craig 1560
                        appPrefs.pageOrientation = dc.attribute("AUSRICHTUNG", "0").toInt();
1561
                        appPrefs.PageWidth = dc.attribute("BREITE", "595").toDouble();
1562
                        appPrefs.PageHeight = dc.attribute("HOEHE", "842").toDouble();
1563
                        appPrefs.RandOben = dc.attribute("RANDO", "9").toDouble();
1564
                        appPrefs.RandUnten = dc.attribute("RANDU", "40").toDouble();
1565
                        appPrefs.RandLinks = dc.attribute("RANDL", "9").toDouble();
1566
                        appPrefs.RandRechts = dc.attribute("RANDR", "9").toDouble();
1567
                        appPrefs.FacingPages = dc.attribute("DOPPEL", "0").toInt();
1568
                        appPrefs.AutoSave = static_cast<bool>(dc.attribute("AutoSave", "0").toInt());
1569
                        appPrefs.AutoSaveTime = dc.attribute("AutoSaveTime", "600000").toInt();
2889 cbradney 1570
                }
3016 fschmid 1571
                if (dc.tagName()=="PageSets")
1572
                {
1573
                        QDomNode PGS = DOC.firstChild();
3026 fschmid 1574
                        if  (!PGS.namedItem("PageNames").isNull())
3016 fschmid 1575
                        {
3026 fschmid 1576
                                appPrefs.pageSets.clear();
1577
                                while(!PGS.isNull())
3016 fschmid 1578
                                {
3026 fschmid 1579
                                        QDomElement PgsAttr = PGS.toElement();
1580
                                        if(PgsAttr.tagName() == "Set")
1581
                                        {
1582
                                                struct PageSet pageS;
1583
                                                pageS.Name = PgsAttr.attribute("Name");
4026 craig 1584
                                                pageS.FirstPage = PgsAttr.attribute("FirstPage", "0").toInt();
1585
                                                pageS.Rows = PgsAttr.attribute("Rows", "1").toInt();
1586
                                                pageS.Columns = PgsAttr.attribute("Columns", "1").toInt();
1587
                                                pageS.GapHorizontal = PgsAttr.attribute("GapHorizontal", "0").toDouble();
1588
                                                pageS.GapVertical = PgsAttr.attribute("GapVertical", "0").toDouble();
1589
                                                pageS.GapBelow = PgsAttr.attribute("GapBelow", "0").toDouble();
3026 fschmid 1590
                                                pageS.pageNames.clear();
1591
                                                QDomNode PGSN = PGS.firstChild();
1592
                                                while(!PGSN.isNull())
1593
                                                {
1594
                                                        QDomElement PgsAttrN = PGSN.toElement();
1595
                                                        if(PgsAttrN.tagName() == "PageNames")
1596
                                                                pageS.pageNames.append(PgsAttrN.attribute("Name"));
1597
                                                        PGSN = PGSN.nextSibling();
1598
                                                }
1599
                                                appPrefs.pageSets.append(pageS);
1600
                                        }
1601
                                        PGS = PGS.nextSibling();
3016 fschmid 1602
                                }
1603
                        }
1604
                }
2889 cbradney 1605
                if (dc.tagName()=="CMS")
1606
                {
4026 craig 1607
                        appPrefs.DCMSset.SoftProofOn = static_cast<bool>(dc.attribute("DPSo", "0").toInt());
5345 mrdocs 1608
                        appPrefs.DCMSset.SoftProofFullOn = static_cast<bool>(dc.attribute("DPSFo", "0").toInt());
4026 craig 1609
                        appPrefs.DCMSset.CMSinUse = static_cast<bool>(dc.attribute("DPuse", "0").toInt());
1610
                        appPrefs.DCMSset.GamutCheck = static_cast<bool>(dc.attribute("DPgam", "0").toInt());
1611
                        appPrefs.DCMSset.BlackPoint = static_cast<bool>(dc.attribute("DPbla", "1").toInt());
2889 cbradney 1612
                        appPrefs.DCMSset.DefaultMonitorProfile = dc.attribute("DPMo","");
1613
                        appPrefs.DCMSset.DefaultPrinterProfile = dc.attribute("DPPr","");
2984 fschmid 1614
                        appPrefs.DCMSset.DefaultImageRGBProfile = dc.attribute("DPIn","");
1615
                        appPrefs.DCMSset.DefaultImageCMYKProfile = dc.attribute("DPInCMYK","");
5345 mrdocs 1616
                        appPrefs.DCMSset.DefaultSolidColorRGBProfile = dc.attribute("DPIn2","");
1617
                        appPrefs.DCMSset.DefaultSolidColorCMYKProfile = dc.attribute("DPIn3","");
1618
                        appPrefs.DCMSset.DefaultIntentColors = dc.attribute("DISc", "1").toInt();
1619
                        appPrefs.DCMSset.DefaultIntentImages = dc.attribute("DIIm", "0").toInt();
2889 cbradney 1620
                }
1621
                if (!importingFrom12 && dc.tagName()=="SHORTCUT")
1622
                {
1623
                        if (appPrefs.KeyActions.contains(dc.attribute("ACTION")))
1624
                        {
1625
                                appPrefs.KeyActions[dc.attribute("ACTION")].actionName = dc.attribute("ACTION");
3932 avox 1626
                                QKeySequence newKeySequence = QKeySequence(dc.attribute("SEQUENCE"));
1627
                                appPrefs.KeyActions[dc.attribute("ACTION")].keySequence = newKeySequence;
2889 cbradney 1628
                        }
1629
                }
1630
                if (dc.tagName()=="RECENT")
4321 cbradney 1631
                        appPrefs.RecentDocs.append(dc.attribute("NAME"));
2889 cbradney 1632
                if (dc.tagName()=="Checker")
1633
                {
3142 cbradney 1634
                        appPrefs.curCheckProfile = dc.attribute("currentProfile", tr("PostScript"));
1635
                        //#2516 work around old values until people wont have them anymore, not that these
1636
                        //translated strings should be going into prefs anyway!
1637
                        if (appPrefs.curCheckProfile == tr("Postscript"))
1638
                                appPrefs.curCheckProfile == tr("PostScript");
2889 cbradney 1639
                }
1640
                if (dc.tagName()=="CheckProfile")
1641
                {
1642
                        QString name=dc.attribute("Name");
3183 fschmid 1643
                        struct checkerPrefs checkerSettings;
4026 craig 1644
                        checkerSettings.ignoreErrors = static_cast<bool>(dc.attribute("ignoreErrors", "0").toInt());
1645
                        checkerSettings.autoCheck = static_cast<bool>(dc.attribute("autoCheck", "1").toInt());
1646
                        checkerSettings.checkGlyphs = static_cast<bool>(dc.attribute("checkGlyphs", "1").toInt());
1647
                        checkerSettings.checkOrphans = static_cast<bool>(dc.attribute("checkOrphans", "1").toInt());
1648
                        checkerSettings.checkOverflow = static_cast<bool>(dc.attribute("checkOverflow", "1").toInt());
1649
                        checkerSettings.checkPictures = static_cast<bool>(dc.attribute("checkPictures", "1").toInt());
1650
                        checkerSettings.checkResolution = static_cast<bool>(dc.attribute("checkResolution", "1").toInt());
1651
                        checkerSettings.checkTransparency = static_cast<bool>(dc.attribute("checkTransparency", "1").toInt());
1652
                        checkerSettings.minResolution = dc.attribute("minResolution", "72").toDouble();
5239 fschmid 1653
                        checkerSettings.maxResolution = dc.attribute("maxResolution", "4800").toDouble();
4026 craig 1654
                        checkerSettings.checkAnnotations = static_cast<bool>(dc.attribute("checkAnnotations", "0").toInt());
1655
                        checkerSettings.checkRasterPDF = static_cast<bool>(dc.attribute("checkRasterPDF", "1").toInt());
5270 subik 1656
                        checkerSettings.checkForGIF = static_cast<bool>(dc.attribute("checkForGIF", "1").toInt());
3183 fschmid 1657
                        appPrefs.checkerProfiles[name] = checkerSettings;
2889 cbradney 1658
                }
1659
                if (dc.tagName()=="PRINTER")
1660
                {
1661
                        appPrefs.PrinterName = dc.attribute("NAME");
1662
                        appPrefs.PrinterFile = dc.attribute("FILE");
1663
                        appPrefs.PrinterCommand = dc.attribute("COMMAND");
4026 craig 1664
                        appPrefs.ClipMargin = static_cast<bool>(dc.attribute("CLIPMARGIN", "1").toInt());
1665
                        appPrefs.GCRMode = static_cast<bool>(dc.attribute("GMODE", "1").toInt());
2889 cbradney 1666
                }
1667
                if (dc.tagName()=="PRINTPREVIEW")
1668
                {
4026 craig 1669
                        appPrefs.PrPr_Mode = static_cast<bool>(dc.attribute("Mode", "0").toInt());
1670
                        appPrefs.Gcr_Mode = static_cast<bool>(dc.attribute("GcrMode", "1").toInt());
5308 fschmid 1671
                        appPrefs.doOverprint = static_cast<bool>(dc.attribute("doOverprint", "0").toInt());
4026 craig 1672
                        appPrefs.PrPr_AlphaText = static_cast<bool>(dc.attribute("AlphaText", "0").toInt());
1673
                        appPrefs.PrPr_AlphaGraphics = static_cast<bool>(dc.attribute("AlphaGraphics", "0").toInt());
1674
                        appPrefs.PrPr_Transparency = static_cast<bool>(dc.attribute("Transparency", "0").toInt());
1675
                        appPrefs.PrPr_C = static_cast<bool>(dc.attribute("Cyan", "1").toInt());
1676
                        appPrefs.PrPr_M = static_cast<bool>(dc.attribute("Magenta", "1").toInt());
1677
                        appPrefs.PrPr_Y = static_cast<bool>(dc.attribute("Yellow", "1").toInt());
1678
                        appPrefs.PrPr_K = static_cast<bool>(dc.attribute("Black", "1").toInt());
2889 cbradney 1679
                }
1680
                if (dc.tagName()=="EXTERNAL")
1681
                {
5764 jghali 1682
                        int gsa1 = testGSAvailability(dc.attribute("GS", "gs"));
1683
                        int gsa2 = testGSAvailability(ghostscriptExecutable());
1684
                        if( (gsa1 == 0) || (gsa2 != 0) )
1685
                                setGhostscriptExecutable(dc.attribute("GS", "gs"));
4026 craig 1686
                        appPrefs.gs_AntiAliasText = static_cast<bool>(dc.attribute("AlphaText", "0").toInt());
1687
                        appPrefs.gs_AntiAliasGraphics = static_cast<bool>(dc.attribute("AlphaGraphics", "0").toInt());
1688
                        appPrefs.gs_Resolution = dc.attribute("Resolution", "72").toInt();
2889 cbradney 1689
                        setImageEditorExecutable(dc.attribute("GIMP", "gimp"));
5418 cbradney 1690
                        setExtBrowserExecutable(dc.attribute("WebBrowser", ""));
2889 cbradney 1691
                }
1692
                if (dc.tagName()=="HYPHEN")
1693
                {
1694
                        if (!dc.attribute("LANG", "").isEmpty())
1695
                                appPrefs.Language = dc.attribute("LANG");
4026 craig 1696
                        appPrefs.MinWordLen = dc.attribute("WORDLEN", "3").toInt();
1697
                        appPrefs.HyCount = dc.attribute("HYCOUNT", "2").toInt();
1698
                        appPrefs.Automatic = static_cast<bool>(dc.attribute("MODE", "1").toInt());
1699
                        appPrefs.AutoCheck = static_cast<bool>(dc.attribute("INMODE", "1").toInt());
2889 cbradney 1700
                }
1701
                if (dc.tagName()=="FONTS")
1702
                {
1703
                        QString tmpf = dc.attribute("FACE");
1704
                        QString newFont = "";
1705
                        if (!appPrefs.AvailFonts.find(tmpf))
1706
                        {
5243 cbradney 1707
                                ScCore->showSplash(false);
2889 cbradney 1708
                                MissingFont *dia = new MissingFont(0, tmpf, 0);
1709
                                dia->exec();
1710
                                newFont = dia->getReplacementFont();
1711
                                delete dia;
1712
                        }
1713
                        else
1714
                                newFont = dc.attribute("FACE");
1715
                        if (!newFont.isEmpty())
1716
                                appPrefs.toolSettings.defFont = newFont;
4026 craig 1717
                        appPrefs.toolSettings.defSize = qRound(dc.attribute("SIZE").toDouble() * 10.0);
1718
                        appPrefs.askBeforeSubstituite = static_cast<bool>(dc.attribute("AutomaticSubst", "1").toInt());
2889 cbradney 1719
                }
1720
                if (dc.tagName()=="FONT")
1721
                {
1722
                        if (appPrefs.AvailFonts.find(dc.attribute("NAME")))
1723
                        {
5387 avox 1724
                                appPrefs.AvailFonts[dc.attribute("NAME")]->embedPs(static_cast<bool>(dc.attribute("EMBED").toInt()));
1725
                                appPrefs.AvailFonts[dc.attribute("NAME")]->useFont(appPrefs.AvailFonts[dc.attribute("NAME")]->usable() && static_cast<bool>(dc.attribute("USE", "1").toInt()));
1726
                                appPrefs.AvailFonts[dc.attribute("NAME")]->subset(static_cast<bool>(dc.attribute("SUBSET", "0").toInt()));
2889 cbradney 1727
                        }
1728
                }
1729
                if (dc.tagName()=="COLOR")
1730
                {
1731
                        if (dc.hasAttribute("CMYK"))
1732
                                lf.setNamedColor(dc.attribute("CMYK"));
1733
                        else
1734
                                lf.fromQColor(QColor(dc.attribute("RGB")));
3051 fschmid 1735
                        if (dc.hasAttribute("Spot"))
4026 craig 1736
                                lf.setSpotColor(static_cast<bool>(dc.attribute("Spot").toInt()));
3051 fschmid 1737
                        else
1738
                                lf.setSpotColor(false);
3060 fschmid 1739
                        if (dc.hasAttribute("Register"))
4026 craig 1740
                                lf.setRegistrationColor(static_cast<bool>(dc.attribute("Register").toInt()));
3060 fschmid 1741
                        else
1742
                                lf.setRegistrationColor(false);
2889 cbradney 1743
                  appPrefs.DColors[dc.attribute("NAME")] = lf;
1744
                }
1745
                if (dc.tagName()=="Substitute")
1746
                  appPrefs.GFontSub[dc.attribute("Name")] = dc.attribute("Replace");
1747
                if (dc.tagName()=="COLORSET")
1748
                        appPrefs.CustomColorSets.append(dc.attribute("NAME"));
1749
                if (dc.tagName()=="DCOLORSET")
1750
                        appPrefs.DColorSet = dc.attribute("NAME");
1751
                if(dc.tagName()=="PDF")
1752
                {
4026 craig 1753
                        appPrefs.PDF_Options.Articles = static_cast<bool>(dc.attribute("Articles").toInt());
1754
                        appPrefs.PDF_Options.Thumbnails = static_cast<bool>(dc.attribute("Thumbnails").toInt());
1755
                        appPrefs.PDF_Options.Compress = static_cast<bool>(dc.attribute("Compress").toInt());
1756
                        appPrefs.PDF_Options.CompressMethod = dc.attribute("CMethod", "0").toInt();
1757
                        appPrefs.PDF_Options.Quality = dc.attribute("Quality", "0").toInt();
1758
                        appPrefs.PDF_Options.RecalcPic = static_cast<bool>(dc.attribute("RecalcPic").toInt());
1759
                        appPrefs.PDF_Options.Bookmarks = static_cast<bool>(dc.attribute("Bookmarks").toInt());
1760
                        appPrefs.PDF_Options.MirrorH = static_cast<bool>(dc.attribute("MirrorH").toInt());
1761
                        appPrefs.PDF_Options.MirrorV = static_cast<bool>(dc.attribute("MirrorV").toInt());
4649 fschmid 1762
                        appPrefs.PDF_Options.doClip = static_cast<bool>(dc.attribute("Clip").toInt());
4026 craig 1763
                        appPrefs.PDF_Options.RotateDeg = dc.attribute("RotateDeg", "0").toInt();
1764
                        appPrefs.PDF_Options.PresentMode = static_cast<bool>(dc.attribute("PresentMode").toInt());
1765
                        appPrefs.PDF_Options.PicRes = dc.attribute("PicRes").toInt();
1766
                        appPrefs.PDF_Options.Version = (PDFOptions::PDFVersion)dc.attribute("Version").toInt();
1767
                        appPrefs.PDF_Options.Resolution = dc.attribute("Resolution").toInt();
1768
                        appPrefs.PDF_Options.Binding = dc.attribute("Binding").toInt();
2889 cbradney 1769
                        appPrefs.PDF_Options.Datei = "";
4026 craig 1770
                        appPrefs.PDF_Options.isGrayscale = static_cast<bool>(dc.attribute("Grayscale", "0").toInt());
1771
                        appPrefs.PDF_Options.UseRGB = static_cast<bool>(dc.attribute("RGBMode", "0").toInt());
1772
                        appPrefs.PDF_Options.UseProfiles = static_cast<bool>(dc.attribute("UseProfiles", "0").toInt());
1773
                        appPrefs.PDF_Options.UseProfiles2 = static_cast<bool>(dc.attribute("UseProfiles2", "0").toInt());
1774
                        appPrefs.PDF_Options.Intent = dc.attribute("Intent", "1").toInt();
1775
                        appPrefs.PDF_Options.Intent2 = dc.attribute("Intent2", "1").toInt();
2889 cbradney 1776
                        appPrefs.PDF_Options.SolidProf = dc.attribute("SolidP", "");
1777
                        appPrefs.PDF_Options.ImageProf = dc.attribute("ImageP", "");
1778
                        appPrefs.PDF_Options.PrintProf = dc.attribute("PrintP", "");
1779
                        appPrefs.PDF_Options.Info = dc.attribute("InfoString", "");
4026 craig 1780
                        appPrefs.PDF_Options.BleedTop = dc.attribute("BTop", "0").toDouble();
1781
                        appPrefs.PDF_Options.BleedLeft = dc.attribute("BLeft", "0").toDouble();
1782
                        appPrefs.PDF_Options.BleedRight = dc.attribute("BRight", "0").toDouble();
1783
                        appPrefs.PDF_Options.BleedBottom = dc.attribute("BBottom", "0").toDouble();
1784
                        appPrefs.PDF_Options.EmbeddedI = static_cast<bool>(dc.attribute("ImagePr", "0").toInt());
2889 cbradney 1785
                        appPrefs.PDF_Options.PassOwner = dc.attribute("PassOwner", "");
1786
                        appPrefs.PDF_Options.PassUser = dc.attribute("PassUser", "");
4026 craig 1787
                        appPrefs.PDF_Options.Permissions = dc.attribute("Permissions", "-4").toInt();
1788
                        appPrefs.PDF_Options.Encrypt = static_cast<bool>(dc.attribute("Encrypt", "0").toInt());
1789
                        appPrefs.PDF_Options.useLayers = static_cast<bool>(dc.attribute("UseLayers", "0").toInt());
1790
                        appPrefs.PDF_Options.UseLPI = static_cast<bool>(dc.attribute("UseLpi", "0").toInt());
1791
                        appPrefs.PDF_Options.UseSpotColors = static_cast<bool>(dc.attribute("UseSpotColors", "1").toInt());
5320 fschmid 1792
                        appPrefs.PDF_Options.doOverprint = static_cast<bool>(dc.attribute("doOverprint", "0").toInt());
4026 craig 1793
                        appPrefs.PDF_Options.doMultiFile = static_cast<bool>(dc.attribute("doMultiFile", "0").toInt());
4197 fschmid 1794
                        appPrefs.PDF_Options.displayBookmarks = static_cast<bool>(dc.attribute("displayBookmarks", "0").toInt());
1795
                        appPrefs.PDF_Options.displayFullscreen = static_cast<bool>(dc.attribute("displayFullscreen", "0").toInt());
1796
                        appPrefs.PDF_Options.displayLayers = static_cast<bool>(dc.attribute("displayLayers", "0").toInt());
1797
                        appPrefs.PDF_Options.displayThumbs = static_cast<bool>(dc.attribute("displayThumbs", "0").toInt());
1798
                        appPrefs.PDF_Options.PageLayout = dc.attribute("PageLayout", "0").toInt();
1799
                        appPrefs.PDF_Options.openAction = dc.attribute("openAction", "");
2889 cbradney 1800
                        QDomNode PFO = DOC.firstChild();
4039 fschmid 1801
                        appPrefs.PDF_Options.LPISettings.clear();
2889 cbradney 1802
                        while(!PFO.isNull())
1803
                        {
1804
                                QDomElement pdfF = PFO.toElement();
1805
                                if(pdfF.tagName() == "LPI")
1806
                                {
1807
                                        struct LPIData lpo;
4026 craig 1808
                                        lpo.Angle = pdfF.attribute("Angle").toInt();
1809
                                        lpo.Frequency = pdfF.attribute("Frequency").toInt();
1810
                                        lpo.SpotFunc = pdfF.attribute("SpotFunction").toInt();
2889 cbradney 1811
                                        appPrefs.PDF_Options.LPISettings[pdfF.attribute("Color")] = lpo;
1812
                                }
1813
                                PFO = PFO.nextSibling();
1814
                        }
1815
                }
1816
                if(dc.tagName()=="DefaultItemAttributes")
1817
                {
1818
                        QDomNode DIA = DOC.firstChild();
1819
                        appPrefs.defaultItemAttributes.clear();
1820
                        while(!DIA.isNull())
1821
                        {
1822
                                QDomElement itemAttr = DIA.toElement();
1823
                                if(itemAttr.tagName() == "ItemAttribute")
1824
                                {
1825
                                        ObjectAttribute objattr;
1826
                                        objattr.name=itemAttr.attribute("Name");
1827
                                        objattr.type=itemAttr.attribute("Type");
1828
                                        objattr.value=itemAttr.attribute("Value");
1829
                                        objattr.parameter=itemAttr.attribute("Parameter");
1830
                                        objattr.relationship=itemAttr.attribute("Relationship");
1831
                                        objattr.relationshipto=itemAttr.attribute("RelationshipTo");
1832
                                        objattr.autoaddto=itemAttr.attribute("AutoAddTo");
1833
                                        appPrefs.defaultItemAttributes.append(objattr);
1834
                                }
1835
                                DIA = DIA.nextSibling();
1836
                        }
1837
                }
1838
                if(dc.tagName()=="TablesOfContents")
1839
                {
1840
                        QDomNode TOC = DOC.firstChild();
1841
                        appPrefs.defaultToCSetups.clear();
1842
                        while(!TOC.isNull())
1843
                        {
1844
                                QDomElement tocElem = TOC.toElement();
1845
                                if(tocElem.tagName() == "TableOfContents")
1846
                                {
1847
                                        ToCSetup tocsetup;
1848
                                        tocsetup.name=tocElem.attribute("Name");
1849
                                        tocsetup.itemAttrName=tocElem.attribute("ItemAttributeName");
1850
                                        tocsetup.frameName=tocElem.attribute("FrameName");
1851
                                        tocsetup.listNonPrintingFrames=tocElem.attribute("ListNonPrinting");
1852
                                        tocsetup.textStyle=tocElem.attribute("Style");
1853
                                        QString numberPlacement=tocElem.attribute("NumberPlacement");
1854
                                        if (numberPlacement=="Beginning")
1855
                                                tocsetup.pageLocation=Beginning;
1856
                                        if (numberPlacement=="End")
1857
                                                tocsetup.pageLocation=End;
1858
                                        if (numberPlacement=="NotShown")
1859
                                                tocsetup.pageLocation=NotShown;
1860
                                        appPrefs.defaultToCSetups.append(tocsetup);
1861
                                }
1862
                                TOC = TOC.nextSibling();
1863
                        }
1864
                }
1865
                // lorem ispum
1866
                if (dc.tagName() == "LoremIpsum")
1867
                {
4026 craig 1868
                        appPrefs.useStandardLI = static_cast<bool>(dc.attribute("useStandardLI", "0").toInt());
1869
                        appPrefs.paragraphsLI = dc.attribute("paragraphsLI", "10").toInt();
2889 cbradney 1870
                }
1871
                DOC=DOC.nextSibling();
1872
        }
1873
        if (appPrefs.GUI != "Default")
1874
                qApp->setStyle(QStyleFactory::create(appPrefs.GUI));
1875
        QFont apf = qApp->font();
1876
        apf.setPointSize(appPrefs.AppFontSize);
1877
        qApp->setFont(apf,true);
1878
        return true;
1879
}
3097 cbradney 1880
 
1881
void PrefsManager::initDefaultCheckerPrefs(CheckerPrefsList* cp)
1882
{
1883
        if (cp!=NULL)
1884
        {
1885
                struct checkerPrefs checkerSettings;
1886
                checkerSettings.ignoreErrors = false;
1887
                checkerSettings.autoCheck = true;
1888
                checkerSettings.checkGlyphs = true;
1889
                checkerSettings.checkOrphans = true;
1890
                checkerSettings.checkOverflow = true;
1891
                checkerSettings.checkPictures = true;
1892
                checkerSettings.checkResolution = true;
1893
                checkerSettings.checkTransparency = true;
1894
                checkerSettings.checkAnnotations = false;
1895
                checkerSettings.checkRasterPDF = true;
5270 subik 1896
                checkerSettings.checkForGIF = true;
3097 cbradney 1897
                checkerSettings.minResolution = 72.0;
5674 fschmid 1898
                checkerSettings.maxResolution = 2400.0;
3097 cbradney 1899
                //TODO Stop translating these into settings!!!!!!!!!
3142 cbradney 1900
                cp->insert( QT_TR_NOOP("PostScript"), checkerSettings);
3097 cbradney 1901
                cp->insert( QT_TR_NOOP("PDF 1.3"), checkerSettings);
1902
                checkerSettings.checkTransparency = false;
1903
                cp->insert( QT_TR_NOOP("PDF 1.4"), checkerSettings);
1904
                checkerSettings.checkTransparency