summaryrefslogtreecommitdiff
path: root/src/gui/panels/bookmarks.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/gui/panels/bookmarks.c')
-rw-r--r--src/gui/panels/bookmarks.c64
1 files changed, 47 insertions, 17 deletions
diff --git a/src/gui/panels/bookmarks.c b/src/gui/panels/bookmarks.c
index 60daf67..b3af70c 100644
--- a/src/gui/panels/bookmarks.c
+++ b/src/gui/panels/bookmarks.c
@@ -579,41 +579,71 @@ static void on_collection_content_changed(GDbCollection *collec, DBAction action
VMPA_BUFFER(virt); /* Adresse virtuelle */
GtkTreeIter iter; /* Point d'insertion */
+ GtkTreeModel *model; /* Modèle de gestion courant */
+ GDbBookmark *displayed; /* Elément de collection */
+ if (action == DBA_ADD_ITEM || (action == DBA_CHANGE_STATE && g_db_item_is_active(G_DB_ITEM(bookmark))))
+ {
+ store = GTK_TREE_STORE(gtk_tree_view_get_model(panel->treeview));
- printf(" Passage :: %d\n", action);
+ format = g_loaded_binary_get_format(panel->binary);
- store = GTK_TREE_STORE(gtk_tree_view_get_model(panel->treeview));
+ proc = g_loaded_binary_get_processor(panel->binary);
+ msize = g_arch_processor_get_memory_size(proc);
+ g_object_unref(G_OBJECT(proc));
- format = g_loaded_binary_get_format(panel->binary);
- proc = g_loaded_binary_get_processor(panel->binary);
- msize = g_arch_processor_get_memory_size(proc);
- g_object_unref(G_OBJECT(proc));
+ addr = g_db_bookmark_get_address(bookmark);
+ vmpa2_phys_to_string(addr, msize, phys, NULL);
+ vmpa2_virt_to_string(addr, msize, virt, NULL);
+ gtk_tree_store_append(store, &iter, NULL);
+ gtk_tree_store_set(store, &iter,
+ BMC_BOOKMARK, bookmark,
+ BMC_PICTURE, G_BOOKMARKS_PANEL_GET_CLASS(panel)->bookmark_img,
+ BMC_PHYSICAL, phys,
+ BMC_VIRTUAL, virt,
+ BMC_COMMENT, g_db_bookmark_get_comment(bookmark),
+ -1);
- addr = g_db_bookmark_get_address(bookmark);
- vmpa2_phys_to_string(addr, msize, phys, NULL);
- vmpa2_virt_to_string(addr, msize, virt, NULL);
- gtk_tree_store_append(store, &iter, NULL);
- gtk_tree_store_set(store, &iter,
- BMC_BOOKMARK, bookmark,
- BMC_PICTURE, G_BOOKMARKS_PANEL_GET_CLASS(panel)->bookmark_img,
- BMC_PHYSICAL, phys,
- BMC_VIRTUAL, virt,
- BMC_COMMENT, g_db_bookmark_get_comment(bookmark),
- -1);
+ }
+
+ else /*if (action == DBA_CHANGE_STATE && g_db_item_is_active(G_DB_ITEM(bookmark)))*/
+ {
+
+ store = GTK_TREE_STORE(gtk_tree_view_get_model(panel->treeview));
+ model = GTK_TREE_MODEL(store);
+
+
+ if (gtk_tree_model_get_iter_first(model, &iter))
+ do
+ {
+ gtk_tree_model_get(model, &iter, BMC_BOOKMARK, &displayed, -1);
+ if (bookmark == displayed)
+ {
+ gtk_tree_store_remove(store, &iter);
+ break;
+ }
+
+ g_object_unref(G_OBJECT(displayed));
+
+ }
+ while (gtk_tree_model_iter_next(model, &iter));
+
+
+
+ }
}