1099 lines
		
	
	
		
			36 KiB
		
	
	
	
		
			Diff
		
	
	
	
	
	
			
		
		
	
	
			1099 lines
		
	
	
		
			36 KiB
		
	
	
	
		
			Diff
		
	
	
	
	
	
| --- evolution-data-server-1.10.0/libedataserverui/e-name-selector-dialog.glade.code-cleanup	2007-01-03 05:09:27.000000000 -0500
 | |
| +++ evolution-data-server-1.10.0/libedataserverui/e-name-selector-dialog.glade	2007-04-04 12:08:04.000000000 -0400
 | |
| @@ -118,7 +118,10 @@
 | |
|  		  <property name="yalign">0.5</property>
 | |
|  		  <property name="xpad">0</property>
 | |
|  		  <property name="ypad">0</property>
 | |
| -		  <property name="mnemonic_widget">optionmenu-category</property> 
 | |
| +		  <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
 | |
| +		  <property name="width_chars">-1</property>
 | |
| +		  <property name="single_line_mode">False</property>
 | |
| +		  <property name="angle">0</property>
 | |
|  		</widget>
 | |
|  		<packing>
 | |
|  		  <property name="left_attach">0</property>
 | |
| @@ -127,23 +130,7 @@
 | |
|  		  <property name="bottom_attach">2</property>
 | |
|  		  <property name="x_options">fill</property>
 | |
|  		  <property name="y_options"></property>
 | |
| -	        </packing>
 | |
| -	      </child>
 | |
| -	
 | |
| -	      <child>
 | |
| -		<widget class="GtkOptionMenu" id="optionmenu-category">
 | |
| -		  <property name="visible">True</property>
 | |
| -		  <property name="can_focus">True</property>
 | |
| -		  <property name="history">0</property>
 | |
| -	        </widget>
 | |
| -	        <packing>
 | |
| -  	          <property name="left_attach">1</property>
 | |
| -	     	  <property name="right_attach">2</property>
 | |
| -	          <property name="top_attach">1</property>
 | |
| -	          <property name="bottom_attach">2</property>
 | |
| -	          <property name="x_options">fill</property>
 | |
| -	          <property name="y_options">fill</property>
 | |
| -	        </packing>
 | |
| +		</packing>
 | |
|  	      </child>
 | |
|  
 | |
|  	      <child>
 | |
| @@ -229,6 +216,23 @@
 | |
|  		  <property name="y_options">fill</property>
 | |
|  		</packing>
 | |
|  	      </child>
 | |
| +
 | |
| +	      <child>
 | |
| +		<widget class="GtkComboBox" id="combobox-category">
 | |
| +		  <property name="visible">True</property>
 | |
| +		  <property name="items" translatable="yes">Any Category</property>
 | |
| +		  <property name="add_tearoffs">False</property>
 | |
| +		  <property name="focus_on_click">True</property>
 | |
| +		</widget>
 | |
| +		<packing>
 | |
| +		  <property name="left_attach">1</property>
 | |
| +		  <property name="right_attach">2</property>
 | |
| +		  <property name="top_attach">1</property>
 | |
| +		  <property name="bottom_attach">2</property>
 | |
| +		  <property name="x_options">fill</property>
 | |
| +		  <property name="y_options">fill</property>
 | |
| +		</packing>
 | |
| +	      </child>
 | |
|  	    </widget>
 | |
|  	    <packing>
 | |
|  	      <property name="padding">0</property>
 | |
| --- evolution-data-server-1.10.0/libedataserverui/e-name-selector-list.c.code-cleanup	2007-01-03 05:09:27.000000000 -0500
 | |
| +++ evolution-data-server-1.10.0/libedataserverui/e-name-selector-list.c	2007-04-04 12:08:04.000000000 -0400
 | |
| @@ -447,7 +447,7 @@
 | |
|  		
 | |
|  			if (len > 1) {
 | |
|  				menu_item = gtk_radio_menu_item_new_with_label (group, email);
 | |
| -				group = gtk_radio_menu_item_group (GTK_RADIO_MENU_ITEM (menu_item));
 | |
| +				group = gtk_radio_menu_item_get_group (GTK_RADIO_MENU_ITEM (menu_item));
 | |
|  				g_signal_connect (menu_item, "toggled", G_CALLBACK (destination_set_email), destination);
 | |
|  			} else {
 | |
|  				menu_item = gtk_menu_item_new_with_label (email);			
 | |
| --- evolution-data-server-1.10.0/libedataserverui/e-name-selector-entry.c.code-cleanup	2007-01-03 05:09:27.000000000 -0500
 | |
| +++ evolution-data-server-1.10.0/libedataserverui/e-name-selector-entry.c	2007-04-04 12:08:04.000000000 -0400
 | |
| @@ -2136,7 +2136,7 @@
 | |
|  		
 | |
|  			if (len > 1) {
 | |
|  				menu_item = gtk_radio_menu_item_new_with_label (group, email);
 | |
| -				group = gtk_radio_menu_item_group (GTK_RADIO_MENU_ITEM (menu_item));
 | |
| +				group = gtk_radio_menu_item_get_group (GTK_RADIO_MENU_ITEM (menu_item));
 | |
|  				g_signal_connect (menu_item, "toggled", G_CALLBACK (destination_set_email), destination);
 | |
|  			} else {
 | |
|  				menu_item = gtk_menu_item_new_with_label (email);			
 | |
| --- evolution-data-server-1.10.0/libedataserverui/test-source-option-menu.c.code-cleanup	2007-01-03 05:09:27.000000000 -0500
 | |
| +++ evolution-data-server-1.10.0/libedataserverui/test-source-option-menu.c	2007-04-04 12:08:04.000000000 -0400
 | |
| @@ -1,5 +1,5 @@
 | |
|  /* -*- Mode: C; indent-tabs-mode: t; c-basic-offset: 8; tab-width: 8 -*- */
 | |
| -/* test-source-option-menu.c - Test for ESourceOptionMenu.
 | |
| +/* test-source-combo-box.c - Test for ESourceComboBox.
 | |
|   *
 | |
|   * Copyright (C) 2003 Novell, Inc.
 | |
|   *
 | |
| @@ -24,17 +24,17 @@
 | |
|  #include <config.h>
 | |
|  #endif
 | |
|  
 | |
| -
 | |
| -#include "e-source-option-menu.h"
 | |
| +#include "e-source-combo-box.h"
 | |
|  
 | |
|  #include <gtk/gtkwindow.h>
 | |
|  #include <gtk/gtkmain.h>
 | |
|  
 | |
|  static void
 | |
| -source_selected_callback (ESourceOptionMenu *menu,
 | |
| -			  ESource *source,
 | |
| -			  void *unused_data)
 | |
| +source_changed_cb (ESourceComboBox *combo_box)
 | |
|  {
 | |
| +	ESource *source;
 | |
| +
 | |
| +	source = e_source_combo_box_get_active (combo_box);
 | |
|  	g_print ("source selected: \"%s\"\n", e_source_peek_name (source));
 | |
|  }
 | |
|  
 | |
| @@ -43,7 +43,7 @@
 | |
|  on_idle_create_widget (const char *gconf_path)
 | |
|  {
 | |
|  	GtkWidget *window;
 | |
| -	GtkWidget *option_menu;
 | |
| +	GtkWidget *combo_box;
 | |
|  	ESourceList *source_list;
 | |
|  	GConfClient *gconf_client;
 | |
|  
 | |
| @@ -51,10 +51,12 @@
 | |
|  	source_list = e_source_list_new_for_gconf (gconf_client, gconf_path);
 | |
|  
 | |
|  	window = gtk_window_new (GTK_WINDOW_TOPLEVEL);
 | |
| -	option_menu = e_source_option_menu_new (source_list);
 | |
| -	g_signal_connect (option_menu, "source_selected", G_CALLBACK (source_selected_callback), NULL);
 | |
| +	combo_box = e_source_combo_box_new (source_list);
 | |
| +	g_signal_connect (
 | |
| +		combo_box, "changed",
 | |
| +		G_CALLBACK (source_changed_cb), NULL);
 | |
|  
 | |
| -	gtk_container_add (GTK_CONTAINER (window), option_menu);
 | |
| +	gtk_container_add (GTK_CONTAINER (window), combo_box);
 | |
|  	gtk_widget_show_all (window);
 | |
|  
 | |
|  	g_object_unref (gconf_client);
 | |
| --- evolution-data-server-1.10.0/libedataserverui/e-source-option-menu.h.code-cleanup	2007-01-03 05:09:27.000000000 -0500
 | |
| +++ evolution-data-server-1.10.0/libedataserverui/e-source-option-menu.h	2007-04-04 12:08:04.000000000 -0400
 | |
| @@ -23,6 +23,8 @@
 | |
|  #ifndef _E_SOURCE_OPTION_MENU_H_
 | |
|  #define _E_SOURCE_OPTION_MENU_H_
 | |
|  
 | |
| +#ifndef EDS_DISABLE_DEPRECATED
 | |
| +
 | |
|  #include <libedataserver/e-source-list.h>
 | |
|  
 | |
|  #include <gtk/gtkoptionmenu.h>
 | |
| @@ -60,5 +62,6 @@
 | |
|  void     e_source_option_menu_select         (ESourceOptionMenu *menu,
 | |
|  					      ESource           *source);
 | |
|  
 | |
| +#endif /* EDS_DISABLE_DEPRECATED */
 | |
|  
 | |
|  #endif /* _E_SOURCE_OPTION_MENU_H_ */
 | |
| --- /dev/null	2007-03-30 19:30:56.246366825 -0400
 | |
| +++ evolution-data-server-1.10.0/libedataserverui/e-source-combo-box.h	2007-04-04 12:08:04.000000000 -0400
 | |
| @@ -0,0 +1,79 @@
 | |
| +/* -*- Mode: C; indent-tabs-mode: t; c-basic-offset: 8; tab-width: 8 -*- */
 | |
| +/* e-source-combo-box.h
 | |
| + *
 | |
| + * Copyright (C) 2007 Novell, Inc.
 | |
| + *
 | |
| + * This program is free software; you can redistribute it and/or
 | |
| + * modify it under the terms of version 2 of the GNU Lesser General Public
 | |
| + * License as published by the Free Software Foundation.
 | |
| + *
 | |
| + * This program is distributed in the hope that it will be useful,
 | |
| + * but WITHOUT ANY WARRANTY; without even the implied warranty of
 | |
| + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
 | |
| + * General Public License for more details.
 | |
| + *
 | |
| + * You should have received a copy of the GNU Lesser General Public
 | |
| + * License along with this program; if not, write to the
 | |
| + * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
 | |
| + * Boston, MA 02111-1307, USA.
 | |
| + */
 | |
| +
 | |
| +#ifndef _E_SOURCE_COMBO_BOX_H_
 | |
| +#define _E_SOURCE_COMBO_BOX_H_
 | |
| +
 | |
| +#include <gtk/gtk.h>
 | |
| +#include <libedataserver/e-source-list.h>
 | |
| +
 | |
| +#define E_TYPE_SOURCE_COMBO_BOX \
 | |
| +	(e_source_combo_box_get_type ())
 | |
| +#define E_SOURCE_COMBO_BOX(obj) \
 | |
| +	(G_TYPE_CHECK_INSTANCE_CAST \
 | |
| +	((obj), E_TYPE_SOURCE_COMBO_BOX, ESourceComboBox))
 | |
| +#define E_SOURCE_COMBO_BOX_CLASS(cls) \
 | |
| +	(G_TYPE_CHECK_CLASS_CAST \
 | |
| +	((cls), E_TYPE_SOURCE_COMBO_BOX, ESourceComboBoxClass))
 | |
| +#define E_IS_SOURCE_COMBO_BOX(obj) \
 | |
| +	(G_TYPE_CHECK_INSTANCE_TYPE ((obj), E_TYPE_SOURCE_COMBO_BOX))
 | |
| +#define E_IS_SOURCE_COMBO_BOX_CLASS(cls) \
 | |
| +	(G_TYPE_CHECK_CLASS_TYPE ((cls), E_TYPE_SOURCE_COMBO_BOX))
 | |
| +#define E_SOURCE_COMBO_BOX_GET_CLASS(obj) \
 | |
| +	(G_TYPE_INSTANCE_GET_CLASS \
 | |
| +	((obj), E_TYPE_SOURCE_COMBO_BOX, ESourceComboBox))
 | |
| +
 | |
| +G_BEGIN_DECLS
 | |
| +
 | |
| +typedef struct _ESourceComboBox ESourceComboBox;
 | |
| +typedef struct _ESourceComboBoxClass ESourceComboBoxClass;
 | |
| +typedef struct _ESourceComboBoxPrivate ESourceComboBoxPrivate;
 | |
| +
 | |
| +struct _ESourceComboBox {
 | |
| +	GtkComboBox parent;
 | |
| +
 | |
| +	ESourceComboBoxPrivate *priv;
 | |
| +};
 | |
| +
 | |
| +struct _ESourceComboBoxClass {
 | |
| +	GtkComboBoxClass parent_class;
 | |
| +};
 | |
| +
 | |
| +GType		e_source_combo_box_get_type	(void);
 | |
| +GtkWidget *	e_source_combo_box_new		(ESourceList *source_list);
 | |
| +ESourceList *	e_source_combo_box_get_source_list
 | |
| +						(ESourceComboBox *source_combo_box);
 | |
| +void		e_source_combo_box_set_source_list
 | |
| +						(ESourceComboBox *source_combo_box,
 | |
| +					 	 ESourceList *source_list);
 | |
| +ESource *	e_source_combo_box_get_active
 | |
| +						(ESourceComboBox *source_combo_box);
 | |
| +void		e_source_combo_box_set_active
 | |
| +						(ESourceComboBox *source_combo_box,
 | |
| +						 ESource *source);
 | |
| +const gchar *	e_source_combo_box_get_active_uid
 | |
| +						(ESourceComboBox *source_combo_box);
 | |
| +void		e_source_combo_box_set_active_uid
 | |
| +						(ESourceComboBox *source_combo_box,
 | |
| +						 const gchar *uid);
 | |
| +
 | |
| +G_END_DECLS
 | |
| +
 | |
| +#endif /* _E_SOURCE_COMBO_BOX_H_ */
 | |
| --- evolution-data-server-1.10.0/libedataserverui/Makefile.in.code-cleanup	2007-03-12 12:04:04.000000000 -0400
 | |
| +++ evolution-data-server-1.10.0/libedataserverui/Makefile.in	2007-04-04 12:08:04.000000000 -0400
 | |
| @@ -78,8 +78,8 @@
 | |
|  	e-name-selector-dialog.lo e-name-selector-entry.lo \
 | |
|  	e-name-selector-model.lo e-name-selector-list.lo \
 | |
|  	e-passwords.lo e-source-selector.lo \
 | |
| -	e-source-selector-dialog.lo e-source-option-menu.lo \
 | |
| -	e-tree-model-generator.lo
 | |
| +	e-source-selector-dialog.lo e-source-combo-box.lo \
 | |
| +	e-source-option-menu.lo e-tree-model-generator.lo
 | |
|  libedataserverui_1_2_la_OBJECTS =  \
 | |
|  	$(am_libedataserverui_1_2_la_OBJECTS)
 | |
|  PROGRAMS = $(noinst_PROGRAMS)
 | |
| @@ -452,6 +452,7 @@
 | |
|  	e-passwords.c			\
 | |
|  	e-source-selector.c		\
 | |
|  	e-source-selector-dialog.c	\
 | |
| +	e-source-combo-box.c		\
 | |
|  	e-source-option-menu.c		\
 | |
|  	e-tree-model-generator.c
 | |
|  
 | |
| @@ -481,6 +482,7 @@
 | |
|  	e-passwords.h			\
 | |
|  	e-source-selector.h		\
 | |
|  	e-source-selector-dialog.h	\
 | |
| +	e-source-combo-box.h		\
 | |
|  	e-source-option-menu.h		\
 | |
|  	e-tree-model-generator.h
 | |
|  
 | |
| @@ -619,6 +621,7 @@
 | |
|  @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/e-name-selector-model.Plo@am__quote@
 | |
|  @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/e-name-selector.Plo@am__quote@
 | |
|  @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/e-passwords.Plo@am__quote@
 | |
| +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/e-source-combo-box.Plo@am__quote@
 | |
|  @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/e-source-option-menu.Plo@am__quote@
 | |
|  @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/e-source-selector-dialog.Plo@am__quote@
 | |
|  @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/e-source-selector.Plo@am__quote@
 | |
| --- evolution-data-server-1.10.0/libedataserverui/e-name-selector-dialog.h.code-cleanup	2007-01-03 05:09:27.000000000 -0500
 | |
| +++ evolution-data-server-1.10.0/libedataserverui/e-name-selector-dialog.h	2007-04-04 12:08:04.000000000 -0400
 | |
| @@ -58,7 +58,6 @@
 | |
|  	/* Private */
 | |
|  
 | |
|  	EBook              *pending_book;
 | |
| -	ESourceList        *source_list;
 | |
|  	ENameSelectorModel *name_selector_model;
 | |
|  	GtkTreeModelSort   *contact_sort;
 | |
|  
 | |
| --- evolution-data-server-1.10.0/libedataserverui/Makefile.am.code-cleanup	2007-01-03 05:09:27.000000000 -0500
 | |
| +++ evolution-data-server-1.10.0/libedataserverui/Makefile.am	2007-04-04 12:08:04.000000000 -0400
 | |
| @@ -31,6 +31,7 @@
 | |
|  	e-passwords.c			\
 | |
|  	e-source-selector.c		\
 | |
|  	e-source-selector-dialog.c	\
 | |
| +	e-source-combo-box.c		\
 | |
|  	e-source-option-menu.c		\
 | |
|  	e-tree-model-generator.c
 | |
|  
 | |
| @@ -63,6 +64,7 @@
 | |
|  	e-passwords.h			\
 | |
|  	e-source-selector.h		\
 | |
|  	e-source-selector-dialog.h	\
 | |
| +	e-source-combo-box.h		\
 | |
|  	e-source-option-menu.h		\
 | |
|  	e-tree-model-generator.h
 | |
|  
 | |
| --- evolution-data-server-1.10.0/libedataserverui/e-name-selector-dialog.c.code-cleanup	2007-04-04 12:08:04.000000000 -0400
 | |
| +++ evolution-data-server-1.10.0/libedataserverui/e-name-selector-dialog.c	2007-04-04 12:08:04.000000000 -0400
 | |
| @@ -32,7 +32,7 @@
 | |
|  #include <gtk/gtkscrolledwindow.h>
 | |
|  #include <gtk/gtkstock.h>
 | |
|  #include <glib/gi18n-lib.h>
 | |
| -#include <libedataserverui/e-source-option-menu.h>
 | |
| +#include <libedataserverui/e-source-combo-box.h>
 | |
|  #include <libedataserverui/e-destination-store.h>
 | |
|  #include <libedataserverui/e-contact-store.h>
 | |
|  #include <libedataserverui/e-book-auth-util.h>
 | |
| @@ -64,9 +64,8 @@
 | |
|  	guint destination_index;
 | |
|  };
 | |
|  
 | |
| -static ESource *find_first_source             (ESourceList *source_list);
 | |
|  static void     search_changed                (ENameSelectorDialog *name_selector_dialog);
 | |
| -static void     source_selected               (ENameSelectorDialog *name_selector_dialog, ESource *source);
 | |
| +static void     source_changed                (ENameSelectorDialog *name_selector_dialog, ESourceComboBox *source_combo_box);
 | |
|  static void     transfer_button_clicked       (ENameSelectorDialog *name_selector_dialog, GtkButton *transfer_button);
 | |
|  static void     contact_selection_changed     (ENameSelectorDialog *name_selector_dialog);
 | |
|  static void     setup_name_selector_model     (ENameSelectorDialog *name_selector_dialog);
 | |
| @@ -106,33 +105,28 @@
 | |
|  {
 | |
|  }
 | |
|  
 | |
| -/* FIXME: category_list should become part of ENameSelectorDialog structure */
 | |
| -GList *category_list;
 | |
| -
 | |
|  static void
 | |
|  e_name_selector_dialog_populate_categories (ENameSelectorDialog *name_selector_dialog)
 | |
|  {
 | |
| -	GtkWidget *category_option_menu;
 | |
| -	GtkWidget *category_menu;
 | |
| -	GList *l;
 | |
| -	category_option_menu = glade_xml_get_widget (name_selector_dialog->gui, "optionmenu-category");
 | |
| +	GtkWidget *combo_box;
 | |
| +	GList *category_list, *iter;
 | |
|  
 | |
| -	/* Categories are already sorted */
 | |
| -	category_list = e_categories_get_list () ;
 | |
| -	category_list = g_list_prepend (category_list, _("Any Category"));
 | |
| -
 | |
| -	category_menu = gtk_menu_new ();
 | |
| -	l = category_list;
 | |
| -	while (l) {	
 | |
| -		GtkWidget *item;
 | |
| -		item = gtk_menu_item_new_with_label (l->data);
 | |
| -		gtk_menu_shell_append (GTK_MENU_SHELL (category_menu), item);
 | |
| -		l = l->next;
 | |
| -	}
 | |
| -	gtk_widget_show_all (category_menu);
 | |
| -	gtk_option_menu_set_menu (GTK_OPTION_MENU (category_option_menu), category_menu);
 | |
| -	
 | |
| -	g_signal_connect_swapped (category_option_menu, "changed", G_CALLBACK (search_changed), name_selector_dialog);
 | |
| +	/* "Any Category" is preloaded. */
 | |
| +	combo_box = glade_xml_get_widget (
 | |
| +		name_selector_dialog->gui, "combobox-category");
 | |
| +	if (gtk_combo_box_get_active (GTK_COMBO_BOX (combo_box)) == -1)
 | |
| +		gtk_combo_box_set_active (GTK_COMBO_BOX (combo_box), 0);
 | |
| +
 | |
| +	/* Categories are already sorted. */
 | |
| +	category_list = e_categories_get_list ();
 | |
| +	for (iter = category_list; iter != NULL; iter = iter->next)
 | |
| +		gtk_combo_box_append_text (
 | |
| +			GTK_COMBO_BOX (combo_box), iter->data);
 | |
| +	g_list_free (category_list);
 | |
| +
 | |
| +	g_signal_connect_swapped (
 | |
| +		combo_box, "changed",
 | |
| +		G_CALLBACK (search_changed), name_selector_dialog);
 | |
|  }
 | |
|  
 | |
|  static void
 | |
| @@ -223,34 +217,26 @@
 | |
|  
 | |
|  	name_selector_dialog->name_selector_model = e_name_selector_model_new ();
 | |
|  	name_selector_dialog->sections            = g_array_new (FALSE, FALSE, sizeof (Section));
 | |
| -	name_selector_dialog->source_list         = source_list;
 | |
|  
 | |
|  	setup_name_selector_model (name_selector_dialog);
 | |
|  
 | |
|  	/* Create source menu */
 | |
|  
 | |
| -	widget = e_source_option_menu_new (name_selector_dialog->source_list);
 | |
| -        
 | |
| +	widget = e_source_combo_box_new (source_list);
 | |
| +	g_signal_connect_swapped (
 | |
| +		widget, "changed",
 | |
| +		G_CALLBACK (source_changed), name_selector_dialog);
 | |
| +	g_object_unref (source_list);
 | |
| + 
 | |
|  	gconf_client = gconf_client_get_default();
 | |
|  	uid = gconf_client_get_string (gconf_client, "/apps/evolution/addressbook/display/primary_addressbook",
 | |
|  			NULL);
 | |
|  	g_object_unref (gconf_client);
 | |
|  	if (uid) {
 | |
| -		ESource *source = e_source_list_peek_source_by_uid(name_selector_dialog->source_list, uid);
 | |
| -		if (source) {
 | |
| -			e_source_option_menu_select ((ESourceOptionMenu *)widget, source);
 | |
| -			source_selected (name_selector_dialog, source);
 | |
| -		}
 | |
| -		else {
 | |
| -			source_selected (name_selector_dialog, find_first_source (name_selector_dialog->source_list));
 | |
| -		}
 | |
| +		e_source_combo_box_set_active_uid (
 | |
| +			E_SOURCE_COMBO_BOX (widget), uid);
 | |
|  		g_free (uid);
 | |
|  	}
 | |
| -	else {
 | |
| -		source_selected (name_selector_dialog, find_first_source (name_selector_dialog->source_list));
 | |
| -	}
 | |
| -
 | |
| -	g_signal_connect_swapped (widget, "source_selected", G_CALLBACK (source_selected), name_selector_dialog);
 | |
|  
 | |
|  	label = glade_xml_get_widget (name_selector_dialog->gui, "AddressBookLabel");
 | |
|  	gtk_label_set_mnemonic_widget (GTK_LABEL (label), widget);
 | |
| @@ -308,9 +294,7 @@
 | |
|  	ENameSelectorDialog *name_selector_dialog = E_NAME_SELECTOR_DIALOG (object);
 | |
|  
 | |
|  	g_array_free (name_selector_dialog->sections, TRUE);
 | |
| -	g_object_unref (name_selector_dialog->source_list);
 | |
|  	g_object_unref (name_selector_dialog->button_size_group);
 | |
| -	g_list_free (category_list);
 | |
|  
 | |
|  	if (G_OBJECT_CLASS (e_name_selector_dialog_parent_class)->finalize)
 | |
|  		G_OBJECT_CLASS (e_name_selector_dialog_parent_class)->finalize (object);
 | |
| @@ -384,26 +368,6 @@
 | |
|  		*email_n = email_n_local;
 | |
|  }
 | |
|  
 | |
| -static ESource *
 | |
| -find_first_source (ESourceList *source_list)
 | |
| -{
 | |
| -	GSList *groups, *sources, *l, *m;
 | |
| -			
 | |
| -	groups = e_source_list_peek_groups (source_list);
 | |
| -	for (l = groups; l; l = l->next) {
 | |
| -		ESourceGroup *group = l->data;
 | |
| -				
 | |
| -		sources = e_source_group_peek_sources (group);
 | |
| -		for (m = sources; m; m = m->next) {
 | |
| -			ESource *source = m->data;
 | |
| -
 | |
| -			return source;
 | |
| -		}				
 | |
| -	}
 | |
| -
 | |
| -	return NULL;
 | |
| -}
 | |
| -
 | |
|  static void
 | |
|  add_destination (EDestinationStore *destination_store, EContact *contact, gint email_n)
 | |
|  {
 | |
| @@ -742,8 +706,13 @@
 | |
|  }
 | |
|  
 | |
|  static void
 | |
| -source_selected (ENameSelectorDialog *name_selector_dialog, ESource *source)
 | |
| +source_changed (ENameSelectorDialog *name_selector_dialog,
 | |
| +                ESourceComboBox *source_combo_box)
 | |
|  {
 | |
| +	ESource *source;
 | |
| +
 | |
| +	source = e_source_combo_box_get_active (source_combo_box);
 | |
| +
 | |
|  	/* Remove any previous books being shown or loaded */
 | |
|  	remove_books (name_selector_dialog);
 | |
|  
 | |
| @@ -761,49 +730,54 @@
 | |
|  {
 | |
|  	EContactStore *contact_store;
 | |
|  	EBookQuery    *book_query;
 | |
| -	GtkWidget     *category_option_menu;
 | |
| +	GtkWidget     *combo_box;
 | |
|  	const gchar   *text;
 | |
| -	gint 	      category_id;	
 | |
|  	gchar         *text_escaped;
 | |
|  	gchar         *query_string;
 | |
| -	const gchar   *category;
 | |
| +	gchar         *category;
 | |
|  	gchar         *category_escaped;
 | |
|  
 | |
| -	category_option_menu = glade_xml_get_widget(name_selector_dialog->gui, "optionmenu-category");
 | |
| -	category_id = gtk_option_menu_get_history (GTK_OPTION_MENU(category_option_menu));
 | |
| -	category = g_list_nth_data (category_list, category_id);
 | |
| -	if (!category)
 | |
| -		return;
 | |
| +	combo_box = glade_xml_get_widget (
 | |
| +		name_selector_dialog->gui, "combobox-category");
 | |
| +	if (gtk_combo_box_get_active (GTK_COMBO_BOX (combo_box)) == -1)
 | |
| +		gtk_combo_box_set_active (GTK_COMBO_BOX (combo_box), 0);
 | |
| +
 | |
| +	category = gtk_combo_box_get_active_text (GTK_COMBO_BOX (combo_box));
 | |
|  	category_escaped = escape_sexp_string (category);
 | |
|  
 | |
|  	text = gtk_entry_get_text (name_selector_dialog->search_entry);
 | |
|  	text_escaped = escape_sexp_string (text);
 | |
|  
 | |
| -	if ( !strcmp (category, _("Any Category"))) {
 | |
| -		query_string = g_strdup_printf ("(or (beginswith \"file_as\" %s) "
 | |
| -						"    (beginswith \"full_name\" %s) "
 | |
| -						"    (beginswith \"email\" %s) "
 | |
| -						"    (beginswith \"nickname\" %s)))",
 | |
| -						text_escaped, text_escaped, text_escaped, text_escaped);
 | |
| -	}
 | |
| -	else {
 | |
| -		query_string = g_strdup_printf ("(and (is \"category_list\" %s) "
 | |
| -						"(or (beginswith \"file_as\" %s) "
 | |
| -						"    (beginswith \"full_name\" %s) "
 | |
| -						"    (beginswith \"email\" %s) "
 | |
| -						"    (beginswith \"nickname\" %s)))",
 | |
| -						category_escaped,text_escaped, text_escaped, text_escaped, text_escaped);
 | |
| -	}
 | |
| +	if (!strcmp (category, _("Any Category")))
 | |
| +		query_string = g_strdup_printf (
 | |
| +			"(or (beginswith \"file_as\" %s) "
 | |
| +			"    (beginswith \"full_name\" %s) "
 | |
| +			"    (beginswith \"email\" %s) "
 | |
| +			"    (beginswith \"nickname\" %s)))",
 | |
| +			text_escaped, text_escaped,
 | |
| +			text_escaped, text_escaped);
 | |
| +	else
 | |
| +		query_string = g_strdup_printf (
 | |
| +			"(and (is \"category_list\" %s) "
 | |
| +			"(or (beginswith \"file_as\" %s) "
 | |
| +			"    (beginswith \"full_name\" %s) "
 | |
| +			"    (beginswith \"email\" %s) "
 | |
| +			"    (beginswith \"nickname\" %s)))",
 | |
| +			category_escaped, text_escaped, text_escaped,
 | |
| +			text_escaped, text_escaped);
 | |
|  
 | |
|  	book_query = e_book_query_from_string (query_string);
 | |
| -	g_free (query_string);
 | |
| -	g_free (text_escaped);
 | |
| -	g_free (category_escaped);
 | |
|  
 | |
| -	contact_store = e_name_selector_model_peek_contact_store (name_selector_dialog->name_selector_model);
 | |
| +	contact_store = e_name_selector_model_peek_contact_store (
 | |
| +		name_selector_dialog->name_selector_model);
 | |
|  	e_contact_store_set_query (contact_store, book_query);
 | |
|  
 | |
|  	e_book_query_unref (book_query);
 | |
| +
 | |
| +	g_free (query_string);
 | |
| +	g_free (text_escaped);
 | |
| +	g_free (category_escaped);
 | |
| +	g_free (category);
 | |
|  }
 | |
|  
 | |
|  static void
 | |
| --- /dev/null	2007-03-30 19:30:56.246366825 -0400
 | |
| +++ evolution-data-server-1.10.0/libedataserverui/e-source-combo-box.c	2007-04-04 12:09:51.000000000 -0400
 | |
| @@ -0,0 +1,457 @@
 | |
| +/* -*- Mode: C; indent-tabs-mode: t; c-basic-offset: 8; tab-width: 8 -*- */
 | |
| +/* e-source-option-menu.c
 | |
| + *
 | |
| + * Copyright (C) 2007 Novell, Inc.
 | |
| + *
 | |
| + * This program is free software; you can redistribute it and/or
 | |
| + * modify it under the terms of version 2 of the GNU Lesser General Public
 | |
| + * License as published by the Free Software Foundation.
 | |
| + *
 | |
| + * This program is distributed in the hope that it will be useful,
 | |
| + * but WITHOUT ANY WARRANTY; without even the implied warranty of
 | |
| + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
 | |
| + * General Public License for more details.
 | |
| + *
 | |
| + * You should have received a copy of the GNU Lesser General Public
 | |
| + * License along with this program; if not, write to the
 | |
| + * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
 | |
| + * Boston, MA 02111-1307, USA.
 | |
| + */
 | |
| +
 | |
| +#ifdef HAVE_CONFIG_H
 | |
| +#include <config.h>
 | |
| +#endif
 | |
| +
 | |
| +#include "e-source-combo-box.h"
 | |
| +
 | |
| +#define E_SOURCE_COMBO_BOX_GET_PRIVATE(obj) \
 | |
| +	(G_TYPE_INSTANCE_GET_PRIVATE \
 | |
| +	((obj), E_TYPE_SOURCE_COMBO_BOX, ESourceComboBoxPrivate))
 | |
| +
 | |
| +struct _ESourceComboBoxPrivate {
 | |
| +	ESourceList *source_list;
 | |
| +	GHashTable *uid_to_row_reference;
 | |
| +	gulong handler_id;
 | |
| +};
 | |
| +
 | |
| +enum {
 | |
| +	PROP_0,
 | |
| +	PROP_SOURCE_LIST
 | |
| +};
 | |
| +
 | |
| +enum {
 | |
| +	COLUMN_NAME,		/* G_TYPE_STRING */
 | |
| +	COLUMN_SENSITIVE,	/* G_TYPE_BOOLEAN */
 | |
| +	COLUMN_SOURCE,		/* G_TYPE_OBJECT */
 | |
| +	NUM_COLUMNS
 | |
| +};
 | |
| +
 | |
| +static gpointer parent_class = NULL;
 | |
| +
 | |
| +static void
 | |
| +source_list_changed_cb (ESourceList *source_list,
 | |
| +                        ESourceComboBox *source_combo_box)
 | |
| +{
 | |
| +	ESourceComboBoxPrivate *priv;
 | |
| +	GtkComboBox *combo_box;
 | |
| +	GtkTreeModel *model;
 | |
| +	GtkListStore *store;
 | |
| +	GtkTreeIter iter;
 | |
| +	GtkTreePath *path;
 | |
| +	GSList *groups;
 | |
| +	GSList *sources;
 | |
| +	const gchar *name;
 | |
| +	const gchar *uid;
 | |
| +	gchar *indented_name;
 | |
| +
 | |
| +	priv = E_SOURCE_COMBO_BOX_GET_PRIVATE (source_combo_box);
 | |
| +	g_hash_table_remove_all (priv->uid_to_row_reference);
 | |
| +
 | |
| +	combo_box = GTK_COMBO_BOX (source_combo_box);
 | |
| +	gtk_combo_box_set_active (combo_box, -1);
 | |
| +
 | |
| +	model = gtk_combo_box_get_model (combo_box);
 | |
| +	store = GTK_LIST_STORE (model);
 | |
| +	gtk_list_store_clear (store);
 | |
| +
 | |
| +	for (groups = e_source_list_peek_groups (source_list);
 | |
| +		groups != NULL; groups = groups->next) {
 | |
| +
 | |
| +		/* Only show source groups that have sources. */
 | |
| +		if (e_source_group_peek_sources (groups->data) == NULL)
 | |
| +			continue;
 | |
| +
 | |
| +		name = e_source_group_peek_name (groups->data);
 | |
| +		gtk_list_store_append (store, &iter);
 | |
| +		gtk_list_store_set (
 | |
| +			store, &iter,
 | |
| +			COLUMN_NAME, name,
 | |
| +			COLUMN_SENSITIVE, FALSE,
 | |
| +			COLUMN_SOURCE, groups->data,
 | |
| +			-1);
 | |
| +
 | |
| +		for (sources = e_source_group_peek_sources (groups->data);
 | |
| +			sources != NULL; sources = sources->next) {
 | |
| +
 | |
| +			name = e_source_peek_name (sources->data);
 | |
| +			indented_name = g_strconcat ("    ", name, NULL);
 | |
| +			gtk_list_store_append (store, &iter);
 | |
| +			gtk_list_store_set (
 | |
| +				store, &iter,
 | |
| +				COLUMN_NAME, indented_name,
 | |
| +				COLUMN_SENSITIVE, TRUE,
 | |
| +				COLUMN_SOURCE, sources->data,
 | |
| +				-1);
 | |
| +			g_free (indented_name);
 | |
| +
 | |
| +			uid = e_source_peek_uid (sources->data);
 | |
| +			path = gtk_tree_model_get_path (model, &iter);
 | |
| +			g_hash_table_insert (
 | |
| +				priv->uid_to_row_reference, g_strdup (uid),
 | |
| +				gtk_tree_row_reference_new (model, path));
 | |
| +			gtk_tree_path_free (path);
 | |
| +		}
 | |
| +	}
 | |
| +}
 | |
| +
 | |
| +static GObject *
 | |
| +e_source_combo_box_constructor (GType type, guint n_construct_properties,
 | |
| +                                GObjectConstructParam *construct_properties)
 | |
| +{
 | |
| +	GtkCellRenderer *renderer;
 | |
| +	GtkListStore *store;
 | |
| +	GObject *object;
 | |
| +
 | |
| +	/* Chain up to parent's "constructor" method. */
 | |
| +	object = G_OBJECT_CLASS (parent_class)->constructor (
 | |
| +		type, n_construct_properties, construct_properties);
 | |
| +
 | |
| +	store = gtk_list_store_new (
 | |
| +		NUM_COLUMNS, G_TYPE_STRING, G_TYPE_BOOLEAN, G_TYPE_OBJECT);
 | |
| +	gtk_combo_box_set_model (
 | |
| +		GTK_COMBO_BOX (object), GTK_TREE_MODEL (store));
 | |
| +
 | |
| +	renderer = gtk_cell_renderer_text_new ();
 | |
| +	gtk_cell_layout_pack_start (
 | |
| +		GTK_CELL_LAYOUT (object), renderer, TRUE);
 | |
| +	gtk_cell_layout_set_attributes (
 | |
| +		GTK_CELL_LAYOUT (object), renderer,
 | |
| +		"text", COLUMN_NAME,
 | |
| +		"sensitive", COLUMN_SENSITIVE,
 | |
| +		NULL);
 | |
| +
 | |
| +	return object;
 | |
| +}
 | |
| +
 | |
| +static void
 | |
| +e_source_combo_box_set_property (GObject *object, guint property_id,
 | |
| +                                 const GValue *value, GParamSpec *pspec)
 | |
| +{
 | |
| +	ESourceComboBoxPrivate *priv;
 | |
| +
 | |
| +	priv = E_SOURCE_COMBO_BOX_GET_PRIVATE (object);
 | |
| +
 | |
| +	switch (property_id) {
 | |
| +		case PROP_SOURCE_LIST:
 | |
| +
 | |
| +			if (priv->source_list != NULL) {
 | |
| +				g_signal_handler_disconnect (
 | |
| +					priv->source_list, priv->handler_id);
 | |
| +				g_object_unref (priv->source_list);
 | |
| +			}
 | |
| +
 | |
| +			priv->source_list = g_value_dup_object (value);
 | |
| +
 | |
| +			/* Reset the tree store. */
 | |
| +			source_list_changed_cb (
 | |
| +				priv->source_list,
 | |
| +				E_SOURCE_COMBO_BOX (object));
 | |
| +
 | |
| +			/* Watch for source list changes. */
 | |
| +			priv->handler_id = g_signal_connect_object (
 | |
| +				priv->source_list, "changed",
 | |
| +				G_CALLBACK (source_list_changed_cb),
 | |
| +				object, 0);
 | |
| +
 | |
| +			return;
 | |
| +	}
 | |
| +
 | |
| +	G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
 | |
| +}
 | |
| +
 | |
| +static void
 | |
| +e_source_combo_box_get_property (GObject *object, guint property_id,
 | |
| +                                 GValue *value, GParamSpec *pspec)
 | |
| +{
 | |
| +	ESourceComboBoxPrivate *priv;
 | |
| +
 | |
| +	priv = E_SOURCE_COMBO_BOX_GET_PRIVATE (object);
 | |
| +
 | |
| +	switch (property_id) {
 | |
| +		case PROP_SOURCE_LIST:
 | |
| +			g_value_set_object (value, priv->source_list);
 | |
| +			return;
 | |
| +	}
 | |
| +
 | |
| +	G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
 | |
| +}
 | |
| +
 | |
| +static void
 | |
| +e_source_combo_box_dispose (GObject *object)
 | |
| +{
 | |
| +	ESourceComboBoxPrivate *priv;
 | |
| +
 | |
| +	priv = E_SOURCE_COMBO_BOX_GET_PRIVATE (object);
 | |
| +
 | |
| +	if (priv->source_list != NULL) {
 | |
| +		g_object_unref (priv->source_list);
 | |
| +		priv->source_list = NULL;
 | |
| +	}
 | |
| +
 | |
| +	g_hash_table_remove_all (priv->uid_to_row_reference);
 | |
| +
 | |
| +	/* Chain up to parent's "dispose" method. */
 | |
| +	G_OBJECT_CLASS (parent_class)->dispose (object);
 | |
| +}
 | |
| +
 | |
| +static void
 | |
| +e_source_combo_box_finalize (GObject *object)
 | |
| +{
 | |
| +	ESourceComboBoxPrivate *priv;
 | |
| +
 | |
| +	priv = E_SOURCE_COMBO_BOX_GET_PRIVATE (object);
 | |
| +
 | |
| +	g_hash_table_destroy (priv->uid_to_row_reference);
 | |
| +
 | |
| +	/* Chain up to parent's "finalize" method. */
 | |
| +	G_OBJECT_CLASS (parent_class)->finalize (object);
 | |
| +}
 | |
| +
 | |
| +static void
 | |
| +e_source_combo_box_class_init (ESourceComboBoxClass *class)
 | |
| +{
 | |
| +	GObjectClass *object_class = G_OBJECT_CLASS (class);
 | |
| +
 | |
| +	parent_class = g_type_class_peek_parent (class);
 | |
| +
 | |
| +	g_type_class_add_private (class, sizeof (ESourceComboBox));
 | |
| +
 | |
| +	object_class->constructor = e_source_combo_box_constructor;
 | |
| +	object_class->set_property = e_source_combo_box_set_property;
 | |
| +	object_class->get_property = e_source_combo_box_get_property;
 | |
| +	object_class->dispose = e_source_combo_box_dispose;
 | |
| +	object_class->finalize = e_source_combo_box_finalize;
 | |
| +
 | |
| +	g_object_class_install_property (
 | |
| +		object_class,
 | |
| +		PROP_SOURCE_LIST,
 | |
| +		g_param_spec_object (
 | |
| +			"source-list",
 | |
| +			"source-list",
 | |
| +			"List of sources to choose from",
 | |
| +			E_TYPE_SOURCE_LIST,
 | |
| +			G_PARAM_READWRITE));
 | |
| +}
 | |
| +
 | |
| +static void
 | |
| +e_source_combo_box_init (ESourceComboBox *source_combo_box)
 | |
| +{
 | |
| +	ESourceComboBoxPrivate *priv;
 | |
| +
 | |
| +	priv = E_SOURCE_COMBO_BOX_GET_PRIVATE (source_combo_box);
 | |
| +
 | |
| +	priv->uid_to_row_reference = g_hash_table_new_full (
 | |
| +		g_str_hash, g_str_equal,
 | |
| +		(GDestroyNotify) g_free,
 | |
| +		(GDestroyNotify) gtk_tree_row_reference_free);
 | |
| +}
 | |
| +
 | |
| +GType
 | |
| +e_source_combo_box_get_type (void)
 | |
| +{
 | |
| +	static GType type = 0;
 | |
| +
 | |
| +	if (G_UNLIKELY (type == 0)) {
 | |
| +		static const GTypeInfo type_info = {
 | |
| +			sizeof (ESourceComboBoxClass),
 | |
| +			(GBaseInitFunc) NULL,
 | |
| +			(GBaseFinalizeFunc) NULL,
 | |
| +			(GClassInitFunc) e_source_combo_box_class_init,
 | |
| +			(GClassFinalizeFunc) NULL,
 | |
| +			NULL,  /* class_data */
 | |
| +			sizeof (ESourceComboBox),
 | |
| +			0,     /* n_preallocs */
 | |
| +			(GInstanceInitFunc) e_source_combo_box_init,
 | |
| +			NULL   /* value_table */
 | |
| +		};
 | |
| +
 | |
| +		type = g_type_register_static (
 | |
| +			GTK_TYPE_COMBO_BOX, "ESourceComboBox", &type_info, 0);
 | |
| +	}
 | |
| +
 | |
| +	return type;
 | |
| +}
 | |
| +
 | |
| +/**
 | |
| + * e_source_combo_box_new:
 | |
| + * @source_list: an #ESourceList
 | |
| + *
 | |
| + * Creates a new #ESourceComboBox widget that lets the user pick an #ESource
 | |
| + * from the provided #ESourceList.
 | |
| + *
 | |
| + * Returns: a new #ESourceComboBox
 | |
| + **/
 | |
| +GtkWidget *
 | |
| +e_source_combo_box_new (ESourceList *source_list)
 | |
| +{
 | |
| +	g_return_val_if_fail (source_list != NULL, NULL);
 | |
| +
 | |
| +	return g_object_new (
 | |
| +		E_TYPE_SOURCE_COMBO_BOX,
 | |
| +		"source-list", source_list, NULL);
 | |
| +}
 | |
| +
 | |
| +/**
 | |
| + * e_source_combo_box_get_source_list:
 | |
| + * @source_combo_box: an #ESourceComboBox
 | |
| + *
 | |
| + * Returns the #ESourceList which is acting as a data source for
 | |
| + * @source_combo_box.
 | |
| + *
 | |
| + * Returns: an #ESourceList
 | |
| + **/
 | |
| +ESourceList *
 | |
| +e_source_combo_box_get_source_list (ESourceComboBox *source_combo_box)
 | |
| +{
 | |
| +	ESourceList *source_list;
 | |
| +
 | |
| +	g_return_val_if_fail (source_combo_box != NULL, NULL);
 | |
| +
 | |
| +	g_object_get (source_combo_box, "source-list", &source_list, NULL);
 | |
| +
 | |
| +	return source_list;
 | |
| +}
 | |
| +
 | |
| +/**
 | |
| + * e_source_combo_box_set_source_list:
 | |
| + * @source_combo_box: an #ESourceComboBox
 | |
| + * @source_list: an #ESourceList
 | |
| + *
 | |
| + * Sets the source list used by @source_combo_box to be @source_list.  This
 | |
| + * causes the contents of @source_combo_box to be regenerated.
 | |
| + **/
 | |
| +void
 | |
| +e_source_combo_box_set_source_list (ESourceComboBox *source_combo_box,
 | |
| +                                    ESourceList *source_list)
 | |
| +{
 | |
| +	g_return_if_fail (source_combo_box != NULL);
 | |
| +	g_return_if_fail (source_list != NULL);
 | |
| +
 | |
| +	g_object_set (source_combo_box, "source-list", source_list, NULL);
 | |
| +}
 | |
| +
 | |
| +/**
 | |
| + * e_source_combo_box_get_active:
 | |
| + * @source_combo_box: an #ESourceComboBox
 | |
| + *
 | |
| + * Returns the #ESource corresponding to the currently active item, or %NULL
 | |
| + * if there is no active item.
 | |
| + *
 | |
| + * Returns: an #ESource or %NULL
 | |
| + **/
 | |
| +ESource *
 | |
| +e_source_combo_box_get_active (ESourceComboBox *source_combo_box)
 | |
| +{
 | |
| +	GtkComboBox *combo_box;
 | |
| +	GtkTreeIter iter;
 | |
| +	ESource *source;
 | |
| +
 | |
| +	g_return_val_if_fail (source_combo_box != NULL, NULL);
 | |
| +
 | |
| +	combo_box = GTK_COMBO_BOX (source_combo_box);
 | |
| +
 | |
| +	if (!gtk_combo_box_get_active_iter (combo_box, &iter))
 | |
| +		return NULL;
 | |
| +
 | |
| +	gtk_tree_model_get (
 | |
| +		gtk_combo_box_get_model (combo_box),
 | |
| +		&iter, COLUMN_SOURCE, &source, -1);
 | |
| +
 | |
| +	return source;
 | |
| +}
 | |
| +
 | |
| +/**
 | |
| + * e_source_combo_box_set_active:
 | |
| + * @source_combo_box: an #ESourceComboBox
 | |
| + * @source: an #ESource
 | |
| + *
 | |
| + * Sets the active item to the one corresponding to @source.
 | |
| + **/
 | |
| +void
 | |
| +e_source_combo_box_set_active (ESourceComboBox *source_combo_box,
 | |
| +                               ESource *source)
 | |
| +{
 | |
| +	g_return_if_fail (source_combo_box != NULL);
 | |
| +	g_return_if_fail (source != NULL);
 | |
| +
 | |
| +	e_source_combo_box_set_active_uid (
 | |
| +		source_combo_box, e_source_peek_uid (source));
 | |
| +}
 | |
| +
 | |
| +/**
 | |
| + * e_source_combo_box_get_active_uid:
 | |
| + * @source_combo_box: an #ESourceComboBox
 | |
| + *
 | |
| + * Returns the unique ID of the #ESource corresponding to the currently
 | |
| + * active item, or %NULL if there is no active item.
 | |
| + *
 | |
| + * Returns: a unique ID string or %NULL
 | |
| + **/
 | |
| +const gchar *
 | |
| +e_source_combo_box_get_active_uid (ESourceComboBox *source_combo_box)
 | |
| +{
 | |
| +	ESource *source;
 | |
| +
 | |
| +	g_return_val_if_fail (source_combo_box != NULL, NULL);
 | |
| +
 | |
| +	source = e_source_combo_box_get_active (source_combo_box);
 | |
| +	if (source == NULL)
 | |
| +		return NULL;
 | |
| +
 | |
| +	return e_source_peek_uid (source);
 | |
| +}
 | |
| +
 | |
| +/**
 | |
| + * e_source_combo_box_set_active_uid:
 | |
| + * @source_combo_box: an #ESourceComboBox
 | |
| + * @uid: a unique ID of an #ESource
 | |
| + *
 | |
| + * Sets the active item to the one corresponding to @uid.
 | |
| + **/
 | |
| +void
 | |
| +e_source_combo_box_set_active_uid (ESourceComboBox *source_combo_box,
 | |
| +                                   const gchar *uid)
 | |
| +{
 | |
| +	ESourceComboBoxPrivate *priv;
 | |
| +	GtkTreeRowReference *reference;
 | |
| +	GtkComboBox *combo_box;
 | |
| +	GtkTreeIter iter;
 | |
| +	gboolean iter_was_set;
 | |
| +
 | |
| +	g_return_if_fail (source_combo_box != NULL);
 | |
| +	g_return_if_fail (uid != NULL);
 | |
| +
 | |
| +	priv = E_SOURCE_COMBO_BOX_GET_PRIVATE (source_combo_box);
 | |
| +
 | |
| +	combo_box = GTK_COMBO_BOX (source_combo_box);
 | |
| +
 | |
| +	reference = g_hash_table_lookup (priv->uid_to_row_reference, uid);
 | |
| +	g_return_if_fail (gtk_tree_row_reference_valid (reference));
 | |
| +
 | |
| +	iter_was_set = gtk_tree_model_get_iter (
 | |
| +		gtk_combo_box_get_model (combo_box), &iter,
 | |
| +		gtk_tree_row_reference_get_path (reference));
 | |
| +	g_return_if_fail (iter_was_set);
 | |
| +
 | |
| +	gtk_combo_box_set_active_iter (combo_box, &iter);
 | |
| +}
 | |
| --- evolution-data-server-1.10.0/docs/reference/libedataserverui/libedataserverui-docs.sgml.code-cleanup	2007-03-12 01:23:42.000000000 -0400
 | |
| +++ evolution-data-server-1.10.0/docs/reference/libedataserverui/libedataserverui-docs.sgml	2007-04-04 12:08:04.000000000 -0400
 | |
| @@ -19,6 +19,7 @@
 | |
|      <xi:include href="xml/e-name-selector-list.xml"/>
 | |
|      <xi:include href="xml/e-name-selector-model.xml"/>
 | |
|      <xi:include href="xml/e-passwords.xml"/>
 | |
| +    <xi:include href="xml/e-source-combo-box.xml"/>
 | |
|      <xi:include href="xml/e-source-option-menu.xml"/>
 | |
|      <xi:include href="xml/e-source-selector.xml"/>
 | |
|      <xi:include href="xml/e-source-selector-dialog.xml"/>
 | |
| --- evolution-data-server-1.10.0/docs/reference/libedataserverui/libedataserverui.types.code-cleanup	2007-03-12 01:23:42.000000000 -0400
 | |
| +++ evolution-data-server-1.10.0/docs/reference/libedataserverui/libedataserverui.types	2007-04-04 12:08:04.000000000 -0400
 | |
| @@ -6,6 +6,7 @@
 | |
|  #include <libedataserverui/e-name-selector-entry.h>
 | |
|  #include <libedataserverui/e-name-selector-list.h>
 | |
|  #include <libedataserverui/e-name-selector-model.h>
 | |
| +#include <libedataserverui/e-source-combo-box.h>
 | |
|  #include <libedataserverui/e-source-option-menu.h>
 | |
|  #include <libedataserverui/e-source-selector.h>
 | |
|  #include <libedataserverui/e-source-selector-dialog.h>
 | |
| @@ -19,6 +20,7 @@
 | |
|  e_name_selector_entry_get_type
 | |
|  e_name_selector_list_get_type
 | |
|  e_name_selector_model_get_type
 | |
| +e_source_combo_box_get_type
 | |
|  e_source_option_menu_get_type
 | |
|  e_source_selector_get_type
 | |
|  e_source_selector_dialog_get_type
 | |
| --- evolution-data-server-1.10.0/docs/reference/libedataserverui/libedataserverui-sections.txt.code-cleanup	2007-03-12 01:23:42.000000000 -0400
 | |
| +++ evolution-data-server-1.10.0/docs/reference/libedataserverui/libedataserverui-sections.txt	2007-04-04 12:08:04.000000000 -0400
 | |
| @@ -25,6 +25,29 @@
 | |
|  </SECTION>
 | |
|  
 | |
|  <SECTION>
 | |
| +<FILE>e-source-combo-box</FILE>
 | |
| +<TITLE>ESourceComboBox</TITLE>
 | |
| +ESourceComboBox
 | |
| +e_source_combo_box_new
 | |
| +e_source_combo_box_get_source_list
 | |
| +e_source_combo_box_set_source_list
 | |
| +e_source_combo_box_get_active
 | |
| +e_source_combo_box_set_active
 | |
| +e_source_combo_box_get_active_uid
 | |
| +e_source_combo_box_set_active_uid
 | |
| +<SUBSECTION Standard>
 | |
| +E_SOURCE_COMBO_BOX
 | |
| +E_IS_SOURCE_COMBO_BOX
 | |
| +E_TYPE_SOURCE_COMBO_BOX
 | |
| +E_SOURCE_COMBO_BOX_CLASS
 | |
| +E_IS_SOURCE_COMBO_BOX_CLASS
 | |
| +E_SOURCE_COMBO_BOX_GET_CLASS
 | |
| +ESourceComboBoxClass
 | |
| +<SUBSECTION Private>
 | |
| +e_source_combo_box_get_type
 | |
| +</SECTION>
 | |
| +
 | |
| +<SECTION>
 | |
|  <FILE>e-source-option-menu</FILE>
 | |
|  <TITLE>ESourceOptionMenu</TITLE>
 | |
|  ESourceOptionMenu
 | |
| --- evolution-data-server-1.10.0/calendar/libical/src/libicalss/icalssyacc.y.code-cleanup	2007-01-03 10:02:34.000000000 -0500
 | |
| +++ evolution-data-server-1.10.0/calendar/libical/src/libicalss/icalssyacc.y	2007-04-04 12:08:04.000000000 -0400
 | |
| @@ -47,6 +47,7 @@
 | |
|  static void ssyacc_add_from(struct icalgauge_impl* impl, char* str1);
 | |
|  static void set_logic(struct icalgauge_impl* impl,icalgaugelogic l);
 | |
|  void sserror(char *s); /* Don't know why I need this.... */
 | |
| +int sslex(void *YYPARSE_PARAM);
 | |
|  
 | |
|  %}
 | |
|  
 | |
| --- evolution-data-server-1.10.0/calendar/libical/src/libicalvcal/vcc.y.code-cleanup	2007-01-03 10:02:34.000000000 -0500
 | |
| +++ evolution-data-server-1.10.0/calendar/libical/src/libicalvcal/vcc.y	2007-04-04 12:08:04.000000000 -0400
 | |
| @@ -170,6 +170,7 @@
 | |
|  static void enterAttr(const char *s1, const char *s2);
 | |
|  static void enterValues(const char *value);
 | |
|  static void mime_error_(char *s);
 | |
| +static int mime_lex(void);
 | |
|  
 | |
|  %}
 | |
|  
 |