Added support for storing event data.
Initial support for storing event-data so the EditDialog can tell which properties has changed. Changed time entries for GcalTimeEntry objects. Set ::activates-default property of summary_entry to handle change title with one keystroke.
This commit is contained in:
+151
-73
@@ -18,37 +18,61 @@
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
#include "gcal-edit-dialog.h"
|
#include "gcal-edit-dialog.h"
|
||||||
|
#include "gcal-time-entry.h"
|
||||||
#include "gcal-utils.h"
|
#include "gcal-utils.h"
|
||||||
|
|
||||||
#include <libecal/libecal.h>
|
#include <libecal/libecal.h>
|
||||||
#include <glib/gi18n.h>
|
#include <glib/gi18n.h>
|
||||||
|
|
||||||
|
typedef struct _SimpleTime SimpleTime;
|
||||||
|
typedef struct _SimpleEventStore SimpleEventStore;
|
||||||
|
|
||||||
|
struct _SimpleTime
|
||||||
|
{
|
||||||
|
guint hour;
|
||||||
|
guint minute;
|
||||||
|
};
|
||||||
|
|
||||||
|
struct _SimpleEventStore
|
||||||
|
{
|
||||||
|
gchar *summary;
|
||||||
|
|
||||||
|
gboolean all_day;
|
||||||
|
SimpleTime *start_time;
|
||||||
|
SimpleTime *end_time;
|
||||||
|
|
||||||
|
gchar *location;
|
||||||
|
gchar *description;
|
||||||
|
};
|
||||||
|
|
||||||
struct _GcalEditDialogPrivate
|
struct _GcalEditDialogPrivate
|
||||||
{
|
{
|
||||||
gchar *source_uid;
|
gchar *source_uid;
|
||||||
gchar *event_uid;
|
gchar *event_uid;
|
||||||
gboolean writable;
|
gboolean writable;
|
||||||
|
|
||||||
GcalManager *manager;
|
GcalManager *manager;
|
||||||
GtkTreeIter *active_iter;
|
GtkTreeIter *active_iter;
|
||||||
|
|
||||||
GtkWidget *edit_grid;
|
GtkWidget *edit_grid;
|
||||||
GtkWidget *readonly_box;
|
GtkWidget *readonly_box;
|
||||||
|
|
||||||
GtkWidget *delete_button;
|
GtkWidget *delete_button;
|
||||||
|
|
||||||
GtkWidget *summary_entry;
|
GtkWidget *summary_entry;
|
||||||
|
|
||||||
GtkWidget *calendar_button;
|
GtkWidget *calendar_button;
|
||||||
GtkWidget *calendars_menu;
|
GtkWidget *calendars_menu;
|
||||||
|
|
||||||
GtkWidget *start_date_entry;
|
GtkWidget *start_date_entry;
|
||||||
GtkWidget *end_date_entry;
|
GtkWidget *end_date_entry;
|
||||||
GtkWidget *all_day_check;
|
GtkWidget *all_day_check;
|
||||||
GtkWidget *start_time_entry;
|
GtkWidget *start_time_entry;
|
||||||
GtkWidget *end_time_entry;
|
GtkWidget *end_time_entry;
|
||||||
GtkWidget *location_entry;
|
GtkWidget *location_entry;
|
||||||
GtkWidget *notes_text;
|
GtkWidget *notes_text;
|
||||||
|
|
||||||
|
SimpleEventStore *ev_store;
|
||||||
};
|
};
|
||||||
|
|
||||||
static void gcal_edit_dialog_constructed (GObject *object);
|
static void gcal_edit_dialog_constructed (GObject *object);
|
||||||
@@ -69,6 +93,9 @@ static void gcal_edit_dialog_action_button_clicked (GtkWidget *wi
|
|||||||
static void gcal_edit_dialog_button_toggled (GtkToggleButton *button,
|
static void gcal_edit_dialog_button_toggled (GtkToggleButton *button,
|
||||||
gpointer user_data);
|
gpointer user_data);
|
||||||
|
|
||||||
|
static void gcal_edit_dialog_all_day_changed (GtkWidget *widget,
|
||||||
|
gpointer user_data);
|
||||||
|
|
||||||
G_DEFINE_TYPE(GcalEditDialog, gcal_edit_dialog, GTK_TYPE_DIALOG)
|
G_DEFINE_TYPE(GcalEditDialog, gcal_edit_dialog, GTK_TYPE_DIALOG)
|
||||||
|
|
||||||
static void
|
static void
|
||||||
@@ -108,6 +135,7 @@ gcal_edit_dialog_constructed (GObject* object)
|
|||||||
GcalEditDialogPrivate *priv;
|
GcalEditDialogPrivate *priv;
|
||||||
GtkWidget *content_area;
|
GtkWidget *content_area;
|
||||||
GtkWidget *child;
|
GtkWidget *child;
|
||||||
|
GtkWidget *frame;
|
||||||
|
|
||||||
GtkSizeGroup *size_group;
|
GtkSizeGroup *size_group;
|
||||||
GtkWidget *action_area;
|
GtkWidget *action_area;
|
||||||
@@ -138,6 +166,7 @@ gcal_edit_dialog_constructed (GObject* object)
|
|||||||
gtk_grid_attach (GTK_GRID (priv->edit_grid), child, 0, 0, 1, 1);
|
gtk_grid_attach (GTK_GRID (priv->edit_grid), child, 0, 0, 1, 1);
|
||||||
|
|
||||||
priv->summary_entry = gtk_entry_new ();
|
priv->summary_entry = gtk_entry_new ();
|
||||||
|
gtk_entry_set_activates_default (GTK_ENTRY (priv->summary_entry), TRUE);
|
||||||
gtk_widget_set_hexpand (priv->summary_entry, TRUE);
|
gtk_widget_set_hexpand (priv->summary_entry, TRUE);
|
||||||
gtk_grid_attach (GTK_GRID (priv->edit_grid),
|
gtk_grid_attach (GTK_GRID (priv->edit_grid),
|
||||||
priv->summary_entry,
|
priv->summary_entry,
|
||||||
@@ -176,11 +205,7 @@ gcal_edit_dialog_constructed (GObject* object)
|
|||||||
"x-office-calendar-symbolic");
|
"x-office-calendar-symbolic");
|
||||||
gtk_container_add (GTK_CONTAINER (child), priv->start_date_entry);
|
gtk_container_add (GTK_CONTAINER (child), priv->start_date_entry);
|
||||||
|
|
||||||
priv->start_time_entry = gtk_entry_new ();
|
priv->start_time_entry = gcal_time_entry_new ();
|
||||||
gtk_entry_set_width_chars (GTK_ENTRY (priv->start_time_entry), 8);
|
|
||||||
gtk_entry_set_icon_from_icon_name (GTK_ENTRY (priv->start_time_entry),
|
|
||||||
GTK_ENTRY_ICON_SECONDARY,
|
|
||||||
"preferences-system-time-symbolic");
|
|
||||||
gtk_container_add (GTK_CONTAINER (child), priv->start_time_entry);
|
gtk_container_add (GTK_CONTAINER (child), priv->start_time_entry);
|
||||||
|
|
||||||
priv->all_day_check = gtk_check_button_new_with_label (_("All day"));
|
priv->all_day_check = gtk_check_button_new_with_label (_("All day"));
|
||||||
@@ -204,11 +229,7 @@ gcal_edit_dialog_constructed (GObject* object)
|
|||||||
"x-office-calendar-symbolic");
|
"x-office-calendar-symbolic");
|
||||||
gtk_container_add (GTK_CONTAINER (child), priv->end_date_entry);
|
gtk_container_add (GTK_CONTAINER (child), priv->end_date_entry);
|
||||||
|
|
||||||
priv->end_time_entry = gtk_entry_new ();
|
priv->end_time_entry = gcal_time_entry_new ();
|
||||||
gtk_entry_set_width_chars (GTK_ENTRY (priv->end_time_entry), 8);
|
|
||||||
gtk_entry_set_icon_from_icon_name (GTK_ENTRY (priv->end_time_entry),
|
|
||||||
GTK_ENTRY_ICON_SECONDARY,
|
|
||||||
"preferences-system-time-symbolic");
|
|
||||||
gtk_container_add (GTK_CONTAINER (child), priv->end_time_entry);
|
gtk_container_add (GTK_CONTAINER (child), priv->end_time_entry);
|
||||||
gtk_grid_attach (GTK_GRID (priv->edit_grid), child, 1, 3, 2, 1);
|
gtk_grid_attach (GTK_GRID (priv->edit_grid), child, 1, 3, 2, 1);
|
||||||
|
|
||||||
@@ -233,14 +254,16 @@ gcal_edit_dialog_constructed (GObject* object)
|
|||||||
gtk_widget_set_margin_top (child, 4);
|
gtk_widget_set_margin_top (child, 4);
|
||||||
gtk_grid_attach (GTK_GRID (priv->edit_grid), child, 0, 5, 1, 1);
|
gtk_grid_attach (GTK_GRID (priv->edit_grid), child, 0, 5, 1, 1);
|
||||||
|
|
||||||
child = gtk_frame_new (NULL);
|
frame = gtk_frame_new (NULL);
|
||||||
|
child = gtk_scrolled_window_new (NULL, NULL);
|
||||||
|
gtk_container_add (GTK_CONTAINER (frame), child);
|
||||||
priv->notes_text = gtk_text_view_new ();
|
priv->notes_text = gtk_text_view_new ();
|
||||||
gtk_container_add (GTK_CONTAINER (child), priv->notes_text);
|
gtk_container_add (GTK_CONTAINER (child), priv->notes_text);
|
||||||
gtk_widget_set_hexpand (child, TRUE);
|
gtk_widget_set_hexpand (child, TRUE);
|
||||||
gtk_widget_set_size_request (
|
gtk_widget_set_size_request (
|
||||||
gtk_bin_get_child (GTK_BIN (child)),
|
gtk_bin_get_child (GTK_BIN (frame)),
|
||||||
-1, 80);
|
-1, 80);
|
||||||
gtk_grid_attach (GTK_GRID (priv->edit_grid), child, 1, 5, 2, 1);
|
gtk_grid_attach (GTK_GRID (priv->edit_grid), frame, 1, 5, 2, 1);
|
||||||
|
|
||||||
gtk_container_add (GTK_CONTAINER (content_area), priv->edit_grid);
|
gtk_container_add (GTK_CONTAINER (content_area), priv->edit_grid);
|
||||||
gtk_widget_show_all (content_area);
|
gtk_widget_show_all (content_area);
|
||||||
@@ -252,7 +275,6 @@ gcal_edit_dialog_constructed (GObject* object)
|
|||||||
|
|
||||||
button = gtk_button_new_from_stock (GTK_STOCK_CANCEL);
|
button = gtk_button_new_from_stock (GTK_STOCK_CANCEL);
|
||||||
gtk_size_group_add_widget (size_group, button);
|
gtk_size_group_add_widget (size_group, button);
|
||||||
gtk_widget_set_can_default (button, TRUE);
|
|
||||||
g_object_set_data (G_OBJECT (button),
|
g_object_set_data (G_OBJECT (button),
|
||||||
"response",
|
"response",
|
||||||
GINT_TO_POINTER (GTK_RESPONSE_CANCEL));
|
GINT_TO_POINTER (GTK_RESPONSE_CANCEL));
|
||||||
@@ -271,7 +293,6 @@ gcal_edit_dialog_constructed (GObject* object)
|
|||||||
GTK_CONTAINER (priv->delete_button),
|
GTK_CONTAINER (priv->delete_button),
|
||||||
gtk_image_new_from_icon_name ("user-trash-symbolic",
|
gtk_image_new_from_icon_name ("user-trash-symbolic",
|
||||||
GTK_ICON_SIZE_MENU));
|
GTK_ICON_SIZE_MENU));
|
||||||
gtk_widget_set_can_default (priv->delete_button, TRUE);
|
|
||||||
g_object_set_data (G_OBJECT (priv->delete_button),
|
g_object_set_data (G_OBJECT (priv->delete_button),
|
||||||
"response",
|
"response",
|
||||||
GINT_TO_POINTER (GCAL_RESPONSE_DELETE_EVENT));
|
GINT_TO_POINTER (GCAL_RESPONSE_DELETE_EVENT));
|
||||||
@@ -300,6 +321,8 @@ gcal_edit_dialog_constructed (GObject* object)
|
|||||||
"suggested-action");
|
"suggested-action");
|
||||||
gtk_box_pack_end (GTK_BOX (action_area), button, TRUE, TRUE, 0);
|
gtk_box_pack_end (GTK_BOX (action_area), button, TRUE, TRUE, 0);
|
||||||
|
|
||||||
|
gtk_widget_grab_default (button);
|
||||||
|
|
||||||
g_object_unref (size_group);
|
g_object_unref (size_group);
|
||||||
g_debug ("Added size_group");
|
g_debug ("Added size_group");
|
||||||
|
|
||||||
@@ -312,9 +335,11 @@ gcal_edit_dialog_constructed (GObject* object)
|
|||||||
"toggled",
|
"toggled",
|
||||||
G_CALLBACK (gcal_edit_dialog_button_toggled),
|
G_CALLBACK (gcal_edit_dialog_button_toggled),
|
||||||
object);
|
object);
|
||||||
|
|
||||||
|
/* event data related signals */
|
||||||
g_signal_connect (priv->all_day_check,
|
g_signal_connect (priv->all_day_check,
|
||||||
"toggled",
|
"toggled",
|
||||||
G_CALLBACK (gcal_edit_dialog_button_toggled),
|
G_CALLBACK (gcal_edit_dialog_all_day_changed),
|
||||||
object);
|
object);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -528,9 +553,9 @@ gcal_edit_dialog_clear_data (GcalEditDialog *dialog)
|
|||||||
|
|
||||||
/* date and time */
|
/* date and time */
|
||||||
gtk_entry_set_text (GTK_ENTRY (priv->start_date_entry), "");
|
gtk_entry_set_text (GTK_ENTRY (priv->start_date_entry), "");
|
||||||
gtk_entry_set_text (GTK_ENTRY (priv->start_time_entry), "");
|
gcal_time_entry_set_time (GCAL_TIME_ENTRY (priv->start_time_entry), 0, 0);
|
||||||
gtk_entry_set_text (GTK_ENTRY (priv->end_date_entry), "");
|
gtk_entry_set_text (GTK_ENTRY (priv->end_date_entry), "");
|
||||||
gtk_entry_set_text (GTK_ENTRY (priv->end_time_entry), "");
|
gcal_time_entry_set_time (GCAL_TIME_ENTRY (priv->end_time_entry), 0, 0);
|
||||||
|
|
||||||
/* location */
|
/* location */
|
||||||
gtk_entry_set_text (GTK_ENTRY (priv->location_entry), "");
|
gtk_entry_set_text (GTK_ENTRY (priv->location_entry), "");
|
||||||
@@ -580,6 +605,21 @@ gcal_edit_dialog_button_toggled (GtkToggleButton *button,
|
|||||||
g_signal_stop_emission_by_name (button, "toggled");
|
g_signal_stop_emission_by_name (button, "toggled");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static void
|
||||||
|
gcal_edit_dialog_all_day_changed (GtkWidget *widget,
|
||||||
|
gpointer user_data)
|
||||||
|
{
|
||||||
|
GcalEditDialogPrivate *priv;
|
||||||
|
|
||||||
|
priv = GCAL_EDIT_DIALOG (user_data)->priv;
|
||||||
|
|
||||||
|
if (gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (priv->all_day_check)))
|
||||||
|
{
|
||||||
|
gcal_time_entry_set_time (GCAL_TIME_ENTRY (priv->start_time_entry), 0, 0);
|
||||||
|
gcal_time_entry_set_time (GCAL_TIME_ENTRY (priv->end_time_entry), 0, 0);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/* Public API */
|
/* Public API */
|
||||||
GtkWidget*
|
GtkWidget*
|
||||||
gcal_edit_dialog_new (void)
|
gcal_edit_dialog_new (void)
|
||||||
@@ -601,7 +641,6 @@ gcal_edit_dialog_set_event (GcalEditDialog *dialog,
|
|||||||
{
|
{
|
||||||
GcalEditDialogPrivate *priv;
|
GcalEditDialogPrivate *priv;
|
||||||
|
|
||||||
gchar *text;
|
|
||||||
const gchar *const_text;
|
const gchar *const_text;
|
||||||
gboolean all_day;
|
gboolean all_day;
|
||||||
|
|
||||||
@@ -623,19 +662,29 @@ gcal_edit_dialog_set_event (GcalEditDialog *dialog,
|
|||||||
/* Clear event data */
|
/* Clear event data */
|
||||||
gcal_edit_dialog_clear_data (dialog);
|
gcal_edit_dialog_clear_data (dialog);
|
||||||
|
|
||||||
|
if (priv->ev_store == NULL)
|
||||||
|
{
|
||||||
|
priv->ev_store = g_new0 (SimpleEventStore, 1);
|
||||||
|
|
||||||
|
priv->ev_store->start_time = g_new0 (SimpleTime, 1);
|
||||||
|
priv->ev_store->end_time = g_new0 (SimpleTime, 1);
|
||||||
|
}
|
||||||
|
|
||||||
/* Load new event data */
|
/* Load new event data */
|
||||||
/* summary */
|
/* summary */
|
||||||
text = gcal_manager_get_event_summary (priv->manager,
|
priv->ev_store->summary = gcal_manager_get_event_summary (priv->manager,
|
||||||
priv->source_uid,
|
priv->source_uid,
|
||||||
priv->event_uid);
|
priv->event_uid);
|
||||||
gtk_entry_set_text (GTK_ENTRY (priv->summary_entry),
|
gtk_entry_set_text (GTK_ENTRY (priv->summary_entry),
|
||||||
text != NULL ? text : "");
|
priv->ev_store->summary != NULL ?
|
||||||
g_free (text);
|
priv->ev_store->summary : "");
|
||||||
|
|
||||||
/* calendar button */
|
/* calendar button */
|
||||||
|
/* FIXME: Add calendar to ev_store and edit-capabilities */
|
||||||
gcal_edit_dialog_set_calendar_selected (dialog);
|
gcal_edit_dialog_set_calendar_selected (dialog);
|
||||||
|
|
||||||
/* start date */
|
/* start date */
|
||||||
|
/* FIXME: Add dates (start/end) to ev_store and edit-capabilities */
|
||||||
date = gcal_manager_get_event_start_date (priv->manager,
|
date = gcal_manager_get_event_start_date (priv->manager,
|
||||||
priv->source_uid,
|
priv->source_uid,
|
||||||
priv->event_uid);
|
priv->event_uid);
|
||||||
@@ -644,26 +693,28 @@ gcal_edit_dialog_set_event (GcalEditDialog *dialog,
|
|||||||
gtk_entry_set_text (GTK_ENTRY (priv->start_date_entry),
|
gtk_entry_set_text (GTK_ENTRY (priv->start_date_entry),
|
||||||
buffer);
|
buffer);
|
||||||
|
|
||||||
g_free (date);
|
|
||||||
/* all_day */
|
/* all_day */
|
||||||
all_day = gcal_manager_get_event_all_day (priv->manager,
|
priv->ev_store->all_day = gcal_manager_get_event_all_day (priv->manager,
|
||||||
priv->source_uid,
|
priv->source_uid,
|
||||||
priv->event_uid);
|
priv->event_uid);
|
||||||
gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (priv->all_day_check),
|
gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (priv->all_day_check),
|
||||||
all_day);
|
priv->ev_store->all_day);
|
||||||
|
|
||||||
/* start time */
|
/* start time */
|
||||||
if (all_day)
|
if (all_day)
|
||||||
{
|
{
|
||||||
gtk_entry_set_text (GTK_ENTRY (priv->start_time_entry),
|
priv->ev_store->start_time->hour = 0;
|
||||||
"00:00");
|
priv->ev_store->start_time->minute = 0;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
e_utf8_strftime_fix_am_pm (buffer, 64, "%R", &tm_date);
|
priv->ev_store->start_time->hour = date->hour;
|
||||||
gtk_entry_set_text (GTK_ENTRY (priv->start_time_entry),
|
priv->ev_store->start_time->minute = date->minute;
|
||||||
buffer);
|
|
||||||
}
|
}
|
||||||
|
gcal_time_entry_set_time (GCAL_TIME_ENTRY (priv->start_time_entry),
|
||||||
|
priv->ev_store->start_time->hour,
|
||||||
|
priv->ev_store->start_time->minute);
|
||||||
|
g_free (date);
|
||||||
|
|
||||||
/* end date */
|
/* end date */
|
||||||
date = gcal_manager_get_event_end_date (priv->manager,
|
date = gcal_manager_get_event_end_date (priv->manager,
|
||||||
@@ -674,37 +725,42 @@ gcal_edit_dialog_set_event (GcalEditDialog *dialog,
|
|||||||
gtk_entry_set_text (GTK_ENTRY (priv->end_date_entry),
|
gtk_entry_set_text (GTK_ENTRY (priv->end_date_entry),
|
||||||
buffer);
|
buffer);
|
||||||
|
|
||||||
g_free (date);
|
|
||||||
|
|
||||||
/* end time */
|
/* end time */
|
||||||
if (all_day)
|
if (all_day)
|
||||||
{
|
{
|
||||||
gtk_entry_set_text (GTK_ENTRY (priv->end_time_entry),
|
priv->ev_store->end_time->hour = 0;
|
||||||
"00:00");
|
priv->ev_store->end_time->minute = 0;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
e_utf8_strftime_fix_am_pm (buffer, 64, "%R", &tm_date);
|
priv->ev_store->end_time->hour = date->hour;
|
||||||
gtk_entry_set_text (GTK_ENTRY (priv->end_time_entry),
|
priv->ev_store->end_time->minute = date->minute;
|
||||||
buffer);
|
|
||||||
}
|
}
|
||||||
|
gcal_time_entry_set_time (GCAL_TIME_ENTRY (priv->end_time_entry),
|
||||||
|
priv->ev_store->end_time->hour,
|
||||||
|
priv->ev_store->end_time->minute);
|
||||||
|
g_free (date);
|
||||||
|
|
||||||
/* location */
|
/* location */
|
||||||
const_text = gcal_manager_get_event_location (priv->manager,
|
const_text = gcal_manager_get_event_location (priv->manager,
|
||||||
priv->source_uid,
|
priv->source_uid,
|
||||||
priv->event_uid);
|
priv->event_uid);
|
||||||
gtk_entry_set_text (GTK_ENTRY (priv->location_entry),
|
gtk_entry_set_text (GTK_ENTRY (priv->location_entry),
|
||||||
const_text != NULL ? const_text : "");
|
const_text != NULL ? const_text : "");
|
||||||
|
priv->ev_store->location = g_strdup (const_text);
|
||||||
|
|
||||||
/* notes */
|
/* notes */
|
||||||
text = gcal_manager_get_event_description (priv->manager,
|
priv->ev_store->description =
|
||||||
priv->source_uid,
|
gcal_manager_get_event_description (priv->manager,
|
||||||
priv->event_uid);
|
priv->source_uid,
|
||||||
|
priv->event_uid);
|
||||||
|
if (priv->ev_store->description == NULL)
|
||||||
|
priv->ev_store->description = "";
|
||||||
|
|
||||||
gtk_text_buffer_set_text (
|
gtk_text_buffer_set_text (
|
||||||
gtk_text_view_get_buffer (GTK_TEXT_VIEW (priv->notes_text)),
|
gtk_text_view_get_buffer (GTK_TEXT_VIEW (priv->notes_text)),
|
||||||
text != NULL ? text : "",
|
priv->ev_store->description,
|
||||||
-1);
|
-1);
|
||||||
g_free (text);
|
|
||||||
|
|
||||||
gcal_edit_dialog_set_writable (
|
gcal_edit_dialog_set_writable (
|
||||||
dialog,
|
dialog,
|
||||||
@@ -837,16 +893,38 @@ gcal_edit_dialog_get_event_uuid (GcalEditDialog *dialog)
|
|||||||
GList*
|
GList*
|
||||||
gcal_edit_dialog_get_modified_properties (GcalEditDialog *dialog)
|
gcal_edit_dialog_get_modified_properties (GcalEditDialog *dialog)
|
||||||
{
|
{
|
||||||
/* FIXME: Implement some kind of backend/model here */
|
GcalEditDialogPrivate *priv;
|
||||||
|
gchar *desc;
|
||||||
GList *res;
|
GList *res;
|
||||||
|
|
||||||
/* FIXME: Instead of always add SUMMARY check if was modified
|
priv = dialog->priv;
|
||||||
by checking against some kind of model */
|
|
||||||
|
if (! priv->writable)
|
||||||
|
return NULL;
|
||||||
|
|
||||||
res = NULL;
|
res = NULL;
|
||||||
res = g_list_append (res, GINT_TO_POINTER (EVENT_SUMMARY));
|
|
||||||
/* res = g_list_append (res, GINT_TO_POINTER (EVENT_START_DATE)); */
|
if (g_strcmp0 (priv->ev_store->summary,
|
||||||
res = g_list_append (res, GINT_TO_POINTER (EVENT_LOCATION));
|
gtk_entry_get_text (GTK_ENTRY (priv->summary_entry))) != 0)
|
||||||
res = g_list_append (res, GINT_TO_POINTER (EVENT_DESCRIPTION));
|
{
|
||||||
|
res = g_list_append (res, GINT_TO_POINTER (EVENT_SUMMARY));
|
||||||
|
}
|
||||||
|
|
||||||
|
/* FIXME: add calendar and dates and times and all_day */
|
||||||
|
|
||||||
|
if (g_strcmp0 (priv->ev_store->location,
|
||||||
|
gtk_entry_get_text (GTK_ENTRY (priv->location_entry))) != 0)
|
||||||
|
{
|
||||||
|
res = g_list_append (res, GINT_TO_POINTER (EVENT_LOCATION));
|
||||||
|
}
|
||||||
|
/* getting desc */
|
||||||
|
desc = gcal_edit_dialog_get_event_description (dialog);
|
||||||
|
if (g_strcmp0 (priv->ev_store->description, desc) != 0)
|
||||||
|
{
|
||||||
|
res = g_list_append (res, GINT_TO_POINTER (EVENT_DESCRIPTION));
|
||||||
|
}
|
||||||
|
g_free (desc);
|
||||||
|
|
||||||
return res;
|
return res;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user