summaryrefslogtreecommitdiff
path: root/src/bookmarks/bookmarkstreeformat_xbel.h
diff options
context:
space:
mode:
authoraqua <aqua@iserlohn-fortress.net>2022-08-14 18:47:37 +0300
committeraqua <aqua@iserlohn-fortress.net>2022-09-14 08:51:09 +0300
commitc2d18d73b0e1a74525ec0cda36a2e2e7e5b4ff4c (patch)
treed5b9febb29ef801faa08fce4e56c4f453ddb38d0 /src/bookmarks/bookmarkstreeformat_xbel.h
parentAdd clazy cmake preset (diff)
downloadrekonq-c2d18d73b0e1a74525ec0cda36a2e2e7e5b4ff4c.tar.xz
Import BookmarkModel from poi
Diffstat (limited to 'src/bookmarks/bookmarkstreeformat_xbel.h')
-rw-r--r--src/bookmarks/bookmarkstreeformat_xbel.h67
1 files changed, 67 insertions, 0 deletions
diff --git a/src/bookmarks/bookmarkstreeformat_xbel.h b/src/bookmarks/bookmarkstreeformat_xbel.h
new file mode 100644
index 00000000..c156eb24
--- /dev/null
+++ b/src/bookmarks/bookmarkstreeformat_xbel.h
@@ -0,0 +1,67 @@
+/* ============================================================
+ * rekonq
+ * ============================================================
+ * SPDX-License-Identifier: GPL-3.0-only
+ * Copyright (C) 2022 aqua <aqua@iserlohn-fortress.net>
+ * ============================================================
+ * Description: rekonq bookmarks model
+ * ============================================================ */
+
+#pragma once
+
+#include <QVector>
+
+class QIODevice;
+class BookmarksTreeItem;
+
+namespace xbel {
+/**
+ * Parse an XBEL-formatted BookmarkItem tree
+ * @param device QIODEvice pointer to read from
+ * @param root BookmarkItem tree root pointer
+ * @return true if parsing was successful, false if errors occurred
+ */
+[[nodiscard]] bool read(QIODevice *device, BookmarksTreeItem *root);
+
+/**
+ * Write items into device
+ * @param device
+ * @param items
+ * @return true on success
+ */
+[[nodiscard]] bool write(QIODevice *device, const QVector<const BookmarksTreeItem *> &items);
+
+// 3.2 Top-level Information
+constexpr auto *elem_xbel{"xbel"};
+constexpr auto *attr_version{"version"};
+constexpr auto *attr_version_value{"1.0"};
+
+// 3.3 Common Elements
+static const QLatin1String elem_title{"title"};
+static const QLatin1String elem_desc{"desc"};
+static const QLatin1String elem_info{"info"};
+static const QLatin1String elem_metadata{"metadata"};
+static const QLatin1String elem_metadata_owner{"owner"};
+static const QLatin1String elem_metadata_owner_value{"rekonq"};
+
+// 3.4 Data Organization
+static const QLatin1String elem_bookmark{"bookmark"};
+static const QLatin1String elem_folder{"folder"};
+static const QLatin1String elem_separator{"separator"};
+static const QLatin1String elem_alias{"alias"};
+
+// node attributes
+constexpr auto *attr_id{"id"};
+constexpr auto *attr_added{"added"};
+
+// url attributes
+constexpr auto *attr_href{"href"};
+constexpr auto *attr_visited{"visited"};
+constexpr auto *attr_modified{"modified"};
+
+constexpr auto *attr_ref{"ref"};
+constexpr auto *attr_folded{"folded"};
+constexpr auto *attr_folded_yes{"yes"};
+constexpr auto *attr_folded_no{"no"};
+
+} // namespace xbel