aboutsummaryrefslogtreecommitdiffstats
path: root/src/bookmarks/ephy-bookmarksbar-model.c
diff options
context:
space:
mode:
authorChristian Persch <chpe@cvs.gnome.org>2004-06-10 03:56:48 +0800
committerChristian Persch <chpe@src.gnome.org>2004-06-10 03:56:48 +0800
commit1f2d796e969302d64a1ec00b81b57ae594e12a9e (patch)
tree49ae8eb3e7609743c79c7cceb806cbc26355896e /src/bookmarks/ephy-bookmarksbar-model.c
parent029c9d46c634e62950ca2761deb0159f90a45cac (diff)
downloadgsoc2013-epiphany-1f2d796e969302d64a1ec00b81b57ae594e12a9e.tar
gsoc2013-epiphany-1f2d796e969302d64a1ec00b81b57ae594e12a9e.tar.gz
gsoc2013-epiphany-1f2d796e969302d64a1ec00b81b57ae594e12a9e.tar.bz2
gsoc2013-epiphany-1f2d796e969302d64a1ec00b81b57ae594e12a9e.tar.lz
gsoc2013-epiphany-1f2d796e969302d64a1ec00b81b57ae594e12a9e.tar.xz
gsoc2013-epiphany-1f2d796e969302d64a1ec00b81b57ae594e12a9e.tar.zst
gsoc2013-epiphany-1f2d796e969302d64a1ec00b81b57ae594e12a9e.zip
2004-06-09 Christian Persch <chpe@cvs.gnome.org>
* lib/egg/egg-editable-toolbar.c: (drag_data_get_cb), (set_item_drag_source), (create_item_from_action), (create_item), (drag_data_received_cb), (egg_editable_toolbar_set_edit_mode): * lib/egg/egg-toolbar-editor.c: (model_has_action): * lib/egg/egg-toolbars-model.c: (egg_toolbars_model_to_xml), (toolbars_item_new), (free_item_node), (egg_toolbars_model_add_separator), (impl_add_item), (parse_item_list), (egg_toolbars_model_load), (impl_get_item_name), (egg_toolbars_model_class_init), (egg_toolbars_model_init), (egg_toolbars_model_item_nth), (egg_toolbars_model_get_item_id), (egg_toolbars_model_get_item_name): * lib/egg/egg-toolbars-model.h: * src/bookmarks/ephy-bookmarksbar-model.c: (get_toolbar_and_item_pos), (item_added_cb), (impl_get_item_name), (ephy_bookmarksbar_model_class_init): * src/toolbar.c: (toolbar_get_type), (toolbar_added_cb), (ephy_toolbar_realize), (ephy_toolbar_unrealize), (toolbar_class_init):
Diffstat (limited to 'src/bookmarks/ephy-bookmarksbar-model.c')
-rwxr-xr-xsrc/bookmarks/ephy-bookmarksbar-model.c54
1 files changed, 34 insertions, 20 deletions
diff --git a/src/bookmarks/ephy-bookmarksbar-model.c b/src/bookmarks/ephy-bookmarksbar-model.c
index 34b80e004..cc5bdf773 100755
--- a/src/bookmarks/ephy-bookmarksbar-model.c
+++ b/src/bookmarks/ephy-bookmarksbar-model.c
@@ -113,8 +113,8 @@ get_toolbar_and_item_pos (EphyBookmarksBarModel *model,
const char *i_name;
gboolean is_separator;
- egg_toolbars_model_item_nth (eggmodel, t,
- i, &is_separator, NULL, &i_name);
+ egg_toolbars_model_item_nth (EGG_TOOLBARS_MODEL (model),
+ t , i, &is_separator, &i_name, NULL);
g_return_val_if_fail (i_name != NULL, FALSE);
if (strcmp (i_name, name) == 0)
@@ -300,14 +300,14 @@ item_added_cb (EphyBookmarksBarModel *model,
int position)
{
EphyNode *node;
- const char *name;
+ const char *i_name;
gboolean is_separator;
egg_toolbars_model_item_nth (EGG_TOOLBARS_MODEL (model), toolbar_position,
- position, &is_separator, NULL, &name);
- if (!is_separator && g_str_has_prefix (name, "GoBookmark-"))
+ position, &is_separator, &i_name, NULL);
+ if (!is_separator && g_str_has_prefix (i_name, "GoBookmark-"))
{
- node = ephy_bookmarksbar_model_get_node (model, name);
+ node = ephy_bookmarksbar_model_get_node (model, i_name);
g_return_if_fail (node != NULL);
ephy_node_signal_connect_object (node,
@@ -319,26 +319,40 @@ item_added_cb (EphyBookmarksBarModel *model,
save_changes (model);
}
-static gboolean
-impl_add_item (EggToolbarsModel *eggmodel,
- int toolbar_position,
- int position,
- const char *name,
- const char *type)
+static char *
+impl_get_item_name (EggToolbarsModel *eggmodel,
+ const char *type,
+ const char *id)
{
EphyBookmarksBarModel *model = EPHY_BOOKMARKSBAR_MODEL (eggmodel);
- gboolean is_bookmark;
+ EphyNode *node;
+
+ if (strcmp (type, EPHY_DND_TOPIC_TYPE) == 0)
+ {
+ char *uri;
- is_bookmark = strcmp (type, EPHY_DND_TOPIC_TYPE) == 0 ||
- strcmp (type, EPHY_DND_URL_TYPE) == 0;
+ node = ephy_bookmarksbar_model_get_node (model, id);
+ g_return_val_if_fail (node != NULL, NULL);
- if (!is_bookmark || !get_toolbar_and_item_pos (model, name, NULL, NULL))
+ uri = ephy_bookmarks_get_topic_uri
+ (model->priv->bookmarks, node);
+
+ return uri;
+ }
+ else if (strcmp (type, EPHY_DND_URL_TYPE) == 0)
{
- return EGG_TOOLBARS_MODEL_CLASS (parent_class)->add_item
- (eggmodel, toolbar_position, position, name, type);
+ const char *name;
+
+ node = ephy_bookmarksbar_model_get_node (model, id);
+ g_return_val_if_fail (node != NULL, NULL);
+
+ name = ephy_node_get_property_string
+ (node, EPHY_NODE_BMK_PROP_LOCATION);
+
+ return g_strdup (name);
}
- return FALSE;
+ return EGG_TOOLBARS_MODEL_CLASS (parent_class)->get_item_name (eggmodel, type, id);
}
static char *
@@ -558,7 +572,7 @@ ephy_bookmarksbar_model_class_init (EphyBookmarksBarModelClass *klass)
object_class->set_property = ephy_bookmarksbar_model_set_property;
object_class->get_property = ephy_bookmarksbar_model_get_property;
- eggclass->add_item = impl_add_item;
+ eggclass->get_item_name = impl_get_item_name;
eggclass->get_item_id = impl_get_item_id;
eggclass->get_item_type = impl_get_item_type;