summaryrefslogtreecommitdiff
path: root/src/bookmarks/bookmarkstreemodel.cpp
diff options
context:
space:
mode:
authoraqua <aqua@iserlohn-fortress.net>2022-08-15 14:25:29 +0300
committeraqua <aqua@iserlohn-fortress.net>2022-09-14 08:51:09 +0300
commitd9802226e443ecd7a7062fd7a0fb320a183e341f (patch)
tree1cfd97905fa7ba4de4beca9802ba749d62b5cc4e /src/bookmarks/bookmarkstreemodel.cpp
parentImport BookmarkModel from poi (diff)
downloadrekonq-d9802226e443ecd7a7062fd7a0fb320a183e341f.tar.xz
Migrate BookmarkManager
Diffstat (limited to 'src/bookmarks/bookmarkstreemodel.cpp')
-rw-r--r--src/bookmarks/bookmarkstreemodel.cpp34
1 files changed, 7 insertions, 27 deletions
diff --git a/src/bookmarks/bookmarkstreemodel.cpp b/src/bookmarks/bookmarkstreemodel.cpp
index 444d2e7b..8086ff64 100644
--- a/src/bookmarks/bookmarkstreemodel.cpp
+++ b/src/bookmarks/bookmarkstreemodel.cpp
@@ -11,33 +11,14 @@
#include "bookmarkstreeformats.hpp"
#include <QBuffer>
#include <QDateTime>
-#include <QFile>
#include <QMimeData>
-BookmarkModel::BookmarkModel(const QString &path, QObject *parent)
- : QAbstractItemModel(parent), bookmarksFile(new QFile(path))
+BookmarkModel::BookmarkModel(QObject *parent) : QAbstractItemModel(parent)
{
rootItem = new BookmarksTreeItem(BookmarksTreeItem::Root, {.title = tr("Title"), .href = tr("Address")}, nullptr);
-
- if (bookmarksFile->open(QIODevice::ReadOnly | QIODevice::Text)) {
- if (path.endsWith(".xbel")) { readFns[Formats::FormatXbel](bookmarksFile, rootItem); }
- bookmarksFile->close();
- }
-}
-
-BookmarkModel::~BookmarkModel()
-{
- save(); // save on exit
- bookmarksFile->flush();
-
- delete rootItem;
- delete bookmarksFile;
}
-void BookmarkModel::load(const QIODevice *buffer)
-{
- if (buffer->isOpen() && buffer->isReadable()) { readFns[Formats::FormatXbel](buffer, rootItem); }
-}
+BookmarkModel::~BookmarkModel() { delete rootItem; }
QVariant BookmarkModel::headerData(int section, Qt::Orientation, int role) const
{
@@ -246,11 +227,10 @@ bool BookmarkModel::dropMimeData(const QMimeData *mimeData, Qt::DropAction actio
return true;
}
-void BookmarkModel::save()
+QList<QString> BookmarkModel::load(QIODevice *buffer) { return readFns[Formats::FormatXbel](buffer, rootItem); }
+
+void BookmarkModel::save(QIODevice *buffer)
{
- if (m_isModified) {
- bookmarksFile->open(QIODevice::WriteOnly | QIODevice::Text | QIODevice::Truncate);
- m_isModified = !writeFns[Formats::FormatXbel](bookmarksFile, {rootItem});
- bookmarksFile->close();
- }
+ if (!buffer->isOpen() || !buffer->isWritable()) return;
+ if (m_isModified) m_isModified = !writeFns[Formats::FormatXbel](buffer, {rootItem});
}