[LyX/master] Implement Paragraph::getLabel()

Juergen Spitzmueller spitz at lyx.org
Sun Jul 28 14:00:56 UTC 2024


commit a303600b544d9f4c82f2dee77616f821d0051854
Author: Juergen Spitzmueller <spitz at lyx.org>
Date:   Sun Jul 28 15:52:19 2024 +0200

    Implement Paragraph::getLabel()
    
    This function returns the first label (as string) if there is any
---
 src/Paragraph.cpp | 15 +++++++++++++++
 src/Paragraph.h   |  3 +++
 2 files changed, 18 insertions(+)

diff --git a/src/Paragraph.cpp b/src/Paragraph.cpp
index d21e86ebbf..1d239ef5a0 100644
--- a/src/Paragraph.cpp
+++ b/src/Paragraph.cpp
@@ -3350,6 +3350,21 @@ string Paragraph::getID(Buffer const &, OutputParams const &)
 }
 
 
+string Paragraph::getLabel() const
+{
+	for (pos_type i = 0; i < size(); ++i) {
+		if (Inset const * inset = getInset(i)) {
+			InsetCode lyx_code = inset->lyxCode();
+			if (lyx_code == LABEL_CODE) {
+				InsetLabel const * const il = static_cast<InsetLabel const *>(inset);
+				return to_utf8(il->getParam("name"));
+			}
+		}
+	}
+	return string();
+}
+
+
 pos_type Paragraph::firstWordDocBook(XMLStream & xs, OutputParams const & runparams) const
 {
 	pos_type i;
diff --git a/src/Paragraph.h b/src/Paragraph.h
index ef94352f37..ee27e170ec 100644
--- a/src/Paragraph.h
+++ b/src/Paragraph.h
@@ -201,6 +201,9 @@ public:
 	/// Get the id of the paragraph, useful for DocBook
 	std::string getID(Buffer const & buf, OutputParams const & runparams) const;
 
+	/// Get the (first) string of a \label in this paragraph, or empty string
+	std::string getLabel() const;
+
 	/// Output the first word of a paragraph, return the position where it left.
 	pos_type firstWordDocBook(XMLStream & xs, OutputParams const & runparams) const;
 


More information about the lyx-cvs mailing list