parent
468145e2ae
commit
e82d5d880d
@ -0,0 +1,49 @@ |
|||||||
|
#------------------------------------------------- |
||||||
|
# |
||||||
|
# Project created by QtCreator 2012-02-14T13:30:14 |
||||||
|
# |
||||||
|
#------------------------------------------------- |
||||||
|
|
||||||
|
win32: SUB_DIR = win32 |
||||||
|
macx: SUB_DIR = macx |
||||||
|
linux-g++: SUB_DIR = linux |
||||||
|
linux-g++-32: SUB_DIR = linux |
||||||
|
linux-g++-64: SUB_DIR = linux |
||||||
|
|
||||||
|
QUAZIP_DIR = "$$PWD/../../../Sankore-ThirdParty/quazip" |
||||||
|
ZLIB_DIR = "$$PWD/../../../Sankore-ThirdParty/zlib" |
||||||
|
|
||||||
|
INCLUDEPATH += src \ |
||||||
|
"$$QUAZIP_DIR/quazip-0.3" \ |
||||||
|
"$$ZLIB_DIR/1.2.3/include" |
||||||
|
|
||||||
|
LIBS += "-L$$QUAZIP_DIR/lib/$$SUB_DIR" "-lquazip" |
||||||
|
|
||||||
|
QT += xml xmlpatterns core |
||||||
|
QT += gui |
||||||
|
QT += svg |
||||||
|
|
||||||
|
TARGET = CFF_Adaptor |
||||||
|
TEMPLATE = lib |
||||||
|
win32{ |
||||||
|
CONFIG += dll |
||||||
|
} |
||||||
|
|
||||||
|
DEFINES += UBCFFADAPTOR_LIBRARY |
||||||
|
DEFINES += NO_THIRD_PARTY_WARNINGS |
||||||
|
|
||||||
|
SOURCES += \ |
||||||
|
src/UBCFFAdaptor.cpp |
||||||
|
|
||||||
|
HEADERS +=\ |
||||||
|
$$PWD/../../src/globals/UBGlobals.h \ |
||||||
|
src/UBCFFAdaptor.h \ |
||||||
|
src/UBCFFAdaptor_global.h \ |
||||||
|
src/UBCFFConstants.h |
||||||
|
|
||||||
|
OBJECTS_DIR = $$PWD/objects |
||||||
|
MOC_DIR = $$PWD/moc |
||||||
|
DESTDIR = $$PWD/lib/$$SUB_DIR |
||||||
|
|
||||||
|
RESOURCES += \ |
||||||
|
resources/resources.qrc |
After Width: | Height: | Size: 572 B |
@ -0,0 +1,5 @@ |
|||||||
|
<RCC> |
||||||
|
<qresource prefix="/"> |
||||||
|
<file>images/soundOn.svg</file> |
||||||
|
</qresource> |
||||||
|
</RCC> |
File diff suppressed because it is too large
Load Diff
@ -0,0 +1,146 @@ |
|||||||
|
#ifndef UBCFFADAPTOR_H |
||||||
|
#define UBCFFADAPTOR_H |
||||||
|
|
||||||
|
#include "UBCFFAdaptor_global.h" |
||||||
|
|
||||||
|
#include <QtCore> |
||||||
|
|
||||||
|
class QTransform; |
||||||
|
class QDomDocument; |
||||||
|
class QDomElement; |
||||||
|
class QDomNode; |
||||||
|
class QuaZipFile; |
||||||
|
|
||||||
|
class UBCFFADAPTORSHARED_EXPORT UBCFFAdaptor { |
||||||
|
class UBToCFFConverter; |
||||||
|
|
||||||
|
public: |
||||||
|
UBCFFAdaptor(); |
||||||
|
~UBCFFAdaptor(); |
||||||
|
|
||||||
|
bool convertUBZToIWB(const QString &from, const QString &to); |
||||||
|
bool deleteDir(const QString& pDirPath) const; |
||||||
|
|
||||||
|
private: |
||||||
|
QString uncompressZip(const QString &zipFile); |
||||||
|
bool compressZip(const QString &source, const QString &destination); |
||||||
|
bool compressDir(const QString &dirName, const QString &parentDir, QuaZipFile *outZip); |
||||||
|
bool compressFile(const QString &fileName, const QString &parentDir, QuaZipFile *outZip); |
||||||
|
|
||||||
|
QString createNewTmpDir(); |
||||||
|
bool freeDir(const QString &dir); |
||||||
|
void freeTmpDirs(); |
||||||
|
|
||||||
|
private: |
||||||
|
QStringList tmpDirs; |
||||||
|
|
||||||
|
private: |
||||||
|
|
||||||
|
class UBToCFFConverter { |
||||||
|
|
||||||
|
static const int DEFAULT_LAYER = -100000; |
||||||
|
|
||||||
|
public: |
||||||
|
UBToCFFConverter(const QString &source, const QString &destination); |
||||||
|
~UBToCFFConverter(); |
||||||
|
bool isValid() const; |
||||||
|
QString lastErrStr() const {return errorStr;} |
||||||
|
bool parse(); |
||||||
|
|
||||||
|
private: |
||||||
|
void fillNamespaces(); |
||||||
|
|
||||||
|
bool parseMetadata(); |
||||||
|
bool parseContent(); |
||||||
|
QDomElement parsePageset(const QStringList &pageFileNames); |
||||||
|
QDomElement parsePage(const QString &pageFileName); |
||||||
|
QDomElement parseSvgPageSection(const QDomElement &element); |
||||||
|
void writeQDomElementToXML(const QDomNode &node); |
||||||
|
bool writeExtendedIwbSection(); |
||||||
|
QDomElement parseGroupPageSection(const QDomElement &element); |
||||||
|
|
||||||
|
bool createBackground(const QDomElement &element, QMultiMap<int, QDomElement> &dstSvgList); |
||||||
|
QString createBackgroundImage(const QDomElement &element, QSize size); |
||||||
|
bool createPngFromSvg(QString &svgPath, QString &dstPath, QTransform transformation, QSize size = QSize()); |
||||||
|
|
||||||
|
bool parseSVGGGroup(const QDomElement &element, QMultiMap<int, QDomElement> &dstSvgList); |
||||||
|
bool parseUBZImage(const QDomElement &element, QMultiMap<int, QDomElement> &dstSvgList); |
||||||
|
bool parseUBZVideo(const QDomElement &element, QMultiMap<int, QDomElement> &dstSvgList); |
||||||
|
bool parseUBZAudio(const QDomElement &element, QMultiMap<int, QDomElement> &dstSvgList); |
||||||
|
bool parseForeignObject(const QDomElement &element, QMultiMap<int, QDomElement> &dstSvgList); |
||||||
|
bool parseUBZText(const QDomElement &element, QMultiMap<int, QDomElement> &dstSvgList); |
||||||
|
|
||||||
|
bool parseUBZPolygon(const QDomElement &element, QMultiMap<int, QDomElement> &dstSvgList); |
||||||
|
bool parseUBZPolyline(const QDomElement &element, QMultiMap<int, QDomElement> &dstSvgList); |
||||||
|
bool parseUBZLine(const QDomElement &element, QMultiMap<int, QDomElement> &dstSvgList);
|
||||||
|
void addSVGElementToResultModel(const QDomElement &element, QMultiMap<int, QDomElement> &dstList, int layer = DEFAULT_LAYER); |
||||||
|
void addIWBElementToResultModel(const QDomElement &element); |
||||||
|
|
||||||
|
qreal getAngleFromTransform(const QTransform &tr); |
||||||
|
QString getDstContentFolderName(const QString &elementType); |
||||||
|
QString getSrcContentFolderName(QString href); |
||||||
|
QString getFileNameFromPath(QString sPath); |
||||||
|
QString getExtentionFromFileName(const QString &filename); |
||||||
|
QString convertExtention(const QString &ext); |
||||||
|
QString getElementTypeFromUBZ(const QDomElement &element); |
||||||
|
|
||||||
|
int getElementLayer(const QDomElement &element); |
||||||
|
|
||||||
|
bool itIsSupportedFormat(const QString &format) const; |
||||||
|
bool itIsFormatToConvert(const QString &format) const; |
||||||
|
bool itIsSVGElementAttribute(const QString ItemType, const QString &AttrName); |
||||||
|
bool itIsIWBAttribute(const QString &attribute) const; |
||||||
|
bool itIsUBZAttributeToConvert(const QString &attribute) const; |
||||||
|
|
||||||
|
bool ibwAddLine(int x1, int y1, int x2, int y2, QString color=QString(), int width=1, bool isBackground=false); |
||||||
|
|
||||||
|
QTransform getTransformFromUBZ(const QDomElement &ubzElement); |
||||||
|
void setGeometryFromUBZ(const QDomElement &ubzElement, QDomElement &iwbElement); |
||||||
|
void setCoordinatesFromUBZ(const QDomElement &ubzElement, QDomElement &iwbElement); |
||||||
|
bool setContentFromUBZ(const QDomElement &ubzElement, QDomElement &svgElement); |
||||||
|
void setCFFTextFromUBZ(const QDomElement &ubzElement, QDomElement &iwbElement, QDomElement &svgElement); |
||||||
|
void setCFFTextFromHTMLTextNode(const QDomElement htmlTextNode, QDomElement &iwbElement); |
||||||
|
QString ubzAttrNameToCFFAttrName(QString cffAttrName); |
||||||
|
QString ubzAttrValueToCFFAttrName(QString cffAttrValue); |
||||||
|
|
||||||
|
bool setCFFAttribute(const QString &attributeName, const QString &attributeValue, const QDomElement &ubzElement, QDomElement &iwbElement, QDomElement &svgElement); |
||||||
|
bool setCommonAttributesFromUBZ(const QDomElement &ubzElement, QDomElement &iwbElement, QDomElement &svgElement); |
||||||
|
void setViewBox(QRect viewbox); |
||||||
|
|
||||||
|
QDomNode findTextNode(const QDomNode &node); |
||||||
|
QDomNode findNodeByTagName(const QDomNode &node, QString tagName); |
||||||
|
|
||||||
|
QSize getSVGDimentions(const QString &element); |
||||||
|
|
||||||
|
inline QRect getViewboxRect(const QString &element) const; |
||||||
|
inline QString rectToIWBAttr(const QRect &rect) const; |
||||||
|
inline QString digitFileFormat(int num) const; |
||||||
|
inline bool strToBool(const QString &in) const {return in == "true";} |
||||||
|
QString contentIWBFileName() const; |
||||||
|
|
||||||
|
private: |
||||||
|
QMap<QString, QString> iwbSVGItemsAttributes; |
||||||
|
QDomDocument *mDataModel; //model for reading indata
|
||||||
|
QXmlStreamWriter *mIWBContentWriter; //stream to write outdata
|
||||||
|
QSize mSVGSize; //svg page size
|
||||||
|
QRect mViewbox; //Main viewbox parameter for CFF
|
||||||
|
QString sourcePath; // dir with unpacked source data (ubz)
|
||||||
|
QString destinationPath; //dir with unpacked destination data (iwb)
|
||||||
|
QDomDocument *mDocumentToWrite; //document for saved QDomElements from mSvgElements and mExtendedElements
|
||||||
|
QMultiMap<int, QDomElement> mSvgElements; //Saving svg elements to have a sorted by z order list of elements to write;
|
||||||
|
QList<QDomElement> mExtendedElements; //Saving extended options of elements to be able to add them to the end of result iwb document;
|
||||||
|
mutable QString errorStr; // last error string message
|
||||||
|
|
||||||
|
public: |
||||||
|
operator bool() const {return isValid();} |
||||||
|
}; |
||||||
|
|
||||||
|
class UBToUBZConverter { |
||||||
|
public: |
||||||
|
UBToUBZConverter(); |
||||||
|
}; |
||||||
|
|
||||||
|
|
||||||
|
}; |
||||||
|
|
||||||
|
#endif // UBCFFADAPTOR_H
|
@ -0,0 +1,12 @@ |
|||||||
|
#ifndef UBCFFADAPTOR_GLOBAL_H |
||||||
|
#define UBCFFADAPTOR_GLOBAL_H |
||||||
|
|
||||||
|
#include <QtCore/qglobal.h> |
||||||
|
|
||||||
|
#if defined(UBCFFADAPTOR_LIBRARY) |
||||||
|
# define UBCFFADAPTORSHARED_EXPORT Q_DECL_EXPORT |
||||||
|
#else |
||||||
|
# define UBCFFADAPTORSHARED_EXPORT Q_DECL_IMPORT |
||||||
|
#endif |
||||||
|
|
||||||
|
#endif // UBCFFADAPTOR_GLOBAL_H
|
@ -0,0 +1,378 @@ |
|||||||
|
#ifndef UBCFFCONSTANTS_H |
||||||
|
#define UBCFFCONSTANTS_H |
||||||
|
|
||||||
|
#define PI 3.1415926535 |
||||||
|
|
||||||
|
const int DEFAULT_BACKGROUND_LAYER = -20000002; |
||||||
|
const int DEFAULT_BACKGROUND_CROSS_LAYER = -20000001; |
||||||
|
|
||||||
|
// Constant names. Use only them instead const char* in each function
|
||||||
|
|
||||||
|
// Constant fileNames;
|
||||||
|
const QString fMetadata = "metadata.rdf"; |
||||||
|
const QString fIWBContent = "content.xml"; |
||||||
|
const QString fIWBBackground = "background.png"; |
||||||
|
const QString sAudioElementImage = ":images/soundOn.svg"; |
||||||
|
|
||||||
|
// Constant messages;
|
||||||
|
const QString noErrorMsg = "NoError"; |
||||||
|
|
||||||
|
// Tag names
|
||||||
|
const QString tDescription = "Description"; |
||||||
|
const QString tIWBRoot = "iwb"; |
||||||
|
const QString tIWBMeta = "meta"; |
||||||
|
const QString tUBZSize = "size"; |
||||||
|
const QString tSvg = "svg"; |
||||||
|
const QString tIWBPage = "page"; |
||||||
|
const QString tIWBPageSet = "pageset"; |
||||||
|
const QString tId = "id"; |
||||||
|
const QString tElement = "element"; |
||||||
|
const QString tUBZGroup = "group"; |
||||||
|
const QString tUBZG = "g"; |
||||||
|
const QString tUBZPolygon = "polygon"; |
||||||
|
const QString tUBZPolyline = "polyline"; |
||||||
|
const QString tUBZLine = "line"; |
||||||
|
const QString tUBZAudio = "audio"; |
||||||
|
const QString tUBZVideo = "video"; |
||||||
|
const QString tUBZImage = "image"; |
||||||
|
const QString tUBZForeignObject = "foreignObject"; |
||||||
|
const QString tUBZTextContent = "itemTextContent"; |
||||||
|
|
||||||
|
const QString tIWBA = "a"; |
||||||
|
const QString tIWBG = "g"; |
||||||
|
const QString tIWBSwitch = "switch"; |
||||||
|
const QString tIWBImage = "image"; |
||||||
|
const QString tIWBVideo = "video"; |
||||||
|
const QString tIWBAudio = "audio"; |
||||||
|
const QString tIWBText = "text"; |
||||||
|
const QString tIWBTextArea = "textarea"; |
||||||
|
const QString tIWBPolyLine = "polyline"; |
||||||
|
const QString tIWBPolygon = "polygon"; |
||||||
|
const QString tIWBFlash = "video"; |
||||||
|
const QString tIWBRect = "rect"; |
||||||
|
const QString tIWBLine = "line"; |
||||||
|
const QString tIWBTbreak = "tbreak"; |
||||||
|
const QString tIWBTspan = "tspan"; |
||||||
|
|
||||||
|
// Attributes names
|
||||||
|
const QString aIWBVersion = "version"; |
||||||
|
const QString aOwner = "owner"; |
||||||
|
const QString aDescription = "description"; |
||||||
|
const QString aCreator = "creator"; |
||||||
|
const QString aAbout = "about"; |
||||||
|
const QString aIWBViewBox = "viewbox"; |
||||||
|
const QString aUBZViewBox = "viewBox"; |
||||||
|
const QString aDarkBackground = "dark-background"; |
||||||
|
const QString aBackground = "background"; |
||||||
|
const QString aCrossedBackground = "crossed-background"; |
||||||
|
const QString aUBZType = "type"; |
||||||
|
const QString aUBZUuid = "uuid"; |
||||||
|
const QString aFill = "fill"; // IWB attribute contans color to fill
|
||||||
|
|
||||||
|
const QString aID = "id"; // ID of any svg element can be placed in to iwb section
|
||||||
|
const QString aRef = "ref"; // as reference for applying additional attributes
|
||||||
|
const QString aSVGHref = "xlink:href"; // reference to file
|
||||||
|
const QString aIWBHref = "ref"; // reference to element ID
|
||||||
|
const QString aUBZHref = "href"; |
||||||
|
const QString aSrc = "src"; |
||||||
|
const QString aSVGRequiredExtension = "requiredExtensions"; |
||||||
|
|
||||||
|
const QString aX = "x"; |
||||||
|
const QString aY = "y"; |
||||||
|
const QString aWidth = "width"; |
||||||
|
const QString aHeight = "height"; |
||||||
|
const QString aStroke = "stroke"; |
||||||
|
const QString aStrokeWidth = "stroke-width"; |
||||||
|
const QString aPoints = "points"; |
||||||
|
const QString aZLayer = "z-value"; |
||||||
|
const QString aLayer = "layer"; |
||||||
|
const QString aTransform = "transform"; |
||||||
|
const QString aLocked = "locked"; |
||||||
|
const QString aIWBName = "name"; |
||||||
|
const QString aIWBContent = "content"; |
||||||
|
|
||||||
|
|
||||||
|
// Attribute values
|
||||||
|
const QString avIWBVersionNo = "1.0";
|
||||||
|
const QString avUBZText = "text"; |
||||||
|
const QString avFalse = "false"; |
||||||
|
const QString avTrue = "true"; |
||||||
|
|
||||||
|
// Namespaces and prefixes
|
||||||
|
const QString svgRequiredExtensionPrefix = "http://www.imsglobal.org/iwb/"; |
||||||
|
const QString dcNS = "http://purl.org/dc/elements/1.1/"; |
||||||
|
const QString ubNS = "http://uniboard.mnemis.com/document"; |
||||||
|
const QString svgUBZNS = "http://www.imsglobal.org/xsd/iwb_v1p0"; |
||||||
|
const QString svgIWBNS = "http://www.w3.org/2000/svg"; |
||||||
|
const QString xlinkNS = "http://www.w3.org/1999/xlink"; |
||||||
|
const QString iwbNS = "http://www.becta.org.uk/iwb"; |
||||||
|
const QString xsiNS = "http://www.w3.org/2001/XMLSchema-instance"; |
||||||
|
const QString xsiShemaLocation = "\
|
||||||
|
http://www.imsglobal.org/xsd/iwb_v1p0 \
|
||||||
|
http://www.imsglobal.org/profile/iwb/iwbv1p0_v1p0.xsd \
|
||||||
|
http://www.w3.org/2000/svg http://www.imsglobal.org/profile/iwb/svgsubsetv1p0_v1p0.xsd \
|
||||||
|
http://www.w3.org/1999/xlink http://www.imsglobal.org/xsd/w3/1999/xlink.xsd";
|
||||||
|
const QString dcNSPrefix = "dc"; |
||||||
|
const QString ubNSPrefix = "ub"; |
||||||
|
const QString svgIWBNSPrefix = "svg"; |
||||||
|
const QString xlinkNSPrefix = "xlink"; |
||||||
|
const QString iwbNsPrefix = "iwb"; |
||||||
|
const QString xsiPrefix = "xsi"; |
||||||
|
const QString xsiSchemaLocationPrefix = "schemaLocation"; |
||||||
|
|
||||||
|
const QString avOwner = ""; |
||||||
|
const QString avCreator = ""; |
||||||
|
const QString avDescription = ""; |
||||||
|
|
||||||
|
//constant symbols and words etc
|
||||||
|
const QString dimensionsDelimiter1 = "x"; |
||||||
|
const QString dimensionsDelimiter2 = " "; |
||||||
|
const QString pageAlias = "page"; |
||||||
|
const QString pageFileExtentionUBZ = "svg"; |
||||||
|
|
||||||
|
//content folder names
|
||||||
|
const QString cfImages = "images"; |
||||||
|
const QString cfVideos = "video"; |
||||||
|
const QString cfAudios = "audio"; |
||||||
|
const QString cfFlash = "flash"; |
||||||
|
|
||||||
|
//known file extentions
|
||||||
|
const QString feSvg = "svg"; |
||||||
|
const QString feWgt = "wgt"; |
||||||
|
const QString fePng = "png"; |
||||||
|
|
||||||
|
const int iCrossSize = 32; |
||||||
|
const int iCrossWidth = 1; |
||||||
|
|
||||||
|
// Image formats supported by CFF exclude wgt. Wgt is Sankore widget, which is considered as a .png preview.
|
||||||
|
const QString iwbElementImage(" \
|
||||||
|
wgt, \
|
||||||
|
jpeg, \
|
||||||
|
jpg, \
|
||||||
|
bmp, \
|
||||||
|
gif, \
|
||||||
|
wmf, \
|
||||||
|
emf, \
|
||||||
|
png, \
|
||||||
|
tif, \
|
||||||
|
tiff \
|
||||||
|
"); |
||||||
|
|
||||||
|
// Video formats supported by CFF
|
||||||
|
const QString iwbElementVideo(" \
|
||||||
|
mpg, \
|
||||||
|
mpeg, \
|
||||||
|
swf, \
|
||||||
|
"); |
||||||
|
|
||||||
|
// Audio formats supported by CFF
|
||||||
|
const QString iwbElementAudio(" \
|
||||||
|
mp3, \
|
||||||
|
wav \
|
||||||
|
"); |
||||||
|
|
||||||
|
const QString cffSupportedFileFormats(iwbElementImage + iwbElementVideo + iwbElementAudio); |
||||||
|
const QString ubzFormatsToConvert("svg"); |
||||||
|
|
||||||
|
|
||||||
|
const QString iwbSVGImageAttributes(" \
|
||||||
|
id, \
|
||||||
|
xlink:href, \
|
||||||
|
x, \
|
||||||
|
y, \
|
||||||
|
height, \
|
||||||
|
width, \
|
||||||
|
fill-opacity, \
|
||||||
|
requiredExtentions, \
|
||||||
|
transform \
|
||||||
|
"); |
||||||
|
|
||||||
|
|
||||||
|
const QString iwbSVGAudioAttributes(" \
|
||||||
|
id, \
|
||||||
|
xlink:href, \
|
||||||
|
x, \
|
||||||
|
y, \
|
||||||
|
height, \
|
||||||
|
width, \
|
||||||
|
fill-opacity, \
|
||||||
|
requiredExtentions, \
|
||||||
|
transform \
|
||||||
|
"); |
||||||
|
|
||||||
|
const QString iwbSVGVideoAttributes(" \
|
||||||
|
id, \
|
||||||
|
xlink:href, \
|
||||||
|
x, \
|
||||||
|
y, \
|
||||||
|
height, \
|
||||||
|
width, \
|
||||||
|
fill-opacity, \
|
||||||
|
requiredExtentions, \
|
||||||
|
transform \
|
||||||
|
"); |
||||||
|
|
||||||
|
const QString iwbSVGRectAttributes(" \
|
||||||
|
id, \
|
||||||
|
x, \
|
||||||
|
y, \
|
||||||
|
height, \
|
||||||
|
width, \
|
||||||
|
fill, \
|
||||||
|
fill-opacity, \
|
||||||
|
stroke, \
|
||||||
|
stroke-dasharray, \
|
||||||
|
stroke-linecap, \
|
||||||
|
stroke-linejoin, \
|
||||||
|
stroke-opacity, \
|
||||||
|
stroke-width, \
|
||||||
|
transform \
|
||||||
|
"); |
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
const QString iwbSVGTextAttributes(" \
|
||||||
|
id, \
|
||||||
|
x, \
|
||||||
|
y, \
|
||||||
|
fill, \
|
||||||
|
font-family, \
|
||||||
|
font-size, \
|
||||||
|
font-style, \
|
||||||
|
font-weight, \
|
||||||
|
font-stretch, \
|
||||||
|
transform \
|
||||||
|
"); |
||||||
|
|
||||||
|
const QString iwbSVGTextAreaAttributes(" \
|
||||||
|
id, \
|
||||||
|
x, \
|
||||||
|
y, \
|
||||||
|
height, \
|
||||||
|
width, \
|
||||||
|
fill, \
|
||||||
|
font-family, \
|
||||||
|
font-size, \
|
||||||
|
font-style, \
|
||||||
|
font-weight, \
|
||||||
|
font-stretch, \
|
||||||
|
text-align, \
|
||||||
|
transform \
|
||||||
|
"); |
||||||
|
|
||||||
|
const QString iwbSVGTspanAttributes(" \
|
||||||
|
id, \
|
||||||
|
fill, \
|
||||||
|
font-family, \
|
||||||
|
font-size, \
|
||||||
|
font-style, \
|
||||||
|
font-weight, \
|
||||||
|
font-stretch, \
|
||||||
|
text-align, \
|
||||||
|
"); |
||||||
|
|
||||||
|
const QString iwbSVGLineAttributes(" \
|
||||||
|
id, \
|
||||||
|
x1, \
|
||||||
|
y1, \
|
||||||
|
x2, \
|
||||||
|
y2, \
|
||||||
|
stroke, \
|
||||||
|
stroke-dasharray, \
|
||||||
|
stroke-width, \
|
||||||
|
stroke-opacity, \
|
||||||
|
stroke-linecap, \
|
||||||
|
transform \
|
||||||
|
"); |
||||||
|
|
||||||
|
const QString iwbSVGPolyLineAttributes(" \
|
||||||
|
id, \
|
||||||
|
points, \
|
||||||
|
stroke, \
|
||||||
|
stroke-width, \
|
||||||
|
stroke-dasharray, \
|
||||||
|
stroke-opacity, \
|
||||||
|
stroke-linecap, \
|
||||||
|
transform \
|
||||||
|
"); |
||||||
|
|
||||||
|
const QString iwbSVGPolygonAttributes(" \
|
||||||
|
id, \
|
||||||
|
points, \
|
||||||
|
fill, \
|
||||||
|
fill-opacity, \
|
||||||
|
stroke, \
|
||||||
|
stroke-dasharray, \
|
||||||
|
stroke-width, \
|
||||||
|
stroke-linecap, \
|
||||||
|
stroke-linejoin, \
|
||||||
|
stroke-opacity, \
|
||||||
|
stroke-width, \
|
||||||
|
transform \
|
||||||
|
"); |
||||||
|
|
||||||
|
// 1 to 1 copy to SVG section
|
||||||
|
const QString iwbElementAttributes(" \
|
||||||
|
background, \
|
||||||
|
background-fill, \
|
||||||
|
background-posture, \
|
||||||
|
flip, \
|
||||||
|
freehand, \
|
||||||
|
highlight, \
|
||||||
|
highlight-fill, \
|
||||||
|
list-style-type, \
|
||||||
|
list-style-type-fill, \
|
||||||
|
locked, \
|
||||||
|
replicate, \
|
||||||
|
revealer, \
|
||||||
|
stroke-lineshape-start, \
|
||||||
|
stroke-lineshape-end \
|
||||||
|
"); |
||||||
|
|
||||||
|
// cannot be copied 1 to 1 to SVG section
|
||||||
|
const QString ubzElementAttributesToConvert(" \
|
||||||
|
xlink:href, \
|
||||||
|
src, \
|
||||||
|
transform \
|
||||||
|
"); |
||||||
|
|
||||||
|
// additional attributes. Have references in SVG section.
|
||||||
|
const QString svgElementAttributes(" \
|
||||||
|
points, \
|
||||||
|
fill, \
|
||||||
|
fill-opacity, \
|
||||||
|
stroke, \
|
||||||
|
stroke-dasharray, \
|
||||||
|
stroke-linecap, \
|
||||||
|
stroke-opacity, \
|
||||||
|
stroke-width, \
|
||||||
|
stroke_linejoin, \
|
||||||
|
requiredExtensions, \
|
||||||
|
viewbox, \
|
||||||
|
x, \
|
||||||
|
y, \
|
||||||
|
x1, \
|
||||||
|
y1, \
|
||||||
|
x2, \
|
||||||
|
y2, \
|
||||||
|
height, \
|
||||||
|
width, \
|
||||||
|
font-family, \
|
||||||
|
font-size, \
|
||||||
|
font-style, \
|
||||||
|
font-weight, \
|
||||||
|
font-stretch, \
|
||||||
|
text-align \
|
||||||
|
"); |
||||||
|
|
||||||
|
const QString ubzContentFolders("audios,videos,images,widgets"); |
||||||
|
|
||||||
|
struct UBItemLayerType |
||||||
|
{ |
||||||
|
enum Enum |
||||||
|
{ |
||||||
|
FixedBackground = -2000, Object = -1000, Graphic = 0, Tool = 1000, Control = 2000 |
||||||
|
}; |
||||||
|
}; |
||||||
|
|
||||||
|
#endif // UBCFFCONSTANTS_H
|
@ -0,0 +1,47 @@ |
|||||||
|
#ifndef UBGLOBALS_H |
||||||
|
#define UBGLOBALS_H |
||||||
|
|
||||||
|
#define DELETEPTR(ptr) if(NULL != ptr){ \ |
||||||
|
delete ptr; \
|
||||||
|
ptr = NULL; \
|
||||||
|
} |
||||||
|
|
||||||
|
#ifdef Q_WS_WIN |
||||||
|
|
||||||
|
#define WARNINGS_DISABLE __pragma(warning(push, 0)); |
||||||
|
#define WARNINGS_ENABLE __pragma(warning(pop)); |
||||||
|
|
||||||
|
#ifdef NO_THIRD_PARTY_WARNINGS |
||||||
|
// disabling warning level to 0 and save old state
|
||||||
|
#define THIRD_PARTY_WARNINGS_DISABLE WARNINGS_DISABLE |
||||||
|
#else |
||||||
|
// just save old state (needs for not empty define)
|
||||||
|
#define THIRD_PARTY_WARNINGS_DISABLE __pragma(warning(push)); |
||||||
|
#endif //#ifdef NO_THIRD_PARTY_WARNINGS
|
||||||
|
// anyway on WIN
|
||||||
|
#define THIRD_PARTY_WARNINGS_ENABLE WARNINGS_ENABLE |
||||||
|
|
||||||
|
#else //#ifdef Q_WS_WIN
|
||||||
|
|
||||||
|
#define WARNINGS_DISABLE _Pragma("GCC diagnostic push"); \ |
||||||
|
_Pragma("GCC diagnostic ignored \"-Wunused-parameter\""); \
|
||||||
|
_Pragma("GCC diagnostic ignored \"-Wunused-variable\""); \
|
||||||
|
_Pragma("GCC diagnostic ignored \"-Wsign-compare\""); |
||||||
|
|
||||||
|
#define WARNINGS_ENABLE _Pragma("GCC diagnostic pop"); |
||||||
|
|
||||||
|
#ifdef NO_THIRD_PARTY_WARNINGS |
||||||
|
//disabling some warnings
|
||||||
|
#define THIRD_PARTY_WARNINGS_DISABLE WARNINGS_DISABLE |
||||||
|
|
||||||
|
#define THIRD_PARTY_WARNINGS_ENABLE WARNINGS_ENABLE |
||||||
|
#else |
||||||
|
// just save old state (needs for not empty define)
|
||||||
|
#define THIRD_PARTY_WARNINGS_ENABLE WARNINGS_ENABLE |
||||||
|
|
||||||
|
#endif //#ifdef NO_THIRD_PARTY_WARNINGS
|
||||||
|
|
||||||
|
#endif //#ifdef Q_WS_WIN
|
||||||
|
|
||||||
|
#endif // UBGLOBALS_H
|
||||||
|
|
@ -0,0 +1,60 @@ |
|||||||
|
#include "UBExportCFF.h" |
||||||
|
#include "UBCFFAdaptor.h" |
||||||
|
#include "document/UBDocumentProxy.h" |
||||||
|
#include "core/UBDocumentManager.h" |
||||||
|
#include "core/UBApplication.h" |
||||||
|
|
||||||
|
|
||||||
|
UBExportCFF::UBExportCFF(QObject *parent) |
||||||
|
: UBExportAdaptor(parent) |
||||||
|
{ |
||||||
|
|
||||||
|
} |
||||||
|
|
||||||
|
UBExportCFF::~UBExportCFF() |
||||||
|
{ |
||||||
|
|
||||||
|
} |
||||||
|
QString UBExportCFF::exportName() |
||||||
|
{ |
||||||
|
return tr("Export to IWB"); |
||||||
|
} |
||||||
|
|
||||||
|
QString UBExportCFF::exportExtention() |
||||||
|
{ |
||||||
|
return QString(".iwb"); |
||||||
|
} |
||||||
|
|
||||||
|
void UBExportCFF::persist(UBDocumentProxy* pDocument) |
||||||
|
{ |
||||||
|
QString src = pDocument->persistencePath(); |
||||||
|
|
||||||
|
if (!pDocument) |
||||||
|
return; |
||||||
|
|
||||||
|
QString filename = askForFileName(pDocument, tr("Export as IWB File")); |
||||||
|
|
||||||
|
if (filename.length() > 0) |
||||||
|
{ |
||||||
|
QApplication::setOverrideCursor(QCursor(Qt::WaitCursor)); |
||||||
|
|
||||||
|
if (mIsVerbose) |
||||||
|
UBApplication::showMessage(tr("Exporting document...")); |
||||||
|
|
||||||
|
UBCFFAdaptor toIWBExporter; |
||||||
|
if (toIWBExporter.convertUBZToIWB(src, filename)) |
||||||
|
{ |
||||||
|
if (mIsVerbose) |
||||||
|
UBApplication::showMessage(tr("Export successful.")); |
||||||
|
} |
||||||
|
else
|
||||||
|
if (mIsVerbose) |
||||||
|
UBApplication::showMessage(tr("Export failed.")); |
||||||
|
|
||||||
|
|
||||||
|
QApplication::restoreOverrideCursor(); |
||||||
|
|
||||||
|
} |
||||||
|
|
||||||
|
|
||||||
|
} |
@ -0,0 +1,39 @@ |
|||||||
|
/*
|
||||||
|
* This program is free software: you can redistribute it and/or modify |
||||||
|
* it under the terms of the GNU General Public License as published by |
||||||
|
* the Free Software Foundation, either version 3 of the License, or |
||||||
|
* (at your option) any later version. |
||||||
|
* |
||||||
|
* This program is distributed in the hope that it will be useful, |
||||||
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of |
||||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
||||||
|
* GNU General Public License for more details. |
||||||
|
* |
||||||
|
* You should have received a copy of the GNU General Public License |
||||||
|
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
*/ |
||||||
|
#ifndef UBExportCFF_H_ |
||||||
|
#define UBExportCFF_H_ |
||||||
|
|
||||||
|
#include <QtCore> |
||||||
|
|
||||||
|
#include "UBExportAdaptor.h" |
||||||
|
|
||||||
|
#include "frameworks/UBFileSystemUtils.h" |
||||||
|
|
||||||
|
class UBDocumentProxy; |
||||||
|
|
||||||
|
class UBExportCFF : public UBExportAdaptor |
||||||
|
{ |
||||||
|
Q_OBJECT; |
||||||
|
|
||||||
|
public: |
||||||
|
UBExportCFF(QObject *parent = 0); |
||||||
|
virtual ~UBExportCFF(); |
||||||
|
|
||||||
|
virtual QString exportName(); |
||||||
|
virtual QString exportExtention(); |
||||||
|
virtual void persist(UBDocumentProxy* pDocument); |
||||||
|
}; |
||||||
|
|
||||||
|
#endif /* UBExportCFF_H_ */ |
Loading…
Reference in new issue