@ -1,3 +1,13 @@
|
||||
2007-09-27 Milan Crha <mcrha@redhat.com>
|
||||
|
||||
** Fix for bug #300693
|
||||
|
||||
* gui/e-calendar-table.c: (task_compare_cb), (e_calendar_table_init):
|
||||
* gui/e-calendar-table.etspec:
|
||||
* gui/e-memo-table.c: (task_compare_cb):
|
||||
* gui/e-memo-table.etspec:
|
||||
Removed obsolete code and references to "task-sort" virtual column.
|
||||
|
||||
2007-09-27 Milan Crha <mcrha@redhat.com>
|
||||
|
||||
** Fixes part of bug #228832
|
||||
|
||||
@ -152,80 +152,6 @@ e_calendar_table_class_init (ECalendarTableClass *class)
|
||||
clipboard_atom = gdk_atom_intern ("CLIPBOARD", FALSE);
|
||||
}
|
||||
|
||||
/* Compares two priority values, which may not exist */
|
||||
static int
|
||||
compare_priorities (int *a, int *b)
|
||||
{
|
||||
if (a && b) {
|
||||
if (*a < *b)
|
||||
return -1;
|
||||
else if (*a > *b)
|
||||
return 1;
|
||||
else
|
||||
return 0;
|
||||
} else if (a)
|
||||
return -1;
|
||||
else if (b)
|
||||
return 1;
|
||||
else
|
||||
return 0;
|
||||
}
|
||||
|
||||
/* Comparison function for the task-sort column. Sorts by due date and then by
|
||||
* priority.
|
||||
*
|
||||
* FIXME: Does this ever get called?? It doesn't seem to.
|
||||
* I specified that the table should be sorted by this column, but it still
|
||||
* never calls this function.
|
||||
* Also, this assumes it is passed pointers to ECalComponents, but I think it
|
||||
* may just be passed pointers to the 2 cell values.
|
||||
*/
|
||||
static gint
|
||||
task_compare_cb (gconstpointer a, gconstpointer b)
|
||||
{
|
||||
ECalComponent *ca, *cb;
|
||||
ECalComponentDateTime due_a, due_b;
|
||||
int *prio_a, *prio_b;
|
||||
int retval;
|
||||
|
||||
ca = E_CAL_COMPONENT (a);
|
||||
cb = E_CAL_COMPONENT (b);
|
||||
|
||||
e_cal_component_get_due (ca, &due_a);
|
||||
e_cal_component_get_due (cb, &due_b);
|
||||
e_cal_component_get_priority (ca, &prio_a);
|
||||
e_cal_component_get_priority (cb, &prio_b);
|
||||
|
||||
if (due_a.value && due_b.value) {
|
||||
int v;
|
||||
|
||||
/* FIXME: TIMEZONES. But currently we have no way to get the
|
||||
ECal, so we can't get the timezone. */
|
||||
v = icaltime_compare (*due_a.value, *due_b.value);
|
||||
|
||||
if (v == 0)
|
||||
retval = compare_priorities (prio_a, prio_b);
|
||||
else
|
||||
retval = v;
|
||||
} else if (due_a.value)
|
||||
retval = -1;
|
||||
else if (due_b.value)
|
||||
retval = 1;
|
||||
else
|
||||
retval = compare_priorities (prio_a, prio_b);
|
||||
|
||||
e_cal_component_free_datetime (&due_a);
|
||||
e_cal_component_free_datetime (&due_b);
|
||||
|
||||
if (prio_a)
|
||||
e_cal_component_free_priority (prio_a);
|
||||
|
||||
if (prio_b)
|
||||
e_cal_component_free_priority (prio_b);
|
||||
|
||||
return retval;
|
||||
}
|
||||
|
||||
static gint
|
||||
date_compare_cb (gconstpointer a, gconstpointer b)
|
||||
{
|
||||
@ -478,12 +404,6 @@ e_calendar_table_init (ECalendarTable *cal_table)
|
||||
|
||||
e_table_extras_add_cell (extras, "calstatus", popup_cell);
|
||||
|
||||
/* Task sorting field */
|
||||
/* FIXME: This column should not be displayed, but ETableExtras requires
|
||||
* its shit to be visible columns listed in the XML spec.
|
||||
*/
|
||||
e_table_extras_add_compare (extras, "task-sort", task_compare_cb);
|
||||
|
||||
e_table_extras_add_compare (extras, "date-compare",
|
||||
date_compare_cb);
|
||||
e_table_extras_add_compare (extras, "percent-compare",
|
||||
|
||||
@ -8,7 +8,6 @@
|
||||
<ETableColumn model_col= "15" _title="% Complete" expansion="1.0" minimum_width="10" resizable="true" cell="percent" compare="percent-compare" priority="-3"/>
|
||||
<ETableColumn model_col= "16" _title="Priority" expansion="1.0" minimum_width="10" resizable="true" cell="priority" compare="priority-compare" priority="-3"/>
|
||||
<ETableColumn model_col="17" _title="Status" expansion="1.0" minimum_width="10" resizable="true" cell="calstatus" compare="collate" priority="-1"/>
|
||||
<ETableColumn model_col="19" _title="Task sort" cell="task-sort" compare="task-sort" priority="-4"/>
|
||||
<ETableColumn model_col="0" _title="Categories" cell="calstring" compare="stringcase" expansion="1.0" minimum_width="10" resizable="true" priority="-2"/>
|
||||
|
||||
<ETableState>
|
||||
|
||||
@ -177,63 +177,6 @@ date_compare_cb (gconstpointer a, gconstpointer b)
|
||||
return icaltime_compare (dv1->tt, tt);
|
||||
}
|
||||
|
||||
/* Comparison function for the task-sort column. Sorts by due date and then by
|
||||
* priority.
|
||||
*
|
||||
* FIXME: Does this ever get called?? It doesn't seem to.
|
||||
* I specified that the table should be sorted by this column, but it still
|
||||
* never calls this function.
|
||||
* Also, this assumes it is passed pointers to ECalComponents, but I think it
|
||||
* may just be passed pointers to the 2 cell values.
|
||||
*/
|
||||
#if 0
|
||||
static gint
|
||||
task_compare_cb (gconstpointer a, gconstpointer b)
|
||||
{
|
||||
ECalComponent *ca, *cb;
|
||||
ECalComponentDateTime due_a, due_b;
|
||||
int *prio_a, *prio_b;
|
||||
int retval;
|
||||
|
||||
ca = E_CAL_COMPONENT (a);
|
||||
cb = E_CAL_COMPONENT (b);
|
||||
|
||||
e_cal_component_get_due (ca, &due_a);
|
||||
e_cal_component_get_due (cb, &due_b);
|
||||
e_cal_component_get_priority (ca, &prio_a);
|
||||
e_cal_component_get_priority (cb, &prio_b);
|
||||
|
||||
if (due_a.value && due_b.value) {
|
||||
int v;
|
||||
|
||||
/* FIXME: TIMEZONES. But currently we have no way to get the
|
||||
ECal, so we can't get the timezone. */
|
||||
v = icaltime_compare (*due_a.value, *due_b.value);
|
||||
|
||||
if (v == 0)
|
||||
retval = compare_priorities (prio_a, prio_b);
|
||||
else
|
||||
retval = v;
|
||||
} else if (due_a.value)
|
||||
retval = -1;
|
||||
else if (due_b.value)
|
||||
retval = 1;
|
||||
else
|
||||
retval = compare_priorities (prio_a, prio_b);
|
||||
|
||||
e_cal_component_free_datetime (&due_a);
|
||||
e_cal_component_free_datetime (&due_b);
|
||||
|
||||
if (prio_a)
|
||||
e_cal_component_free_priority (prio_a);
|
||||
|
||||
if (prio_b)
|
||||
e_cal_component_free_priority (prio_b);
|
||||
|
||||
return retval;
|
||||
}
|
||||
#endif
|
||||
|
||||
static void
|
||||
row_appended_cb (ECalModel *model, EMemoTable *memo_table)
|
||||
{
|
||||
|
||||
@ -3,7 +3,6 @@
|
||||
<ETableColumn model_col="7" pixbuf="icon" _title="Type" expansion="1.0" minimum_width="16" resizable="false" cell="icon" compare="integer" priority="-4"/>
|
||||
<ETableColumn model_col="0" _title="Categories" cell="calstring" compare="collate" expansion="1.0" minimum_width="10" resizable="true" priority="-2"/>
|
||||
<ETableColumn model_col="5" _title="Start Date" expansion="2.0" minimum_width="10" resizable="true" cell="dateedit" compare="date-compare" priority="-2"/>
|
||||
<ETableColumn model_col="19" _title="Memo sort" cell="task-sort" compare="memo-sort" priority="-4"/>
|
||||
|
||||
<ETableState>
|
||||
<column source="1"/>
|
||||
|
||||
Reference in New Issue
Block a user