diff options
author | Mike Kestner <mkestner@ximian.com> | 2003-10-01 06:39:04 +0800 |
---|---|---|
committer | Mike Kestner <mkestner@src.gnome.org> | 2003-10-01 06:39:04 +0800 |
commit | 54869d90bd04f0a816b1786530d3555ac2b034cc (patch) | |
tree | 3b2859280d478fa6b57227a419125eadd455a615 /calendar/gui/dialogs | |
parent | 642e0e5abd8486793e95fab56e9fd9f3dd0394f8 (diff) | |
download | gsoc2013-evolution-54869d90bd04f0a816b1786530d3555ac2b034cc.tar gsoc2013-evolution-54869d90bd04f0a816b1786530d3555ac2b034cc.tar.gz gsoc2013-evolution-54869d90bd04f0a816b1786530d3555ac2b034cc.tar.bz2 gsoc2013-evolution-54869d90bd04f0a816b1786530d3555ac2b034cc.tar.lz gsoc2013-evolution-54869d90bd04f0a816b1786530d3555ac2b034cc.tar.xz gsoc2013-evolution-54869d90bd04f0a816b1786530d3555ac2b034cc.tar.zst gsoc2013-evolution-54869d90bd04f0a816b1786530d3555ac2b034cc.zip |
new VOID:STRING,STRING,STRING build the new view/store/renderer/editable
2003-09-30 Mike Kestner <mkestner@ximian.com>
* cal-util/cal-util-marshal.list : new VOID:STRING,STRING,STRING
* gui/Makefile.am : build the new view/store/renderer/editable
* gui/e-select-names-renderer.* : new completion cell renderer
* gui/e-select-names-editable.* : new completion cell editable
* gui/e-meeting-model.* : killed. code reused in list-view/store
* gui/e-meeting-store.* : port of EMeetingModel to GtkTreeModel
* gui/e-meeting-list-view.* : GtkTreeView subclass for attendee lists
* gui/e-meeting-time-sel.c : Use the new store/view
* gui/e-meeting-time-sel-item.c : Use the new store/view
* gui/dialogs/Makefile.am : don't install the etspec anymore.
* gui/dialogs/event-editor.c : Use the new store/view.
* gui/dialogs/meeting-page.c : Use the new store/view.
* gui/dialogs/shedule-page.c : Use the new store/view.
* gui/dialogs/task-editor.c : Use the new store/view.
svn path=/trunk/; revision=22774
Diffstat (limited to 'calendar/gui/dialogs')
-rw-r--r-- | calendar/gui/dialogs/Makefile.am | 5 | ||||
-rw-r--r-- | calendar/gui/dialogs/event-editor.c | 62 | ||||
-rw-r--r-- | calendar/gui/dialogs/meeting-page.c | 182 | ||||
-rw-r--r-- | calendar/gui/dialogs/meeting-page.etspec | 21 | ||||
-rw-r--r-- | calendar/gui/dialogs/meeting-page.h | 6 | ||||
-rw-r--r-- | calendar/gui/dialogs/schedule-page.c | 18 | ||||
-rw-r--r-- | calendar/gui/dialogs/schedule-page.h | 6 | ||||
-rw-r--r-- | calendar/gui/dialogs/task-editor.c | 58 |
8 files changed, 115 insertions, 243 deletions
diff --git a/calendar/gui/dialogs/Makefile.am b/calendar/gui/dialogs/Makefile.am index 4bbdd90ca5..e6067d4d23 100644 --- a/calendar/gui/dialogs/Makefile.am +++ b/calendar/gui/dialogs/Makefile.am @@ -26,7 +26,6 @@ INCLUDES = \ -DEVOLUTION_DATADIR=\""$(datadir)"\" \ -DEVOLUTION_GLADEDIR=\""$(gladedir)"\" \ -DEVOLUTION_IMAGESDIR=\""$(imagesdir)"\" \ - -DEVOLUTION_ETSPECDIR=\""$(etspecdir)"\" \ -DEVOLUTION_UIDIR=\""$(evolutionuidir)"\" \ -DPREFIX=\""$(prefix)"\" \ $(EVOLUTION_CALENDAR_CFLAGS) @@ -92,7 +91,6 @@ glade_DATA = \ task-details-page.glade \ task-page.glade -etspec_DATA = meeting-page.etspec CLEANFILES = $(BUILT_SOURCES) @@ -100,5 +98,4 @@ dist-hook: cd $(distdir); rm -f $(BUILT_SOURCES) EXTRA_DIST = \ - $(glade_DATA) \ - $(etspec_DATA) + $(glade_DATA) diff --git a/calendar/gui/dialogs/event-editor.c b/calendar/gui/dialogs/event-editor.c index a67f2b14f9..978a2dbb22 100644 --- a/calendar/gui/dialogs/event-editor.c +++ b/calendar/gui/dialogs/event-editor.c @@ -26,6 +26,7 @@ #include <config.h> #include <string.h> #include <glade/glade.h> +#include <gal/util/e-util.h> #include <gal/widgets/e-unicode.h> #include <libgnome/gnome-i18n.h> #include <widgets/misc/e-dateedit.h> @@ -45,7 +46,7 @@ struct _EventEditorPrivate { MeetingPage *meet_page; SchedulePage *sched_page; - EMeetingModel *model; + EMeetingStore *model; gboolean meeting_shown; gboolean updating; @@ -65,8 +66,8 @@ static void refresh_meeting_cmd (GtkWidget *widget, gpointer data); static void cancel_meeting_cmd (GtkWidget *widget, gpointer data); static void forward_cmd (GtkWidget *widget, gpointer data); -static void model_row_changed_cb (ETableModel *etm, int row, gpointer data); -static void row_count_changed_cb (ETableModel *etm, int row, int count, gpointer data); +static void model_row_change_insert_cb (GtkTreeModel *model, GtkTreePath *path, GtkTreeIter *iter, gpointer data); +static void model_row_delete_cb (GtkTreeModel *model, GtkTreePath *path, gpointer data); static EPixmap pixmaps [] = { E_PIXMAP ("/Toolbar/Actions/ActionScheduleMeeting", "schedule-meeting-24.png"), @@ -162,12 +163,12 @@ init_widgets (EventEditor *ee) priv = ee->priv; - g_signal_connect((priv->model), "model_row_changed", - G_CALLBACK (model_row_changed_cb), ee); - g_signal_connect((priv->model), "model_rows_inserted", - G_CALLBACK (row_count_changed_cb), ee); - g_signal_connect((priv->model), "model_rows_deleted", - G_CALLBACK (row_count_changed_cb), ee); + g_signal_connect((priv->model), "row_changed", + G_CALLBACK (model_row_change_insert_cb), ee); + g_signal_connect((priv->model), "row_inserted", + G_CALLBACK (model_row_change_insert_cb), ee); + g_signal_connect((priv->model), "row_deleted", + G_CALLBACK (model_row_delete_cb), ee); } /* Object initialization function for the event editor */ @@ -179,7 +180,7 @@ event_editor_init (EventEditor *ee) priv = g_new0 (EventEditorPrivate, 1); ee->priv = priv; - priv->model = E_MEETING_MODEL (e_meeting_model_new ()); + priv->model = E_MEETING_STORE (e_meeting_store_new ()); priv->meeting_shown = TRUE; priv->updating = FALSE; } @@ -232,6 +233,7 @@ event_editor_construct (EventEditor *ee, CalClient *client) init_widgets (ee); set_menu_sens (ee); + gtk_window_set_default_size (GTK_WINDOW (ee), 300, 225); return ee; } @@ -245,7 +247,7 @@ event_editor_set_cal_client (CompEditor *editor, CalClient *client) ee = EVENT_EDITOR (editor); priv = ee->priv; - e_meeting_model_set_cal_client (priv->model, client); + e_meeting_store_set_cal_client (priv->model, client); if (parent_class->set_cal_client) parent_class->set_cal_client (editor, client); @@ -275,7 +277,7 @@ event_editor_edit_comp (CompEditor *editor, CalComponent *comp) cal_component_get_attendee_list (comp, &attendees); /* Clear things up */ - e_meeting_model_remove_all_attendees (priv->model); + e_meeting_store_remove_all_attendees (priv->model); /* Set up the attendees */ if (attendees == NULL) { @@ -304,7 +306,7 @@ event_editor_edit_comp (CompEditor *editor, CalComponent *comp) /* If we aren't the organizer or the attendee is just delegating, don't allow editing */ if (!comp_editor_get_user_org (editor) || e_meeting_attendee_is_set_delto (ia)) e_meeting_attendee_set_edit_level (ia, E_MEETING_ATTENDEE_EDIT_NONE); - e_meeting_model_add_attendee (priv->model, ia); + e_meeting_store_add_attendee (priv->model, ia); g_object_unref(ia); } @@ -321,7 +323,7 @@ event_editor_edit_comp (CompEditor *editor, CalComponent *comp) account = (EAccount*)e_iterator_get(it); - ia = e_meeting_model_find_attendee (priv->model, account->id->address, &row); + ia = e_meeting_store_find_attendee (priv->model, account->id->address, &row); if (ia != NULL) e_meeting_attendee_set_edit_level (ia, E_MEETING_ATTENDEE_EDIT_STATUS); } @@ -329,7 +331,7 @@ event_editor_edit_comp (CompEditor *editor, CalComponent *comp) } else if (cal_client_get_organizer_must_attend (client)) { EMeetingAttendee *ia; - ia = e_meeting_model_find_attendee (priv->model, organizer.value, &row); + ia = e_meeting_store_find_attendee (priv->model, organizer.value, &row); if (ia != NULL) e_meeting_attendee_set_edit_level (ia, E_MEETING_ATTENDEE_EDIT_NONE); } @@ -363,7 +365,7 @@ event_editor_send_comp (CompEditor *editor, CalComponentItipMethod method) CalClient *client; gboolean result; - client = e_meeting_model_get_cal_client (priv->model); + client = e_meeting_store_get_cal_client (priv->model); result = itip_send_comp (CAL_COMPONENT_METHOD_CANCEL, comp, client, NULL); g_object_unref((comp)); @@ -498,29 +500,23 @@ forward_cmd (GtkWidget *widget, gpointer data) } static void -model_row_changed_cb (ETableModel *etm, int row, gpointer data) +model_changed (EventEditor *ee) { - EventEditor *ee = EVENT_EDITOR (data); - EventEditorPrivate *priv; - - priv = ee->priv; - - if (!priv->updating) { + if (!ee->priv->updating) { comp_editor_set_changed (COMP_EDITOR (ee), TRUE); comp_editor_set_needs_send (COMP_EDITOR (ee), TRUE); } } static void -row_count_changed_cb (ETableModel *etm, int row, int count, gpointer data) +model_row_change_insert_cb (GtkTreeModel *model, GtkTreePath *path, GtkTreeIter *iter, gpointer data) { - EventEditor *ee = EVENT_EDITOR (data); - EventEditorPrivate *priv; - - priv = ee->priv; - - if (!priv->updating) { - comp_editor_set_changed (COMP_EDITOR (ee), TRUE); - comp_editor_set_needs_send (COMP_EDITOR (ee), TRUE); - } + model_changed (EVENT_EDITOR (data)); } + +static void +model_row_delete_cb (GtkTreeModel *model, GtkTreePath *path, gpointer data) +{ + model_changed (EVENT_EDITOR (data)); +} + diff --git a/calendar/gui/dialogs/meeting-page.c b/calendar/gui/dialogs/meeting-page.c index e603978520..6c8212e93c 100644 --- a/calendar/gui/dialogs/meeting-page.c +++ b/calendar/gui/dialogs/meeting-page.c @@ -34,10 +34,7 @@ #include <libgnome/gnome-i18n.h> #include <glade/glade.h> #include <libgnomeui/gnome-stock-icons.h> -#include <gal/e-table/e-cell-combo.h> -#include <gal/e-table/e-cell-text.h> -#include <gal/e-table/e-table-simple.h> -#include <gal/e-table/e-table-scrolled.h> +#include <gal/util/e-util.h> #include <gal/widgets/e-unicode.h> #include <gal/widgets/e-popup-menu.h> #include <gal/widgets/e-gui-utils.h> @@ -47,27 +44,13 @@ #include "../calendar-component.h" #include "../e-meeting-attendee.h" -#include "../e-meeting-model.h" +#include "../e-meeting-store.h" +#include "../e-meeting-list-view.h" #include "../itip-utils.h" #include "comp-editor-util.h" #include "e-delegate-dialog.h" #include "meeting-page.h" - - -enum columns { - MEETING_ATTENDEE_COL, - MEETING_MEMBER_COL, - MEETING_TYPE_COL, - MEETING_ROLE_COL, - MEETING_RSVP_COL, - MEETING_DELTO_COL, - MEETING_DELFROM_COL, - MEETING_STATUS_COL, - MEETING_CN_COL, - MEETING_LANG_COL, - MEETING_COLUMN_COUNT -}; /* Private part of the MeetingPage structure */ struct _MeetingPagePrivate { @@ -94,9 +77,9 @@ struct _MeetingPagePrivate { GtkWidget *existing_organizer_btn; GtkWidget *invite; - /* E Table stuff */ - EMeetingModel *model; - ETableScrolled *etable; + /* ListView stuff */ + EMeetingStore *model; + EMeetingListView *list_view; gint row; /* For handling who the organizer is */ @@ -116,8 +99,6 @@ static void meeting_page_focus_main_widget (CompEditorPage *page); static void meeting_page_fill_widgets (CompEditorPage *page, CalComponent *comp); static gboolean meeting_page_fill_component (CompEditorPage *page, CalComponent *comp); -static gint right_click_cb (ETable *etable, gint row, gint col, GdkEvent *event, gpointer data); - static CompEditorPageClass *parent_class = NULL; @@ -178,7 +159,7 @@ meeting_page_init (MeetingPage *mpage) priv->invite = NULL; priv->model = NULL; - priv->etable = NULL; + priv->list_view = NULL; priv->updating = FALSE; } @@ -377,14 +358,12 @@ meeting_page_fill_widgets (CompEditorPage *page, CalComponent *comp) page->client, CAL_STATIC_CAPABILITY_ORGANIZER_NOT_EMAIL_ADDRESS)) gtk_widget_hide (priv->existing_organizer_btn); - e_meeting_model_etable_click_to_add (priv->model, TRUE); } else { if (cal_client_get_static_capability ( page->client, CAL_STATIC_CAPABILITY_ORGANIZER_NOT_EMAIL_ADDRESS)) gtk_widget_hide (priv->existing_organizer_btn); gtk_widget_hide (priv->invite); - e_meeting_model_etable_click_to_add (priv->model, FALSE); } if (organizer.cn != NULL) @@ -401,7 +380,7 @@ meeting_page_fill_widgets (CompEditorPage *page, CalComponent *comp) a = get_current_account (mpage); if (a != NULL) { - priv->ia = e_meeting_model_add_attendee_with_defaults (priv->model); + priv->ia = e_meeting_store_add_attendee_with_defaults (priv->model); g_object_ref (priv->ia); e_meeting_attendee_set_address (priv->ia, g_strdup_printf ("MAILTO:%s", a->id->address)); @@ -453,12 +432,12 @@ meeting_page_fill_component (CompEditorPage *page, CalComponent *comp) g_free (addr); } - if (e_meeting_model_count_actual_attendees (priv->model) < 1) { + if (e_meeting_store_count_actual_attendees (priv->model) < 1) { e_notice (page, GTK_MESSAGE_ERROR, _("At least one attendee is required.")); return FALSE; } - set_attendees (comp, e_meeting_model_get_attendees (priv->model)); + set_attendees (comp, e_meeting_store_get_attendees (priv->model)); return TRUE; } @@ -535,10 +514,10 @@ org_changed_cb (GtkWidget *widget, gpointer data) e_meeting_attendee_set_address (priv->ia, g_strdup_printf ("MAILTO:%s", a->id->address)); e_meeting_attendee_set_cn (priv->ia, g_strdup (a->id->name)); - if (!e_meeting_model_find_attendee (priv->model, e_meeting_attendee_get_address (priv->ia), NULL)) - e_meeting_model_add_attendee (priv->model, priv->ia); + if (!e_meeting_store_find_attendee (priv->model, e_meeting_attendee_get_address (priv->ia), NULL)) + e_meeting_store_add_attendee (priv->model, priv->ia); } else { - e_meeting_model_remove_attendee (priv->model, priv->ia); + e_meeting_store_remove_attendee (priv->model, priv->ia); } } @@ -558,7 +537,6 @@ change_clicked_cb (GtkWidget *widget, gpointer data) gtk_widget_show (priv->organizer_table); gtk_widget_hide (priv->existing_organizer_table); gtk_widget_show (priv->invite); - e_meeting_model_etable_click_to_add (priv->model, TRUE); comp_editor_page_notify_needs_send (COMP_EDITOR_PAGE (mpage)); @@ -575,7 +553,7 @@ invite_cb (GtkWidget *widget, gpointer data) mpage = MEETING_PAGE (data); priv = mpage->priv; - e_meeting_model_invite_others_dialog (priv->model); + e_meeting_list_view_invite_others_dialog (priv->list_view); } /* Hooks the widget signals */ @@ -598,67 +576,6 @@ init_widgets (MeetingPage *mpage) G_CALLBACK (invite_cb), mpage); } -#if 0 -static void -popup_delegate_cb (GtkWidget *widget, gpointer data) -{ - MeetingPage *mpage = MEETING_PAGE (data); - MeetingPagePrivate *priv; - EDelegateDialog *edd; - GtkWidget *dialog; - EMeetingAttendee *ia; - char *address = NULL, *name = NULL; - - priv = mpage->priv; - - ia = e_meeting_model_find_attendee_at_row (priv->model, priv->row); - - /* Show dialog. */ - edd = e_delegate_dialog_new (NULL, itip_strip_mailto (e_meeting_attendee_get_delto (ia))); - dialog = e_delegate_dialog_get_toplevel (edd); - - if (gtk_dialog_run (GTK_DIALOG (dialog)) == GTK_RESPONSE_OK){ - EMeetingAttendee *ic; - - name = e_delegate_dialog_get_delegate_name (edd); - address = e_delegate_dialog_get_delegate (edd); - - /* Make sure we can add the new delegatee person */ - if (e_meeting_model_find_attendee (priv->model, address, NULL) != NULL) { - e_notice (mpage, GTK_MESSAGE_ERROR, - _("That person is already attending the meeting!")); - goto cleanup; - } - - /* Update information for attendee */ - if (e_meeting_attendee_is_set_delto (ia)) { - EMeetingAttendee *ib; - - ib = e_meeting_model_find_attendee (priv->model, itip_strip_mailto (e_meeting_attendee_get_delto (ia)), NULL); - if (ib != NULL) { - g_object_ref((ib)); - g_ptr_array_add (priv->deleted_attendees, ib); - - e_meeting_model_remove_attendee (priv->model, ib); - } - } - e_meeting_attendee_set_delto (ia, g_strdup_printf ("MAILTO:%s", address)); - - /* Construct delegatee information */ - ic = e_meeting_model_add_attendee_with_defaults (priv->model); - - e_meeting_attendee_set_address (ic, g_strdup_printf ("MAILTO:%s", address)); - e_meeting_attendee_set_delfrom (ic, g_strdup (e_meeting_attendee_get_address (ia))); - e_meeting_attendee_set_cn (ic, g_strdup (name)); - } - - cleanup: - g_free (name); - g_free (address); - g_object_unref((edd)); -} -#endif - static void popup_delete_cb (GtkWidget *widget, gpointer data) { @@ -669,7 +586,7 @@ popup_delete_cb (GtkWidget *widget, gpointer data) priv = mpage->priv; - ia = e_meeting_model_find_attendee_at_row (priv->model, priv->row); + ia = e_meeting_store_find_attendee_at_row (priv->model, priv->row); /* If the user deletes the attendee explicitly, assume they no longer want the organizer showing up */ @@ -682,7 +599,7 @@ popup_delete_cb (GtkWidget *widget, gpointer data) if (e_meeting_attendee_is_set_delfrom (ia)) { EMeetingAttendee *ib; - ib = e_meeting_model_find_attendee (priv->model, e_meeting_attendee_get_delfrom (ia), &pos); + ib = e_meeting_store_find_attendee (priv->model, e_meeting_attendee_get_delfrom (ia), &pos); if (ib != NULL) { e_meeting_attendee_set_delto (ib, NULL); e_meeting_attendee_set_edit_level (ib, E_MEETING_ATTENDEE_EDIT_FULL); @@ -695,10 +612,10 @@ popup_delete_cb (GtkWidget *widget, gpointer data) g_object_ref((ia)); g_ptr_array_add (priv->deleted_attendees, ia); - e_meeting_model_remove_attendee (priv->model, ia); + e_meeting_store_remove_attendee (priv->model, ia); if (e_meeting_attendee_get_delto (ia) != NULL) - ib = e_meeting_model_find_attendee (priv->model, e_meeting_attendee_get_delto (ia), NULL); + ib = e_meeting_store_find_attendee (priv->model, e_meeting_attendee_get_delto (ia), NULL); ia = ib; } } @@ -719,6 +636,8 @@ static EPopupMenu context_menu[] = { E_POPUP_TERMINATOR }; +#if 0 +/* FIXME: handle context menu for treeview */ /* handle context menu over message-list */ static gint right_click_cb (ETable *etable, gint row, gint col, GdkEvent *event, gpointer data) @@ -752,26 +671,12 @@ right_click_cb (ETable *etable, gint row, gint col, GdkEvent *event, gpointer da return TRUE; } - +#endif - -/* Callback used when the ETable gets a focus-out event. We have to commit any - * pending click-to-add state for if the event editor is being destroyed. - */ -static gint -table_canvas_focus_out_cb (GtkWidget *widget, GdkEventFocus *event, gpointer data) +static void +add_btn_clicked_cb (GtkButton *btn, MeetingPage *mpage) { - MeetingPage *mpage; - MeetingPagePrivate *priv; - ETable *etable; - - mpage = MEETING_PAGE (data); - priv = mpage->priv; - - etable = e_table_scrolled_get_table (priv->etable); - - e_table_commit_click_to_add (etable); - return TRUE; + e_meeting_store_add_attendee_with_defaults (mpage->priv->model); } /** @@ -784,16 +689,15 @@ table_canvas_focus_out_cb (GtkWidget *widget, GdkEventFocus *event, gpointer dat * be created. **/ MeetingPage * -meeting_page_construct (MeetingPage *mpage, EMeetingModel *emm, +meeting_page_construct (MeetingPage *mpage, EMeetingStore *ems, CalClient *client) { MeetingPagePrivate *priv; - ETable *real_table; - gchar *filename; const char *backend_address; EIterator *it; EAccount *def_account; GList *address_strings = NULL, *l; + GtkWidget *sw, *btn; priv = mpage->priv; @@ -849,25 +753,27 @@ meeting_page_construct (MeetingPage *mpage, EMeetingModel *emm, g_free (l->data); g_list_free (address_strings); - /* The etable displaying attendees and their status */ - g_object_ref((emm)); - priv->model = emm; + g_object_ref((ems)); + priv->model = ems; + + btn = gtk_button_new_with_label ("Add Attendee"); + g_signal_connect(btn, "clicked", G_CALLBACK (add_btn_clicked_cb), mpage); + gtk_widget_show (btn); + gtk_box_pack_start (GTK_BOX (priv->main), btn, FALSE, FALSE, 6); - filename = g_strdup_printf ("%s/config/et-header-meeting-page", evolution_dir); - priv->etable = e_meeting_model_etable_from_model (priv->model, - EVOLUTION_ETSPECDIR "/meeting-page.etspec", - filename); - g_free (filename); + priv->list_view = e_meeting_list_view_new (priv->model); - real_table = e_table_scrolled_get_table (priv->etable); +#if 0 + /* FIXME: handle context menu for treeview */ g_signal_connect((real_table), "right_click", G_CALLBACK (right_click_cb), mpage); +#endif - g_signal_connect((real_table->table_canvas), "focus_out_event", - G_CALLBACK (table_canvas_focus_out_cb), mpage); - - gtk_widget_show (GTK_WIDGET (priv->etable)); - gtk_box_pack_start (GTK_BOX (priv->main), GTK_WIDGET (priv->etable), TRUE, TRUE, 6); + gtk_widget_show (GTK_WIDGET (priv->list_view)); + sw = gtk_scrolled_window_new (NULL, NULL); + gtk_widget_show (sw); + gtk_container_add (GTK_CONTAINER (sw), GTK_WIDGET (priv->list_view)); + gtk_box_pack_start (GTK_BOX (priv->main), sw, TRUE, TRUE, 6); /* Init the widget signals */ init_widgets (mpage); @@ -884,12 +790,12 @@ meeting_page_construct (MeetingPage *mpage, EMeetingModel *emm, * not be created. **/ MeetingPage * -meeting_page_new (EMeetingModel *emm, CalClient *client) +meeting_page_new (EMeetingStore *ems, CalClient *client) { MeetingPage *mpage; mpage = g_object_new (TYPE_MEETING_PAGE, NULL); - if (!meeting_page_construct (mpage, emm, client)) { + if (!meeting_page_construct (mpage, ems, client)) { g_object_unref((mpage)); return NULL; } diff --git a/calendar/gui/dialogs/meeting-page.etspec b/calendar/gui/dialogs/meeting-page.etspec deleted file mode 100644 index 96bc480fe9..0000000000 --- a/calendar/gui/dialogs/meeting-page.etspec +++ /dev/null @@ -1,21 +0,0 @@ -<ETableSpecification click-to-add="true" click-to-add-end="true" _click-to-add-message="Click here to add an attendee" draw-grid="true"> - <ETableColumn model_col= "0" _title="Attendee" expansion="2.0" minimum_width="10" resizable="true" cell="string" compare="string"/> - <ETableColumn model_col= "1" _title="Member" expansion="2.0" minimum_width="10" resizable="true" cell="string" compare="string"/> - <ETableColumn model_col= "2" _title="Type" expansion="1.0" minimum_width="10" resizable="true" cell="typeedit" compare="string"/> - <ETableColumn model_col= "3" _title="Role" expansion="1.0" minimum_width="10" resizable="true" cell="roleedit" compare="string"/> - <ETableColumn model_col= "4" _title="RSVP" expansion="1.0" minimum_width="10" resizable="true" cell="rsvpedit" compare="string"/> - <ETableColumn model_col= "5" _title="Delegated To" expansion="2.0" minimum_width="10" resizable="true" cell="string" compare="string"/> - <ETableColumn model_col= "6" _title="Delegated From" expansion="2.0" minimum_width="10" resizable="true" cell="string" compare="string"/> - <ETableColumn model_col= "7" _title="Status" expansion="1.0" minimum_width="10" resizable="true" cell="statusedit" compare="string"/> - <ETableColumn model_col= "8" _title="Common Name" expansion="2.0" minimum_width="10" resizable="true" cell="string" compare="string"/> - <ETableColumn model_col= "9" _title="Language" expansion="2.0" minimum_width="10" resizable="true" cell="string" compare="string"/> - - <ETableState> - <column source="0"/> - <column source="2"/> - <column source="3"/> - <column source="4"/> - <column source="7"/> - <grouping></grouping> - </ETableState> -</ETableSpecification> diff --git a/calendar/gui/dialogs/meeting-page.h b/calendar/gui/dialogs/meeting-page.h index 2a209b586b..5891189810 100644 --- a/calendar/gui/dialogs/meeting-page.h +++ b/calendar/gui/dialogs/meeting-page.h @@ -24,7 +24,7 @@ #ifndef MEETING_PAGE_H #define MEETING_PAGE_H -#include "../e-meeting-model.h" +#include "../e-meeting-store.h" #include "../itip-utils.h" #include "comp-editor-page.h" @@ -54,9 +54,9 @@ typedef struct { GtkType meeting_page_get_type (void); MeetingPage *meeting_page_construct (MeetingPage *mpage, - EMeetingModel *emm, + EMeetingStore *ems, CalClient *client); -MeetingPage *meeting_page_new (EMeetingModel *emm, +MeetingPage *meeting_page_new (EMeetingStore *ems, CalClient *client); CalComponent *meeting_page_get_cancel_comp (MeetingPage *mpage); diff --git a/calendar/gui/dialogs/schedule-page.c b/calendar/gui/dialogs/schedule-page.c index 2163d51f1e..8cad77360b 100644 --- a/calendar/gui/dialogs/schedule-page.c +++ b/calendar/gui/dialogs/schedule-page.c @@ -60,7 +60,7 @@ struct _SchedulePagePrivate { GtkWidget *main; /* Model */ - EMeetingModel *model; + EMeetingStore *model; /* Selector */ EMeetingTimeSelector *sel; @@ -164,7 +164,7 @@ schedule_page_finalize (GObject *object) priv->xml = NULL; } - g_object_unref((priv->model)); + g_object_unref(priv->model); g_free (priv); spage->priv = NULL; @@ -251,7 +251,7 @@ update_time (SchedulePage *spage, CalComponentDateTime *start_date, CalComponent if (start_zone != end_zone) { icaltimezone_convert_time (&end_tt, end_zone, start_zone); } - e_meeting_model_set_zone (priv->model, priv->zone); + e_meeting_store_set_zone (priv->model, priv->zone); all_day = (start_tt.is_date && end_tt.is_date) ? TRUE : FALSE; @@ -405,7 +405,7 @@ init_widgets (SchedulePage *spage) * be created. **/ SchedulePage * -schedule_page_construct (SchedulePage *spage, EMeetingModel *emm) +schedule_page_construct (SchedulePage *spage, EMeetingStore *ems) { SchedulePagePrivate *priv; @@ -426,11 +426,11 @@ schedule_page_construct (SchedulePage *spage, EMeetingModel *emm) } /* Model */ - g_object_ref((emm)); - priv->model = emm; + g_object_ref (ems); + priv->model = ems; /* Selector */ - priv->sel = E_MEETING_TIME_SELECTOR (e_meeting_time_selector_new (emm)); + priv->sel = E_MEETING_TIME_SELECTOR (e_meeting_time_selector_new (ems)); e_meeting_time_selector_set_working_hours (priv->sel, calendar_config_get_day_start_hour (), calendar_config_get_day_start_minute (), @@ -457,12 +457,12 @@ schedule_page_construct (SchedulePage *spage, EMeetingModel *emm) * not be created. **/ SchedulePage * -schedule_page_new (EMeetingModel *emm) +schedule_page_new (EMeetingStore *ems) { SchedulePage *spage; spage = g_object_new (TYPE_SCHEDULE_PAGE, NULL); - if (!schedule_page_construct (spage, emm)) { + if (!schedule_page_construct (spage, ems)) { g_object_unref((spage)); return NULL; } diff --git a/calendar/gui/dialogs/schedule-page.h b/calendar/gui/dialogs/schedule-page.h index 42745962cd..d4c7eafbdd 100644 --- a/calendar/gui/dialogs/schedule-page.h +++ b/calendar/gui/dialogs/schedule-page.h @@ -21,7 +21,7 @@ #ifndef SCHEDULE_PAGE_H #define SCHEDULE_PAGE_H -#include "../e-meeting-model.h" +#include "../e-meeting-store.h" #include "comp-editor-page.h" G_BEGIN_DECLS @@ -49,8 +49,8 @@ typedef struct { GtkType schedule_page_get_type (void); -SchedulePage *schedule_page_construct (SchedulePage *mpage, EMeetingModel *emm); -SchedulePage *schedule_page_new (EMeetingModel *emm); +SchedulePage *schedule_page_construct (SchedulePage *mpage, EMeetingStore *ems); +SchedulePage *schedule_page_new (EMeetingStore *ems); diff --git a/calendar/gui/dialogs/task-editor.c b/calendar/gui/dialogs/task-editor.c index eaf4c2eaca..4ef971fe85 100644 --- a/calendar/gui/dialogs/task-editor.c +++ b/calendar/gui/dialogs/task-editor.c @@ -26,6 +26,7 @@ #include <config.h> #include <string.h> #include <glade/glade.h> +#include <gal/util/e-util.h> #include <gal/widgets/e-unicode.h> #include <libgnome/gnome-i18n.h> @@ -40,7 +41,7 @@ struct _TaskEditorPrivate { TaskDetailsPage *task_details_page; MeetingPage *meet_page; - EMeetingModel *model; + EMeetingStore *model; gboolean assignment_shown; gboolean updating; @@ -60,8 +61,8 @@ static void refresh_task_cmd (GtkWidget *widget, gpointer data); static void cancel_task_cmd (GtkWidget *widget, gpointer data); static void forward_cmd (GtkWidget *widget, gpointer data); -static void model_row_changed_cb (ETableModel *etm, int row, gpointer data); -static void row_count_changed_cb (ETableModel *etm, int row, int count, gpointer data); +static void model_row_change_insert_cb (GtkTreeModel *model, GtkTreePath *path, GtkTreeIter *iter, gpointer data); +static void model_row_delete_cb (GtkTreeModel *model, GtkTreePath *path, gpointer data); static BonoboUIVerb verbs [] = { BONOBO_UI_UNSAFE_VERB ("ActionAssignTask", assign_task_cmd), @@ -154,12 +155,12 @@ init_widgets (TaskEditor *te) priv = te->priv; - g_signal_connect((priv->model), "model_row_changed", - G_CALLBACK (model_row_changed_cb), te); - g_signal_connect((priv->model), "model_rows_inserted", - G_CALLBACK (row_count_changed_cb), te); - g_signal_connect((priv->model), "model_rows_deleted", - G_CALLBACK (row_count_changed_cb), te); + g_signal_connect((priv->model), "row_changed", + G_CALLBACK (model_row_change_insert_cb), te); + g_signal_connect((priv->model), "row_inserted", + G_CALLBACK (model_row_change_insert_cb), te); + g_signal_connect((priv->model), "row_deleted", + G_CALLBACK (model_row_delete_cb), te); } /* Object initialization function for the task editor */ @@ -171,7 +172,7 @@ task_editor_init (TaskEditor *te) priv = g_new0 (TaskEditorPrivate, 1); te->priv = priv; - priv->model = E_MEETING_MODEL (e_meeting_model_new ()); + priv->model = E_MEETING_STORE (e_meeting_store_new ()); priv->assignment_shown = TRUE; priv->updating = FALSE; @@ -224,7 +225,7 @@ task_editor_set_cal_client (CompEditor *editor, CalClient *client) te = TASK_EDITOR (editor); priv = te->priv; - e_meeting_model_set_cal_client (priv->model, client); + e_meeting_store_set_cal_client (priv->model, client); if (parent_class->set_cal_client) parent_class->set_cal_client (editor, client); @@ -254,7 +255,7 @@ task_editor_edit_comp (CompEditor *editor, CalComponent *comp) cal_component_get_attendee_list (comp, &attendees); /* Clear things up */ - e_meeting_model_remove_all_attendees (priv->model); + e_meeting_store_remove_all_attendees (priv->model); if (attendees == NULL) { comp_editor_remove_page (editor, COMP_EDITOR_PAGE (priv->meet_page)); @@ -276,7 +277,7 @@ task_editor_edit_comp (CompEditor *editor, CalComponent *comp) /* If we aren't the organizer or the attendee is just delegating, don't allow editing */ if (!comp_editor_get_user_org (editor) || e_meeting_attendee_is_set_delto (ia)) e_meeting_attendee_set_edit_level (ia, E_MEETING_ATTENDEE_EDIT_NONE); - e_meeting_model_add_attendee (priv->model, ia); + e_meeting_store_add_attendee (priv->model, ia); g_object_unref(ia); } @@ -293,7 +294,7 @@ task_editor_edit_comp (CompEditor *editor, CalComponent *comp) account = (EAccount*)e_iterator_get(it); - ia = e_meeting_model_find_attendee (priv->model, account->id->address, &row); + ia = e_meeting_store_find_attendee (priv->model, account->id->address, &row); if (ia != NULL) e_meeting_attendee_set_edit_level (ia, E_MEETING_ATTENDEE_EDIT_STATUS); } @@ -301,7 +302,7 @@ task_editor_edit_comp (CompEditor *editor, CalComponent *comp) } else if (cal_client_get_organizer_must_attend (client)) { EMeetingAttendee *ia; - ia = e_meeting_model_find_attendee (priv->model, organizer.value, &row); + ia = e_meeting_store_find_attendee (priv->model, organizer.value, &row); if (ia != NULL) e_meeting_attendee_set_edit_level (ia, E_MEETING_ATTENDEE_EDIT_NONE); } @@ -335,7 +336,7 @@ task_editor_send_comp (CompEditor *editor, CalComponentItipMethod method) CalClient *client; gboolean result; - client = e_meeting_model_get_cal_client (priv->model); + client = e_meeting_store_get_cal_client (priv->model); result = itip_send_comp (CAL_COMPONENT_METHOD_CANCEL, comp, client, NULL); g_object_unref((comp)); @@ -464,29 +465,22 @@ forward_cmd (GtkWidget *widget, gpointer data) } static void -model_row_changed_cb (ETableModel *etm, int row, gpointer data) +model_changed (TaskEditor *te) { - TaskEditor *te = TASK_EDITOR (data); - TaskEditorPrivate *priv; - - priv = te->priv; - - if (!priv->updating) { + if (!te->priv->updating) { comp_editor_set_changed (COMP_EDITOR (te), TRUE); comp_editor_set_needs_send (COMP_EDITOR (te), TRUE); } } static void -row_count_changed_cb (ETableModel *etm, int row, int count, gpointer data) +model_row_change_insert_cb (GtkTreeModel *model, GtkTreePath *path, GtkTreeIter *iter, gpointer data) { - TaskEditor *te = TASK_EDITOR (data); - TaskEditorPrivate *priv; - - priv = te->priv; + model_changed (TASK_EDITOR (data)); +} - if (!priv->updating) { - comp_editor_set_changed (COMP_EDITOR (te), TRUE); - comp_editor_set_needs_send (COMP_EDITOR (te), TRUE); - } +static void +model_row_delete_cb (GtkTreeModel *model, GtkTreePath *path, gpointer data) +{ + model_changed (TASK_EDITOR (data)); } |