[LyX/master] Indicate see[also] refs in label and outliner

Juergen Spitzmueller spitz at lyx.org
Wed Nov 2 14:05:04 UTC 2022


commit 975f304185eca53d62de8b36e6fc5f95b2da4fd9
Author: Juergen Spitzmueller <spitz at lyx.org>
Date:   Wed Nov 2 15:56:59 2022 +0100

    Indicate see[also] refs in label and outliner
---
 src/insets/InsetIndex.cpp |   42 ++++++++++++++++++++++++++++++++++--------
 src/insets/InsetIndex.h   |    6 ++++--
 2 files changed, 38 insertions(+), 10 deletions(-)

diff --git a/src/insets/InsetIndex.cpp b/src/insets/InsetIndex.cpp
index b3024bf..5458c83 100644
--- a/src/insets/InsetIndex.cpp
+++ b/src/insets/InsetIndex.cpp
@@ -776,7 +776,8 @@ void InsetIndex::getSeeRefs(otexstream & os, OutputParams const & runparams) con
 }
 
 
-docstring InsetIndex::getSeeAsText(OutputParams const & runparams) const
+docstring InsetIndex::getSeeAsText(OutputParams const & runparams,
+				   bool const asLabel) const
 {
 	Paragraph const & par = paragraphs().front();
 	InsetList::const_iterator it = par.insetList().begin();
@@ -786,9 +787,14 @@ docstring InsetIndex::getSeeAsText(OutputParams const & runparams) const
 			InsetIndexMacro const & iim =
 				static_cast<InsetIndexMacro const &>(inset);
 			if (iim.params().type == InsetIndexMacroParams::See) {
-				otexstringstream os;
-				iim.getLatex(os, runparams);
-				return os.str();
+				if (asLabel) {
+					docstring const l;
+					return iim.getNewLabel(l);
+				} else {
+					otexstringstream os;
+					iim.getLatex(os, runparams);
+					return os.str();
+				}
 			}
 		}
 	}
@@ -796,7 +802,8 @@ docstring InsetIndex::getSeeAsText(OutputParams const & runparams) const
 }
 
 
-std::vector<docstring> InsetIndex::getSeeAlsoesAsText(OutputParams const & runparams) const
+std::vector<docstring> InsetIndex::getSeeAlsoesAsText(OutputParams const & runparams,
+						      bool const asLabel) const
 {
 	std::vector<docstring> seeAlsoes;
 
@@ -808,9 +815,14 @@ std::vector<docstring> InsetIndex::getSeeAlsoesAsText(OutputParams const & runpa
 			InsetIndexMacro const & iim =
 				static_cast<InsetIndexMacro const &>(inset);
 			if (iim.params().type == InsetIndexMacroParams::Seealso) {
-				otexstringstream os;
-				iim.getLatex(os, runparams);
-				seeAlsoes.emplace_back(os.str());
+				if (asLabel) {
+					docstring const l;
+					seeAlsoes.emplace_back(iim.getNewLabel(l));
+				} else {
+					otexstringstream os;
+					iim.getLatex(os, runparams);
+					seeAlsoes.emplace_back(os.str());
+				}
 			}
 		}
 	}
@@ -968,6 +980,13 @@ docstring const InsetIndex::buttonLabel(BufferView const & bv) const
 			res += " " + docstring(1, char_type(0x2023));// TRIANGULAR BULLET
 			res += " " + sublbl;
 		}
+		docstring see = getSeeAsText(rp, true);
+		if (see.empty() && !getSeeAlsoesAsText(rp, true).empty())
+			see = getSeeAlsoesAsText(rp, true).front();
+		if (!see.empty()) {
+			res += " " + docstring(1, char_type(0x261e));// WHITE RIGHT POINTING INDEX
+			res += " " + see;
+		}
 	}
 	if (!insetindexpagerangetranslator_latex().find(params_.range).empty())
 		res += " " + from_ascii(insetindexpagerangetranslator_latex().find(params_.range));
@@ -1032,6 +1051,13 @@ void InsetIndex::addToToc(DocIterator const & cpit, bool output_active,
 			str += " " + docstring(1, char_type(0x2023));// TRIANGULAR BULLET
 			str += " " + sublbl;
 		}
+		docstring see = getSeeAsText(rp, true);
+		if (see.empty() && !getSeeAlsoesAsText(rp, true).empty())
+			see = getSeeAlsoesAsText(rp, true).front();
+		if (!see.empty()) {
+			str += " " + docstring(1, char_type(0x261e));// WHITE RIGHT POINTING INDEX
+			str += " " + see;
+		}
 	}
 	string type = "index";
 	if (buffer().masterBuffer()->params().use_indices)
diff --git a/src/insets/InsetIndex.h b/src/insets/InsetIndex.h
index 742ecae..a89a684 100644
--- a/src/insets/InsetIndex.h
+++ b/src/insets/InsetIndex.h
@@ -113,9 +113,11 @@ private:
 	///
 	void getSeeRefs(otexstream &, OutputParams const &) const;
 	///
-	docstring getSeeAsText(OutputParams const & runparams) const;
+	docstring getSeeAsText(OutputParams const & runparams,
+			       bool const asLabel = false) const;
 	///
-	std::vector<docstring> getSeeAlsoesAsText(OutputParams const & runparams) const;
+	std::vector<docstring> getSeeAlsoesAsText(OutputParams const & runparams,
+						  bool const asLabel = false) const;
 	///
 	bool hasSubentries() const;
 	///


More information about the lyx-cvs mailing list