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();
}