[LyX/2.4.1-devel] Put new citation after selected item rather than at end of list.

Richard Kimberly Heck rikiheck at lyx.org
Mon Jun 3 00:54:52 UTC 2024


commit 1d7c8325f29c5da77218e37e1085ae983da356e0
Author: Richard Kimberly Heck <rikiheck at lyx.org>
Date:   Sat Jun 1 20:25:20 2024 -0400

    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<int, QVariant> 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
 


More information about the lyx-cvs mailing list