diff options
author | Chris Toshok <toshok@ximian.com> | 2001-03-18 06:30:06 +0800 |
---|---|---|
committer | Chris Toshok <toshok@src.gnome.org> | 2001-03-18 06:30:06 +0800 |
commit | b16a04e98d4d6afd4507fcd8e9bf31358f1b6344 (patch) | |
tree | 712f5da2d44ad0655e4356eda3d2e3eed0628265 /addressbook/gui/widgets/e-minicard-view.c | |
parent | c768305c2f2203cf1fb9262a9f22b5a5f2dafebb (diff) | |
download | gsoc2013-evolution-b16a04e98d4d6afd4507fcd8e9bf31358f1b6344.tar.gz gsoc2013-evolution-b16a04e98d4d6afd4507fcd8e9bf31358f1b6344.tar.zst gsoc2013-evolution-b16a04e98d4d6afd4507fcd8e9bf31358f1b6344.zip |
new function. (impl_BookListener_report_writable): new function.
2001-03-17 Chris Toshok <toshok@ximian.com>
* backend/ebook/e-book-listener.c
(e_book_listener_queue_writable_status): new function.
(impl_BookListener_report_writable): new function.
(e_book_listener_get_epv): fill in epv->notifyWritable.
* backend/ebook/e-book-listener.h: add writable status entries.
* backend/ebook/e-book.c (e_book_do_writable_event): new function.
(e_book_check_listener_queue): add WritableStatusEvent to the
switch.
(e_book_class_init): register writable_status signal.
* backend/ebook/e-book.h: add writable_status signal.
* backend/idl/addressbook.idl: add notifyWritable method to
BookListener.
* gui/widgets/e-minicard.c (e_minicard_class_init): add "editable"
arg.
(e_minicard_init): init editable.
(e_minicard_set_arg): loop over the minicard fields setting their
"editable".
(e_minicard_get_arg): add editable.
(supported_fields_cb): use editable when creating the
contact_editor.
(add_field): set "editable" when creatin the e_minicard.
* gui/widgets/e-minicard.h (struct _EMinicard): add "editable".
* gui/widgets/e-minicard-view.c (e_minicard_view_class_init): add
editable arg.
(e_minicard_view_init): init editable.
(create_card): pass editable to e_minicard canvas item.
(e_minicard_view_set_arg): bit of a hack - loop over all the
canvas items setting their "editable."
(e_minicard_view_get_arg): add editable.
(supported_fields_cb): use editable when creating the contact
editor.
* gui/widgets/e-minicard-view.h (struct _EMinicardView): add
"editable."
* gui/widgets/e-minicard-view-widget.c
(e_minicard_view_widget_class_init): add "editable" field.
(e_minicard_view_widget_init): init editable to FALSE.
(e_minicard_view_widget_set_arg): save editable, and pass it along
the e-minicard-view.
(e_minicard_view_widget_realize): same.
(e_minicard_view_widget_get_arg): add editable.
* gui/widgets/e-minicard-view-widget.h (struct
_EMinicardViewWidget): add "editable" field.
* gui/widgets/e-minicard-label.h (struct _EMinicardLabel): add
"editable" field.
* gui/widgets/e-minicard-label.c (e_minicard_label_class_init):
add "editable" arg.
(e_minicard_label_set_arg): editable, set it on the e_text too.
(e_minicard_label_get_arg): editable.
(e_minicard_label_construct): set the "editable" field when we
create the e_text cavas item
* gui/widgets/e-addressbook-view.c (e_addressbook_view_init):
default editable to FALSE.
(book_writable_cb): new function, set our editable field and
gtk_object_set it on the active view.
(e_addressbook_view_set_arg): set the active view's editable when
we set the view's book, and connect the "writable_status" signal
to book_writable_cb.
(change_view_type): same.
(supported_fields_cb): use our "editable" when creating the
contact editor.
* gui/widgets/e-addressbook-view.h (struct _EAddressbookView): add
editable field.
* gui/widgets/e-addressbook-model.c (e_addressbook_model_init):
change the default of editable to FALSE.
* backend/pas/pas-book.c (pas_book_report_writable): new function.
* backend/pas/pas-book.h: prototype for pas_book_report_writable.
* backend/pas/pas-backend-file.c (pas_backend_file_load_uri): if
we open the file O_RDWR (or create it) report it as writable. if
we can't open it as O_RDWR, try opening it read-only before we
attempt to create it.
* backend/pas/pas-backend-ldap.c
(pas_backend_ldap_process_authenticate_user): if we authenticate
successfully, grant write permissions (this is lacking but there's
really nothing we can do to determine the extent of the access
afforded a user.)
svn path=/trunk/; revision=8787
Diffstat (limited to 'addressbook/gui/widgets/e-minicard-view.c')
-rw-r--r-- | addressbook/gui/widgets/e-minicard-view.c | 27 |
1 files changed, 23 insertions, 4 deletions
diff --git a/addressbook/gui/widgets/e-minicard-view.c b/addressbook/gui/widgets/e-minicard-view.c index 7aac3e1641..42284b02db 100644 --- a/addressbook/gui/widgets/e-minicard-view.c +++ b/addressbook/gui/widgets/e-minicard-view.c @@ -42,7 +42,8 @@ static EReflowSortedClass *parent_class = NULL; enum { ARG_0, ARG_BOOK, - ARG_QUERY + ARG_QUERY, + ARG_EDITABLE }; enum { @@ -92,6 +93,8 @@ e_minicard_view_class_init (EMinicardViewClass *klass) GTK_ARG_READWRITE, ARG_BOOK); gtk_object_add_arg_type ("EMinicardView::query", GTK_TYPE_STRING, GTK_ARG_READWRITE, ARG_QUERY); + gtk_object_add_arg_type ("EMinicardView::editable", GTK_TYPE_BOOL, + GTK_ARG_READWRITE, ARG_EDITABLE); e_minicard_view_signals [STATUS_MESSAGE] = gtk_signal_new ("status_message", @@ -123,6 +126,7 @@ e_minicard_view_init (EMinicardView *view) { view->book = NULL; view->query = g_strdup("(contains \"x-evolution-any-field\" \"\")"); + view->editable = FALSE; view->book_view = NULL; view->get_view_idle = 0; view->create_card_id = 0; @@ -173,6 +177,7 @@ create_card(EBookView *book_view, const GList *cards, EMinicardView *view) GnomeCanvasItem *item = gnome_canvas_item_new(GNOME_CANVAS_GROUP(view), e_minicard_get_type(), "card", cards->data, + "editable", view->editable, NULL); gtk_signal_connect(GTK_OBJECT(item), "selected", GTK_SIGNAL_FUNC(card_selected), view); @@ -318,6 +323,17 @@ e_minicard_view_set_arg (GtkObject *o, GtkArg *arg, guint arg_id) if (view->get_view_idle == 0) view->get_view_idle = g_idle_add((GSourceFunc)get_view, view); break; + case ARG_EDITABLE: { + GList *l; + view->editable = GTK_VALUE_BOOL (*arg); + /* bit of a hack */ + for (l = E_REFLOW (view)->items; l; l = g_list_next(l)) { + gtk_object_set (GTK_OBJECT (l->data), + "editable", view->editable, + NULL); + } + break; + } } } @@ -335,6 +351,9 @@ e_minicard_view_get_arg (GtkObject *object, GtkArg *arg, guint arg_id) case ARG_QUERY: GTK_VALUE_STRING (*arg) = g_strdup(e_minicard_view->query); break; + case ARG_EDITABLE: + GTK_VALUE_BOOL (*arg) = e_minicard_view->editable; + break; default: arg->type = GTK_TYPE_INVALID; break; @@ -402,14 +421,14 @@ editor_closed_cb (EContactEditor *ce, gpointer data) } static void -supported_fields_cb (EBook *book, EBookStatus status, EList *fields, EMinicard *e_minicard) +supported_fields_cb (EBook *book, EBookStatus status, EList *fields, EMinicardView *view) { ECard *card; EContactEditor *ce; card = e_card_new(""); - ce = e_contact_editor_new (card, TRUE, fields, FALSE); + ce = e_contact_editor_new (card, TRUE, fields, !view->editable); gtk_signal_connect (GTK_OBJECT (ce), "add_card", GTK_SIGNAL_FUNC (add_card_cb), book); @@ -440,7 +459,7 @@ e_minicard_view_event (GnomeCanvasItem *item, GdkEvent *event) e_book_get_supported_fields (book, (EBookFieldsCallback)supported_fields_cb, - NULL); + view); } return TRUE; default: |