commit 6fef1cec1fb4545eb76bf168b30251eaa42bcc40
Author: Juergen Spitzmueller <[email protected]>
Date:   Fri Apr 5 17:53:41 2019 +0200

    Fix crash in GuiBibtex
---
 src/frontends/qt4/GuiBibtex.cpp           |    6 +-----
 src/frontends/qt4/GuiSelectionManager.cpp |   17 +++++++++--------
 2 files changed, 10 insertions(+), 13 deletions(-)

diff --git a/src/frontends/qt4/GuiBibtex.cpp b/src/frontends/qt4/GuiBibtex.cpp
index d9c1905..8680a38 100644
--- a/src/frontends/qt4/GuiBibtex.cpp
+++ b/src/frontends/qt4/GuiBibtex.cpp
@@ -329,11 +329,7 @@ QStringList GuiBibtex::selectedBibs()
 
 void GuiBibtex::databaseChanged()
 {
-       QString const item = 
selectionManager->getSelectedIndex().data().toString();
-       if (!selected_bibs_.contains(item)) {
-               selected_bibs_.append(item);
-       } else
-               selected_bibs_ = selectedBibs();
+       selected_bibs_ = selectedBibs();
        setSelectedBibs(selected_bibs_);
 }
 
diff --git a/src/frontends/qt4/GuiSelectionManager.cpp 
b/src/frontends/qt4/GuiSelectionManager.cpp
index ed2c640..08259d5 100644
--- a/src/frontends/qt4/GuiSelectionManager.cpp
+++ b/src/frontends/qt4/GuiSelectionManager.cpp
@@ -306,18 +306,19 @@ void GuiSelectionManager::deletePB_clicked()
        if (selIdx.isEmpty())
                return;
        QModelIndex idx = selIdx.first();
-       selectedModel->removeRow(idx.row());
-       selectionChanged(); //signal
 
+       int const row = idx.row();
        int nrows = selectedLV->model()->rowCount();
-       if (idx.row() == nrows) //was last item on list
-               idx = idx.sibling(idx.row() - 1, idx.column());
 
-       if (nrows > 1)
-               selectedLV->setCurrentIndex(idx);
-       else if (nrows == 1)
+       selectedModel->removeRow(row);
+       selectionChanged(); //signal
+
+       // select previous item
+       if (nrows > 0)
+               selectedLV->setCurrentIndex(selectedLV->model()->index(row - 1, 
0));
+       else if (nrows == 0)
                selectedLV->setCurrentIndex(selectedLV->model()->index(0, 0));
-       selectedHasFocus_ = (nrows > 0);
+       selectedHasFocus_ = (nrows > 1);
        updateHook();
 }
 

Reply via email to