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