From 5dad8663afdc46094094cf1cf7a723567dd61e0b Mon Sep 17 00:00:00 2001 From: Michal Klocek Date: Fri, 18 Mar 2016 20:49:51 +0100 Subject: Quick fix for not working history in demobrowser Current implementation of history manager seems to be not straight forward. To display history we use QList to keep history items plus model adapter in form of HistoryModel (QAbstractTableModel) plus HistoryFilterModel to avoid duplication, plus HistoryTreeModel to make a tree view with split for dates, plus TreeProxyModel on top to enable sorting. This approach unfortunately falls apart when items should be deleted from the model by treeView. This ends badly with corrupted cached values. This fix removes history items using history manager. It also abandons HistoryTreeModel since frequent sourceReset calls make it unusable. If split for dates it desired the better approach would be to implement history tree model already at HistoryManager level to avoid unmaintainable code. Task-number: QTBUG-49913 Task-number: QTBUG-50255 Change-Id: Ic9cebb52b623bd453119e11b5e907eaa90609e34 Reviewed-by: Joerg Bornemann --- examples/webenginewidgets/demobrowser/edittreeview.cpp | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) (limited to 'examples/webenginewidgets/demobrowser/edittreeview.cpp') diff --git a/examples/webenginewidgets/demobrowser/edittreeview.cpp b/examples/webenginewidgets/demobrowser/edittreeview.cpp index 872191015..001491032 100644 --- a/examples/webenginewidgets/demobrowser/edittreeview.cpp +++ b/examples/webenginewidgets/demobrowser/edittreeview.cpp @@ -39,6 +39,8 @@ ****************************************************************************/ #include "edittreeview.h" +#include "browserapplication.h" +#include "history.h" #include @@ -63,13 +65,12 @@ void EditTreeView::removeOne() if (!model()) return; QModelIndex ci = currentIndex(); - int row = ci.row(); - model()->removeRow(row, ci.parent()); + BrowserApplication::historyManager()->removeHistoryEntry(model()->data(ci,HistoryModel::UrlStringRole).toString()); } void EditTreeView::removeAll() { if (!model()) return; - model()->removeRows(0, model()->rowCount(rootIndex()), rootIndex()); + BrowserApplication::historyManager()->clear(); } -- cgit v1.2.3