diff options
author | Michael Bruning <michael.bruning@qt.io> | 2016-06-20 10:24:09 +0200 |
---|---|---|
committer | Joerg Bornemann <joerg.bornemann@qt.io> | 2016-06-20 14:16:03 +0000 |
commit | 7494836e3a1e61a000fa0f73f91665fa291ec287 (patch) | |
tree | 1768f486599b53041bdb25548f27fbfdc18ae7a1 /examples | |
parent | aceda160982dd6faba1a80065c9c1e52c549da2c (diff) |
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 <allan.jensen@qt.io>
Diffstat (limited to 'examples')
-rw-r--r-- | examples/webenginewidgets/demobrowser/history.cpp | 10 | ||||
-rw-r--r-- | examples/webenginewidgets/demobrowser/history.h | 2 |
2 files changed, 8 insertions, 4 deletions
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<HistoryItem> &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); |