Doxygen
Loading...
Searching...
No Matches
StyleData Struct Reference

#include <src/rtfstyle.h>

Collaboration diagram for StyleData:

Public Member Functions

 StyleData ()=default
 StyleData (const DString &reference, const DString &definition)
bool setStyle (const DString &command, const DString &styleName)
DString reference () const
DString definition () const
uint32_t index () const

Private Attributes

uint32_t m_index = 0
DString m_reference
DString m_definition

Detailed Description

Definition at line 58 of file rtfstyle.h.

Constructor & Destructor Documentation

◆ StyleData() [1/2]

StyleData::StyleData ( )
default

References definition(), and reference().

◆ StyleData() [2/2]

StyleData::StyleData ( const DString & reference,
const DString & definition )

Definition at line 286 of file rtfstyle.cpp.

287{
288 reg::Match match;
289 if (reg::search(reference.str(),match,s_clause))
290 {
291 m_index = static_cast<int>(std::stoul(match[1].str()));
292 }
293 else // error
294 {
295 m_index = 0;
296 }
299}
const std::string & str() const
Definition dstring.h:649
bool search(std::string_view str, Match &match, const Ex &re, size_t pos)
Search in a given string str starting at position pos for a match against regular expression re.
Definition regex.cpp:847
bool match(std::string_view str, Match &match, const Ex &re)
Matches a given string str for a match against regular expression re.
Definition regex.cpp:858
static const reg::Ex s_clause(R"(\\s(\d+)\s*)")
DString reference() const
Definition rtfstyle.h:69
DString m_reference
Definition rtfstyle.h:75
uint32_t m_index
Definition rtfstyle.h:74
DString definition() const
Definition rtfstyle.h:70
DString m_definition
Definition rtfstyle.h:76

References definition(), m_definition, m_index, m_reference, reference(), s_clause, reg::search(), and DString::str().

Member Function Documentation

◆ definition()

DString StyleData::definition ( ) const
inline

Definition at line 70 of file rtfstyle.h.

70{ return m_definition; }

References m_definition.

Referenced by RTFGenerator::beginRTFDocument(), StyleData(), and StyleData().

◆ index()

uint32_t StyleData::index ( ) const
inline

Definition at line 71 of file rtfstyle.h.

71{ return m_index; }

References m_index.

Referenced by setStyle().

◆ reference()

DString StyleData::reference ( ) const
inline

Definition at line 69 of file rtfstyle.h.

69{ return m_reference; }

References m_reference.

Referenced by RTFGenerator::beginRTFDocument(), RTFDocVisitor::getStyle(), StyleData(), and StyleData().

◆ setStyle()

bool StyleData::setStyle ( const DString & command,
const DString & styleName )

Definition at line 301 of file rtfstyle.cpp.

302{
303 reg::Match match;
304 if (!reg::search(command.str(),match,s_clause))
305 {
306 err("Style sheet '{}' contains no '\\s' clause.\n{{{}}}\n", styleName, command);
307 return false;
308 }
309 m_index = static_cast<int>(std::stoul(match[1].str()));
310
311 if (size_t index = command.find("\\sbasedon"); index!=DString::npos)
312 {
313 m_reference = command.left(index);
314 m_definition = command.mid(index);
315 }
316
317 return true;
318}
DString mid(size_t index, size_t len=npos) const
Definition dstring.h:322
static constexpr size_t npos
value used to indicate 'not found' or 'to the end of the string', matching std::string::npos
Definition dstring.h:182
size_t find(char c, size_t pos=0) const
Definition dstring.h:243
DString left(size_t len) const
Definition dstring.h:310
#define err(fmt,...)
Definition message.h:127
uint32_t index() const
Definition rtfstyle.h:71

References err, DString::find(), index(), DString::left(), m_definition, m_index, m_reference, DString::mid(), DString::npos, s_clause, reg::search(), and DString::str().

Referenced by loadStylesheet().

Member Data Documentation

◆ m_definition

DString StyleData::m_definition
private

Definition at line 76 of file rtfstyle.h.

Referenced by definition(), setStyle(), and StyleData().

◆ m_index

uint32_t StyleData::m_index = 0
private

Definition at line 74 of file rtfstyle.h.

Referenced by index(), setStyle(), and StyleData().

◆ m_reference

DString StyleData::m_reference
private

Definition at line 75 of file rtfstyle.h.

Referenced by reference(), setStyle(), and StyleData().


The documentation for this struct was generated from the following files: