[gnome-control-center/wip/jsparber/background: 28/58] [merge] merged changes from master and [refactor] removed unused code



commit 0474f7af51ea73182499dfd7e9c6b26a96ffc611
Merge: 2549473 43bbb4c
Author: Julian Sparber <julian sparber net>
Date:   Tue Nov 7 00:10:17 2017 +0100

    [merge] merged changes from master and [refactor] removed unused code

 panels/background/cc-background-panel.c           |  240 +-
 panels/network/cc-network-panel.c                 |    6 +-
 panels/network/cc-wifi-panel.c                    |    9 +-
 panels/network/net-proxy.c                        |    4 +
 panels/network/wireless-security/eap-method-tls.c |    9 -
 panels/notifications/cc-notifications-panel.c     |    3 +-
 panels/online-accounts/cc-online-accounts-panel.c |   60 +-
 panels/printers/pp-printer.c                      |    4 +
 panels/privacy/cc-privacy-panel.c                 |    4 +-
 panels/sound/gvc-mixer-dialog.c                   |    6 +
 po/ar.po                                          |  247 +-
 po/eo.po                                          | 6252 ++++++++++++---------
 po/ja.po                                          |   57 +-
 13 files changed, 3901 insertions(+), 3000 deletions(-)
---
diff --cc panels/background/cc-background-panel.c
index 84e31cc,0fa881d..18d4ab3
--- a/panels/background/cc-background-panel.c
+++ b/panels/background/cc-background-panel.c
@@@ -56,16 -57,12 +56,12 @@@ struct _CcBackgroundPane
    GnomeDesktopThumbnailFactory *thumb_factory;
  
    CcBackgroundItem *current_background;
 -  CcBackgroundItem *current_lock_background;
 +
 +  BgWallpapersSource *wallpapers_source;
  
    GCancellable *copy_cancellable;
-   GCancellable *capture_cancellable;
  
    GtkWidget *spinner;
- 
-   GdkPixbuf *display_screenshot;
-   char *screenshot_path;
 -  GtkWidget *chooser;
  };
  
  CC_PANEL_REGISTER (CcBackgroundPanel, cc_background_panel)
@@@ -96,19 -98,13 +92,7 @@@ cc_background_panel_dispose (GObject *o
        g_clear_object (&panel->copy_cancellable);
      }
  
-   if (panel->capture_cancellable)
-     {
-       /* cancel screenshot operations */
-       g_cancellable_cancel (panel->capture_cancellable);
- 
-       g_clear_object (&panel->capture_cancellable);
-     }
- 
-   g_clear_object (&panel->wallpapers_source);
 -  if (panel->chooser)
 -    {
 -      gtk_widget_destroy (panel->chooser);
 -      panel->chooser = NULL;
 -    }
 -
    g_clear_object (&panel->thumb_factory);
-   g_clear_object (&panel->display_screenshot);
- 
-   g_clear_pointer (&panel->screenshot_path, g_free);
  
    G_OBJECT_CLASS (cc_background_panel_parent_class)->dispose (object);
  }
@@@ -182,11 -192,10 +166,10 @@@ get_or_create_cached_pixbuf (CcBackgrou
                               CcBackgroundItem  *background)
  {
    GtkAllocation allocation;
 -  const gint preview_width = 309;
 -  const gint preview_height = 168;
 +  const gint preview_width = 310; //309
 +  const gint preview_height = 174; //168
    gint scale_factor;
    GdkPixbuf *pixbuf;
-   GdkPixbuf *pixbuf_tmp;
  
    pixbuf = g_object_get_data (G_OBJECT (background), "pixbuf");
    if (pixbuf == NULL)
@@@ -199,231 -208,51 +182,33 @@@
                                                         preview_height,
                                                         scale_factor,
                                                         -2, TRUE);
- 
-       if (background == panel->current_background &&
-           panel->display_screenshot != NULL)
-         {
-           /* we need to add an alpha channel for for copy aera */ 
-           pixbuf = gdk_pixbuf_add_alpha (pixbuf, FALSE, 0,0,0);
- 
-           pixbuf_tmp = gdk_pixbuf_scale_simple (panel->display_screenshot,
-                                                 preview_width,
-                                                 (preview_width
-                                                  * gdk_pixbuf_get_height (panel->display_screenshot) 
-                                                  / gdk_pixbuf_get_width(panel->display_screenshot)),
-                                                 GDK_INTERP_BILINEAR);
- 
-           gdk_pixbuf_copy_area (pixbuf_tmp,
-                                 0,
-                                 0,
-                                 preview_width,
-                                 gdk_pixbuf_get_height(pixbuf_tmp),
-                                 pixbuf,
-                                 0,
-                                 0);
- 
-           g_object_unref (pixbuf_tmp);
-         }
- 
        g_object_set_data_full (G_OBJECT (background), "pixbuf", pixbuf, g_object_unref);
      }
 +
    return pixbuf;
  }
  
--static void
--update_display_preview (CcBackgroundPanel *panel,
--                        GtkWidget         *widget,
--                        CcBackgroundItem  *background)
++static gboolean
++on_preview_draw (GtkWidget         *widget,
++                 cairo_t           *cr,
++                 CcBackgroundPanel *panel)
  {
    GdkPixbuf *pixbuf;
--  cairo_t *cr;
 -
 -  pixbuf = get_or_create_cached_pixbuf (panel, widget, background);
  
-   pixbuf = get_or_create_cached_pixbuf (panel, widget, background);
- 
--  cr = gdk_cairo_create (gtk_widget_get_window (widget));
++  pixbuf = get_or_create_cached_pixbuf (panel,
++                                        widget,
++                                        panel->current_background);
    gdk_cairo_set_source_pixbuf (cr,
                                 pixbuf,
                                 0, 0);
    cairo_paint (cr);
--  cairo_destroy (cr);
--}
--
- typedef struct {
-   CcBackgroundPanel *panel;
-   GdkRectangle capture_rect;
-   GdkRectangle monitor_rect;
-   GdkRectangle workarea_rect;
-   gboolean whole_monitor;
- } ScreenshotData;
- 
- static void
- on_screenshot_finished (GObject *source,
-                         GAsyncResult *res,
-                         gpointer user_data)
- {
-   ScreenshotData *data = user_data;
-   CcBackgroundPanel *panel = data->panel;
-   GError *error;
-   GdkPixbuf *pixbuf;
-   GVariant *result;
- 
-   error = NULL;
-   result = g_dbus_connection_call_finish (G_DBUS_CONNECTION (source),
-                                           res,
-                                           &error);
- 
-   if (result == NULL) {
-     if (g_error_matches (error, G_IO_ERROR, G_IO_ERROR_CANCELLED)) {
-       g_error_free (error);
-       g_free (data);
-       return;
-     }
-     g_debug ("Unable to get screenshot: %s",
-              error->message);
-     g_error_free (error);
-     /* fallback? */
-     goto out;
-   }
-   g_variant_unref (result);
- 
-   pixbuf = gdk_pixbuf_new_from_file (panel->screenshot_path, &error);
-   if (pixbuf == NULL)
-     {
-       g_debug ("Unable to use GNOME Shell's builtin screenshot interface: %s",
-                error->message);
-       g_error_free (error);
-       goto out;
-     }
- 
-   g_clear_object (&panel->display_screenshot);
- 
-   if (data->whole_monitor) {
-     /* copy only top panel area from pixbuf */
-     gdk_pixbuf_copy_area (pixbuf,
-                           0,
-                           0,
-                           data->monitor_rect.width,
-                           data->monitor_rect.height - data->workarea_rect.height,
-                           panel->display_screenshot,
-                           0,
-                           0);
-     g_object_unref (pixbuf);
- 
-   }
-   else {
-     panel->display_screenshot = pixbuf;
-   }
- 
-   /* invalidate existing cached pixbuf */
-   g_object_set_data (G_OBJECT (panel->current_background), "pixbuf", NULL);
- 
-   /* remove the temporary file created by the shell */
-   g_unlink (panel->screenshot_path);
-   g_clear_pointer (&panel->screenshot_path, g_free);
- 
- out:
-   update_display_preview (panel, WID ("background-desktop-drawingarea"), panel->current_background);
-   g_free (data);
- }
- 
--static gboolean
- calculate_contiguous_workarea (ScreenshotData *data)
- {
-   /* Optimise for the shell panel being the only non-workarea
-    * object at the top of the screen */
-   if (data->workarea_rect.x != data->monitor_rect.x)
-     return FALSE;
-   if ((data->workarea_rect.y + data->workarea_rect.height) != (data->monitor_rect.y + 
data->monitor_rect.height))
-     return FALSE;
- 
-   data->capture_rect.x = data->monitor_rect.x;
-   data->capture_rect.width = data->monitor_rect.width;
-   data->capture_rect.y = data->monitor_rect.y;
-   data->capture_rect.height = data->monitor_rect.height - data->workarea_rect.height;
- 
-   return TRUE;
- }
- 
- static void
- get_screenshot_async (CcBackgroundPanel *panel)
- {
-   gchar *path, *tmpname;
-   const gchar *method_name;
-   GVariant *method_params;
-   GtkWidget *widget;
-   ScreenshotData *data;
-   int primary;
- 
-   data = g_new0 (ScreenshotData, 1);
-   data->panel = panel;
- 
-   widget = WID ("background-desktop-drawingarea");
-   primary = gdk_screen_get_primary_monitor (gtk_widget_get_screen (widget));
-   gdk_screen_get_monitor_geometry (gtk_widget_get_screen (widget), primary, &data->monitor_rect);
-   gdk_screen_get_monitor_workarea (gtk_widget_get_screen (widget), primary, &data->workarea_rect);
-   if (calculate_contiguous_workarea (data)) {
-     g_debug ("Capturing only a portion of the screen");
-   } else {
-     g_debug ("Capturing the whole monitor");
-     data->whole_monitor = TRUE;
-     data->capture_rect = data->monitor_rect;
-   }
- 
-   g_debug ("Trying to capture rectangle %dx%d (at %d,%d)",
-            data->capture_rect.width, data->capture_rect.height, data->capture_rect.x, data->capture_rect.y);
- 
-   path = g_build_filename (g_get_user_cache_dir (), "gnome-control-center", NULL);
-   g_mkdir_with_parents (path, USER_DIR_MODE);
- 
-   tmpname = g_strdup_printf ("scr-%d.png", g_random_int ());
-   g_free (panel->screenshot_path);
-   panel->screenshot_path = g_build_filename (path, tmpname, NULL);
-   g_free (path);
-   g_free (tmpname);
- 
-   method_name = "ScreenshotArea";
-   method_params = g_variant_new ("(iiiibs)",
-                                  data->capture_rect.x, data->capture_rect.y,
-                                  data->capture_rect.width, data->capture_rect.height,
-                                  FALSE, /* flash */
-                                  panel->screenshot_path);
- 
-   g_dbus_connection_call (panel->connection,
-                           "org.gnome.Shell.Screenshot",
-                           "/org/gnome/Shell/Screenshot",
-                           "org.gnome.Shell.Screenshot",
-                           method_name,
-                           method_params,
-                           NULL,
-                           G_DBUS_CALL_FLAGS_NONE,
-                           -1,
-                           panel->capture_cancellable,
-                           on_screenshot_finished,
-                           data);
- }
- 
- static gboolean
--on_preview_draw (GtkWidget         *widget,
--                 cairo_t           *cr,
--                 CcBackgroundPanel *panel)
--{
-   /* we have another shot in flight or an existing cache */
-   if (panel->display_screenshot == NULL
-       && panel->screenshot_path == NULL)
-     {
-       get_screenshot_async (panel);
-     }
-   else
-     update_display_preview (panel, widget, panel->current_background);
 -  update_display_preview (panel, widget, panel->current_background);
  
    return TRUE;
  }
  
 -static gboolean
 -on_lock_preview_draw (GtkWidget         *widget,
 -                      cairo_t           *cr,
 -                      CcBackgroundPanel *panel)
 -{
 -  update_display_preview (panel, widget, panel->current_lock_background);
 -  return TRUE;
 -}
 -
  static void
  reload_current_bg (CcBackgroundPanel *panel,
-                    GSettings *settings
-                   )
 -                   GSettings         *settings)
++                   GSettings *settings)
  {
    CcBackgroundItem *saved, *configured;
    gchar *uri, *pcolor, *scolor;
@@@ -849,24 -577,12 +634,19 @@@ is_gnome_photos_installed (
  }
  
  static void
 -on_settings_changed (GSettings         *settings,
 -                     gchar             *key,
 -                     CcBackgroundPanel *self)
 +load_wallpapers (CcBackgroundPanel *panel,
 +                 GtkWidget *parent)
  {
 -  reload_current_bg (self, settings);
 -  update_preview (self, settings, NULL);
 +  GtkListStore *model;
-   /*gint scale_factor;
 +
-   scale_factor = gtk_widget_get_scale_factor (GTK_WIDGET (panel));
-   g_print ("Scale factor %d\n", scale_factor);*/
- 
-   /* FIXME: get the right window to pass it to bg_wallpapers_source_new */
 +  panel->wallpapers_source = bg_wallpapers_source_new (GTK_WIDGET (panel));
 +  model = bg_source_get_liststore (BG_SOURCE (panel->wallpapers_source));
 +
 +  gtk_tree_model_foreach (GTK_TREE_MODEL (model), do_foreach_background_item, panel);
 +
 +  g_signal_connect (model, "row-inserted", G_CALLBACK (on_source_added_cb), panel);
 +  //g_signal_connect (model, "row-deleted", G_CALLBACK (on_source_removed_cb), chooser);
 +  //g_signal_connect (model, "row-changed", G_CALLBACK (on_source_modified_cb), chooser);
  }
  
  static void
@@@ -914,36 -622,18 +694,34 @@@ cc_background_panel_init (CcBackgroundP
    /* setup preview area */
    widget = WID ("background-desktop-drawingarea");
    g_signal_connect (widget, "draw", G_CALLBACK (on_preview_draw), panel);
 -  widget = WID ("background-lock-drawingarea");
 -  g_signal_connect (widget, "draw", G_CALLBACK (on_lock_preview_draw), panel);
  
    panel->copy_cancellable = g_cancellable_new ();
  
    panel->thumb_factory = gnome_desktop_thumbnail_factory_new (GNOME_DESKTOP_THUMBNAIL_SIZE_LARGE);
  
 +  /* add button handler */
 +  widget = WID ("open-gnome-photos");
 +  g_signal_connect (G_OBJECT (widget), "clicked",
 +                    G_CALLBACK (on_open_gnome_photos), panel);
 +
 +  if (!is_gnome_photos_installed ()) {
 +    gtk_widget_hide (widget);
 +  }
 +
 +  widget = WID ("open-picture-folder");
 +  g_signal_connect (G_OBJECT (widget), "clicked",
 +                    G_CALLBACK (on_open_picture_folder), panel);
 +
 +  /* add the gallery widget */
 +  widget = WID ("background-gallery");
 +
 +  g_signal_connect (G_OBJECT (widget), "child-activated",
 +                    G_CALLBACK (on_background_select), panel);
 +
-   load_wallpapers (panel, widget);
- 
    /* Load the backgrounds */
++  load_wallpapers (panel, widget);
    reload_current_bg (panel, panel->settings);
    update_preview (panel, panel->settings, NULL);
 -  reload_current_bg (panel, panel->lock_settings);
 -  update_preview (panel, panel->lock_settings, NULL);
  
    /* Background settings */
    g_signal_connect (panel->settings, "changed", G_CALLBACK (on_settings_changed), panel);


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