00001
00002
00003
00004
00005
00006
00007 #ifndef SCRIBUS134FORMAT_H
00008 #define SCRIBUS134FORMAT_H
00009
00010 #include "pluginapi.h"
00011 #include "loadsaveplugin.h"
00012 #include "scfonts.h"
00013 #include "scribusstructs.h"
00014 #include "styles/styleset.h"
00015
00016 #include <QDomElement>
00017 #include <QMap>
00018 #include <QString>
00019 #include <QList>
00020 #include <QProgressBar>
00021
00022 class PLUGIN_API Scribus134Format : public LoadSavePlugin
00023 {
00024 Q_OBJECT
00025
00026 public:
00027
00028 Scribus134Format();
00029 virtual ~Scribus134Format();
00030 virtual const QString fullTrName() const;
00031 virtual const AboutData* getAboutData() const;
00032 virtual void deleteAboutData(const AboutData* about) const;
00033 virtual void languageChange();
00034
00035 virtual bool fileSupported(QIODevice* file, const QString & fileName=QString::null) const;
00036
00037 virtual bool loadFile(const QString & fileName, const FileFormat & fmt, int flags, int index = 0);
00038 virtual bool saveFile(const QString & fileName, const FileFormat & fmt);
00039 virtual void addToMainWindowMenu(ScribusMainWindow *) {};
00040
00041
00042 virtual bool loadPage(const QString & fileName, int pageNumber, bool Mpage, QString renamedPageName=QString::null);
00043 virtual bool readStyles(const QString& fileName, ScribusDoc* doc, StyleSet<ParagraphStyle> &docParagraphStyles);
00044 virtual bool readCharStyles(const QString& fileName, ScribusDoc* doc, StyleSet<CharStyle> &docCharStyles);
00045 virtual bool readLineStyles(const QString& fileName, QMap<QString,multiLine> *Sty);
00046 virtual bool readColors(const QString& fileName, ColorList & colors);
00047 virtual bool readPageCount(const QString& fileName, int *num1, int *num2, QStringList & masterPageNames);
00048 virtual void getReplacedFontData(bool & getNewReplacement, QMap<QString,QString> &getReplacedFonts, QList<ScFace> &getDummyScFaces);
00049
00050 private:
00051 enum ItemSelection {
00052 ItemSelectionMaster = 0,
00053 ItemSelectionPage = 1,
00054 ItemSelectionFrame = 2,
00055 ItemSelectionPattern= 3,
00056 };
00057 void registerFormats();
00058
00059 void GetItemText(QDomElement *it, ScribusDoc *doc, PageItem* obj, LastStyles* last, bool impo=false, bool VorLFound=false);
00060 void GetCStyle(const QDomElement *it, ScribusDoc *doc, CharStyle & newStyle);
00061 void readParagraphStyle(ParagraphStyle& vg, const QDomElement& pg, SCFonts &avail, ScribusDoc *doc);
00062 PageItem* PasteItem(QDomElement *obj, ScribusDoc *doc, const QString& baseDir);
00063 void GetStyle(QDomElement *pg, ParagraphStyle *vg, StyleSet<ParagraphStyle> *docParagraphStyles, ScribusDoc* doc, bool fl);
00064 QString readSLA(const QString & fileName);
00065 void writeCheckerProfiles(QDomDocument & docu);
00066 void writeLinestyles(QDomDocument & docu);
00067 void writeJavascripts(QDomDocument & docu);
00068 void writeBookmarks(QDomDocument & docu);
00069 void writeColors(QDomDocument & docu);
00070 void writeHyphenatorLists(QDomDocument &docu);
00071 void writePStyles(QDomDocument & docu);
00072 void writeCStyles(QDomDocument & docu);
00073 void putPStyle(QDomDocument & docu, QDomElement & fo, const ParagraphStyle & style);
00074 void putCStyle(QDomDocument & docu, QDomElement & fo, const CharStyle & style);
00075 void writeITEXTs(ScribusDoc *doc, QDomDocument *docu, QDomElement ob, PageItem* item);
00076 void writeLayers(QDomDocument & docu);
00077 void writePrintOptions(QDomDocument & docu);
00078 void writePdfOptions(QDomDocument & docu);
00079 void writeDocItemAttributes(QDomDocument & docu);
00080 void writeTOC(QDomDocument & docu);
00081 void writePageSets(QDomDocument & docu);
00082 void writeSections(QDomDocument & docu);
00083 void writePatterns(QDomDocument & docu, const QString& baseDir);
00084 void writeContent(QDomDocument & docu, const QString& baseDir);
00085 void WritePages(ScribusDoc *doc, QDomDocument *docu, QDomElement *dc, QProgressBar *dia2, uint maxC, bool master);
00086 void WriteObjects(ScribusDoc *doc, QDomDocument *docu, QDomElement *dc, const QString& baseDir, QProgressBar *dia2, uint maxC, ItemSelection master, QList<PageItem*> *items = 0);
00087 void SetItemProps(QDomElement *ob, PageItem* item, const QString& baseDir, bool newFormat);
00088 QMap<int, int> itemRemap;
00089 QMap<int, int> itemNext;
00090 QMap<int, int> itemRemapF;
00091 QMap<int, int> itemNextF;
00092 QMap<int, int> itemRemapM;
00093 QMap<int, int> itemNextM;
00094 int itemCount;
00095 int itemCountM;
00096 int itemCountF;
00097 QMap<uint,QString> DoVorl;
00098 uint VorlC;
00099 };
00100
00101 extern "C" PLUGIN_API int scribus134format_getPluginAPIVersion();
00102 extern "C" PLUGIN_API ScPlugin* scribus134format_getPlugin();
00103 extern "C" PLUGIN_API void scribus134format_freePlugin(ScPlugin* plugin);
00104
00105 #endif