[epiphany] bookmarks-import: Import Firefox mobile bookmarks under Mobile tag



commit 521cfde6191b8f0d0c2e230309474bdb57c931c2
Author: Gabriel Ivascu <gabrielivascu gnome org>
Date:   Wed Aug 16 00:11:57 2017 +0300

    bookmarks-import: Import Firefox mobile bookmarks under Mobile tag
    
    https://bugzilla.gnome.org/show_bug.cgi?id=780353

 src/bookmarks/ephy-bookmarks-import.c  |    6 +++++-
 src/bookmarks/ephy-bookmarks-manager.c |   14 ++++++++------
 src/bookmarks/ephy-bookmarks-manager.h |    4 +++-
 3 files changed, 16 insertions(+), 8 deletions(-)
---
diff --git a/src/bookmarks/ephy-bookmarks-import.c b/src/bookmarks/ephy-bookmarks-import.c
index 1376b3a..c68476e 100644
--- a/src/bookmarks/ephy-bookmarks-import.c
+++ b/src/bookmarks/ephy-bookmarks-import.c
@@ -214,9 +214,10 @@ ephy_bookmarks_import_from_firefox (EphyBookmarksManager  *manager,
   GSequence *bookmarks = NULL;
   gboolean ret = TRUE;
   gchar *filename;
-  const char *statement_str = "SELECT b.id, p.url, b.title, b.dateAdded, b.guid "
+  const char *statement_str = "SELECT b.id, p.url, b.title, b.dateAdded, b.guid, g.title "
                               "FROM moz_bookmarks b "
                               "JOIN moz_places p ON b.fk=p.id "
+                              "JOIN moz_bookmarks g ON b.parent=g.id "
                               "WHERE b.type=1 AND p.url NOT LIKE 'about%' "
                               "               AND p.url NOT LIKE 'place%' "
                               "               AND b.title IS NOT NULL "
@@ -261,12 +262,15 @@ ephy_bookmarks_import_from_firefox (EphyBookmarksManager  *manager,
     const char *title = ephy_sqlite_statement_get_column_as_string (statement, 2);
     gint64 time_added = ephy_sqlite_statement_get_column_as_int64 (statement, 3);
     const char *guid = ephy_sqlite_statement_get_column_as_string (statement, 4);
+    const char *parent_title = ephy_sqlite_statement_get_column_as_string (statement, 5);
     EphyBookmark *bookmark;
     GSequence *tags;
 
     tags = g_sequence_new (g_free);
     bookmark = ephy_bookmark_new (url, title, tags, guid);
     ephy_bookmark_set_time_added (bookmark, time_added);
+    if (!g_strcmp0 (parent_title, FIREFOX_BOOKMARKS_MOBILE_FOLDER))
+      ephy_bookmark_add_tag (bookmark, EPHY_BOOKMARKS_MOBILE_TAG);
     load_tags_for_bookmark (connection, bookmark, bookmark_id);
 
     g_sequence_prepend (bookmarks, bookmark);
diff --git a/src/bookmarks/ephy-bookmarks-manager.c b/src/bookmarks/ephy-bookmarks-manager.c
index 534670c..ba69b3c 100644
--- a/src/bookmarks/ephy-bookmarks-manager.c
+++ b/src/bookmarks/ephy-bookmarks-manager.c
@@ -756,8 +756,9 @@ ephy_bookmarks_manager_handle_initial_merge (EphyBookmarksManager *self,
     if (g_strcmp0 (type, "bookmark") || !g_strcmp0 (parent_id, "unfiled"))
       goto next;
 
-    if (!g_strcmp0 (parent_id, "mobile") && !ephy_bookmark_has_tag (l->data, "Mobile"))
-      ephy_bookmark_add_tag (l->data, "Mobile");
+    if (!g_strcmp0 (parent_id, "mobile") &&
+        !ephy_bookmark_has_tag (l->data, EPHY_BOOKMARKS_MOBILE_TAG))
+      ephy_bookmark_add_tag (l->data, EPHY_BOOKMARKS_MOBILE_TAG);
 
     /* Bookmarks from server may miss the time added timestamp. */
     if (!ephy_bookmark_get_time_added (l->data))
@@ -849,8 +850,9 @@ ephy_bookmarks_manager_handle_regular_merge (EphyBookmarksManager *self,
     if (g_strcmp0 (type, "bookmark") || !g_strcmp0 (parent_id, "unfiled"))
       goto next;
 
-    if (!g_strcmp0 (parent_id, "mobile") && !ephy_bookmark_has_tag (l->data, "Mobile"))
-      ephy_bookmark_add_tag (l->data, "Mobile");
+    if (!g_strcmp0 (parent_id, "mobile") &&
+        !ephy_bookmark_has_tag (l->data, EPHY_BOOKMARKS_MOBILE_TAG))
+      ephy_bookmark_add_tag (l->data, EPHY_BOOKMARKS_MOBILE_TAG);
 
     /* Bookmarks from server may miss the time added timestamp. */
     if (!ephy_bookmark_get_time_added (l->data))
@@ -906,8 +908,8 @@ synchronizable_manager_merge (EphySynchronizableManager              *manager,
   EphyBookmarksManager *self = EPHY_BOOKMARKS_MANAGER (manager);
   GList *to_upload = NULL;
 
-  if (!ephy_bookmarks_manager_tag_exists (self, "Mobile"))
-    ephy_bookmarks_manager_create_tag (self, "Mobile");
+  if (!ephy_bookmarks_manager_tag_exists (self, EPHY_BOOKMARKS_MOBILE_TAG))
+    ephy_bookmarks_manager_create_tag (self, EPHY_BOOKMARKS_MOBILE_TAG);
 
   if (is_initial)
     to_upload = ephy_bookmarks_manager_handle_initial_merge (self,
diff --git a/src/bookmarks/ephy-bookmarks-manager.h b/src/bookmarks/ephy-bookmarks-manager.h
index c35ed28..7971873 100644
--- a/src/bookmarks/ephy-bookmarks-manager.h
+++ b/src/bookmarks/ephy-bookmarks-manager.h
@@ -31,7 +31,9 @@ G_BEGIN_DECLS
 
 G_DECLARE_FINAL_TYPE (EphyBookmarksManager, ephy_bookmarks_manager, EPHY, BOOKMARKS_MANAGER, GObject)
 
-#define EPHY_BOOKMARKS_FAVORITES_TAG N_("Favorites")
+#define EPHY_BOOKMARKS_FAVORITES_TAG    N_("Favorites")
+#define EPHY_BOOKMARKS_MOBILE_TAG       N_("Mobile")
+#define FIREFOX_BOOKMARKS_MOBILE_FOLDER "Mobile Bookmarks"
 
 EphyBookmarksManager *ephy_bookmarks_manager_new                  (void);
 


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]