From 83f4b0018ebf8a7566d11d74ad2eb84add5b7984 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Lars=20Gullik=20Bj=C3=B8nnes?= Date: Sun, 11 Aug 2002 20:34:20 +0000 Subject: [PATCH] Some small counters work git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@4936 a592a061-630c-0410-9148-cb99ea01b6c8 --- src/ChangeLog | 25 +++++++++++++++++++------ src/counters.C | 18 ++++++++++++++++-- src/counters.h | 23 ++++++++++++----------- src/paragraph.C | 6 ------ src/paragraph.h | 2 -- src/paragraph_pimpl.h | 7 +------ src/text2.C | 4 ++-- 7 files changed, 50 insertions(+), 35 deletions(-) diff --git a/src/ChangeLog b/src/ChangeLog index 22d5dda7a1..202865fed5 100644 --- a/src/ChangeLog +++ b/src/ChangeLog @@ -1,20 +1,33 @@ +2002-08-11 Lars Gullik Bjønnes + + * paragraph_pimpl.h: remove inclusion of boost/array.hpp, remove + unused class variable counter_, + + * paragraph.[Ch] (getFirstCounter): delete unused function + + * counters.C: include LAssert.h + (reset): add a new function with no arg, change other version to + not have def. arg and to not allow empty arg. + + * text2.C (setCounter): remove empty arg from call to Counters::reset + 2002-08-11 John Levon * Makefile.am: add WordLangTuple.h - + 2002-08-11 Lars Gullik Bjønnes * paragraph.C, ToolbarDefaults.h, kbsequence.h, lyx_main.C, - lyxfunc.C lyxlex_pimpl.C: ws changes only. + lyxfunc.C lyxlex_pimpl.C: ws changes only. * insets/insettext.C: InsetList changes - + * graphics/GraphicsSupport.C (operator()): InsetList changes - + * toc.C (getTocList): InsetList changes - + * paragraph_pimpl.[Ch]: InsetList changes - + * paragraph.[Ch]: InsetList changes * buffer.C (inset_iterator): InsetList changes diff --git a/src/counters.C b/src/counters.C index c6d5745ad1..e9c0ed0455 100644 --- a/src/counters.C +++ b/src/counters.C @@ -18,6 +18,7 @@ #include "counters.h" #include "debug.h" #include "support/lstrings.h" +#include "support/LAssert.h" using std::endl; using std::vector; @@ -198,12 +199,25 @@ void Counters::step(string const & ctr) } } -void Counters::reset(string const & match) + +void Counters::reset() { CounterList::iterator it = counterList.begin(); CounterList::iterator end = counterList.end(); for (; it != end; ++it) { - if (it->first.find(match) != string::npos || match == "") + it->second.reset(); + } +} + + +void Counters::reset(string const & match) +{ + lyx::Assert(!match.empty()); + + CounterList::iterator it = counterList.begin(); + CounterList::iterator end = counterList.end(); + for (; it != end; ++it) { + if (it->first.find(match) != string::npos) it->second.reset(); } } diff --git a/src/counters.h b/src/counters.h index 680005962c..69c4983be8 100644 --- a/src/counters.h +++ b/src/counters.h @@ -45,20 +45,20 @@ public: private: int value_; - /// contains master counter name; master counter is the counter - /// that, if stepped (incremented) zeroes this counter. E.g. + /// contains master counter name; master counter is the counter + /// that, if stepped (incremented) zeroes this counter. E.g. /// "subparagraph"'s master is "paragraph". string master_; }; -/// This is a class of (La)TeX type counters. +/// This is a class of (La)TeX type counters. /// Every instantiation is an array of counters of type Counter. class Counters { public: /// Counters(); - /// + /// //~Counters(); /// Add a new counter to array. void newCounter(string const & newc); @@ -75,30 +75,31 @@ public: /// NOTE sub-slaves not zeroed! That happens at slave's /// first step 0->1. Seems to be sufficient. void step(string const & ctr); - /// Reset counters matched by match string. Empty string matches - /// all. - void reset(string const & match = string()); - /// Copy counters whose name matches match from the &from to + /// Reset all counters. + void reset(); + /// Reset counters matched by match string. + void reset(string const & match); + /// Copy counters whose name matches match from the &from to /// the &to array of counters. Empty string matches all. void copy(Counters & from, Counters & to, string const & match = string()); /// A numeric label's single item, like .1 for subsection number in /// the 2.1.4 subsubsection number label. "first" indicates if this /// is the first item to be displayed, usually chapter or section. string labelItem(string const & ctr, - string const & labeltype, + string const & labeltype, string const & langtype = "latin", bool first = false); /// A complete numeric label, like 2.1.4 for a subsubsection. /// "head" indicates sequence number of first item to be /// displayed, e.g. 0 for chapter, 1 for section. string numberLabel(string const & ctr, - string const & labeltype, + string const & labeltype, string const & langtype = "latin", int head = 0); /// Maps numbers to enumeration of sectioning counter name strings. std::vector enums; std::vector sects; - + private: /// Maps counter (layout) names to actual counters. typedef std::map CounterList; diff --git a/src/paragraph.C b/src/paragraph.C index 5072329651..84822bdf47 100644 --- a/src/paragraph.C +++ b/src/paragraph.C @@ -984,12 +984,6 @@ string const & Paragraph::getLabelstring() const } -int Paragraph::getFirstCounter(int i) const -{ - return pimpl_->counter_[i]; -} - - // the next two functions are for the manual labels string const Paragraph::getLabelWidthString() const { diff --git a/src/paragraph.h b/src/paragraph.h index 8550c4ce42..10023bf801 100644 --- a/src/paragraph.h +++ b/src/paragraph.h @@ -222,8 +222,6 @@ public: /// void applyLayout(LyXLayout_ptr const & new_layout); /// - int getFirstCounter(int i) const; - /// void erase(lyx::pos_type pos); /** the flag determines wether the layout should be copied */ diff --git a/src/paragraph_pimpl.h b/src/paragraph_pimpl.h index 8ccb6e3944..37bb7ebd48 100644 --- a/src/paragraph_pimpl.h +++ b/src/paragraph_pimpl.h @@ -20,8 +20,6 @@ #include "ParagraphParameters.h" #include "counters.h" -#include - class LyXLayout; struct Paragraph::Pimpl { @@ -59,9 +57,7 @@ struct Paragraph::Pimpl { BufferParams const & bparams) const; /// Inset * inset_owner; - /// - boost::array counter_; - + /** A font entry covers a range of positions. Notice that the entries in the list are inserted in random order. I don't think it's worth the effort to implement a more effective @@ -151,7 +147,6 @@ struct Paragraph::Pimpl { ParagraphParameters params; /// Counters ctrs; - private: /// match a string against a particular point in the paragraph bool isTextAt(string const & str, lyx::pos_type pos) const; diff --git a/src/text2.C b/src/text2.C index 8a75ef37a9..a66e3cde46 100644 --- a/src/text2.C +++ b/src/text2.C @@ -1227,12 +1227,12 @@ void LyXText::setCounter(Buffer const * buf, Paragraph * par) const par->params().appendix(par->previous()->params().appendix()); if (!par->params().appendix() && par->params().startOfAppendix()) { par->params().appendix(true); - par->counters().reset(""); + par->counters().reset(); } par->enumdepth = par->previous()->enumdepth; par->itemdepth = par->previous()->itemdepth; } else { - par->counters().reset(""); + par->counters().reset(); par->params().appendix(par->params().startOfAppendix()); par->enumdepth = 0; par->itemdepth = 0;