@ -30,17 +30,9 @@ class UBGraphicsPixmapItem;
class UBGraphicsItemDelegate ;
class QTransform ;
class QPainter ;
class UBGraphicsItem ;
class QGraphicsItem ;
struct IwbExt {
IwbExt ( ) { ; }
IwbExt ( QDomNode element ) : element ( element ) , extAttr ( * ( new QVector < QDomNode > ( ) ) ) { ; }
QDomNode group ;
QDomNode element ;
QVector < QDomNode > extAttr ;
QHash < QString , QString > textAttributes ;
operator bool ( ) const { return ! group . isNull ( ) | | ! element . isNull ( ) ; }
} ;
class UBCFFSubsetAdaptor
{
@ -52,22 +44,9 @@ public:
private :
class UBCFFSubsetReader
{
//xml parse states definition
enum
{
NONE ,
IWB ,
SVG ,
PAGESET ,
PAGE ,
TEXTAREA ,
TSPAN
} ;
public :
UBCFFSubsetReader ( UBDocumentProxy * proxy , QFile * content ) ;
QXmlStreamReader mReader ;
UBDocumentProxy * mProxy ;
QString pwdContent ;
@ -79,6 +58,8 @@ private:
QRectF mCurrentSceneRect ;
QString mIndent ;
QRectF mViewBox ;
QRectF mViewPort ;
qreal mVBTransFactor ;
QPointF mViewBoxCenter ;
QSize mSize ;
@ -86,8 +67,8 @@ private:
// to kill
QDomDocument mDOMdoc ;
QDomNode mCurrentDOMElement ;
QHash < QString , IwbEx t > iwbExtPropertie s;
QHash < QString , UBGraphicsItemDelegate * > persistedItems ;
QHash < QString , UBGraphics Item * > persistedItem s;
QDir mTmpFlashDir ;
bool hashElements ( ) ;
void addExtentionsToHash ( QDomElement * parent , QDomElement * topGroup ) ;
@ -99,6 +80,8 @@ private:
bool parseSvgPage ( const QDomElement & parent ) ;
bool parseSvgPageset ( const QDomElement & parent ) ;
bool parseSvgElement ( const QDomElement & parent ) ;
bool parseIwbMeta ( const QDomElement & element ) ;
bool parseSvg ( const QDomElement & svgSection ) ;
inline bool parseSvgRect ( const QDomElement & element ) ;
inline bool parseSvgEllipse ( const QDomElement & element ) ;
@ -107,61 +90,44 @@ private:
inline bool parseSvgText ( const QDomElement & element ) ;
inline bool parseSvgTextarea ( const QDomElement & element ) ;
inline bool parseSvgImage ( const QDomElement & element ) ;
// inline bool parseSvgTSpan(const QDomElement)
bool parseIwbGroup ( QDomNode * element ) ;
inline void hashSceneItem ( QDomNode * element , UBGraphicsItemDelegate * item ) ;
inline bool parseSvgFlash ( const QDomElement & element ) ;
inline bool parseSvgAudio ( const QDomElement & element ) ;
inline bool parseSvgVideo ( const QDomElement & element ) ;
inline bool parseIwbGroup ( QDomElement & parent ) ;
inline bool parseIwbElement ( QDomElement & element ) ;
inline void parseTSpan ( const QDomElement & parent , QPainter & painter
, qreal & curX , qreal & curY , qreal & width , qreal & height , qreal & linespacing , QRectF & lastDrawnTextBoundingRect
, qreal & fontSize , QColor & fontColor , QString & fontFamily , QString & fontStretch , bool & italic
, int & fontWeight , int & textAlign , QTransform & fontTransform ) ;
inline void hashSceneItem ( const QDomElement & element , UBGraphicsItem * item ) ;
// to kill
void parseTextAttributes ( const QDomElement & element , qreal & fontSize , QColor & fontColor ,
QString & fontFamily , QString & fontStretch , bool & italic ,
int & fontWeight , int & textAlign , QTransform & fontTransform ) ;
//methods to store current xml parse state
int PopState ( ) ;
void PushState ( int state ) ;
//elements parsing methods
bool parseDoc ( ) ;
bool parseCurrentElementStart ( ) ;
bool parseCurrentElementCharacters ( ) ;
bool parseCurrentElementEnd ( ) ;
bool parseIwb ( ) ;
bool parseIwbMeta ( ) ;
bool parseSvg ( ) ;
bool parseRect ( ) ;
bool parseEllipse ( ) ;
bool parseTextArea ( ) ;
bool parseText ( ) ;
bool parsePolygon ( ) ;
bool parsePolyline ( ) ;
bool parsePage ( ) ;
bool parsePageSet ( ) ;
bool parseIwbElementRef ( ) ;
bool createNewScene ( ) ;
bool persistCurrentScene ( ) ;
QStack < int > stateStack ;
int currentState ;
//helper methods
bool getCurElementTransorm ( QTransform & transform ) ;
void repositionSvgItem ( UBGraphicsSvgItem * item , qreal width , qreal height , qreal x , qreal y , bool useTransform , QTransform & transform ) ;
void repositionPixmapItem ( UBGraphicsPixmapItem * item , qreal width , qreal height , qreal x , qreal y
, bool useTransform , QTransform & transform ) ;
// helper methods
// bool getCurElementTransorm(QTransform &transform);
void repositionSvgItem ( QGraphicsItem * item , qreal width , qreal height ,
qreal x , qreal y ,
bool useTransform , QTransform & transform ) ;
void experimentalReposition ( QGraphicsItem * item , qreal width , qreal height ,
qreal x , qreal y ,
bool useTransform , QTransform & transform ) ;
QColor colorFromString ( const QString & clrString ) ;
QTransform transformFromString ( const QString trString ) ;
bool getViewBoxDimenstions ( const QString & viewBox ) ;
QSvgGenerator * createSvgGenerator ( qreal width , qreal height ) ;
bool getTempFileName ( ) ;
void parseTextAttributes ( qreal & fontSize , QColor & fontColor ,
QString & fontFamily , QString & fontStretch , bool & italic ,
int & fontWeight , int & textAlign , QTransform & fontTransform ) ;
inline bool strToBool ( QString ) ;
bool createTempFlashPath ( ) ;
} ;
} ;