[nautilus/wip/oholy/cloudproviders: 1/2] sidebar: Build with cloudproviders support




commit aabc0fb0bc31c0006f5a3e3cebe7cd9a92edb447
Author: Ondrej Holy <oholy redhat com>
Date:   Fri Aug 5 10:23:56 2022 +0200

    sidebar: Build with cloudproviders support
    
    The cloudproviders integration used to be part of GTK 3 version, but
    it is not part of GTK 4 version. This is because the sidebar codes
    are now part of Nautilus codebase and `HAVE_CLOUDPROVIDERS` is never
    set. Let's allow to build with cloudproviders support again.
    
    Related: https://gitlab.gnome.org/GNOME/nautilus/-/issues/2392

 meson.build                        |  1 +
 src/gtk/nautilusgtkplacessidebar.c | 33 ++-------------------------------
 src/gtk/nautilusgtksidebarrow.c    | 10 ----------
 src/meson.build                    |  3 ++-
 4 files changed, 5 insertions(+), 42 deletions(-)
---
diff --git a/meson.build b/meson.build
index 51437ae45..e6c45f53b 100644
--- a/meson.build
+++ b/meson.build
@@ -117,6 +117,7 @@ if get_option('selinux')
 endif
 tracker_sparql = dependency('tracker-sparql-3.0')
 xml = dependency('libxml-2.0', version: '>= 2.7.8')
+cloudproviders_dep = dependency('cloudproviders', version: '>= 0.3.1')
 
 ####################
 # End dependencies #
diff --git a/src/gtk/nautilusgtkplacessidebar.c b/src/gtk/nautilusgtkplacessidebar.c
index 59702bbe7..19212d199 100644
--- a/src/gtk/nautilusgtkplacessidebar.c
+++ b/src/gtk/nautilusgtkplacessidebar.c
@@ -27,9 +27,7 @@
 #include "nautilus-enum-types.h"
 
 #include <gio/gio.h>
-#ifdef HAVE_CLOUDPROVIDERS
 #include <cloudproviders.h>
-#endif
 
 #include "nautilusgtkplacessidebarprivate.h"
 #include "nautilusgtksidebarrowprivate.h"
@@ -106,10 +104,8 @@ struct _NautilusGtkPlacesSidebar {
 
   GActionGroup *row_actions;
 
-#ifdef HAVE_CLOUDPROVIDERS
   CloudProvidersCollector *cloud_manager;
   GList *unready_accounts;
-#endif
 
   GVolumeMonitor    *volume_monitor;
   NautilusTrashMonitor   *trash_monitor;
@@ -395,11 +391,7 @@ add_place (NautilusGtkPlacesSidebar            *sidebar,
            GDrive                      *drive,
            GVolume                     *volume,
            GMount                      *mount,
-#ifdef HAVE_CLOUDPROVIDERS
            CloudProvidersAccount       *cloud_provider_account,
-#else
-           gpointer                    *cloud_provider_account,
-#endif
            const int                    index,
            const char                  *tooltip)
 {
@@ -439,9 +431,7 @@ add_place (NautilusGtkPlacesSidebar            *sidebar,
                       "drive", drive,
                       "volume", volume,
                       "mount", mount,
-#ifdef HAVE_CLOUDPROVIDERS
                       "cloud-provider-account", cloud_provider_account,
-#endif
                       NULL);
 
   eject_button = nautilus_gtk_sidebar_row_get_eject_button (NAUTILUS_GTK_SIDEBAR_ROW (row));
@@ -858,8 +848,6 @@ update_trash_icon (NautilusGtkPlacesSidebar *sidebar)
     }
 }
 
-#ifdef HAVE_CLOUDPROVIDERS
-
 static gboolean
 create_cloud_provider_account_row (NautilusGtkPlacesSidebar      *sidebar,
                                    CloudProvidersAccount *account)
@@ -912,7 +900,7 @@ create_cloud_provider_account_row (NautilusGtkPlacesSidebar      *sidebar,
 
       g_free (tooltip);
       g_free (mount_uri);
-      g_object_unref (end_icon);
+      g_clear_object (&end_icon);
       return TRUE;
     }
   else
@@ -937,8 +925,6 @@ on_account_updated (GObject    *object,
       }
 }
 
-#endif
-
 static void
 update_places (NautilusGtkPlacesSidebar *sidebar)
 {
@@ -959,12 +945,10 @@ update_places (NautilusGtkPlacesSidebar *sidebar)
   GList *network_mounts, *network_volumes;
   GIcon *new_bookmark_icon;
   GtkWidget *child;
-#ifdef HAVE_CLOUDPROVIDERS
   GList *cloud_providers;
   GList *cloud_providers_accounts;
   CloudProvidersAccount *cloud_provider_account;
   CloudProvidersProvider *cloud_provider;
-#endif
 
   /* save original selection */
   selected = gtk_list_box_get_selected_row (GTK_LIST_BOX (sidebar->list_box));
@@ -1069,7 +1053,6 @@ update_places (NautilusGtkPlacesSidebar *sidebar)
   add_application_shortcuts (sidebar);
 
   /* Cloud providers */
-#ifdef HAVE_CLOUDPROVIDERS
   cloud_providers = cloud_providers_collector_get_providers (sidebar->cloud_manager);
   for (l = sidebar->unready_accounts; l != NULL; l = l->next)
     {
@@ -1104,7 +1087,6 @@ update_places (NautilusGtkPlacesSidebar *sidebar)
 
         }
     }
-#endif
 
   /* go through all connected drives */
   drives = g_volume_monitor_get_connected_drives (sidebar->volume_monitor);
@@ -3184,7 +3166,6 @@ on_row_popover_destroy (GtkWidget        *row_popover,
     sidebar->popover = NULL;
 }
 
-#ifdef HAVE_CLOUDPROVIDERS
 static void
 build_popup_menu_using_gmenu (NautilusGtkSidebarRow *row)
 {
@@ -3239,7 +3220,6 @@ build_popup_menu_using_gmenu (NautilusGtkSidebarRow *row)
       g_object_unref (cloud_provider_account);
     }
 }
-#endif
 
 /* Constructs the popover for the sidebar row if needed */
 static void
@@ -3260,6 +3240,7 @@ create_row_popover (NautilusGtkPlacesSidebar *sidebar,
   gboolean show_properties;
   g_autoptr (GFile) trash = NULL;
   gboolean is_trash;
+  CloudProvidersAccount *cloud_provider_account;
 
   g_object_get (row,
                 "place-type", &type,
@@ -3283,9 +3264,6 @@ create_row_popover (NautilusGtkPlacesSidebar *sidebar,
       is_trash = FALSE;
     }
 
-#ifdef HAVE_CLOUDPROVIDERS
-  CloudProvidersAccount *cloud_provider_account;
-
   g_object_get (row, "cloud-provider-account", &cloud_provider_account, NULL);
 
   if (cloud_provider_account)
@@ -3293,7 +3271,6 @@ create_row_popover (NautilusGtkPlacesSidebar *sidebar,
       build_popup_menu_using_gmenu (row);
        return;
     }
-#endif
 
   action = g_action_map_lookup_action (G_ACTION_MAP (sidebar->row_actions), "remove");
   g_simple_action_set_enabled (G_SIMPLE_ACTION (action), (type == NAUTILUS_GTK_PLACES_BOOKMARK));
@@ -3960,13 +3937,11 @@ nautilus_gtk_places_sidebar_init (NautilusGtkPlacesSidebar *sidebar)
   sidebar->show_desktop = show_desktop;
 
   /* Cloud providers */
-#ifdef HAVE_CLOUDPROVIDERS
   sidebar->cloud_manager = cloud_providers_collector_dup_singleton ();
   g_signal_connect_swapped (sidebar->cloud_manager,
                             "providers-changed",
                             G_CALLBACK (update_places),
                             sidebar);
-#endif
 
   /* populate the sidebar */
   update_places (sidebar);
@@ -4083,9 +4058,7 @@ static void
 nautilus_gtk_places_sidebar_dispose (GObject *object)
 {
   NautilusGtkPlacesSidebar *sidebar;
-#ifdef HAVE_CLOUDPROVIDERS
   GList *l;
-#endif
 
   sidebar = NAUTILUS_GTK_PLACES_SIDEBAR (object);
 
@@ -4156,7 +4129,6 @@ nautilus_gtk_places_sidebar_dispose (GObject *object)
 
   g_clear_handle_id (&sidebar->hover_timer_id, g_source_remove);
 
-#ifdef HAVE_CLOUDPROVIDERS
   for (l = sidebar->unready_accounts; l != NULL; l = l->next)
     {
         g_signal_handlers_disconnect_by_data (l->data, sidebar);
@@ -4174,7 +4146,6 @@ nautilus_gtk_places_sidebar_dispose (GObject *object)
       g_object_unref (sidebar->cloud_manager);
       sidebar->cloud_manager = NULL;
     }
-#endif
 
   G_OBJECT_CLASS (nautilus_gtk_places_sidebar_parent_class)->dispose (object);
 }
diff --git a/src/gtk/nautilusgtksidebarrow.c b/src/gtk/nautilusgtksidebarrow.c
index 4b35ddd48..9b6ebafee 100644
--- a/src/gtk/nautilusgtksidebarrow.c
+++ b/src/gtk/nautilusgtksidebarrow.c
@@ -26,9 +26,7 @@
 /* For section and place type enums */
 #include "nautilusgtkplacessidebarprivate.h"
 
-#ifdef HAVE_CLOUDPROVIDERS
 #include <cloudproviders.h>
-#endif
 
 struct _NautilusGtkSidebarRow
 {
@@ -85,8 +83,6 @@ enum
 
 static GParamSpec *properties [LAST_PROP];
 
-#ifdef HAVE_CLOUDPROVIDERS
-
 static void
 cloud_row_update (NautilusGtkSidebarRow *self)
 {
@@ -128,8 +124,6 @@ cloud_row_update (NautilusGtkSidebarRow *self)
     g_object_unref (end_icon);
 }
 
-#endif
-
 static void
 nautilus_gtk_sidebar_row_get_property (GObject    *object,
                               guint       prop_id,
@@ -328,7 +322,6 @@ nautilus_gtk_sidebar_row_set_property (GObject      *object,
       break;
 
     case PROP_CLOUD_PROVIDER_ACCOUNT:
-#ifdef HAVE_CLOUDPROVIDERS
       if (self->cloud_provider_account != NULL)
         g_signal_handlers_disconnect_by_data (self->cloud_provider_account, self);
 
@@ -343,7 +336,6 @@ nautilus_gtk_sidebar_row_set_property (GObject      *object,
           g_signal_connect_swapped (self->cloud_provider_account, "notify::status-details",
                                     G_CALLBACK (cloud_row_update), self);
         }
-#endif
       break;
 
     case PROP_PLACEHOLDER:
@@ -472,11 +464,9 @@ nautilus_gtk_sidebar_row_finalize (GObject *object)
   g_clear_object (&self->drive);
   g_clear_object (&self->volume);
   g_clear_object (&self->mount);
-#ifdef HAVE_CLOUDPROVIDERS
   if (self->cloud_provider_account != NULL)
     g_signal_handlers_disconnect_by_data (self->cloud_provider_account, self);
   g_clear_object (&self->cloud_provider_account);
-#endif
 
   G_OBJECT_CLASS (nautilus_gtk_sidebar_row_parent_class)->finalize (object);
 }
diff --git a/src/meson.build b/src/meson.build
index a0c92c92b..5883ac8ed 100644
--- a/src/meson.build
+++ b/src/meson.build
@@ -274,7 +274,8 @@ nautilus_deps = [
   nautilus_extension,
   selinux,
   tracker_sparql,
-  xml
+  xml,
+  cloudproviders_dep,
 ]
 
 libnautilus = static_library(


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