From 1ffd6fa762a9c709b2ae7ba583139c6ef878b784 Mon Sep 17 00:00:00 2001 From: Eugen Geist Date: Mon, 23 Mar 2015 17:35:55 +0000 Subject: [PATCH] Improved recognition of selected bookmarks for deletion. Removed FIXME annotation and fixed the recognition of selected rows in bookmarklist. Signed-off-by: Jean-Baptiste Kempf --- modules/gui/qt4/dialogs/bookmarks.cpp | 13 ++++++------- 1 file changed, 6 insertions(+), 7 deletions(-) diff --git a/modules/gui/qt4/dialogs/bookmarks.cpp b/modules/gui/qt4/dialogs/bookmarks.cpp index bfea0eb061..4a8750c47d 100644 --- a/modules/gui/qt4/dialogs/bookmarks.cpp +++ b/modules/gui/qt4/dialogs/bookmarks.cpp @@ -179,20 +179,19 @@ void BookmarksDialog::del() input_thread_t *p_input = THEMIM->getInput(); if( !p_input ) return; - QModelIndexList selected = bookmarksList->selectionModel()->selectedIndexes(); + QModelIndexList selected = bookmarksList->selectionModel()->selectedRows(); if ( !selected.empty() ) { b_ignore_updates = true; + /* Sort needed to make sure that selected elements are deleted in descending + order, otherwise the indexes might change and wrong bookmarks are deleted. */ + qSort( selected.begin(), selected.end() ); QModelIndexList::Iterator it = selected.end(); for( --it; it != selected.begin(); it-- ) { - /* FIXME: Find out why selectedIndexes() doesn't follow the - SelectRows selectionBehavior() and returns all columns */ - if ( (*it).column() == 0 ) - input_Control( p_input, INPUT_DEL_BOOKMARK, (*it).row() ); - } - if ( (*it).column() == 0 ) input_Control( p_input, INPUT_DEL_BOOKMARK, (*it).row() ); + } + input_Control( p_input, INPUT_DEL_BOOKMARK, (*it).row() ); b_ignore_updates = false; update(); } -- 2.39.2