Added support to obtain properties of the event
Added very initial support to handle obtention of the modified properties of the edited event. There's still some kind of Model implementation to keep track of the changes made by the user.
This commit is contained in:
+82
-1
@@ -108,6 +108,8 @@ gcal_edit_dialog_constructed (GObject* object)
|
||||
GcalEditDialogPrivate *priv;
|
||||
GtkWidget *content_area;
|
||||
GtkWidget *child;
|
||||
|
||||
GtkSizeGroup *size_group;
|
||||
GtkWidget *action_area;
|
||||
GtkWidget *button;
|
||||
|
||||
@@ -244,10 +246,12 @@ gcal_edit_dialog_constructed (GObject* object)
|
||||
gtk_widget_show_all (content_area);
|
||||
|
||||
/* action area, buttons */
|
||||
size_group = gtk_size_group_new (GTK_SIZE_GROUP_VERTICAL);
|
||||
action_area = gtk_dialog_get_action_area (GTK_DIALOG (object));
|
||||
gtk_box_set_spacing (GTK_BOX (action_area), 6);
|
||||
|
||||
button = gtk_button_new_from_stock (GTK_STOCK_CANCEL);
|
||||
gtk_size_group_add_widget (size_group, button);
|
||||
gtk_widget_set_can_default (button, TRUE);
|
||||
g_object_set_data (G_OBJECT (button),
|
||||
"response",
|
||||
@@ -262,6 +266,7 @@ gcal_edit_dialog_constructed (GObject* object)
|
||||
TRUE);
|
||||
|
||||
priv->delete_button = gtk_button_new ();
|
||||
gtk_size_group_add_widget (size_group, priv->delete_button);
|
||||
gtk_container_add (
|
||||
GTK_CONTAINER (priv->delete_button),
|
||||
gtk_image_new_from_icon_name ("user-trash-symbolic",
|
||||
@@ -281,6 +286,7 @@ gcal_edit_dialog_constructed (GObject* object)
|
||||
|
||||
/* done button */
|
||||
button = gtk_button_new_with_label (_("Done"));
|
||||
gtk_size_group_add_widget (size_group, button);
|
||||
gtk_widget_set_can_default (button, TRUE);
|
||||
g_object_set_data (G_OBJECT (button),
|
||||
"response",
|
||||
@@ -294,6 +300,9 @@ gcal_edit_dialog_constructed (GObject* object)
|
||||
"suggested-action");
|
||||
gtk_box_pack_end (GTK_BOX (action_area), button, TRUE, TRUE, 0);
|
||||
|
||||
g_object_unref (size_group);
|
||||
g_debug ("Added size_group");
|
||||
|
||||
gtk_widget_show_all (action_area);
|
||||
|
||||
gtk_widget_pop_composite_child ();
|
||||
@@ -611,9 +620,10 @@ gcal_edit_dialog_set_event (GcalEditDialog *dialog,
|
||||
g_free (priv->event_uid);
|
||||
priv->event_uid = g_strdup (event_uid);
|
||||
|
||||
/* Load event data */
|
||||
/* Clear event data */
|
||||
gcal_edit_dialog_clear_data (dialog);
|
||||
|
||||
/* Load new event data */
|
||||
/* summary */
|
||||
text = gcal_manager_get_event_summary (priv->manager,
|
||||
priv->source_uid,
|
||||
@@ -791,6 +801,24 @@ gcal_edit_dialog_set_manager (GcalEditDialog *dialog,
|
||||
gtk_widget_show_all (GTK_WIDGET (menu));
|
||||
}
|
||||
|
||||
const gchar*
|
||||
gcal_edit_dialog_peek_source_uid (GcalEditDialog *dialog)
|
||||
{
|
||||
GcalEditDialogPrivate *priv;
|
||||
|
||||
priv = dialog->priv;
|
||||
return priv->source_uid;
|
||||
}
|
||||
|
||||
const gchar*
|
||||
gcal_edit_dialog_peek_event_uid (GcalEditDialog *dialog)
|
||||
{
|
||||
GcalEditDialogPrivate *priv;
|
||||
|
||||
priv = dialog->priv;
|
||||
return priv->event_uid;
|
||||
}
|
||||
|
||||
gchar*
|
||||
gcal_edit_dialog_get_event_uuid (GcalEditDialog *dialog)
|
||||
{
|
||||
@@ -805,3 +833,56 @@ gcal_edit_dialog_get_event_uuid (GcalEditDialog *dialog)
|
||||
}
|
||||
return g_strdup_printf ("%s:%s", priv->source_uid, priv->event_uid);
|
||||
}
|
||||
|
||||
GList*
|
||||
gcal_edit_dialog_get_modified_properties (GcalEditDialog *dialog)
|
||||
{
|
||||
/* FIXME: Implement some kind of backend/model here */
|
||||
GList *res;
|
||||
|
||||
/* FIXME: Instead of always add SUMMARY check if was modified
|
||||
by checking against some kind of model */
|
||||
res = NULL;
|
||||
res = g_list_append (res, GINT_TO_POINTER (EVENT_SUMMARY));
|
||||
/* res = g_list_append (res, GINT_TO_POINTER (EVENT_START_DATE)); */
|
||||
res = g_list_append (res, GINT_TO_POINTER (EVENT_LOCATION));
|
||||
res = g_list_append (res, GINT_TO_POINTER (EVENT_DESCRIPTION));
|
||||
return res;
|
||||
}
|
||||
|
||||
const gchar*
|
||||
gcal_edit_dialog_peek_summary (GcalEditDialog *dialog)
|
||||
{
|
||||
GcalEditDialogPrivate *priv;
|
||||
|
||||
priv = dialog->priv;
|
||||
|
||||
return gtk_entry_get_text (GTK_ENTRY (priv->summary_entry));
|
||||
}
|
||||
|
||||
const gchar*
|
||||
gcal_edit_dialog_peek_location (GcalEditDialog *dialog)
|
||||
{
|
||||
GcalEditDialogPrivate *priv;
|
||||
|
||||
priv = dialog->priv;
|
||||
|
||||
return gtk_entry_get_text (GTK_ENTRY (priv->location_entry));
|
||||
}
|
||||
|
||||
gchar*
|
||||
gcal_edit_dialog_get_event_description (GcalEditDialog *dialog)
|
||||
{
|
||||
GcalEditDialogPrivate *priv;
|
||||
GtkTextBuffer *buffer;
|
||||
GtkTextIter start_iter;
|
||||
GtkTextIter end_iter;
|
||||
gchar *desc;
|
||||
|
||||
priv = dialog->priv;
|
||||
buffer = gtk_text_view_get_buffer (GTK_TEXT_VIEW (priv->notes_text));
|
||||
gtk_text_buffer_get_start_iter (buffer, &start_iter);
|
||||
gtk_text_buffer_get_end_iter (buffer, &end_iter);
|
||||
desc = gtk_text_buffer_get_text (buffer, &start_iter, &end_iter, FALSE);
|
||||
return desc;
|
||||
}
|
||||
|
||||
+20
-8
@@ -53,18 +53,30 @@ struct _GcalEditDialogClass
|
||||
};
|
||||
|
||||
|
||||
GType gcal_edit_dialog_get_type (void);
|
||||
GType gcal_edit_dialog_get_type (void);
|
||||
|
||||
GtkWidget* gcal_edit_dialog_new (void);
|
||||
GtkWidget* gcal_edit_dialog_new (void);
|
||||
|
||||
void gcal_edit_dialog_set_event (GcalEditDialog *dialog,
|
||||
const gchar *source_uid,
|
||||
const gchar *event_uid);
|
||||
void gcal_edit_dialog_set_event (GcalEditDialog *dialog,
|
||||
const gchar *source_uid,
|
||||
const gchar *event_uid);
|
||||
|
||||
void gcal_edit_dialog_set_manager (GcalEditDialog *dialog,
|
||||
GcalManager *manager);
|
||||
void gcal_edit_dialog_set_manager (GcalEditDialog *dialog,
|
||||
GcalManager *manager);
|
||||
|
||||
gchar* gcal_edit_dialog_get_event_uuid (GcalEditDialog *dialog);
|
||||
const gchar* gcal_edit_dialog_peek_source_uid (GcalEditDialog *dialog);
|
||||
|
||||
const gchar* gcal_edit_dialog_peek_event_uid (GcalEditDialog *dialog);
|
||||
|
||||
gchar* gcal_edit_dialog_get_event_uuid (GcalEditDialog *dialog);
|
||||
|
||||
GList* gcal_edit_dialog_get_modified_properties (GcalEditDialog *dialog);
|
||||
|
||||
const gchar* gcal_edit_dialog_peek_summary (GcalEditDialog *dialog);
|
||||
|
||||
const gchar* gcal_edit_dialog_peek_location (GcalEditDialog *dialog);
|
||||
|
||||
gchar* gcal_edit_dialog_get_event_description (GcalEditDialog *dialog);
|
||||
|
||||
G_END_DECLS
|
||||
|
||||
|
||||
@@ -46,6 +46,14 @@ typedef enum
|
||||
GCAL_VIEW_MODE,
|
||||
} GcalEditableMode;
|
||||
|
||||
typedef enum
|
||||
{
|
||||
EVENT_SUMMARY = 0,
|
||||
EVENT_START_DATE,
|
||||
EVENT_LOCATION,
|
||||
EVENT_DESCRIPTION,
|
||||
} EventEditableProperty;
|
||||
|
||||
typedef
|
||||
const gchar* (*GcalTranslateFunc) (GtkWidget *source_widget);
|
||||
|
||||
|
||||
Reference in New Issue
Block a user