~ubuntu-branches/debian/sid/scribus/sid

« back to all changes in this revision

Viewing changes to scribus/plugins/fileloader/scribus13format/scribus13format.cpp

  • Committer: Package Import Robot
  • Author(s): Oleksandr Moskalenko
  • Date: 2012-02-09 21:50:56 UTC
  • mfrom: (1.1.6)
  • Revision ID: package-import@ubuntu.com-20120209215056-2wrx1ara0jbm7fi5
Tags: 1.4.0.dfsg+r17287-1
* New upstream stable release upload into Debian (Closes: #654703).
* Applied the Ubuntu armel patch.
* Removed non-free color swatches from resources.
* debian/control:
  - Moved icc-profiles from Recommends to Suggests (Closes: #655885).
  - Updated Standards-Version to 3.9.2.
  - Updated extended description per lintian warning.
* debian/rules:
  - Update mailcap (Closes: #630751). A request for mime.types update has
    been sent to the mime-support maintainer.
  - Added build-arch and build-indep targets per lintian warning.
* debian/patches:
  - top_cmakelists.patch - don't copy extra docs and changelogs.
  - scribus_cmakelists.patch - don't copy extra docs and changelogs.
  - scribus_cmakelists.patch - don't install the non-free "doc" dir.
  - profiles_cmakelists.patch - don't install non-free sRGB profile.
* debian/copyright: 
  - Converted to the DEP5 machine readable foramt.
  - Added licenses for free color swatches.

Show diffs side-by-side

added added

removed removed

Lines of Context:
1131
1131
                        {
1132
1132
                                PageItem * Its = m_Doc->Items->at(lc.key());
1133
1133
                                PageItem * Itn = m_Doc->Items->at(itemRemap[lc.value()]);
1134
 
                                if (Itn->prevInChain() || Its->nextInChain()) 
 
1134
                                if (!Its->testLinkCandidate(Itn))
1135
1135
                                {
1136
1136
                                        qDebug("scribus13format: corruption in linked textframes detected");
1137
1137
                                        continue;
1150
1150
                while (m_Doc->FirstAuto->prevInChain())
1151
1151
                        m_Doc->FirstAuto = m_Doc->FirstAuto->prevInChain();
1152
1152
        }
 
1153
        
 
1154
        // fix legacy char formatting
 
1155
        for (int i = 0; i < m_Doc->DocItems.count(); ++i)
 
1156
        {
 
1157
                PageItem* item = m_Doc->DocItems.at(i);
 
1158
                if (item->prevInChain() == 0 && item->itemText.length() > 0)
 
1159
                        item->itemText.fixLegacyFormatting();
 
1160
        }
 
1161
        for (int i = 0; i < m_Doc->MasterItems.count(); ++i)
 
1162
        {
 
1163
                PageItem* item = m_Doc->MasterItems.at(i);
 
1164
                if (item->prevInChain() == 0 && item->itemText.length() > 0)
 
1165
                        item->itemText.fixLegacyFormatting();
 
1166
        }
 
1167
        for (int i = 0; i < m_Doc->FrameItems.count(); ++i)
 
1168
        {
 
1169
                PageItem* item = m_Doc->FrameItems.at(i);
 
1170
                if (item->prevInChain() == 0 && item->itemText.length() > 0)
 
1171
                        item->itemText.fixLegacyFormatting();
 
1172
        }
1153
1173
 
1154
1174
        // start auto save timer if needed
1155
1175
        if (m_Doc->AutoSave  && ScCore->usingGUI())
1169
1189
 
1170
1190
bool Scribus13Format::saveFile(const QString & fileName, const FileFormat & /* fmt */)
1171
1191
{
1172
 
        QString text, tf, tf2, tc, tc2;
1173
 
        QDomDocument docu("scribus");
1174
 
        QString st="<SCRIBUSUTF8NEW></SCRIBUSUTF8NEW>";
1175
 
        docu.setContent(st);
1176
 
        QDomElement elem=docu.documentElement();
1177
 
        elem.setAttribute("Version", QString(VERSION));
1178
 
        QDomElement dc=docu.createElement("DOCUMENT");
1179
 
        dc.setAttribute("ANZPAGES",m_Doc->DocPages.count());
1180
 
        dc.setAttribute("PAGEWIDTH",m_Doc->pageWidth);
1181
 
        dc.setAttribute("PAGEHEIGHT",m_Doc->pageHeight);
1182
 
        dc.setAttribute("BORDERLEFT",m_Doc->pageMargins.Left);
1183
 
        dc.setAttribute("BORDERRIGHT",m_Doc->pageMargins.Right);
1184
 
        dc.setAttribute("BORDERTOP",m_Doc->pageMargins.Top);
1185
 
        dc.setAttribute("BORDERBOTTOM",m_Doc->pageMargins.Bottom);
1186
 
        dc.setAttribute("PRESET",m_Doc->marginPreset);
1187
 
        dc.setAttribute("ORIENTATION",m_Doc->PageOri);
1188
 
        dc.setAttribute("PAGESIZE",m_Doc->m_pageSize);
1189
 
        dc.setAttribute("FIRSTNUM",m_Doc->FirstPnum);
1190
 
        dc.setAttribute("BOOK", m_Doc->currentPageLayout);
1191
 
        if(m_Doc->usesAutomaticTextFrames())
1192
 
                dc.setAttribute("AUTOTEXT",1);
1193
 
        dc.setAttribute("AUTOSPALTEN",m_Doc->PageSp);
1194
 
        dc.setAttribute("ABSTSPALTEN",m_Doc->PageSpa);
1195
 
        dc.setAttribute("UNITS",m_Doc->unitIndex());
1196
 
        dc.setAttribute("DFONT",m_Doc->toolSettings.defFont);
1197
 
        dc.setAttribute("DSIZE",m_Doc->toolSettings.defSize / 10.0);
1198
 
        dc.setAttribute("DCOL",m_Doc->toolSettings.dCols);
1199
 
        dc.setAttribute("DGAP",m_Doc->toolSettings.dGap);
1200
 
        dc.setAttribute("TabFill",m_Doc->toolSettings.tabFillChar);
1201
 
        dc.setAttribute("TabWidth",m_Doc->toolSettings.dTabWidth);
1202
 
        dc.setAttribute("AUTHOR",m_Doc->documentInfo.getAuthor());
1203
 
        dc.setAttribute("COMMENTS",m_Doc->documentInfo.getComments());
1204
 
        dc.setAttribute("KEYWORDS",m_Doc->documentInfo.getKeywords());
1205
 
        dc.setAttribute("PUBLISHER",m_Doc->documentInfo.getPublisher());
1206
 
        dc.setAttribute("DOCDATE",m_Doc->documentInfo.getDate());
1207
 
        dc.setAttribute("DOCTYPE",m_Doc->documentInfo.getType());
1208
 
        dc.setAttribute("DOCFORMAT",m_Doc->documentInfo.getFormat());
1209
 
        dc.setAttribute("DOCIDENT",m_Doc->documentInfo.getIdent());
1210
 
        dc.setAttribute("DOCSOURCE",m_Doc->documentInfo.getSource());
1211
 
        dc.setAttribute("DOCLANGINFO",m_Doc->documentInfo.getLangInfo());
1212
 
        dc.setAttribute("DOCRELATION",m_Doc->documentInfo.getRelation());
1213
 
        dc.setAttribute("DOCCOVER",m_Doc->documentInfo.getCover());
1214
 
        dc.setAttribute("DOCRIGHTS",m_Doc->documentInfo.getRights());
1215
 
        dc.setAttribute("DOCCONTRIB",m_Doc->documentInfo.getContrib());
1216
 
        dc.setAttribute("TITLE",m_Doc->documentInfo.getTitle());
1217
 
        dc.setAttribute("VHOCH",m_Doc->typographicSettings.valueSuperScript);
1218
 
        dc.setAttribute("VHOCHSC",m_Doc->typographicSettings.scalingSuperScript);
1219
 
        dc.setAttribute("VTIEF",m_Doc->typographicSettings.valueSubScript);
1220
 
        dc.setAttribute("VTIEFSC",m_Doc->typographicSettings.scalingSubScript);
1221
 
        dc.setAttribute("VKAPIT",m_Doc->typographicSettings.valueSmallCaps);
1222
 
        dc.setAttribute("BASEGRID",m_Doc->typographicSettings.valueBaseGrid);
1223
 
        dc.setAttribute("BASEO", m_Doc->typographicSettings.offsetBaseGrid);
1224
 
        dc.setAttribute("AUTOL", m_Doc->typographicSettings.autoLineSpacing);
1225
 
        dc.setAttribute("UnderlinePos", m_Doc->typographicSettings.valueUnderlinePos);
1226
 
        dc.setAttribute("UnderlineWidth", m_Doc->typographicSettings.valueUnderlineWidth);
1227
 
        dc.setAttribute("StrikeThruPos", m_Doc->typographicSettings.valueStrikeThruPos);
1228
 
        dc.setAttribute("StrikeThruWidth", m_Doc->typographicSettings.valueStrikeThruWidth);
1229
 
        dc.setAttribute("GROUPC",m_Doc->GroupCounter);
1230
 
        dc.setAttribute("HCMS", static_cast<int>(m_Doc->HasCMS));
1231
 
        dc.setAttribute("DPSo", static_cast<int>(m_Doc->CMSSettings.SoftProofOn));
1232
 
        dc.setAttribute("DPSFo", static_cast<int>(m_Doc->CMSSettings.SoftProofFullOn));
1233
 
        dc.setAttribute("DPuse", static_cast<int>(m_Doc->CMSSettings.CMSinUse));
1234
 
        dc.setAttribute("DPgam", static_cast<int>(m_Doc->CMSSettings.GamutCheck));
1235
 
        dc.setAttribute("DPbla", static_cast<int>(m_Doc->CMSSettings.BlackPoint));
1236
 
        dc.setAttribute("DPMo",m_Doc->CMSSettings.DefaultMonitorProfile);
1237
 
        dc.setAttribute("DPPr",m_Doc->CMSSettings.DefaultPrinterProfile);
1238
 
        dc.setAttribute("DPIn",m_Doc->CMSSettings.DefaultImageRGBProfile);
1239
 
        dc.setAttribute("DPInCMYK",m_Doc->CMSSettings.DefaultImageCMYKProfile);
1240
 
        dc.setAttribute("DPIn2",m_Doc->CMSSettings.DefaultSolidColorRGBProfile);
1241
 
        dc.setAttribute("DPIn3",m_Doc->CMSSettings.DefaultSolidColorCMYKProfile);
1242
 
        dc.setAttribute("DISc",m_Doc->CMSSettings.DefaultIntentColors);
1243
 
        dc.setAttribute("DIIm",m_Doc->CMSSettings.DefaultIntentImages);
1244
 
        dc.setAttribute("ALAYER", m_Doc->activeLayer());
1245
 
        dc.setAttribute("LANGUAGE", m_Doc->Language);
1246
 
        dc.setAttribute("MINWORDLEN", m_Doc->MinWordLen);
1247
 
        dc.setAttribute("HYCOUNT", m_Doc->HyCount);
1248
 
        dc.setAttribute("AUTOMATIC", static_cast<int>(m_Doc->Automatic));
1249
 
        dc.setAttribute("AUTOCHECK", static_cast<int>(m_Doc->AutoCheck));
1250
 
        dc.setAttribute("GUIDELOCK", static_cast<int>(m_Doc->GuideLock));
1251
 
        dc.setAttribute("SnapToGuides", static_cast<int>(m_Doc->SnapGuides));
1252
 
        dc.setAttribute("SnapToGrid", static_cast<int>(m_Doc->useRaster));
1253
 
        dc.setAttribute("MINGRID", m_Doc->guidesSettings.minorGrid);
1254
 
        dc.setAttribute("MAJGRID", m_Doc->guidesSettings.majorGrid);
1255
 
        dc.setAttribute("SHOWGRID", static_cast<int>(m_Doc->guidesSettings.gridShown));
1256
 
        dc.setAttribute("SHOWGUIDES", static_cast<int>(m_Doc->guidesSettings.guidesShown));
1257
 
        dc.setAttribute("showcolborders", static_cast<int>(m_Doc->guidesSettings.colBordersShown));
1258
 
        dc.setAttribute("SHOWFRAME", static_cast<int>(m_Doc->guidesSettings.framesShown));
1259
 
        dc.setAttribute("SHOWLAYERM", static_cast<int>(m_Doc->guidesSettings.layerMarkersShown));
1260
 
        dc.setAttribute("SHOWMARGIN", static_cast<int>(m_Doc->guidesSettings.marginsShown));
1261
 
        dc.setAttribute("SHOWBASE", static_cast<int>(m_Doc->guidesSettings.baseShown));
1262
 
        dc.setAttribute("SHOWPICT", static_cast<int>(m_Doc->guidesSettings.showPic));
1263
 
        dc.setAttribute("SHOWControl", static_cast<int>(m_Doc->guidesSettings.showControls));
1264
 
        dc.setAttribute("SHOWLINK", static_cast<int>(m_Doc->guidesSettings.linkShown));
1265
 
        dc.setAttribute("rulerMode", static_cast<int>(m_Doc->guidesSettings.rulerMode));
1266
 
        dc.setAttribute("showrulers", static_cast<int>(m_Doc->guidesSettings.rulersShown));
1267
 
        dc.setAttribute("rulerXoffset", m_Doc->rulerXoffset);
1268
 
        dc.setAttribute("rulerYoffset", m_Doc->rulerYoffset);
1269
 
        dc.setAttribute("GuideRad", m_Doc->guidesSettings.guideRad);
1270
 
        dc.setAttribute("GRAB",m_Doc->guidesSettings.grabRad);
1271
 
        dc.setAttribute("POLYC", m_Doc->toolSettings.polyC);
1272
 
        dc.setAttribute("POLYF", m_Doc->toolSettings.polyF);
1273
 
        dc.setAttribute("POLYR", m_Doc->toolSettings.polyR);
1274
 
        dc.setAttribute("POLYFD", m_Doc->toolSettings.polyFd);
1275
 
        dc.setAttribute("POLYS", static_cast<int>(m_Doc->toolSettings.polyS));
1276
 
        dc.setAttribute("AutoSave", static_cast<int>(m_Doc->AutoSave));
1277
 
        dc.setAttribute("AutoSaveTime", m_Doc->AutoSaveTime);
1278
 
        dc.setAttribute("ScratchBottom", m_Doc->scratch.Bottom);
1279
 
        dc.setAttribute("ScratchLeft", m_Doc->scratch.Left);
1280
 
        dc.setAttribute("ScratchRight", m_Doc->scratch.Right);
1281
 
        dc.setAttribute("ScratchTop", m_Doc->scratch.Top);
1282
 
        dc.setAttribute("StartArrow", m_Doc->toolSettings.dStartArrow);
1283
 
        dc.setAttribute("EndArrow", m_Doc->toolSettings.dEndArrow);
1284
 
        dc.setAttribute("PEN",m_Doc->toolSettings.dPen);
1285
 
        dc.setAttribute("BRUSH",m_Doc->toolSettings.dBrush);
1286
 
        dc.setAttribute("PENLINE",m_Doc->toolSettings.dPenLine);
1287
 
        dc.setAttribute("PENTEXT",m_Doc->toolSettings.dPenText);
1288
 
        dc.setAttribute("StrokeText",m_Doc->toolSettings.dStrokeText);
1289
 
        dc.setAttribute("TextBackGround", m_Doc->toolSettings.dTextBackGround);
1290
 
        dc.setAttribute("TextLineColor", m_Doc->toolSettings.dTextLineColor);
1291
 
        dc.setAttribute("TextBackGroundShade", m_Doc->toolSettings.dTextBackGroundShade);
1292
 
        dc.setAttribute("TextLineShade", m_Doc->toolSettings.dTextLineShade);
1293
 
        dc.setAttribute("TextPenShade", m_Doc->toolSettings.dTextPenShade);
1294
 
        dc.setAttribute("TextStrokeShade", m_Doc->toolSettings.dTextStrokeShade);
1295
 
        dc.setAttribute("STIL",m_Doc->toolSettings.dLineArt);
1296
 
        dc.setAttribute("STILLINE",m_Doc->toolSettings.dLstyleLine);
1297
 
        dc.setAttribute("WIDTH",m_Doc->toolSettings.dWidth);
1298
 
        dc.setAttribute("WIDTHLINE",m_Doc->toolSettings.dWidthLine);
1299
 
        dc.setAttribute("PENSHADE",m_Doc->toolSettings.dShade2);
1300
 
        dc.setAttribute("LINESHADE",m_Doc->toolSettings.dShadeLine);
1301
 
        dc.setAttribute("BRUSHSHADE",m_Doc->toolSettings.dShade);
1302
 
        dc.setAttribute("MAGMIN",m_Doc->toolSettings.magMin);
1303
 
        dc.setAttribute("MAGMAX",m_Doc->toolSettings.magMax);
1304
 
        dc.setAttribute("MAGSTEP",m_Doc->toolSettings.magStep);
1305
 
        dc.setAttribute("CPICT",m_Doc->toolSettings.dBrushPict);
1306
 
        dc.setAttribute("PICTSHADE",m_Doc->toolSettings.shadePict);
1307
 
        dc.setAttribute("PICTSCX",m_Doc->toolSettings.scaleX);
1308
 
        dc.setAttribute("PICTSCY",m_Doc->toolSettings.scaleY);
1309
 
        dc.setAttribute("PSCALE", static_cast<int>(m_Doc->toolSettings.scaleType));
1310
 
        dc.setAttribute("PASPECT", static_cast<int>(m_Doc->toolSettings.aspectRatio));
1311
 
        dc.setAttribute("EmbeddedPath", static_cast<int>(m_Doc->toolSettings.useEmbeddedPath));
1312
 
        dc.setAttribute("HalfRes", m_Doc->toolSettings.lowResType);
1313
 
        dc.setAttribute("MINORC",m_Doc->guidesSettings.minorColor.name());
1314
 
        dc.setAttribute("MAJORC",m_Doc->guidesSettings.majorColor.name());
1315
 
        dc.setAttribute("GuideC", m_Doc->guidesSettings.guideColor.name());
1316
 
        dc.setAttribute("BaseC", m_Doc->guidesSettings.baseColor.name());
1317
 
        dc.setAttribute("GuideZ", m_Doc->guidesSettings.guideRad);
1318
 
        dc.setAttribute("BACKG", static_cast<int>(m_Doc->guidesSettings.before));
1319
 
        dc.setAttribute("PAGEC",m_Doc->papColor.name());
1320
 
        dc.setAttribute("MARGC",m_Doc->guidesSettings.margColor.name());
1321
 
        dc.setAttribute("RANDF", static_cast<int>(m_Doc->marginColored));
1322
 
        dc.setAttribute("currentProfile", m_Doc->curCheckProfile);
1323
 
        CheckerPrefsList::Iterator itcp;
1324
 
        CheckerPrefsList::Iterator itcpend=m_Doc->checkerProfiles.end();
1325
 
        for (itcp = m_Doc->checkerProfiles.begin(); itcp != itcpend; ++itcp)
1326
 
        {
1327
 
                QDomElement dc79a=docu.createElement("CheckProfile");
1328
 
                dc79a.setAttribute("Name",itcp.key());
1329
 
                dc79a.setAttribute("ignoreErrors", static_cast<int>(itcp.value().ignoreErrors));
1330
 
                dc79a.setAttribute("autoCheck", static_cast<int>(itcp.value().autoCheck));
1331
 
                dc79a.setAttribute("checkGlyphs", static_cast<int>(itcp.value().checkGlyphs));
1332
 
                dc79a.setAttribute("checkOrphans", static_cast<int>(itcp.value().checkOrphans));
1333
 
                dc79a.setAttribute("checkOverflow", static_cast<int>(itcp.value().checkOverflow));
1334
 
                dc79a.setAttribute("checkPictures", static_cast<int>(itcp.value().checkPictures));
1335
 
                dc79a.setAttribute("checkResolution", static_cast<int>(itcp.value().checkResolution));
1336
 
                dc79a.setAttribute("checkTransparency", static_cast<int>(itcp.value().checkTransparency));
1337
 
                dc79a.setAttribute("minResolution",itcp.value().minResolution);
1338
 
                dc79a.setAttribute("maxResolution",itcp.value().maxResolution);
1339
 
                dc79a.setAttribute("checkAnnotations", static_cast<int>(itcp.value().checkAnnotations));
1340
 
                dc79a.setAttribute("checkRasterPDF", static_cast<int>(itcp.value().checkRasterPDF));
1341
 
                dc79a.setAttribute("checkForGIF", static_cast<int>(itcp.value().checkForGIF));
1342
 
                dc.appendChild(dc79a);
1343
 
        }
1344
 
        QMap<QString,multiLine>::Iterator itMU;
1345
 
        for (itMU = m_Doc->MLineStyles.begin(); itMU != m_Doc->MLineStyles.end(); ++itMU)
1346
 
        {
1347
 
                QDomElement MuL=docu.createElement("MultiLine");
1348
 
                MuL.setAttribute("Name",itMU.key());
1349
 
                multiLine ml = itMU.value();
1350
 
                multiLine::iterator itMU2;
1351
 
                for (itMU2 = ml.begin(); itMU2 != ml.end(); ++itMU2)
1352
 
                {
1353
 
                        QDomElement SuL=docu.createElement("SubLine");
1354
 
                        SuL.setAttribute("Color", (*itMU2).Color);
1355
 
                        SuL.setAttribute("Shade", (*itMU2).Shade);
1356
 
                        SuL.setAttribute("Dash", (*itMU2).Dash);
1357
 
                        SuL.setAttribute("LineEnd", (*itMU2).LineEnd);
1358
 
                        SuL.setAttribute("LineJoin", (*itMU2).LineJoin);
1359
 
                        SuL.setAttribute("Width", (*itMU2).Width);
1360
 
                        MuL.appendChild(SuL);
1361
 
                }
1362
 
                dc.appendChild(MuL);
1363
 
        }
1364
 
        QList<ArrowDesc>::Iterator itar;
1365
 
        for (itar = m_Doc->arrowStyles.begin(); itar != m_Doc->arrowStyles.end(); ++itar)
1366
 
        {
1367
 
                if ((*itar).userArrow)
1368
 
                {
1369
 
                        QDomElement ar=docu.createElement("Arrows");
1370
 
                        ar.setAttribute("NumPoints", (*itar).points.size());
1371
 
                        QString arp = "";
1372
 
                        QString tmp, tmpy;
1373
 
                        double xa, ya;
1374
 
                        for (uint nxx = 0; nxx < (*itar).points.size(); ++nxx)
1375
 
                        {
1376
 
                                (*itar).points.point(nxx, &xa, &ya);
1377
 
                                arp += tmp.setNum(xa) + " " + tmpy.setNum(ya) + " ";
1378
 
                        }
1379
 
                        ar.setAttribute("Points", arp);
1380
 
                        ar.setAttribute("Name", (*itar).name);
1381
 
                        dc.appendChild(ar);
1382
 
                }
1383
 
        }
1384
 
        QMap<QString,QString>::Iterator itja;
1385
 
        for (itja = m_Doc->JavaScripts.begin(); itja != m_Doc->JavaScripts.end(); ++itja)
1386
 
        {
1387
 
                QDomElement jav=docu.createElement("JAVA");
1388
 
                jav.setAttribute("NAME",itja.key());
1389
 
                jav.setAttribute("SCRIPT",itja.value());
1390
 
                dc.appendChild(jav);
1391
 
        }
1392
 
        QList<ScribusDoc::BookMa>::Iterator itbm;
1393
 
        for (itbm = m_Doc->BookMarks.begin(); itbm != m_Doc->BookMarks.end(); ++itbm)
1394
 
        {
1395
 
                QDomElement fn=docu.createElement("Bookmark");
1396
 
                fn.setAttribute("Title",(*itbm).Title);
1397
 
                fn.setAttribute("Text",(*itbm).Text);
1398
 
                fn.setAttribute("Aktion",(*itbm).Aktion);
1399
 
                fn.setAttribute("ItemNr", (*itbm).ItemNr);
1400
 
                fn.setAttribute("Element", (*itbm).PageObject->ItemNr);
1401
 
                fn.setAttribute("First", (*itbm).First);
1402
 
                fn.setAttribute("Last", (*itbm).Last);
1403
 
                fn.setAttribute("Prev", (*itbm).Prev);
1404
 
                fn.setAttribute("Next", (*itbm).Next);
1405
 
                fn.setAttribute("Parent", (*itbm).Parent);
1406
 
                dc.appendChild(fn);
1407
 
        }
1408
 
        ColorList::Iterator itc;
1409
 
        for (itc = m_Doc->PageColors.begin(); itc != m_Doc->PageColors.end(); ++itc)
1410
 
        {
1411
 
                QDomElement co=docu.createElement("COLOR");
1412
 
                co.setAttribute("NAME",itc.key());
1413
 
                if (m_Doc->PageColors[itc.key()].getColorModel() == colorModelRGB)
1414
 
                        co.setAttribute("RGB",m_Doc->PageColors[itc.key()].nameRGB());
1415
 
                else
1416
 
                        co.setAttribute("CMYK",m_Doc->PageColors[itc.key()].nameCMYK());
1417
 
                co.setAttribute("Spot",static_cast<int>(m_Doc->PageColors[itc.key()].isSpotColor()));
1418
 
                co.setAttribute("Register",static_cast<int>(m_Doc->PageColors[itc.key()].isRegistrationColor()));
1419
 
                dc.appendChild(co);
1420
 
        }
1421
 
//      if (m_Doc->docParagraphStyles.count() > 5)
1422
 
        {
1423
 
                for (int ff = 0; ff < m_Doc->paragraphStyles().count(); ++ff)
1424
 
                {
1425
 
                        QDomElement fo=docu.createElement("STYLE");
1426
 
                        fo.setAttribute("NAME",m_Doc->paragraphStyles()[ff].name());
1427
 
                        fo.setAttribute("ALIGN",m_Doc->paragraphStyles()[ff].alignment());
1428
 
                        fo.setAttribute("LINESPMode",m_Doc->paragraphStyles()[ff].lineSpacingMode());
1429
 
                        fo.setAttribute("LINESP",m_Doc->paragraphStyles()[ff].lineSpacing());
1430
 
                        fo.setAttribute("INDENT",m_Doc->paragraphStyles()[ff].leftMargin());
1431
 
                        fo.setAttribute("RMARGIN",m_Doc->paragraphStyles()[ff].rightMargin());
1432
 
                        fo.setAttribute("FIRST",m_Doc->paragraphStyles()[ff].firstIndent());
1433
 
                        fo.setAttribute("VOR",m_Doc->paragraphStyles()[ff].gapBefore());
1434
 
                        fo.setAttribute("NACH",m_Doc->paragraphStyles()[ff].gapAfter());
1435
 
                        fo.setAttribute("FONT",m_Doc->paragraphStyles()[ff].charStyle().font().scName());
1436
 
                        fo.setAttribute("FONTSIZE",m_Doc->paragraphStyles()[ff].charStyle().fontSize() / 10.0);
1437
 
                        fo.setAttribute("DROP", static_cast<int>(m_Doc->paragraphStyles()[ff].hasDropCap()));
1438
 
                        fo.setAttribute("DROPLIN", m_Doc->paragraphStyles()[ff].dropCapLines());
1439
 
                        fo.setAttribute("DROPDIST", m_Doc->paragraphStyles()[ff].dropCapOffset());
1440
 
                        fo.setAttribute("EFFECT", m_Doc->paragraphStyles()[ff].charStyle().effects());
1441
 
                        if (m_Doc->paragraphStyles()[ff].tabValues().count() != 0)
1442
 
                        {
1443
 
                                for (int a = 0; a < m_Doc->paragraphStyles()[ff].tabValues().count(); ++a)
1444
 
                                {
1445
 
                                        QDomElement tabs = docu.createElement("Tabs");
1446
 
                                        tabs.setAttribute("Type", (m_Doc->paragraphStyles()[ff].tabValues().at(a)).tabType);
1447
 
                                        tabs.setAttribute("Pos", (m_Doc->paragraphStyles()[ff].tabValues().at(a)).tabPosition);
1448
 
                                        QString tabCh = "";
1449
 
                                        if (!(m_Doc->paragraphStyles()[ff].tabValues().at(a)).tabFillChar.isNull())
1450
 
                                                tabCh = QString((m_Doc->paragraphStyles()[ff].tabValues().at(a)).tabFillChar);
1451
 
                                        tabs.setAttribute("Fill", tabCh);
1452
 
                                        fo.appendChild(tabs);
1453
 
                                }
1454
 
                        }
1455
 
                        fo.setAttribute("FCOLOR",m_Doc->paragraphStyles()[ff].charStyle().fillColor());
1456
 
                        fo.setAttribute("FSHADE",m_Doc->paragraphStyles()[ff].charStyle().fillShade());
1457
 
                        fo.setAttribute("SCOLOR",m_Doc->paragraphStyles()[ff].charStyle().strokeColor());
1458
 
                        fo.setAttribute("SSHADE",m_Doc->paragraphStyles()[ff].charStyle().strokeShade());
1459
 
                        fo.setAttribute("BASE", static_cast<int>(m_Doc->paragraphStyles()[ff].lineSpacingMode() == ParagraphStyle::BaselineGridLineSpacing));
1460
 
                        fo.setAttribute("TXTSHX",m_Doc->paragraphStyles()[ff].charStyle().shadowXOffset() / 10.0);
1461
 
                        fo.setAttribute("TXTSHY",m_Doc->paragraphStyles()[ff].charStyle().shadowYOffset() / 10.0);
1462
 
                        fo.setAttribute("TXTOUT",m_Doc->paragraphStyles()[ff].charStyle().outlineWidth() / 10.0);
1463
 
                        fo.setAttribute("TXTULP",m_Doc->paragraphStyles()[ff].charStyle().underlineOffset() / 10.0);
1464
 
                        fo.setAttribute("TXTULW",m_Doc->paragraphStyles()[ff].charStyle().underlineWidth() / 10.0);
1465
 
                        fo.setAttribute("TXTSTP",m_Doc->paragraphStyles()[ff].charStyle().strikethruOffset() / 10.0);
1466
 
                        fo.setAttribute("TXTSTW",m_Doc->paragraphStyles()[ff].charStyle().strikethruWidth() / 10.0);
1467
 
                        fo.setAttribute("SCALEH",m_Doc->paragraphStyles()[ff].charStyle().scaleH() / 10.0);
1468
 
                        fo.setAttribute("SCALEV",m_Doc->paragraphStyles()[ff].charStyle().scaleV() / 10.0);
1469
 
                        fo.setAttribute("BASEO",m_Doc->paragraphStyles()[ff].charStyle().baselineOffset() / 10.0);
1470
 
                        fo.setAttribute("KERN",m_Doc->paragraphStyles()[ff].charStyle().tracking() / 10.0);
1471
 
                        dc.appendChild(fo);
1472
 
                }
1473
 
        }
1474
 
        uint layerCount=m_Doc->layerCount();
1475
 
        for (uint lay = 0; lay < layerCount; ++lay)
1476
 
        {
1477
 
                QDomElement la = docu.createElement("LAYERS");
1478
 
                la.setAttribute("NUMMER",m_Doc->Layers[lay].LNr);
1479
 
                la.setAttribute("LEVEL",m_Doc->Layers[lay].Level);
1480
 
                la.setAttribute("NAME",m_Doc->Layers[lay].Name);
1481
 
                la.setAttribute("SICHTBAR", static_cast<int>(m_Doc->Layers[lay].isViewable));
1482
 
                la.setAttribute("DRUCKEN", static_cast<int>(m_Doc->Layers[lay].isPrintable));
1483
 
                la.setAttribute("EDIT", static_cast<int>(m_Doc->Layers[lay].isEditable));
1484
 
                la.setAttribute("FLOW", static_cast<int>(m_Doc->Layers[lay].flowControl));
1485
 
                la.setAttribute("TRANS", m_Doc->Layers[lay].transparency);
1486
 
                la.setAttribute("BLEND", m_Doc->Layers[lay].blendMode);
1487
 
                la.setAttribute("OUTL", static_cast<int>(m_Doc->Layers[lay].outlineMode));
1488
 
                la.setAttribute("LAYERC",m_Doc->Layers[lay].markerColor.name());
1489
 
                dc.appendChild(la);
1490
 
        }
1491
 
        QDomElement pdf = docu.createElement("PDF");
1492
 
        pdf.setAttribute("Thumbnails", static_cast<int>(m_Doc->PDF_Options.Thumbnails));
1493
 
        pdf.setAttribute("Articles", static_cast<int>(m_Doc->PDF_Options.Articles));
1494
 
        pdf.setAttribute("Bookmarks", static_cast<int>(m_Doc->PDF_Options.Bookmarks));
1495
 
        pdf.setAttribute("Compress", static_cast<int>(m_Doc->PDF_Options.Compress));
1496
 
        pdf.setAttribute("CMethod", m_Doc->PDF_Options.CompressMethod);
1497
 
        pdf.setAttribute("Quality", m_Doc->PDF_Options.Quality);
1498
 
        pdf.setAttribute("MirrorH", static_cast<int>(m_Doc->PDF_Options.MirrorH));
1499
 
        pdf.setAttribute("MirrorV", static_cast<int>(m_Doc->PDF_Options.MirrorV));
1500
 
        pdf.setAttribute("Clip", static_cast<int>(m_Doc->PDF_Options.doClip));
1501
 
        pdf.setAttribute("RotateDeg", static_cast<int>(m_Doc->PDF_Options.RotateDeg));
1502
 
        pdf.setAttribute("PresentMode", static_cast<int>(m_Doc->PDF_Options.PresentMode));
1503
 
        pdf.setAttribute("RecalcPic", static_cast<int>(m_Doc->PDF_Options.RecalcPic));
1504
 
        pdf.setAttribute("Grayscale", static_cast<int>(m_Doc->PDF_Options.isGrayscale));
1505
 
        pdf.setAttribute("RGBMode", static_cast<int>(m_Doc->PDF_Options.UseRGB));
1506
 
        pdf.setAttribute("UseProfiles", static_cast<int>(m_Doc->PDF_Options.UseProfiles));
1507
 
        pdf.setAttribute("UseProfiles2", static_cast<int>(m_Doc->PDF_Options.UseProfiles2));
1508
 
        pdf.setAttribute("Binding", m_Doc->PDF_Options.Binding);
1509
 
        pdf.setAttribute("PicRes", m_Doc->PDF_Options.PicRes);
1510
 
        pdf.setAttribute("Resolution", m_Doc->PDF_Options.Resolution);
1511
 
        pdf.setAttribute("Version", m_Doc->PDF_Options.Version);
1512
 
        pdf.setAttribute("Intent", m_Doc->PDF_Options.Intent);
1513
 
        pdf.setAttribute("Intent2", m_Doc->PDF_Options.Intent2);
1514
 
        pdf.setAttribute("SolidP", m_Doc->PDF_Options.SolidProf);
1515
 
        pdf.setAttribute("ImageP", m_Doc->PDF_Options.ImageProf);
1516
 
        pdf.setAttribute("PrintP", m_Doc->PDF_Options.PrintProf);
1517
 
        pdf.setAttribute("InfoString", m_Doc->PDF_Options.Info);
1518
 
        pdf.setAttribute("BTop", m_Doc->PDF_Options.bleeds.Top);
1519
 
        pdf.setAttribute("BLeft", m_Doc->PDF_Options.bleeds.Left);
1520
 
        pdf.setAttribute("BRight", m_Doc->PDF_Options.bleeds.Right);
1521
 
        pdf.setAttribute("BBottom", m_Doc->PDF_Options.bleeds.Bottom);
1522
 
        pdf.setAttribute("ImagePr", static_cast<int>(m_Doc->PDF_Options.EmbeddedI));
1523
 
        pdf.setAttribute("PassOwner", m_Doc->PDF_Options.PassOwner);
1524
 
        pdf.setAttribute("PassUser", m_Doc->PDF_Options.PassUser);
1525
 
        pdf.setAttribute("Permissions", m_Doc->PDF_Options.Permissions);
1526
 
        pdf.setAttribute("Encrypt", static_cast<int>(m_Doc->PDF_Options.Encrypt));
1527
 
        pdf.setAttribute("UseLayers", static_cast<int>(m_Doc->PDF_Options.useLayers));
1528
 
        pdf.setAttribute("UseLpi", static_cast<int>(m_Doc->PDF_Options.UseLPI));
1529
 
        pdf.setAttribute("UseSpotColors", static_cast<int>(m_Doc->PDF_Options.UseSpotColors));
1530
 
        pdf.setAttribute("doMultiFile", static_cast<int>(m_Doc->PDF_Options.doMultiFile));
1531
 
        pdf.setAttribute("displayBookmarks", static_cast<int>(m_Doc->PDF_Options.displayBookmarks));
1532
 
        pdf.setAttribute("displayFullscreen", static_cast<int>(m_Doc->PDF_Options.displayFullscreen));
1533
 
        pdf.setAttribute("displayLayers", static_cast<int>(m_Doc->PDF_Options.displayLayers));
1534
 
        pdf.setAttribute("displayThumbs", static_cast<int>(m_Doc->PDF_Options.displayThumbs));
1535
 
        pdf.setAttribute("hideMenuBar", static_cast<int>(m_Doc->PDF_Options.hideMenuBar));
1536
 
        pdf.setAttribute("hideToolBar", static_cast<int>(m_Doc->PDF_Options.hideToolBar));
1537
 
        pdf.setAttribute("fitWindow", static_cast<int>(m_Doc->PDF_Options.fitWindow));
1538
 
        pdf.setAttribute("PageLayout", m_Doc->PDF_Options.PageLayout);
1539
 
        pdf.setAttribute("openAction", m_Doc->PDF_Options.openAction);
1540
 
        for (int pdoF = 0; pdoF < m_Doc->PDF_Options.EmbedList.count(); ++pdoF)
1541
 
        {
1542
 
                QDomElement pdf2 = docu.createElement("Fonts");
1543
 
                pdf2.setAttribute("Name", m_Doc->PDF_Options.EmbedList[pdoF]);
1544
 
                pdf.appendChild(pdf2);
1545
 
        }
1546
 
        for (int pdoS = 0; pdoS < m_Doc->PDF_Options.SubsetList.count(); ++pdoS)
1547
 
        {
1548
 
                QDomElement pdf4 = docu.createElement("Subset");
1549
 
                pdf4.setAttribute("Name", m_Doc->PDF_Options.SubsetList[pdoS]);
1550
 
                pdf.appendChild(pdf4);
1551
 
        }
1552
 
        for (int pdoE = 0; pdoE < m_Doc->PDF_Options.PresentVals.count(); ++pdoE)
1553
 
        {
1554
 
                QDomElement pdf3 = docu.createElement("Effekte");
1555
 
                pdf3.setAttribute("pageEffectDuration", m_Doc->PDF_Options.PresentVals[pdoE].pageEffectDuration);
1556
 
                pdf3.setAttribute("pageViewDuration", m_Doc->PDF_Options.PresentVals[pdoE].pageViewDuration);
1557
 
                pdf3.setAttribute("effectType", m_Doc->PDF_Options.PresentVals[pdoE].effectType);
1558
 
                pdf3.setAttribute("Dm", m_Doc->PDF_Options.PresentVals[pdoE].Dm);
1559
 
                pdf3.setAttribute("M", m_Doc->PDF_Options.PresentVals[pdoE].M);
1560
 
                pdf3.setAttribute("Di", m_Doc->PDF_Options.PresentVals[pdoE].Di);
1561
 
                pdf.appendChild(pdf3);
1562
 
        }
1563
 
        QMap<QString,LPIData>::Iterator itlp;
1564
 
        for (itlp = m_Doc->PDF_Options.LPISettings.begin(); itlp != m_Doc->PDF_Options.LPISettings.end(); ++itlp)
1565
 
        {
1566
 
                QDomElement pdf4 = docu.createElement("LPI");
1567
 
                pdf4.setAttribute("Color", itlp.key());
1568
 
                pdf4.setAttribute("Frequency", itlp.value().Frequency);
1569
 
                pdf4.setAttribute("Angle", itlp.value().Angle);
1570
 
                pdf4.setAttribute("SpotFunction", itlp.value().SpotFunc);
1571
 
                pdf.appendChild(pdf4);
1572
 
        }
1573
 
        dc.appendChild(pdf);
1574
 
        QDomElement docItemAttrs = docu.createElement("DocItemAttributes");
1575
 
        for(ObjAttrVector::Iterator objAttrIt = m_Doc->docItemAttributes.begin() ; objAttrIt != m_Doc->docItemAttributes.end(); ++objAttrIt )
1576
 
        {
1577
 
                QDomElement itemAttr = docu.createElement("ItemAttribute");
1578
 
                itemAttr.setAttribute("Name", (*objAttrIt).name);
1579
 
                itemAttr.setAttribute("Type", (*objAttrIt).type);
1580
 
                itemAttr.setAttribute("Value", (*objAttrIt).value);
1581
 
                itemAttr.setAttribute("Parameter", (*objAttrIt).parameter);
1582
 
                itemAttr.setAttribute("Relationship", (*objAttrIt).relationship);
1583
 
                itemAttr.setAttribute("RelationshipTo", (*objAttrIt).relationshipto);
1584
 
                itemAttr.setAttribute("AutoAddTo", (*objAttrIt).autoaddto);
1585
 
                docItemAttrs.appendChild(itemAttr);
1586
 
        }
1587
 
        dc.appendChild(docItemAttrs);
1588
 
        QDomElement tocElem = docu.createElement("TablesOfContents");
1589
 
        for(ToCSetupVector::Iterator tocSetupIt = m_Doc->docToCSetups.begin() ; tocSetupIt != m_Doc->docToCSetups.end(); ++tocSetupIt )
1590
 
        {
1591
 
                QDomElement tocsetup = docu.createElement("TableOfContents");
1592
 
                tocsetup.setAttribute("Name", (*tocSetupIt).name);
1593
 
                tocsetup.setAttribute("ItemAttributeName", (*tocSetupIt).itemAttrName);
1594
 
                tocsetup.setAttribute("FrameName", (*tocSetupIt).frameName);
1595
 
                tocsetup.setAttribute("ListNonPrinting", (*tocSetupIt).listNonPrintingFrames);
1596
 
                tocsetup.setAttribute("Style", (*tocSetupIt).textStyle);
1597
 
                switch ((*tocSetupIt).pageLocation)
1598
 
                {
1599
 
                        case Beginning:
1600
 
                                tocsetup.setAttribute("NumberPlacement", "Beginning");
1601
 
                                break;
1602
 
                        case End:
1603
 
                                tocsetup.setAttribute("NumberPlacement", "End");
1604
 
                                break;
1605
 
                        case NotShown:
1606
 
                                tocsetup.setAttribute("NumberPlacement", "NotShown");
1607
 
                                break;
1608
 
                }
1609
 
                tocElem.appendChild(tocsetup);
1610
 
        }
1611
 
        dc.appendChild(tocElem);
1612
 
        QDomElement sectionElem = docu.createElement("Sections");
1613
 
        for(DocumentSectionMap::Iterator it = m_Doc->sections.begin() ; it != m_Doc->sections.end(); ++it )
1614
 
        {
1615
 
                QDomElement currsection = docu.createElement("Section");
1616
 
                currsection.setAttribute("Number", (*it).number);
1617
 
                currsection.setAttribute("Name", (*it).name);
1618
 
                currsection.setAttribute("From", (*it).fromindex);
1619
 
                currsection.setAttribute("To", (*it).toindex);
1620
 
                switch ((*it).type)
1621
 
                {
1622
 
                        case Type_1_2_3:
1623
 
                                currsection.setAttribute("Type", "Type_1_2_3");
1624
 
                                break;
1625
 
                        case Type_i_ii_iii:
1626
 
                                currsection.setAttribute("Type", "Type_i_ii_iii");
1627
 
                                break;
1628
 
                        case Type_I_II_III:
1629
 
                                currsection.setAttribute("Type", "Type_I_II_III");
1630
 
                                break;
1631
 
                        case Type_a_b_c:
1632
 
                                currsection.setAttribute("Type", "Type_a_b_c");
1633
 
                                break;
1634
 
                        case Type_A_B_C:
1635
 
                                currsection.setAttribute("Type", "Type_A_B_C");
1636
 
                                break;
1637
 
                        case Type_None:
1638
 
                                currsection.setAttribute("Type", "Type_None");
1639
 
                                break;
1640
 
                }
1641
 
                currsection.setAttribute("Start", (*it).sectionstartindex);
1642
 
                currsection.setAttribute("Reversed", (*it).reversed);
1643
 
                currsection.setAttribute("Active", (*it).active);
1644
 
                sectionElem.appendChild(currsection);
1645
 
        }
1646
 
        dc.appendChild(sectionElem);
1647
 
 
1648
 
        QDomElement pageSetAttr = docu.createElement("PageSets");
1649
 
        QList<PageSet>::Iterator itpgset;
1650
 
        for(itpgset = m_Doc->pageSets.begin(); itpgset != m_Doc->pageSets.end(); ++itpgset )
1651
 
        {
1652
 
                QDomElement pgst = docu.createElement("Set");
1653
 
                pgst.setAttribute("Name", (*itpgset).Name);
1654
 
                pgst.setAttribute("FirstPage", (*itpgset).FirstPage);
1655
 
                pgst.setAttribute("Rows", (*itpgset).Rows);
1656
 
                pgst.setAttribute("Columns", (*itpgset).Columns);
1657
 
//              pgst.setAttribute("GapHorizontal", (*itpgset).GapHorizontal);
1658
 
//              pgst.setAttribute("GapVertical", (*itpgset).GapVertical);
1659
 
//              pgst.setAttribute("GapBelow", (*itpgset).GapBelow);
1660
 
                QStringList pNames = (*itpgset).pageNames;
1661
 
                QStringList::Iterator itpgsetN;
1662
 
                for(itpgsetN = pNames.begin(); itpgsetN != pNames.end(); ++itpgsetN )
1663
 
                {
1664
 
                        QDomElement pgstN = docu.createElement("PageNames");
1665
 
                        pgstN.setAttribute("Name", (*itpgsetN));
1666
 
                        pgst.appendChild(pgstN);
1667
 
                }
1668
 
                pageSetAttr.appendChild(pgst);
1669
 
        }
1670
 
        dc.appendChild(pageSetAttr);
1671
 
        if (m_mwProgressBar != 0)
1672
 
        {
1673
 
                m_mwProgressBar->setMaximum(m_Doc->DocPages.count()+m_Doc->MasterPages.count()+m_Doc->DocItems.count()+m_Doc->MasterItems.count()+m_Doc->FrameItems.count());
1674
 
                m_mwProgressBar->setValue(0);
1675
 
        }
1676
 
        QString baseDir = QFileInfo(fileName).absolutePath();;
1677
 
        WritePages(m_Doc, &docu, &dc, m_mwProgressBar, 0, true);
1678
 
        WritePages(m_Doc, &docu, &dc, m_mwProgressBar, m_Doc->MasterPages.count(), false);
1679
 
        WriteObjects(m_Doc, &docu, &dc, baseDir, m_mwProgressBar, m_Doc->MasterPages.count()+m_Doc->DocPages.count(), 2);
1680
 
        WriteObjects(m_Doc, &docu, &dc, baseDir, m_mwProgressBar, m_Doc->MasterPages.count()+m_Doc->DocPages.count()+m_Doc->FrameItems.count(), 0);
1681
 
        WriteObjects(m_Doc, &docu, &dc, baseDir, m_mwProgressBar, m_Doc->MasterPages.count()+m_Doc->DocPages.count()+m_Doc->MasterItems.count()+m_Doc->FrameItems.count(), 1);
1682
 
        elem.appendChild(dc);
1683
 
/**
1684
 
 * changed to enable saving
1685
 
 * of *.gz documents
1686
 
 * 2.7.2002 C.Toepp
1687
 
 * <c.toepp@gmx.de>
1688
 
*/
1689
 
        QByteArray cs = docu.toByteArray(); // UTF-8 QCString
1690
 
        if(fileName.right(2) == "gz")
1691
 
        {
1692
 
                // zipped saving
1693
 
                // XXX: latin1() should probably be local8Bit()
1694
 
                if (!ScGzFile::writeToFile(fileName, cs))
1695
 
                        return false;
1696
 
        }
1697
 
        else
1698
 
        {
1699
 
                QFile f(fileName);
1700
 
                if(!f.open(QIODevice::WriteOnly))
1701
 
                        return false;
1702
 
                QDataStream s(&f);
1703
 
                s.writeRawData(cs, cs.length());
1704
 
                f.close();
1705
 
        }
1706
 
        return true;
 
1192
        return false;
1707
1193
}
1708
1194
 
1709
1195
// Low level plugin API
1726
1212
        delete plug;
1727
1213
}
1728
1214
 
1729
 
/*
1730
 
const ScFace& Scribus13Format::findFont(ScribusDoc *doc, const QString& fontname)
1731
 
{
1732
 
        if (fontname.isEmpty())
1733
 
                return ScFace::none();
1734
 
        
1735
 
        PrefsManager* prefsManager=PrefsManager::instance();
1736
 
        if (!(*m_AvailableFonts).contains(fontname) || !(*m_AvailableFonts)[fontname].usable())
1737
 
        {
1738
 
                if ((!prefsManager->appPrefs.GFontSub.contains(fontname)) || (!(*m_AvailableFonts)[prefsManager->appPrefs.GFontSub[fontname]].usable()))
1739
 
                {
1740
 
                        newReplacement = true;
1741
 
                        ReplacedFonts.insert(fontname, doc->toolSettings.defFont);
1742
 
                }
1743
 
                else
1744
 
                        ReplacedFonts.insert(fontname, prefsManager->appPrefs.GFontSub[fontname]);
1745
 
                ScFace dummy = (*m_AvailableFonts)[ReplacedFonts[fontname]].mkReplacementFor(fontname, doc->DocName);
1746
 
                (*m_AvailableFonts).insert(fontname, dummy);
1747
 
        }
1748
 
        else if ( !doc->UsedFonts.contains(fontname) )
1749
 
        {
1750
 
                doc->AddFont(fontname, qRound(doc->toolSettings.defSize / 10.0));
1751
 
        }
1752
 
        return (*m_AvailableFonts)[fontname];
1753
 
}
1754
 
*/
1755
1215
void Scribus13Format::GetItemText(QDomElement *it, ScribusDoc *doc, PageItem* obj, LastStyles* last, bool impo, bool VorLFound)
1756
1216
{
1757
1217
        ScFace dummy = ScFace::none();
1845
1305
        if (it->hasAttribute("CULW"))
1846
1306
                newStyle.setUnderlineWidth(qRound(ScCLocale::toDoubleC(it->attribute("CULW"), -0.1) * 10));
1847
1307
 
1848
 
        
1849
1308
        if (it->hasAttribute("CSTP"))
1850
1309
                newStyle.setStrikethruOffset(qRound(ScCLocale::toDoubleC(it->attribute("CSTP"), -0.1) * 10));
1851
1310
        
2946
2405
                                {
2947
2406
                                        PageItem * Its = m_Doc->Items->at(lc.key());
2948
2407
                                        PageItem * Itn = m_Doc->Items->at(itemRemap[lc.value()]);
2949
 
                                        if (Itn->prevInChain() || Its->nextInChain()) 
 
2408
                                        if (!Its->testLinkCandidate(Itn))
2950
2409
                                        {
2951
2410
                                                qDebug("scribus13format: corruption in linked textframes detected");
2952
2411
                                                continue;
2966
2425
                while (m_Doc->FirstAuto->prevInChain())
2967
2426
                        m_Doc->FirstAuto = m_Doc->FirstAuto->prevInChain();
2968
2427
        }
 
2428
 
 
2429
        // fix legacy char formatting
 
2430
        for (int i = 0; i < m_Doc->DocItems.count(); ++i)
 
2431
        {
 
2432
                PageItem* item = m_Doc->DocItems.at(i);
 
2433
                if (item->prevInChain() == 0 && item->itemText.length() > 0)
 
2434
                        item->itemText.fixLegacyFormatting();
 
2435
        }
 
2436
        for (int i = 0; i < m_Doc->MasterItems.count(); ++i)
 
2437
        {
 
2438
                PageItem* item = m_Doc->MasterItems.at(i);
 
2439
                if (item->prevInChain() == 0 && item->itemText.length() > 0)
 
2440
                        item->itemText.fixLegacyFormatting();
 
2441
        }
 
2442
        for (int i = 0; i < m_Doc->FrameItems.count(); ++i)
 
2443
        {
 
2444
                PageItem* item = m_Doc->FrameItems.at(i);
 
2445
                if (item->prevInChain() == 0 && item->itemText.length() > 0)
 
2446
                        item->itemText.fixLegacyFormatting();
 
2447
        }
2969
2448
        
2970
2449
        return true;
2971
2450
}