Diffstat (limited to 'noncore/graphics/drawpad/drawpadcanvas.cpp') (more/less context) (ignore whitespace changes)
-rw-r--r-- | noncore/graphics/drawpad/drawpadcanvas.cpp | 146 |
1 files changed, 37 insertions, 109 deletions
diff --git a/noncore/graphics/drawpad/drawpadcanvas.cpp b/noncore/graphics/drawpad/drawpadcanvas.cpp index 05dd408..025bebb 100644 --- a/noncore/graphics/drawpad/drawpadcanvas.cpp +++ b/noncore/graphics/drawpad/drawpadcanvas.cpp @@ -30,4 +30,2 @@ -const int PAGE_BACKUPS = 99; - class DrawPadCanvasXmlHandler: public QXmlDefaultHandler @@ -151,3 +149,3 @@ bool DrawPadCanvasXmlHandler::characters(const QString& ch) page->setLastModified(m_date); - page->convertFromImage(image); + page->pixmap()->convertFromImage(image); m_pages.append(page); @@ -163,3 +161,2 @@ DrawPadCanvas::DrawPadCanvas(DrawPad* drawPad, QWidget* parent, const char* name m_pages.setAutoDelete(true); - m_pageBackups.setAutoDelete(true); @@ -188,9 +185,6 @@ void DrawPadCanvas::load(QIODevice* ioDevice) m_pages.append(new Page("", contentsRect().size())); - m_pages.current()->fill(Qt::white); + m_pages.current()->pixmap()->fill(Qt::white); } - m_pageBackups.clear(); - m_pageBackups.append(new Page(*(m_pages.current()))); - - resizeContents(m_pages.current()->width(), m_pages.current()->height()); + resizeContents(m_pages.current()->pixmap()->width(), m_pages.current()->pixmap()->height()); viewport()->update(); @@ -198,3 +192,2 @@ void DrawPadCanvas::load(QIODevice* ioDevice) emit pagesChanged(); - emit pageBackupsChanged(); } @@ -204,8 +197,5 @@ void DrawPadCanvas::initialPage() m_pages.append(new Page("", 236, 232)); - m_pages.current()->fill(Qt::white); - - m_pageBackups.clear(); - m_pageBackups.append(new Page(*(m_pages.current()))); + m_pages.current()->pixmap()->fill(Qt::white); - resizeContents(m_pages.current()->width(), m_pages.current()->height()); + resizeContents(m_pages.current()->pixmap()->width(), m_pages.current()->pixmap()->height()); viewport()->update(); @@ -213,3 +203,2 @@ void DrawPadCanvas::initialPage() emit pagesChanged(); - emit pageBackupsChanged(); } @@ -229,3 +218,3 @@ void DrawPadCanvas::save(QIODevice* ioDevice) textStream << " <title>" << bufferIterator.current()->title() << "</title>" << endl; - + int intDate = QDateTime(QDate(1970, 1, 1)).secsTo(bufferIterator.current()->lastModified()); @@ -233,3 +222,3 @@ void DrawPadCanvas::save(QIODevice* ioDevice) - QImage image = bufferIterator.current()->convertToImage(); + QImage image = bufferIterator.current()->pixmap()->convertToImage(); QByteArray byteArray; @@ -265,9 +254,6 @@ void DrawPadCanvas::importPage(const QString& fileName) - importedPage->load(fileName); + importedPage->pixmap()->load(fileName); m_pages.insert(m_pages.at() + 1, importedPage); - m_pageBackups.clear(); - m_pageBackups.append(new Page(*(m_pages.current()))); - - resizeContents(m_pages.current()->width(), m_pages.current()->height()); + resizeContents(m_pages.current()->pixmap()->width(), m_pages.current()->pixmap()->height()); viewport()->update(); @@ -275,3 +261,2 @@ void DrawPadCanvas::importPage(const QString& fileName) emit pagesChanged(); - emit pageBackupsChanged(); } @@ -291,3 +276,3 @@ void DrawPadCanvas::exportPage(uint fromPage, uint toPage, const QString& name,c - QImage image = m_pages.current()->convertToImage(); + QImage image = m_pages.current()->pixmap()->convertToImage(); imageIO.setImage(image); @@ -307,3 +292,3 @@ void DrawPadCanvas::exportPage(uint fromPage, uint toPage, const QString& name,c - QImage image = m_pages.at(i - 1)->convertToImage(); + QImage image = m_pages.at(i - 1)->pixmap()->convertToImage(); imageIO.setImage(image); @@ -338,6 +323,4 @@ void DrawPadCanvas::selectPage(Page* page) m_pages.findRef(page); - m_pageBackups.clear(); - m_pageBackups.append(new Page(*(m_pages.current()))); - resizeContents(m_pages.current()->width(), m_pages.current()->height()); + resizeContents(m_pages.current()->pixmap()->width(), m_pages.current()->pixmap()->height()); viewport()->update(); @@ -345,34 +328,19 @@ void DrawPadCanvas::selectPage(Page* page) emit pagesChanged(); - emit pageBackupsChanged(); } -void DrawPadCanvas::selectPage(uint pagePosition) +void DrawPadCanvas::backupPage() { - m_pages.at(pagePosition - 1); - m_pageBackups.clear(); - m_pageBackups.append(new Page(*(m_pages.current()))); - - resizeContents(m_pages.current()->width(), m_pages.current()->height()); - viewport()->update(); + m_pages.current()->backup(); emit pagesChanged(); - emit pageBackupsChanged(); } -void DrawPadCanvas::backupPage() +void DrawPadCanvas::selectPage(uint pagePosition) { - m_pages.current()->setLastModified(QDateTime::currentDateTime()); - - Page* currentBackup = m_pageBackups.current(); - while (m_pageBackups.last() != currentBackup) { - m_pageBackups.removeLast(); - } - - while (m_pageBackups.count() >= (PAGE_BACKUPS + 1)) { - m_pageBackups.removeFirst(); - } + m_pages.at(pagePosition - 1); - m_pageBackups.append(new Page(*(m_pages.current()))); + resizeContents(m_pages.current()->pixmap()->width(), m_pages.current()->pixmap()->height()); + viewport()->update(); - emit pageBackupsChanged(); + emit pagesChanged(); } @@ -384,8 +352,5 @@ void DrawPadCanvas::deleteAll() m_pages.append(new Page("", contentsRect().size())); - m_pages.current()->fill(Qt::white); + m_pages.current()->pixmap()->fill(Qt::white); - m_pageBackups.clear(); - m_pageBackups.append(new Page(*(m_pages.current()))); - - resizeContents(m_pages.current()->width(), m_pages.current()->height()); + resizeContents(m_pages.current()->pixmap()->width(), m_pages.current()->pixmap()->height()); viewport()->update(); @@ -393,3 +358,2 @@ void DrawPadCanvas::deleteAll() emit pagesChanged(); - emit pageBackupsChanged(); } @@ -399,8 +363,5 @@ void DrawPadCanvas::newPage(QString title, uint width, uint height, const QColor m_pages.insert(m_pages.at() + 1, new Page(title, width, height)); - m_pages.current()->fill(color); - - m_pageBackups.clear(); - m_pageBackups.append(new Page(*(m_pages.current()))); + m_pages.current()->pixmap()->fill(color); - resizeContents(m_pages.current()->width(), m_pages.current()->height()); + resizeContents(m_pages.current()->pixmap()->width(), m_pages.current()->pixmap()->height()); viewport()->update(); @@ -408,3 +369,2 @@ void DrawPadCanvas::newPage(QString title, uint width, uint height, const QColor emit pagesChanged(); - emit pageBackupsChanged(); } @@ -413,11 +373,6 @@ void DrawPadCanvas::clearPage() { - m_pages.current()->fill(Qt::white); + m_pages.current()->pixmap()->fill(Qt::white); - m_pageBackups.clear(); - m_pageBackups.append(new Page(*(m_pages.current()))); - - resizeContents(m_pages.current()->width(), m_pages.current()->height()); + resizeContents(m_pages.current()->pixmap()->width(), m_pages.current()->pixmap()->height()); viewport()->update(); - - emit pageBackupsChanged(); } @@ -430,9 +385,6 @@ void DrawPadCanvas::deletePage() m_pages.append(new Page("", contentsRect().size())); - m_pages.current()->fill(Qt::white); + m_pages.current()->pixmap()->fill(Qt::white); } - m_pageBackups.clear(); - m_pageBackups.append(new Page(*(m_pages.current()))); - - resizeContents(m_pages.current()->width(), m_pages.current()->height()); + resizeContents(m_pages.current()->pixmap()->width(), m_pages.current()->pixmap()->height()); viewport()->update(); @@ -440,3 +392,2 @@ void DrawPadCanvas::deletePage() emit pagesChanged(); - emit pageBackupsChanged(); } @@ -461,12 +412,2 @@ void DrawPadCanvas::movePageDown() -bool DrawPadCanvas::undoEnabled() -{ - return (m_pageBackups.current() != m_pageBackups.getFirst()); -} - -bool DrawPadCanvas::redoEnabled() -{ - return (m_pageBackups.current() != m_pageBackups.getLast()); -} - bool DrawPadCanvas::goPreviousPageEnabled() @@ -483,3 +424,3 @@ void DrawPadCanvas::undo() { - *(m_pages.current()) = *(m_pageBackups.prev()); + m_pages.current()->undo(); @@ -487,3 +428,3 @@ void DrawPadCanvas::undo() - emit pageBackupsChanged(); + emit pagesChanged(); } @@ -492,3 +433,3 @@ void DrawPadCanvas::redo() { - *(m_pages.current()) = *(m_pageBackups.next()); + m_pages.current()->redo(); @@ -496,3 +437,3 @@ void DrawPadCanvas::redo() - emit pageBackupsChanged(); + emit pagesChanged(); } @@ -502,6 +443,4 @@ void DrawPadCanvas::goFirstPage() m_pages.first(); - m_pageBackups.clear(); - m_pageBackups.append(new Page(*(m_pages.current()))); - resizeContents(m_pages.current()->width(), m_pages.current()->height()); + resizeContents(m_pages.current()->pixmap()->width(), m_pages.current()->pixmap()->height()); viewport()->update(); @@ -509,3 +448,2 @@ void DrawPadCanvas::goFirstPage() emit pagesChanged(); - emit pageBackupsChanged(); } @@ -515,6 +453,4 @@ void DrawPadCanvas::goPreviousPage() m_pages.prev(); - m_pageBackups.clear(); - m_pageBackups.append(new Page(*(m_pages.current()))); - resizeContents(m_pages.current()->width(), m_pages.current()->height()); + resizeContents(m_pages.current()->pixmap()->width(), m_pages.current()->pixmap()->height()); viewport()->update(); @@ -522,3 +458,2 @@ void DrawPadCanvas::goPreviousPage() emit pagesChanged(); - emit pageBackupsChanged(); } @@ -528,6 +463,3 @@ void DrawPadCanvas::goNextPage() m_pages.next(); - m_pageBackups.clear(); - m_pageBackups.append(new Page(*(m_pages.current()))); - - resizeContents(m_pages.current()->width(), m_pages.current()->height()); + resizeContents(m_pages.current()->pixmap()->width(), m_pages.current()->pixmap()->height()); viewport()->update(); @@ -535,3 +467,2 @@ void DrawPadCanvas::goNextPage() emit pagesChanged(); - emit pageBackupsChanged(); } @@ -541,6 +472,4 @@ void DrawPadCanvas::goLastPage() m_pages.last(); - m_pageBackups.clear(); - m_pageBackups.append(new Page(*(m_pages.current()))); - resizeContents(m_pages.current()->width(), m_pages.current()->height()); + resizeContents(m_pages.current()->pixmap()->width(), m_pages.current()->pixmap()->height()); viewport()->update(); @@ -548,3 +477,2 @@ void DrawPadCanvas::goLastPage() emit pagesChanged(); - emit pageBackupsChanged(); } @@ -569,6 +497,6 @@ void DrawPadCanvas::drawContents(QPainter* p, int cx, int cy, int cw, int ch) QRect clipRect(cx, cy, cw, ch); - QRect pixmapRect(0, 0, m_pages.current()->width(), m_pages.current()->height()); + QRect pixmapRect(0, 0, m_pages.current()->pixmap()->width(), m_pages.current()->pixmap()->height()); QRect drawRect = pixmapRect.intersect(clipRect); - p->drawPixmap(drawRect.topLeft(), *(m_pages.current()), drawRect); + p->drawPixmap(drawRect.topLeft(), *(m_pages.current()->pixmap()), drawRect); |