diff options
Diffstat (limited to 'Swift/QtUI/EventViewer/EventModel.cpp')
-rw-r--r-- | Swift/QtUI/EventViewer/EventModel.cpp | 13 |
1 files changed, 10 insertions, 3 deletions
diff --git a/Swift/QtUI/EventViewer/EventModel.cpp b/Swift/QtUI/EventViewer/EventModel.cpp index 1d1a378..889bcac 100644 --- a/Swift/QtUI/EventViewer/EventModel.cpp +++ b/Swift/QtUI/EventViewer/EventModel.cpp @@ -1,17 +1,22 @@ /* - * Copyright (c) 2010-2014 Isode Limited. + * Copyright (c) 2010-2015 Isode Limited. * All rights reserved. * See the COPYING file for more information. */ #include <Swift/QtUI/EventViewer/EventModel.h> #include <Swiften/Base/Log.h> namespace Swift { + +namespace { + const int inactiveEventsLimit = 50; +} + EventModel::EventModel() { } EventModel::~EventModel() { foreach (QtEvent* event, activeEvents_) { @@ -72,31 +77,33 @@ int EventModel::rowCount(const QModelIndex& parent) const { void EventModel::addEvent(boost::shared_ptr<StanzaEvent> event, bool active) { beginResetModel(); if (active) { activeEvents_.push_front(new QtEvent(event, active)); } else { inactiveEvents_.push_front(new QtEvent(event, active)); - if (inactiveEvents_.size() > 50) { - removeEvent(inactiveEvents_[20]->getEvent()); + if (inactiveEvents_.size() > inactiveEventsLimit) { + removeEvent(inactiveEvents_[inactiveEventsLimit]->getEvent()); } } endResetModel(); } void EventModel::removeEvent(boost::shared_ptr<StanzaEvent> event) { beginResetModel(); for (int i = inactiveEvents_.size() - 1; i >= 0; i--) { if (event == inactiveEvents_[i]->getEvent()) { inactiveEvents_.removeAt(i); + endResetModel(); return; } } for (int i = 0; i < activeEvents_.size(); i++) { if (event == activeEvents_[i]->getEvent()) { activeEvents_.removeAt(i); + endResetModel(); return; } } endResetModel(); } |