[maemo-commits] [maemo-commits] r12384 - in projects/haf/trunk/hildon-desktop: . data src

From: subversion at stage.maemo.org subversion at stage.maemo.org
Date: Tue Jun 19 15:48:51 EEST 2007
Author: lucasr
Date: 2007-06-19 15:48:49 +0300 (Tue, 19 Jun 2007)
New Revision: 12384

Modified:
   projects/haf/trunk/hildon-desktop/ChangeLog
   projects/haf/trunk/hildon-desktop/data/desktop.conf.in
   projects/haf/trunk/hildon-desktop/src/hd-config.h
   projects/haf/trunk/hildon-desktop/src/hd-desktop.c
Log:
2007-06-19  Lucas Rocha  <lucas.rocha at nokia.com>

	* src/hd-desktop.c: load newly installed plugins if the container is
	configured for doing so.
	* src/hd-config.h: new desktop container configuration key
	"X-Load-New-Plugins".
	* data/desktop.conf.in: configured home to automaticaly load newly 
	installed plugins.


Modified: projects/haf/trunk/hildon-desktop/ChangeLog
===================================================================
--- projects/haf/trunk/hildon-desktop/ChangeLog	2007-06-19 12:02:21 UTC (rev 12383)
+++ projects/haf/trunk/hildon-desktop/ChangeLog	2007-06-19 12:48:49 UTC (rev 12384)
@@ -1,3 +1,12 @@
+2007-06-19  Lucas Rocha  <lucas.rocha at nokia.com>
+
+	* src/hd-desktop.c: load newly installed plugins if the container is
+	configured for doing so.
+	* src/hd-config.h: new desktop container configuration key
+	"X-Load-New-Plugins".
+	* data/desktop.conf.in: configured home to automaticaly load newly 
+	installed plugins.
+
 2007-06-19  Johan Bilien  <johan.bilien at nokia.com>
 
 	* libhildondesktop/hildon-desktop-home-item.c:

Modified: projects/haf/trunk/hildon-desktop/data/desktop.conf.in
===================================================================
--- projects/haf/trunk/hildon-desktop/data/desktop.conf.in	2007-06-19 12:02:21 UTC (rev 12383)
+++ projects/haf/trunk/hildon-desktop/data/desktop.conf.in	2007-06-19 12:48:49 UTC (rev 12384)
@@ -17,6 +17,7 @@
 X-Padding-Top=12
 X-Padding-Bottom=10
 X-Is-Ordered=0
+X-Load-New-Plugins=1
 X-Config-File=home.conf
 X-Plugin-Dir=@hildonhomedesktopentrydir@
 

Modified: projects/haf/trunk/hildon-desktop/src/hd-config.h
===================================================================
--- projects/haf/trunk/hildon-desktop/src/hd-config.h	2007-06-19 12:02:21 UTC (rev 12383)
+++ projects/haf/trunk/hildon-desktop/src/hd-config.h	2007-06-19 12:48:49 UTC (rev 12384)
@@ -25,17 +25,18 @@
 #ifndef __HD_CONFIG_FILES_H__
 #define __HD_CONFIG_FILES_H__
 
-#define HD_DESKTOP_CONFIG_KEY_TYPE          "X-Type"
-#define HD_DESKTOP_CONFIG_KEY_POSITION_X    "X-Position-X"
-#define HD_DESKTOP_CONFIG_KEY_POSITION_Y    "X-Position-Y"
-#define HD_DESKTOP_CONFIG_KEY_SIZE_WIDTH    "X-Size-Width"
-#define HD_DESKTOP_CONFIG_KEY_SIZE_HEIGHT   "X-Size-Height"
-#define HD_DESKTOP_CONFIG_KEY_ORIENTATION   "X-Orientation"
-#define HD_DESKTOP_CONFIG_KEY_CONFIG_FILE   "X-Config-File"
-#define HD_DESKTOP_CONFIG_KEY_UI_POLICY     "X-UI-Policy"
-#define HD_DESKTOP_CONFIG_KEY_IS_ORDERED    "X-Is-Ordered"
-#define HD_DESKTOP_CONFIG_KEY_PLUGIN_DIR    "X-Plugin-Dir"
-#define HD_DESKTOP_CONFIG_KEY_LOAD	    "X-Load"
+#define HD_DESKTOP_CONFIG_KEY_TYPE          	"X-Type"
+#define HD_DESKTOP_CONFIG_KEY_POSITION_X    	"X-Position-X"
+#define HD_DESKTOP_CONFIG_KEY_POSITION_Y    	"X-Position-Y"
+#define HD_DESKTOP_CONFIG_KEY_SIZE_WIDTH    	"X-Size-Width"
+#define HD_DESKTOP_CONFIG_KEY_SIZE_HEIGHT   	"X-Size-Height"
+#define HD_DESKTOP_CONFIG_KEY_ORIENTATION   	"X-Orientation"
+#define HD_DESKTOP_CONFIG_KEY_CONFIG_FILE   	"X-Config-File"
+#define HD_DESKTOP_CONFIG_KEY_UI_POLICY     	"X-UI-Policy"
+#define HD_DESKTOP_CONFIG_KEY_IS_ORDERED    	"X-Is-Ordered"
+#define HD_DESKTOP_CONFIG_KEY_PLUGIN_DIR    	"X-Plugin-Dir"
+#define HD_DESKTOP_CONFIG_KEY_LOAD	    	"X-Load"
+#define HD_DESKTOP_CONFIG_KEY_LOAD_NEW_PLUGINS	"X-Load-New-Plugins"
 
 #define HD_DESKTOP_CONFIG_KEY_PADDING_TOP       "X-Padding-Top"
 #define HD_DESKTOP_CONFIG_KEY_PADDING_BOTTOM    "X-Padding-Bottom"

Modified: projects/haf/trunk/hildon-desktop/src/hd-desktop.c
===================================================================
--- projects/haf/trunk/hildon-desktop/src/hd-desktop.c	2007-06-19 12:02:21 UTC (rev 12383)
+++ projects/haf/trunk/hildon-desktop/src/hd-desktop.c	2007-06-19 12:48:49 UTC (rev 12384)
@@ -80,6 +80,7 @@
   HDDesktop              *desktop;
   HDUIPolicy             *policy;
   gboolean                is_ordered;
+  gboolean                load_new_plugins;
   GnomeVFSMonitorHandle  *plugin_dir_monitor;
 } HDDesktopContainerInfo;
 
@@ -604,9 +605,20 @@
       event_type != GNOME_VFS_MONITOR_EVENT_CREATED)
     return;
 
-  if (event_type == GNOME_VFS_MONITOR_EVENT_CREATED)
+  if (info->load_new_plugins &&
+      event_type == GNOME_VFS_MONITOR_EVENT_CREATED)
+  {
+    GnomeVFSURI *uri = gnome_vfs_uri_new (info_uri);
+    gchar *uri_str;
+    
     update = TRUE;
-  
+
+    uri_str = 
+      gnome_vfs_uri_to_string (uri, GNOME_VFS_URI_HIDE_TOPLEVEL_METHOD);
+
+    plugin_list = g_list_append (plugin_list, uri_str);
+  }
+    
   children = gtk_container_get_children (
                   HILDON_DESKTOP_WINDOW (info->container)->container);
 
@@ -698,7 +710,7 @@
     GList *plugin_list = NULL;
     gchar *type, *container_config, *container_config_file, *plugin_dir;
     gchar *policy_module;
-    gboolean is_ordered;
+    gboolean is_ordered, load_new_plugins;
     
     error = NULL;
 
@@ -714,6 +726,18 @@
       error = NULL;
     }
     
+    load_new_plugins = g_key_file_get_boolean (keyfile, 
+                                               groups[i], 
+                                               HD_DESKTOP_CONFIG_KEY_LOAD_NEW_PLUGINS,
+                                               &error);
+
+    if (error)
+    {
+      load_new_plugins = FALSE;
+      g_error_free (error);
+      error = NULL;
+    }
+    
     policy_module = g_key_file_get_string (keyfile, 
                                            groups[i], 
                                            HD_DESKTOP_CONFIG_KEY_UI_POLICY,
@@ -1042,6 +1066,7 @@
     info->desktop = desktop;
     info->policy = policy;
     info->is_ordered = is_ordered;
+    info->load_new_plugins = load_new_plugins;
  
     g_signal_connect (G_OBJECT (info->container), 
                       "select-plugins",


More information about the maemo-commits mailing list