author | leseb <leseb> | 2002-03-27 17:09:29 (UTC) |
---|---|---|
committer | leseb <leseb> | 2002-03-27 17:09:29 (UTC) |
commit | 4372bb8e59eb4b0d2fa5fba8f6525dc14873f239 (patch) (unidiff) | |
tree | 6947938ca5d22d3a373741ba3acfc20e8dd67729 /noncore/graphics/drawpad/drawpadcanvas.cpp | |
parent | fb056735d9a021787f83c6a791225a7ca70c1eb5 (diff) | |
download | opie-4372bb8e59eb4b0d2fa5fba8f6525dc14873f239.zip opie-4372bb8e59eb4b0d2fa5fba8f6525dc14873f239.tar.gz opie-4372bb8e59eb4b0d2fa5fba8f6525dc14873f239.tar.bz2 |
Import/export dialogs, improved new page dialog, new tools, ...
Diffstat (limited to 'noncore/graphics/drawpad/drawpadcanvas.cpp') (more/less context) (ignore whitespace changes)
-rw-r--r-- | noncore/graphics/drawpad/drawpadcanvas.cpp | 144 |
1 files changed, 112 insertions, 32 deletions
diff --git a/noncore/graphics/drawpad/drawpadcanvas.cpp b/noncore/graphics/drawpad/drawpadcanvas.cpp index 40c27b5..8818c03 100644 --- a/noncore/graphics/drawpad/drawpadcanvas.cpp +++ b/noncore/graphics/drawpad/drawpadcanvas.cpp | |||
@@ -15,5 +15,9 @@ | |||
15 | 15 | ||
16 | #include "drawmode.h" | ||
17 | #include "drawpad.h" | 16 | #include "drawpad.h" |
18 | #include "newpagedialog.h" | 17 | #include "newpagedialog.h" |
18 | #include "tool.h" | ||
19 | |||
20 | #include <qpe/applnk.h> | ||
21 | #include <qpe/filemanager.h> | ||
22 | #include <qpe/mimetype.h> | ||
19 | 23 | ||
@@ -21,2 +25,3 @@ | |||
21 | #include <qimage.h> | 25 | #include <qimage.h> |
26 | #include <qmessagebox.h> | ||
22 | #include <qpainter.h> | 27 | #include <qpainter.h> |
@@ -241,2 +246,56 @@ void DrawPadCanvas::save(QIODevice* ioDevice) | |||
241 | 246 | ||
247 | void DrawPadCanvas::importPage(const QString& fileName) | ||
248 | { | ||
249 | QPixmap* importedPixmap = new QPixmap(); | ||
250 | |||
251 | importedPixmap->load(fileName); | ||
252 | m_pages.insert(m_pages.at() + 1, importedPixmap); | ||
253 | |||
254 | m_pageBackups.clear(); | ||
255 | m_pageBackups.append(new QPixmap(*(m_pages.current()))); | ||
256 | |||
257 | resizeContents(m_pages.current()->width(), m_pages.current()->height()); | ||
258 | viewport()->update(); | ||
259 | |||
260 | emit pagesChanged(); | ||
261 | emit pageBackupsChanged(); | ||
262 | } | ||
263 | |||
264 | void DrawPadCanvas::exportPage(uint fromPage, uint toPage, const QString& name,const QString& format) | ||
265 | { | ||
266 | if (fromPage == toPage) { | ||
267 | DocLnk docLnk; | ||
268 | MimeType mimeType(format); | ||
269 | |||
270 | docLnk.setName(name); | ||
271 | docLnk.setType(mimeType.id()); | ||
272 | |||
273 | FileManager fileManager; | ||
274 | QIODevice* ioDevice = fileManager.saveFile(docLnk); | ||
275 | QImageIO imageIO(ioDevice, format); | ||
276 | |||
277 | QImage image = m_pages.current()->convertToImage(); | ||
278 | imageIO.setImage(image); | ||
279 | imageIO.write(); | ||
280 | delete ioDevice; | ||
281 | } else { | ||
282 | for (uint i = fromPage; i <= toPage; i++) { | ||
283 | DocLnk docLnk; | ||
284 | MimeType mimeType(format); | ||
285 | |||
286 | docLnk.setName(name + QString::number(i)); | ||
287 | docLnk.setType(mimeType.id()); | ||
288 | |||
289 | FileManager fileManager; | ||
290 | QIODevice* ioDevice = fileManager.saveFile(docLnk); | ||
291 | QImageIO imageIO(ioDevice, format); | ||
292 | |||
293 | QImage image = m_pages.at(i - 1)->convertToImage(); | ||
294 | imageIO.setImage(image); | ||
295 | imageIO.write(); | ||
296 | delete ioDevice; | ||
297 | } | ||
298 | } | ||
299 | } | ||
300 | |||
242 | QPixmap* DrawPadCanvas::currentPage() | 301 | QPixmap* DrawPadCanvas::currentPage() |
@@ -256,17 +315,24 @@ uint DrawPadCanvas::pageCount() | |||
256 | 315 | ||
257 | void DrawPadCanvas::clearAll() | 316 | void DrawPadCanvas::deleteAll() |
258 | { | 317 | { |
259 | m_pages.clear(); | 318 | QMessageBox messageBox(tr("Delete All"), tr("Do you want to delete\nall the pages?"), |
319 | QMessageBox::Information, QMessageBox::Yes, | ||
320 | QMessageBox::No | QMessageBox::Escape | QMessageBox::Default, | ||
321 | QMessageBox::NoButton, this); | ||
260 | 322 | ||
261 | m_pages.append(new QPixmap(contentsRect().size())); | 323 | if (messageBox.exec() == QMessageBox::Yes) { |
262 | m_pages.current()->fill(Qt::white); | 324 | m_pages.clear(); |
263 | 325 | ||
264 | m_pageBackups.clear(); | 326 | m_pages.append(new QPixmap(contentsRect().size())); |
265 | m_pageBackups.append(new QPixmap(*(m_pages.current()))); | 327 | m_pages.current()->fill(Qt::white); |
266 | 328 | ||
267 | resizeContents(m_pages.current()->width(), m_pages.current()->height()); | 329 | m_pageBackups.clear(); |
268 | viewport()->update(); | 330 | m_pageBackups.append(new QPixmap(*(m_pages.current()))); |
269 | 331 | ||
270 | emit pagesChanged(); | 332 | resizeContents(m_pages.current()->width(), m_pages.current()->height()); |
271 | emit pageBackupsChanged(); | 333 | viewport()->update(); |
334 | |||
335 | emit pagesChanged(); | ||
336 | emit pageBackupsChanged(); | ||
337 | } | ||
272 | } | 338 | } |
@@ -277,9 +343,9 @@ void DrawPadCanvas::newPage() | |||
277 | 343 | ||
278 | NewPageDialog newPageDialog(this); | 344 | NewPageDialog newPageDialog(rect.width(), rect.height(), m_pDrawPad->pen().color(), |
279 | newPageDialog.setWidth(rect.width()); | 345 | m_pDrawPad->brush().color(), this); |
280 | newPageDialog.setHeight(rect.height()); | ||
281 | 346 | ||
282 | if (newPageDialog.exec() == QDialog::Accepted) { | 347 | if (newPageDialog.exec() == QDialog::Accepted) { |
283 | m_pages.insert(m_pages.at() + 1, new QPixmap(newPageDialog.width(), newPageDialog.height())); | 348 | m_pages.insert(m_pages.at() + 1, new QPixmap(newPageDialog.selectedWidth(), |
284 | m_pages.current()->fill(Qt::white); | 349 | newPageDialog.selectedHeight())); |
350 | m_pages.current()->fill(newPageDialog.selectedColor()); | ||
285 | 351 | ||
@@ -298,5 +364,12 @@ void DrawPadCanvas::clearPage() | |||
298 | { | 364 | { |
299 | m_pages.current()->fill(Qt::white); | 365 | QMessageBox messageBox(tr("Clear Page"), tr("Do you want to clear\nthe current page?"), |
366 | QMessageBox::Information, QMessageBox::Yes, | ||
367 | QMessageBox::No | QMessageBox::Escape | QMessageBox::Default, | ||
368 | QMessageBox::NoButton, this); | ||
300 | 369 | ||
301 | viewport()->update(); | 370 | if (messageBox.exec() == QMessageBox::Yes) { |
371 | m_pages.current()->fill(Qt::white); | ||
372 | |||
373 | viewport()->update(); | ||
374 | } | ||
302 | } | 375 | } |
@@ -305,17 +378,24 @@ void DrawPadCanvas::deletePage() | |||
305 | { | 378 | { |
306 | m_pages.remove(m_pages.current()); | 379 | QMessageBox messageBox(tr("Delete Page"), tr("Do you want to delete\nthe current page?"), |
380 | QMessageBox::Information, QMessageBox::Yes, | ||
381 | QMessageBox::No | QMessageBox::Escape | QMessageBox::Default, | ||
382 | QMessageBox::NoButton, this); | ||
307 | 383 | ||
308 | if (m_pages.isEmpty()) { | 384 | if (messageBox.exec() == QMessageBox::Yes) { |
309 | m_pages.append(new QPixmap(contentsRect().size())); | 385 | m_pages.remove(m_pages.current()); |
310 | m_pages.current()->fill(Qt::white); | ||
311 | } | ||
312 | 386 | ||
313 | m_pageBackups.clear(); | 387 | if (m_pages.isEmpty()) { |
314 | m_pageBackups.append(new QPixmap(*(m_pages.current()))); | 388 | m_pages.append(new QPixmap(contentsRect().size())); |
389 | m_pages.current()->fill(Qt::white); | ||
390 | } | ||
315 | 391 | ||
316 | resizeContents(m_pages.current()->width(), m_pages.current()->height()); | 392 | m_pageBackups.clear(); |
317 | viewport()->update(); | 393 | m_pageBackups.append(new QPixmap(*(m_pages.current()))); |
318 | 394 | ||
319 | emit pagesChanged(); | 395 | resizeContents(m_pages.current()->width(), m_pages.current()->height()); |
320 | emit pageBackupsChanged(); | 396 | viewport()->update(); |
397 | |||
398 | emit pagesChanged(); | ||
399 | emit pageBackupsChanged(); | ||
400 | } | ||
321 | } | 401 | } |
@@ -414,3 +494,3 @@ void DrawPadCanvas::contentsMousePressEvent(QMouseEvent* e) | |||
414 | { | 494 | { |
415 | m_pDrawPad->drawMode()->mousePressEvent(e); | 495 | m_pDrawPad->tool()->mousePressEvent(e); |
416 | } | 496 | } |
@@ -419,3 +499,3 @@ void DrawPadCanvas::contentsMouseReleaseEvent(QMouseEvent* e) | |||
419 | { | 499 | { |
420 | m_pDrawPad->drawMode()->mouseReleaseEvent(e); | 500 | m_pDrawPad->tool()->mouseReleaseEvent(e); |
421 | 501 | ||
@@ -437,3 +517,3 @@ void DrawPadCanvas::contentsMouseMoveEvent(QMouseEvent* e) | |||
437 | { | 517 | { |
438 | m_pDrawPad->drawMode()->mouseMoveEvent(e); | 518 | m_pDrawPad->tool()->mouseMoveEvent(e); |
439 | } | 519 | } |