From: Juergen Spitzmueller Date: Fri, 5 Apr 2019 15:53:41 +0000 (+0200) Subject: Fix crash in GuiBibtex X-Git-Url: https://git.lyx.org/gitweb/?a=commitdiff_plain;h=971a135b41a5c7ce4a412b4e8a48ea0ac46cbfea;p=features.git Fix crash in GuiBibtex --- diff --git a/src/frontends/qt4/GuiBibtex.cpp b/src/frontends/qt4/GuiBibtex.cpp index d9c19051fb..8680a384d2 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 ed2c640e4f..08259d5539 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(); }