| 195 | } |
| 196 | |
| 197 | void mitk::LimitedLinearUndo::SetUndoLimit(std::size_t undoLimit) |
| 198 | { |
| 199 | if (undoLimit != m_UndoLimit) |
| 200 | { |
| 201 | // 0 means "unlimited" in this case, so only trim when an actual (non-zero) limit is set |
| 202 | if (0 != undoLimit && m_UndoList.size() > undoLimit) |
| 203 | { |
| 204 | auto last = m_UndoList.end() - undoLimit; |
| 205 | |
| 206 | // delete the owned items before dropping them from the list |
| 207 | for (auto iter = m_UndoList.begin(); iter != last; ++iter) |
| 208 | delete *iter; |
| 209 | |
| 210 | m_UndoList.erase(m_UndoList.begin(), last); |
| 211 | } |
| 212 | m_UndoLimit = undoLimit; |
| 213 | |
| 214 | InvokeEvent(UndoStackEvent()); |
| 215 | } |
| 216 | } |
| 217 | |
| 218 | int mitk::LimitedLinearUndo::GetLastObjectEventIdInList() |
| 219 | { |
no test coverage detected