src/history.cpp

changeset 538
2f85d4d286e5
parent 527
47c068f2e7e3
child 539
72ad83a67165
equal deleted inserted replaced
537:1add0ee96fb3 538:2f85d4d286e5
35 // ----------------------------------------------------------------------------- 35 // -----------------------------------------------------------------------------
36 void History::undo() 36 void History::undo()
37 { if (m_changesets.isEmpty() || pos() == -1) 37 { if (m_changesets.isEmpty() || pos() == -1)
38 return; 38 return;
39 39
40 const Changeset& set = changeset (pos()); 40 const Changeset& set = getChangeset (pos());
41 g_fullRefresh = false; 41 g_fullRefresh = false;
42 42
43 // Iterate the list in reverse and undo all actions 43 // Iterate the list in reverse and undo all actions
44 for (auto it = set.end() - 1; it != set.begin(); --it) 44 for (auto it = set.end() - 1; it != set.begin(); --it)
45 (*it)->undo(); 45 (*it)->undo();
47 setPos (pos() - 1); 47 setPos (pos() - 1);
48 48
49 if (!g_fullRefresh) 49 if (!g_fullRefresh)
50 g_win->refresh(); 50 g_win->refresh();
51 else 51 else
52 g_win->fullRefresh(); 52 g_win->doFullRefresh();
53 53
54 updateActions(); 54 updateActions();
55 } 55 }
56 56
57 // ============================================================================= 57 // =============================================================================
58 // ----------------------------------------------------------------------------- 58 // -----------------------------------------------------------------------------
59 void History::redo() 59 void History::redo()
60 { if (pos() == (long) m_changesets.size()) 60 { if (pos() == (long) m_changesets.size())
61 return; 61 return;
62 62
63 const Changeset& set = changeset (pos() + 1); 63 const Changeset& set = getChangeset (pos() + 1);
64 g_fullRefresh = false; 64 g_fullRefresh = false;
65 65
66 // Redo things - in the order as they were done in the first place 66 // Redo things - in the order as they were done in the first place
67 for (const AbstractHistoryEntry* change : set) 67 for (const AbstractHistoryEntry* change : set)
68 change->redo(); 68 change->redo();
70 setPos (pos() + 1); 70 setPos (pos() + 1);
71 71
72 if (!g_fullRefresh) 72 if (!g_fullRefresh)
73 g_win->refresh(); 73 g_win->refresh();
74 else 74 else
75 g_win->fullRefresh(); 75 g_win->doFullRefresh();
76 76
77 updateActions(); 77 updateActions();
78 } 78 }
79 79
80 // ============================================================================= 80 // =============================================================================
112 setOpened (false); 112 setOpened (false);
113 113
114 if (m_currentArchive.isEmpty()) 114 if (m_currentArchive.isEmpty())
115 return; 115 return;
116 116
117 while (pos() < size() - 1) 117 while (pos() < getSize() - 1)
118 m_changesets.removeLast(); 118 m_changesets.removeLast();
119 119
120 m_changesets << m_currentArchive; 120 m_changesets << m_currentArchive;
121 m_currentArchive.clear(); 121 m_currentArchive.clear();
122 setPos (pos() + 1); 122 setPos (pos() + 1);
137 137
138 // ============================================================================= 138 // =============================================================================
139 // ----------------------------------------------------------------------------- 139 // -----------------------------------------------------------------------------
140 void AddHistory::undo() const 140 void AddHistory::undo() const
141 { LDFile* f = parent()->file(); 141 { LDFile* f = parent()->file();
142 LDObject* obj = f->object (index()); 142 LDObject* obj = f->getObject (index());
143 f->forgetObject (obj); 143 f->forgetObject (obj);
144 delete obj; 144 delete obj;
145 145
146 g_fullRefresh = true; 146 g_fullRefresh = true;
147 } 147 }
169 169
170 // ============================================================================= 170 // =============================================================================
171 // ----------------------------------------------------------------------------- 171 // -----------------------------------------------------------------------------
172 void DelHistory::redo() const 172 void DelHistory::redo() const
173 { LDFile* f = parent()->file(); 173 { LDFile* f = parent()->file();
174 LDObject* obj = f->object (index()); 174 LDObject* obj = f->getObject (index());
175 f->forgetObject (obj); 175 f->forgetObject (obj);
176 delete obj; 176 delete obj;
177 177
178 g_fullRefresh = true; 178 g_fullRefresh = true;
179 } 179 }
181 DelHistory::~DelHistory() {} 181 DelHistory::~DelHistory() {}
182 182
183 // ============================================================================= 183 // =============================================================================
184 // ----------------------------------------------------------------------------- 184 // -----------------------------------------------------------------------------
185 void EditHistory::undo() const 185 void EditHistory::undo() const
186 { LDObject* obj = LDFile::current()->object (index()); 186 { LDObject* obj = LDFile::current()->getObject (index());
187 LDObject* newobj = parseLine (oldCode()); 187 LDObject* newobj = parseLine (oldCode());
188 obj->replace (newobj); 188 obj->replace (newobj);
189 g_win->R()->compileObject (newobj); 189 g_win->R()->compileObject (newobj);
190 } 190 }
191 191
192 // ============================================================================= 192 // =============================================================================
193 // ----------------------------------------------------------------------------- 193 // -----------------------------------------------------------------------------
194 void EditHistory::redo() const 194 void EditHistory::redo() const
195 { LDObject* obj = LDFile::current()->object (index()); 195 { LDObject* obj = LDFile::current()->getObject (index());
196 LDObject* newobj = parseLine (newCode()); 196 LDObject* newobj = parseLine (newCode());
197 obj->replace (newobj); 197 obj->replace (newobj);
198 g_win->R()->compileObject (newobj); 198 g_win->R()->compileObject (newobj);
199 } 199 }
200 200

mercurial