Fixes:248126 Added 2 Bonobo UI verbs for Assign Task and Forward as

2005-07-25  Viren.l  <lviren@novel.com>

Fixes:248126
* gui/tasks-control.c (tasks_control_assign_cmd)
(tasks_control_forward_cmd): Added 2 Bonobo UI verbs for Assign Task and Forward as iCalendar
and the definitions to commands.
* gui/e-calendar-table.[ch] (e_calendar_table_open_task)
(e_calendar_table_get_selected_comp): renamed static functions open_task and get_selected_comp
and made them public.

svn path=/trunk/; revision=29881
This commit is contained in:
Viren.l
2005-07-25 07:53:18 +00:00
committed by Chenthill Palanisamy
parent dca96e14dd
commit bd035bcd8c
6 changed files with 107 additions and 20 deletions

View File

@ -1,3 +1,13 @@
2005-07-25 Viren.l <lviren@novel.com>
Fixes:248126
* gui/tasks-control.c (tasks_control_assign_cmd)
(tasks_control_forward_cmd): Added 2 Bonobo UI verbs for Assign Task and Forward as iCalendar
and the definitions to commands.
* gui/e-calendar-table.[ch] (e_calendar_table_open_task)
(e_calendar_table_get_selected_comp): renamed static functions open_task and get_selected_comp
and made them public.
2005-07-23 Chenthill Palanisamy <pchenthill@novell.com>
* gui/e-cal-popup.[ch]: (needs_to_accept),

View File

@ -88,8 +88,6 @@ static gint e_calendar_table_on_key_press (ETable *table,
static struct tm e_calendar_table_get_current_time (ECellDateEdit *ecde,
gpointer data);
static void mark_row_complete_cb (int model_row, gpointer data);
static ECalModelComponent *get_selected_comp (ECalendarTable *cal_table);
static void open_task (ECalendarTable *cal_table, ECalModelComponent *comp_data, gboolean assign);
/* Signal IDs */
enum {
@ -594,7 +592,7 @@ e_calendar_table_open_selected (ECalendarTable *cal_table)
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, prop ? TRUE : FALSE);
e_calendar_table_open_task (cal_table, comp_data, prop ? TRUE : FALSE);
}
/**
@ -630,8 +628,8 @@ get_selected_row_cb (int model_row, gpointer data)
/* Returns the component that is selected in the table; only works if there is
* one and only one selected row.
*/
static ECalModelComponent *
get_selected_comp (ECalendarTable *cal_table)
ECalModelComponent *
e_calendar_table_get_selected_comp (ECalendarTable *cal_table)
{
ETable *etable;
int row;
@ -732,7 +730,7 @@ e_calendar_table_delete_selected (ECalendarTable *cal_table)
return;
if (n_selected == 1)
comp_data = get_selected_comp (cal_table);
comp_data = e_calendar_table_get_selected_comp (cal_table);
else
comp_data = NULL;
@ -935,8 +933,8 @@ e_calendar_table_paste_clipboard (ECalendarTable *cal_table)
}
/* Opens a task in the task editor */
static void
open_task (ECalendarTable *cal_table, ECalModelComponent *comp_data, gboolean assign)
void
e_calendar_table_open_task (ECalendarTable *cal_table, ECalModelComponent *comp_data, gboolean assign)
{
CompEditor *tedit;
const char *uid;
@ -970,7 +968,7 @@ open_task_by_row (ECalendarTable *cal_table, int row)
comp_data = e_cal_model_get_component_at (cal_table->model, row);
prop = icalcomponent_get_first_property (comp_data->icalcomp, ICAL_ATTENDEE_PROPERTY);
open_task (cal_table, comp_data, prop ? TRUE : FALSE);
e_calendar_table_open_task (cal_table, comp_data, prop ? TRUE : FALSE);
}
static void
@ -992,10 +990,10 @@ e_calendar_table_on_open_task (EPopup *ep, EPopupItem *pitem, void *data)
ECalModelComponent *comp_data;
icalproperty *prop;
comp_data = get_selected_comp (cal_table);
comp_data = e_calendar_table_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, prop ? TRUE : FALSE);
e_calendar_table_open_task (cal_table, comp_data, prop ? TRUE : FALSE);
}
static void
@ -1007,7 +1005,7 @@ e_calendar_table_on_save_as (EPopup *ep, EPopupItem *pitem, void *data)
char *ical_string;
FILE *file;
comp_data = get_selected_comp (cal_table);
comp_data = e_calendar_table_get_selected_comp (cal_table);
if (comp_data == NULL)
return;
@ -1039,7 +1037,7 @@ e_calendar_table_on_print_task (EPopup *ep, EPopupItem *pitem, void *data)
ECalModelComponent *comp_data;
ECalComponent *comp;
comp_data = get_selected_comp (cal_table);
comp_data = e_calendar_table_get_selected_comp (cal_table);
if (comp_data == NULL)
return;
@ -1080,9 +1078,9 @@ e_calendar_table_on_assign (EPopup *ep, EPopupItem *pitem, void *data)
ECalendarTable *cal_table = data;
ECalModelComponent *comp_data;
comp_data = get_selected_comp (cal_table);
comp_data = e_calendar_table_get_selected_comp (cal_table);
if (comp_data)
open_task (cal_table, comp_data, TRUE);
e_calendar_table_open_task (cal_table, comp_data, TRUE);
}
static void
@ -1091,7 +1089,7 @@ e_calendar_table_on_forward (EPopup *ep, EPopupItem *pitem, void *data)
ECalendarTable *cal_table = data;
ECalModelComponent *comp_data;
comp_data = get_selected_comp (cal_table);
comp_data = e_calendar_table_get_selected_comp (cal_table);
if (comp_data) {
ECalComponent *comp;
@ -1132,7 +1130,7 @@ open_url_cb (EPopup *ep, EPopupItem *pitem, void *data)
ECalModelComponent *comp_data;
icalproperty *prop;
comp_data = get_selected_comp (cal_table);
comp_data = e_calendar_table_get_selected_comp (cal_table);
if (!comp_data)
return;

View File

@ -104,6 +104,10 @@ void e_calendar_table_set_activity_handler (ECalendarTable *cal_table,
void e_calendar_table_set_status_message (ECalendarTable *cal_table,
const gchar *message,
int percent);
void e_calendar_table_open_task (ECalendarTable *cal_table,
ECalModelComponent *comp_data,
gboolean assign);
ECalModelComponent * e_calendar_table_get_selected_comp (ECalendarTable *cal_table);
G_END_DECLS

View File

@ -54,6 +54,7 @@
#include "tasks-control.h"
#include "evolution-shell-component-utils.h"
#include "e-util/e-menu.h"
#include "itip-utils.h"
#define FIXED_MARGIN .05
@ -91,8 +92,15 @@ static void tasks_control_print_cmd (BonoboUIComponent *uic,
static void tasks_control_print_preview_cmd (BonoboUIComponent *uic,
gpointer data,
const char *path);
static void tasks_control_assign_cmd (BonoboUIComponent *uic,
gpointer data,
const char *path);
static void tasks_control_forward_cmd (BonoboUIComponent *uic,
gpointer data,
const char *path);
BonoboControl *
tasks_control_new (void)
{
@ -142,6 +150,10 @@ tasks_control_sensitize_commands (BonoboControl *control, ETasks *tasks, int n_s
gboolean read_only = TRUE;
ECal *ecal;
ECalModel *model;
ECalendarTable *cal_table;
ECalModelComponent *comp_data;
icalproperty *prop;
gboolean is_assigned = FALSE;
uic = bonobo_control_get_ui_component (control);
g_assert (uic != NULL);
@ -149,10 +161,20 @@ tasks_control_sensitize_commands (BonoboControl *control, ETasks *tasks, int n_s
if (bonobo_ui_component_get_container (uic) == CORBA_OBJECT_NIL)
return;
model = e_calendar_table_get_model (e_tasks_get_calendar_table (tasks));
cal_table = e_tasks_get_calendar_table (tasks);
model = e_calendar_table_get_model (cal_table);
if (n_selected == 1) {
comp_data = e_calendar_table_get_selected_comp (cal_table);
prop = icalcomponent_get_first_property (comp_data->icalcomp, ICAL_ATTENDEE_PROPERTY);
is_assigned = prop ? TRUE : FALSE;
}
ecal = e_cal_model_get_default_client (model);
if (ecal)
if (ecal)
e_cal_is_read_only (ecal, &read_only, NULL);
bonobo_ui_component_set_prop (uic, "/commands/TasksOpenTask", "sensitive",
n_selected != 1 ? "0" : "1",
@ -175,6 +197,12 @@ tasks_control_sensitize_commands (BonoboControl *control, ETasks *tasks, int n_s
bonobo_ui_component_set_prop (uic, "/commands/TasksPurge", "sensitive",
read_only ? "0" : "1",
NULL);
bonobo_ui_component_set_prop (uic, "/commands/TasksAssign", "sensitive",
(is_assigned || read_only || n_selected != 1) ? "0" : "1",
NULL);
bonobo_ui_component_set_prop (uic, "/commands/TasksForward", "sensitive",
n_selected != 1 ? "0" : "1",
NULL);
}
/* Callback used when the selection in the table changes */
@ -199,7 +227,9 @@ static BonoboUIVerb verbs [] = {
BONOBO_UI_VERB ("TasksPurge", tasks_control_purge_cmd),
BONOBO_UI_VERB ("TasksPrint", tasks_control_print_cmd),
BONOBO_UI_VERB ("TasksPrintPreview", tasks_control_print_preview_cmd),
BONOBO_UI_VERB ("TasksAssign", tasks_control_assign_cmd),
BONOBO_UI_VERB ("TasksForward", tasks_control_forward_cmd),
BONOBO_UI_VERB_END
};
@ -436,3 +466,39 @@ tasks_control_print_preview_cmd (BonoboUIComponent *uic,
print_tasks (tasks, TRUE);
}
static void
tasks_control_assign_cmd (BonoboUIComponent *uic,
gpointer data,
const char *path)
{
ETasks *tasks;
ECalendarTable *cal_table;
ECalModelComponent *comp_data;
tasks = E_TASKS (data);
cal_table = e_tasks_get_calendar_table (tasks);
comp_data = e_calendar_table_get_selected_comp (cal_table);
if (comp_data)
e_calendar_table_open_task (cal_table, comp_data, TRUE);
}
static void
tasks_control_forward_cmd (BonoboUIComponent *uic,
gpointer data,
const char *path)
{
ETasks *tasks;
ECalendarTable *cal_table;
ECalModelComponent *comp_data;
tasks = E_TASKS (data);
cal_table = e_tasks_get_calendar_table (tasks);
comp_data = e_calendar_table_get_selected_comp (cal_table);
if (comp_data) {
ECalComponent *comp;
comp = e_cal_component_new ();
e_cal_component_set_icalcomponent (comp, icalcomponent_new_clone (comp_data->icalcomp));
itip_send_comp (E_CAL_COMPONENT_METHOD_PUBLISH, comp, comp_data->client, NULL, NULL);
g_object_unref (comp);
}
}

View File

@ -1,3 +1,8 @@
2005-07-25 Viren.l <lviren@novell.com>
* evolution-tasks.xml: Added 2 submenus under action menu.
Fixes #248126
2005-07-21 Devashish Sharma <sdevashish@novell.com>
* evolution-message-composer.xml: Added Shortcut for Save Draft
-(Ctrl+Shift+S) and a toolbar button for the same.

View File

@ -13,6 +13,8 @@
<cmd name="TasksMarkComplete" _tip="Mark selected tasks as complete" accel="*Control*k" sensitive="0"/>
<cmd name="TasksPurge" _label="Purg_e" _tip="Delete completed tasks" accel="*Control*e"/>
<cmd name="TasksAssign" _label="_Assign Task" accel="*Control*a"/>
<cmd name="TasksForward" _label="_Forward as iCalendar" accel="*Control*f"/>
</commands>
<menu>
@ -47,6 +49,8 @@
<placeholder name="ActionsPlaceholder">
<submenu name="Actions" _label="_Actions">
<menuitem name="TasksPurge" verb=""/>
<menuitem name="TasksAssign" verb=""/>
<menuitem name="TasksForward" verb=""/>
</submenu>
</placeholder>