*/
typedef typename std::list<T>::iterator Iterator;
+ /**
+ * @brief ObservableList reverse iterator
+ */
+ typedef typename std::list<T>::reverse_iterator ReverseIterator;
+
/**
* @brief Constructs observable list
*/
*/
inline Iterator End() { return std::list<T>::end(); }
+ /**
+ * @brief Returns reverse interator to last element of the list.
+ */
+ inline ReverseIterator RBegin() { return std::list<T>::rbegin(); }
+
+ /**
+ * @brief Returns reverse interator to first element of the list.
+ */
+ inline ReverseIterator REnd() { return std::list<T>::rend(); }
+
/**
* @brief Signal emitted when new alarm has been added.
*/
view_->PushPage();
- for (auto it = model_.Begin(); it != model_.End(); ++it) {
+ for (auto it = model_.RBegin(); it != model_.REnd(); ++it) {
int id = view_->ItemAppend(
it->GetTime(),
it->GetName().c_str(),
it->GetWeekFlags(),
it->IsActivated());
- alarms_.insert(std::map<int, AlarmList::Iterator>::value_type (id, it));
+ alarms_.insert(std::map<int, AlarmList::Iterator>::value_type (id, --(it.base())));
}
}