Commit Graph

95 Commits

Author SHA1 Message Date
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
Julien Rioux
cc1ce04798 Generate the citation labels before exporting to plain text. 2013-02-06 17:37:58 +01:00
Benjamin Piwowarski
9f62413b10 Initial patch for citation-insert 2013-01-15 14:51:29 +01:00
Julien Rioux
2ffd130d2b Force BibTeX rerun upon add/remove/change citation (fixes #6955).
Reordering citations is one case where catching "Citation undefined
on page ..." doesn't catch the need for a bibtex rerun. This patch
ensures the proper ordering is obtained in pdf output without having
to resort to closing and reopening the LyX document.
2013-01-12 10:12:25 +01:00
Julien Rioux
15b2501177 LyXHTML linking from citation to bib entry for LyX 2.1 (fixes #8490).
What was previously accomplished by wrapCitation is now customizable in the
layout files. What we provide by default here corresponds roughly to the
LyX 2.0 behavior.
2013-01-10 15:32:00 +01:00
Julien Rioux
1e947e3a18 Move the citation engine machinery to layouts.
Add a new layout syntax CiteEngine to define the citation commands
available for a given citation engine.

Also extend the CiteFormat syntax to allow more customization. This
mechanism, previously used to produce bibliography entries in the
citation GUI based on the BibTeX entrytype, is now also used to
produce the textual labels for citation insets in the buffer view.

Thus citation styles are almost completely customizable by modules.
Modules for the basic, jurabib and natbib engines are implemented.

Layout format incremented to 37.

git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@40820 a592a061-630c-0410-9148-cb99ea01b6c8
2012-03-01 00:41:30 +00:00
Julien Rioux
e3f65fd088 Buffer param \cite_engine_type (authoryear|numerical).
To avoid duplicity, remove natbib_authoryear and natbib_numerical
and replace them by natbib, and keep track of the engine `type'
in the new \cite_engine_type document setting. This will make it
easier to add more citation engines.

LyX format incremented to 424.

git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@40592 a592a061-630c-0410-9148-cb99ea01b6c8
2012-01-09 13:16:38 +00:00
Julien Rioux
dfdcc56cba Remove extra whitespace.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@40346 a592a061-630c-0410-9148-cb99ea01b6c8
2011-12-03 22:15:11 +00:00
Vincent van Ravesteijn
7287a259c5 Change the type of the context menu name to string
There is no need for GUI-elements to use docstring.

git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@40058 a592a061-630c-0410-9148-cb99ea01b6c8
2011-10-29 14:48:55 +00:00
Richard Heck
33ee5c9ae8 Fix bug #7499. The problem here is that there was no way for the
inset to know that the BibTeX data had changed. So we introduce a
Buffer-wide variable that we can query for that information.

git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@38619 a592a061-630c-0410-9148-cb99ea01b6c8
2011-05-07 23:02:53 +00:00
Enrico Forestieri
d866717ef7 Integrate texrow with otexstream in order to perform automatic line
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
2011-02-10 20:02:48 +00:00
Enrico Forestieri
1ef605f625 Introduce a wrapper class for odocstream to help ensuring that no
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
2011-01-29 02:41:13 +00:00
Richard Heck
4b1777d2fa Inset::addToToc() can and should be const. It wasn't, I take it, because
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
2011-01-12 22:23:27 +00:00
Richard Heck
9e9c96035c Finish disentangling tocString(). We introduce a new method, forToc(),
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
2010-12-20 21:55:09 +00:00
Richard Heck
832d6cd7e1 Begin undoing the tocString() mess by renaming that routine.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@36889 a592a061-630c-0410-9148-cb99ea01b6c8
2010-12-15 01:34:04 +00:00
Vincent van Ravesteijn
e7f2bbe1ee Rename InsetXXX::contextMenu to InsetXXX::contextMenuName. Now this function doesn't need all the parameters and we split the functionality of choosing which context menu to return, from the functionality of supplying the name for the Inset itself. Now, the InsetText context menu is returned for InsetCollapsables when the button is not hit by the mouse. There is no (intended) change in functionality for insets without a button, collapsed insets. This fixes partly bug #6642. A fix for InsetTabular and for insets with no button will follow.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@36604 a592a061-630c-0410-9148-cb99ea01b6c8
2010-11-29 21:27:25 +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
a7e2b7eea9 Remove some unneeded includes from some header files.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@35939 a592a061-630c-0410-9148-cb99ea01b6c8
2010-10-31 00:31:57 +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
1c0514b07c Add a comment.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@35036 a592a061-630c-0410-9148-cb99ea01b6c8
2010-07-30 15:50:42 +00:00
Richard Heck
f1912e1c33 Read the citation formats from a file, rather than hardcoding them. This
allows for layout- or module-level customization of the display in the
citation dialog and of the XHTML bibliography output.

There is more of this to come, by the way. The next step is to allow
macros. That will make it easier to deal with translation issues, which
ought to be the final step.


git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@33920 a592a061-630c-0410-9148-cb99ea01b6c8
2010-03-29 18:37:25 +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
c785e832fb Cosmetics.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@33587 a592a061-630c-0410-9148-cb99ea01b6c8
2010-02-26 20:17:29 +00:00
Jürgen Spitzmüller
ce349ad806 Fix encoding issues in bibitems (bug #6534)
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@33452 a592a061-630c-0410-9148-cb99ea01b6c8
2010-02-12 16:08:30 +00:00
Richard Heck
00753ae61e Simplify InsetCitation::basicLabel() code.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@33143 a592a061-630c-0410-9148-cb99ea01b6c8
2010-01-21 19:58:21 +00:00
Richard Heck
ca40daccb0 Forgot to wrap first citation.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@33141 a592a061-630c-0410-9148-cb99ea01b6c8
2010-01-21 19:30:39 +00:00
Richard Heck
f2e3342983 Fix warning.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@33111 a592a061-630c-0410-9148-cb99ea01b6c8
2010-01-20 19:46:02 +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
782db81f77 Author-year citations for XHTML output.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@32969 a592a061-630c-0410-9148-cb99ea01b6c8
2010-01-11 16:11:55 +00:00
Richard Heck
389f85c038 Move the anonymous functions that are left closer to where they are now
used.


git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@32924 a592a061-630c-0410-9148-cb99ea01b6c8
2010-01-09 22:30:56 +00:00
Richard Heck
62b23ac0be Make the complexLabel and basicLabel functions in InsetCitation into
private member functions. This will be useful later.


git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@32923 a592a061-630c-0410-9148-cb99ea01b6c8
2010-01-09 22:30:12 +00:00
Richard Heck
833e7085dd A little cleanup of some of the BibTeX info access.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@32915 a592a061-630c-0410-9148-cb99ea01b6c8
2010-01-09 16:57:08 +00:00
Richard Heck
403dccbf23 No output for nocite citations.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@32897 a592a061-630c-0410-9148-cb99ea01b6c8
2010-01-08 18:49:32 +00:00
Richard Heck
67ddc3944c Style.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@32895 a592a061-630c-0410-9148-cb99ea01b6c8
2010-01-08 18:46:09 +00:00
Richard Heck
c90b4fcb87 Use calculated labels in XHTML output.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@32892 a592a061-630c-0410-9148-cb99ea01b6c8
2010-01-08 18:19:37 +00:00
Richard Heck
eeb1c45edb Typos etc.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@32882 a592a061-630c-0410-9148-cb99ea01b6c8
2010-01-08 14:38:31 +00:00
Richard Heck
996505c2ae This patch introduces an optional argument to Buffer::updateLabels(), so
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
2009-12-04 03:03:38 +00:00
Richard Heck
26006c8ffc Restore XHTML output for InsetCitation.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@32262 a592a061-630c-0410-9148-cb99ea01b6c8
2009-11-30 22:59:18 +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
Richard Heck
67e70c6c02 Well, it turns out that we need a different return value for the xhtml
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
2009-06-12 17:23:17 +00:00
Richard Heck
12f57a57bd The return value for xhtml() is not going to be needed.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@30078 a592a061-630c-0410-9148-cb99ea01b6c8
2009-06-12 16:11:33 +00:00
Richard Heck
21121f3fb5 It is convenient for me to change this for use in XHTML output, but I also
have been wanting to change it for a while. It is not very useful to have
a bunch of years listed in the citations TOC (which you get if you have used
\citeyear very often. Better, it seems to me, to see the citation keys.

Of course, this can be switched again if need be, and I can figure out a 
different way to handle my own problem.


git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@30053 a592a061-630c-0410-9148-cb99ea01b6c8
2009-06-11 21:23:18 +00:00
Richard Heck
3de92f551a Get XHTML output for InsetCitation working, at least in a primitive way.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@30049 a592a061-630c-0410-9148-cb99ea01b6c8
2009-06-11 21:04:15 +00:00
Richard Heck
cca51a04c2 Move the word-wrapping code to support, so that it can be re-used.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@29559 a592a061-630c-0410-9148-cb99ea01b6c8
2009-05-07 12:23:12 +00:00
Enrico Forestieri
128c2b31d8 Avoid ugly macros in the preamble and protect underlined \cite commands
in a clever way.


git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@29558 a592a061-630c-0410-9148-cb99ea01b6c8
2009-05-07 10:57:52 +00:00
Jürgen Spitzmüller
32875625c8 whitespace.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@28956 a592a061-630c-0410-9148-cb99ea01b6c8
2009-03-28 10:45:24 +00:00
Richard Heck
ba92863f0a Whitespace, formatting.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@28948 a592a061-630c-0410-9148-cb99ea01b6c8
2009-03-27 17:57:42 +00:00
Richard Heck
9761d953dc Tooltips for InsetCitation. Please check if this works with RTL.
I think it should.


git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@28896 a592a061-630c-0410-9148-cb99ea01b6c8
2009-03-25 12:23:43 +00:00
André Pönitz
937de4d880 fix constness of string literals
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@27467 a592a061-630c-0410-9148-cb99ea01b6c8
2008-11-15 17:40:05 +00:00