Commit Graph

21901 Commits

Author SHA1 Message Date
Juergen Spitzmueller
b7d2169413 Phantom is fragile (#9456) 2015-03-16 17:25:15 +01:00
Juergen Spitzmueller
95e41332da Properly escape backslash in string
Richard, I took the liberty to just backport without further ado. This string is commented out anyway, but it constantly pops up as untranslated in the po files, which is a bit annoying
2015-03-16 14:33:11 +01:00
Juergen Spitzmueller
e715055373 Set the logic straight 2015-03-16 10:57:31 +01:00
Juergen Spitzmueller
69d10bd4c8 Allow to disable inputenc loading via 'Provides inputenc 1' 2015-03-16 10:55:47 +01:00
Juergen Spitzmueller
f790bb046e Properly define MultiPar status of caption in the layout definition.
Also remove hardcoded paragraph break disabling.
2015-03-12 09:54:01 +01:00
Georg Baum
141f13a9cc Remove unsupported macros from autocompletion
We have some math macros that exist only because LyX can display them easily,
but which require user preamble code. These commands should not appear in
autocompletion, they are only there to make the formulas of users who actually
need these symbols and know what to put into the preamble more beautiful.
2015-03-10 21:04:24 +01:00
Jean-Marc Lasgouttes
226c6f6b17 Take in account the parent's getStatus in macro templates
This avoids invoking the insert space dialog instead of the math version. Thereafter, spaces are correctly inserted inside macro templates.

This is the last part of the fix to #9432.
2015-03-10 17:23:10 +01:00
Jean-Marc Lasgouttes
d5eeabcfdd Check that DocIterator::sanitize only adds editable insets
This fixes the crash on ticket #9432, but the bug there has other causes.
2015-03-10 17:20:25 +01:00
Jean-Marc Lasgouttes
3c0f46fb33 Do not sanitize the anchor of cursor when selection is not set
Additionally, move the code to write to a stream from Cursor to CursorData (so that debugging undo is easier). We loose x_target, but I am not sure it is important.

This is the second part of bug #9432.
2015-03-10 17:20:10 +01:00
Jean-Marc Lasgouttes
f620de8036 Main argument of a subfloat is not a moving argument
Fixes bug: #9421
2015-03-09 17:53:03 +01:00
Jean-Marc Lasgouttes
997cc6a774 Record undo properly when changing multiple paragraphs parameters
Fixes bug 9437.
2015-03-01 19:49:47 +01:00
Georg Baum
950f2acd5e Fix wrong LATTEST
Thanks to Scott for testing. If a macro is unknown (displayed in red), then
macro_ is 0. The LATTEST is now adjusted and works like in MathMacro::write()
where I stole it from.
2015-02-17 21:10:12 +01:00
Georg Baum
609d41bb37 Fix missing symbols in math completer
The math icons for the symbol image in the math completer were hardcoded to the
command names. This is wrong for some icons for various reasons, e.g. the case
insensitivity of windows file systems. Therefore we have to use the replacement
list which is also used for the toolbar icons. Bug #3538 is not closed because
of this problem, but IMHO it has nothing to do with this bug, it is a more
general one.
2015-02-15 21:00:03 +01:00
Enrico Forestieri
d912b70854 Fix bug #9392: Matrix widget keyboard navigation broken 2015-02-15 00:50:38 +01:00
Georg Baum
1be2b895d7 Write fixed encoding to LyX file (bug #9178)
If the user gave the -fixedenc argument to tex2lyx then set that encoding as
LaTeX input encoding in the generated LyX file. Otherwise, included .bib files
could be interpreted using a wrong encoding.
2015-02-14 10:45:13 +01:00
Georg Baum
edc1ce4068 Fix unwanted curly braces in formula (bug #8679)
There was an unsymmetry between reading and writing: InsetMathGrid::eolString()
adds curly braces if the first cell of the next line starts with [ to prevent
misparsing as optional argument of \\. These braces were not removed on reading.

Thanks to Enrico, who noticed that the previous fix did not take into account
the case of nonempty length argument + the next line beginning with [.
Now the parsing is exactly the inverse of InsetMathGrid::eolString().
2015-02-12 21:36:01 +01:00
Georg Baum
15d1349847 Fix wrong listings preamble encoding (bug #9382)
The listings package employs some dirty tricks internally, therefore it does
not work with utf8 encoding, but requires fixed width encodings. This version
of the fix uses ugly hardcoding instead of a layout file format change, so it
could be backported if needed.
2015-02-12 21:29:54 +01:00
Georg Baum
8a70d0ff9a Fix viewer file paths on windows (bug #8892)
Some applications do not accept forward slashes, so call external viewers
and editors with backward slashes which is the usual convention under windows.
2015-02-12 21:22:21 +01:00
Stephan Witt
e3a56beab3 #8637 back port of change 0d6f17af: More careful NSAutoreleasePool management 2015-02-11 23:45:57 +01:00
Juergen Spitzmueller
2d2c0a99c3 Fix output encoding information for non-TeX fonts XeTeX/LuaTeX on preview pane
Fixes: #8919
2015-02-10 11:26:15 +01:00
Jean-Marc Lasgouttes
53ed6d3d46 Fixes to InsetCaption \protect-ion
* \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
2015-02-10 09:52:22 +01:00
Uwe Stöhr
f3dc9d339c symbols: add support for the math commands \lvert etc.
add support for the math commands \lvert, \rvert, \lVert, and \rVert
fixes bug #3538
2015-02-09 23:53:39 +01:00
Richard Heck
9f3367e665 Fix bug #9383. Writing directly to the output stream bypassed the
machinery that clears the tag stack.

(cherry picked from commit 5a78a112b6)
2015-02-09 17:27:37 -05:00
Georg Baum
2c5d4d83a2 Fix pasting insets into math (bug #9302)
The problem was that the conversion to plain text (which is used as an
intermediate step) requires for some insets a valid buffer pointer, but
insets in the cut stack do not have one. Now we use the same temp buffer
business as for copying to the external clipboard.
2015-01-21 22:27:06 +01:00
Georg Baum
9ebc325be3 Work around MSVC warning
The statement
	if (pos < from + lyxrc.completion_minlength)
triggers a signed vs. unsigned warning. I don't know why this happens, it
could be a MSVC bug, or related to LLP64 (windows) vs. LP64 (unix)
programming model, or the C++ standard might be ambigous in the section
defining the "usual arithmetic conversions". However, using a temporary
variable is safe and works on all compilers.
2015-01-09 11:54:05 +01:00
Enrico Forestieri
383334c1fe Fix bug #9342: LaTeX build get stuck for unconventional path name
The reason being that the TEXINPUTS path list was not quoted on Windows.
This was no problem with spaces but some special characters are
interpreted by the shell and can cause problems. In this particular
case, the '&' character was being interpreted as a command separator.
2015-01-06 22:06:46 +01:00
Enrico Forestieri
855f24e063 Fix bug #9319: Problems with space inside math and textrm. 2015-01-06 21:50:58 +01:00
Enrico Forestieri
69179c08e7 Fix bug #7970: space disappears from equation when reopening LyX file. 2015-01-06 19:57:54 +01:00
Jean-Marc Lasgouttes
1997e8b817 Reimplement inset-select-all in a generic way
There are 3 possible actions (in order)
* select current cell
* select all calls of inset
* select the inset from outside (in the containing inset)

C-a is now bound to inset-select-all

C-M-a is bound to the global "select all". The
reason for this change is that selecting an inset
is a more common operation that selecting an entire
document.

This patch is the result of discussion on #7727.
2015-01-06 11:05:49 +01:00
Georg Baum
f067babf6e Fix multithreading crash (bug #9366)
This minimal fix makes the crash go away on my machine. A much more complete
fix is in master (and will be futher extended), but for 2.1.x we'll do only
minimal changes.
2015-01-05 21:44:37 +01:00
Juergen Spitzmueller
450288b130 Fix aspectratio UI
Fixes: #9357
2015-01-04 18:07:05 +01:00
Georg Baum
7aab315c81 Fix parsing of verbatim options (bug #9113)
Parser::verbatimOption() did swallow backslashes previously. The similar code
in Parser::verbatim_item() was already correct.
2015-01-03 20:51:02 +01:00
Georg Baum
151abe293e Parse post command argument insets (bug #8473)
This is now very easy with the new InsetArgument infrastructure.
2015-01-03 18:14:20 +01:00
Georg Baum
46bfa47395 Use new argument inset code for environments
This removes another instance of the limitation solved by file format 446:
The order of optional and required arguments is not fixed anymore.
2015-01-03 18:00:13 +01:00
Georg Baum
88cdd6dc60 Skip missing optional argument insets in tex2lyx
Optional arguments are optional, so if one is missing, do not stop the parsing,
but continue with the next argument (it might be a required one).
2015-01-03 17:59:20 +01:00
Georg Baum
53b3b2cf5a Reduce caption hardcoding
Now we can handle all types of captions defined in layout files or modules.
This does also mean that \captionabove and \captionbelow are only recognized
in KOMA-classes and not always anymore, but this is correct, since these
captions would not work in other document classes anyway.
2015-01-03 17:56:53 +01:00
Georg Baum
70bcbd4bd7 Remove InsetArgument 999 workaround
Since we iterate through all arguments we can as well compute the correct id
directly.
2015-01-03 17:45:59 +01:00
Georg Baum
42f36c1b94 Parse starred InsetLayout correctly
Previously, an InsetLayout was not found if the LaTeX name was starred, e.g.
for "\caption*".
2015-01-03 17:39:20 +01:00
Georg Baum
8b75ce5830 Fix misparsing of \textgreek without polyglossia
\textgreek was interpreted as the polyglossia version even if polyglossia
was not used. Now the symbols defined in unicodesymbols are detected correctly
and converted to unicode, while others are converted to ERT (bug #8553).
2015-01-03 17:27:22 +01:00
Georg Baum
9c54ee6f0d Handle unknown table column specifiers (bug #9311)
Previously tex2lyx did ignore table columns if the column specifier was
unknown. This can lead to data loss, and now it does not ignore these columns,
but assumes that the column specifiers use only once character. This can still
lead to data loss, but less often.
2015-01-03 17:06:39 +01:00
Georg Baum
dbbc4239a6 Fix HTML output of \gg, \ll and \ne (bug #9372)
The fix consists of three parts: The fix for \ll and \gg, the needed
infrastructure to assign HTML entities to global math macros, and the actual
fix for \ne and \neq.
2014-12-30 13:39:52 +01:00
Juergen Spitzmueller
0be08dde6d Do not warn about changed modules when changing modules.
Part of #9356
Also fixes #9365
2014-12-25 10:50:21 +01:00
Juergen Spitzmueller
cc58d61744 Do not silently dismiss unapplied document changes when adding module
Part of #9356
2014-12-25 10:45:45 +01:00
Juergen Spitzmueller
b215e58ed1 Output package options before loading any package.
Fixes: #9355
2014-12-22 09:21:28 +01:00
Juergen Spitzmueller
c213243600 When switching classes, warn user about all unapplied document changes
Currently, this is limited to modules.

Part of #9356.
2014-12-21 17:45:39 +01:00
Jean-Marc Lasgouttes
1ae74b2dd7 \\subfloat captions are moving arguments
Therefore insets should be protected in these captions.

Fixes bug: #9346.
2014-12-08 17:39:56 +01:00
Jean-Marc Lasgouttes
53436891f7 Let the Foot inset have a different Layout when inside a title
This allows to address two main issues
 * \thanks does only accept one paragraph, while \footnote allows several (ticket #2666)
 * footnotes in titling environments were not numbered on screen.

Moreover, the code reduces hardcoding of features, which is always a good thing.

There are several pieces in this commit:

 * new numbering type \fnsymbol for counters

 * the Foot inset changes its layoutName() to Foot:InTitle when inside a paragraph with InTitle property. This is set when running updateBuffer.

 * Foot:intitle uses the \thanks command, does not allow multiple paragraphs and marks its contents as moving argument.

 * The InsetLayouts for Foot now have properLaTeXName/Type, so that InsetFoot::latex can be removed; further code simplification is probably possible.

 * HTML preamble has been updated (thanks rgheck).

Fixes: #2666
2014-12-08 10:15:02 +01:00
Jean-Marc Lasgouttes
565cb2a3f0 Fix a couple of compiler warnings 2014-12-08 09:47:45 +01:00
Uwe Stöhr
cdeb542fc0 tex2lyx: backport support for relative sizes and glue lengths 2014-12-04 00:48:27 +01:00
Uwe Stöhr
515e70a7da tex2lyx/Preamble.cpp: add support for all \defskip lengths
backports commit c2e0f223
2014-12-04 00:41:51 +01:00
Uwe Stöhr
a0b723f2b7 tex2lyx/Preamble.cpp: remove unused code 2014-12-04 00:36:00 +01:00
Uwe Stöhr
6d8cb0055e tex2lyx: support for the Libertine fonts 2014-12-04 00:18:32 +01:00
Uwe Stöhr
44682af7d9 mathed: infoize some messages
- fixes bug #1908
2014-12-04 00:11:57 +01:00
Uwe Stöhr
88355eea86 tex2lyx/TODO.txt: \=*{char} is already supported by tex2lyx 2014-11-23 01:33:34 +01:00
Uwe Stöhr
90405fe39b tex2lyx/TODO.txt: the UGM fonts are already fully supported 2014-11-23 00:40:30 +01:00
Georg Baum
e32147a1fe Fix memory error detected by valgrind
The assignment name = sub.str(1) reads from the first argument given to
regex_match(), but previously this was a temporary object which was already
out of scope. This did probably not matter much in practice, but invoked
undefined behaviour, and as we all know this is allowed ton format your hard
disk or kill to your cat, so better fix this.
2014-11-19 20:42:04 +01:00
Georg Baum
3cc5283940 Fix recursive math macro crash (bug #9140)
This is different from bug #8999, since in this case a new macro instance is
created. You still get a TeX capacity exceeded error if you try to typeset the
exported document, but this is the same as for bug #8999 and better than a
crash.
2014-11-16 09:37:29 +01:00
Uwe Stöhr
085d3937c6 tex2lyx: support for \item with opt arg in itemize environment 2014-11-15 21:22:21 +01:00
Georg Baum
8b31f838c5 Make the fix for bug 8999 actually work
This backports 1cdbb94f which was spotted by cppcheck.
2014-11-14 21:28:40 +01:00
Georg Baum
acc771b212 Fix bug #7954 (now really)
Thanks to maciejr we know now what the remaining problem was with bug 7954:
My unicode symbol fallback works fine, the problem was that a font named
"Symbol" is available on OS X, but it does not use the font-specific encoding
we expect: Almost all glyphs are at their unicode code point.
Therefore the bug is fixed by re-enabling the unicode workaround and blocking
the Symbol font on OS X.
2014-11-14 19:09:34 +01:00
Stephan Witt
e354f5e4aa #9317 add method cleanDuplicateEnvVars() to correct the broken environment with duplicate PATH values passed by Yosemite's launchd(8) 2014-11-13 19:13:40 +01:00
Georg Baum
24426cc614 Fix memory errors found by Alfredo with valgrind
BufferParams::setDocumentClass() deletes the old document class of the buffer
and creates a copy of the new one. Therefore, the stored layout pointers in
the paragraphs (actually only one paragraph exists) are dangling afterwards.
Resetting them before setting the document class helps here.
In the long term we need to get rid of BufferParams::setDocumentClass()
completely, this is very ugly.
2014-11-12 20:31:32 +01:00
Uwe Stöhr
7410208b72 tex2lyx/TODO.txt: backport info/update from master 2014-11-11 01:23:20 +01:00
Uwe Stöhr
7b20cc5258 tex2lyx: backport new features from master
- support for bibtopic, \nameref and 2 math fonts
2014-11-10 02:23:05 +01:00
Enrico Forestieri
b16b1ddb58 Fix CAS computation of a selected subformula.
Invoking a computer algebra system program for computing a selected
subformula has never worked (checked with all LyX versions back to 1.3)
and, moreover, in the presence of a selection things go awry.
This commit allows this computation by replacing the selected
subformula with the result of the computation.
2014-11-10 00:47:50 +01:00
Enrico Forestieri
5644470576 Fix issue with CAS.
See http://thread.gmane.org/gmane.editors.lyx.devel/153516
This regression was due to a thinko in [43f6b167/lyxgit].
2014-11-09 21:33:53 +01:00
Uwe Stöhr
aa82c1cc19 InsetFootlike.cpp: disallow to use listings in foot-like insets
- fixes bug #9321 also for branch
2014-11-06 00:31:42 +01:00
Jean-Marc Lasgouttes
02a2241727 Fix wrong test: boolean variable is never negative
This has been spotted by clang++.
2014-11-05 18:23:32 +01:00
Richard Heck
3ca8502ae9 Do not truncate references in outline pane (bug 9312).
(cherry picked from commit 1f45e6527a)
2014-10-30 18:43:25 -04:00
Richard Heck
9574d680e2 Fixes for LyX on OSX 10.10 (Yosemite). From Stephan Witt. 2014-10-27 11:16:08 -04:00
Richard Heck
bd2c17f9fb Sort debug options in the message pane by string. This makes it
much easier to find what you need, especially when we're trying
to help users. Previously, they were sorted by their enum values.

(cherry picked from commit de3daf040b)
2014-10-26 18:00:29 -04:00
Uwe Stöhr
515a4f0fee LaTeXFeatures.cpp: fix bug #9266 also for branch
mhchem loads amsmath and needs therefore be loaded after it but before packages that redefine commands of amsmath. We already take care of esint but not of wasysym
2014-10-26 13:44:42 +01:00
Richard Heck
bdb6abf9b7 Fix bug #9296. The key may be multiple keys.
(cherry picked from commit 080a4d84e2)
2014-10-16 16:38:18 -04:00
Juergen Spitzmueller
34513a4abe Fix key code 2014-10-10 18:24:22 +02:00
Enrico Forestieri
a291c70658 Fix export of xfig external insets (bug #9244).
The check for a latex format is very fragile. Both libmagic and our
guessing from contents cannot distinguish the pstex and pdftex formats
used by the xfig external inset. Moreover, it may also happen that
lyx files are mistaken as latex ones. Thus, when the guessed format
is latex, the only solution is to give precedence to the format
determined by the file extension.
2014-09-28 21:28:16 +02:00
Stephan Witt
3ca1a69918 #8849 catch exception in enchant speller backend and avoid multiple speller lookups for missing dictionaries 2014-09-28 19:39:15 +02:00
Juergen Spitzmueller
e627bf3ba6 Add support for the pdfcomment package.
Fixes: #6975.
2014-09-27 09:55:25 +02:00
Juergen Spitzmueller
2eeed6cf13 Fix bug with wrong baseline calculation in last paragraph (2nd attempt)
This time, we consider the cases where a \par is not wanted (single-par insets, tabular cells).

Fixes: #9231
2014-09-27 09:42:48 +02:00
Scott Kostyshak
2cc0de8b8b Fix alignment rendering of multirow in LyX (#8976)
Multirow cells now have the same alignment rendering in LyX
as in the output. The alignment of a multirow can change as
long as the column is not of fixed width. If the column is
of fixed width, the multirow is left-aligned.

When setting a multirow, the alignment is copied from
the last cell in the selection.
2014-09-26 22:38:13 -04:00
Juergen Spitzmueller
15957d003a Revert fix for #9231
This is more complicated than I thought.
2014-08-28 08:22:47 +02:00
Enrico Forestieri
43c669fb13 Fix the -geometry command line argument for Windows.
The command line argument -geometry WIDTHxHEIGHT±XOFF±YOFF
specifies a preferred size and location for the main window.
Currently, this is semi-broken on Windows. Indeed, only
specifying WIDTH and HEIGHT places the main window such that
the left and top borders are invisible such that the window cannot
be moved. Moreover, the XOFF and YOFF parts (when present) are
used to specify the distance of the window from the left and top
or right and bottom edges of the screen, when using '+' or '-',
respectively. However, -geometry 800x600-20-20, instead of placing
the window such that its bottom and right edges are at a distance
of 20 pixels from the corresponding screen edges, places the
window such that its left and top borders are out of the screen.
This is corrected by this commit.
2014-08-25 20:55:03 +02:00
Richard Heck
8302d1bab1 Possible fix for the mystery crash, which is bug #9049.
Investigation of bug #9236 showed that crash to be due to a Paragraph's
holding a dangling pointer to an old and deleted Layout after the
DocumentClass was reset. Since the backtraces look almost identical, it
seems likely that we have the same problem here.

Since this crash seems almost always to involve tables, I looked at the
code in switchBetweenClasses() and found that the Paragraphs that belong
to "hidden" table cells are not seen by the initial recursion using a
ParIterator: It skips right over them. This was confirmed by test code
suggested by Enrico, with results reported in Trac.

The present patch attempts to deal with this problem in the second
recursion, over Insets. When we see an InsetTabular, we call a new
routine that recurses through the cells, looking for hidden ones. If it
finds a hidden one, it then resets the Layout for the cell's Paragraphs
(there should be only one, but we do not make any assumptions) to the
PlainLayout that belongs to the new DocumentClass. This is good enough,
since such cells never have content.

There is extensive discussion of the patch here:
  https://www.mail-archive.com/lyx-devel@lists.lyx.org/msg185095.html
Additional testing by Enrico and me confirmed the existence of the
dangling pointer.

(cherry picked from commit 54c2ab2732)
2014-08-15 10:46:56 -04:00
Richard Heck
1757ef2a99 Use a const ref here. Guess it was a thinko when I did it.
(cherry picked from commit b9fe1dd10b)
2014-08-12 12:33:29 -04:00
Richard Heck
090bd44740 Fix bug #9236: After we recreate the DocumentClass, we have to apply
it to the document.

(cherry picked from commit c2fdbbe01a)
2014-08-07 15:16:16 -04:00
Enrico Forestieri
e2d834e8d0 Fix bug #9146 (Graphics conversion problem).
If LyX does not know about a given file format, it may easily
happen that the format is recognized as "latex" and this causes
bug #9146. This patch limits the check for a latex format to
non-binary files. The strategy for deciding that a file has
binary content is the same as that adopted by the "less" program.
This is a stripped down backport of the more complex fix in master.
2014-08-04 18:52:20 +02:00
Enrico Forestieri
a8b7e0a18b Add some postscript and pdf viewers for Unix and Windows.
For Windows: AcroRd32, SumatraPDF and gsview (both 32 and 64 bit versions).
For Unix: qpdfview.

Qpdfview is a nice alternative to Okular for KDE users and a superior
alternative to Evince for Gnome users, due to its complete synctex
support. It only depends on Qt libraries for the graphical interface.
2014-08-03 19:26:34 +02:00
Enrico Forestieri
47e263fa7f Fix compatibility issue with 64-bit cygwin. 2014-08-03 18:53:33 +02:00
Enrico Forestieri
154cd41119 Fix import of latex documents with scaled fonts. 2014-08-03 18:42:04 +02:00
Juergen Spitzmueller
d8b88a78a4 Fix bug with wrong baseline calculation in last paragraph
Fixes: #9231
2014-08-03 17:43:18 +02:00
Enrico Forestieri
2a0b22ba9e Fix bug #9151 (Wrong reverse search for images and tables).
If the reverse position corresponds to an inset, its paragraph id
does not follow the main text numbering. Typically, an inset has
only a few paragraphs, so that we would jump near the beginning of
the document. Now the cursor in LyX jumps to the right spot.
2014-08-03 16:47:22 +02:00
Enrico Forestieri
5f7948e5a5 Fix bugs 9190 and 9193.
The conversion from floating point to string performed by
boost:lexical_cast does not allow specifying a precision and,
for example, values such as 0.9 are returned as 0.899999976.
The standard C++ way for performing the conversion is using
std::ostringstream which is exempt from this problem, even if
less efficient. For the sake of accuracy, boost::lexical_cast
is ditched in favor of the ostrinsgstream implementation.
In C++11 another option would be using std::to_string, but I
think it is not as efficient as the boost way and not worth
implementing through #ifdef's.
2014-07-28 00:33:13 +02:00
Juergen Spitzmueller
8d8880d83b Fix typos in InsetListingsParams validator 2014-07-27 09:08:30 +02:00
Juergen Spitzmueller
2194c2c484 Store InsetListingsParams in a vector of pairs, not a map, since order of insertion matters.
Fixes: #8144, #5203.
2014-07-27 09:08:29 +02:00
Scott Kostyshak
63f980bc04 Backport 'select word on double click at boundary'
Now when double clicking on a boundary of a word, the
word is selected. This also causes single-letter words
to now be selected (fixes #9159).

Backported from bcbc162.
2014-07-26 17:30:56 -04:00
Jean-Marc Lasgouttes
3e60f58a92 Do not forget last word of paragraph in completion
With the old code, the last word of a paragraph would not be added in
the completion list. The key difference is to pass `from' instead of `pos'
to FontList::fontiterator.

Slight cleanup of the code.
2014-07-20 00:07:23 +02:00
Jean-Marc Lasgouttes
fa67a6ae89 Fix error spotted by cppcheck 2014-07-20 00:04:45 +02:00
Georg Baum
d610f34212 Make GraphicsConverter threadsafe
build_script() was already threadsafe, since it used a TempFile, and the
counter was basically not needed, but the new solution makes this obvious
and has the additional advantage that TempFile constructs the real output
file, not a dummy without extension which is not needed.
2014-07-07 22:31:11 +02:00
Georg Baum
17275458d9 Fix uncodable author warning
The old code was not threadsafe, and the restriction to one message box per
author name did not work if more than two authors were uncodable.
2014-07-07 22:22:25 +02:00
Georg Baum
d9e234b6da Fix LaTeXFeatures::useLayout() recursion test
It was broken in two ways: It was not threadsafe, and it did never detect
any recursion, since the counter was decremented for each non-recursive call
and never incremented again.
2014-07-07 22:16:13 +02:00
Georg Baum
29f6aebb3e Make LaTeX export threadsafe.
This is one of the more important threadsafety issues because of export in
thread and simultanous view source. The solution is ugly, but a better one
(see FIXME) would require major rework. These static variables should not
have been used in the first place IMHO.
2014-07-07 22:14:28 +02:00
Georg Baum
2fe650f77f Make BufferList::fileNames() threadsafe
Using a static variable here was premature optimization: fileNames() is only
called from GuiRef (directly or indirectly), and since this is a dialog the
copying of a FileNameList is not noticeable at all.
2014-07-07 22:05:10 +02:00
Georg Baum
fc3183a762 Make createBufferTmpDir() threadsafe
This must not use thread local storage, since the generated directories are
all in the same parent directory which is unique per running LyX instance.
2014-07-07 22:03:32 +02:00
Georg Baum
211e1661b5 Make DocFileName::mangledFileName() threadsafe 2014-07-07 22:01:58 +02:00
Georg Baum
7f1fa090e3 Make preview filename generation threadsafe
Threadsafety is ensured by the atomic file name generation in TempFile.
2014-07-07 21:58:24 +02:00
Georg Baum
ee145f2a74 Backport temp file changes from bf782ee
This is a tiny part of the commit which is needed for other thread-safety
fixes.
2014-07-07 21:56:36 +02:00
Georg Baum
9dae9a9d4f Make newUnnamedFile() threadsafe 2014-07-07 21:38:39 +02:00
Georg Baum
ac8fd45b44 Make BufferParams::auto_packages() threadsafe 2014-07-07 21:37:11 +02:00
Georg Baum
f4ed3dc6b5 Make include and bibitem insets threadsafe
Using a mutex to ensure that the generated filenames and ids are still unique.
2014-07-07 21:35:53 +02:00
Georg Baum
8fe58b90c2 Make Formats::isZippedFile() threadsafe
In this case I use a mutex, so the zip status of files is shared between
threads. This is possible because a deadlock can't happen, and it should give
better performance.
2014-07-07 21:34:54 +02:00
Georg Baum
f5cf3705d5 Make theWordList() thread safe.
Without this, you get crashes in a few second when you set the autosave
interval to one second and edit quickly (typing new words etc). The reason
is that the cloned buffer wants to insert words into the word list and
remove them again, but it lives in a different thread.
2014-07-06 18:12:57 +02:00
Richard Heck
594fb59fbe The flush should be done on either branch.
(cherry picked from commit c2de96d2ed)
2014-06-29 15:49:59 -04:00
Richard Heck
e49f4124c7 Backup the existing LyX file before attempting to write the new one.
This avoids dataloss in case we are unable to write the new one after
all.

A more sophisticated approach, due to Georg, is in master, but it needs
more testing that it will be able to get before the release of 2.1.1.
That should be committed to 2.1.x when it is ready and this patch backed
out again.
2014-06-14 17:42:27 -04:00
Richard Heck
a72e68dd09 Revert "Use a different naming scheme, per Enrico's suggestion."
This reverts commit fff454fa4b.

Revert "Per a suggestion of JMarc's, first write the saved file to a"
This reverts commit 094129f804.
2014-06-14 17:42:26 -04:00
Peter Kümmel
2c50241da9 On Linux show in crash message box the backtrace 2014-06-14 11:29:22 +02:00
Enrico Forestieri
32e42f2f81 Set the default locale at startup.
On startup, the default locale is "C", meaning that all system
functions assume an ascii codeset. The environment's locale
settings should be selected by calling setlocale(LC_ALL,"").
This is done by Qt during the QCoreApplication initialization
but this inizialization is never performed for batch processing
and, as a result, LyX is not able to process files whose names
contain non-ascii characters. This is not an issue on Windows,
where the file names are always stored as UTF-16, so the call is
only performed for unix-like platforms (this also includes cygwin,
due to its own filenames management that allows using characters
which are forbidden to native programs).
2014-06-11 19:08:44 +02:00
Enrico Forestieri
970da7c5e2 Fix bug #9153 (Using mathpanel to insert matrix creates extra space on top)
The code was setting the current index before filling the
combo box items.
2014-06-08 23:59:59 +02:00
Jean-Marc Lasgouttes
3544ce4a4e Fix crash when accepting change
The problem is the use of cursor movement methods to update cursor.
Cursor::forwardPos() steps into insets, which is not always what we
want. The problem here is that there is a math inset just after the
accepted change, and that the cursor steps into it for some reason.

This code is a nightmare anyway.

Fixes: bug #9145
2014-06-05 12:51:40 +02:00
Richard Heck
fff454fa4b Use a different naming scheme, per Enrico's suggestion.
(cherry picked from commit 533a05e0b8)
2014-06-04 12:47:37 -04:00
Richard Heck
b9db0c1321 Flush stream more often to help figure out where the mystery crash
originates.
(cherry picked from commit 5536b0c7fe)
2014-06-04 09:22:21 -04:00
Jean-Marc Lasgouttes
d4faf127d7 Make TextMetrics::editXY more robust
This fixes a crash in examples/fa/splash.lyx when selecting text
representing menu entries. This happens because menu names are in LTR
English, while the inset itself is in RTL.

The problem is that the current code relies on the fact that
 1. getColumnNearX and checkInsetHit share the same idea about cursor
    position.
 2. pos and pos + 1 are in general consecutive on screen.

It seems that 1. is wrong here (for reasons I did not try to
understand); the second assumption is definitely false with
bi-directional text. This makes editXY very fragile.

The new code should be more robust in this respect. The logic is:
 * if checkInsetHit finds an inset, use its position,
 * otherwise, ask getColumnNearX for the cursor position.

Fixes: #9142
2014-06-04 12:17:01 +02:00
Richard Heck
094129f804 Per a suggestion of JMarc's, first write the saved file to a
temporary name, then move it to its real location if we succeed.
This prevents our over-writing the existing file with a corrupt
one.
(cherry picked from commit 10364082c8)
2014-06-03 11:48:49 -04:00
Enrico Forestieri
a640f4244e Fix indentation of paragraphs after an environment.
When deciding whether a paragraph should be indented or not, LyX
only takes into account default layouts. This is wrong, because
an environment could be nested into another one and thus a following
paragraph would not be "default". With this patch all paragraphs
after an environment are correctly indented, independently of
whether their layouts are "default" or not.
The latex output (which was modeled following the previous wrong
assumption) is also correspondingly adapted.

No status line needed as this is the completion of previous patches.
2014-05-28 22:16:40 +02:00
Enrico Forestieri
f40adfd486 Fix another glitch with on-screen indentation.
If a new paragraph is created just before a nested environment,
the indentation of the nested environment is not computed
correctly because the parindent of the previous layout would
also be erroneously taken into account. This would cause the
nested environment to move back and forth when something is
added to the new paragraph.

A proper status line covering this change is already present.
2014-05-24 02:12:56 +02:00
Richard Heck
5579d3734a Improve the fix for #9131. We were previously counting passes
through this routine, which means: one for every character, more
or less. So long strings would hit the "recursion limit". But what
we are worried about is an infinite loop caused by misues of macros,
so that is what we need to count.
2014-05-23 11:19:14 -04:00
Richard Heck
b128f3de14 Fix bug #9131 for stable branch. The real problem lies
elsewhere, but it will require major surgery and, more
importantly, a file format change.
2014-05-23 11:01:07 -04:00
Georg Baum
5df89e5006 Fix another crash similar to #9030
This one occured after the fix for bug #9030 if the cursor is in a math inset
and the edit menu is opened.
2014-05-22 22:04:09 +02:00
Enrico Forestieri
956f503401 Fix wrong indentation on screen.
LyX fails to indent on screen a standard paragraph when it is
nested into an environment. The fix is a one-liner but the diff
is larger because it also fixes a previous wrong indentantion
in the source ;)

No status line needed because this is an extension of f5a246b1.
2014-05-21 23:59:53 +02:00
Juergen Spitzmueller
994155b2a6 Output arguments required by arguments with default or preset arg
Fixes: #9128
2014-05-21 15:53:53 +02:00
Georg Baum
c9fdf37678 Ugly fix for bug #9102
The real problem is the encoding of latex_language: It is hardcoded to latin1,
but InsetListig uses the currently active encoding. Therefore, we cannot tell
whether any given character wil be encodable or not, and we should not prevent
non-ACII characters.
In the future, we need to make the encoding of latex_language dynamic, so that
it always represents the currently active encoding. Then, we could do the
correct check both for listings and ERT. For now, I simply disabled the
encoding check for listings, which also means that bug 9012 might occur in
other cases for listings, but this is less important than bug 9102.
2014-05-19 21:50:34 +02:00
Juergen Spitzmueller
1379c381c3 Fix crash when right-clicking into an inset with more paragraphs than the main text.
Fixes: #9123.
2014-05-18 18:08:43 +02:00
Enrico Forestieri
1fa06296b6 Adapt output to the on-screen representation.
LyX assumes that a standard paragraph following a layout with
NextNoIndent==false has to be indented on screen, so output the
necessary blank line to make it so also in the output.
2014-05-17 22:05:07 +02:00
Enrico Forestieri
f5a246b185 Fix an on-screen representation glitch.
If a layout has NextNoIndent set to true, the following paragraph
is not indented on screen. LyX checks the previous layout for that
style parameter to decide whether to indent or not. Of course,
what matters is the latex output and the on-screen representation
should match this output. Now, when a layout has NextNoIndent==true,
the latex output is correctly not indented, while the on-screen
representation may fail to match this output. This can occur when,
for example, a standard paragraph is nested in the previous layout,
because LyX would check the property of the nested layout instead
of the container layout. Thus, LyX should check the property of a
previous layout at the same depth for correctly deciding whether
a paragraph has to be indented or not.
See also http://www.lyx.org/trac/ticket/9055#comment:12 for an
example document where the previous scenario actually occurs.
2014-05-16 21:58:21 +02:00
Richard Heck
b17802ba81 Fix bug #9112: There is a test here that seems intended to catch the
case where there are unbalanced braces, but it comes too late. In that
case, we try to check cmd[docstring::npos] and crash.
(cherry picked from commit 6b0a8fbc96)
2014-05-10 10:40:30 -04:00
Enrico Forestieri
2c2ba981fb Fix problem with drawing of math backround with selections.
(cherry picked from commit 3e681bea4f)
2014-05-07 14:23:53 -04:00
Juergen Spitzmueller
5160fa1043 Stabilize mouse selection in mathed
Fixes: #9074
2014-05-06 17:10:11 +02:00
Jean-Marc Lasgouttes
bd206ff5f5 Turn an error message into a Debug::LOCALE warning 2014-05-06 16:41:26 +02:00
Juergen Spitzmueller
b14e5925a9 Fix View Source size
Fixes: #9084.
2014-05-02 11:03:32 +02:00
Juergen Spitzmueller
28705e8933 Do not write an empty default_otf_view_format.
Fixes: #9100.
2014-04-30 16:02:22 +02:00
Juergen Spitzmueller
8f5af7c453 Bibtopic requires styles files to be passed via argument
Fixes: #9060
2014-04-22 09:32:48 +02:00
Jean-Marc Lasgouttes
6bce9abfee Respect group integrity when removing stuff from the Undo stack.
Fixes: #9079
2014-04-20 22:54:31 +02:00
Richard Heck
65a049dfa5 Merge branch '2.1.1-staging' into 2.1.x
Conflicts:
	lib/doc/es/EmbeddedObjects.lyx
	lib/doc/es/UserGuide.lyx
	lib/doc/fr/EmbeddedObjects.lyx
	lib/doc/ja/EmbeddedObjects.lyx
	lib/doc/ja/Intro.lyx
	lib/doc/ja/Math.lyx
	lib/doc/ja/Tutorial.lyx
	lib/doc/ja/UserGuide.lyx
	po/ja.po
	src/mathed/InsetMathNest.cpp
2014-04-18 11:08:31 -04:00
Juergen Spitzmueller
3501e41e81 Do not substract cursors pos from two different cells (fix assertion while doing adv search)
Fixes: #7944.(cherry picked from commit f6138ed02f47b8bbe65d3245f9e92686dc24296c)
2014-04-18 10:52:48 -04:00
Richard Heck
6f1bba05a5 If this test fails, then we are about to crash, because we are about
to try to access whichever thing we did not find. So do an emergency
close of this Buffer.
(cherry picked from commit 5e557e7f7688e4af5bbecc49f3f7dda80afde44e)
2014-04-18 10:52:48 -04:00
Jean-Marc Lasgouttes
a556652f6e Do not store Languages objects in completion words lists
In the current code each paragraph contains a map<Language,
WordList*>, which means that it contains a full copy of the language
object. Since these objects contain translation tables nowadays, this
is a very bad idea.

This patch simply replaces the Language key by a string.

When loading the Userguide on linux/x86_64, the total memory
consumption decreases from 36.27MB to 31.50MB.
2014-04-18 10:52:48 -04:00
Juergen Spitzmueller
8b60088eaa In Paragraph::changeCase, correctly track the font of the changed characters (fix crash)
Fixes: #7943
2014-04-18 10:52:47 -04:00
Juergen Spitzmueller
892da302d6 Do not allow the manual insertion of a directory (without filename) into the import dialog and thus prevent an assertion.
Fixes: #7437(cherry picked from commit afd897029917a083fbeb84cccd4e6cb0a21db7ed)
2014-04-18 10:52:47 -04:00
Benjamin Piwowarski
a0cc99ff6a Fix problem with python and change of PATH
- waits that lyxrc has been read before finding python
- when the PATH changes, resets the value
- updated status.21x
2014-04-18 10:52:47 -04:00
Juergen Spitzmueller
0fd4db5c9a style 2014-04-18 10:52:47 -04:00
Juergen Spitzmueller
1cc81b1c9c Fix assertion when ChkTeX hit math.
The problem here was that we used texted-only methods (via paragraph()), which triggered the assertion as soon as we were inside math.

Fixes: #8798
2014-04-18 10:52:47 -04:00
Juergen Spitzmueller
90ce24a38d Do not crash when entering math in ct mode with merge dialog open.
Fixes: #7685.
2014-04-18 10:52:47 -04:00