manager: update retrieve sources API

The move to newer API is to drop GtkListStore dependency on the manager.
This commit is contained in:
Erick Pérez Castellanos
2014-12-04 17:10:55 -05:00
parent 329118079d
commit 83eb99efba
3 changed files with 38 additions and 43 deletions
+31 -22
View File
@@ -512,12 +512,38 @@ gcal_manager_new (void)
return GCAL_MANAGER (g_object_new (GCAL_TYPE_MANAGER, NULL));
}
GtkListStore*
gcal_manager_get_sources_model (GcalManager *manager)
/**
* gcal_manager_get_sources:
* @manager:
*
* Retrieve a list of the sources used in the application.
*
* Returns: (Transfer full) a {@link GList} object
* to be freed with g_list_free()
**/
GList*
gcal_manager_get_sources (GcalManager *manager)
{
/* FIXME: stub code, since we don't keep a calendars list-store
anymore */
return NULL;
GcalManagerPrivate *priv;
priv = gcal_manager_get_instance_private (manager);
return g_hash_table_get_keys (priv->clients);
}
/**
* gcal_manager_get_default_source:
* @manager: App singleton {@link GcalManager} instance
*
* Returns: (Transfer full): an {@link ESource} object. Free with g_object_unref().
**/
ESource*
gcal_manager_get_default_source (GcalManager *manager)
{
GcalManagerPrivate *priv;
priv = gcal_manager_get_instance_private (manager);
return e_source_registry_ref_default_calendar (priv->source_registry);
}
icaltimezone*
@@ -634,23 +660,6 @@ gcal_manager_add_source (GcalManager *manager,
return e_source_dup_uid (source);
}
gchar*
gcal_manager_get_default_source (GcalManager *manager)
{
GcalManagerPrivate *priv;
ESource *edefault;
gchar *source_uid;
priv = gcal_manager_get_instance_private (manager);
edefault = e_source_registry_ref_default_calendar (priv->source_registry);
source_uid = e_source_dup_uid (edefault);
g_object_unref (edefault);
return source_uid;
}
void
gcal_manager_refresh (GcalManager *manager)
{
+3 -5
View File
@@ -22,8 +22,6 @@
#include "e-cal-data-model.h"
#include <gtk/gtk.h>
#include <libical/icaltime.h>
G_BEGIN_DECLS
@@ -62,7 +60,9 @@ GType gcal_manager_get_type (void);
GcalManager* gcal_manager_new (void);
GtkListStore* gcal_manager_get_sources_model (GcalManager *manager);
GList* gcal_manager_get_sources (GcalManager *manager);
ESource* gcal_manager_get_default_source (GcalManager *manager);
icaltimezone* gcal_manager_get_system_timezone (GcalManager *manager);
@@ -84,8 +84,6 @@ gchar* gcal_manager_add_source (GcalManager *manager
const gchar *backend,
const gchar *color);
gchar* gcal_manager_get_default_source (GcalManager *manager);
void gcal_manager_refresh (GcalManager *manager);
gboolean gcal_manager_is_client_writable (GcalManager *manager,
+4 -16
View File
@@ -524,8 +524,6 @@ prepare_new_event_widget (GcalWindow *window)
{
GcalWindowPrivate *priv;
gchar *uid;
struct tm tm_date;
gchar start[64];
gchar *title_date;
@@ -544,16 +542,6 @@ prepare_new_event_widget (GcalWindow *window)
gcal_new_event_widget_set_title (new_widget, title_date);
g_free (title_date);
/* FIXME: do this somehow since GcalManager doesn't keep
a list store of calendars anymore, and this is a stub method */
gcal_new_event_widget_set_calendars (
new_widget,
GTK_TREE_MODEL (gcal_manager_get_sources_model (priv->manager)));
uid = gcal_manager_get_default_source (priv->manager);
gcal_new_event_widget_set_default_calendar (new_widget, uid);
g_free (uid);
/* clear entry */
widget = gcal_new_event_widget_get_entry (new_widget);
gtk_entry_set_text (GTK_ENTRY (widget), "");
@@ -688,7 +676,7 @@ create_event (gpointer user_data,
GcalNewEventWidget *new_widget;
gchar *uid;
ESource *source;
gchar *summary;
priv = gcal_window_get_instance_private (GCAL_WINDOW (user_data));
@@ -697,16 +685,16 @@ create_event (gpointer user_data,
if (widget == gcal_new_event_widget_get_details_button (new_widget))
priv->open_edit_dialog = TRUE;
uid = gcal_new_event_widget_get_calendar_uid (new_widget);
source = gcal_manager_get_default_source (priv->manager);
summary = gcal_new_event_widget_get_summary (new_widget);
/* create the event */
gcal_manager_create_event (priv->manager,
uid, summary,
e_source_get_uid (source), summary,
priv->event_creation_data->start_date,
priv->event_creation_data->end_date);
g_free (uid);
g_object_unref (source);
g_free (summary);
/* reset and hide */
set_new_event_mode (GCAL_WINDOW (user_data), FALSE);