1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
|
/*
For general Scribus (>=1.3.2) copyright and licensing information please refer
to the COPYING file provided with the program. Following this notice may exist
a copyright and/or license notice that predates the release of Scribus 1.3.2
for which a new license (GPL+exception) is in place.
*/
/***************************************************************************
scribusXml.h the document xml library for scribus
-------------------
begin : Sam Jul 14 10:00:00 CEST 2001
copyright : (C) 2001 by Christian T�p
email : christian.toepp@mr-ct@gmx.de
***************************************************************************/
#ifndef _SCRIBUSXML_H
#define _SCRIBUSXML_H
#include <QDomDocument>
#include <QDomElement>
#include <QList>
#include <QProgressBar>
#include "scfonts.h"
#include "scribusapi.h"
#include "scribusstructs.h"
#include "selection.h"
#include "styles/styleset.h"
#include <QXmlStreamAttributes>
#include <QXmlStreamReader>
#include <QXmlStreamWriter>
class PageItem;
class PrefsManager;
class ScribusView;
class SCFonts;
class ScribusDoc;
class ScPattern;
class ScXmlStreamWriter;
class SCRIBUS_API ScriXmlDoc
{
public:
ScriXmlDoc();
~ScriXmlDoc() {};
/*!
\author Frederic Dubuy <effediwhy@gmail.com>, Petr Vanek
\date august 17th 2004, 10/03/2004
\brief Preliminary Scribus file validator. totally rewritten when fixing crash bug #1092. It's much simpler now.
\param file filename of file to test
\retval bool true = Scribus format file, false : not Scribus
*/
bool ReadElemHeader(QString file, bool isFile, double *x, double *y, double *w, double *h);
bool ReadElem(QString fileName, SCFonts &avail, ScribusDoc *doc, double Xp, double Yp, bool Fi, bool loc, QMap<QString,QString> &FontSub, ScribusView *view);
bool ReadElemToLayer(QString fileName, SCFonts &avail, ScribusDoc *doc, double Xp, double Yp, bool Fi, bool loc, QMap<QString,QString> &FontSub, ScribusView *view, int toLayer);
QString WriteElem(ScribusDoc *doc, ScribusView *view, Selection *selection);
ColorList Farben;
StyleSet<ParagraphStyle> docParagraphStyles;
QList<Linked> LFrames;
QStringList MNames;
QMap<QString,QString> DoFonts;
QMap<QString,QString> ReplacedFonts;
QMap<uint,QString> DoVorl;
QList<ScFace> dummyScFaces;
uint VorlC;
bool newReplacement;
protected:
PrefsManager* prefsManager;
bool attrHasValue(const QXmlStreamAttributes& attrs, const char* attName);
bool attrAsBool(const QXmlStreamAttributes& attrs, const char* attName, bool defVal = false);
int attrAsInt (const QXmlStreamAttributes& attrs, const char* attName, int defVal = 0);
double attrAsDbl (const QXmlStreamAttributes& attrs, const char* attName, double defVal = 0.0);
QString attrAsString (const QXmlStreamAttributes& attrs, const char* attName, const QString& defVal);
void GetItemProps(const QXmlStreamAttributes& attrs, struct CopyPasteBuffer *OB, const QString& baseDir, bool newVersion);
void GetItemText (const QXmlStreamAttributes& attrs, StoryText& story, ScribusDoc *doc, LastStyles* last, bool VorLFound, bool impo);
bool compareStyles(ParagraphStyle &vg, const ParagraphStyle &vg2);
void GetStyle(QXmlStreamReader& reader, ParagraphStyle &vg, StyleSet<ParagraphStyle>* tempStyles, ScribusDoc* doc, bool fl);
void ReadPattern(QXmlStreamReader& reader, ScribusDoc* doc, ScribusView *view, const QString& fileName, int& GrMax, bool styleFound, bool newVersion);
void ReadLegacyCStyle (const QXmlStreamAttributes& attrs, CharStyle& style, ScribusDoc* doc);
void ReadCStyle (const QXmlStreamAttributes& attrs, CharStyle& style, ScribusDoc* doc);
void ReadPStyle (QXmlStreamReader& reader, ParagraphStyle &style, ScribusDoc* doc);
void SetItemProps(ScXmlStreamWriter& writer, ScribusDoc *doc, PageItem* item, const QString& baseDir, bool newFormat);
void WriteObject (ScXmlStreamWriter& writer, ScribusDoc *doc, PageItem *item, const QString& baseDir, QMap<int, int> &UsedMapped2Saved);
void WriteITEXTs (ScXmlStreamWriter& writer, ScribusDoc *doc, PageItem *item);
void WriteLegacyCStyle (ScXmlStreamWriter& writer, const CharStyle& style);
void WriteCStyle (ScXmlStreamWriter& writer, const CharStyle& style);
void WritePStyle (ScXmlStreamWriter& writer, const ParagraphStyle& style, const QString& nodeName);
QString AskForFont(SCFonts &avail, QString fStr, ScribusDoc *doc);
};
#endif // _SCRIBUS_CONFIG_
|