diff options
author | aqua <aqua@iserlohn-fortress.net> | 2022-08-15 14:25:29 +0300 |
---|---|---|
committer | aqua <aqua@iserlohn-fortress.net> | 2022-09-14 08:51:09 +0300 |
commit | d9802226e443ecd7a7062fd7a0fb320a183e341f (patch) | |
tree | 1cfd97905fa7ba4de4beca9802ba749d62b5cc4e /src/bookmarks/bookmarkstreemodel.cpp | |
parent | Import BookmarkModel from poi (diff) | |
download | rekonq-d9802226e443ecd7a7062fd7a0fb320a183e341f.tar.xz |
Migrate BookmarkManager
Diffstat (limited to 'src/bookmarks/bookmarkstreemodel.cpp')
-rw-r--r-- | src/bookmarks/bookmarkstreemodel.cpp | 34 |
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}); } |