summaryrefslogtreecommitdiff
path: root/noncore/graphics/drawpad/drawpadcanvas.cpp
Side-by-side diff
Diffstat (limited to 'noncore/graphics/drawpad/drawpadcanvas.cpp') (more/less context) (ignore whitespace changes)
-rw-r--r--noncore/graphics/drawpad/drawpadcanvas.cpp146
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);