[epiphany/wip/sync: 77/86] bookmark: Change properties to match the storage server's format
- From: Gabriel Ivașcu <gabrielivascu src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [epiphany/wip/sync: 77/86] bookmark: Change properties to match the storage server's format
- Date: Tue, 28 Mar 2017 21:00:23 +0000 (UTC)
commit b6341c35a0779044bd0b108651385b71252dd2eb
Author: Gabriel Ivascu <ivascu gabriel59 gmail com>
Date: Tue Mar 21 19:42:43 2017 +0200
bookmark: Change properties to match the storage server's format
src/bookmarks/ephy-bookmark-properties-grid.c | 2 +-
src/bookmarks/ephy-bookmark.c | 141 +++++++++++++++++++------
src/bookmarks/ephy-bookmarks-manager.c | 2 +-
3 files changed, 110 insertions(+), 35 deletions(-)
---
diff --git a/src/bookmarks/ephy-bookmark-properties-grid.c b/src/bookmarks/ephy-bookmark-properties-grid.c
index a7b5c7a..d99c582 100644
--- a/src/bookmarks/ephy-bookmark-properties-grid.c
+++ b/src/bookmarks/ephy-bookmark-properties-grid.c
@@ -345,7 +345,7 @@ ephy_bookmark_properties_grid_constructed (GObject *object)
self->prev_address = g_strdup (gtk_entry_get_text (GTK_ENTRY (self->address_entry)));
g_object_bind_property (GTK_ENTRY (self->address_entry), "text",
- self->bookmark, "url",
+ self->bookmark, "bmkUri",
G_BINDING_DEFAULT);
}
diff --git a/src/bookmarks/ephy-bookmark.c b/src/bookmarks/ephy-bookmark.c
index da4ad74..cea89da 100644
--- a/src/bookmarks/ephy-bookmark.c
+++ b/src/bookmarks/ephy-bookmark.c
@@ -32,6 +32,11 @@
#include "ephy-sync-utils.h"
#endif
+#define BOOKMARK_TYPE_VAL "bookmark"
+#define BOOKMARK_PARENT_ID_VAL "toolbar"
+#define BOOKMARK_PARENT_NAME_VAL "Bookmarks Toolbar"
+#define BOOKMARK_LOAD_IN_SIDEBAR_VAL FALSE
+
struct _EphyBookmark {
GObject parent_instance;
@@ -40,9 +45,13 @@ struct _EphyBookmark {
GSequence *tags;
gint64 time_added;
- /* Keep the modified timestamp as double, and not float, to
- * preserve the precision enforced by the Storage Server. */
+ /* Firefox Sync specific fields.
+ * Modified timestamp must be double to match server's precision. */
char *id;
+ char *type;
+ char *parent_id;
+ char *parent_name;
+ gboolean load_in_sidebar;
double modified;
gboolean uploaded;
};
@@ -61,12 +70,18 @@ G_DEFINE_TYPE_WITH_CODE (EphyBookmark, ephy_bookmark, G_TYPE_OBJECT,
enum {
PROP_0,
- PROP_TAGS,
+ /* Epiphany specific properties. */
PROP_TIME_ADDED,
+ /* Firefox specific properties (some of these are used by Epiphany too). */
PROP_TITLE,
- PROP_URL,
+ PROP_BMK_URI,
+ PROP_TAGS,
+ PROP_TYPE,
+ PROP_PARENT_ID,
+ PROP_PARENT_NAME,
+ PROP_LOAD_IN_SIDEBAR,
LAST_PROP,
- /* Firefox related properties. */
+ /* Interface properties. */
PROP_ID
};
@@ -88,20 +103,35 @@ ephy_bookmark_set_property (GObject *object,
EphyBookmark *self = EPHY_BOOKMARK (object);
switch (prop_id) {
- case PROP_TAGS:
- if (self->tags != NULL)
- g_sequence_free (self->tags);
- self->tags = g_value_get_pointer (value);
- break;
case PROP_TIME_ADDED:
ephy_bookmark_set_time_added (self, g_value_get_int64 (value));
break;
case PROP_TITLE:
ephy_bookmark_set_title (self, g_value_get_string (value));
break;
- case PROP_URL:
+ case PROP_BMK_URI:
ephy_bookmark_set_url (self, g_value_get_string (value));
break;
+ case PROP_TAGS:
+ if (self->tags != NULL)
+ g_sequence_free (self->tags);
+ self->tags = g_value_get_pointer (value);
+ break;
+ case PROP_TYPE:
+ g_free (self->type);
+ self->type = g_strdup (g_value_get_string (value));
+ break;
+ case PROP_PARENT_ID:
+ g_free (self->parent_id);
+ self->parent_id = g_strdup (g_value_get_string (value));
+ break;
+ case PROP_PARENT_NAME:
+ g_free (self->parent_name);
+ self->parent_name = g_strdup (g_value_get_string (value));
+ break;
+ case PROP_LOAD_IN_SIDEBAR:
+ self->load_in_sidebar = g_value_get_boolean (value);
+ break;
case PROP_ID:
ephy_bookmark_set_id (self, g_value_get_string (value));
break;
@@ -111,26 +141,38 @@ ephy_bookmark_set_property (GObject *object,
}
static void
-ephy_bookmark_get_property (GObject *object,
- guint prop_id,
- GValue *value,
- GParamSpec *pspec)
+ephy_bookmark_get_property (GObject *object,
+ guint prop_id,
+ GValue *value,
+ GParamSpec *pspec)
{
EphyBookmark *self = EPHY_BOOKMARK (object);
switch (prop_id) {
- case PROP_TAGS:
- g_value_set_pointer (value, ephy_bookmark_get_tags (self));
- break;
case PROP_TIME_ADDED:
g_value_set_int64 (value, ephy_bookmark_get_time_added (self));
break;
case PROP_TITLE:
g_value_set_string (value, ephy_bookmark_get_title (self));
break;
- case PROP_URL:
+ case PROP_BMK_URI:
g_value_set_string (value, ephy_bookmark_get_url (self));
break;
+ case PROP_TAGS:
+ g_value_set_pointer (value, ephy_bookmark_get_tags (self));
+ break;
+ case PROP_TYPE:
+ g_value_set_string (value, self->type);
+ break;
+ case PROP_PARENT_ID:
+ g_value_set_string (value, self->parent_id);
+ break;
+ case PROP_PARENT_NAME:
+ g_value_set_string (value, self->parent_name);
+ break;
+ case PROP_LOAD_IN_SIDEBAR:
+ g_value_set_boolean (value, self->load_in_sidebar);
+ break;
case PROP_ID:
g_value_set_string (value, ephy_bookmark_get_id (self));
break;
@@ -162,12 +204,6 @@ ephy_bookmark_class_init (EphyBookmarkClass *klass)
object_class->get_property = ephy_bookmark_get_property;
object_class->finalize = ephy_bookmark_finalize;
- obj_properties[PROP_TAGS] =
- g_param_spec_pointer ("tags",
- "Tags",
- "The bookmark's tags",
- G_PARAM_READWRITE | G_PARAM_CONSTRUCT | G_PARAM_STATIC_STRINGS);
-
obj_properties[PROP_TIME_ADDED] =
g_param_spec_int64 ("time-added",
"Time added",
@@ -184,13 +220,47 @@ ephy_bookmark_class_init (EphyBookmarkClass *klass)
"Default bookmark title",
G_PARAM_READWRITE | G_PARAM_CONSTRUCT | G_PARAM_STATIC_STRINGS);
- obj_properties[PROP_URL] =
- g_param_spec_string ("url",
- "URL",
- "The bookmark's URL",
+ obj_properties[PROP_BMK_URI] =
+ g_param_spec_string ("bmkUri",
+ "URI",
+ "The bookmark's URI",
"about:overview",
G_PARAM_READWRITE | G_PARAM_CONSTRUCT | G_PARAM_STATIC_STRINGS);
+ obj_properties[PROP_TAGS] =
+ g_param_spec_pointer ("tags",
+ "Tags",
+ "The bookmark's tags",
+ G_PARAM_READWRITE | G_PARAM_CONSTRUCT | G_PARAM_STATIC_STRINGS);
+
+ obj_properties[PROP_TYPE] =
+ g_param_spec_string ("type",
+ "Type",
+ "Of type bookmark",
+ "default",
+ G_PARAM_READWRITE | G_PARAM_CONSTRUCT | G_PARAM_STATIC_STRINGS);
+
+ obj_properties[PROP_PARENT_ID] =
+ g_param_spec_string ("parentid",
+ "ParentID",
+ "The parent's id",
+ "default",
+ G_PARAM_READWRITE | G_PARAM_CONSTRUCT | G_PARAM_STATIC_STRINGS);
+
+ obj_properties[PROP_PARENT_NAME] =
+ g_param_spec_string ("parentName",
+ "ParentName",
+ "The parent's name",
+ "default",
+ G_PARAM_READWRITE | G_PARAM_CONSTRUCT | G_PARAM_STATIC_STRINGS);
+
+ obj_properties[PROP_LOAD_IN_SIDEBAR] =
+ g_param_spec_boolean ("loadInSidebar",
+ "LoadInSiderbar",
+ "Load in sidebar",
+ TRUE,
+ G_PARAM_READWRITE | G_PARAM_CONSTRUCT | G_PARAM_STATIC_STRINGS);
+
g_object_class_install_properties (object_class, LAST_PROP, obj_properties);
g_object_class_override_property (object_class, PROP_ID, "id");
@@ -242,9 +312,10 @@ ephy_bookmark_json_serializable_serialize_property (JsonSerializable *serializab
}
json_node_set_array (node, array);
+ } else if (!g_strcmp0 (name, "time-added")) {
+ /* This is not a Firefox bookmark property, skip it. */
} else {
- node = serializable_iface->serialize_property (serializable, name,
- value, pspec);
+ node = serializable_iface->serialize_property (serializable, name, value, pspec);
}
return node;
@@ -398,10 +469,14 @@ ephy_bookmark_new (const char *url,
const char *id)
{
return g_object_new (EPHY_TYPE_BOOKMARK,
- "url", url,
+ "time-added", g_get_real_time (),
"title", title,
+ "bmkUri", url,
"tags", tags,
- "time-added", g_get_real_time (),
+ "type", BOOKMARK_TYPE_VAL,
+ "parentid", BOOKMARK_PARENT_ID_VAL,
+ "parentName", BOOKMARK_PARENT_NAME_VAL,
+ "loadInSidebar", BOOKMARK_LOAD_IN_SIDEBAR_VAL,
"id", id,
NULL);
}
diff --git a/src/bookmarks/ephy-bookmarks-manager.c b/src/bookmarks/ephy-bookmarks-manager.c
index b1be991..0f4e5fe 100644
--- a/src/bookmarks/ephy-bookmarks-manager.c
+++ b/src/bookmarks/ephy-bookmarks-manager.c
@@ -267,7 +267,7 @@ ephy_bookmarks_manager_watch_bookmark (EphyBookmarksManager *self,
{
g_signal_connect_object (bookmark, "notify::title",
G_CALLBACK (bookmark_title_changed_cb), self, 0);
- g_signal_connect_object (bookmark, "notify::url",
+ g_signal_connect_object (bookmark, "notify::bmkUri",
G_CALLBACK (bookmark_url_changed_cb), self, 0);
g_signal_connect_object (bookmark, "tag-added",
G_CALLBACK (bookmark_tag_added_cb), self, 0);
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]