From 1d7c8325f29c5da77218e37e1085ae983da356e0 Mon Sep 17 00:00:00 2001 From: Richard Kimberly Heck Date: Sat, 1 Jun 2024 20:25:20 -0400 Subject: [PATCH] Put new citation after selected item rather than at end of list. Fixes bug #12940. Patch from Daniel. (cherry picked from commit 40ae8644f9f81576033ff1f8f56428946029b4f4) --- src/frontends/qt/GuiSelectionManager.cpp | 15 ++++++++++++--- status.24x | 2 ++ 2 files changed, 14 insertions(+), 3 deletions(-) diff --git a/src/frontends/qt/GuiSelectionManager.cpp b/src/frontends/qt/GuiSelectionManager.cpp index d99cd23897..55335d08e2 100644 --- a/src/frontends/qt/GuiSelectionManager.cpp +++ b/src/frontends/qt/GuiSelectionManager.cpp @@ -285,17 +285,26 @@ void GuiSelectionManager::addPB_clicked() return; QModelIndex const idxToAdd = selIdx.first(); - int const srows = selectedModel->rowCount(); + // Add item after selected item + int const currentRow = selectedLV->currentIndex().row(); + int const srows = currentRow == -1 ? selectedModel->rowCount() : + currentRow + 1; QMap qm = availableModel->itemData(idxToAdd); - insertRowToSelected(srows, qm); + bool const isAdded = insertRowToSelected(srows, qm); selectionChanged(); //signal - + QModelIndex const idx = selectedLV->currentIndex(); if (idx.isValid()) selectedLV->setCurrentIndex(idx); + // select and show last added item + if (isAdded) { + QModelIndex idx = selectedModel->index(srows, 0); + selectedLV->setCurrentIndex(idx); + } + updateHook(); } diff --git a/status.24x b/status.24x index f4ab64b448..830cf44644 100644 --- a/status.24x +++ b/status.24x @@ -88,6 +88,8 @@ What's new - Allow "longest label" to be empty (bug 11934). +- Put new citation after selected item rather than at end of list (bug 12940). + * INTERNALS