[evolution-patches] patch for some UI changes in [calendar/tasks]
- From: pchenthill <pchenthill novell com>
- To: evolution-patches ximian com
- Subject: [evolution-patches] patch for some UI changes in [calendar/tasks]
- Date: Mon, 29 Nov 2004 16:21:42 +0530
Hi,
Have attached the patch which does the following
1) Set the Title for the appointment editor as "Meeting" if a New
meeting or an existing one is opened. Similarly set the Title for the
task editor as "Assigned Task".
2) Open the assigned task in the tasks page instead of opening it in the
meeting page.
3) Construct the Meeting Page only for assigned tasks.
thanks, chenthill.
? .ChangeLog.swp
? .patch.swp
? patch
? patch_editor.diff
? patch_editors.diff
? gui/.e-calendar-table.c.swp
? gui/diff
? gui/dialogs/.comp-editor.c.swp
? gui/dialogs/.task-editor.c.swp
? gui/dialogs/.task-page.h.swp
? gui/dialogs/diff
? gui/dialogs/event-page.gladep
? gui/dialogs/send-options.gladep
? gui/dialogs/task-page.gladep
Index: ChangeLog
===================================================================
RCS file: /cvs/gnome/evolution/calendar/ChangeLog,v
retrieving revision 1.2570
diff -u -p -r1.2570 ChangeLog
--- ChangeLog 29 Nov 2004 09:03:43 -0000 1.2570
+++ ChangeLog 29 Nov 2004 10:26:40 -0000
@@ -1,4 +1,29 @@
2004-11-29 Chenthill Palanisamy <pchenthill novell com>
+
+ * gui/task-editor.[ch] (task_editor_new), (task_editor_construct):
+ Add a boolean variable to denote assigned task and construct the
+ meeting page only for the assigned task. Set it as a group item
+ in component editor.
+ (_TaskEditorPrivate): added the boolean variable (is_assigned).
+ (task_editor_init): initialized the variable.
+ * gui/comp-editor.[ch]: Added functions to set and get whether comp
+ is a group item or individual item.
+ * gui/comp-editor.c (make_title_from_string), (make_title_from_comp):
+ Set the Title for the appointment editor window as "Meeting" or "Assigned
+ Task" if its a group calendar/task item.
+ (_CompEditorPrivate): added a boolean variable (is_group_item).
+ (comp_editor_init): initialized the same.
+ * gui/e-calendar-table.c (e_calendar_table_open_task), (e_calendar_table_open_selected),
+ (open_task_by_row): Check whether the component being opened is an assigned task by
+ checking for attendees and call open_task with proper value for boolean variable assign.
+ * gui/comp-editor-factory.c (edit_existing):
+ * gui/e-calendar-table.c (open_task):
+ * gui/e-tasks.c (e_tasks_new_task):
+ * gui/gnome-cal.c (gnome_calendar_new_task):
+ * gui/tasks-component.c (create_new_todo):
+ Called the function task_editor_new with a added argument.
+
+2004-11-29 Chenthill Palanisamy <pchenthill novell com>
* calendar-errors.xml.h: committng this file. Missed to
commit this one.
Index: gui/comp-editor-factory.c
===================================================================
RCS file: /cvs/gnome/evolution/calendar/gui/comp-editor-factory.c,v
retrieving revision 1.40
diff -u -p -r1.40 comp-editor-factory.c
--- gui/comp-editor-factory.c 19 Oct 2004 16:20:07 -0000 1.40
+++ gui/comp-editor-factory.c 29 Nov 2004 10:26:40 -0000
@@ -273,7 +273,7 @@ edit_existing (OpenClient *oc, const cha
break;
case E_CAL_COMPONENT_TODO:
- editor = COMP_EDITOR (task_editor_new (oc->client));
+ editor = COMP_EDITOR (task_editor_new (oc->client, e_cal_component_has_attendees (comp)));
break;
default:
@@ -323,7 +323,7 @@ edit_new (OpenClient *oc, const GNOME_Ev
comp = cal_comp_event_new_with_current_time (oc->client, TRUE);
break;
case GNOME_Evolution_Calendar_CompEditorFactory_EDITOR_MODE_TODO:
- editor = COMP_EDITOR (task_editor_new (oc->client));
+ editor = COMP_EDITOR (task_editor_new (oc->client, FALSE));
comp = get_default_task (oc->client);
break;
default:
Index: gui/e-calendar-table.c
===================================================================
RCS file: /cvs/gnome/evolution/calendar/gui/e-calendar-table.c,v
retrieving revision 1.128
diff -u -p -r1.128 e-calendar-table.c
--- gui/e-calendar-table.c 28 Oct 2004 09:26:13 -0000 1.128
+++ gui/e-calendar-table.c 29 Nov 2004 10:26:40 -0000
@@ -584,10 +584,12 @@ void
e_calendar_table_open_selected (ECalendarTable *cal_table)
{
ECalModelComponent *comp_data;
+ icalproperty *prop;
comp_data = get_selected_comp (cal_table);
+ prop = icalcomponent_get_first_property (comp_data->icalcomp, ICAL_ATTENDEE_PROPERTY);
if (comp_data != NULL)
- open_task (cal_table, comp_data, FALSE);
+ open_task (cal_table, comp_data, prop ? TRUE : FALSE);
}
/**
@@ -940,7 +942,7 @@ open_task (ECalendarTable *cal_table, EC
if (tedit == NULL) {
ECalComponent *comp;
- tedit = COMP_EDITOR (task_editor_new (comp_data->client));
+ tedit = COMP_EDITOR (task_editor_new (comp_data->client, assign));
comp = e_cal_component_new ();
e_cal_component_set_icalcomponent (comp, icalcomponent_new_clone (comp_data->icalcomp));
@@ -959,9 +961,11 @@ static void
open_task_by_row (ECalendarTable *cal_table, int row)
{
ECalModelComponent *comp_data;
+ icalproperty *prop;
comp_data = e_cal_model_get_component_at (cal_table->model, row);
- open_task (cal_table, comp_data, FALSE);
+ prop = icalcomponent_get_first_property (comp_data->icalcomp, ICAL_ATTENDEE_PROPERTY);
+ open_task (cal_table, comp_data, prop ? TRUE : FALSE);
}
static void
@@ -981,10 +985,12 @@ e_calendar_table_on_open_task (EPopup *e
{
ECalendarTable *cal_table = data;
ECalModelComponent *comp_data;
+ icalproperty *prop;
comp_data = get_selected_comp (cal_table);
+ prop = icalcomponent_get_first_property (comp_data->icalcomp, ICAL_ATTENDEE_PROPERTY);
if (comp_data)
- open_task (cal_table, comp_data, FALSE);
+ open_task (cal_table, comp_data, prop ? TRUE : FALSE);
}
static void
Index: gui/e-tasks.c
===================================================================
RCS file: /cvs/gnome/evolution/calendar/gui/e-tasks.c,v
retrieving revision 1.104
diff -u -p -r1.104 e-tasks.c
--- gui/e-tasks.c 14 Oct 2004 15:53:29 -0000 1.104
+++ gui/e-tasks.c 29 Nov 2004 10:26:40 -0000
@@ -901,7 +901,7 @@ e_tasks_new_task (ETasks *tasks)
category = cal_search_bar_get_category (CAL_SEARCH_BAR (priv->search_bar));
e_cal_component_set_categories (comp, category);
- tedit = task_editor_new (ecal);
+ tedit = task_editor_new (ecal, FALSE);
comp_editor_edit_comp (COMP_EDITOR (tedit), comp);
g_object_unref (comp);
Index: gui/gnome-cal.c
===================================================================
RCS file: /cvs/gnome/evolution/calendar/gui/gnome-cal.c,v
retrieving revision 1.356
diff -u -p -r1.356 gnome-cal.c
--- gui/gnome-cal.c 20 Oct 2004 03:03:30 -0000 1.356
+++ gui/gnome-cal.c 29 Nov 2004 10:26:41 -0000
@@ -2833,7 +2833,7 @@ gnome_calendar_new_task (GnomeCalendar
if (!ecal)
return;
- tedit = task_editor_new (ecal);
+ tedit = task_editor_new (ecal, FALSE);
icalcomp = e_cal_model_create_component_with_defaults (model);
comp = e_cal_component_new ();
Index: gui/tasks-component.c
===================================================================
RCS file: /cvs/gnome/evolution/calendar/gui/tasks-component.c,v
retrieving revision 1.80
diff -u -p -r1.80 tasks-component.c
--- gui/tasks-component.c 28 Oct 2004 09:26:13 -0000 1.80
+++ gui/tasks-component.c 29 Nov 2004 10:26:41 -0000
@@ -791,7 +791,7 @@ create_new_todo (TasksComponent *task_co
if (!ecal)
return FALSE;
- editor = task_editor_new (ecal);
+ editor = task_editor_new (ecal, is_assigned);
comp = cal_comp_task_new_with_defaults (ecal);
comp_editor_edit_comp (COMP_EDITOR (editor), comp);
Index: gui/dialogs/comp-editor.c
===================================================================
RCS file: /cvs/gnome/evolution/calendar/gui/dialogs/comp-editor.c,v
retrieving revision 1.113
diff -u -p -r1.113 comp-editor.c
--- gui/dialogs/comp-editor.c 29 Nov 2004 08:45:59 -0000 1.113
+++ gui/dialogs/comp-editor.c 29 Nov 2004 10:26:41 -0000
@@ -76,6 +76,7 @@ struct _CompEditorPrivate {
gboolean existing_org;
gboolean user_org;
+ gboolean is_group_item;
gboolean warned;
};
@@ -358,16 +359,16 @@ response_cb (GtkWidget *widget, int resp
if (e_cal_component_is_instance (priv->comp))
if (!recur_component_dialog (priv->client, priv->comp, &priv->mod, GTK_WINDOW (editor)))
return;
-
+
if (save_comp_with_send (editor)) {
-
+
e_cal_component_get_summary (priv->comp, &text);
if (!text.value) {
if (!send_component_prompt_subject ((GtkWindow *) editor, priv->client, priv->comp))
return;
}
- close_dialog (editor);
+ close_dialog (editor);
}
break;
@@ -421,6 +422,7 @@ comp_editor_init (CompEditor *editor)
priv->existing_org = FALSE;
priv->user_org = FALSE;
priv->warned = FALSE;
+ priv->is_group_item = FALSE;
gtk_window_set_type_hint (GTK_WINDOW (editor), GDK_WINDOW_TYPE_HINT_NORMAL);
}
@@ -578,6 +580,31 @@ comp_editor_get_user_org (CompEditor *ed
return priv->user_org;
}
+void
+comp_editor_set_group_item (CompEditor *editor, gboolean group_item)
+{
+ CompEditorPrivate *priv;
+
+ g_return_if_fail (editor != NULL);
+ g_return_if_fail (IS_COMP_EDITOR (editor));
+
+ priv = editor->priv;
+
+ priv->is_group_item = group_item;
+}
+
+gboolean
+comp_editor_get_is_group_item (CompEditor *editor)
+{
+ CompEditorPrivate *priv;
+
+ g_return_val_if_fail (editor != NULL, FALSE);
+ g_return_val_if_fail (IS_COMP_EDITOR (editor), FALSE);
+
+ priv = editor->priv;
+
+ return priv->is_group_item;
+}
/**
* comp_editor_set_changed:
@@ -861,7 +888,7 @@ comp_editor_get_e_cal (CompEditor *edito
/* Creates an appropriate title for the event editor dialog */
static char *
-make_title_from_comp (ECalComponent *comp)
+make_title_from_comp (ECalComponent *comp, gboolean is_group_item)
{
char *title;
const char *type_string;
@@ -874,10 +901,16 @@ make_title_from_comp (ECalComponent *com
type = e_cal_component_get_vtype (comp);
switch (type) {
case E_CAL_COMPONENT_EVENT:
- type_string = _("Appointment - %s");
+ if (is_group_item)
+ type_string = _("Meeting - %s");
+ else
+ type_string = _("Appointment - %s");
break;
case E_CAL_COMPONENT_TODO:
- type_string = _("Task - %s");
+ if (is_group_item)
+ type_string = _("Assigned Task - %s");
+ else
+ type_string = _("Task - %s");
break;
case E_CAL_COMPONENT_JOURNAL:
type_string = _("Journal entry - %s");
@@ -899,7 +932,7 @@ make_title_from_comp (ECalComponent *com
/* Creates an appropriate title for the event editor dialog */
static char *
-make_title_from_string (ECalComponent *comp, const char *str)
+make_title_from_string (ECalComponent *comp, const char *str, gboolean is_group_item)
{
char *title;
const char *type_string;
@@ -911,10 +944,16 @@ make_title_from_string (ECalComponent *c
type = e_cal_component_get_vtype (comp);
switch (type) {
case E_CAL_COMPONENT_EVENT:
- type_string = _("Appointment - %s");
+ if (is_group_item)
+ type_string = _("Meeting - %s");
+ else
+ type_string = _("Appointment - %s");
break;
case E_CAL_COMPONENT_TODO:
- type_string = _("Task - %s");
+ if (is_group_item)
+ type_string = _("Assigned Task - %s");
+ else
+ type_string = _("Task - %s");
break;
case E_CAL_COMPONENT_JOURNAL:
type_string = _("Journal entry - %s");
@@ -962,7 +1001,7 @@ set_title_from_comp (CompEditor *editor)
char *title;
priv = editor->priv;
- title = make_title_from_comp (priv->comp);
+ title = make_title_from_comp (priv->comp, priv->is_group_item);
gtk_window_set_title (GTK_WINDOW (editor), title);
g_free (title);
}
@@ -974,7 +1013,7 @@ set_title_from_string (CompEditor *edito
char *title;
priv = editor->priv;
- title = make_title_from_string (priv->comp, str);
+ title = make_title_from_string (priv->comp, str, priv->is_group_item);
gtk_window_set_title (GTK_WINDOW (editor), title);
g_free (title);
}
Index: gui/dialogs/comp-editor.h
===================================================================
RCS file: /cvs/gnome/evolution/calendar/gui/dialogs/comp-editor.h,v
retrieving revision 1.22
diff -u -p -r1.22 comp-editor.h
--- gui/dialogs/comp-editor.h 22 Jun 2004 22:35:41 -0000 1.22
+++ gui/dialogs/comp-editor.h 29 Nov 2004 10:26:41 -0000
@@ -68,6 +68,9 @@ gboolean comp_editor_get_existing_o
void comp_editor_set_user_org (CompEditor *editor,
gboolean user_org);
gboolean comp_editor_get_user_org (CompEditor *editor);
+void comp_editor_set_group_item (CompEditor *editor,
+ gboolean is_group_item);
+gboolean comp_editor_get_group_item (CompEditor *editor);
void comp_editor_append_page (CompEditor *editor,
CompEditorPage *page,
const char *label);
Index: gui/dialogs/event-editor.c
===================================================================
RCS file: /cvs/gnome/evolution/calendar/gui/dialogs/event-editor.c,v
retrieving revision 1.50
diff -u -p -r1.50 event-editor.c
--- gui/dialogs/event-editor.c 25 Nov 2004 08:08:02 -0000 1.50
+++ gui/dialogs/event-editor.c 29 Nov 2004 10:26:42 -0000
@@ -147,6 +147,7 @@ event_editor_construct (EventEditor *ee,
_("Recurrence"));
if (priv->is_meeting) {
+ comp_editor_set_group_item (COMP_EDITOR (ee), TRUE);
priv->sched_page = schedule_page_new (priv->model);
g_object_ref (priv->sched_page);
gtk_object_sink (GTK_OBJECT (priv->sched_page));
@@ -359,6 +360,7 @@ show_meeting (EventEditor *ee)
priv = ee->priv;
+
if (!priv->meeting_shown) {
comp_editor_append_page (COMP_EDITOR (ee),
COMP_EDITOR_PAGE (priv->sched_page),
Index: gui/dialogs/task-editor.c
===================================================================
RCS file: /cvs/gnome/evolution/calendar/gui/dialogs/task-editor.c,v
retrieving revision 1.75
diff -u -p -r1.75 task-editor.c
--- gui/dialogs/task-editor.c 14 Oct 2004 14:22:12 -0000 1.75
+++ gui/dialogs/task-editor.c 29 Nov 2004 10:26:42 -0000
@@ -45,6 +45,7 @@ struct _TaskEditorPrivate {
EMeetingStore *model;
gboolean assignment_shown;
+ gboolean is_assigned;
gboolean updating;
};
@@ -115,16 +116,18 @@ task_editor_init (TaskEditor *te)
priv->model = E_MEETING_STORE (e_meeting_store_new ());
priv->assignment_shown = TRUE;
priv->updating = FALSE;
+ priv->is_assigned = FALSE;
}
TaskEditor *
-task_editor_construct (TaskEditor *te, ECal *client)
+task_editor_construct (TaskEditor *te, ECal *client, gboolean is_assigned)
{
TaskEditorPrivate *priv;
priv = te->priv;
+ priv->is_assigned = is_assigned;
priv->task_page = task_page_new ();
g_object_ref (priv->task_page);
gtk_object_sink (GTK_OBJECT (priv->task_page));
@@ -140,13 +143,15 @@ task_editor_construct (TaskEditor *te, E
comp_editor_append_page (COMP_EDITOR (te),
COMP_EDITOR_PAGE (priv->task_details_page),
_("Status"));
-
- priv->meet_page = meeting_page_new (priv->model, client);
- g_object_ref (priv->meet_page);
- gtk_object_sink (GTK_OBJECT (priv->meet_page));
- comp_editor_append_page (COMP_EDITOR (te),
- COMP_EDITOR_PAGE (priv->meet_page),
- _("Assignment"));
+ if (priv->is_assigned) {
+ comp_editor_set_group_item (COMP_EDITOR (te), TRUE);
+ priv->meet_page = meeting_page_new (priv->model, client);
+ g_object_ref (priv->meet_page);
+ gtk_object_sink (GTK_OBJECT (priv->meet_page));
+ comp_editor_append_page (COMP_EDITOR (te),
+ COMP_EDITOR_PAGE (priv->meet_page),
+ _("Assignment"));
+ }
comp_editor_set_e_cal (COMP_EDITOR (te), client);
@@ -245,7 +250,9 @@ task_editor_edit_comp (CompEditor *edito
if (ia != NULL)
e_meeting_attendee_set_edit_level (ia, E_MEETING_ATTENDEE_EDIT_NONE);
}
-
+
+
+ comp_editor_set_group_item (COMP_EDITOR (te), TRUE);
priv->assignment_shown = TRUE;
}
e_cal_component_free_attendee_list (attendees);
@@ -324,12 +331,12 @@ task_editor_finalize (GObject *object)
* editor could not be created.
**/
TaskEditor *
-task_editor_new (ECal *client)
+task_editor_new (ECal *client, gboolean is_assigned)
{
TaskEditor *te;
te = g_object_new (TYPE_TASK_EDITOR, NULL);
- return task_editor_construct (te, client);
+ return task_editor_construct (te, client, is_assigned);
}
static void
@@ -349,8 +356,6 @@ show_assignment (TaskEditor *te)
comp_editor_set_changed (COMP_EDITOR (te), TRUE);
}
- comp_editor_show_page (COMP_EDITOR (te),
- COMP_EDITOR_PAGE (priv->meet_page));
}
void
Index: gui/dialogs/task-editor.h
===================================================================
RCS file: /cvs/gnome/evolution/calendar/gui/dialogs/task-editor.h,v
retrieving revision 1.14
diff -u -p -r1.14 task-editor.h
--- gui/dialogs/task-editor.h 7 Nov 2003 05:52:08 -0000 1.14
+++ gui/dialogs/task-editor.h 29 Nov 2004 10:26:42 -0000
@@ -53,8 +53,8 @@ struct _TaskEditorClass {
GtkType task_editor_get_type (void);
TaskEditor *task_editor_construct (TaskEditor *te,
- ECal *client);
-TaskEditor *task_editor_new (ECal *client);
+ ECal *client, gboolean is_assigned);
+TaskEditor *task_editor_new (ECal *client, gboolean is_assigned);
void task_editor_show_assignment(TaskEditor *te);
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]