author | leseb <leseb> | 2002-07-10 21:59:27 (UTC) |
---|---|---|
committer | leseb <leseb> | 2002-07-10 21:59:27 (UTC) |
commit | f568737c20bea96fb79d85681a72e142ec05d66f (patch) (unidiff) | |
tree | 80d08b351bbdeec5be93885a4c18ba0207ef990a /noncore/graphics/drawpad/page.cpp | |
parent | 01b04adb73c8bc49938b71a4bebe6fb6a5477f75 (diff) | |
download | opie-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.cpp | 60 |
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 | |||
@@ -10,50 +10,104 @@ | |||
10 | * (at your option) any later version. * | 10 | * (at your option) any later version. * |
11 | * * | 11 | * * |
12 | ***************************************************************************/ | 12 | ***************************************************************************/ |
13 | 13 | ||
14 | #include "page.h" | 14 | #include "page.h" |
15 | 15 | ||
16 | const int PAGE_BACKUPS = 99; | ||
17 | |||
16 | Page::Page() | 18 | Page::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 | } |
21 | 27 | ||
22 | Page::Page(QString title, int w, int h) | 28 | Page::Page(QString title, int w, int h) |
23 | : QPixmap(w, h) | ||
24 | { | 29 | { |
25 | m_title = title; | 30 | m_title = title; |
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 | } |
28 | 37 | ||
29 | Page::Page(QString title, const QSize& size) | 38 | Page::Page(QString title, const QSize& size) |
30 | : QPixmap(size) | ||
31 | { | 39 | { |
32 | m_title = title; | 40 | m_title = title; |
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 | } |
35 | 47 | ||
36 | Page::~Page() | 48 | Page::~Page() |
37 | { | 49 | { |
50 | delete m_pPixmap; | ||
38 | } | 51 | } |
39 | 52 | ||
40 | QString Page::title() const | 53 | QString Page::title() const |
41 | { | 54 | { |
42 | return m_title; | 55 | return m_title; |
43 | } | 56 | } |
44 | 57 | ||
45 | QDateTime Page::lastModified() const | 58 | QDateTime Page::lastModified() const |
46 | { | 59 | { |
47 | return m_lastModified; | 60 | return m_lastModified; |
48 | } | 61 | } |
49 | 62 | ||
63 | QPixmap* Page::pixmap() const | ||
64 | |||
65 | { | ||
66 | return m_pPixmap; | ||
67 | } | ||
68 | |||
50 | void Page::setTitle(QString title) | 69 | void Page::setTitle(QString title) |
51 | { | 70 | { |
52 | m_title = title; | 71 | m_title = title; |
53 | } | 72 | } |
54 | 73 | ||
55 | void Page::setLastModified(QDateTime lastModified) | 74 | void Page::setLastModified(QDateTime lastModified) |
56 | { | 75 | { |
57 | m_lastModified = lastModified; | 76 | m_lastModified = lastModified; |
58 | } | 77 | } |
59 | 78 | ||
79 | bool Page::undoEnabled() | ||
80 | { | ||
81 | return (!m_backHistory.isEmpty()); | ||
82 | } | ||
83 | |||
84 | bool Page::redoEnabled() | ||
85 | { | ||
86 | return (!m_forwardHistory.isEmpty()); | ||
87 | } | ||
88 | |||
89 | void 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 | |||
101 | void 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 | |||
108 | void Page::redo() | ||
109 | { | ||
110 | m_backHistory.append(new QPixmap(*m_pPixmap)); | ||
111 | m_pPixmap = new QPixmap(*(m_forwardHistory.last())); | ||
112 | m_forwardHistory.removeLast(); | ||
113 | } | ||