Commit Graph

53 Commits

Author SHA1 Message Date
Jean-Marc Lasgouttes
1d08af621d Implement on screen numbering for Subequation module
The module subequation allows to number equations in the "Subfigure"
inset to be numbered (1a), (1b), (1c), etc.

To implement this on screen, we need to redefine temporarily the
"equation" counter to use this different numbering.

To this end, implement Counters::copy method that can be used to
backup full counter definitions.

Fixes bug #12567.
2022-07-26 00:49:09 +02:00
Jean-Marc Lasgouttes
f5c7acb140 Revert "Implement on screen numbering for Subequation module"
This reverts commit c6f35b6ad6.
2022-07-26 00:47:28 +02:00
Jean-Marc Lasgouttes
c6f35b6ad6 Implement on screen numbering for Subequation module
The module subequation allows to number equations in the "Subfigure"
inset to be numbered (1a), (1b), (1c), etc.

To implement this on screen, we need to redefine temporarily the
"equation" counter to use this different numbering.

To this end, implement Counters::copy method that can be used to
backup full counter definitions.

Fixes bug #12567.
2022-07-25 23:53:46 +02:00
Richard Kimberly Heck
ae2ce7a86a LaTeXName tag for counters. Layout format change. 2020-12-05 16:46:33 -05:00
Yuriy Skalko
00d07d6732 Remove unused Counters::copy 2020-11-29 00:25:27 +02:00
Yuriy Skalko
8cb728c2d7 Constify 2020-11-27 12:16:45 +02:00
Richard Kimberly Heck
39f997048e Remove 'slave' terminology from Counters.cpp.
And with it, 'master'. That is less problematic by itself (so I'm not
worried about 'master document'), but here it doesn't make a lot of
sense without 'slave'.
2020-11-02 17:09:59 -05:00
Enrico Forestieri
d2d33a6a1f Fix compilation on cygwin 2020-10-23 15:00:23 +02:00
Yuriy Skalko
196d9caeb0 Clean includes using the output of iwyu tool 2020-10-20 11:38:55 +03:00
Yuriy Skalko
919a06718a Constify 2020-10-12 15:06:16 +02:00
Richard Kimberly Heck
0f4b60c642 GuiNames for float counters. 2020-05-02 23:17:17 -04:00
Richard Kimberly Heck
666f90cdbb Use GuiNames for counters. 2020-05-02 23:17:16 -04:00
Richard Kimberly Heck
684d27c0fb New counter manipulation inset.
This inset allows counters to be set, reset, saved, restored, etc,
both in the LyX GUI and in the output; optionally, the effect can be
limited to the GUI. Of course, LaTeX provides means for doing all of
these things, so they could previously be done with ERT, as far as
the output is concerned. But there was no mechanism for manipulating
counters in the GUI and none for other output formats.
2020-04-30 23:09:36 -04:00
Richard Kimberly Heck
5baca8171f Use ranges, fix warning 2020-02-28 01:48:10 -05:00
Jean-Marc Lasgouttes
f5f2f5b7ea Revert "Use swap in InsetText::updateBuffer for notes ad friends"
This reverts commit 05d3a64952.
2018-09-18 23:07:48 +02:00
Jean-Marc Lasgouttes
05d3a64952 Use swap in InsetText::updateBuffer for notes ad friends
Avoid as much as possible to do full copies of all counters, since
that can be exensive. Unfortunately, it is just posible when we want
to restore the saved counters.

Explanations why we use friend swap is here:
https://stackoverflow.com/questions/5695548/public-friend-swap-member-function

Part of bug #5973.
2018-07-22 12:35:05 +02:00
Richard Heck
51aebc9327 Fix whitespace at EOL. 2017-07-03 13:46:30 -04:00
Juergen Spitzmueller
0eb651a2cf New layout tags for better counter handling
* ResumeCounter: allow to resume an (enumerate) counter
* StepMasterCounter: allow to increase a master counter
2016-10-14 20:08:12 +02:00
Jean-Marc Lasgouttes
72e038f03e When a counter is stepped, reset recursively all slaves
Fixes bug #10063.
2016-05-28 17:43:01 -04:00
Juergen Spitzmueller
e359d8f5ca Fix caption counter in longtables (see #8993). 2014-02-25 08:00:43 +01:00
Richard Heck
2374229cc6 Introduce InitialValue tag for counters. Fixes bug #8707. 2013-06-01 17:42:08 -04:00
Richard Heck
152aba682f OK, the previous idea, that we don't need to check the masters of other
counters, was silly. So here we do.


git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@37198 a592a061-630c-0410-9148-cb99ea01b6c8
2011-01-13 01:47:41 +00:00
Richard Heck
49436e4c2d Add NoCounter layout tag. When working on output of equation numbers, I
noticed that article, for example, still has a counter "chapter". This
surprised me.


git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@37193 a592a061-630c-0410-9148-cb99ea01b6c8
2011-01-12 22:53:41 +00:00
Richard Heck
18da8d44c1 Add some comments.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@36791 a592a061-630c-0410-9148-cb99ea01b6c8
2010-12-09 18:10:44 +00:00
Richard Heck
7e33edc3c3 Apparently deques aren't so cool.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@36709 a592a061-630c-0410-9148-cb99ea01b6c8
2010-12-03 22:42:22 +00:00
Richard Heck
31fcb5c97e Save a header: We don't really need a vector here.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@36667 a592a061-630c-0410-9148-cb99ea01b6c8
2010-12-02 21:11:08 +00:00
Richard Heck
59760159e2 Typo.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@36666 a592a061-630c-0410-9148-cb99ea01b6c8
2010-12-02 21:05:45 +00:00
Richard Heck
09466ad2db Some cleanup of the counters code.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@36663 a592a061-630c-0410-9148-cb99ea01b6c8
2010-12-02 20:22:10 +00:00
Richard Heck
d65020b293 s/updateLabels/updateBuffer/g, per a suggestion of Abdel's.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@33613 a592a061-630c-0410-9148-cb99ea01b6c8
2010-03-03 22:13:45 +00:00
Richard Heck
c2ac70552c Introduce a "formatted counter" for use with formatted reference during
XHTML output.


git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@33113 a592a061-630c-0410-9148-cb99ea01b6c8
2010-01-20 20:33:36 +00:00
Richard Heck
f1b8f4d059 Make the new argument to step() mandatory, and add a comment to
sgml::OpenTag().


git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@33112 a592a061-630c-0410-9148-cb99ea01b6c8
2010-01-20 19:47:27 +00:00
Richard Heck
caa4e94bf0 Get rid of some magic booleans in updateLabels() and related routines.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@33110 a592a061-630c-0410-9148-cb99ea01b6c8
2010-01-20 19:42:12 +00:00
Richard Heck
22dc345e8c Better XHTML output for InsetRef.
The idea here is to implement something like \refstepcounter for LyX. We
do this by tracking the "active" counter in Counters.cpp. We also have
to track when we go in and out of environments to which counters are
local, and so on and so forth.

This all gets done in updateLabels(), but only if we are producing
output, which is why I added the output boolean a while ago.

I expect there are bugs in here, though it seems to work pretty well
with the documents I've tested.


git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@33108 a592a061-630c-0410-9148-cb99ea01b6c8
2010-01-20 19:03:17 +00:00
Richard Heck
f0a5d099b9 Style.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@31999 a592a061-630c-0410-9148-cb99ea01b6c8
2009-11-15 01:18:13 +00:00
Richard Heck
1f8bf874aa IfStyle and IfCounter tags for layout. Docs to follow.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@30989 a592a061-630c-0410-9148-cb99ea01b6c8
2009-08-12 14:50:01 +00:00
Jean-Marc Lasgouttes
e9d19b82d4 Make sure that the new caching mechanism for flattened labels respects languages.
* Counters.cpp (flatLabelString): return a cache of the flattened strings for each used language
 * Counters.cpp (theCounter, counterLabel, flattenLabelString): add a lang parameter; in theCounter, populate the cache as needed.

 * insets/InsetCaption.cpp:
 * insets/InsetFoot.cpp:
 * insets/InsetBibitem.cpp:
 * insets/InsetCollapsable.cpp:
 * Paragraph.cpp:
 * Buffer.cpp: pass a language argument to counter methods.

 * Paragraph.cpp (translateIfPossible): use the function with same name in gettext.cpp.



git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@30520 a592a061-630c-0410-9148-cb99ea01b6c8
2009-07-12 20:09:53 +00:00
Jean-Marc Lasgouttes
c355edfb6d revert r30515: too many files there
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@30516 a592a061-630c-0410-9148-cb99ea01b6c8
2009-07-12 17:30:56 +00:00
Jean-Marc Lasgouttes
834bfe5e21 fix a couple warnings after the number localization patch
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@30515 a592a061-630c-0410-9148-cb99ea01b6c8
2009-07-12 17:28:46 +00:00
Jean-Marc Lasgouttes
19e6f30b18 cut-and-paste made me do it, I swear
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@29355 a592a061-630c-0410-9148-cb99ea01b6c8
2009-04-20 09:46:52 +00:00
Jean-Marc Lasgouttes
8d0fcad676 Speedup the expandLabel by avoiding the recursive part. The labelstrings
are computed recursively to get rid of any \thexxx string by the method
flattenLabelString. The values are cached in Counter objects.

On my mac, the total time (updatelabels+redraw) goes down by 30%. YMMV.


git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@29342 a592a061-630c-0410-9148-cb99ea01b6c8
2009-04-19 20:05:26 +00:00
Jean-Marc Lasgouttes
22e92f0d6f constify counters code and rename private variable counterList
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@29323 a592a061-630c-0410-9148-cb99ea01b6c8
2009-04-19 10:06:17 +00:00
André Pönitz
f1cba8ff64 more latin1..utf8 schanges. all of src/* should be utf8 now
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@27425 a592a061-630c-0410-9148-cb99ea01b6c8
2008-11-14 15:58:50 +00:00
Richard Heck
d841355b7e Fix bug 5316 properly. The fix is to make the routine that reads a counter
update an existing counter rather than overwrite it.

This turns out to be more complicated than it might seem. There are two 
large parts to the patch. One moves the counter read routine out of TextClass
and into the Counter and Counters classes. The other changes the syntax of 
counters from:
	Counter
		Name whatever
	....
to:
	Counter whatever
	....
This allows us to get the name of the counter right away, so we can decide
whether it is an old one or a new one. So the layout format had to be 
changed (again), with corresponding layout2layout code.


git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@26779 a592a061-630c-0410-9148-cb99ea01b6c8
2008-10-06 14:37:28 +00:00
Richard Heck
2b234dad7d Comment.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@26778 a592a061-630c-0410-9148-cb99ea01b6c8
2008-10-06 12:24:31 +00:00
Richard Heck
63644744fd Whitespace and comment cleanup.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@26777 a592a061-630c-0410-9148-cb99ea01b6c8
2008-10-06 12:16:17 +00:00
Jean-Marc Lasgouttes
72c26ac6d1 two uninitialized variables uncovered by valgrind, and a gcc warning
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@23707 a592a061-630c-0410-9148-cb99ea01b6c8
2008-03-13 10:28:02 +00:00
Jürgen Spitzmüller
ac1977018b ** subfig support **
* src/Buffer.cpp:
* development/FORMAT:
	- bump format to 316.

* src/insets/InsetFloat.{cpp, h}:
	- let nested floats be subfloats
	  NOTE: docbook support is missing.
* src/insets/InsetCaption.{cpp, h}:
	- handle subfigure captions
* src/insets/InsetGraphics.cpp:
* src/insets/InsetGraphicsParams.{cpp, h}:
	- remove old subfigure support

* lib/chkconfig.ltx:
* lib/doc/LaTeXConfig.lyx:
	- check for subfig instead of subfigure.

* lib/lyx2lyx/LyX.py:
* lib/lyx2lyx/lyx_1_6.py:
	- conversion/reversion routines for subfig -> subfloats
	  NOTE: the reversion routine still has bugs.

* src/Counters.{cpp, h}: 
	- add identifiers for subfloats

* src/LaTeXFeatures.{cpp, h}:
	- support for subfig

* src/TextClass.cpp:
	- set up subfloat counter for all custom floats.

* src/frontends/qt4/GuiGraphics.cpp:
* src/frontends/qt4/ui/GrahicsUi.ui:
	- remove subfigure UI.

git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@23381 a592a061-630c-0410-9148-cb99ea01b6c8
2008-03-02 11:30:50 +00:00
Bernhard Roider
52ccb98354 Fix crash due to recursive function call when a counter references itself.
e.g.:

Counter
    Name                 Version
    LabelString          "\theVersion.0"
End


git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@23166 a592a061-630c-0410-9148-cb99ea01b6c8
2008-02-23 20:38:57 +00:00
Jean-Marc Lasgouttes
d3463fed60 some doxygen comments
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@19606 a592a061-630c-0410-9148-cb99ea01b6c8
2007-08-16 14:44:22 +00:00
Jean-Marc Lasgouttes
88177a89cb The counters labelstring patch. Part 1: the infrastructure.
* src/Counters.cpp (Counter::labelString/labelStringAppendix): new
	accessors for two new variables
	(Counter::setMaster): removed
	(Counter::Counter): add a version with arguments.
	(Counters::newCounter): add relevant arguments; allow to redefine
	an existing counter.
	(Counters::reset): reset the current float float.
	(Counters::theCounter): return a representation of a given counter
	using its labelstring or by default \themaster.\arabic{counter}.
	Handle appendix too.
	(Counters::counterLabel): add support for macros of the form
	\thecounter. 

	* src/TextClass.cpp (readCounters): also read LabelString and
	LabelStringAppendix. 
	(readFloats): allow to update an existing float; create the
	counter associated with the float.



git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@19602 a592a061-630c-0410-9148-cb99ea01b6c8
2007-08-16 11:07:00 +00:00