Added an argument to get the model.
2002-02-12 Christopher James Lahey <clahey@ximian.com> * gui/widgets/e-addressbook-reflow-adapter.c (addressbook_get_arg): Added an argument to get the model. * gui/widgets/e-addressbook-view.c (writable_status): Don't bother connecting to the writable_status callback on the book, simply rely on the writable_status callback on the addressbook model. * gui/widgets/e-minicard-view.c, gui/widgets/e-minicard-view.h (set_empty_message): Handle the case of a read only view here. svn path=/trunk/; revision=15698
This commit is contained in:

committed by
Chris Lahey

parent
f4d3822695
commit
2788f38ed6
@ -1,3 +1,15 @@
|
||||
2002-02-12 Christopher James Lahey <clahey@ximian.com>
|
||||
|
||||
* gui/widgets/e-addressbook-reflow-adapter.c
|
||||
(addressbook_get_arg): Added an argument to get the model.
|
||||
|
||||
* gui/widgets/e-addressbook-view.c (writable_status): Don't bother
|
||||
connecting to the writable_status callback on the book, simply
|
||||
rely on the writable_status callback on the addressbook model.
|
||||
|
||||
* gui/widgets/e-minicard-view.c, gui/widgets/e-minicard-view.h
|
||||
(set_empty_message): Handle the case of a read only view here.
|
||||
|
||||
2002-02-07 JP Rosevear <jpr@ximian.com>
|
||||
|
||||
* gui/component/addressbook-component.c (create_component): remove
|
||||
|
@ -36,6 +36,7 @@ enum {
|
||||
ARG_BOOK,
|
||||
ARG_QUERY,
|
||||
ARG_EDITABLE,
|
||||
ARG_MODEL,
|
||||
};
|
||||
|
||||
enum {
|
||||
@ -263,8 +264,8 @@ open_card (GtkWidget *widget, ModelAndSelection *mns)
|
||||
list = get_card_list (mns);
|
||||
|
||||
e_addressbook_show_multiple_cards (book, list, e_addressbook_model_editable (priv->model));
|
||||
|
||||
e_free_object_list (list);
|
||||
|
||||
model_and_selection_free (mns);
|
||||
}
|
||||
|
||||
@ -286,7 +287,7 @@ e_addressbook_reflow_adapter_right_click (EAddressbookReflowAdapter *adapter, Gd
|
||||
{N_("Copy"), NULL, GTK_SIGNAL_FUNC (copy), NULL, 0},
|
||||
{N_("Paste"), NULL, GTK_SIGNAL_FUNC (paste), NULL, POPUP_READONLY_MASK},
|
||||
{N_("Delete"), NULL, GTK_SIGNAL_FUNC(delete), NULL, POPUP_READONLY_MASK},
|
||||
{NULL, NULL, NULL, 0}};
|
||||
E_POPUP_TERMINATOR};
|
||||
|
||||
mns->adapter = adapter;
|
||||
mns->selection = selection;
|
||||
@ -514,7 +515,10 @@ addressbook_get_arg (GtkObject *o, GtkArg *arg, guint arg_id)
|
||||
gtk_object_get (GTK_OBJECT (priv->model),
|
||||
"book", &book,
|
||||
NULL);
|
||||
GTK_VALUE_OBJECT (*arg) = GTK_OBJECT(book);
|
||||
if (book)
|
||||
GTK_VALUE_OBJECT (*arg) = GTK_OBJECT(book);
|
||||
else
|
||||
GTK_VALUE_OBJECT (*arg) = NULL;
|
||||
break;
|
||||
}
|
||||
case ARG_QUERY: {
|
||||
@ -533,6 +537,12 @@ addressbook_get_arg (GtkObject *o, GtkArg *arg, guint arg_id)
|
||||
GTK_VALUE_BOOL (*arg) = editable;
|
||||
break;
|
||||
}
|
||||
case ARG_MODEL:
|
||||
if (priv->model)
|
||||
GTK_VALUE_OBJECT (*arg) = GTK_OBJECT (priv->model);
|
||||
else
|
||||
GTK_VALUE_OBJECT (*arg) = NULL;
|
||||
break;
|
||||
default:
|
||||
arg->type = GTK_TYPE_INVALID;
|
||||
break;
|
||||
@ -556,6 +566,8 @@ e_addressbook_reflow_adapter_class_init (GtkObjectClass *object_class)
|
||||
GTK_ARG_READWRITE, ARG_QUERY);
|
||||
gtk_object_add_arg_type ("EAddressbookReflowAdapter::editable", GTK_TYPE_BOOL,
|
||||
GTK_ARG_READWRITE, ARG_EDITABLE);
|
||||
gtk_object_add_arg_type ("EAddressbookReflowAdapter::model", E_ADDRESSBOOK_MODEL_TYPE,
|
||||
GTK_ARG_READABLE, ARG_MODEL);
|
||||
|
||||
e_addressbook_reflow_adapter_signals [DRAG_BEGIN] =
|
||||
gtk_signal_new ("drag_begin",
|
||||
|
@ -320,13 +320,10 @@ e_addressbook_view_new (void)
|
||||
}
|
||||
|
||||
static void
|
||||
book_writable_cb (EBook *book, gboolean writable, EAddressbookView *eav)
|
||||
writable_status (GtkObject *object, gboolean writable, EAddressbookView *eav)
|
||||
{
|
||||
eav->editable = writable;
|
||||
gtk_object_set (GTK_OBJECT (eav->model),
|
||||
"editable", eav->editable,
|
||||
NULL);
|
||||
writable_status (GTK_OBJECT(book), writable, eav);
|
||||
command_state_change (eav);
|
||||
}
|
||||
|
||||
#ifdef JUST_FOR_TRANSLATORS
|
||||
@ -507,9 +504,6 @@ e_addressbook_view_set_arg (GtkObject *object, GtkArg *arg, guint arg_id)
|
||||
if (GTK_VALUE_OBJECT(*arg)) {
|
||||
eav->book = E_BOOK(GTK_VALUE_OBJECT(*arg));
|
||||
gtk_object_ref(GTK_OBJECT(eav->book));
|
||||
gtk_signal_connect (GTK_OBJECT (eav->book),
|
||||
"writable_status",
|
||||
book_writable_cb, eav);
|
||||
}
|
||||
else
|
||||
eav->book = NULL;
|
||||
@ -1116,12 +1110,6 @@ stop_state_changed (GtkObject *object, EAddressbookView *eav)
|
||||
command_state_change (eav);
|
||||
}
|
||||
|
||||
static void
|
||||
writable_status (GtkObject *object, gboolean writable, EAddressbookView *eav)
|
||||
{
|
||||
command_state_change (eav);
|
||||
}
|
||||
|
||||
static void
|
||||
command_state_change (EAddressbookView *eav)
|
||||
{
|
||||
|
@ -143,20 +143,43 @@ e_minicard_view_drag_begin (EAddressbookReflowAdapter *adapter, GdkEvent *event,
|
||||
}
|
||||
|
||||
static void
|
||||
adapter_changed (EMinicardView *view)
|
||||
set_empty_message (EMinicardView *view)
|
||||
{
|
||||
char *empty_message;
|
||||
gboolean editable = FALSE;
|
||||
|
||||
if (view->adapter) {
|
||||
gtk_object_get (GTK_OBJECT (view->adapter),
|
||||
"editable", &editable,
|
||||
NULL);
|
||||
}
|
||||
|
||||
if (editable)
|
||||
empty_message = e_utf8_from_locale_string(_("\n\nThere are no items to show in this view.\n\n"
|
||||
"Double-click here to create a new Contact."));
|
||||
else
|
||||
empty_message = e_utf8_from_locale_string(_("\n\nThere are no items to show in this view."));
|
||||
|
||||
empty_message = e_utf8_from_locale_string(_("\n\nThere are no items to show in this view\n\n"
|
||||
"Double-click here to create a new Contact."));
|
||||
gtk_object_set (GTK_OBJECT(view),
|
||||
"empty_message", empty_message,
|
||||
NULL);
|
||||
|
||||
g_free (empty_message);
|
||||
}
|
||||
|
||||
static void
|
||||
writable_status_change (EAddressbookModel *model, gboolean writable, EMinicardView *view)
|
||||
{
|
||||
set_empty_message (view);
|
||||
}
|
||||
|
||||
static void
|
||||
adapter_changed (EMinicardView *view)
|
||||
{
|
||||
set_empty_message (view);
|
||||
|
||||
gtk_signal_connect (GTK_OBJECT (view->adapter), "drag_begin",
|
||||
GTK_SIGNAL_FUNC (e_minicard_view_drag_begin), view);
|
||||
|
||||
g_free (empty_message);
|
||||
}
|
||||
|
||||
static void
|
||||
@ -170,19 +193,44 @@ e_minicard_view_set_arg (GtkObject *o, GtkArg *arg, guint arg_id)
|
||||
|
||||
switch (arg_id){
|
||||
case ARG_ADAPTER:
|
||||
if (view->adapter)
|
||||
if (view->adapter) {
|
||||
if (view->writable_status_id) {
|
||||
EAddressbookModel *model;
|
||||
gtk_object_get (GTK_OBJECT (view->adapter),
|
||||
"model", &model,
|
||||
NULL);
|
||||
if (model) {
|
||||
gtk_signal_disconnect (GTK_OBJECT (model), view->writable_status_id);
|
||||
}
|
||||
}
|
||||
|
||||
gtk_object_unref (GTK_OBJECT(view->adapter));
|
||||
}
|
||||
view->writable_status_id = 0;
|
||||
view->adapter = GTK_VALUE_POINTER (*arg);
|
||||
gtk_object_ref (GTK_OBJECT (view->adapter));
|
||||
adapter_changed (view);
|
||||
gtk_object_set (GTK_OBJECT (view),
|
||||
"model", view->adapter,
|
||||
NULL);
|
||||
if (view->adapter) {
|
||||
EAddressbookModel *model;
|
||||
gtk_object_get (GTK_OBJECT (view->adapter),
|
||||
"model", &model,
|
||||
NULL);
|
||||
if (model) {
|
||||
view->writable_status_id =
|
||||
gtk_signal_connect (GTK_OBJECT (model), "writable_status",
|
||||
GTK_SIGNAL_FUNC (writable_status_change), view);
|
||||
}
|
||||
|
||||
}
|
||||
break;
|
||||
case ARG_BOOK:
|
||||
gtk_object_set (GTK_OBJECT (view->adapter),
|
||||
"book", GTK_VALUE_OBJECT (*arg),
|
||||
NULL);
|
||||
set_empty_message (view);
|
||||
break;
|
||||
case ARG_QUERY:
|
||||
gtk_object_set (GTK_OBJECT (view->adapter),
|
||||
@ -193,6 +241,7 @@ e_minicard_view_set_arg (GtkObject *o, GtkArg *arg, guint arg_id)
|
||||
gtk_object_set (GTK_OBJECT (view->adapter),
|
||||
"editable", GTK_VALUE_BOOL (*arg),
|
||||
NULL);
|
||||
set_empty_message (view);
|
||||
break;
|
||||
}
|
||||
}
|
||||
@ -238,7 +287,22 @@ e_minicard_view_destroy (GtkObject *object)
|
||||
gtk_signal_disconnect (GTK_OBJECT (GNOME_CANVAS_ITEM (view)->canvas),
|
||||
view->canvas_drag_data_get_id);
|
||||
}
|
||||
gtk_object_unref (GTK_OBJECT (view->adapter));
|
||||
|
||||
if (view->adapter) {
|
||||
if (view->writable_status_id) {
|
||||
EAddressbookModel *model;
|
||||
gtk_object_get (GTK_OBJECT (view->adapter),
|
||||
"model", &model,
|
||||
NULL);
|
||||
if (model) {
|
||||
gtk_signal_disconnect (GTK_OBJECT (model), view->writable_status_id);
|
||||
}
|
||||
}
|
||||
|
||||
gtk_object_unref (GTK_OBJECT(view->adapter));
|
||||
}
|
||||
view->writable_status_id = 0;
|
||||
view->adapter = NULL;
|
||||
|
||||
GTK_OBJECT_CLASS(parent_class)->destroy (object);
|
||||
}
|
||||
@ -431,6 +495,9 @@ e_minicard_view_init (EMinicardView *view)
|
||||
{
|
||||
view->adapter = NULL;
|
||||
view->canvas_drag_data_get_id = 0;
|
||||
view->writable_status_id = 0;
|
||||
|
||||
set_empty_message (view);
|
||||
}
|
||||
|
||||
GtkType
|
||||
|
@ -74,10 +74,9 @@ struct _EMinicardView
|
||||
|
||||
GList *drag_list;
|
||||
|
||||
int canvas_destroy_id;
|
||||
int canvas_drag_data_get_id;
|
||||
guint canvas_drag_data_get_id;
|
||||
|
||||
int status_message_id;
|
||||
guint writable_status_id;
|
||||
};
|
||||
|
||||
struct _EMinicardViewClass
|
||||
|
Reference in New Issue
Block a user