Complete migration to icaltimetype.

This commit is contained in:
Erick Pérez Castellanos
2012-05-04 11:48:30 -04:00
parent 4454e83f9f
commit 809f54bc0f
4 changed files with 86 additions and 66 deletions
+3 -3
View File
@@ -29,7 +29,7 @@ Rough description of some internals of Gnome Calendar Application
Has a list of ESourceGroup
Has GDate *initial_date, *final_date
Has icaltimetype *initial_date, *final_date
For defining a range to get events from
Could have an active query representing the range (s-exp)
@@ -52,7 +52,7 @@ Rough description of some internals of Gnome Calendar Application
+ GcalView
Has NavigationPane
Has GDate: selected_date attribute
Has icaltimetype: selected_date attribute
Has child classes
1. GcalDayView
@@ -100,7 +100,7 @@ Rough description of some internals of Gnome Calendar Application
3. GcalMonthView
...
Has GDate attribute
Has icaltimetype attribute
For keeping actual date
Has set_view/update_view method
+42 -40
View File
@@ -74,8 +74,8 @@ struct _GcalManagerPrivate
GtkListStore *sources_model;
/* The range of dates defining the query */
GDate *initial_date;
GDate *final_date;
icaltimetype *initial_date;
icaltimetype *final_date;
/* The active query */
gchar *query;
@@ -134,6 +134,12 @@ gcal_manager_init (GcalManager *self)
G_TYPE_BOOLEAN,
GDK_TYPE_COLOR);
g_object_ref_sink (priv->sources_model);
priv->initial_date = g_new(icaltimetype, 1);
*(priv->initial_date) = icaltime_from_timet (time (NULL), 0);
priv->final_date = g_new(icaltimetype, 1);
*(priv->final_date) = icaltime_from_timet (time (NULL), 0);
}
static void
@@ -166,6 +172,8 @@ gcal_manager_constructed (GObject *object)
COLUMN_ACTIVE, TRUE,
COLUMN_COLOR, &color,
-1);
priv->initial_date->month = priv->initial_date->month - 1;
priv->final_date->month = priv->final_date->month + 1;
}
static void
@@ -507,56 +515,50 @@ gcal_manager_add_source (GcalManager *manager,
* Since: 0.0.1
*/
void
gcal_manager_set_new_range (GcalManager *manager,
const GDate *initial_date,
const GDate *final_date)
gcal_manager_set_new_range (GcalManager *manager,
const icaltimetype *initial_date,
const icaltimetype *final_date)
{
gboolean refresh_events = TRUE;
GcalManagerPrivate *priv;
gboolean refresh_events;
// /* updating query range */
// if (g_date_compare (manager->priv->initial_date, initial_date) > 0)
// {
// /* switch dates */
// refresh_events = TRUE;
// }
// if (g_date_compare (manager->priv->final_date, final_date) < 0)
// {
// /* switch dates */
// refresh_events = TRUE;
// }
priv = manager->priv;
refresh_events = FALSE;
/* updating query range */
if ((icaltime_compare (*(priv->initial_date), *initial_date)) == 1)
{
/* switch dates */
*(priv->initial_date) = *initial_date;
refresh_events = TRUE;
}
if (icaltime_compare (*(priv->final_date), *final_date) == -1)
{
/* switch dates */
*(priv->final_date) = *final_date;
refresh_events = TRUE;
}
if (refresh_events)
{
/* rebuild query */
GDateTime * first_datetime = g_date_time_new_local(g_date_get_year (initial_date),
g_date_get_month (initial_date),
g_date_get_day (initial_date),
0,
0,
0);
time_t since = g_date_time_to_unix (first_datetime);
gchar* since_iso8601 = isodate_from_time_t (since);
gchar* since_iso8601 =
isodate_from_time_t (icaltime_as_timet (*(priv->initial_date)));
GDateTime * last_datetime = g_date_time_new_local(g_date_get_year (final_date),
g_date_get_month (final_date),
g_date_get_day (final_date),
23,
59,
59);
gchar* until_iso8601 = isodate_from_time_t (
g_date_time_to_unix (last_datetime));
gchar* until_iso8601 =
isodate_from_time_t (icaltime_as_timet (*(priv->final_date)));
manager->priv->query = g_strdup_printf (
if (priv->query != NULL)
g_free (priv->query);
priv->query = g_strdup_printf (
"occur-in-time-range? (make-time \"%s\") "
"(make-time \"%s\")",
since_iso8601,
until_iso8601);
g_date_time_unref (first_datetime);
g_date_time_unref (last_datetime);
g_print ("Loading events since %s until %s\n",
since_iso8601,
until_iso8601);
g_print ("Loading events since %s until %s\nwith query %s\n",
since_iso8601,
until_iso8601,
priv->query);
}
}
+10 -8
View File
@@ -23,6 +23,8 @@
#include <gtk/gtk.h>
#include <glib-object.h>
#include <libical/icaltime.h>
G_BEGIN_DECLS
#define GCAL_TYPE_MANAGER (gcal_manager_get_type ())
@@ -53,15 +55,15 @@ GType gcal_manager_get_type (void);
GcalManager* gcal_manager_new (void);
GtkListStore* gcal_manager_get_sources_model (GcalManager *manager);
GtkListStore* gcal_manager_get_sources_model (GcalManager *manager);
gchar* gcal_manager_add_source (GcalManager *manager,
const gchar *name,
const gchar *base_uri,
const gchar *relative_uri);
void gcal_manager_set_new_range (GcalManager *manager,
const GDate *initial_date,
const GDate *final_date);
gchar* gcal_manager_add_source (GcalManager *manager,
const gchar *name,
const gchar *base_uri,
const gchar *relative_uri);
void gcal_manager_set_new_range (GcalManager *manager,
const icaltimetype *initial_date,
const icaltimetype *final_date);
G_END_DECLS
+31 -15
View File
@@ -42,22 +42,24 @@ struct _GcalWindowPrivate
GtkWidget *views [5];
};
static void gcal_window_constructed (GObject *object);
static void gcal_window_constructed (GObject *object);
static void _gcal_window_set_sources_view (GcalWindow *window);
GcalManager* _gcal_window_get_manager (GcalWindow *window);
static void _gcal_window_view_changed (GcalMainToolbar *main_toolbar,
GcalViewType view_type,
gpointer user_data);
static void _gcal_window_set_sources_view (GcalWindow *window);
static void _gcal_window_sources_shown (GcalMainToolbar *main_toolbar,
gboolean visible,
gpointer user_data);
static void _gcal_window_view_changed (GcalMainToolbar *main_toolbar,
GcalViewType view_type,
gpointer user_data);
static void _gcal_window_sources_row_activated (GtkTreeView *tree_view,
GtkTreePath *path,
GtkTreeViewColumn *column,
gpointer user_data);
static void _gcal_window_sources_shown (GcalMainToolbar *main_toolbar,
gboolean visible,
gpointer user_data);
static void _gcal_window_sources_row_activated (GtkTreeView *tree_view,
GtkTreePath *path,
GtkTreeViewColumn *column,
gpointer user_data);
G_DEFINE_TYPE(GcalWindow, gcal_window, GTK_TYPE_APPLICATION_WINDOW)
@@ -206,20 +208,27 @@ gcal_window_constructed (GObject *object)
gtk_widget_show (embed);
}
GcalManager*
_gcal_window_get_manager (GcalWindow *window)
{
GcalApplication *app;
app = GCAL_APPLICATION (gtk_window_get_application (GTK_WINDOW (window)));
return gcal_application_get_manager (app);
}
static void
_gcal_window_set_sources_view (GcalWindow *window)
{
GcalWindowPrivate *priv;
GcalApplication *app;
GcalManager *manager;
GtkCellRenderer *renderer;
GtkTreeViewColumn *column;
priv = window->priv;
app = GCAL_APPLICATION (gtk_window_get_application (GTK_WINDOW (window)));
manager = gcal_application_get_manager (app);
manager = _gcal_window_get_manager (window);
priv->sources_view = gtk_tree_view_new_with_model (
GTK_TREE_MODEL (gcal_manager_get_sources_model (manager)));
gtk_tree_view_set_headers_visible (GTK_TREE_VIEW (priv->sources_view),
@@ -278,7 +287,14 @@ _gcal_window_view_changed (GcalMainToolbar *main_toolbar,
GcalViewType view_type,
gpointer user_data)
{
GcalWindow *window;
GcalManager *manager;
window = GCAL_WINDOW (user_data);
manager = _gcal_window_get_manager (window);
gcal_manager_set_new_range (manager, NULL, NULL);
g_print ("GcalViewType in GcalWindow %d\n", view_type);
}
static void