From 5f708d4618d739d14442b85c466fdbac84a74cc8 Mon Sep 17 00:00:00 2001 From: Aqua-sama Date: Fri, 17 Jan 2020 10:25:27 +0200 Subject: BookmarkItem::DateAdded and LastModified fields - add read support in FFJson for DateAdded and LastModified fields - add read/write support in Xbel for DateAdded and LastModified fields - BookmarkModel: set DateAdded on appendBookmark and appendFolder - EditBookmarkDialog: set LastModified field when saving changes --- lib/bookmarks/formats/ffjson.cpp | 18 ++++++++++++++++-- 1 file changed, 16 insertions(+), 2 deletions(-) (limited to 'lib/bookmarks/formats/ffjson.cpp') diff --git a/lib/bookmarks/formats/ffjson.cpp b/lib/bookmarks/formats/ffjson.cpp index f173904..98f8e60 100644 --- a/lib/bookmarks/formats/ffjson.cpp +++ b/lib/bookmarks/formats/ffjson.cpp @@ -12,6 +12,20 @@ #include #include #include +#include + +inline auto asDate(const QJsonValue &v) +{ + // timestamps in bookmarks.json are, for some reason, in *micro*seconds + return QDateTime::fromMSecsSinceEpoch(v.toVariant().toLongLong() / 1000); +} + +inline void readElementData(const QJsonObject &object, BookmarkItem *item) +{ + item->setData(BookmarkItem::Title, object["title"].toString()); + item->setData(BookmarkItem::DateAdded, asDate(object["dateAdded"])); + item->setData(BookmarkItem::LastModified, asDate(object["lastModified"])); +} void readChildElements(const QJsonObject &object, BookmarkItem *item) { @@ -22,13 +36,13 @@ void readChildElements(const QJsonObject &object, BookmarkItem *item) if(type == "text/x-moz-place-container") { auto *childItem = new BookmarkItem({}, BookmarkItem::Folder, item); childItem->setExpanded(true); - childItem->setData(BookmarkItem::Title, child["title"].toString()); + readElementData(child, childItem); item->appendChild(childItem); readChildElements(child, childItem); } else if(type == "text/x-moz-place") { auto *childItem = new BookmarkItem({}, BookmarkItem::Bookmark, item); - childItem->setData(BookmarkItem::Title, child["title"].toString()); + readElementData(child, childItem); childItem->setData(BookmarkItem::Href, child["uri"].toString()); item->appendChild(childItem); -- cgit v1.2.1