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(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;