[LyX/master] Amend 9464f0526ef

Juergen Spitzmueller spitz at lyx.org
Tue Jul 30 13:31:50 UTC 2024


commit 9fc11944947d020d7fcb949d8df548e61ad425a5
Author: Juergen Spitzmueller <spitz at lyx.org>
Date:   Tue Jul 30 15:30:41 2024 +0200

    Amend 9464f0526ef
    
    Simplify function
---
 src/BufferView.cpp | 33 ++++++++++++---------------------
 1 file changed, 12 insertions(+), 21 deletions(-)

diff --git a/src/BufferView.cpp b/src/BufferView.cpp
index b7ef6fac94..2a3a9c58c4 100644
--- a/src/BufferView.cpp
+++ b/src/BufferView.cpp
@@ -1667,7 +1667,7 @@ void BufferView::dispatch(FuncRequest const & cmd, DispatchResult & dr)
 	case LFUN_REFERENCE_TO_PARAGRAPH: {
 		vector<string> const pids = getVectorFromString(cmd.getArg(0));
 		string const type = cmd.getArg(1);
-		int id = convert<int>(pids.front());
+		int id = convert<int>(pids.back());
 		if (id < 0)
 			break;
 		int i = 0;
@@ -1686,8 +1686,7 @@ void BufferView::dispatch(FuncRequest const & cmd, DispatchResult & dr)
 				lyx::dispatch(FuncRequest(LFUN_REFERENCE_INSERT, arg));
 				break;
 			} else {
-				// if there is not a label yet, or we do not see it
-				// (since it is in a different buffer),
+				// if there is not a label yet
 				// go to the paragraph (including nested insets) ...
 				lyx::dispatch(FuncRequest(LFUN_BOOKMARK_SAVE, "0"));
 				for (string const & s : pids) {
@@ -1697,24 +1696,16 @@ void BufferView::dispatch(FuncRequest const & cmd, DispatchResult & dr)
 					dit = b->getParFromID(id);
 					lyx::dispatch(FuncRequest(LFUN_PARAGRAPH_GOTO, s));
 				}
-				// ... and try again if we find a label ...
-				label = dit.innerParagraph().getLabelForXRef();
-				string arg;
-				if (!label.empty()) {
-					// if the paragraph has a label, we refer to this
-					arg = (type.empty()) ? label : label + " " + type;
-				} else {
-					// ... if not, insert a new label
-					// we do not want to open the dialog, hence we
-					// do not employ LFUN_LABEL_INSERT
-					InsetCommandParams p(LABEL_CODE);
-					docstring const new_label = dit.getPossibleLabel();
-					p["name"] = new_label;
-					string const data = InsetCommand::params2string(p);
-					lyx::dispatch(FuncRequest(LFUN_INSET_INSERT, data));
-					arg = (type.empty()) ? to_utf8(new_label)
-							     : to_utf8(new_label) + " " + type;
-				}
+				// ... if not, insert a new label
+				// we do not want to open the dialog, hence we
+				// do not employ LFUN_LABEL_INSERT
+				InsetCommandParams p(LABEL_CODE);
+				docstring const new_label = dit.getPossibleLabel();
+				p["name"] = new_label;
+				string const data = InsetCommand::params2string(p);
+				lyx::dispatch(FuncRequest(LFUN_INSET_INSERT, data));
+				string const arg = (type.empty()) ? to_utf8(new_label)
+								  : to_utf8(new_label) + " " + type;
 				// ... and go back to the original position
 				lyx::dispatch(FuncRequest(LFUN_BOOKMARK_GOTO, "0"));
 				// ... to insert the ref


More information about the lyx-cvs mailing list