[evolution-patches] Shell : patch to have a component without buttons



Hi,

This patch checks the Bonobo control for a component and decides on
adding a component button for the component. This is needed for
exchange, as we need to be having the exchange implement the bonobo
interface for an upgrade, and yet not display the exchange button.

Thanks
-- Sarfraaz
Index: ChangeLog
===================================================================
RCS file: /cvs/gnome/evolution/shell/ChangeLog,v
retrieving revision 1.1531
diff -u -p -u -p -r1.1531 ChangeLog
--- ChangeLog	21 Jul 2005 08:59:53 -0000	1.1531
+++ ChangeLog	21 Jul 2005 14:17:52 -0000
@@ -1,3 +1,14 @@
+2005-07-21  Sarfraaz Ahmed <asarfraaz novell com>
+
+	* e-component-registry.c (component_info_new): dup the strings only
+	if they are present. This will help us decide on drawing a component
+	button. 
+	(query_components): Dont enter default values for button label and 
+	menu label
+	* e-shell-window.c (init_view): Dont setup the bonobo controls if not
+	present
+	(setup_widgets): Dont add the sidebar button when there is no label.
+
 2005-07-21  Sankar P  <psankar novell com>
 
 	* shell.error.xml : Added string for forget password prompt.
Index: e-component-registry.c
===================================================================
RCS file: /cvs/gnome/evolution/shell/e-component-registry.c,v
retrieving revision 1.55
diff -u -p -u -p -r1.55 e-component-registry.c
--- e-component-registry.c	16 May 2005 04:46:40 -0000	1.55
+++ e-component-registry.c	21 Jul 2005 14:17:52 -0000
@@ -63,10 +63,14 @@ component_info_new (const char *id,
 	info->id = g_strdup (id);
 	info->iface = bonobo_object_dup_ref(iface, NULL);
 	info->alias = g_strdup (alias);
-	info->button_label = g_strdup (button_label);
-	info->button_tooltips = g_strdup (button_tooltips);
-	info->menu_label = g_strdup (menu_label);
-	info->menu_accelerator = g_strdup (menu_accelerator);
+	if (button_label)
+		info->button_label = g_strdup (button_label);
+	if (button_tooltips)
+		info->button_tooltips = g_strdup (button_tooltips);
+	if (menu_label)
+		info->menu_label = g_strdup (menu_label);
+	if (menu_accelerator)
+		info->menu_accelerator = g_strdup (menu_accelerator);
 	info->sort_order = sort_order;
 
 	info->button_icon = button_icon;
@@ -201,14 +205,18 @@ query_components (EComponentRegistry *re
 		}
 
 		label = bonobo_server_info_prop_lookup (& info_list->_buffer[i], "evolution:button_label", language_list);
+		/*
 		if (label == NULL)
 			label = g_strdup (_("Unknown"));
-
+		*/
+		
 		tooltips = bonobo_server_info_prop_lookup (& info_list->_buffer[i], "evolution:button_tooltips", language_list);
 
 		menu_label = bonobo_server_info_prop_lookup (& info_list->_buffer[i], "evolution:menu_label", language_list);
+		/*
 		if (menu_label == NULL)
 			menu_label = g_strdup (_("Unknown"));
+		*/
 
 		menu_accelerator = bonobo_server_info_prop_lookup (& info_list->_buffer[i], "evolution:menu_accelerator", language_list);
 
Index: e-shell-window.c
===================================================================
RCS file: /cvs/gnome/evolution/shell/e-shell-window.c,v
retrieving revision 1.36
diff -u -p -u -p -r1.36 e-shell-window.c
--- e-shell-window.c	21 Jul 2005 07:09:23 -0000	1.36
+++ e-shell-window.c	21 Jul 2005 14:17:52 -0000
@@ -234,33 +234,34 @@ init_view (EShellWindow *window,
 
 	CORBA_exception_free (&ev);
 
-	container = bonobo_ui_component_get_container (priv->ui_component);
+	if (sidebar_control && view_control && statusbar_control) {
+		container = bonobo_ui_component_get_container (priv->ui_component);
 
-	view->sidebar_widget = bonobo_widget_new_control_from_objref (sidebar_control, container);
-	gtk_widget_show (view->sidebar_widget);
-	bonobo_object_release_unref (sidebar_control, NULL);
+		view->sidebar_widget = bonobo_widget_new_control_from_objref (sidebar_control, container);
+		gtk_widget_show (view->sidebar_widget);
+		bonobo_object_release_unref (sidebar_control, NULL);
 
-	view->view_widget = bonobo_widget_new_control_from_objref (view_control, container);
-	gtk_widget_show (view->view_widget);
-	bonobo_object_release_unref (view_control, NULL);
+		view->view_widget = bonobo_widget_new_control_from_objref (view_control, container);
+		gtk_widget_show (view->view_widget);
+		bonobo_object_release_unref (view_control, NULL);
 
-	view->statusbar_widget = bonobo_widget_new_control_from_objref (statusbar_control, container);
-	gtk_widget_show (view->statusbar_widget);
-	bonobo_object_release_unref (statusbar_control, NULL);
+		view->statusbar_widget = bonobo_widget_new_control_from_objref (statusbar_control, container);
+		gtk_widget_show (view->statusbar_widget);
+		bonobo_object_release_unref (statusbar_control, NULL);
 
-	gtk_notebook_append_page (GTK_NOTEBOOK (priv->sidebar_notebook), view->sidebar_widget, NULL);
-	gtk_notebook_append_page (GTK_NOTEBOOK (priv->view_notebook), view->view_widget, NULL);
-	gtk_notebook_append_page (GTK_NOTEBOOK (priv->statusbar_notebook), view->statusbar_widget, NULL);
+		gtk_notebook_append_page (GTK_NOTEBOOK (priv->sidebar_notebook), view->sidebar_widget, NULL);
+		gtk_notebook_append_page (GTK_NOTEBOOK (priv->view_notebook), view->view_widget, NULL);
+		gtk_notebook_append_page (GTK_NOTEBOOK (priv->statusbar_notebook), view->statusbar_widget, NULL);
 
-	sidebar_notebook_page_num = gtk_notebook_page_num (GTK_NOTEBOOK (priv->sidebar_notebook), view->sidebar_widget);
-	view_notebook_page_num = gtk_notebook_page_num (GTK_NOTEBOOK (priv->view_notebook), view->view_widget);
-	statusbar_notebook_page_num = gtk_notebook_page_num (GTK_NOTEBOOK (priv->view_notebook), view->statusbar_widget);
+		sidebar_notebook_page_num = gtk_notebook_page_num (GTK_NOTEBOOK (priv->sidebar_notebook), view->sidebar_widget);
+		view_notebook_page_num = gtk_notebook_page_num (GTK_NOTEBOOK (priv->view_notebook), view->view_widget);
+		statusbar_notebook_page_num = gtk_notebook_page_num (GTK_NOTEBOOK (priv->view_notebook), view->statusbar_widget);
 
-	/* Since we always add a view page and a sidebar page at the same time...  */
-	g_assert (sidebar_notebook_page_num == view_notebook_page_num);
-
-	view->notebook_page_num = view_notebook_page_num;
+		/* Since we always add a view page and a sidebar page at the same time...  */
+		g_assert (sidebar_notebook_page_num == view_notebook_page_num);
 
+		view->notebook_page_num = view_notebook_page_num;
+	}
 	/* 3. Switch to the new page.  */
 
 	gtk_notebook_set_current_page (GTK_NOTEBOOK (priv->view_notebook), view_notebook_page_num);
@@ -695,6 +696,9 @@ setup_widgets (EShellWindow *window)
 		ComponentView *view = component_view_new (info->id, info->alias, button_id);
 
 		window->priv->component_views = g_slist_prepend (window->priv->component_views, view);
+
+		if (!info->button_label || !info->menu_label)
+			continue;
 		e_sidebar_add_button (E_SIDEBAR (priv->sidebar), info->button_label, info->button_tooltips, info->button_icon, button_id);
 
 		g_string_printf(xml, "SwitchComponent-%s", info->alias);


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