Skip to content
Snippets Groups Projects
Commit af3b727c authored by Alexandre Lision's avatar Alexandre Lision Committed by Guillaume Roguez
Browse files

recentmodel: use qt iterators

make_reverse_iterator is only available in gcc >= 5.0

Issue: #75334
Change-Id: Ieff32adef269e718f74f8b8294a661805ed119e0
parent 3b8d2641
No related branches found
No related tags found
No related merge requests found
...@@ -19,6 +19,9 @@ ...@@ -19,6 +19,9 @@
***********************************************************************************/ ***********************************************************************************/
#include "recentmodel.h" #include "recentmodel.h"
//std
#include <algorithm>
//Qt //Qt
#include <QtCore/QCoreApplication> #include <QtCore/QCoreApplication>
...@@ -205,14 +208,15 @@ bool RecentModel::hasActiveCall(const QModelIndex &idx) ...@@ -205,14 +208,15 @@ bool RecentModel::hasActiveCall(const QModelIndex &idx)
return false; return false;
auto node = static_cast<RecentViewNode*>(idx.internalPointer()); auto node = static_cast<RecentViewNode*>(idx.internalPointer());
QListIterator<RecentViewNode*> lIterator(node->m_lChildren);
auto reverseEnd = std::make_reverse_iterator(node->m_lChildren.begin()); lIterator.toBack();
auto it = std::find_if (std::make_reverse_iterator(node->m_lChildren.end()), while (lIterator.hasPrevious()) {
reverseEnd, [] (RecentViewNode* child) { auto child = lIterator.previous();
return child->m_Type == RecentViewNode::Type::CALL; if (child->m_Type == RecentViewNode::Type::CALL) {
}); return CallModel::instance()->getIndex(child->m_uContent.m_pCall).isValid();
}
return it != reverseEnd; }
return false;
} }
/** /**
...@@ -224,14 +228,15 @@ Call* RecentModel::getActiveCall(const QModelIndex &idx) ...@@ -224,14 +228,15 @@ Call* RecentModel::getActiveCall(const QModelIndex &idx)
return nullptr; return nullptr;
RecentViewNode* node = static_cast<RecentViewNode*>(idx.internalPointer()); RecentViewNode* node = static_cast<RecentViewNode*>(idx.internalPointer());
QListIterator<RecentViewNode*> lIterator(node->m_lChildren);
auto reverseEnd = std::make_reverse_iterator(node->m_lChildren.begin()); lIterator.toBack();
auto it = std::find_if (std::make_reverse_iterator(node->m_lChildren.end()), while (lIterator.hasPrevious()) {
reverseEnd, [] (RecentViewNode* child) { auto child = lIterator.previous();
return child->m_Type == RecentViewNode::Type::CALL; if (child->m_Type == RecentViewNode::Type::CALL) {
}); return child->m_uContent.m_pCall;
}
return it != reverseEnd ? (*it)->m_uContent.m_pCall : nullptr; }
return nullptr;
} }
QHash<int,QByteArray> RecentModel::roleNames() const QHash<int,QByteArray> RecentModel::roleNames() const
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment