Diffstat (limited to 'noncore/graphics/drawpad/drawpadcanvas.cpp') (more/less context) (ignore whitespace changes)
-rw-r--r-- | noncore/graphics/drawpad/drawpadcanvas.cpp | 12 |
1 files changed, 9 insertions, 3 deletions
diff --git a/noncore/graphics/drawpad/drawpadcanvas.cpp b/noncore/graphics/drawpad/drawpadcanvas.cpp index 8818c03..b8a1c2e 100644 --- a/noncore/graphics/drawpad/drawpadcanvas.cpp +++ b/noncore/graphics/drawpad/drawpadcanvas.cpp | |||
@@ -54,6 +54,7 @@ private: | |||
54 | 54 | ||
55 | State m_state; | 55 | State m_state; |
56 | ulong m_dataLenght; | 56 | ulong m_dataLenght; |
57 | QString m_dataFormat; | ||
57 | QList<QPixmap> m_pixmaps; | 58 | QList<QPixmap> m_pixmaps; |
58 | }; | 59 | }; |
59 | 60 | ||
@@ -80,6 +81,11 @@ bool DrawPadCanvasXmlHandler::startElement(const QString& namespaceURI, const QS | |||
80 | if (qName.compare("data") == 0) { | 81 | if (qName.compare("data") == 0) { |
81 | m_state = InData; | 82 | m_state = InData; |
82 | m_dataLenght = atts.value("length").toULong(); | 83 | m_dataLenght = atts.value("length").toULong(); |
84 | m_dataFormat = atts.value("format"); | ||
85 | |||
86 | if (m_dataFormat.isEmpty()) { | ||
87 | m_dataFormat = "XPM"; | ||
88 | } | ||
83 | } | 89 | } |
84 | 90 | ||
85 | return true; | 91 | return true; |
@@ -133,7 +139,7 @@ bool DrawPadCanvasXmlHandler::characters(const QString& ch) | |||
133 | ::uncompress((uchar*)byteArrayUnzipped.data(), &m_dataLenght, (uchar*)byteArray.data(), byteArray.size()); | 139 | ::uncompress((uchar*)byteArrayUnzipped.data(), &m_dataLenght, (uchar*)byteArray.data(), byteArray.size()); |
134 | 140 | ||
135 | QImage image; | 141 | QImage image; |
136 | image.loadFromData((const uchar*)byteArrayUnzipped.data(), m_dataLenght, "XPM"); | 142 | image.loadFromData((const uchar*)byteArrayUnzipped.data(), m_dataLenght, m_dataFormat); |
137 | 143 | ||
138 | QPixmap* pixmap = new QPixmap(image.width(), image.height()); | 144 | QPixmap* pixmap = new QPixmap(image.width(), image.height()); |
139 | pixmap->convertFromImage(image); | 145 | pixmap->convertFromImage(image); |
@@ -215,7 +221,7 @@ void DrawPadCanvas::save(QIODevice* ioDevice) | |||
215 | QImage image = bufferIterator.current()->convertToImage(); | 221 | QImage image = bufferIterator.current()->convertToImage(); |
216 | QByteArray byteArray; | 222 | QByteArray byteArray; |
217 | QBuffer buffer(byteArray); | 223 | QBuffer buffer(byteArray); |
218 | QImageIO imageIO(&buffer, "XPM"); | 224 | QImageIO imageIO(&buffer, "PNG"); |
219 | 225 | ||
220 | buffer.open(IO_WriteOnly); | 226 | buffer.open(IO_WriteOnly); |
221 | imageIO.setImage(image); | 227 | imageIO.setImage(image); |
@@ -226,7 +232,7 @@ void DrawPadCanvas::save(QIODevice* ioDevice) | |||
226 | QByteArray byteArrayZipped(size); | 232 | QByteArray byteArrayZipped(size); |
227 | ::compress((uchar*)byteArrayZipped.data(), &size, (uchar*)byteArray.data(), byteArray.size()); | 233 | ::compress((uchar*)byteArrayZipped.data(), &size, (uchar*)byteArray.data(), byteArray.size()); |
228 | 234 | ||
229 | textStream << " <data length=\"" << byteArray.size() << "\">"; | 235 | textStream << " <data length=\"" << byteArray.size() << "\" format=\"PNG\">"; |
230 | 236 | ||
231 | static const char hexchars[] = "0123456789abcdef"; | 237 | static const char hexchars[] = "0123456789abcdef"; |
232 | 238 | ||