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