diff options
author | Jean Claveau <jean.claveau@c277.fr> | 2014-09-05 17:05:24 +0200 |
---|---|---|
committer | Jean Claveau <jean.claveau@c277.fr> | 2014-09-05 17:05:24 +0200 |
commit | 31024eae7af4d333063c7dd382c825f2ab1d1c98 (patch) | |
tree | 5467adc1d863b8ee9e46936c49d134fdb3cb6e16 | |
parent | 9ac3868829a029c4b39e9f63cd9bc3f7fb47647d (diff) |
buildable wip
-rw-r--r-- | src/skin/skincontext.cpp | 12 | ||||
-rw-r--r-- | src/skin/svgparser.cpp | 11 | ||||
-rw-r--r-- | src/skin/svgparser.h | 4 | ||||
-rw-r--r-- | src/widget/wpixmapstore.cpp | 2 | ||||
-rw-r--r-- | src/widget/wpushbutton.cpp | 9 | ||||
-rw-r--r-- | src/widget/wpushbutton.h | 2 |
6 files changed, 23 insertions, 17 deletions
diff --git a/src/skin/skincontext.cpp b/src/skin/skincontext.cpp index c7024cfff9..37bebd6f1a 100644 --- a/src/skin/skincontext.cpp +++ b/src/skin/skincontext.cpp @@ -215,14 +215,14 @@ QString SkinContext::getPixmapPath(const QDomNode& pixmapNode) const { QDomNode svgNode = selectNode(pixmapNode, "svg"); if (!svgNode.isNull()) { // inline svg - pixmapPath = pSvgParser->parseSvgTree(svgNode); + pixmapPath = pSvgParser->saveToTempFile(pSvgParser->parseSvgTree(svgNode)); } else { // filename pixmapName = nodeToString(pixmapNode); if (!pixmapName.isEmpty()) { pixmapName = getSkinPath(pixmapName); if (pixmapName.endsWith(".svg", Qt::CaseInsensitive)) { - pixmapPath = pSvgParser->parseSvgFile(pixmapName); + pixmapPath = pSvgParser->saveToTempFile( pSvgParser->parseSvgFile(pixmapName) ); } else { pixmapPath = pixmapName; } @@ -237,13 +237,14 @@ QString SkinContext::getPixmapPath(const QDomNode& pixmapNode) const { QByteArray SkinContext::getPixmapBundle(const QDomNode& pixmapNode) const { /**/ QString pixmapPath, pixmapName; + QByteArray out; const SvgParser* pSvgParser = new SvgParser(*this); if (!pixmapNode.isNull()) { QDomNode svgNode = selectNode(pixmapNode, "svg"); if (!svgNode.isNull()) { // inline svg - pixmapPath = pSvgParser->saveToTempFile( + out = pSvgParser->saveToQByteArray( pSvgParser->parseSvgTree(svgNode) ); } else { // filename @@ -251,7 +252,7 @@ QByteArray SkinContext::getPixmapBundle(const QDomNode& pixmapNode) const { if (!pixmapName.isEmpty()) { pixmapName = getSkinPath(pixmapName); if (pixmapName.endsWith(".svg", Qt::CaseInsensitive)) { - pixmapPath = pSvgParser->parseAsQByteArray(pixmapName); + pixmapPath = pSvgParser->saveToQByteArray( pSvgParser->parseSvgFile(pixmapName) ); } else { pixmapPath = pixmapName; } @@ -260,8 +261,7 @@ QByteArray SkinContext::getPixmapBundle(const QDomNode& pixmapNode) const { } /**/ - QByteArray tmp; - return tmp; + return out; } diff --git a/src/skin/svgparser.cpp b/src/skin/svgparser.cpp index 84d9548961..2cdf3c1c4e 100644 --- a/src/skin/svgparser.cpp +++ b/src/skin/svgparser.cpp @@ -37,18 +37,19 @@ QDomDocument SvgParser::getDocument(const QDomNode& node) const { return document; } -QString SvgParser::parseSvgFile(const QString& svgFileName) const { +QDomNode SvgParser::parseSvgFile(const QString& svgFileName) const { QFile* file = new QFile(svgFileName); + QDomNode out; if (file->open(QIODevice::ReadWrite|QIODevice::Text)) { QDomDocument document; document.setContent(file); QDomNode svgNode = document.elementsByTagName("svg").item(0); - QString pixmapPath = parseSvgTree(svgNode); + out = parseSvgTree(svgNode); file->close(); - return pixmapPath; - } else { - return svgFileName; + return out; } + + return out; } QDomNode SvgParser::parseSvgTree(const QDomNode& svgSkinNode) const { diff --git a/src/skin/svgparser.h b/src/skin/svgparser.h index bfef437b87..72ed1558d6 100644 --- a/src/skin/svgparser.h +++ b/src/skin/svgparser.h @@ -38,9 +38,9 @@ class SvgParser { QDomNode parseSvgTree(const QDomNode& svgSkinNode) const; - QString parseSvgFile(const QString& svgFileName) const; + QDomNode parseSvgFile(const QString& svgFileName) const; QString saveToTempFile(const QDomNode& svgNode) const; - QByteArray parseToQByteArray(const QDomNode& svgNode) const; + QByteArray saveToQByteArray(const QDomNode& svgNode) const; void parseVariableElements(const QDomNode& svgNode) const; diff --git a/src/widget/wpixmapstore.cpp b/src/widget/wpixmapstore.cpp index b354773340..bf8a6764fc 100644 --- a/src/widget/wpixmapstore.cpp +++ b/src/widget/wpixmapstore.cpp @@ -68,6 +68,7 @@ Paintable::Paintable(const QString& fileName, DrawMode mode) } } +/** / Paintable::Paintable(const QByteArray& pixmapData, DrawMode mode) : m_draw_mode(mode) { if (fileName.endsWith(".svg", Qt::CaseInsensitive)) { @@ -92,6 +93,7 @@ Paintable::Paintable(const QByteArray& pixmapData, DrawMode mode) m_pPixmap.reset(pPixmap); } } +/**/ bool Paintable::isNull() const { diff --git a/src/widget/wpushbutton.cpp b/src/widget/wpushbutton.cpp index bac14aef5f..3c31a0cf59 100644 --- a/src/widget/wpushbutton.cpp +++ b/src/widget/wpushbutton.cpp @@ -203,7 +203,8 @@ void WPushButton::setStates(int iStates) { } // void WPushButton::setPixmap(int iState, bool bPressed, const QString& filename) { -template<typename pixmapBundle> void WPushButton::setPixmap(int iState, bool bPressed, const pixmapBundle sPixmapBundle) { +template<typename pixmapSource> +void WPushButton::setPixmap(int iState, bool bPressed, const pixmapSource sPixmapSource) { QVector<PaintablePointer>& pixmaps = bPressed ? m_pressedPixmaps : m_unpressedPixmaps; @@ -211,13 +212,13 @@ template<typename pixmapBundle> void WPushButton::setPixmap(int iState, bool bPr return; } - PaintablePointer pPixmap = WPixmapStore::getPaintable(sPixmapBundle, + PaintablePointer pPixmap = WPixmapStore::getPaintable(sPixmapSource, Paintable::STRETCH); if (pPixmap.isNull() || pPixmap->isNull()) { // Only log if it looks like the user tried to specify a pixmap. - if (!sPixmapBundle.isEmpty()) { - qDebug() << "WPushButton: Error loading pixmap:" << sPixmapBundle; + if (!sPixmapSource.isEmpty()) { + qDebug() << "WPushButton: Error loading pixmap:" << sPixmapSource; } } else { // Set size of widget equal to pixmap size diff --git a/src/widget/wpushbutton.h b/src/widget/wpushbutton.h index f318078f69..4b327128a8 100644 --- a/src/widget/wpushbutton.h +++ b/src/widget/wpushbutton.h @@ -79,6 +79,8 @@ class WPushButton : public WWidget { private: // Associates a pixmap of a given state of the button with the widget void setPixmap(int iState, bool bPressed, const QString &filename); + template<typename pixmapSource> + void setPixmap(int iState, bool bPressed, const pixmapSource sPixmapSource); // Associates a background pixmap with the widget. This is only needed if // the button pixmaps contains alpha channel values. |