]> git.lyx.org Git - lyx.git/commitdiff
Fix crash in GuiBibtex
authorJuergen Spitzmueller <spitz@lyx.org>
Fri, 5 Apr 2019 15:53:41 +0000 (17:53 +0200)
committerJuergen Spitzmueller <spitz@lyx.org>
Fri, 5 Apr 2019 15:53:41 +0000 (17:53 +0200)
src/frontends/qt4/GuiBibtex.cpp
src/frontends/qt4/GuiSelectionManager.cpp

index d9c19051fbf66fc28bb429910bc5a2a0f83b0a74..8680a384d286e96c63dd92f456788b606d86a933 100644 (file)
@@ -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_);
 }
 
index ed2c640e4ffed720456784e50ffadd15e36eec0c..08259d5539fe18d4269c14e41863758d49dbde70 100644 (file)
@@ -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();
 }