DeleteAlarmPresenter: change sort order 23/140223/1
authorLukasz Stanislawski <l.stanislaws@samsung.com>
Thu, 20 Jul 2017 17:56:34 +0000 (19:56 +0200)
committerLukasz Stanislawski <l.stanislaws@samsung.com>
Thu, 20 Jul 2017 17:56:34 +0000 (19:56 +0200)
Change-Id: I4f206266432884601060ba6d0d6fa2ac725db31e

clock/inc/Utils/ObservableList.h
clock/src/Presenter/DeleteAlarmPresenter.cpp

index a3cae343bb97a9bca3c784bf8fb30cf89aedef22..ee5179bb5ee4ae7305f99187d8175c7c75cc9113 100644 (file)
@@ -35,6 +35,11 @@ namespace utils {
                         */
                        typedef typename std::list<T>::iterator Iterator;
 
+                       /**
+                        * @brief ObservableList reverse iterator
+                        */
+                       typedef typename std::list<T>::reverse_iterator ReverseIterator;
+
                        /**
                         * @brief Constructs observable list
                         */
@@ -100,6 +105,16 @@ namespace utils {
                         */
                        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.
                         */
index 00c290dd0600dab2a992851a59770338cc3f1ef9..5b876313a917e6cca4bfbfdf555d5a98e1ab4e79 100644 (file)
@@ -34,13 +34,13 @@ DeleteAlarmPresenter::DeleteAlarmPresenter(DeleteAlarmView *view, AlarmList &mod
 
        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())));
        }
 }