aboutsummaryrefslogtreecommitdiffstats
path: root/calendar/gui/comp-util.c
diff options
context:
space:
mode:
authorRadek Doulik <rodo@ximian.com>2004-01-15 21:46:47 +0800
committerRadek Doulik <rodo@src.gnome.org>2004-01-15 21:46:47 +0800
commitf9377c48533c15010ef9a76c8d6126ebe4732f88 (patch)
treec55b25b4f1c84f7367698c8f9a74b7cce794f9b9 /calendar/gui/comp-util.c
parent4edeba938a920fe2501776031090a479bc9dee67 (diff)
downloadgsoc2013-evolution-f9377c48533c15010ef9a76c8d6126ebe4732f88.tar.gz
gsoc2013-evolution-f9377c48533c15010ef9a76c8d6126ebe4732f88.tar.zst
gsoc2013-evolution-f9377c48533c15010ef9a76c8d6126ebe4732f88.zip
fixes #23281, some refactoring and list view get_selected_time_range
implementation 2004-01-15 Radek Doulik <rodo@ximian.com> * gui/calendar-component.c (impl_requestCreateItem): merge with JP's changes 2004-01-14 Radek Doulik <rodo@ximian.com> * gui/e-cal-list-view.c (e_cal_list_view_get_selected_time_range): new implementation, use time range from selected event * gui/e-cal-view.c (e_calendar_view_get_selected_time_range): return gboolean, TRUE if requested time was set, FALSE otherwise (e_calendar_view_new_appointment_full): use current time if time range is unavailable * gui/calendar-component.c (impl_requestCreateItem): use e_calendar_view_new_appointment_full instead of cal_comp_event_new_with_current_time * gui/e-cal-view.c (e_calendar_view_new_appointment_full): new helper function * gui/comp-editor-factory.c (edit_new): use cal_comp_event_new_with_current_time * gui/calendar-component.c (impl_requestCreateItem): use cal_comp_event_new_with_current_time * gui/comp-util.c (cal_comp_event_new_with_current_time): new function, cut'n'pasted from get_default_event (calendar-component.c and comp-editor-factory.c) svn path=/trunk/; revision=24238
Diffstat (limited to 'calendar/gui/comp-util.c')
-rw-r--r--calendar/gui/comp-util.c43
1 files changed, 43 insertions, 0 deletions
diff --git a/calendar/gui/comp-util.c b/calendar/gui/comp-util.c
index 170adb0cf5..f08bd100b2 100644
--- a/calendar/gui/comp-util.c
+++ b/calendar/gui/comp-util.c
@@ -24,6 +24,8 @@
#endif
#include <string.h>
+#include <time.h>
+#include "e-cal-view.h"
#include "calendar-config.h"
#include "comp-util.h"
#include "dialogs/delete-comp.h"
@@ -315,6 +317,47 @@ cal_comp_event_new_with_defaults (ECal *client)
}
ECalComponent *
+cal_comp_event_new_with_current_time (ECal *client, gboolean all_day)
+{
+ ECalComponent *comp;
+ struct icaltimetype itt;
+ ECalComponentDateTime dt;
+ char *location;
+ icaltimezone *zone;
+
+ comp = cal_comp_event_new_with_defaults (client);
+
+ g_return_val_if_fail (comp, NULL);
+
+ location = calendar_config_get_timezone ();
+ zone = icaltimezone_get_builtin_timezone (location);
+
+ if (all_day) {
+ itt = icaltime_from_timet_with_zone (time (NULL), 1, zone);
+
+ dt.value = &itt;
+ dt.tzid = icaltimezone_get_tzid (zone);
+
+ e_cal_component_set_dtstart (comp, &dt);
+ e_cal_component_set_dtend (comp, &dt);
+ } else {
+ itt = icaltime_current_time_with_zone (zone);
+ icaltime_adjust (&itt, 0, 1, -itt.minute, -itt.second);
+
+ dt.value = &itt;
+ dt.tzid = icaltimezone_get_tzid (zone);
+
+ e_cal_component_set_dtstart (comp, &dt);
+ icaltime_adjust (&itt, 0, 1, 0, 0);
+ e_cal_component_set_dtend (comp, &dt);
+ }
+
+ e_cal_component_commit_sequence (comp);
+
+ return comp;
+}
+
+ECalComponent *
cal_comp_task_new_with_defaults (ECal *client)
{
ECalComponent *comp;