summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorEirik Aavitsland <eirik.aavitsland@qt.io>2017-12-11 15:11:05 +0100
committerEirik Aavitsland <eirik.aavitsland@qt.io>2017-12-14 10:37:49 +0000
commit2f3dc790aefadc74debfa25efe958078def34146 (patch)
treeabddeca402d1f135bcd1192fde9abbfe1c9d5c92
parent796a5e005fa1ae2bfe6f9278fc482723eb89f429 (diff)
downloadqttools-2f3dc790aefadc74debfa25efe958078def34146.tar.gz
Assistant: ensure bookmarks are persistently stored when changed
The bookmark manager would only update the persistent storage in its destructor. Since that is not called on an unclean process termination, bookmark changes would be lost. Fix by updating the persistent storage after every bookmark change. Task-number: QTBUG-50350 Change-Id: Id03d5ea96df15d01fdf482203aaf1db7166a7036 Reviewed-by: Paul Olav Tvete <paul.tvete@qt.io>
-rw-r--r--src/assistant/assistant/bookmarkmanager.cpp22
-rw-r--r--src/assistant/assistant/bookmarkmanager.h7
2 files changed, 28 insertions, 1 deletions
diff --git a/src/assistant/assistant/bookmarkmanager.cpp b/src/assistant/assistant/bookmarkmanager.cpp
index 9016c2c6e..fe1b04067 100644
--- a/src/assistant/assistant/bookmarkmanager.cpp
+++ b/src/assistant/assistant/bookmarkmanager.cpp
@@ -81,6 +81,12 @@ void BookmarkManager::BookmarkTreeView::subclassKeyPressEvent(QKeyEvent *event)
QTreeView::keyPressEvent(event);
}
+void BookmarkManager::BookmarkTreeView::commitData(QWidget *editor)
+{
+ QTreeView::commitData(editor);
+ emit editingDone();
+}
+
void BookmarkManager::BookmarkTreeView::setExpandedData(const QModelIndex &index)
{
TRACE_OBJ
@@ -142,6 +148,8 @@ void BookmarkManager::addBookmark(const QString &title, const QString &url)
TRACE_OBJ
showBookmarkDialog(title.isEmpty() ? tr("Untitled") : title,
url.isEmpty() ? QLatin1String("about:blank") : url);
+
+ storeBookmarks();
}
// -- private
@@ -178,6 +186,8 @@ BookmarkManager::BookmarkManager()
[this](const QModelIndex &index) { setSourceFromIndex(index, false); });
connect(bookmarkTreeView, &QWidget::customContextMenuRequested,
this, &BookmarkManager::customContextMenuRequested);
+ connect(bookmarkTreeView, &BookmarkTreeView::editingDone,
+ this, &BookmarkManager::storeBookmarks);
connect(&HelpEngineWrapper::instance(), &HelpEngineWrapper::setupFinished,
this, &BookmarkManager::setupFinished);
@@ -195,13 +205,14 @@ BookmarkManager::BookmarkManager()
this, &BookmarkManager::refreshBookmarkToolBar);
connect(bookmarkModel, &QAbstractItemModel::dataChanged,
this, &BookmarkManager::refreshBookmarkToolBar);
+
}
BookmarkManager::~BookmarkManager()
{
TRACE_OBJ
delete bookmarkManagerWidget;
- HelpEngineWrapper::instance().setBookmarks(bookmarkModel->bookmarks());
+ storeBookmarks();
delete bookmarkModel;
}
@@ -225,6 +236,8 @@ void BookmarkManager::removeItem(const QModelIndex &index)
return;
}
bookmarkModel->removeItem(current);
+
+ storeBookmarks();
}
bool BookmarkManager::eventFilter(QObject *object, QEvent *event)
@@ -332,6 +345,11 @@ void BookmarkManager::setupFinished()
typeAndSearchModel->setSourceModel(bookmarkFilterModel);
}
+void BookmarkManager::storeBookmarks()
+{
+ HelpEngineWrapper::instance().setBookmarks(bookmarkModel->bookmarks());
+}
+
void BookmarkManager::addBookmarkActivated()
{
TRACE_OBJ
@@ -517,6 +535,8 @@ void BookmarkManager::managerWidgetAboutToClose()
{
delete bookmarkManagerWidget;
bookmarkManagerWidget = 0;
+
+ storeBookmarks();
}
void BookmarkManager::textChanged(const QString &text)
diff --git a/src/assistant/assistant/bookmarkmanager.h b/src/assistant/assistant/bookmarkmanager.h
index fcdebf4d1..ac3a13a9e 100644
--- a/src/assistant/assistant/bookmarkmanager.h
+++ b/src/assistant/assistant/bookmarkmanager.h
@@ -77,6 +77,7 @@ private:
private slots:
void setupFinished();
+ void storeBookmarks();
void addBookmarkActivated();
void removeBookmarkActivated();
@@ -137,6 +138,12 @@ public:
void subclassKeyPressEvent(QKeyEvent *event);
+signals:
+ void editingDone();
+
+protected slots:
+ void commitData(QWidget *editor);
+
private slots:
void setExpandedData(const QModelIndex &index);
};