summaryrefslogtreecommitdiff
path: root/noncore/graphics/drawpad/page.cpp
authorleseb <leseb>2002-07-10 21:59:27 (UTC)
committer leseb <leseb>2002-07-10 21:59:27 (UTC)
commitf568737c20bea96fb79d85681a72e142ec05d66f (patch) (unidiff)
tree80d08b351bbdeec5be93885a4c18ba0207ef990a /noncore/graphics/drawpad/page.cpp
parent01b04adb73c8bc49938b71a4bebe6fb6a5477f75 (diff)
downloadopie-f568737c20bea96fb79d85681a72e142ec05d66f.zip
opie-f568737c20bea96fb79d85681a72e142ec05d66f.tar.gz
opie-f568737c20bea96fb79d85681a72e142ec05d66f.tar.bz2
Undo/redo reimplemented
Diffstat (limited to 'noncore/graphics/drawpad/page.cpp') (more/less context) (ignore whitespace changes)
-rw-r--r--noncore/graphics/drawpad/page.cpp60
1 files changed, 57 insertions, 3 deletions
diff --git a/noncore/graphics/drawpad/page.cpp b/noncore/graphics/drawpad/page.cpp
index 601d1c3..fbf3d01 100644
--- a/noncore/graphics/drawpad/page.cpp
+++ b/noncore/graphics/drawpad/page.cpp
@@ -15,6 +15,12 @@
15 15
16const int PAGE_BACKUPS = 99;
17
16Page::Page() 18Page::Page()
17 : QPixmap()
18{ 19{
20 m_title = "";
19 m_lastModified = QDateTime::currentDateTime(); 21 m_lastModified = QDateTime::currentDateTime();
22 m_pPixmap = new QPixmap();
23
24 m_backHistory.setAutoDelete(true);
25 m_forwardHistory.setAutoDelete(true);
20} 26}
@@ -22,3 +28,2 @@ Page::Page()
22Page::Page(QString title, int w, int h) 28Page::Page(QString title, int w, int h)
23 : QPixmap(w, h)
24{ 29{
@@ -26,2 +31,6 @@ Page::Page(QString title, int w, int h)
26 m_lastModified = QDateTime::currentDateTime(); 31 m_lastModified = QDateTime::currentDateTime();
32 m_pPixmap = new QPixmap(w, h);
33
34 m_backHistory.setAutoDelete(true);
35 m_forwardHistory.setAutoDelete(true);
27} 36}
@@ -29,3 +38,2 @@ Page::Page(QString title, int w, int h)
29Page::Page(QString title, const QSize& size) 38Page::Page(QString title, const QSize& size)
30 : QPixmap(size)
31{ 39{
@@ -33,2 +41,6 @@ Page::Page(QString title, const QSize& size)
33 m_lastModified = QDateTime::currentDateTime(); 41 m_lastModified = QDateTime::currentDateTime();
42 m_pPixmap = new QPixmap(size);
43
44 m_backHistory.setAutoDelete(true);
45 m_forwardHistory.setAutoDelete(true);
34} 46}
@@ -37,2 +49,3 @@ Page::~Page()
37{ 49{
50 delete m_pPixmap;
38} 51}
@@ -49,2 +62,8 @@ QDateTime Page::lastModified() const
49 62
63QPixmap* Page::pixmap() const
64
65{
66 return m_pPixmap;
67}
68
50void Page::setTitle(QString title) 69void Page::setTitle(QString title)
@@ -59 +78,36 @@ void Page::setLastModified(QDateTime lastModified)
59 78
79bool Page::undoEnabled()
80{
81 return (!m_backHistory.isEmpty());
82}
83
84bool Page::redoEnabled()
85{
86 return (!m_forwardHistory.isEmpty());
87}
88
89void Page::backup()
90{
91 setLastModified(QDateTime::currentDateTime());
92
93 while (m_backHistory.count() >= (PAGE_BACKUPS + 1)) {
94 m_backHistory.removeFirst();
95 }
96
97 m_backHistory.append(new QPixmap(*m_pPixmap));
98 m_forwardHistory.clear();
99}
100
101void Page::undo()
102{
103 m_forwardHistory.append(new QPixmap(*m_pPixmap));
104 m_pPixmap = new QPixmap(*(m_backHistory.last()));
105 m_backHistory.removeLast();
106}
107
108void Page::redo()
109{
110 m_backHistory.append(new QPixmap(*m_pPixmap));
111 m_pPixmap = new QPixmap(*(m_forwardHistory.last()));
112 m_forwardHistory.removeLast();
113}