Keep the history object of the location around
This commit is contained in:
parent
ff7092b601
commit
5f27b80ce4
1 changed files with 12 additions and 1 deletions
|
@ -37,6 +37,7 @@ struct _MidoriLocationAction
|
||||||
GdkPixbuf* default_icon;
|
GdkPixbuf* default_icon;
|
||||||
GHashTable* items;
|
GHashTable* items;
|
||||||
KatzeNet* net;
|
KatzeNet* net;
|
||||||
|
KatzeArray* history;
|
||||||
};
|
};
|
||||||
|
|
||||||
struct _MidoriLocationActionClass
|
struct _MidoriLocationActionClass
|
||||||
|
@ -342,6 +343,7 @@ midori_location_action_init (MidoriLocationAction* location_action)
|
||||||
location_action->items = g_hash_table_new_full (g_str_hash, g_str_equal,
|
location_action->items = g_hash_table_new_full (g_str_hash, g_str_equal,
|
||||||
g_free, g_free);
|
g_free, g_free);
|
||||||
location_action->net = katze_net_new ();
|
location_action->net = katze_net_new ();
|
||||||
|
location_action->history = NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
|
@ -359,6 +361,7 @@ midori_location_action_finalize (GObject* object)
|
||||||
|
|
||||||
g_hash_table_destroy (location_action->items);
|
g_hash_table_destroy (location_action->items);
|
||||||
katze_object_assign (location_action->net, NULL);
|
katze_object_assign (location_action->net, NULL);
|
||||||
|
katze_object_assign (location_action->history, NULL);
|
||||||
|
|
||||||
G_OBJECT_CLASS (midori_location_action_parent_class)->finalize (object);
|
G_OBJECT_CLASS (midori_location_action_parent_class)->finalize (object);
|
||||||
}
|
}
|
||||||
|
@ -429,7 +432,8 @@ midori_location_action_set_property (GObject* object,
|
||||||
KatzeArray* history;
|
KatzeArray* history;
|
||||||
GtkTreeModel* model;
|
GtkTreeModel* model;
|
||||||
|
|
||||||
history = g_value_get_object (value);
|
history = g_value_dup_object (value);
|
||||||
|
katze_assign (location_action->history, g_object_ref (history));
|
||||||
model = g_object_get_data (G_OBJECT (history), "midori-location-model");
|
model = g_object_get_data (G_OBJECT (history), "midori-location-model");
|
||||||
midori_location_action_freeze (location_action);
|
midori_location_action_freeze (location_action);
|
||||||
if (model != NULL)
|
if (model != NULL)
|
||||||
|
@ -438,6 +442,10 @@ midori_location_action_set_property (GObject* object,
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
g_object_unref (location_action->model);
|
||||||
|
location_action->model = (GtkTreeModel*)gtk_list_store_new (N_COLS,
|
||||||
|
GDK_TYPE_PIXBUF, G_TYPE_STRING, G_TYPE_STRING,
|
||||||
|
G_TYPE_INT, G_TYPE_BOOLEAN);
|
||||||
/* FIXME: MidoriBrowser is essentially making up for the lack
|
/* FIXME: MidoriBrowser is essentially making up for the lack
|
||||||
of synchronicity of newly added items. */
|
of synchronicity of newly added items. */
|
||||||
midori_location_action_insert_history_item (location_action,
|
midori_location_action_insert_history_item (location_action,
|
||||||
|
@ -470,6 +478,9 @@ midori_location_action_get_property (GObject* object,
|
||||||
case PROP_SECONDARY_ICON:
|
case PROP_SECONDARY_ICON:
|
||||||
g_value_set_string (value, location_action->secondary_icon);
|
g_value_set_string (value, location_action->secondary_icon);
|
||||||
break;
|
break;
|
||||||
|
case PROP_HISTORY:
|
||||||
|
g_value_set_object (value, location_action->history);
|
||||||
|
break;
|
||||||
default:
|
default:
|
||||||
G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
|
G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
|
||||||
break;
|
break;
|
||||||
|
|
Loading…
Reference in a new issue