diff options
author | akashihi <akashihi@ffa7fe5e-494d-0410-b361-a75ebd5db220> | 2010-09-10 09:23:00 +0000 |
---|---|---|
committer | akashihi <akashihi@ffa7fe5e-494d-0410-b361-a75ebd5db220> | 2010-09-10 09:23:00 +0000 |
commit | 2872e5d0f10b5bfdbf40ba206416a663f9a6dcaf (patch) | |
tree | e54bfab7cc113307853e53c858f5943c70094065 /navit/bookmarks.c | |
parent | 675cfb85251d9a779848715a9151cc86fa970fce (diff) | |
download | navit-svn-2872e5d0f10b5bfdbf40ba206416a663f9a6dcaf.tar.gz |
Add:core:Added dbus signal on bookmarks add/remove operations
git-svn-id: http://svn.code.sf.net/p/navit/code/trunk/navit@3562 ffa7fe5e-494d-0410-b361-a75ebd5db220
Diffstat (limited to 'navit/bookmarks.c')
-rw-r--r-- | navit/bookmarks.c | 26 |
1 files changed, 26 insertions, 0 deletions
diff --git a/navit/bookmarks.c b/navit/bookmarks.c index 39384987..73ba2dcf 100644 --- a/navit/bookmarks.c +++ b/navit/bookmarks.c @@ -445,6 +445,28 @@ bookmarks_write_center_to_file(struct bookmarks *this_, char *file) return; } +static void +bookmarks_emit_dbus_signal(struct bookmarks *this_, struct coord *c, const char *description,int create) +{ + struct attr attr1,attr2,attr3,attr4,cb,*attr_list[5]; + int valid=0; + attr1.type=attr_type; + attr1.u.str="bookmark"; + attr2.type=attr_data; + attr2.u.str=create ? "create" : "delete"; + attr3.type=attr_data; + attr3.u.str=(char *)description; + attr4.type=attr_coord; + attr4.u.pcoord=c; + attr_list[0]=&attr1; + attr_list[1]=&attr2; + attr_list[2]=&attr3; + attr_list[3]=&attr4; + attr_list[4]=NULL; + if (navit_get_attr(this_->parent->u.navit, attr_callback_list, &cb, NULL)) + callback_list_call_attr_4(cb.u.callback_list, attr_command, "dbus_send_signal", attr_list, NULL, &valid); +} + /** * Record the given set of coordinates as a bookmark * @@ -481,6 +503,8 @@ bookmarks_add_bookmark(struct bookmarks *this_, struct pcoord *pc, const char *d bookmarks_clear_hash(this_); bookmarks_load_hash(this_); + bookmarks_emit_dbus_signal(this_,&(b_item->c),description,TRUE); + return result; } @@ -568,6 +592,8 @@ bookmarks_delete_bookmark(struct bookmarks *this_, const char *label) { bookmarks_clear_hash(this_); bookmarks_load_hash(this_); + bookmarks_emit_dbus_signal(this_,&(data->c),label,FALSE); + return result; } this_->current->iter=g_list_next(this_->current->iter); |