-rw-r--r-- | noncore/graphics/drawpad/drawpadcanvas.cpp | 12 |
1 files changed, 11 insertions, 1 deletions
diff --git a/noncore/graphics/drawpad/drawpadcanvas.cpp b/noncore/graphics/drawpad/drawpadcanvas.cpp index b39a633..65b3dea 100644 --- a/noncore/graphics/drawpad/drawpadcanvas.cpp +++ b/noncore/graphics/drawpad/drawpadcanvas.cpp | |||
@@ -446,99 +446,109 @@ bool DrawPadCanvas::goPreviousPageEnabled() | |||
446 | return (m_pages.current() != m_pages.getFirst()); | 446 | return (m_pages.current() != m_pages.getFirst()); |
447 | } | 447 | } |
448 | 448 | ||
449 | bool DrawPadCanvas::goNextPageEnabled() | 449 | bool DrawPadCanvas::goNextPageEnabled() |
450 | { | 450 | { |
451 | return (m_pages.current() != m_pages.getLast()); | 451 | return (m_pages.current() != m_pages.getLast()); |
452 | } | 452 | } |
453 | 453 | ||
454 | void DrawPadCanvas::undo() | 454 | void DrawPadCanvas::undo() |
455 | { | 455 | { |
456 | *(m_pages.current()) = *(m_pageBackups.prev()); | 456 | *(m_pages.current()) = *(m_pageBackups.prev()); |
457 | 457 | ||
458 | viewport()->update(); | 458 | viewport()->update(); |
459 | 459 | ||
460 | emit pageBackupsChanged(); | 460 | emit pageBackupsChanged(); |
461 | } | 461 | } |
462 | 462 | ||
463 | void DrawPadCanvas::redo() | 463 | void DrawPadCanvas::redo() |
464 | { | 464 | { |
465 | *(m_pages.current()) = *(m_pageBackups.next()); | 465 | *(m_pages.current()) = *(m_pageBackups.next()); |
466 | 466 | ||
467 | viewport()->update(); | 467 | viewport()->update(); |
468 | 468 | ||
469 | emit pageBackupsChanged(); | 469 | emit pageBackupsChanged(); |
470 | } | 470 | } |
471 | 471 | ||
472 | void DrawPadCanvas::goFirstPage() | 472 | void DrawPadCanvas::goFirstPage() |
473 | { | 473 | { |
474 | m_pages.first(); | 474 | m_pages.first(); |
475 | m_pageBackups.clear(); | 475 | m_pageBackups.clear(); |
476 | m_pageBackups.append(new QPixmap(*(m_pages.current()))); | 476 | m_pageBackups.append(new QPixmap(*(m_pages.current()))); |
477 | 477 | ||
478 | resizeContents(m_pages.current()->width(), m_pages.current()->height()); | 478 | resizeContents(m_pages.current()->width(), m_pages.current()->height()); |
479 | viewport()->update(); | 479 | viewport()->update(); |
480 | 480 | ||
481 | emit pagesChanged(); | 481 | emit pagesChanged(); |
482 | emit pageBackupsChanged(); | 482 | emit pageBackupsChanged(); |
483 | } | 483 | } |
484 | 484 | ||
485 | void DrawPadCanvas::goPreviousPage() | 485 | void DrawPadCanvas::goPreviousPage() |
486 | { | 486 | { |
487 | m_pages.prev(); | 487 | m_pages.prev(); |
488 | m_pageBackups.clear(); | 488 | m_pageBackups.clear(); |
489 | m_pageBackups.append(new QPixmap(*(m_pages.current()))); | 489 | m_pageBackups.append(new QPixmap(*(m_pages.current()))); |
490 | 490 | ||
491 | resizeContents(m_pages.current()->width(), m_pages.current()->height()); | 491 | resizeContents(m_pages.current()->width(), m_pages.current()->height()); |
492 | viewport()->update(); | 492 | viewport()->update(); |
493 | 493 | ||
494 | emit pagesChanged(); | 494 | emit pagesChanged(); |
495 | emit pageBackupsChanged(); | 495 | emit pageBackupsChanged(); |
496 | } | 496 | } |
497 | 497 | ||
498 | void DrawPadCanvas::goNextPage() | 498 | void DrawPadCanvas::goNextPage() |
499 | { | 499 | { |
500 | m_pages.next(); | 500 | m_pages.next(); |
501 | m_pageBackups.clear(); | 501 | m_pageBackups.clear(); |
502 | m_pageBackups.append(new QPixmap(*(m_pages.current()))); | 502 | m_pageBackups.append(new QPixmap(*(m_pages.current()))); |
503 | 503 | ||
504 | resizeContents(m_pages.current()->width(), m_pages.current()->height()); | 504 | resizeContents(m_pages.current()->width(), m_pages.current()->height()); |
505 | viewport()->update(); | 505 | viewport()->update(); |
506 | 506 | ||
507 | emit pagesChanged(); | 507 | emit pagesChanged(); |
508 | emit pageBackupsChanged(); | 508 | emit pageBackupsChanged(); |
509 | } | 509 | } |
510 | 510 | ||
511 | void DrawPadCanvas::goLastPage() | 511 | void DrawPadCanvas::goLastPage() |
512 | { | 512 | { |
513 | m_pages.last(); | 513 | m_pages.last(); |
514 | m_pageBackups.clear(); | 514 | m_pageBackups.clear(); |
515 | m_pageBackups.append(new QPixmap(*(m_pages.current()))); | 515 | m_pageBackups.append(new QPixmap(*(m_pages.current()))); |
516 | 516 | ||
517 | resizeContents(m_pages.current()->width(), m_pages.current()->height()); | 517 | resizeContents(m_pages.current()->width(), m_pages.current()->height()); |
518 | viewport()->update(); | 518 | viewport()->update(); |
519 | 519 | ||
520 | emit pagesChanged(); | 520 | emit pagesChanged(); |
521 | emit pageBackupsChanged(); | 521 | emit pageBackupsChanged(); |
522 | } | 522 | } |
523 | 523 | ||
524 | void DrawPadCanvas::contentsMousePressEvent(QMouseEvent* e) | 524 | void DrawPadCanvas::contentsMousePressEvent(QMouseEvent* e) |
525 | { | 525 | { |
526 | m_pDrawPad->tool()->mousePressEvent(e); | 526 | m_pDrawPad->tool()->mousePressEvent(e); |
527 | } | 527 | } |
528 | 528 | ||
529 | void DrawPadCanvas::contentsMouseReleaseEvent(QMouseEvent* e) | 529 | void DrawPadCanvas::contentsMouseReleaseEvent(QMouseEvent* e) |
530 | { | 530 | { |
531 | m_pDrawPad->tool()->mouseReleaseEvent(e); | 531 | m_pDrawPad->tool()->mouseReleaseEvent(e); |
532 | } | 532 | } |
533 | 533 | ||
534 | void DrawPadCanvas::contentsMouseMoveEvent(QMouseEvent* e) | 534 | void DrawPadCanvas::contentsMouseMoveEvent(QMouseEvent* e) |
535 | { | 535 | { |
536 | m_pDrawPad->tool()->mouseMoveEvent(e); | 536 | m_pDrawPad->tool()->mouseMoveEvent(e); |
537 | } | 537 | } |
538 | 538 | ||
539 | void DrawPadCanvas::drawContents(QPainter* p, int cx, int cy, int cw, int ch) | 539 | void DrawPadCanvas::drawContents(QPainter* p, int cx, int cy, int cw, int ch) |
540 | { | 540 | { |
541 | QRect clipRect(cx, cy, cw, ch); | 541 | QRect clipRect(cx, cy, cw, ch); |
542 | QRect pixmapRect(0, 0, m_pages.current()->width(), m_pages.current()->height()); | ||
543 | QRect drawRect = pixmapRect.intersect(clipRect); | ||
542 | 544 | ||
543 | p->drawPixmap(clipRect.topLeft(), *(m_pages.current()), clipRect); | 545 | p->drawPixmap(drawRect.topLeft(), *(m_pages.current()), drawRect); |
546 | |||
547 | if (drawRect.right() < clipRect.right()) { | ||
548 | p->fillRect(drawRect.right() + 1, cy, cw - drawRect.width(), ch, colorGroup().dark()); | ||
549 | } | ||
550 | |||
551 | if (drawRect.bottom() < clipRect.bottom()) { | ||
552 | p->fillRect(cx, drawRect.bottom() + 1, cw, ch - drawRect.height(), colorGroup().dark()); | ||
553 | } | ||
544 | } | 554 | } |