* \caption does not need to be protected in general
* the contents of \caption arguments need to be protected, though.
All styles related to caoption inset have been audited and updated.
The special casing of captions in longtables has been removed, since there is no special case.
Fixes bug: #9177
This code was commented out at [ad94e7bd/lyxgit], since we thought it was not necessary anymore and then removed at [5aede959/lyxgit]. Bug #9042 is the evidence that we were wrong.
and Cursors. So just calling InsetText::addToToc for the cells causes
problems, because InsetText::addToToc then adds the cell inset itself
as part of the DocIterator. This then leads to assertions, such as bug
The solution is to refactor InsetText::addToToc so that we can call the
iterating part without adding the inset.
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?
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?
Only the first paragraph in those sequences goes into the TOC, since the environment is merged.
This is needed to handle the forthcoming beamer environments properly in the outliner.
Currently, if an inset outputs a newline, the new latex row is still
associated with a previous id/pos. Now, if a latex error occurs before
this newline, we would still highlight everything associated to that
id/pos, even if it is extraneous to the error.
This is avoided by associating the new latex row with the id/pos in
effect right before entering the inset. If an inset does not output
a newline, it is not excluded from the selection, consistent with the
fact that the text of the inset does appear in the error description.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@37903 a592a061-630c-0410-9148-cb99ea01b6c8
This improves the fix in r37328 and allows centered sweave chunks, for example (although this does not work yet for other reasons)
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@37831 a592a061-630c-0410-9148-cb99ea01b6c8
counting when exporting to latex. This is done for the code comprised
between \begin{document} and \end{document}, while the preamble code
still needs manual calls to TexRow::newline() for registering new lines.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@37584 a592a061-630c-0410-9148-cb99ea01b6c8
blank lines may be inadvertently output. This is achieved by using two
special iomanip-like variables (breakln and safebreakln) in the lyx::
namespace. When they are inserted in the stream, a newline is output
only if not already at the beginning of a line. The difference between
breakln and safebreakln is that, if needed, the former outputs '\n'
and the latter "%\n".
In future, the new class will also be used for counting the number of
newlines issued. Even if the infractrure for doing that is already in
place, the counting is essentially still done the old way.
There are still places in the code where the functionality of the
class could be used, most probably. ATM, it is used for InsetTabular,
InsetListings, InsetFloat, and InsetText.
The Comment and GreyedOut insets required a special treatment and a
new InsetLayout parameter (Display) has been introduced. The default
for Display is "true", meaning that the corresponding latex
environment is of "display" type, i.e., it stands on its own, whereas
"false" means that the contents appear inline with the text. The
latter is the case for both Comment and GreyedOut insets.
Mostly, the only visible effects on latex exports should be the
disappearing of some redundant % chars and the appearing/disappearing
of null {} latex groups after a comment or lyxgreyedout environments
(they are related to the presence or absence of a space immediately
after those environments), as well as the fact that math environments
are now started on their own lines.
As a last thing, only the latex code between \begin{document} and
\end{document} goes through the new class, the preamble being directly
output through odocstream, as usual.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@37360 a592a061-630c-0410-9148-cb99ea01b6c8
The quick solution is to output a % sign before \n. The better one
would be doing as in mathed, but it is not so straightforward.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@37320 a592a061-630c-0410-9148-cb99ea01b6c8
of things like:
pit.push_back(CursorSlice(*this));
which I've had to change to:
pit.push_back(CursorSlice(const_cast<InsetCaption &>(*this)));
and similarly in a few other places.
If anyone thinks we should instead have:
explicit CursorSlice(Inset const &);
then we can also do that.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@37192 a592a061-630c-0410-9148-cb99ea01b6c8
better than what we had, anyway, since we do not calculate the tocstring
unless we need it.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@37190 a592a061-630c-0410-9148-cb99ea01b6c8
that also makes sure it doesn't do more work than it needs to do, by
limiting the size to 40 characters. Previously, InsetBranch::addToToc()
would have added a string representing the entire contents of the
branch! It's hard to imagine that having to recalculate that sort of
thing doesn't cause some problems with speed, especially in documents
with lots of notes and branches and such.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@36974 a592a061-630c-0410-9148-cb99ea01b6c8
* only one for loop
* uses runparams.par_end
InsetInclude and InsetIext: initialize runparams.par_begin and runparams.par_end
Except for a few additonal empty lines the LateX exports are identical for all help files. The reason for the additional empty lines is the more consistent TeXEnvironment() call.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@36934 a592a061-630c-0410-9148-cb99ea01b6c8
fail e.g., of URLs in math, since tocString() is called by
Paragraph::asString() to give us the contents of insets. Probably, I was
misled by the name, and the comment in Inset.h. That means, at least,
that this method is misnamed, but it probably means we do the wrong
thing in other cases.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@36517 a592a061-630c-0410-9148-cb99ea01b6c8
plaintext() on the entire inset, even though the tooltip is only going
to show the first few lines. This could make things slow when you had a
lot of branches, because this is called by InsetBranch::addToToc().
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@36345 a592a061-630c-0410-9148-cb99ea01b6c8
The goal is first to remove explicit testing against ERT_CODE,
and second to allow to define layouts with the same properties as ERT insets.
This commit does not change behaviour
* rename OutputParams::verbatim to pass_thru
* disable encoding switch inside pass_thru layouts
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@35091 a592a061-630c-0410-9148-cb99ea01b6c8
At some point we should implement that the tooltips are only shown when they are not completely shown in the outliner. However, this requires extending the QTreeView class.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@34287 a592a061-630c-0410-9148-cb99ea01b6c8
Solution: don't use boost::shared_ptr for msvc10 (could also be extended to several GCC versions)
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@34259 a592a061-630c-0410-9148-cb99ea01b6c8
Solution: don't use boost::bind for msvc10 (could also be extended to several GCC versions)
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@34257 a592a061-630c-0410-9148-cb99ea01b6c8
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
#6415
Enrico please verify that reverse dvi is fixed.
* Text and InsetText: create two private constructors and transfer some
initialisation code from InsetText.
* Paragraph: id generation is transfered to Text. May be transfered to
Buffer in the future, we'll see.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@32766 a592a061-630c-0410-9148-cb99ea01b6c8
as to allow us to call the routine when we are preparing for output and
so to do certain things we might not want to do every time.
This is an abuse of updateLabels(), in a way, but updateLabels() long
ago became the general recurse-through-the-Buffer routine, and to
implement the sort of thing I want to do here in validate(), say, much
of the code in updateLabels()---in particular, the counter-update
code---would have to be duplicated. So I believe this is the best, and
easiest, way to go.
Actual use of the new argument will follow.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@32318 a592a061-630c-0410-9148-cb99ea01b6c8
I guess that this should be "inline", that is, appear where it appears
in the LyX file, as opposed to being deferred until after the current
paragraph is output. But I'm not sure about this. If anyone has a view,
let me know.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@32215 a592a061-630c-0410-9148-cb99ea01b6c8
derived class and then will not want to write it again here. So this
gives us that ability.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@32132 a592a061-630c-0410-9148-cb99ea01b6c8
Much of the point of this is to allow us properly to handle what LyX does as:
<em>This is <strong>bold and italic</em> and now just bold.</strong>
We output:
<em>This is <strong>bold and italic</strong></em><strong> and now just bold.</strong>
which is valid.
Note how much easier this would have been if emphasis and boldness were insets
rather than ranges. ;-)
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@32086 a592a061-630c-0410-9148-cb99ea01b6c8
a piece at a time, using the new XHTMLStream.
This just gets the basic structures working, and fixes a bunch of iconv
errors in the process.
I hate iconv errors.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@32085 a592a061-630c-0410-9148-cb99ea01b6c8
- change cur.inset().nargs() to nargs() as we might actually be in the inset called nextInset(),
- set the enabling flag of the status struct, don't return this value,
- return whether we handled this request.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@31822 a592a061-630c-0410-9148-cb99ea01b6c8
- put the InsetFlex specific part into InsetFlex,
- honor the argument given to the LFUN also for normal Insets as the description already stated,
- fix bug #6285: context menu action goes to the wrong inset.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@31756 a592a061-630c-0410-9148-cb99ea01b6c8
I also updated InsetMathMBox so that it remains compilable, even if not used.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@30940 a592a061-630c-0410-9148-cb99ea01b6c8
accepting changes in a clipboard copy (CutAndPaste.cpp), we set the buffer
of insets (and we reset them later).
Doing this makes sense because we know this is the only operation on these
out-of-document paragraphs that will require access to a buffer.
Also, this commit gets rid of one explicit test against ERT_CODE and
LISTING_CODE.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@30623 a592a061-630c-0410-9148-cb99ea01b6c8
Basically, insets in cut stack do not have a buffer, and therefore cannot
acess to buffer parameters. What is annoying here is that acceptChanges
requires this buffer params only to be able to read a font in moveItem,
in order to read the buffer language, and I doubt this is really needed...
Another change in this patch is that Inset::getLayout now returns a
plainLayout when the inset does not have a buffer_. This fixes a remaining
crash where dEPM reads isFreeSpacing() for an inset in the clipboard, but
this looks like a fragile situation. And it will not do the right thing when
doing depm in a freespacing inset.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@30605 a592a061-630c-0410-9148-cb99ea01b6c8
* rename InsetLayout::isForceLtr to forceLTR
* move InsetCollapsable::xhtml to InsetText
* move InsetCollapsable::tocString to InsetText.
* move forcePlainLayout and allowParagraphCustomization from IC to IT
* use isPassThru instead of forceLTR in places where it seems to make
sense (was introduced in r21285)
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@30591 a592a061-630c-0410-9148-cb99ea01b6c8
routines, one that allows us to "defer" certain material, e.g., a float
that ought to appear in a div but can't simply be put into the middle
of a paragraph.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@30079 a592a061-630c-0410-9148-cb99ea01b6c8
GetStatus of an InsetCollapsable asserts for unhandled commands.
When you add a command to the context menu of an InsetCollapsable of which the getStatus method does not handle this command, an assertion will be raised. This happens when getStatus doesn't handle a command it is forwarded to text::getStatus which asserts because cur.text() is the text the inset is in, while this is the text of the inset. So, we only dispatch to text_ if the cursor is inside the text_. This is not the case for e.g. context menus.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@28588 a592a061-630c-0410-9148-cb99ea01b6c8
* TocBackend.cpp (updateItem): pass option AS_STR_INSETS to asString,
so that insets get a chance to be displayed in ToC.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@27238 a592a061-630c-0410-9148-cb99ea01b6c8
Changes::addToToc(): New method to insert changes sorted by authors. The symbols 0x2702 and 0x270d are used to represent deletion and insertion.
TocBackend::item(): new method to lookup for a given item.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@26639 a592a061-630c-0410-9148-cb99ea01b6c8
"*supported" methods maybe should be merged with a bit-enum as return value.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@23776 a592a061-630c-0410-9148-cb99ea01b6c8