From 8db57316948801a0d0c91bf5487b9e22182a6d37 Mon Sep 17 00:00:00 2001 From: Chris Toshok Date: Wed, 8 Aug 2001 02:54:11 +0000 Subject: pass view->view instead of the EBook. (addressbook_search_menu_items): 2001-08-07 Chris Toshok * gui/component/addressbook.c (search_cb): pass view->view instead of the EBook. (addressbook_search_menu_items): remove E_FILTERBAR_ADVANCED. (addressbook_menu_activated): remove E_FILTERBAR_ADVANCED. (addressbook_search_option_items): add "Advanced..." here. (addressbook_query_changed): add special handling for Advanced... * gui/search/e-addressbook-search-dialog.h (struct _EAddressbookSearchDialog): add EAddressbookView and remove the model/adapter fields. Also fix prototype of e_addressbook_search_dialog_new. * gui/search/e-addressbook-search-dialog.c (e_addressbook_search_dialog_class_init): get rid of set_arg/get_arg. (button_press): set the query on the EAddressbookView, and always close the dialog. (e_addressbook_search_dialog_init): get rid of the minicard view, and pack the other widgets accordingly. (e_addressbook_search_dialog_new): pass EAddressbookView instead of EBook. (e_addressbook_search_dialog_destroy): remove model/adapter stuff. svn path=/trunk/; revision=11760 --- addressbook/gui/component/addressbook.c | 86 ++++++++++------------ .../gui/search/e-addressbook-search-dialog.c | 75 ++----------------- .../gui/search/e-addressbook-search-dialog.h | 10 +-- 3 files changed, 49 insertions(+), 122 deletions(-) (limited to 'addressbook/gui') diff --git a/addressbook/gui/component/addressbook.c b/addressbook/gui/component/addressbook.c index f87d49d689..04abcd005f 100644 --- a/addressbook/gui/component/addressbook.c +++ b/addressbook/gui/component/addressbook.c @@ -98,15 +98,9 @@ config_cb (BonoboUIComponent *uih, void *user_data, const char *path) static void search_cb (BonoboUIComponent *uih, void *user_data, const char *path) { - EBook *book; AddressbookView *view = (AddressbookView *) user_data; - gtk_object_get(GTK_OBJECT(view->view), - "book", &book, - NULL); - g_assert (E_IS_BOOK (book)); - - gtk_widget_show(e_addressbook_search_dialog_new(book)); + gtk_widget_show(e_addressbook_search_dialog_new(view->view)); } static void @@ -245,7 +239,7 @@ change_view_type (AddressbookView *view, EAddressbookViewType view_type) gtk_object_set (GTK_OBJECT (view->view), "type", view_type, NULL); } -BonoboUIVerb verbs [] = { +static BonoboUIVerb verbs [] = { BONOBO_UI_UNSAFE_VERB ("ContactsPrint", print_cb), BONOBO_UI_UNSAFE_VERB ("ContactsSaveAsVCard", save_contact_cb), BONOBO_UI_UNSAFE_VERB ("ToolSearch", search_cb), @@ -559,27 +553,16 @@ set_prop (BonoboPropertyBag *bag, static ESearchBarItem addressbook_search_menu_items[] = { E_FILTERBAR_RESET, - { NULL, 0 }, - E_FILTERBAR_ADVANCED, - { NULL, -1 } + { NULL, -1 }, }; static void addressbook_menu_activated (ESearchBar *esb, int id, AddressbookView *view) { - EBook *book; switch (id) { case E_FILTERBAR_RESET_ID: e_addressbook_view_show_all(view->view); break; - case E_FILTERBAR_ADVANCED_ID: - gtk_object_get(GTK_OBJECT(view->view), - "book", &book, - NULL); - g_assert (E_IS_BOOK (book)); - - gtk_widget_show(e_addressbook_search_dialog_new(book)); - break; } } @@ -588,6 +571,7 @@ enum { ESB_FULL_NAME, ESB_EMAIL, ESB_CATEGORY, + ESB_ADVANCED }; static ESearchBarItem addressbook_search_option_items[] = { @@ -595,6 +579,7 @@ static ESearchBarItem addressbook_search_option_items[] = { { N_("Name contains"), ESB_FULL_NAME }, { N_("Email contains"), ESB_EMAIL }, { N_("Category contains"), ESB_CATEGORY }, + { N_("Advanced..."), ESB_ADVANCED }, { NULL, -1 } }; @@ -609,37 +594,42 @@ addressbook_query_changed (ESearchBar *esb, AddressbookView *view) "option_choice", &search_type, NULL); - if (search_word && strlen (search_word)) { - switch (search_type) { - case ESB_ANY: - search_query = g_strdup_printf ("(contains \"x-evolution-any-field\" \"%s\")", - search_word); - break; - case ESB_FULL_NAME: - search_query = g_strdup_printf ("(contains \"full_name\" \"%s\")", - search_word); - break; - case ESB_EMAIL: - search_query = g_strdup_printf ("(contains \"email\" \"%s\")", - search_word); - break; - case ESB_CATEGORY: - search_query = g_strdup_printf ("(contains \"category\" \"%s\")", - search_word); - break; - default: + if (search_type == ESB_ADVANCED) { + gtk_widget_show(e_addressbook_search_dialog_new(view->view)); + } + else { + if (search_word && strlen (search_word)) { + switch (search_type) { + case ESB_ANY: + search_query = g_strdup_printf ("(contains \"x-evolution-any-field\" \"%s\")", + search_word); + break; + case ESB_FULL_NAME: + search_query = g_strdup_printf ("(contains \"full_name\" \"%s\")", + search_word); + break; + case ESB_EMAIL: + search_query = g_strdup_printf ("(contains \"email\" \"%s\")", + search_word); + break; + case ESB_CATEGORY: + search_query = g_strdup_printf ("(contains \"category\" \"%s\")", + search_word); + break; + default: + search_query = g_strdup ("(contains \"full_name\" \"\")"); + break; + } + } else search_query = g_strdup ("(contains \"full_name\" \"\")"); - break; - } - } else - search_query = g_strdup ("(contains \"full_name\" \"\")"); - gtk_object_set (GTK_OBJECT(view->view), - "query", search_query, - NULL); + gtk_object_set (GTK_OBJECT(view->view), + "query", search_query, + NULL); - g_free (search_query); - g_free (search_word); + g_free (search_query); + g_free (search_word); + } } static GNOME_Evolution_ShellView diff --git a/addressbook/gui/search/e-addressbook-search-dialog.c b/addressbook/gui/search/e-addressbook-search-dialog.c index 5450fb5b73..de1eb6f381 100644 --- a/addressbook/gui/search/e-addressbook-search-dialog.c +++ b/addressbook/gui/search/e-addressbook-search-dialog.c @@ -28,20 +28,15 @@ #include #include #include -#include -#include #include "e-addressbook-search-dialog.h" -#include "addressbook/gui/widgets/e-minicard-view-widget.h" static void e_addressbook_search_dialog_init (EAddressbookSearchDialog *widget); static void e_addressbook_search_dialog_class_init (EAddressbookSearchDialogClass *klass); -static void e_addressbook_search_dialog_set_arg (GtkObject *o, GtkArg *arg, guint arg_id); -static void e_addressbook_search_dialog_get_arg (GtkObject *object, GtkArg *arg, guint arg_id); static void e_addressbook_search_dialog_destroy (GtkObject *object); -static ECanvasClass *parent_class = NULL; +static GnomeDialog *parent_class = NULL; #define PARENT_TYPE (gnome_dialog_get_type()) @@ -88,8 +83,6 @@ e_addressbook_search_dialog_class_init (EAddressbookSearchDialogClass *klass) gtk_object_add_arg_type ("EAddressbookSearchDialog::book", GTK_TYPE_OBJECT, GTK_ARG_READWRITE, ARG_BOOK); - object_class->set_arg = e_addressbook_search_dialog_set_arg; - object_class->get_arg = e_addressbook_search_dialog_get_arg; object_class->destroy = e_addressbook_search_dialog_destroy; } @@ -134,13 +127,13 @@ button_press (GtkWidget *widget, int button, EAddressbookSearchDialog *dialog) if (button == 0) { query = get_query(dialog); - gtk_object_set(GTK_OBJECT(dialog->model), + gtk_object_set(GTK_OBJECT(dialog->view), "query", query, NULL); g_free(query); } - else - gnome_dialog_close(GNOME_DIALOG (dialog)); + + gnome_dialog_close(GNOME_DIALOG (dialog)); } static void @@ -149,9 +142,10 @@ e_addressbook_search_dialog_init (EAddressbookSearchDialog *view) GnomeDialog *dialog = GNOME_DIALOG (view); gtk_window_set_policy(GTK_WINDOW(view), FALSE, TRUE, FALSE); + gtk_window_set_default_size (GTK_WINDOW (view), 500, 400); view->search = get_widget(view); - gtk_box_pack_start(GTK_BOX(dialog->vbox), view->search, FALSE, FALSE, 0); + gtk_box_pack_start(GTK_BOX(dialog->vbox), view->search, TRUE, TRUE, 0); gtk_widget_show(view->search); gnome_dialog_append_buttons(dialog, @@ -162,67 +156,16 @@ e_addressbook_search_dialog_init (EAddressbookSearchDialog *view) gtk_signal_connect(GTK_OBJECT(dialog), "clicked", GTK_SIGNAL_FUNC(button_press), view); - - view->model = e_addressbook_model_new (); - view->adapter = E_ADDRESSBOOK_REFLOW_ADAPTER(e_addressbook_reflow_adapter_new (view->model)); - view->view = e_minicard_view_widget_new(view->adapter); - gtk_widget_show(view->view); - - view->scrolled_window = e_scroll_frame_new(NULL, NULL); - e_scroll_frame_set_policy(E_SCROLL_FRAME(view->scrolled_window), - GTK_POLICY_AUTOMATIC, GTK_POLICY_NEVER); - gtk_container_add(GTK_CONTAINER(view->scrolled_window), view->view); - - gtk_widget_show(view->scrolled_window); - - gtk_box_pack_start(GTK_BOX(dialog->vbox), view->scrolled_window, TRUE, TRUE, 0); } GtkWidget * -e_addressbook_search_dialog_new (EBook *book) +e_addressbook_search_dialog_new (EAddressbookView *addr_view) { EAddressbookSearchDialog *view = gtk_type_new (e_addressbook_search_dialog_get_type ()); - gtk_object_set(GTK_OBJECT(view->model), - "book", book, - NULL); + view->view = addr_view; return GTK_WIDGET(view); } -static void -e_addressbook_search_dialog_set_arg (GtkObject *o, GtkArg *arg, guint arg_id) -{ - EAddressbookSearchDialog *emvw; - - emvw = E_ADDRESSBOOK_SEARCH_DIALOG (o); - - switch (arg_id){ - case ARG_BOOK: - gtk_object_set(GTK_OBJECT(emvw->model), - "book", GTK_VALUE_OBJECT (*arg), - NULL); - break; - } -} - -static void -e_addressbook_search_dialog_get_arg (GtkObject *object, GtkArg *arg, guint arg_id) -{ - EAddressbookSearchDialog *emvw; - - emvw = E_ADDRESSBOOK_SEARCH_DIALOG (object); - - switch (arg_id) { - case ARG_BOOK: - gtk_object_get(GTK_OBJECT(emvw->model), - "book", &(GTK_VALUE_OBJECT (*arg)), - NULL); - break; - default: - arg->type = GTK_TYPE_INVALID; - break; - } -} - static void e_addressbook_search_dialog_destroy (GtkObject *object) { @@ -230,8 +173,6 @@ e_addressbook_search_dialog_destroy (GtkObject *object) view = E_ADDRESSBOOK_SEARCH_DIALOG (object); - gtk_object_unref((GtkObject *)view->model); - gtk_object_unref((GtkObject *)view->adapter); gtk_object_unref((GtkObject *)view->context); gtk_object_unref((GtkObject *)view->rule); diff --git a/addressbook/gui/search/e-addressbook-search-dialog.h b/addressbook/gui/search/e-addressbook-search-dialog.h index 9bc4c6ac18..86b30056d3 100644 --- a/addressbook/gui/search/e-addressbook-search-dialog.h +++ b/addressbook/gui/search/e-addressbook-search-dialog.h @@ -23,8 +23,7 @@ #include -#include "addressbook/gui/widgets/e-addressbook-model.h" -#include "addressbook/gui/widgets/e-addressbook-reflow-adapter.h" +#include "addressbook/gui/widgets/e-addressbook-view.h" #include "filter/rule-context.h" #include "filter/filter-rule.h" @@ -50,14 +49,11 @@ struct _EAddressbookSearchDialog GnomeDialog parent; GtkWidget *search; - GtkWidget *view; - EAddressbookModel *model; - EAddressbookReflowAdapter *adapter; + EAddressbookView *view; RuleContext *context; FilterRule *rule; - GtkWidget *scrolled_window; }; struct _EAddressbookSearchDialogClass @@ -67,7 +63,7 @@ struct _EAddressbookSearchDialogClass GtkType e_addressbook_search_dialog_get_type (void); -GtkWidget *e_addressbook_search_dialog_new (EBook *book); +GtkWidget *e_addressbook_search_dialog_new (EAddressbookView *view); #ifdef __cplusplus } -- cgit v1.2.3