From 7494836e3a1e61a000fa0f73f91665fa291ec287 Mon Sep 17 00:00:00 2001 From: Michael Bruning Date: Mon, 20 Jun 2016 10:24:09 +0200 Subject: Remove infinite loop when loading history. Add a flag to let checkForExpired remove the entries directly. Task-number: QTBUG-54222 Change-Id: Iddac9e50f645d74b95d0ea13ed76d7f858ddd137 Reviewed-by: Allan Sandfeld Jensen --- examples/webenginewidgets/demobrowser/history.cpp | 10 +++++++--- examples/webenginewidgets/demobrowser/history.h | 2 +- 2 files changed, 8 insertions(+), 4 deletions(-) (limited to 'examples/webenginewidgets') diff --git a/examples/webenginewidgets/demobrowser/history.cpp b/examples/webenginewidgets/demobrowser/history.cpp index 72f96ed4e..ff8258647 100644 --- a/examples/webenginewidgets/demobrowser/history.cpp +++ b/examples/webenginewidgets/demobrowser/history.cpp @@ -127,7 +127,7 @@ void HistoryManager::setHistory(const QList &history, bool loadedAn if (!loadedAndSorted) qSort(m_history.begin(), m_history.end()); - checkForExpired(); + checkForExpired(loadedAndSorted); if (loadedAndSorted) { m_lastSavedUrl = m_history.value(0).url; @@ -153,7 +153,7 @@ HistoryTreeModel *HistoryManager::historyTreeModel() const return m_historyTreeModel; } -void HistoryManager::checkForExpired() +void HistoryManager::checkForExpired(bool removeEntriesDirectly) { if (m_historyLimit < 0 || m_history.isEmpty()) return; @@ -175,7 +175,11 @@ void HistoryManager::checkForExpired() const HistoryItem& item = m_history.last(); // remove from saved file also m_lastSavedUrl = QString(); - emit entryRemoved(item); + + if (removeEntriesDirectly) + m_history.takeLast(); + else + emit entryRemoved(item); } if (nextTimeout > 0) diff --git a/examples/webenginewidgets/demobrowser/history.h b/examples/webenginewidgets/demobrowser/history.h index 2766dd91e..edf7722c4 100644 --- a/examples/webenginewidgets/demobrowser/history.h +++ b/examples/webenginewidgets/demobrowser/history.h @@ -116,7 +116,7 @@ public slots: private slots: void save(); - void checkForExpired(); + void checkForExpired(bool removeExpiredEntriesDirectly = false); protected: void addHistoryItem(const HistoryItem &item); -- cgit v1.2.1