edit-dialog: Receive a GcalContext

This commit is contained in:
Georges Basile Stavracas Neto
2019-04-25 16:30:56 -03:00
parent 0f1de0c2ca
commit fd8e82b4ae
3 changed files with 25 additions and 37 deletions
+24 -33
View File
@@ -19,6 +19,7 @@
#define G_LOG_DOMAIN "GcalEditDialog"
#include "gcal-context.h"
#include "gcal-date-selector.h"
#include "gcal-debug.h"
#include "gcal-edit-dialog.h"
@@ -48,7 +49,7 @@ struct _GcalEditDialog
gboolean writable;
GcalManager *manager;
GcalContext *context;
/* titlebar */
GtkWidget *titlebar;
@@ -139,8 +140,8 @@ G_DEFINE_TYPE (GcalEditDialog, gcal_edit_dialog, GTK_TYPE_DIALOG)
enum
{
PROP_0,
PROP_CONTEXT,
PROP_EVENT,
PROP_MANAGER,
PROP_TIME_FORMAT,
PROP_WRITABLE,
N_PROPS
@@ -173,13 +174,15 @@ sources_menu_sort_func (gconstpointer a,
static void
fill_sources_menu (GcalEditDialog *self)
{
GcalManager *manager;
GList *list;
GList *aux;
if (self->manager == NULL)
if (self->context == NULL)
return;
list = gcal_manager_get_sources (self->manager);
manager = gcal_context_get_manager (self->context);
list = gcal_manager_get_sources (manager);
self->sources_menu = g_menu_new ();
list = g_list_sort (list, sources_menu_sort_func);
@@ -204,7 +207,7 @@ fill_sources_menu (GcalEditDialog *self)
g_menu_item_set_icon (item, G_ICON (pix));
/* set insensitive for read-only calendars */
if (!gcal_manager_is_client_writable (self->manager, source))
if (!gcal_manager_is_client_writable (manager, source))
{
g_menu_item_set_action_and_target_value (item, "select-calendar", NULL);
}
@@ -629,6 +632,7 @@ on_calendar_selected_action_cb (GSimpleAction *action,
gpointer user_data)
{
GcalEditDialog *self;
GcalManager *manager;
GList *list;
GList *aux;
gchar *uid;
@@ -636,7 +640,8 @@ on_calendar_selected_action_cb (GSimpleAction *action,
GCAL_ENTRY;
self = GCAL_EDIT_DIALOG (user_data);
list = gcal_manager_get_sources (self->manager);
manager = gcal_context_get_manager (self->context);
list = gcal_manager_get_sources (manager);
/* retrieve selected calendar uid */
g_variant_get (value, "s", &uid);
@@ -880,7 +885,7 @@ on_action_button_clicked_cb (GtkWidget *widget,
}
else
{
gcal_manager_move_event_to_source (self->manager,
gcal_manager_move_event_to_source (gcal_context_get_manager (self->context),
self->event,
self->selected_source);
}
@@ -976,7 +981,9 @@ on_remove_alarm_button_clicked (GtkButton *button,
gcal_event_remove_alarm (event, trigger_minutes);
gcal_manager_update_event (self->manager, event, GCAL_RECURRENCE_MOD_THIS_ONLY);
gcal_manager_update_event (gcal_context_get_manager (self->context),
event,
GCAL_RECURRENCE_MOD_THIS_ONLY);
gtk_widget_destroy (row);
@@ -1113,7 +1120,7 @@ gcal_edit_dialog_finalize (GObject *object)
self = GCAL_EDIT_DIALOG (object);
g_clear_object (&self->action_group);
g_clear_object (&self->manager);
g_clear_object (&self->context);
g_clear_object (&self->event);
G_OBJECT_CLASS (gcal_edit_dialog_parent_class)->finalize (object);
@@ -1168,8 +1175,8 @@ gcal_edit_dialog_get_property (GObject *object,
g_value_set_object (value, self->event);
break;
case PROP_MANAGER:
g_value_set_object (value, self->manager);
case PROP_CONTEXT:
g_value_set_object (value, self->context);
break;
case PROP_TIME_FORMAT:
@@ -1199,8 +1206,8 @@ gcal_edit_dialog_set_property (GObject *object,
gcal_edit_dialog_set_event (self, g_value_get_object (value));
break;
case PROP_MANAGER:
gcal_edit_dialog_set_manager (self, g_value_get_object (value));
case PROP_CONTEXT:
self->context = g_value_dup_object (value);
break;
case PROP_TIME_FORMAT:
@@ -1246,7 +1253,7 @@ gcal_edit_dialog_class_init (GcalEditDialogClass *klass)
*
* The #GcalManager of the dialog.
*/
properties[PROP_MANAGER] = g_param_spec_object ("manager",
properties[PROP_CONTEXT] = g_param_spec_object ("manager",
"Manager of the dialog",
"The manager of the dialog",
GCAL_TYPE_MANAGER,
@@ -1427,6 +1434,7 @@ gcal_edit_dialog_set_event (GcalEditDialog *self,
GcalRecurrenceFrequency frequency;
GcalRecurrence *recur;
GtkAdjustment *count_adjustment;
GcalManager *manager;
GDateTime *date_start;
GDateTime *date_end;
cairo_surface_t *surface;
@@ -1558,7 +1566,8 @@ gcal_edit_dialog_set_event (GcalEditDialog *self,
gcal_event_get_description (event),
-1);
set_writable (self, gcal_manager_is_client_writable (self->manager, source));
manager = gcal_context_get_manager (self->context);
set_writable (self, gcal_manager_is_client_writable (manager, source));
g_clear_pointer (&date_start, g_date_time_unref);
g_clear_pointer (&date_end, g_date_time_unref);
@@ -1574,24 +1583,6 @@ out:
GCAL_EXIT;
}
/**
* gcal_edit_dialog_set_manager:
* @dialog: a #GcalEditDialog
* @manager: a #GcalManager
*
* Sets the #GcalManager instance of the @dialog.
*/
void
gcal_edit_dialog_set_manager (GcalEditDialog *self,
GcalManager *manager)
{
g_return_if_fail (GCAL_IS_EDIT_DIALOG (self));
g_return_if_fail (GCAL_IS_MANAGER (manager));
if (g_set_object (&self->manager, manager))
g_object_notify_by_pspec (G_OBJECT (self), properties[PROP_MANAGER]);
}
gboolean
gcal_edit_dialog_get_recurrence_changed (GcalEditDialog *self)
{
-3
View File
@@ -45,9 +45,6 @@ GcalEvent* gcal_edit_dialog_get_event (GcalEditDialog *d
void gcal_edit_dialog_set_event (GcalEditDialog *dialog,
GcalEvent *event);
void gcal_edit_dialog_set_manager (GcalEditDialog *dialog,
GcalManager *manager);
void gcal_edit_dialog_set_time_format (GcalEditDialog *dialog,
GcalTimeFormat time_format);
+1 -1
View File
@@ -1256,7 +1256,7 @@ gcal_window_constructed (GObject *object)
g_object_bind_property (self, "context", self->week_view, "context", G_BINDING_DEFAULT | G_BINDING_SYNC_CREATE);
g_object_bind_property (self, "context", self->month_view, "context", G_BINDING_DEFAULT | G_BINDING_SYNC_CREATE);
g_object_bind_property (self, "context", self->year_view, "context", G_BINDING_DEFAULT | G_BINDING_SYNC_CREATE);
g_object_bind_property (self->context, "manager", self->edit_dialog, "manager", G_BINDING_DEFAULT | G_BINDING_SYNC_CREATE);
g_object_bind_property (self, "context", self->edit_dialog, "context", G_BINDING_DEFAULT | G_BINDING_SYNC_CREATE);
g_object_bind_property (self->context, "manager", self->quick_add_popover, "manager", G_BINDING_DEFAULT | G_BINDING_SYNC_CREATE);
g_object_bind_property (self, "time-format", self->edit_dialog, "time-format", G_BINDING_DEFAULT | G_BINDING_SYNC_CREATE);
g_object_bind_property (self, "time-format", self->search_popover, "time-format", G_BINDING_DEFAULT | G_BINDING_SYNC_CREATE);