X-Git-Url: https://git.lyx.org/gitweb/?a=blobdiff_plain;f=src%2FTocBackend.h;h=c3a178d12ff32900da9df475aa283f2500b4ab5b;hb=c69da75dfca389b219e269f9d5668215f398c24b;hp=3f2ee419c07b8e97c29793f5a0b1eacb4d8513b3;hpb=b9aabe6d891b5347586bdfaeff407552213f94bb;p=features.git diff --git a/src/TocBackend.h b/src/TocBackend.h index 3f2ee419c0..c3a178d12f 100644 --- a/src/TocBackend.h +++ b/src/TocBackend.h @@ -55,13 +55,14 @@ class TocItem { public: /// Default constructor for STL containers. - TocItem() : dit_(0), depth_(0), output_(false) {} + TocItem() : dit_(0), depth_(0), output_(false), missing_(false) {} /// TocItem(DocIterator const & dit, int depth, docstring const & s, bool output_active, - FuncRequest action = FuncRequest(LFUN_UNKNOWN_ACTION) + bool missing = false, + FuncRequest const & action = FuncRequest(LFUN_UNKNOWN_ACTION) ); /// DocIterator const & dit() const { return dit_; } @@ -74,7 +75,9 @@ public: /// bool isOutput() const { return output_; } /// - void setAction(FuncRequest a) { action_ = a; } + bool isMissing() const { return missing_; } + /// + void setAction(FuncRequest const & a) { action_ = a; } /// custom action, or the default one (paragraph-goto) if not customised FuncRequest action() const; @@ -92,6 +95,8 @@ private: docstring str_; /// Is this item in a note, inactive branch, etc? bool output_; + /// Is this item missing, e.g. missing label? + bool missing_; /// Custom action FuncRequest action_; }; @@ -113,8 +118,10 @@ public: void setBuffer(Buffer const * buffer) { buffer_ = buffer; } /// void update(bool output_active, UpdateType utype); + /// + void reset(); /// \return true if the item was updated. - bool updateItem(DocIterator const & pit); + bool updateItem(DocIterator const & pit) const; /// TocList const & tocs() const { return tocs_; } /// never null @@ -133,17 +140,23 @@ public: /// void writePlaintextTocList(std::string const & type, odocstringstream & os, size_t max_length) const; - /// + /// Localised name for type docstring outlinerName(std::string const & type) const; + /// Add a new (localised) name if yet unknown + void addName(std::string const & type, docstring const & name); /// Whether a toc type is less important and appears in the "Other lists" /// submenu static bool isOther(std::string const & type); private: + /// + void resetOutlinerNames(); /// TocList tocs_; /// - std::map> builders_; + std::map> builders_; + /// Stores localised outliner names from this buffer and its children + std::map outliner_names_; /// Buffer const * buffer_; }; // TocBackend