aboutsummaryrefslogtreecommitdiffstats
path: root/calendar/gui/dialogs
diff options
context:
space:
mode:
authorMike Kestner <mkestner@ximian.com>2003-10-01 06:39:04 +0800
committerMike Kestner <mkestner@src.gnome.org>2003-10-01 06:39:04 +0800
commit54869d90bd04f0a816b1786530d3555ac2b034cc (patch)
tree3b2859280d478fa6b57227a419125eadd455a615 /calendar/gui/dialogs
parent642e0e5abd8486793e95fab56e9fd9f3dd0394f8 (diff)
downloadgsoc2013-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.am5
-rw-r--r--calendar/gui/dialogs/event-editor.c62
-rw-r--r--calendar/gui/dialogs/meeting-page.c182
-rw-r--r--calendar/gui/dialogs/meeting-page.etspec21
-rw-r--r--calendar/gui/dialogs/meeting-page.h6
-rw-r--r--calendar/gui/dialogs/schedule-page.c18
-rw-r--r--calendar/gui/dialogs/schedule-page.h6
-rw-r--r--calendar/gui/dialogs/task-editor.c58
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));
}