aboutsummaryrefslogtreecommitdiffstats
path: root/addressbook/gui/component/select-names
diff options
context:
space:
mode:
authorDan Winship <danw@src.gnome.org>2003-03-31 23:43:49 +0800
committerDan Winship <danw@src.gnome.org>2003-03-31 23:43:49 +0800
commitcb8fd3a3304144f2d6c6c9842d00af6ac9ec3910 (patch)
tree9d4d2308e6ce6c09cc8fb88cda01f279e51b2727 /addressbook/gui/component/select-names
parent80842c9583426f103fd40e73f6fc9ab20631e5cf (diff)
downloadgsoc2013-evolution-cb8fd3a3304144f2d6c6c9842d00af6ac9ec3910.tar.gz
gsoc2013-evolution-cb8fd3a3304144f2d6c6c9842d00af6ac9ec3910.tar.zst
gsoc2013-evolution-cb8fd3a3304144f2d6c6c9842d00af6ac9ec3910.zip
Remove folder-selector button initialization. (e_select_names_new):
* gui/component/select-names/e-select-names.c (e_select_names_init): Remove folder-selector button initialization. (e_select_names_new): Initialize folder-selector button here, using the passed-in EvolutionShellClient rather than depending on a global variable. * gui/component/select-names/e-select-names-manager.c (e_select_names_manager_activate_dialog): take an EvolutionShellClient and pass it to e_select_names_new(). * gui/component/select-names/e-select-names-bonobo.c (impl_SelectNames_activate_dialog): get a pointer to the shell from bonobo-activation, create a shell_client, and pass it to e_select_names_manager_activate_dialog. svn path=/trunk/; revision=20597
Diffstat (limited to 'addressbook/gui/component/select-names')
-rw-r--r--addressbook/gui/component/select-names/e-select-names-bonobo.c19
-rw-r--r--addressbook/gui/component/select-names/e-select-names-manager.c6
-rw-r--r--addressbook/gui/component/select-names/e-select-names-manager.h1
-rw-r--r--addressbook/gui/component/select-names/e-select-names.c80
-rw-r--r--addressbook/gui/component/select-names/e-select-names.h18
5 files changed, 63 insertions, 61 deletions
diff --git a/addressbook/gui/component/select-names/e-select-names-bonobo.c b/addressbook/gui/component/select-names/e-select-names-bonobo.c
index c98af87683..0f18614c1a 100644
--- a/addressbook/gui/component/select-names/e-select-names-bonobo.c
+++ b/addressbook/gui/component/select-names/e-select-names-bonobo.c
@@ -27,13 +27,18 @@
#include "e-select-names-bonobo.h"
#include "e-simple-card-bonobo.h"
+#include <bonobo-activation/bonobo-activation-activate.h>
+
#include <bonobo/bonobo-property-bag.h>
#include <bonobo/bonobo-control.h>
+#include <bonobo/bonobo-exception.h>
#include <bonobo/bonobo-event-source.h>
#include <gal/util/e-util.h>
#include <gal/e-text/e-entry.h>
+#include "evolution-shell-client.h"
+
#include "Evolution-Addressbook-SelectNames.h"
#include "e-select-names-manager.h"
@@ -359,11 +364,23 @@ impl_SelectNames_activate_dialog (PortableServer_Servant servant,
{
ESelectNamesBonobo *select_names;
ESelectNamesBonoboPrivate *priv;
+ EvolutionShellClient *shell_client;
+ GNOME_Evolution_Shell shell;
select_names = E_SELECT_NAMES_BONOBO (bonobo_object (servant));
priv = select_names->priv;
- e_select_names_manager_activate_dialog (priv->manager, section_id);
+ shell = bonobo_activation_activate_from_id (
+ "OAFIID:GNOME_Evolution_Shell",
+ Bonobo_ACTIVATION_FLAG_EXISTING_ONLY,
+ NULL, ev);
+ if (BONOBO_EX (ev))
+ return;
+
+ shell_client = evolution_shell_client_new (shell);
+ e_select_names_manager_activate_dialog (priv->manager, shell_client,
+ section_id);
+ g_object_unref (shell_client);
}
diff --git a/addressbook/gui/component/select-names/e-select-names-manager.c b/addressbook/gui/component/select-names/e-select-names-manager.c
index 98e1ff5a2c..b53cf924f2 100644
--- a/addressbook/gui/component/select-names/e-select-names-manager.c
+++ b/addressbook/gui/component/select-names/e-select-names-manager.c
@@ -476,9 +476,8 @@ db_listener (EConfigListener *db, const char *key,
/**
* e_select_names_manager_new:
- * @VCard: a string in vCard format
*
- * Returns: a new #ESelectNamesManager that wraps the @VCard.
+ * Returns: a new #ESelectNamesManager
*/
ESelectNamesManager *
e_select_names_manager_new (void)
@@ -605,6 +604,7 @@ clear_widget (gpointer data, GObject *where_object_was)
void
e_select_names_manager_activate_dialog (ESelectNamesManager *manager,
+ EvolutionShellClient *shell_client,
const char *id)
{
g_return_if_fail (E_IS_SELECT_NAMES_MANAGER (manager));
@@ -621,7 +621,7 @@ e_select_names_manager_activate_dialog (ESelectNamesManager *manager,
GList *iter;
- manager->names = E_SELECT_NAMES (e_select_names_new ());
+ manager->names = E_SELECT_NAMES (e_select_names_new (shell_client));
for (iter = manager->sections; iter != NULL; iter = g_list_next (iter)) {
ESelectNamesManagerSection *section = iter->data;
diff --git a/addressbook/gui/component/select-names/e-select-names-manager.h b/addressbook/gui/component/select-names/e-select-names-manager.h
index f5fb4aa451..b48f597cb3 100644
--- a/addressbook/gui/component/select-names/e-select-names-manager.h
+++ b/addressbook/gui/component/select-names/e-select-names-manager.h
@@ -62,6 +62,7 @@ ESelectNamesModel *e_select_names_manager_get_source (ESelectNames
GtkWidget *e_select_names_manager_create_entry (ESelectNamesManager *manager,
const char *id);
void e_select_names_manager_activate_dialog (ESelectNamesManager *manager,
+ EvolutionShellClient *shell_client,
const char *id);
/* Standard Gtk function */
GType e_select_names_manager_get_type (void);
diff --git a/addressbook/gui/component/select-names/e-select-names.c b/addressbook/gui/component/select-names/e-select-names.c
index 7de212b8fc..a189077c92 100644
--- a/addressbook/gui/component/select-names/e-select-names.c
+++ b/addressbook/gui/component/select-names/e-select-names.c
@@ -48,15 +48,13 @@
#include <e-util/e-categories-master-list-wombat.h>
#include "e-util/e-sexp.h"
-static void e_select_names_init (ESelectNames *card);
+static void e_select_names_init (ESelectNames *names);
static void e_select_names_class_init (ESelectNamesClass *klass);
static void e_select_names_dispose (GObject *object);
static void update_query (GtkWidget *widget, ESelectNames *e_select_names);
static void sync_table_and_models (ESelectNamesModel *triggering_model, ESelectNames *esl);
-extern EvolutionShellClient *global_shell_client;
-
static GtkDialogClass *parent_class = NULL;
#define PARENT_TYPE gtk_dialog_get_type()
@@ -478,12 +476,6 @@ e_select_names_init (ESelectNames *e_select_names)
{
GladeXML *gui;
GtkWidget *widget, *button;
- const char *selector_types[] = { "contacts/*", NULL };
- char *filename;
- char *contacts_uri;
- EConfigListener *db;
-
- db = e_book_get_config_database();
gui = glade_xml_new (EVOLUTION_GLADEDIR "/select-names.glade", NULL, NULL);
e_select_names->gui = gui;
@@ -559,25 +551,7 @@ e_select_names_init (ESelectNames *e_select_names)
g_signal_connect(button, "clicked",
G_CALLBACK(update_query), e_select_names);
- contacts_uri = e_config_listener_get_string_with_default (db, "/apps/evolution/addressbook/select_names/last_used_uri", NULL, NULL);
- if (!contacts_uri) {
- contacts_uri = e_config_listener_get_string_with_default (db, "/apps/evolution/shell/default_folders/contacts_uri",
- NULL, NULL);
- }
- if (!contacts_uri || !contacts_uri[0]) {
- if (contacts_uri)
- g_free (contacts_uri);
- filename = g_build_filename (g_get_home_dir(), "evolution/local/Contacts", NULL);
- contacts_uri = g_strdup_printf("file://%s", filename);
- g_free (filename);
- }
-
button = glade_xml_get_widget (gui, "folder-selector");
- evolution_folder_selector_button_construct (EVOLUTION_FOLDER_SELECTOR_BUTTON (button),
- global_shell_client,
- _("Find contact in"),
- contacts_uri,
- selector_types);
if (button && EVOLUTION_IS_FOLDER_SELECTOR_BUTTON (button))
g_signal_connect(button, "selected",
G_CALLBACK(folder_selected), e_select_names);
@@ -588,10 +562,6 @@ e_select_names_init (ESelectNames *e_select_names)
g_signal_connect (e_table_scrolled_get_table (e_select_names->table), "selection_change",
G_CALLBACK (selection_change), e_select_names);
selection_change (e_table_scrolled_get_table (e_select_names->table), e_select_names);
-
- addressbook_model_set_uri(e_select_names, e_select_names->model, contacts_uri);
-
- g_free (contacts_uri);
}
static void e_select_names_child_free(char *key, ESelectNamesChild *child, ESelectNames *e_select_names)
@@ -656,10 +626,35 @@ e_select_names_dispose (GObject *object)
}
GtkWidget*
-e_select_names_new (void)
+e_select_names_new (EvolutionShellClient *shell_client)
{
- GtkWidget *widget = g_object_new (E_TYPE_SELECT_NAMES, NULL);
- return widget;
+ ESelectNames *e_select_names;
+ const char *selector_types[] = { "contacts/*", NULL };
+ char *contacts_uri;
+ GtkWidget *button;
+ EConfigListener *db;
+
+ e_select_names = g_object_new (E_TYPE_SELECT_NAMES, NULL);
+
+ db = e_book_get_config_database ();
+ contacts_uri = e_config_listener_get_string_with_default (
+ db, "/apps/evolution/addressbook/select_names/last_used_uri",
+ NULL, NULL);
+ if (!contacts_uri)
+ contacts_uri = g_strdup (e_book_get_default_book_uri ());
+
+ button = glade_xml_get_widget (e_select_names->gui, "folder-selector");
+ evolution_folder_selector_button_construct (EVOLUTION_FOLDER_SELECTOR_BUTTON (button),
+ shell_client,
+ _("Find contact in"),
+ contacts_uri,
+ selector_types);
+
+ addressbook_model_set_uri(e_select_names, e_select_names->model, contacts_uri);
+
+ g_free (contacts_uri);
+
+ return GTK_WIDGET (e_select_names);
}
static void
@@ -707,7 +702,9 @@ section_right_click_cb (ETable *et, int row, int col, GdkEvent *ev, ESelectNames
}
void
-e_select_names_add_section(ESelectNames *e_select_names, char *name, char *id, ESelectNamesModel *source)
+e_select_names_add_section (ESelectNames *e_select_names,
+ const char *name, const char *id,
+ ESelectNamesModel *source)
{
ESelectNamesChild *child;
GtkWidget *button;
@@ -814,19 +811,6 @@ e_select_names_add_section(ESelectNames *e_select_names, char *name, char *id, E
sync_table_and_models (child->source, e_select_names);
}
-static void *
-card_copy(const void *value, void *closure)
-{
- g_object_ref((gpointer)value);
- return (void *)value;
-}
-
-static void
-card_free(void *value, void *closure)
-{
- g_object_unref((gpointer)value);
-}
-
void
e_select_names_set_default (ESelectNames *e_select_names,
const char *id)
diff --git a/addressbook/gui/component/select-names/e-select-names.h b/addressbook/gui/component/select-names/e-select-names.h
index 609aa00f01..8e672da92a 100644
--- a/addressbook/gui/component/select-names/e-select-names.h
+++ b/addressbook/gui/component/select-names/e-select-names.h
@@ -27,10 +27,10 @@
#include <gal/e-table/e-table.h>
#include <gal/e-table/e-table-scrolled.h>
-#include <addressbook/gui/widgets/e-addressbook-model.h>
+#include "evolution-shell-client.h"
+#include "e-addressbook-model.h"
#include "e-select-names-model.h"
-#include "e-util/e-list.h"
#ifdef __cplusplus
extern "C" {
@@ -85,15 +85,15 @@ struct _ESelectNamesClass
};
-GtkWidget *e_select_names_new (void);
+GtkWidget *e_select_names_new (EvolutionShellClient *shell_client);
GType e_select_names_get_type (void);
-void e_select_names_add_section (ESelectNames *e_select_names,
- char *name,
- char *id,
- ESelectNamesModel *source);
-void e_select_names_set_default (ESelectNames *e_select_names,
- const char *id);
+void e_select_names_add_section (ESelectNames *e_select_names,
+ const char *name,
+ const char *id,
+ ESelectNamesModel *source);
+void e_select_names_set_default (ESelectNames *e_select_names,
+ const char *id);
#ifdef __cplusplus
}