[gnome-todo] scheduled-panel: move CSS to the panel



commit 3e8578f6acb3b490d93040bf907af3f6b02a4695
Author: Georges Basile Stavracas Neto <georges stavracas gmail com>
Date:   Thu Apr 20 11:40:33 2017 -0300

    scheduled-panel: move CSS to the panel
    
    This was a leftover that happened when the Scheduled
    panel moved out of the EDS plugin. The CSS should've
    been moved too.
    
    https://bugzilla.gnome.org/show_bug.cgi?id=773847

 data/todo.gresource.xml                            |    2 +-
 plugins/eds/gtd-plugin-eds.c                       |   27 -------------------
 plugins/scheduled-panel/gtd-panel-scheduled.c      |    2 +-
 .../scheduled-panel/gtd-plugin-scheduled-panel.c   |   28 ++++++++++++++++++++
 plugins/{eds => scheduled-panel}/theme/Adwaita.css |    0
 5 files changed, 30 insertions(+), 29 deletions(-)
---
diff --git a/data/todo.gresource.xml b/data/todo.gresource.xml
index 2a3b699..a48571e 100644
--- a/data/todo.gresource.xml
+++ b/data/todo.gresource.xml
@@ -36,13 +36,13 @@
   <!--EDS Plugin-->
   <gresource prefix="/org/gnome/todo">
     <file compressed="true" alias="ui/eds/edit-pane.ui">../plugins/eds/edit-pane.ui</file>
-    <file compressed="true" alias="theme/eds/Adwaita.css">../plugins/eds/theme/Adwaita.css</file>
     <file alias="plugins/eds/eds.plugin">../plugins/eds/eds.plugin</file>
   </gresource>
 
   <!--Scheduled panel-->
   <gresource prefix="/org/gnome/todo">
     <file 
alias="plugins/scheduled-panel/scheduled-panel.plugin">../plugins/scheduled-panel/scheduled-panel.plugin</file>
+    <file compressed="true" 
alias="theme/scheduled-panel/Adwaita.css">../plugins/scheduled-panel/theme/Adwaita.css</file>
   </gresource>
 
   <!--Today panel-->
diff --git a/plugins/eds/gtd-plugin-eds.c b/plugins/eds/gtd-plugin-eds.c
index 1ad2df5..534c4eb 100644
--- a/plugins/eds/gtd-plugin-eds.c
+++ b/plugins/eds/gtd-plugin-eds.c
@@ -42,7 +42,6 @@ struct _GtdPluginEds
 {
   GObject                 parent;
 
-  GtkCssProvider         *provider;
   ESourceRegistry        *registry;
 
   /* Providers */
@@ -338,36 +337,10 @@ gtd_plugin_eds_class_init (GtdPluginEdsClass *klass)
 static void
 gtd_plugin_eds_init (GtdPluginEds *self)
 {
-  GError *error = NULL;
-  GFile* css_file;
-
   /* load the source registry */
   e_source_registry_new (NULL,
                          (GAsyncReadyCallback) gtd_plugin_eds_source_registry_finish_cb,
                          self);
-
-  /* load CSS */
-  self->provider = gtk_css_provider_new ();
-  gtk_style_context_add_provider_for_screen (gdk_screen_get_default (),
-                                             GTK_STYLE_PROVIDER (self->provider),
-                                             GTK_STYLE_PROVIDER_PRIORITY_APPLICATION + 1);
-
-  css_file = g_file_new_for_uri ("resource:///org/gnome/todo/theme/eds/Adwaita.css");
-
-  gtk_css_provider_load_from_file (self->provider,
-                                   css_file,
-                                   &error);
-  if (error != NULL)
-   {
-     g_warning ("%s: %s: %s",
-                G_STRFUNC,
-                _("Error loading CSS from resource"),
-                error->message);
-
-     g_error_free (error);
-   }
-
-  g_object_unref (css_file);
 }
 
 /* Empty class_finalize method */
diff --git a/plugins/scheduled-panel/gtd-panel-scheduled.c b/plugins/scheduled-panel/gtd-panel-scheduled.c
index a866528..844c17c 100644
--- a/plugins/scheduled-panel/gtd-panel-scheduled.c
+++ b/plugins/scheduled-panel/gtd-panel-scheduled.c
@@ -101,7 +101,7 @@ get_string_for_date (GDateTime *dt,
   if (!dt)
     return g_strdup (_("No date set"));
 
-  get_date_offset(dt, &days_diff, &next_year_diff);
+  get_date_offset (dt, &days_diff, &next_year_diff);
 
   if (days_diff < 0)
     {
diff --git a/plugins/scheduled-panel/gtd-plugin-scheduled-panel.c 
b/plugins/scheduled-panel/gtd-plugin-scheduled-panel.c
index 73033d5..5ee6830 100644
--- a/plugins/scheduled-panel/gtd-plugin-scheduled-panel.c
+++ b/plugins/scheduled-panel/gtd-plugin-scheduled-panel.c
@@ -30,6 +30,7 @@ struct _GtdPluginScheduledPanel
   PeasExtensionBase   parent;
 
   GList              *panels;
+  GtkCssProvider     *css_provider;
 };
 
 static void          gtd_activatable_iface_init                  (GtdActivatableInterface  *iface);
@@ -140,7 +141,34 @@ gtd_plugin_scheduled_panel_class_init (GtdPluginScheduledPanelClass *klass)
 static void
 gtd_plugin_scheduled_panel_init (GtdPluginScheduledPanel *self)
 {
+  GSettings *settings;
+  GFile* css_file;
+  gchar *theme_name;
+  gchar *theme_uri;
+
+  /* Load CSS provider */
+  settings = g_settings_new ("org.gnome.desktop.interface");
+  theme_name = g_settings_get_string (settings, "gtk-theme");
+  theme_uri = g_build_filename ("resource:///org/gnome/todo/theme/scheduled-panel", theme_name, ".css", 
NULL);
+  css_file = g_file_new_for_uri (theme_uri);
+
+  self->css_provider = gtk_css_provider_new ();
+  gtk_style_context_add_provider_for_screen (gdk_screen_get_default (),
+                                             GTK_STYLE_PROVIDER (self->css_provider),
+                                             GTK_STYLE_PROVIDER_PRIORITY_APPLICATION);
+
+  if (g_file_query_exists (css_file, NULL))
+    gtk_css_provider_load_from_file (self->css_provider, css_file, NULL);
+  else
+    gtk_css_provider_load_from_resource (self->css_provider, 
"/org/gnome/todo/theme/scheduled-panel/Adwaita.css");
+
+  /* And then the panel */
   self->panels = g_list_append (NULL, gtd_panel_scheduled_new ());
+
+  g_object_unref (settings);
+  g_object_unref (css_file);
+  g_free (theme_name);
+  g_free (theme_uri);
 }
 
 static void
diff --git a/plugins/eds/theme/Adwaita.css b/plugins/scheduled-panel/theme/Adwaita.css
similarity index 100%
rename from plugins/eds/theme/Adwaita.css
rename to plugins/scheduled-panel/theme/Adwaita.css


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