Made this changes too long ago and can't remember what this was about.
This commit is contained in:
+40
-20
@@ -57,6 +57,7 @@ struct _GcalManagerUnit
|
|||||||
GHashTable *events;
|
GHashTable *events;
|
||||||
|
|
||||||
gboolean enabled;
|
gboolean enabled;
|
||||||
|
GtkTreeIter *row;
|
||||||
};
|
};
|
||||||
|
|
||||||
typedef struct _GcalManagerUnit GcalManagerUnit;
|
typedef struct _GcalManagerUnit GcalManagerUnit;
|
||||||
@@ -309,9 +310,14 @@ gcal_manager_free_unit_data (gpointer data)
|
|||||||
GcalManagerUnit *unit;
|
GcalManagerUnit *unit;
|
||||||
|
|
||||||
unit = (GcalManagerUnit*) data;
|
unit = (GcalManagerUnit*) data;
|
||||||
|
|
||||||
g_clear_object (&(unit->source));
|
g_clear_object (&(unit->source));
|
||||||
g_clear_object (&(unit->client));
|
g_clear_object (&(unit->client));
|
||||||
g_clear_object (&(unit->view));
|
g_clear_object (&(unit->view));
|
||||||
|
|
||||||
|
if (unit->row != NULL)
|
||||||
|
gtk_tree_iter_free (unit->row);
|
||||||
|
|
||||||
g_hash_table_destroy (unit->events);
|
g_hash_table_destroy (unit->events);
|
||||||
|
|
||||||
g_free (unit);
|
g_free (unit);
|
||||||
@@ -325,7 +331,12 @@ gcal_manager_on_client_opened (GObject *source_object,
|
|||||||
ECalClient *client;
|
ECalClient *client;
|
||||||
GcalManagerPrivate *priv;
|
GcalManagerPrivate *priv;
|
||||||
GError *error;
|
GError *error;
|
||||||
|
|
||||||
ESource *source;
|
ESource *source;
|
||||||
|
ESourceSelectable *extension;
|
||||||
|
|
||||||
|
GtkTreeIter iter;
|
||||||
|
GdkColor gdk_color;
|
||||||
|
|
||||||
const gchar *uid;
|
const gchar *uid;
|
||||||
GcalManagerUnit *unit;
|
GcalManagerUnit *unit;
|
||||||
@@ -338,10 +349,25 @@ gcal_manager_on_client_opened (GObject *source_object,
|
|||||||
/* get_object_list */
|
/* get_object_list */
|
||||||
if (priv->query != NULL)
|
if (priv->query != NULL)
|
||||||
{
|
{
|
||||||
uid = e_source_get_uid (e_client_get_source (E_CLIENT (client)));
|
source = e_client_get_source (E_CLIENT (client));
|
||||||
|
uid = e_source_get_uid (source);
|
||||||
unit = (GcalManagerUnit*) g_hash_table_lookup (priv->clients, uid);
|
unit = (GcalManagerUnit*) g_hash_table_lookup (priv->clients, uid);
|
||||||
|
|
||||||
unit->enabled = TRUE;
|
unit->enabled = TRUE;
|
||||||
|
|
||||||
|
/* filling store */
|
||||||
|
extension = E_SOURCE_SELECTABLE (e_source_get_extension (source,
|
||||||
|
E_SOURCE_EXTENSION_CALENDAR));
|
||||||
|
gdk_color_parse (e_source_selectable_get_color (extension), &gdk_color);
|
||||||
|
gtk_list_store_append (priv->sources_model, &iter);
|
||||||
|
gtk_list_store_set (priv->sources_model, &iter,
|
||||||
|
COLUMN_UID, e_source_get_uid (source),
|
||||||
|
COLUMN_NAME, e_source_get_display_name (source),
|
||||||
|
COLUMN_ACTIVE, unit->enabled,
|
||||||
|
COLUMN_COLOR, &gdk_color,
|
||||||
|
-1);
|
||||||
|
unit->row = gtk_tree_iter_copy (&iter);
|
||||||
|
|
||||||
/* setting view */
|
/* setting view */
|
||||||
gcal_manager_reload_view (GCAL_MANAGER (user_data), unit);
|
gcal_manager_reload_view (GCAL_MANAGER (user_data), unit);
|
||||||
}
|
}
|
||||||
@@ -410,7 +436,7 @@ gcal_manager_retry_open_on_timeout (gpointer user_data)
|
|||||||
g_return_val_if_fail (rod->manager != NULL, FALSE);
|
g_return_val_if_fail (rod->manager != NULL, FALSE);
|
||||||
|
|
||||||
e_client_open (rod->client,
|
e_client_open (rod->client,
|
||||||
TRUE,
|
FALSE,
|
||||||
rod->cancellable,
|
rod->cancellable,
|
||||||
gcal_manager_on_client_opened,
|
gcal_manager_on_client_opened,
|
||||||
rod->manager);
|
rod->manager);
|
||||||
@@ -436,11 +462,21 @@ gcal_manager_remove_source (GcalManager *manager,
|
|||||||
ESource *source)
|
ESource *source)
|
||||||
{
|
{
|
||||||
GcalManagerPrivate *priv;
|
GcalManagerPrivate *priv;
|
||||||
|
GcalManagerUnit *unit;
|
||||||
|
|
||||||
g_return_if_fail (GCAL_IS_MANAGER (manager));
|
g_return_if_fail (GCAL_IS_MANAGER (manager));
|
||||||
g_return_if_fail (E_IS_SOURCE (source));
|
g_return_if_fail (E_IS_SOURCE (source));
|
||||||
|
|
||||||
priv = manager->priv;
|
priv = manager->priv;
|
||||||
|
unit = (GcalManagerUnit*) g_hash_table_lookup (priv->clients,
|
||||||
|
e_source_get_uid (source));
|
||||||
|
|
||||||
|
/* removing the object from the model */
|
||||||
|
if (unit->row != NULL)
|
||||||
|
{
|
||||||
|
gtk_list_store_remove (GTK_LIST_STORE (priv->sources_model),
|
||||||
|
unit->row);
|
||||||
|
}
|
||||||
g_hash_table_remove (priv->clients,
|
g_hash_table_remove (priv->clients,
|
||||||
e_source_get_uid (source));
|
e_source_get_uid (source));
|
||||||
}
|
}
|
||||||
@@ -453,10 +489,6 @@ gcal_manager_load_source (GcalManager *manager,
|
|||||||
ECalClient *new_client;
|
ECalClient *new_client;
|
||||||
GcalManagerUnit *unit;
|
GcalManagerUnit *unit;
|
||||||
GError *error;
|
GError *error;
|
||||||
ESourceSelectable *extension;
|
|
||||||
|
|
||||||
GtkTreeIter iter;
|
|
||||||
GdkColor gdk_color;
|
|
||||||
|
|
||||||
priv = manager->priv;
|
priv = manager->priv;
|
||||||
error = NULL;
|
error = NULL;
|
||||||
@@ -491,18 +523,6 @@ gcal_manager_load_source (GcalManager *manager,
|
|||||||
e_source_get_uid (source));
|
e_source_get_uid (source));
|
||||||
}
|
}
|
||||||
|
|
||||||
/* filling store */
|
|
||||||
extension = E_SOURCE_SELECTABLE (e_source_get_extension (source,
|
|
||||||
E_SOURCE_EXTENSION_CALENDAR));
|
|
||||||
gdk_color_parse (e_source_selectable_get_color (extension), &gdk_color);
|
|
||||||
gtk_list_store_append (priv->sources_model, &iter);
|
|
||||||
gtk_list_store_set (priv->sources_model, &iter,
|
|
||||||
COLUMN_UID, e_source_get_uid (source),
|
|
||||||
COLUMN_NAME, e_source_get_display_name (source),
|
|
||||||
COLUMN_ACTIVE, TRUE,
|
|
||||||
COLUMN_COLOR, &gdk_color,
|
|
||||||
-1);
|
|
||||||
|
|
||||||
e_client_open (E_CLIENT (unit->client),
|
e_client_open (E_CLIENT (unit->client),
|
||||||
TRUE,
|
TRUE,
|
||||||
priv->async_ops,
|
priv->async_ops,
|
||||||
@@ -753,7 +773,8 @@ gcal_manager_on_sources_row_changed (GtkTreeModel *store,
|
|||||||
unit = g_hash_table_lookup (priv->clients, source_uid);
|
unit = g_hash_table_lookup (priv->clients, source_uid);
|
||||||
|
|
||||||
/* hack for detecting when the activation was triggered by a button click */
|
/* hack for detecting when the activation was triggered by a button click */
|
||||||
if (! active || unit->enabled == FALSE)
|
if (e_client_is_opened (E_CLIENT (unit->client))
|
||||||
|
&& (! active || unit->enabled == FALSE))
|
||||||
{
|
{
|
||||||
unit->enabled = active;
|
unit->enabled = active;
|
||||||
if (active)
|
if (active)
|
||||||
@@ -762,7 +783,6 @@ gcal_manager_on_sources_row_changed (GtkTreeModel *store,
|
|||||||
gcal_manager_send_fave_events_removed (GCAL_MANAGER (user_data), unit);
|
gcal_manager_send_fave_events_removed (GCAL_MANAGER (user_data), unit);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
g_free (source_uid);
|
g_free (source_uid);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user