From: <aka...@us...> - 2010-03-29 12:19:11
|
Revision: 3099 http://navit.svn.sourceforge.net/navit/?rev=3099&view=rev Author: akashihi Date: 2010-03-29 12:19:04 +0000 (Mon, 29 Mar 2010) Log Message: ----------- Add:core:Added bookmark rename function Modified Paths: -------------- trunk/navit/navit/bookmarks.c trunk/navit/navit/bookmarks.h Modified: trunk/navit/navit/bookmarks.c =================================================================== --- trunk/navit/navit/bookmarks.c 2010-03-28 15:54:06 UTC (rev 3098) +++ trunk/navit/navit/bookmarks.c 2010-03-29 12:19:04 UTC (rev 3099) @@ -390,6 +390,47 @@ return FALSE; } + +int +bookmarks_rename_bookmark(struct bookmarks *this_, const char *oldName, const char* newName) { + struct bookmark_item_priv *b_item; + struct pcoord pc; + char *path; + int result; + + b_item=(struct bookmark_item_priv*)g_hash_table_lookup(this_->bookmarks_hash,oldName); + if (b_item) { + this_->bookmarks_list=g_list_first(this_->bookmarks_list); + this_->bookmarks_list=g_list_remove(this_->bookmarks_list,b_item); + + pc.x=this_->clipboard->c.x; + pc.y=this_->clipboard->c.y; + pc.pro=projection_mg; //Bookmarks are always stored in mg + + //Check if we have to parse the tree + if ((path=strrchr(oldName,'/'))) { + char *fullName=g_new0(char,path-oldName+strlen(newName)+2); + memcpy(fullName,oldName,path-oldName); + memcpy(fullName+(path-oldName),"/",1); + memcpy(fullName+(path-oldName)+1,newName,strlen(newName)); + bookmarks_add_bookmark(this_,&pc,fullName); + + g_free(fullName); + } else { + bookmarks_add_bookmark(this_,&pc,newName); + } + + result=bookmarks_store_bookmarks_to_file(this_,0,0); + + callback_list_call_attr_0(this_->attr_cbl, attr_bookmark_map); + bookmarks_clear_hash(this_); + bookmarks_load_hash(this_); + + } + + return result; +} + /** * @param limit Limits the number of entries in the "backlog". Set to 0 for "infinite" */ Modified: trunk/navit/navit/bookmarks.h =================================================================== --- trunk/navit/navit/bookmarks.h 2010-03-28 15:54:06 UTC (rev 3098) +++ trunk/navit/navit/bookmarks.h 2010-03-29 12:19:04 UTC (rev 3099) @@ -33,6 +33,7 @@ int bookmarks_cut_bookmark(struct bookmarks *this_, const char *description); int bookmarks_copy_bookmark(struct bookmarks *this_, const char *description); int bookmarks_paste_bookmark(struct bookmarks *this_, const char *path); +int bookmarks_rename_bookmark(struct bookmarks *this_, const char *oldName, const char* newName); int bookmarks_del_bookmark(struct bookmarks *this_, const char *description); struct map* bookmarks_get_map(struct bookmarks *this_); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |