summaryrefslogtreecommitdiff
Unidiff
Diffstat (more/less context) (ignore whitespace changes)
-rw-r--r--noncore/graphics/drawpad/drawpadcanvas.cpp2
1 files changed, 2 insertions, 0 deletions
diff --git a/noncore/graphics/drawpad/drawpadcanvas.cpp b/noncore/graphics/drawpad/drawpadcanvas.cpp
index 3ddd7b7..58192d3 100644
--- a/noncore/graphics/drawpad/drawpadcanvas.cpp
+++ b/noncore/graphics/drawpad/drawpadcanvas.cpp
@@ -100,128 +100,130 @@ bool DrawPadCanvasXmlHandler::endElement(const QString& namespaceURI, const QStr
100 if (qName.compare("data") == 0) { 100 if (qName.compare("data") == 0) {
101 m_state = Unknown; 101 m_state = Unknown;
102 } 102 }
103 103
104 return true; 104 return true;
105} 105}
106 106
107bool DrawPadCanvasXmlHandler::characters(const QString& ch) 107bool DrawPadCanvasXmlHandler::characters(const QString& ch)
108{ 108{
109 if (m_state == InData) { 109 if (m_state == InData) {
110 QByteArray byteArray(ch.length() / 2); 110 QByteArray byteArray(ch.length() / 2);
111 111
112 for (int i = 0; i < (int)ch.length() / 2; i++) { 112 for (int i = 0; i < (int)ch.length() / 2; i++) {
113 char h = ch[2 * i].latin1(); 113 char h = ch[2 * i].latin1();
114 char l = ch[2 * i + 1].latin1(); 114 char l = ch[2 * i + 1].latin1();
115 uchar r = 0; 115 uchar r = 0;
116 116
117 if (h <= '9') { 117 if (h <= '9') {
118 r += h - '0'; 118 r += h - '0';
119 } else { 119 } else {
120 r += h - 'a' + 10; 120 r += h - 'a' + 10;
121 } 121 }
122 122
123 r = r << 4; 123 r = r << 4;
124 124
125 if (l <= '9') { 125 if (l <= '9') {
126 r += l - '0'; 126 r += l - '0';
127 } else { 127 } else {
128 r += l - 'a' + 10; 128 r += l - 'a' + 10;
129 } 129 }
130 130
131 byteArray[i] = r; 131 byteArray[i] = r;
132 } 132 }
133 133
134 134
135 QImage image; 135 QImage image;
136 136
137 if (m_dataFormat == "XPM") { 137 if (m_dataFormat == "XPM") {
138 if (m_dataLenght < ch.length() * 5) { 138 if (m_dataLenght < ch.length() * 5) {
139 m_dataLenght = ch.length() * 5; 139 m_dataLenght = ch.length() * 5;
140 } 140 }
141 141
142 QByteArray byteArrayUnzipped(m_dataLenght); 142 QByteArray byteArrayUnzipped(m_dataLenght);
143 ::uncompress((uchar*)byteArrayUnzipped.data(), &m_dataLenght, (uchar*)byteArray.data(), byteArray.size()); 143 ::uncompress((uchar*)byteArrayUnzipped.data(), &m_dataLenght, (uchar*)byteArray.data(), byteArray.size());
144 144
145 image.loadFromData((const uchar*)byteArrayUnzipped.data(), m_dataLenght, m_dataFormat); 145 image.loadFromData((const uchar*)byteArrayUnzipped.data(), m_dataLenght, m_dataFormat);
146 } else { 146 } else {
147 image.loadFromData((const uchar*)byteArray.data(), m_dataLenght, m_dataFormat); 147 image.loadFromData((const uchar*)byteArray.data(), m_dataLenght, m_dataFormat);
148 } 148 }
149 149
150 QPixmap* pixmap = new QPixmap(image.width(), image.height()); 150 QPixmap* pixmap = new QPixmap(image.width(), image.height());
151 pixmap->convertFromImage(image); 151 pixmap->convertFromImage(image);
152 m_pixmaps.append(pixmap); 152 m_pixmaps.append(pixmap);
153 } 153 }
154 154
155 return true; 155 return true;
156} 156}
157 157
158DrawPadCanvas::DrawPadCanvas(DrawPad* drawPad, QWidget* parent, const char* name) 158DrawPadCanvas::DrawPadCanvas(DrawPad* drawPad, QWidget* parent, const char* name)
159 : QScrollView(parent, name) 159 : QScrollView(parent, name)
160{ 160{
161 m_pDrawPad = drawPad; 161 m_pDrawPad = drawPad;
162 m_pages.setAutoDelete(true); 162 m_pages.setAutoDelete(true);
163 m_pageBackups.setAutoDelete(true); 163 m_pageBackups.setAutoDelete(true);
164
165 viewport()->setBackgroundMode(QWidget::NoBackground);
164} 166}
165 167
166DrawPadCanvas::~DrawPadCanvas() 168DrawPadCanvas::~DrawPadCanvas()
167{ 169{
168} 170}
169 171
170void DrawPadCanvas::load(QIODevice* ioDevice) 172void DrawPadCanvas::load(QIODevice* ioDevice)
171{ 173{
172 QTextStream textStream(ioDevice); 174 QTextStream textStream(ioDevice);
173 textStream.setCodec(QTextCodec::codecForName("UTF-8")); 175 textStream.setCodec(QTextCodec::codecForName("UTF-8"));
174 176
175 QXmlInputSource xmlInputSource(textStream); 177 QXmlInputSource xmlInputSource(textStream);
176 QXmlSimpleReader xmlSimpleReader; 178 QXmlSimpleReader xmlSimpleReader;
177 DrawPadCanvasXmlHandler drawPadCanvasXmlHandler; 179 DrawPadCanvasXmlHandler drawPadCanvasXmlHandler;
178 180
179 xmlSimpleReader.setContentHandler(&drawPadCanvasXmlHandler); 181 xmlSimpleReader.setContentHandler(&drawPadCanvasXmlHandler);
180 xmlSimpleReader.parse(xmlInputSource); 182 xmlSimpleReader.parse(xmlInputSource);
181 183
182 m_pages = drawPadCanvasXmlHandler.pixmaps(); 184 m_pages = drawPadCanvasXmlHandler.pixmaps();
183 185
184 if (m_pages.isEmpty()) { 186 if (m_pages.isEmpty()) {
185 m_pages.append(new QPixmap(contentsRect().size())); 187 m_pages.append(new QPixmap(contentsRect().size()));
186 m_pages.current()->fill(Qt::white); 188 m_pages.current()->fill(Qt::white);
187 } 189 }
188 190
189 m_pageBackups.clear(); 191 m_pageBackups.clear();
190 m_pageBackups.append(new QPixmap(*(m_pages.current()))); 192 m_pageBackups.append(new QPixmap(*(m_pages.current())));
191 193
192 resizeContents(m_pages.current()->width(), m_pages.current()->height()); 194 resizeContents(m_pages.current()->width(), m_pages.current()->height());
193 viewport()->update(); 195 viewport()->update();
194 196
195 emit pagesChanged(); 197 emit pagesChanged();
196 emit pageBackupsChanged(); 198 emit pageBackupsChanged();
197} 199}
198 200
199void DrawPadCanvas::initialPage() 201void DrawPadCanvas::initialPage()
200{ 202{
201 m_pages.append(new QPixmap(236, 232)); 203 m_pages.append(new QPixmap(236, 232));
202 m_pages.current()->fill(Qt::white); 204 m_pages.current()->fill(Qt::white);
203 205
204 m_pageBackups.clear(); 206 m_pageBackups.clear();
205 m_pageBackups.append(new QPixmap(*(m_pages.current()))); 207 m_pageBackups.append(new QPixmap(*(m_pages.current())));
206 208
207 resizeContents(m_pages.current()->width(), m_pages.current()->height()); 209 resizeContents(m_pages.current()->width(), m_pages.current()->height());
208 viewport()->update(); 210 viewport()->update();
209 211
210 emit pagesChanged(); 212 emit pagesChanged();
211 emit pageBackupsChanged(); 213 emit pageBackupsChanged();
212} 214}
213 215
214void DrawPadCanvas::save(QIODevice* ioDevice) 216void DrawPadCanvas::save(QIODevice* ioDevice)
215{ 217{
216 QTextStream textStream(ioDevice); 218 QTextStream textStream(ioDevice);
217 textStream.setCodec(QTextCodec::codecForName("UTF-8")); 219 textStream.setCodec(QTextCodec::codecForName("UTF-8"));
218 220
219 textStream << "<drawpad>" << endl; 221 textStream << "<drawpad>" << endl;
220 textStream << " <images>" << endl; 222 textStream << " <images>" << endl;
221 223
222 QListIterator<QPixmap> bufferIterator(m_pages); 224 QListIterator<QPixmap> bufferIterator(m_pages);
223 225
224 for (bufferIterator.toFirst(); bufferIterator.current() != 0; ++bufferIterator) { 226 for (bufferIterator.toFirst(); bufferIterator.current() != 0; ++bufferIterator) {
225 textStream << " <image>" << endl; 227 textStream << " <image>" << endl;
226 228
227 QImage image = bufferIterator.current()->convertToImage(); 229 QImage image = bufferIterator.current()->convertToImage();