┌   ┐
54
└   ┘

summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorEmmanuel Pescosta <[email protected]>2015-02-19 20:05:55 +0100
committerEmmanuel Pescosta <[email protected]>2015-02-19 20:05:55 +0100
commitf7c85b42252c7c17255f9f56639f1e95992dfeed (patch)
tree9a19884a9315ef9a41690429cdcb6c30d3fe7567 /src
parent4cc444b8ba1e7c5c57a9899e32f25fc2faa1df27 (diff)
Sync bookmark manager only if the change was done by the current process
Adoption of http://commits.kde.org/kdelibs/2b5c6e42fc8114c6854ce490b9cdd4356be683d9 FIXED-IN: 14.12.3 BUG: 343620 BUG: 310080 REVIEW: 122640
Diffstat (limited to 'src')
-rw-r--r--src/panels/places/placesitemmodel.cpp20
-rw-r--r--src/panels/places/placesitemmodel.h21
-rw-r--r--src/panels/places/placespanel.cpp5
3 files changed, 13 insertions, 33 deletions
diff --git a/src/panels/places/placesitemmodel.cpp b/src/panels/places/placesitemmodel.cpp
index 6accdc837..46f40b65c 100644
--- a/src/panels/places/placesitemmodel.cpp
+++ b/src/panels/places/placesitemmodel.cpp
@@ -78,7 +78,6 @@ PlacesItemModel::PlacesItemModel(QObject* parent) :
m_systemBookmarksIndexes(),
m_bookmarkedItems(),
m_hiddenItemToRemove(-1),
- m_saveBookmarksTimer(0),
m_updateBookmarksTimer(0),
m_storageSetupInProgress()
{
@@ -95,11 +94,6 @@ PlacesItemModel::PlacesItemModel(QObject* parent) :
const int syncBookmarksTimeout = 100;
- m_saveBookmarksTimer = new QTimer(this);
- m_saveBookmarksTimer->setInterval(syncBookmarksTimeout);
- m_saveBookmarksTimer->setSingleShot(true);
- connect(m_saveBookmarksTimer, SIGNAL(timeout()), this, SLOT(saveBookmarks()));
-
m_updateBookmarksTimer = new QTimer(this);
m_updateBookmarksTimer->setInterval(syncBookmarksTimeout);
m_updateBookmarksTimer->setSingleShot(true);
@@ -498,8 +492,6 @@ void PlacesItemModel::onItemInserted(int index)
m_bookmarkedItems.insert(bookmarkIndex, 0);
}
- triggerBookmarksSaving();
-
#ifdef PLACESITEMMODEL_DEBUG
kDebug() << "Inserted item" << index;
showModelState();
@@ -518,8 +510,6 @@ void PlacesItemModel::onItemRemoved(int index, KStandardItem* removedItem)
Q_ASSERT(!m_bookmarkedItems[boomarkIndex]);
m_bookmarkedItems.removeAt(boomarkIndex);
- triggerBookmarksSaving();
-
#ifdef PLACESITEMMODEL_DEBUG
kDebug() << "Removed item" << index;
showModelState();
@@ -549,8 +539,6 @@ void PlacesItemModel::onItemChanged(int index, const QSet<QByteArray>& changedRo
QTimer::singleShot(0, this, SLOT(hideItem()));
}
}
-
- triggerBookmarksSaving();
}
void PlacesItemModel::slotDeviceAdded(const QString& udi)
@@ -1033,20 +1021,12 @@ void PlacesItemModel::hideItem(int index)
// bookmark should still be remembered, so readd it again:
m_bookmarkManager->root().addBookmark(hiddenBookmark);
m_bookmarkManager->root().moveBookmark(hiddenBookmark, previousBookmark);
- triggerBookmarksSaving();
}
m_bookmarkedItems.insert(newIndex, hiddenItem);
}
}
-void PlacesItemModel::triggerBookmarksSaving()
-{
- if (m_saveBookmarksTimer) {
- m_saveBookmarksTimer->start();
- }
-}
-
QString PlacesItemModel::internalMimeType() const
{
return "application/x-dolphinplacesmodel-" +
diff --git a/src/panels/places/placesitemmodel.h b/src/panels/places/placesitemmodel.h
index 4a374e502..7cbf99e95 100644
--- a/src/panels/places/placesitemmodel.h
+++ b/src/panels/places/placesitemmodel.h
@@ -124,6 +124,14 @@ public:
static KUrl convertedUrl(const KUrl& url);
virtual void clear();
+
+ /**
+ * Saves the bookmarks and indicates to other applications that the
+ * state of the bookmarks has been changed. Is only called by the
+ * timeout of m_saveBookmarksTimer to prevent unnecessary savings.
+ */
+ void saveBookmarks();
+
signals:
void errorMessage(const QString& message);
void storageSetupDone(int index, bool success);
@@ -147,12 +155,6 @@ private slots:
*/
void updateBookmarks();
- /**
- * Saves the bookmarks and indicates to other applications that the
- * state of the bookmarks has been changed. Is only called by the
- * timeout of m_saveBookmarksTimer to prevent unnecessary savings.
- */
- void saveBookmarks();
private:
struct SystemBookmarkData;
@@ -199,12 +201,6 @@ private:
*/
void hideItem(int index);
- /**
- * Triggers a delayed saving of bookmarks by starting
- * m_saveBookmarksTimer.
- */
- void triggerBookmarksSaving();
-
QString internalMimeType() const;
/**
@@ -287,7 +283,6 @@ private:
// removing an item is not allowed.
int m_hiddenItemToRemove;
- QTimer* m_saveBookmarksTimer;
QTimer* m_updateBookmarksTimer;
QHash<QObject*, int> m_storageSetupInProgress;
diff --git a/src/panels/places/placespanel.cpp b/src/panels/places/placespanel.cpp
index 720e07ce3..6b840ef57 100644
--- a/src/panels/places/placespanel.cpp
+++ b/src/panels/places/placespanel.cpp
@@ -280,8 +280,10 @@ void PlacesPanel::slotItemContextMenuRequested(int index, const QPointF& pos)
editEntry(index);
} else if (action == removeAction) {
m_model->removeItem(index);
+ m_model->saveBookmarks();
} else if (action == hideAction) {
item->setHidden(hideAction->isChecked());
+ m_model->saveBookmarks();
} else if (action == openInNewTabAction) {
// TriggerItem does set up the storage first and then it will
// emit the slotItemMiddleClicked signal, because of Qt::MiddleButton.
@@ -405,6 +407,7 @@ void PlacesPanel::slotItemDropEventStorageSetupDone(int index, bool success)
void PlacesPanel::slotAboveItemDropEvent(int index, QGraphicsSceneDragDropEvent* event)
{
m_model->dropMimeDataBefore(index, event->mimeData());
+ m_model->saveBookmarks();
}
void PlacesPanel::slotUrlsDropped(const KUrl& dest, QDropEvent* event, QWidget* parent)
@@ -477,6 +480,7 @@ void PlacesPanel::addEntry()
if (dialog->exec() == QDialog::Accepted) {
PlacesItem* item = m_model->createPlacesItem(dialog->text(), dialog->url(), dialog->icon());
m_model->appendItemToGroup(item);
+ m_model->saveBookmarks();
}
delete dialog;
@@ -498,6 +502,7 @@ void PlacesPanel::editEntry(int index)
oldItem->setText(dialog->text());
oldItem->setUrl(dialog->url());
oldItem->setIcon(dialog->icon());
+ m_model->saveBookmarks();
}
}