Commit Graph

23708 Commits

Author SHA1 Message Date
Uwe Stöhr
87c00f3383 add support for Urdu and Syriac
- fileformat change
- I could not update the tex2lyx testfiles because of bug #10440 (there is now a probable fix)
2016-10-28 00:21:58 +02:00
Juergen Spitzmueller
0894a17e33 Typo. 2016-10-27 19:58:01 +02:00
Juergen Spitzmueller
07c82e9f84 Issue an error message if conflicting languages are used
Some languages are only supported by Babel, some only by Polyglossia.

If these are combined, we issue an error message now.

Fixes: #10456
2016-10-27 09:59:01 +02:00
Tommaso Cucinotta
9740c36e80 Remove assert on advanced find with knitr module (#10444). 2016-10-27 09:38:35 +02:00
Jean-Marc Lasgouttes
695b0cc33b Some tweaks to selection painting
1/ simplify logic that triggers margin selection painting

2/ fix logic for end of paragraph markers. They are now selected when
   there is an end row margin selection.

3/ avoid rounding problems due to int/double conversions.
2016-10-26 14:27:57 +02:00
Jean-Marc Lasgouttes
4159cf97c1 Fix compiler warnings spotted by Uwe 2016-10-26 10:52:55 +02:00
Jean-Marc Lasgouttes
2037cc5ef5 Fixup a700d657 : holes in right margin selection 2016-10-25 16:17:21 +02:00
Enrico Forestieri
3cf0cbb3c6 Show on screen font changes for text-in-math 2016-10-25 16:03:34 +02:00
Jean-Marc Lasgouttes
860accd01f When selecting special logos, set their color correctly
It is not nice when they are the only thinkg in the text that does not
change color.
2016-10-25 15:13:23 +02:00
Jean-Marc Lasgouttes
a700d657b3 Reimplement RowPainter::paintSelection() using row elements
The code is much simpler now and can be actually understood.

As a byproduct, fix bug #10424.
2016-10-25 10:01:37 +02:00
Enrico Forestieri
696ea82b21 Factor out common code used to underline/strike out math
Also use the exact amount of vertical space TeX adds after a
math display (instead of 1ex) for vertically shifting the box.
We have to use \belowdisplayshortskip here, instead of
\belowdisplayskip, because the math formula is typeset by alone
in a box, and thus there is no following line.
2016-10-25 00:49:26 +02:00
Jean-Marc Lasgouttes
e832d2e90f Work around issues with Qt5 and Arabic text
This fixes two particular problems

* with Qt5, it seems that QFontMetrics::width does not return the
  correct value for some Arabic text; this patch uses QTextLayout
  instead to compute a string width

* Likewise, the undocumented layout flags TextForceRightToLeft and
  TextForceLeftToRight do not work with Arabic text; this patch uses
  unicode override characters instead.

It might be that the two issues are related. In any case, they do not
happen with latin text where right-to-left direction is enforced. And
they do not happen with Qt4.

Additionally, remove some dead code in GuiFontMetrics::pos2x().

Fixes bug #10436.
2016-10-24 16:31:40 +02:00
Tommaso Cucinotta
8b5dc3c662 Fix bug in replacement of "$$s/" in converter commands, introduced in 8b66f9ce. 2016-10-24 15:08:06 +02:00
Enrico Forestieri
dea5ba16de Correctly track ulem commands with change tracking
LyX assumes that everything in \lyxdeleted is struck out by ulem
and increases the corresponding counter. However, deleted display
math material is struck out using tikz. As we also take into
account the deletion of underlined display math (in order to
properly position such material vertically), we have to take
care that the count is correct.
2016-10-23 18:23:41 +02:00
Enrico Forestieri
9ba76e6c40 On export, mark the start of the first paragraph
No newline is written after \begin{document}, such that
the afterParbreak method would return false. This misleads
the code that outputs a display math in an ulem command
to emit a newline command instead of \noindent, causing
latex errors. This occurs only if the math is at the very
start of a document, without anything before it.
2016-10-23 18:16:56 +02:00
Juergen Spitzmueller
e335c764b4 Revert "Fix Ticket #9741 misleading name for font-encoding setting "default"."
This reverts commit e37e4f537c.

The issue still needs discussion.
2016-10-23 17:20:58 +02:00
Jean-Marc Lasgouttes
6375a3cd65 Mark a signal invokation as such 2016-10-23 13:49:06 +02:00
Guillaume Munch
13eeb3b3c3 Fix compilation on cygwin & others 2016-10-23 00:25:05 +02:00
Guillaume Munch
67ddc246fd Improvement to the reverse-search algorithm 2016-10-22 23:24:01 +02:00
Guillaume Munch
68b034f51f TexRow: enable new RowEntry types 2016-10-22 23:24:01 +02:00
Guillaume Munch
148b3ae773 Move class definitions inside main class
Prepare for following commits.

This prevent's forward-declaration, but including the TexRow header should be
inexpensive.
2016-10-22 23:24:01 +02:00
Guillaume Munch
2e45bade7a Simplify and add debug message 2016-10-22 23:24:00 +02:00
Guillaume Munch
e1492a3ab1 Use the new infrastructure to select rows during error reporting 2016-10-22 23:24:00 +02:00
Guillaume Munch
dbe0c6991b Add safe line breaks to improve TexRow precision in subfloat & caption 2016-10-22 23:05:44 +02:00
Guillaume Munch
e798db5739 Safe line break to increase precision of error reporting in Listings caption 2016-10-22 22:39:33 +02:00
Uwe Stöhr
d9c52c7a3f support for Amharic, Asturian, Kannada and Khmer
- fileformat change
- I could not update the tex2lyx test files because of bug #10440
- maybe the lyx2lyx routine could be improved but since a document can also begin with another layout than "Standard" I could not use the lyx2lyx function put_cmd_in_ert
2016-10-22 15:33:59 +02:00
Juergen Spitzmueller
9235b09fd8 Fix LaTeX output of fixed-width cells with decimal separator
This follows Uwe's suggestions (and discharges my own).

The result is not ideal, but there is currently no ideal solution.

Fixes: #9568
2016-10-22 12:13:36 +02:00
Juergen Spitzmueller
e83e64c447 Do not output bidi direction macros in passthru context
Part of #10434.
2016-10-21 10:40:19 +02:00
Juergen Spitzmueller
fb9a866a66 Implement PassThru option to arguments. 2016-10-21 10:39:55 +02:00
Günter Milde
e37e4f537c Fix Ticket #9741 misleading name for font-encoding setting "default".
It would be nice, if the tooltip showed the value of
lyxrc.fontenc, but too complicated for my simple patch.
2016-10-21 09:10:46 +02:00
Richard Heck
c19794a013 These two routines are now redundant. 2016-10-20 23:07:13 -04:00
Richard Heck
7c9e9b4c90 We can now use the cached information instead of tracing the graph. 2016-10-20 23:07:13 -04:00
Richard Heck
014bc7805e Use a typedef for vector<Format const *>, which is what gets used
for lists of exportable and importable formats.
2016-10-20 23:07:13 -04:00
Richard Heck
e7f39ed377 There is no need now to cache format information in the SendTo
dialog.
2016-10-20 23:07:13 -04:00
Richard Heck
7fd1a14c1b Since we're now caching this, we can sort it once, rather than
lots of times.
2016-10-20 23:07:13 -04:00
Richard Heck
0b67e103e9 Simple cache for information on exportable formats, since we seem
to access this information a lot.
2016-10-20 23:07:13 -04:00
Enrico Forestieri
7cf12243b8 Fix indentation 2016-10-21 01:58:45 +02:00
Enrico Forestieri
8d5899aaf3 Fortify math insets against ulem commands
It should be now possible underlining or striking out any kind
of math inset containing any math construct indigestible to ulem.
While this was already possible for inline math insets, they could
have break if an aligned environment was used, for example.
This is now possible also for diplay math. Even if this can be
nonsensical and not visually perfect, at least no latex errors
should be generated if one tries to.
2016-10-21 01:35:39 +02:00
Uwe Stöhr
5adf949abb tex2lyx/Preamble.cpp: forgot this in r[f179173e/lyxgit]
- polyglossia supports Romansh, Piedmontese and Friulian
2016-10-21 00:20:27 +02:00
Uwe Stöhr
fe542e7989 tex2lyx/Preamble.cpp: sort alphabetically to keep overview
- also comment out the unsupported languages
2016-10-21 00:14:09 +02:00
Jean-Marc Lasgouttes
b162bd6d2b When breaking an empty paragraph reduces depth, set layout too
This requires an adaptation of the Separator inset insertion code,
which has been duly provided by Enrico.
2016-10-20 14:38:12 +02:00
Jean-Marc Lasgouttes
fbba865d28 Fix compiler warning from clang 3.9 2016-10-20 09:31:01 +02:00
Enrico Forestieri
ab3e1ddc34 Introduce the InsetMathHull::outerDisplay method and use it 2016-10-20 00:06:42 +02:00
Jean-Marc Lasgouttes
4065f596ad Remove unused methods in anononymous namespace
These have been flagged by gcc 6.
2016-10-19 17:51:32 +02:00
Juergen Spitzmueller
86517b120c Restore alphabetic order 2016-10-19 14:21:24 +02:00
Jean-Marc Lasgouttes
85bcf0d93f Fix indentation
Thanks to Juergen and gcc 6.2.
2016-10-19 14:10:47 +02:00
Jean-Marc Lasgouttes
6cb05ce8bb Do some caching of window title and related UI
This should avoid performance problems related to the window update machinery.
Moreover this fixes a crash introduced by 82808fea when closing a file.

Note that GuiWorkArea::Private already had a read_only_ member, but it
was unused.

Also rename LyXVC::vcname() to LyXVC::vcstatus() since it now contains
directly the UI string to be shown.
2016-10-19 11:59:47 +02:00
Jean-Marc Lasgouttes
a4e7114d98 Typo 2016-10-19 11:21:02 +02:00
Enrico Forestieri
d48bc4e4ae Remove a now unnecessary \mbox 2016-10-19 01:32:29 +02:00
Enrico Forestieri
6ae6198818 Avoid introducing a spurious space in \lyxmathsout 2016-10-18 04:35:02 +02:00
Enrico Forestieri
129459a71b Take into account font changes when striking out display math formulas
Font changes are brought inside the \lyxdeleted macro, just before
outputting the latex code for the math inset. The inset writes a
signature before itself and this is checked by \lyxsout for recognizing
a display math. So, the font changes confuse \lyxsout, which also
swallows the first macro at the very start of \lyxdeleted. The result
is that the font changing command is not seen by latex and \sout is also
used to further strike out the formula already striked out by tikz.
This commit makes sure that the expected signature actually appears
just after the opening brace of \lyxdeleted. It also accounts for a
paragraph break occurring just before the math inset, in order to not
introduce too much vertical space, which is noticeable when using
larger font sizes.
2016-10-18 03:29:53 +02:00
Guillaume Munch
9c0281126e Change tracking cue for InsetCaption 2016-10-18 01:06:03 +02:00
Guillaume Munch
0aab06c468 Some compilers are worried that a struct is not the same as a class 2016-10-18 00:54:37 +02:00
Enrico Forestieri
c1bfaa5c76 Fix latex error when change-tracked deleted display math starts a new paragraph
LaTeX refuses to break a line when it is empty. But we have to start
a new line here, otherwise the whole displayed equation would be
typeset as it were inline with previous content. The solution is to
put a zero-length space just before the line break. Moreover, this
is the right thing to do, as it simulates the extra space that is
normally added in this circumstance.
2016-10-17 19:35:04 +02:00
Enrico Forestieri
261e7ae9ce Strike out (in the output) deleted display math with track-changes
Showing deleted display math by enabling "Show Changes in Output" was
only possible with dvi (through dvipost). Although LyX strikes out
such formulas on screen, it was impossible obtaining an output
directly using pdflatex (or other engines producing pdf) because
ulem cannot cope with display math material and gives errors.
The solution is to strike out by ourselves such deleted formulas.
I took into account several options. One of them would produce
an output similar to dvipost (which strikes out each element), but
would have required much more changes in the output routines.
Eventually, I opted for using tikz, which gives a more clean
output (as it requires to simply adding a preamble and a postamble
to the latex code of any displayed math, instead of a mark up
tailored to each particular math construct). The look of the pdf
output is similar to the way LyX strikes out the equations on screen.
2016-10-17 03:25:35 +02:00
Guillaume Munch
e0e765f6a9 Get rid of dirty BufferView pointer
Now that there is a signal to inform the controller when the buffer view has
changed, it is no longer necessary to store a perishable pointer to a buffer
view in the dialog view. (Indeed, it was only really useful for checking whether
the new buffer view pointer was different from the old one.)

TODO: other dialogs should be audited for similar hazards.
2016-10-17 00:16:59 +02:00
Guillaume Munch
de19b8fc2d Take advantage of new bufferViewChanged signal 2016-10-17 00:16:59 +02:00
Guillaume Munch
c438d794ff Factor code after buffer change 2016-10-17 00:16:59 +02:00
Guillaume Munch
f4c390712e New virtual method frontend::Dialog::on_BufferViewChanged()
This is called anytime the buffer view attached to the GuiView changes.
2016-10-17 00:16:59 +02:00
Guillaume Munch
9b4926c6e6 Fit cursor and update screen after reverse-search 2016-10-17 00:16:59 +02:00
Guillaume Munch
a95e933f51 Fixes to reverse search
* In doubt, select up to the end of the paragraph

* Correct offset after artificial new lines
2016-10-17 00:16:59 +02:00
Guillaume Munch
01d6333db2 Implement reverse-search in the source panel
Double-clicking on a line in the source panel triggers the selection of the
corresponding line in the Buffer View.
2016-10-17 00:16:59 +02:00
Guillaume Munch
67805de7de New LFUN paragraph-goto id_start pos_start id_end pos_end
This selects from start to end.

id_end must be in the same buffer as id_start.
2016-10-17 00:16:59 +02:00
Guillaume Munch
f42379a7d6 Fix probable omission
Upon close inspection I do not think that this twist was necessary.
2016-10-17 00:16:59 +02:00
Guillaume Munch
1f6c451ee3 TexRow for InPreamble
This enables error reporting for the preamble, provided the preamble is written
using the new InPreamble layouts.

In the future, I find it preferable to deprecate the usual preamble in favour of
InPreamble layouts rather than implementing error reporting for the usual
preamble. This requires some improvements to code editing in the buffer view
first (line breaking behaviour, syntax highlighting).
2016-10-17 00:16:59 +02:00
Guillaume Munch
1b4f5970a4 Streamify a docstring
prepare ground for TexRow InPreamble
2016-10-17 00:16:59 +02:00
Guillaume Munch
1f945177b9 Docstringify getLongString in general and preamble snippets in particular
Prepare ground for TexRow InPreamble
2016-10-17 00:16:59 +02:00
Guillaume Munch
6edbc1da66 TexRow for InsetArgument 2016-10-17 00:16:59 +02:00
Guillaume Munch
676a0639c5 Use otexstringstream for the captions of InsetCaptionables
* Enable TexRow for InsetListings caption.

* Move getCaption* from InsetText to InsetCaptionable.

* Clean-up caption generation for InsetFloat.
2016-10-17 00:16:59 +02:00
Guillaume Munch
f3e099960a Gcc 4.6 compatibility :( 2016-10-17 00:16:59 +02:00
Guillaume Munch
f3256ee2cd texstring and otexstringstream
texstring is a pair of a docstring and a corresponding TexRow. The row count in
the TexRow has to match the number of lines in the docstring.

otexstringstream is an output string stream that can be used to create
texstrings (i.e. it's an odocstringstream that records the TexRow information
and let us extract a texstring from it).

texstrings can be passed around and output to otexstream and otexrowstream,
which produces an accurate TexRow information by concatenating TexRows.
2016-10-17 00:16:59 +02:00
Uwe Stöhr
f179173e42 support for the languages Bosnian, Friulian, Macedonian, Piedmontese and Romansh
- file format change
- note that I could not update the tex2lyx test files because of bug #10440
2016-10-16 15:33:23 +02:00
Juergen Spitzmueller
f089f60f4e Implement wrapping in next-change (#10388). 2016-10-15 16:34:16 +02:00
Juergen Spitzmueller
0eb651a2cf New layout tags for better counter handling
* ResumeCounter: allow to resume an (enumerate) counter
* StepMasterCounter: allow to increase a master counter
2016-10-14 20:08:12 +02:00
Jean-Marc Lasgouttes
84050268ee Remove useless #include
Including MathData.h in InsetMath.h is expensive and not required.
2016-10-14 11:08:04 +02:00
Scott Kostyshak
892593fbdc Change default working directory from ~/ to "."
Note that the lyxrc.document_path variable corresponds to what we
call the "Working directory" in the GUI preferences dialog.

Setting document_path to "." makes it so when LyX is started from a
directory, that directory is the default path for many of LyX's
operations, such as the following:

- new file, new from template
- adding a custom BibTeX file
- GUI compare dialog
- local layout button in document settings
- external material file browser
- graphics browser, include browser

The best guess for where the user wants to save or find files is the
directory the user started LyX from. Before, the default was always
the home directory. If desired, the old behavior can be restored by
changing the default path in Preferences > "Working directory".

This commit takes advantage of 9b64d7bd, which allows the use of a
relative path for path preferences.
2016-10-11 22:25:42 -04:00
Enrico Forestieri
ded8b1b3da Remove context help button hint from file dialogs
This removes the useless '?' button that appears in Windows builds
when using non-native dialogs. Complements cf26d53e.
2016-10-10 01:25:07 +02:00
Scott Kostyshak
f411040a33 Further amend 168d3557 to satisfy GCC 4.6
GCC 4.6 does not support non-static data member initializers.

As Guillaume points out, changing to static does not change the
intent.
2016-10-09 18:08:42 -04:00
Scott Kostyshak
5fd21db9d4 Amend 168d3557
I forgot to append an underscore for the private data member.
2016-10-09 17:22:22 -04:00
Scott Kostyshak
168d355721 Factor out magic zoom minimum to a const member
The limit of 10% is used in both getStatus() and dispatch() to set a
minimum zoom level. Having it centralized makes the code more
readable and makes changing the minimum less error-prone.
2016-10-09 17:18:07 -04:00
Scott Kostyshak
6a0e5571c5 Whitespace 2016-10-09 17:18:07 -04:00
Daniel Ramöller
cf26d53e03 Remove question marks from Windows dialogs 2016-10-09 19:50:34 +02:00
Guillaume Munch
071eed8664 Remove unused variable warning 2016-10-09 19:48:15 +02:00
Guillaume Munch
2717ef114c Add the customary 1-pixel gap before MathMacroTemplate to better see cursor 2016-10-06 01:35:29 +02:00
Guillaume Munch
5aa3164d21 Make the border of hullRegexp pixel perfect 2016-10-06 01:32:21 +02:00
Guillaume Munch
324e5571ca Fix borders of InsetMathGrid
* New virtual functions leftMargin() and rightMargin() to get rid of
  drawWithMargin()

* Factor and rewrite code for borders.

* Fix several offset calculations.

Known issues:

* Borders of multicols look too good and do not correspond to the pdf
  output. (non-regression)

* Bounding box for Hull (Regexp) not pixel-perfect.

* Bounding boxes of Diagram, XYmatrix, are too tight when there are
  borders. Also border should be disabled. (non-regression)
2016-10-06 01:11:49 +02:00
Enrico Forestieri
42a3035709 Amend ccc0e03f
Better adding the break, even if falling through would be Ok,
as LyX requires xcolor when both xcolor and color are requested.
2016-10-05 01:31:14 +02:00
Enrico Forestieri
ccc0e03fdc In mathed, require xcolor instead of color when appropriate
Fixes bug #10417.
2016-10-05 01:18:15 +02:00
Scott Kostyshak
3fefbf7917 Initialize a member variable before it is used
Valgrind spotted a conditional jump depending on an uninitialised
value.

Thanks to Pavel for the help. For more information, see:
https://www.mail-archive.com/search?l=mid&q=20160928204810.e5ylny3raa7jgmgw%40Opti1604
2016-09-30 23:27:13 -04:00
Enrico Forestieri
925f933a19 Force local language switch in IPA insets
Otherwise we get latex errors when using polyglossia.
2016-09-29 18:35:26 +02:00
Guillaume Munch
79a947c904 Work around dangling pointer
A better solution would be to entirely get rid of this borrowed pointer with
unclear lifetime, but this requires to introduce a new signal for when the
buffer view attached to the GuiView has changed.
2016-09-29 12:37:19 +02:00
Guillaume Munch
3d7ede6059 Clarify that the Dialog::lyxview_ pointer is in fact a reference 2016-09-29 12:37:19 +02:00
Guillaume Munch
c663c9ab3c Fix horizontal lines in math arrays
They must end at the end of the last column, not at the start of the last+1
column.
2016-09-29 12:37:19 +02:00
Enrico Forestieri
7e3494c293 Also track local language switches
Until now this was not done for essentially two reasons. The first
one is that local switches are used for short text insertions, so that
they are unlikely crossing environment boundaries. The second one
is that if we have to close a language at the end of an environment
we would be missing the right termination command. As this last
issue can be overcome by simply storing in the stack the current
nest level with a sign denoting the kind of switch, there is no
reason anymore not to track also local languages switches.
Also factor out some commonly used constructs in order to improve
readability.
2016-09-27 23:00:29 +02:00
Enrico Forestieri
e40fa86a97 Do not unnecessarily open the document language
If the document language is opened outside of any environement, we risk
not closing it if no other language switch occurs. Indeed, the stack is
emptied only at the end of an enviroment. We could of course also empty
it at the end of the document, but we would have an unnecessary language
switch.
2016-09-27 21:41:13 +02:00
Enrico Forestieri
f476d9c85a Shut up compiler warning 2016-09-27 21:32:40 +02:00
Enrico Forestieri
6642152e66 Do not rely on math macros being updated
Trying to spare a few cycles by avoiding computing metrics during
screen updates and export. See also 8f86ee74, 72cf7c8f, and e36a8903.
Guillaume will tell whether this also avoids crashing his documents ;)
2016-09-25 20:31:13 +02:00
Enrico Forestieri
3bc80220a7 Amend 6a3ced3c
ERT macros are also math insets, sigh...
2016-09-25 18:59:07 +02:00
Enrico Forestieri
4508a7f855 No need to clutter runparams... 2016-09-25 08:56:12 +02:00
Enrico Forestieri
8c14d9e041 Correctly track opened polyglossia languages
A language switch may also occur outside of output_latex.cpp, apparently.
2016-09-25 08:20:34 +02:00