Commit Graph

61 Commits

Author SHA1 Message Date
Guillaume Munch
94e992c5ed Better construction of the TOC for floats and captions
We introduce TocBuilder for building TOCs that take into account both float
insets and their captions.

* Floats without caption are shown with their content.

* Floats with a caption are shown with their caption, but clicking the entry now
  correctly moves to the float and not to the caption.

* Subsequent captions produce additional entries in the TOC.

* Figures and subfigures are correctly ordered in the outliner.

* New TOC "senseless" for captions appearing alone (a bit like broken references
are still displayed in the menu and outliner).

* Disable LFUN_CAPTION_INSERT if there is already a caption in a listing

Known issues:

* Inconsistent output for includes located inside floats

* We should record the end of the float in addition of the beginning for a more
  accurate cursor -> outliner entry conversion
2015-09-15 15:25:33 +01:00
Richard Heck
fb4c70650c Use const ref instead of passing by value.
Thinko caught by coverity.
2015-05-12 12:52:36 -04:00
Richard Heck
7a0f7b7046 Pass XHTMLStream by reference. Problem found by coverity.
The previous code worked because we are writing to the stream, and
the actual odocstream is a member by reference of XHTMLStream.
2015-05-12 10:13:04 -04:00
Richard Heck
967e0db9e0 Fix obvious oversight. 2013-08-30 13:16:23 -04:00
Richard Heck
1b1f8dd235 Audit all the LASSERT calls, and try to do something sensible at
each failure.

There are several places I was not sure what to do. These are marked
by comments beginning "LASSERT:" so they can be found easily. At the
moment, they are at:

Author.cpp:105: // LASSERT: What should we do here?
Author.cpp:121: // LASSERT: What should we do here?
Buffer.cpp:4525:        // LASSERT: Is it safe to continue here, or should we just return?
Cursor.cpp:345:         // LASSERT: Is it safe to continue here, or should we return?
Cursor.cpp:403:         // LASSERT: Is it safe to continue here, or should we return?
Cursor.cpp:1143:                // LASSERT: There have been several bugs around this code, that seem
CursorSlice.cpp:83:     // LASSERT: This should only ever be called from an InsetMath.
CursorSlice.cpp:92:     // LASSERT: This should only ever be called from an InsetMath.
LayoutFile.cpp:303:                     // LASSERT: Why would this fail?
Text.cpp:995:           // LASSERT: Is it safe to continue here?
2013-04-25 17:27:10 -04:00
Richard Heck
79f428d201 Use InsetLayout to get the tag type for TOC-like things. 2013-03-27 20:03:32 -04:00
Richard Heck
d3feabfc86 Remove the "arrow" from the XHTML TOC. I think I put it there near
the beginning, when the titles themselves were not being used as
links. Now they are, so it is not needed.
2013-03-27 18:28:25 -04:00
Richard Heck
d3f6e28e35 Use the TOC:Listings layout to hold CSS information for it. 2013-03-27 18:22:20 -04:00
Richard Heck
ad6250f1a6 A little bit more cleaning up. 2013-03-27 17:19:47 -04:00
Richard Heck
2d34e48869 Re-order things a little bit. 2013-03-27 17:17:57 -04:00
Richard Heck
050142de1b Factor common code from TOC updates. 2013-03-27 17:16:34 -04:00
Richard Heck
597fdbf22f Allow for the possibility of an "InsetLayout TOC". 2013-03-27 17:06:38 -04:00
Richard Heck
5286ce6dfe Get lists of listings working for XHTML output. Fixes bug #8602. 2013-03-27 16:59:40 -04:00
Richard Heck
65b74b9a1d Fix bug #8580: Do not include material in the XHTML TOC that is not
also included in the output.
2013-03-08 16:38:45 -05:00
Richard Heck
ecef54500d Introduce max_length parameter for plaintext() output routines,
so we can write a limited amount when using this for TOC and
tooltip output.

This should solve the problem with slowness that Kornel noticed,
which was caused by our trying to write an entire plaintext
bibliography every time we updated the TOC. We did that because
he had a bibliography inside a branch, and we use plaintext for
creating the tooltip that goes with the branch list.

Other related bugs were fixed along the way. E.g., it turns out
that, if someone had an InsetInclude inside a branch, then we would
have been writing a *plaintext file* for that inset every time we
updated the TOC. I wonder if some of the other reports of slowness
we have received might be due to this kind of issue?
2013-03-08 15:12:58 -05:00
Richard Heck
03da96e0f7 Minor cleanup: We should use the usual conventions for
InsetLayout names.
2012-05-31 12:24:08 -04:00
Georg Baum
27733452f7 Native support for \lstlistoflistings 2012-04-16 21:40:59 +02:00
Jean-Marc Lasgouttes
5d3461b10f Sort out usage of INset::has Settings and Inset::clickable
* now hasSettings only means... that the inset has a settings dialog
 * and clickable means that something should happen with left-clicking on the inset

Some inset behaviours are changed:
 * (V)Space insets are not clickable anymore (the settings dialog is still accessible via context menu and Edit menu)
 * TOC inset is now shown as active
 * FloatList inset is shown as active and clicking on it opens the relevant part of the TOC dialog

This could be a candidate for branch (2.0.4)


git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@40755 a592a061-630c-0410-9148-cb99ea01b6c8
2012-02-15 09:42:13 +00:00
Richard Heck
bfddee97e1 Better TOC output for XHTML, per Rob and Pavel.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@38354 a592a061-630c-0410-9148-cb99ea01b6c8
2011-04-12 17:33:18 +00:00
Richard Heck
08e69e57bf Fix XHTML TOC translation per a suggestion of Georg's.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@38333 a592a061-630c-0410-9148-cb99ea01b6c8
2011-04-11 18:43:53 +00:00
Richard Heck
461c973d62 Clean up XHTML output a bit.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@38185 a592a061-630c-0410-9148-cb99ea01b6c8
2011-04-01 19:18:25 +00:00
Vincent van Ravesteijn
b90de3dc5c Fix bug #7176: Clicking TOC doesn't bring up outline
Previously LFUN_INSET_SETTINGS was misused to show the outliner. As a TOC doesn't have settings, it was no longer showed after a refactorization of LFUN_INSET_SETTINGS/LFUN_MOUSE_RELEASE because InsetToc::hasSettings() returns false.

As this is a special case, we should handle this special case in InsetTOC itself.

git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@36907 a592a061-630c-0410-9148-cb99ea01b6c8
2010-12-17 13:12:43 +00:00
Richard Heck
a81bf77314 Change the escaping mechanism for XHTML output and so allow a fix for
bug #7061.


git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@36455 a592a061-630c-0410-9148-cb99ea01b6c8
2010-11-24 15:27:36 +00:00
Vincent van Ravesteijn
222b3580d2 More include frenzy.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@35940 a592a061-630c-0410-9148-cb99ea01b6c8
2010-10-31 01:04:03 +00:00
Vincent van Ravesteijn
2bbf8e5f2d Remove InsetCommand::mailer_name_.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@35893 a592a061-630c-0410-9148-cb99ea01b6c8
2010-10-29 00:46:21 +00:00
Uwe Stöhr
7d68833dc9 remove unused include of FuncRequest
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@35189 a592a061-630c-0410-9148-cb99ea01b6c8
2010-08-24 03:07:09 +00:00
Richard Heck
3efcfa3cf1 Use something simpler for the TOC links in XHTML. Some browsers don't
like the ⇘ entity.


git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@33792 a592a061-630c-0410-9148-cb99ea01b6c8
2010-03-18 18:12:30 +00:00
Uwe Stöhr
6d41db574d InsetXXX.cpp: remove unused include of MetricsInfo.h
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@33721 a592a061-630c-0410-9148-cb99ea01b6c8
2010-03-12 00:23:48 +00:00
Richard Heck
7cd56e334d Output labels (1.1, etc) with the TOC.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@33139 a592a061-630c-0410-9148-cb99ea01b6c8
2010-01-21 19:11:46 +00:00
Richard Heck
0ac7123011 Translate TOC title to document language, not GUI language.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@33138 a592a061-630c-0410-9148-cb99ea01b6c8
2010-01-21 19:01:22 +00:00
Richard Heck
3e654186d2 Move the StartTag, EndTag, and CompTag classes into the html namespace.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@33099 a592a061-630c-0410-9148-cb99ea01b6c8
2010-01-19 22:08:04 +00:00
Richard Heck
59c04f7096 The fortoc argument I introduced earlier should all along have gone into
OutputParams. So now it is there.


git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@33044 a592a061-630c-0410-9148-cb99ea01b6c8
2010-01-14 22:24:43 +00:00
Richard Heck
2f728e45f8 Remove the test for "tableofcontents", since that is the only thing this
inset supports right now.


git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@32999 a592a061-630c-0410-9148-cb99ea01b6c8
2010-01-12 20:25:33 +00:00
Richard Heck
a12cd4eedc Simplify InsetTOC::xhtml now.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@32992 a592a061-630c-0410-9148-cb99ea01b6c8
2010-01-12 19:39:07 +00:00
Richard Heck
228948534e A comment, and a minor change.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@32732 a592a061-630c-0410-9148-cb99ea01b6c8
2010-01-01 02:08:22 +00:00
Richard Heck
68db58a584 Re-organize InsetTOC to prepare for other TO*s.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@32731 a592a061-630c-0410-9148-cb99ea01b6c8
2010-01-01 01:45:02 +00:00
Richard Heck
e5afe8db66 This really gets the TOC working now. We auto-generate labels for the
paragraphs the TOC targets, and link to them.


git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@32461 a592a061-630c-0410-9148-cb99ea01b6c8
2009-12-10 20:03:35 +00:00
Richard Heck
46e70895a9 CSS for the TOC, and a couple small fixes.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@32460 a592a061-630c-0410-9148-cb99ea01b6c8
2009-12-10 19:28:00 +00:00
Richard Heck
ffe73b795b Initial work for InsetTOC. This does actually write a TOC, but without
any links. That is the next step.


git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@32459 a592a061-630c-0410-9148-cb99ea01b6c8
2009-12-10 18:30:48 +00:00
Abdelrazak Younes
882e2eeb7b InsetCommand ctor: Pass 'Buffer *'
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@31902 a592a061-630c-0410-9148-cb99ea01b6c8
2009-11-08 16:10:34 +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
Pavel Sanda
dcc50a2454 Fix include orderings.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@25309 a592a061-630c-0410-9148-cb99ea01b6c8
2008-06-18 18:54:31 +00:00
Jean-Marc Lasgouttes
d954056cc2 unbreak compilation (part 4)
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@24634 a592a061-630c-0410-9148-cb99ea01b6c8
2008-05-06 10:42:26 +00:00
Abdelrazak Younes
45bc27809b remove unneeded includes.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@24628 a592a061-630c-0410-9148-cb99ea01b6c8
2008-05-06 06:48:38 +00:00
André Pönitz
75999ba650 make code look a bit more uniform
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@23468 a592a061-630c-0410-9148-cb99ea01b6c8
2008-03-05 00:21:05 +00:00
André Pönitz
db8c16d554 progress on buffer-reference-in-insets. beware of instabilities...
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@23289 a592a061-630c-0410-9148-cb99ea01b6c8
2008-02-27 20:43:16 +00:00
Richard Heck
2fb02d20f1 Per Abdel's suggestion that we focus on bug-fixing at this point, this will be the last patch in this series for a bit. But I wanted to get this done before I forget what it is I was doing, so here it is.
The idea behind this patch is to make real key-value support for InsetCommand parameters possible. This should be particularly useful for the listings version of InsetInclude, though we would need some kind of UI for it before it would really be helpful. (See below for some thoughts.) This doesn't substantially change anything else, though some things do get re-arranged a bit.

Basically, the idea is this. First, we introduce a whole range of parameter types: Normal LaTeX optional and required parameters; ones for LyX's internal use (like embed); and finally, in connection with keyval, ones that represent keys and ones that represent optional and required arguments where the keyval stuff will appear. (I'm assuming here that there will always be exactly one of those, and that it will accept only keyval-type material.) The parameters themselves are stored in a map, so it's really only the output routines that need to care about the different types of parameters.

Regarding the frontend, it seems to me that something like the following would work:
(i) scan the parameter list for LATEX_KEY type parameters
(ii) the dialog will have a series of lines, each of which has a combo box listing the acceptable keys and a QLineEdit for entering its value, as well as a "delete" button of some sort for removing this key and its value
(iii) there should be an "add line" button to add a new line, activated only when all other lines are filled with values
Probably not even too hard.


git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@23235 a592a061-630c-0410-9148-cb99ea01b6c8
2008-02-25 22:13:45 +00:00
Richard Heck
8e9410b3d0 After a hiatus, I'm returning to the rewrite of InsetCommandParams, the purpose of all of this being to make things more flexible, with the ultimate goal being biblatex support and a kind of InsetCommandFlex that will allow user-definable such things. The next step, really, is to fix up CiteEngine so that we can have different sets of parameters for InsetCitation depending upon what engine is in use. (Something like this also needs doing with InsetInclude.)
This patch reworks the machinery that holds information about what parameters there are and what their values are. There's enough flexibility here that true keyval support ought to be fairly easy at this point. I'll have a peek at that shortly.



git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@23168 a592a061-630c-0410-9148-cb99ea01b6c8
2008-02-23 22:01:02 +00:00
Abdelrazak Younes
9abb7db468 getting rid of superfluous std:: statements.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@22104 a592a061-630c-0410-9148-cb99ea01b6c8
2007-12-12 19:28:07 +00:00
Abdelrazak Younes
9383f4c3c6 'using namespace std' instead of 'using std::xxx'
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@22097 a592a061-630c-0410-9148-cb99ea01b6c8
2007-12-12 10:16:00 +00:00