summaryrefslogtreecommitdiff
Unidiff
Diffstat (more/less context) (ignore whitespace changes)
-rw-r--r--noncore/graphics/drawpad/drawpadcanvas.cpp2
1 files changed, 1 insertions, 1 deletions
diff --git a/noncore/graphics/drawpad/drawpadcanvas.cpp b/noncore/graphics/drawpad/drawpadcanvas.cpp
index 49a8cf0..40c27b5 100644
--- a/noncore/graphics/drawpad/drawpadcanvas.cpp
+++ b/noncore/graphics/drawpad/drawpadcanvas.cpp
@@ -88,193 +88,193 @@ bool DrawPadCanvasXmlHandler::endElement(const QString& namespaceURI, const QStr
88 88
89 if (qName.compare("data") == 0) { 89 if (qName.compare("data") == 0) {
90 m_state = Unknown; 90 m_state = Unknown;
91 } 91 }
92 92
93 return true; 93 return true;
94} 94}
95 95
96bool DrawPadCanvasXmlHandler::characters(const QString& ch) 96bool DrawPadCanvasXmlHandler::characters(const QString& ch)
97{ 97{
98 if (m_state == InData) { 98 if (m_state == InData) {
99 QByteArray byteArray(ch.length() / 2); 99 QByteArray byteArray(ch.length() / 2);
100 100
101 for (int i = 0; i < (int)ch.length() / 2; i++) { 101 for (int i = 0; i < (int)ch.length() / 2; i++) {
102 char h = ch[2 * i].latin1(); 102 char h = ch[2 * i].latin1();
103 char l = ch[2 * i + 1].latin1(); 103 char l = ch[2 * i + 1].latin1();
104 uchar r = 0; 104 uchar r = 0;
105 105
106 if (h <= '9') { 106 if (h <= '9') {
107 r += h - '0'; 107 r += h - '0';
108 } else { 108 } else {
109 r += h - 'a' + 10; 109 r += h - 'a' + 10;
110 } 110 }
111 111
112 r = r << 4; 112 r = r << 4;
113 113
114 if (l <= '9') { 114 if (l <= '9') {
115 r += l - '0'; 115 r += l - '0';
116 } else { 116 } else {
117 r += l - 'a' + 10; 117 r += l - 'a' + 10;
118 } 118 }
119 119
120 byteArray[i] = r; 120 byteArray[i] = r;
121 } 121 }
122 122
123 if (m_dataLenght < ch.length() * 5) { 123 if (m_dataLenght < ch.length() * 5) {
124 m_dataLenght = ch.length() * 5; 124 m_dataLenght = ch.length() * 5;
125 } 125 }
126 126
127 QByteArray byteArrayUnzipped(m_dataLenght); 127 QByteArray byteArrayUnzipped(m_dataLenght);
128 ::uncompress((uchar*)byteArrayUnzipped.data(), &m_dataLenght, (uchar*)byteArray.data(), byteArray.size()); 128 ::uncompress((uchar*)byteArrayUnzipped.data(), &m_dataLenght, (uchar*)byteArray.data(), byteArray.size());
129 129
130 QImage image; 130 QImage image;
131 image.loadFromData((const uchar*)byteArrayUnzipped.data(), m_dataLenght, "XPM"); 131 image.loadFromData((const uchar*)byteArrayUnzipped.data(), m_dataLenght, "XPM");
132 132
133 QPixmap* pixmap = new QPixmap(image.width(), image.height()); 133 QPixmap* pixmap = new QPixmap(image.width(), image.height());
134 pixmap->convertFromImage(image); 134 pixmap->convertFromImage(image);
135 m_pixmaps.append(pixmap); 135 m_pixmaps.append(pixmap);
136 } 136 }
137 137
138 return true; 138 return true;
139} 139}
140 140
141DrawPadCanvas::DrawPadCanvas(DrawPad* drawPad, QWidget* parent, const char* name) 141DrawPadCanvas::DrawPadCanvas(DrawPad* drawPad, QWidget* parent, const char* name)
142 : QScrollView(parent, name) 142 : QScrollView(parent, name)
143{ 143{
144 m_pDrawPad = drawPad; 144 m_pDrawPad = drawPad;
145 m_pages.setAutoDelete(true); 145 m_pages.setAutoDelete(true);
146 m_pageBackups.setAutoDelete(true); 146 m_pageBackups.setAutoDelete(true);
147} 147}
148 148
149DrawPadCanvas::~DrawPadCanvas() 149DrawPadCanvas::~DrawPadCanvas()
150{ 150{
151} 151}
152 152
153void DrawPadCanvas::load(QIODevice* ioDevice) 153void DrawPadCanvas::load(QIODevice* ioDevice)
154{ 154{
155 QTextStream textStream(ioDevice); 155 QTextStream textStream(ioDevice);
156 textStream.setCodec(QTextCodec::codecForName("UTF-8")); 156 textStream.setCodec(QTextCodec::codecForName("UTF-8"));
157 157
158 QXmlInputSource xmlInputSource(textStream); 158 QXmlInputSource xmlInputSource(textStream);
159 QXmlSimpleReader xmlSimpleReader; 159 QXmlSimpleReader xmlSimpleReader;
160 DrawPadCanvasXmlHandler drawPadCanvasXmlHandler; 160 DrawPadCanvasXmlHandler drawPadCanvasXmlHandler;
161 161
162 xmlSimpleReader.setContentHandler(&drawPadCanvasXmlHandler); 162 xmlSimpleReader.setContentHandler(&drawPadCanvasXmlHandler);
163 xmlSimpleReader.parse(xmlInputSource); 163 xmlSimpleReader.parse(xmlInputSource);
164 164
165 m_pages = drawPadCanvasXmlHandler.pixmaps(); 165 m_pages = drawPadCanvasXmlHandler.pixmaps();
166 166
167 if (m_pages.isEmpty()) { 167 if (m_pages.isEmpty()) {
168 m_pages.append(new QPixmap(contentsRect().size())); 168 m_pages.append(new QPixmap(contentsRect().size()));
169 m_pages.current()->fill(Qt::white); 169 m_pages.current()->fill(Qt::white);
170 } 170 }
171 171
172 m_pageBackups.clear(); 172 m_pageBackups.clear();
173 m_pageBackups.append(new QPixmap(*(m_pages.current()))); 173 m_pageBackups.append(new QPixmap(*(m_pages.current())));
174 174
175 resizeContents(m_pages.current()->width(), m_pages.current()->height()); 175 resizeContents(m_pages.current()->width(), m_pages.current()->height());
176 viewport()->update(); 176 viewport()->update();
177 177
178 emit pagesChanged(); 178 emit pagesChanged();
179 emit pageBackupsChanged(); 179 emit pageBackupsChanged();
180} 180}
181 181
182void DrawPadCanvas::initialPage() 182void DrawPadCanvas::initialPage()
183{ 183{
184 m_pages.append(new QPixmap(234, 252)); 184 m_pages.append(new QPixmap(234, 233));
185 m_pages.current()->fill(Qt::white); 185 m_pages.current()->fill(Qt::white);
186 186
187 m_pageBackups.clear(); 187 m_pageBackups.clear();
188 m_pageBackups.append(new QPixmap(*(m_pages.current()))); 188 m_pageBackups.append(new QPixmap(*(m_pages.current())));
189 189
190 resizeContents(m_pages.current()->width(), m_pages.current()->height()); 190 resizeContents(m_pages.current()->width(), m_pages.current()->height());
191 viewport()->update(); 191 viewport()->update();
192 192
193 emit pagesChanged(); 193 emit pagesChanged();
194 emit pageBackupsChanged(); 194 emit pageBackupsChanged();
195} 195}
196 196
197void DrawPadCanvas::save(QIODevice* ioDevice) 197void DrawPadCanvas::save(QIODevice* ioDevice)
198{ 198{
199 QTextStream textStream(ioDevice); 199 QTextStream textStream(ioDevice);
200 textStream.setCodec(QTextCodec::codecForName("UTF-8")); 200 textStream.setCodec(QTextCodec::codecForName("UTF-8"));
201 201
202 textStream << "<drawpad>" << endl; 202 textStream << "<drawpad>" << endl;
203 textStream << " <images>" << endl; 203 textStream << " <images>" << endl;
204 204
205 QListIterator<QPixmap> bufferIterator(m_pages); 205 QListIterator<QPixmap> bufferIterator(m_pages);
206 206
207 for (bufferIterator.toFirst(); bufferIterator.current() != 0; ++bufferIterator) { 207 for (bufferIterator.toFirst(); bufferIterator.current() != 0; ++bufferIterator) {
208 textStream << " <image>" << endl; 208 textStream << " <image>" << endl;
209 209
210 QImage image = bufferIterator.current()->convertToImage(); 210 QImage image = bufferIterator.current()->convertToImage();
211 QByteArray byteArray; 211 QByteArray byteArray;
212 QBuffer buffer(byteArray); 212 QBuffer buffer(byteArray);
213 QImageIO imageIO(&buffer, "XPM"); 213 QImageIO imageIO(&buffer, "XPM");
214 214
215 buffer.open(IO_WriteOnly); 215 buffer.open(IO_WriteOnly);
216 imageIO.setImage(image); 216 imageIO.setImage(image);
217 imageIO.write(); 217 imageIO.write();
218 buffer.close(); 218 buffer.close();
219 219
220 ulong size = byteArray.size() * 2; 220 ulong size = byteArray.size() * 2;
221 QByteArray byteArrayZipped(size); 221 QByteArray byteArrayZipped(size);
222 ::compress((uchar*)byteArrayZipped.data(), &size, (uchar*)byteArray.data(), byteArray.size()); 222 ::compress((uchar*)byteArrayZipped.data(), &size, (uchar*)byteArray.data(), byteArray.size());
223 223
224 textStream << " <data length=\"" << byteArray.size() << "\">"; 224 textStream << " <data length=\"" << byteArray.size() << "\">";
225 225
226 static const char hexchars[] = "0123456789abcdef"; 226 static const char hexchars[] = "0123456789abcdef";
227 227
228 for (int i = 0; i < (int)size; i++ ) { 228 for (int i = 0; i < (int)size; i++ ) {
229 uchar s = (uchar)byteArrayZipped[i]; 229 uchar s = (uchar)byteArrayZipped[i];
230 textStream << hexchars[s >> 4]; 230 textStream << hexchars[s >> 4];
231 textStream << hexchars[s & 0x0f]; 231 textStream << hexchars[s & 0x0f];
232 } 232 }
233 233
234 textStream << "</data>" << endl; 234 textStream << "</data>" << endl;
235 textStream << " </image>" << endl; 235 textStream << " </image>" << endl;
236 } 236 }
237 237
238 textStream << " </images>" << endl; 238 textStream << " </images>" << endl;
239 textStream << "</drawpad>"; 239 textStream << "</drawpad>";
240} 240}
241 241
242QPixmap* DrawPadCanvas::currentPage() 242QPixmap* DrawPadCanvas::currentPage()
243{ 243{
244 return m_pages.current(); 244 return m_pages.current();
245} 245}
246 246
247uint DrawPadCanvas::pagePosition() 247uint DrawPadCanvas::pagePosition()
248{ 248{
249 return (m_pages.at() + 1); 249 return (m_pages.at() + 1);
250} 250}
251 251
252uint DrawPadCanvas::pageCount() 252uint DrawPadCanvas::pageCount()
253{ 253{
254 return m_pages.count(); 254 return m_pages.count();
255} 255}
256 256
257void DrawPadCanvas::clearAll() 257void DrawPadCanvas::clearAll()
258{ 258{
259 m_pages.clear(); 259 m_pages.clear();
260 260
261 m_pages.append(new QPixmap(contentsRect().size())); 261 m_pages.append(new QPixmap(contentsRect().size()));
262 m_pages.current()->fill(Qt::white); 262 m_pages.current()->fill(Qt::white);
263 263
264 m_pageBackups.clear(); 264 m_pageBackups.clear();
265 m_pageBackups.append(new QPixmap(*(m_pages.current()))); 265 m_pageBackups.append(new QPixmap(*(m_pages.current())));
266 266
267 resizeContents(m_pages.current()->width(), m_pages.current()->height()); 267 resizeContents(m_pages.current()->width(), m_pages.current()->height());
268 viewport()->update(); 268 viewport()->update();
269 269
270 emit pagesChanged(); 270 emit pagesChanged();
271 emit pageBackupsChanged(); 271 emit pageBackupsChanged();
272} 272}
273 273
274void DrawPadCanvas::newPage() 274void DrawPadCanvas::newPage()
275{ 275{
276 QRect rect = contentsRect(); 276 QRect rect = contentsRect();
277 277
278 NewPageDialog newPageDialog(this); 278 NewPageDialog newPageDialog(this);
279 newPageDialog.setWidth(rect.width()); 279 newPageDialog.setWidth(rect.width());
280 newPageDialog.setHeight(rect.height()); 280 newPageDialog.setHeight(rect.height());