manager: update retrieve sources API
The move to newer API is to drop GtkListStore dependency on the manager.
This commit is contained in:
+31
-22
@@ -512,12 +512,38 @@ gcal_manager_new (void)
|
|||||||
return GCAL_MANAGER (g_object_new (GCAL_TYPE_MANAGER, NULL));
|
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
|
GcalManagerPrivate *priv;
|
||||||
anymore */
|
|
||||||
return NULL;
|
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*
|
icaltimezone*
|
||||||
@@ -634,23 +660,6 @@ gcal_manager_add_source (GcalManager *manager,
|
|||||||
return e_source_dup_uid (source);
|
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
|
void
|
||||||
gcal_manager_refresh (GcalManager *manager)
|
gcal_manager_refresh (GcalManager *manager)
|
||||||
{
|
{
|
||||||
|
|||||||
+3
-5
@@ -22,8 +22,6 @@
|
|||||||
|
|
||||||
#include "e-cal-data-model.h"
|
#include "e-cal-data-model.h"
|
||||||
|
|
||||||
#include <gtk/gtk.h>
|
|
||||||
|
|
||||||
#include <libical/icaltime.h>
|
#include <libical/icaltime.h>
|
||||||
|
|
||||||
G_BEGIN_DECLS
|
G_BEGIN_DECLS
|
||||||
@@ -62,7 +60,9 @@ GType gcal_manager_get_type (void);
|
|||||||
|
|
||||||
GcalManager* gcal_manager_new (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);
|
icaltimezone* gcal_manager_get_system_timezone (GcalManager *manager);
|
||||||
|
|
||||||
@@ -84,8 +84,6 @@ gchar* gcal_manager_add_source (GcalManager *manager
|
|||||||
const gchar *backend,
|
const gchar *backend,
|
||||||
const gchar *color);
|
const gchar *color);
|
||||||
|
|
||||||
gchar* gcal_manager_get_default_source (GcalManager *manager);
|
|
||||||
|
|
||||||
void gcal_manager_refresh (GcalManager *manager);
|
void gcal_manager_refresh (GcalManager *manager);
|
||||||
|
|
||||||
gboolean gcal_manager_is_client_writable (GcalManager *manager,
|
gboolean gcal_manager_is_client_writable (GcalManager *manager,
|
||||||
|
|||||||
+4
-16
@@ -524,8 +524,6 @@ prepare_new_event_widget (GcalWindow *window)
|
|||||||
{
|
{
|
||||||
GcalWindowPrivate *priv;
|
GcalWindowPrivate *priv;
|
||||||
|
|
||||||
gchar *uid;
|
|
||||||
|
|
||||||
struct tm tm_date;
|
struct tm tm_date;
|
||||||
gchar start[64];
|
gchar start[64];
|
||||||
gchar *title_date;
|
gchar *title_date;
|
||||||
@@ -544,16 +542,6 @@ prepare_new_event_widget (GcalWindow *window)
|
|||||||
gcal_new_event_widget_set_title (new_widget, title_date);
|
gcal_new_event_widget_set_title (new_widget, title_date);
|
||||||
g_free (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 */
|
/* clear entry */
|
||||||
widget = gcal_new_event_widget_get_entry (new_widget);
|
widget = gcal_new_event_widget_get_entry (new_widget);
|
||||||
gtk_entry_set_text (GTK_ENTRY (widget), "");
|
gtk_entry_set_text (GTK_ENTRY (widget), "");
|
||||||
@@ -688,7 +676,7 @@ create_event (gpointer user_data,
|
|||||||
|
|
||||||
GcalNewEventWidget *new_widget;
|
GcalNewEventWidget *new_widget;
|
||||||
|
|
||||||
gchar *uid;
|
ESource *source;
|
||||||
gchar *summary;
|
gchar *summary;
|
||||||
|
|
||||||
priv = gcal_window_get_instance_private (GCAL_WINDOW (user_data));
|
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))
|
if (widget == gcal_new_event_widget_get_details_button (new_widget))
|
||||||
priv->open_edit_dialog = TRUE;
|
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);
|
summary = gcal_new_event_widget_get_summary (new_widget);
|
||||||
|
|
||||||
/* create the event */
|
/* create the event */
|
||||||
gcal_manager_create_event (priv->manager,
|
gcal_manager_create_event (priv->manager,
|
||||||
uid, summary,
|
e_source_get_uid (source), summary,
|
||||||
priv->event_creation_data->start_date,
|
priv->event_creation_data->start_date,
|
||||||
priv->event_creation_data->end_date);
|
priv->event_creation_data->end_date);
|
||||||
|
|
||||||
g_free (uid);
|
g_object_unref (source);
|
||||||
g_free (summary);
|
g_free (summary);
|
||||||
/* reset and hide */
|
/* reset and hide */
|
||||||
set_new_event_mode (GCAL_WINDOW (user_data), FALSE);
|
set_new_event_mode (GCAL_WINDOW (user_data), FALSE);
|
||||||
|
|||||||
Reference in New Issue
Block a user