summaryrefslogtreecommitdiff
path: root/navit/bookmarks.c
diff options
context:
space:
mode:
authorakashihi <akashihi@ffa7fe5e-494d-0410-b361-a75ebd5db220>2010-09-10 09:23:00 +0000
committerakashihi <akashihi@ffa7fe5e-494d-0410-b361-a75ebd5db220>2010-09-10 09:23:00 +0000
commit2872e5d0f10b5bfdbf40ba206416a663f9a6dcaf (patch)
treee54bfab7cc113307853e53c858f5943c70094065 /navit/bookmarks.c
parent675cfb85251d9a779848715a9151cc86fa970fce (diff)
downloadnavit-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.c26
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);