Richard Heck [Thu, 5 Nov 2015 21:42:30 +0000 (16:42 -0500)]
Move LFUN_CHANGES_TRACK and LFUN_CHANGES_OUTPUT to Buffer.cpp,
and record an undo call. This deals with the problem of marking
the Buffer dirty, as well.
Move LFUN_BUFFER_TOGGLE_COMPRESSION and LFUN_BUFFER_TOGGLE_OUTPUT_SYNC
to Buffer.cpp, and add an undo call.
In computeRowMetrics, the right margin of the row shall be taken in account when the text is not left-aligned. Rewrite the code in terms of the available width `w' to avoid this pitfall.
The pointer macroInset points to a vector element. When another element is inserted in this vector, some reallocation occur and the pointer points to a deleted element.
This does not crash LyX by default, but it is bad enough to make valgrind cry.
Try to avoid horizontal scrolling with wide insets.
There was a problem with end of paragraph markers. By design, wide insets choose their size without taking in account the marker. This should not lead to unneeded horizontal scrolling.
Kornel Benko [Wed, 4 Nov 2015 19:53:53 +0000 (20:53 +0100)]
Cmake tests: Expand for some more suspended testcases
All dvi_texF and pdf5_texF testcases are nov candidates for being suspended.
After commit 279d084, now export/.*/Math_(dvi3|pdf5)_texF fails,
therefore the tests are also inverted.
PDF properties (Author, Title...) need to be quoted properly when writing (normal operation and tex2lyx). Also, reading them requires to use Lexer::getString() directly, because >> uses next(), which does not handle escapes.
Kornel Benko [Wed, 4 Nov 2015 10:44:07 +0000 (11:44 +0100)]
Cmake tests: Add 'suspendedTests'
This file holds regular expression to select which of the inverted
export test cases will be suspended.
These tests will not be executed with the call 'ctest -L export'.
Günter Milde [Wed, 4 Nov 2015 10:21:22 +0000 (11:21 +0100)]
Fix some XeTeX + TeX-fonts regressions introduced by fixing #9740.
hyperref expects LICR macros for non-ASCII chars in the PDF Header Information.
As hyperref provides good coverage for \inputencoding{utf8}, we try
this if the current input encoding does not support a character.
With XeTeX, we do not load inputenc and cannot use \inputencoding.
However, utf-8 works out of the box so we can write the content in UTF8.
Fix bug ##9627: Make the document name available to preview insets
The \jobname macro is redefined for the preview snippets such that
it contains the name of the document without extension. This is
harmless because the moment it is redefined, TeX has already chosen
the name of the output and log files. On the other hand, any use
of \jobname in preview snippets is now consistent with what one
obtains after exporting and compiling by hand.
Fix bugs #2645 (export BIBINPUTS) and #6634 (Better support for external files in ERT)
Other than BIBINPUTS, also BSTINPUTS and TEXFONTS are exported.
They do not replicate the setting for TEXINPUTS but are set such
that the current dir (i.e., the temp dir) and the document dir
are also searched for bibtex and fonts related files.
Disable setting vertical lines when using a formal table
The code in InsetTabular disables the toolbar icons and menu entries related to vertical lines.
The code in GuiTabular disables vertical lines in the Settings dialog.
Note that there was a bug in
GuiSetBorders::set(Left|Right|Top|Bottom)Enabled, where the borders
did not get drawn correctly.
Fix algorithm that computes horizontal scroll offset
Rewrite the logic completely:
* fix cases where the offset was reset unnecessarily
* fix cases where the row was scrolled too much: as soon as a side of the row is completely visible, there is no need to scroll more.
* fix cases where offset would never reset
Fix wrong reset of horizontal scolling of current row
This partially reverts commit 0f1fdaaa9, but only redraws the current
row when the value returns by getPos is obviously false. It would also
be possible to check whether the current cursor has all its insets in
cache instead.
A better fix should be found, but this is unfortunately not 2.2 stuff.
Richard Heck [Sun, 1 Nov 2015 21:27:58 +0000 (16:27 -0500)]
If lyx2lyx is asked to convert a file to the format it already is,
then just perform a null conversion. This seems better than aborting
with an error. I can imagine a script that converted all files in a
certain directory to format 498, and you don't want it to be an error
if one of them is already 498.
Prior to this, what lyx2lyx would do is convert to the lowest format
in the current version. So, e.g., asked to convert 498 to 498 it would
convert to 474. That is obviously wrong.
Scott Kostyshak [Sat, 31 Oct 2015 04:30:34 +0000 (00:30 -0400)]
Document various ways to run the tex2lyx tests
Each way might be preferred by a different developer and the more
ways that can be described of running the tests, the higher the
chance is that developers will find a way that works well for them.
Kornel Benko [Fri, 30 Oct 2015 12:28:20 +0000 (13:28 +0100)]
Cmake tests: Display process while executing for target updatetex2lyxtests
The execution took some time and the messages were delayed
until all test files were processed. Now as each testfile
is processed, the appropriate messages are printed.
There is also a new target: cleanupdatetex2lyxtests
It is the same as updatetex2lyxtests, but removes also
some extra created files from the source directory.
Scott Kostyshak [Fri, 30 Oct 2015 02:48:28 +0000 (22:48 -0400)]
Document why tests are enabled for all formats
Explain why the export tests are enabled for formats that are not
expected to work well with certain document classes, modules, or
packages. The reason is that if a .lyx file goes from compiling
successfully for one format (even if that format is not officially
supported for the combination of features used), if that document
suddenly fails to compile, there is a significant chance that a bug
was introduced in LyX. In other words, there is a high signal/noise
ratio. If it is determined that a test is failing because an
expected incompatibility is exposed, then the test can be inverted.
Georg Baum [Thu, 29 Oct 2015 19:02:52 +0000 (20:02 +0100)]
Add "LyX Documentation Tools" toolbar
People working on the documentation do probably want to switch this on. It
gives easy access to LyX and LaTeX logos (bug 9626), and the info and menu
separator insets.
Scott Kostyshak [Thu, 29 Oct 2015 02:51:24 +0000 (22:51 -0400)]
Disable "Show Output Anyway" button if empty file
Sometimes when compilation fails a PDF file is created but is empty
and the viewer gives an error when trying to view it. One such
example is compiling the current lib/examples/PDF-comment.lyx file
with TeX fonts and the following version of LuaTeX:
Scott Kostyshak [Thu, 29 Oct 2015 06:24:20 +0000 (02:24 -0400)]
Document the export tests and other tests
The export tests, check_load tests, and URL tests are now documented
in the Development.lyx file. The export tests are described in
detail, such as how to run them and how to interpret the results.
The wordSpacing property of a QFont object applies only once when there are multiple spaces between words. Therefore Row::Element::countSeparators shall not count spaces, but groups of spaces.
Georg Baum [Tue, 27 Oct 2015 21:36:52 +0000 (22:36 +0100)]
Make language nesting code more readable
This is a tiny simplification that makes understanding the code more easy and
will help in fixing the remaining regressions. The logic remains the same, no
export test result is changed.