Commit Graph

25247 Commits

Author SHA1 Message Date
Juergen Spitzmueller
4ec8bd05a4 update tex2lyx tests 2018-07-07 15:28:40 +02:00
Juergen Spitzmueller
e6e3777363 Add support for bib files encoding
File format change.

Fixes: #6223
2018-07-07 15:25:35 +02:00
Juergen Spitzmueller
1cfa56b5cb Correctly calculate cell metrics with xtabular columns
Fixes rest of #11182
2018-07-07 09:18:47 +02:00
Juergen Spitzmueller
fa9675965a Do not expand tabular cells to maxwidth on line break
Fixes part of #11182.
2018-07-06 16:15:13 +02:00
Jean-Marc Lasgouttes
ad5548cfe3 Fixes to input method handling
The goal of this patch is to make "self-insert <string>" act as a
sequence of individual self-insert calls. Once it is done, the
insertion of the commit string in GuiWorkArea can use that, which
fixes the issues described in bug 11183.

1/ in InsetMathNest, SELF_INSERT is rewritten to be a proper loop of
   interpretChar, instead of inserting the string as characters. This
   solves the issue of interpreting ^ properly.

2/ the text version does not need to be changed (the loop is rewritten
   using a range, though).

3/ Then {{{GuiWorkArea::inputMethodEvent}}} is changed to invoke
   directly self-insert. This removes the update issues.

Fixes bug 11183.
2018-07-05 14:32:37 +02:00
Enrico Forestieri
db9c8c6d02 Autodetect the EMF format
Otherwise it will be recognized only by the file extension, because
libmagic returns "application/octet-stream" as mime type. Moreover,
if the emf encapsulates a binary image format, it can be confused
with this other format and its preview on screen fails.
2018-07-04 19:52:13 +02:00
Enrico Forestieri
dfd6afb740 Fix compilation on case insensitive filesystems
In such filesystems, including either Magic.h or magic.h does not
make any difference and the one or other file is included depending
on the search order. In this case, Magic.h was trying to include
itself instead of including magic.h.
2018-07-04 09:42:04 +02:00
Jean-Marc Lasgouttes
c9fd7058ab fix compilation when libmagic is not used 2018-07-03 21:18:26 +02:00
Jean-Marc Lasgouttes
789acb4a95 Do not allow completion when there is an active selection
We do it in texted only, mathed is more difficult and not so relevant IMO.
2018-07-03 17:01:20 +02:00
Jean-Marc Lasgouttes
4c6a341ab5 Encapsulate libmagic support in a class
This makes the code much easier to read and, additionally, allows to
parse the magic file with magic_load() only once per session.

As a result, getFormatFromFile is slightly faster.
2018-07-03 11:58:01 +02:00
Juergen Spitzmueller
25f274f2a0 Amend e5c79a43ee
Consider some tabularx specifics for the display of tabular/column widths
in the workarea.
2018-07-02 19:16:22 +02:00
Juergen Spitzmueller
e5c79a43ee Attempt to reflect tabular width in workarea
This is not perfect, since variable width columns will break at a certain
treshold, but it is better than what we have now (no tabular width
indication at all)
2018-07-02 17:05:46 +02:00
Jean-Marc Lasgouttes
8e015f3cb2 Do not force lfun argument to be pure ascii
Fixes bug #11167.
2018-07-02 10:49:58 +02:00
Juergen Spitzmueller
9dcb24d578 Support varwidth's V tabular column type
This effectively enables linebreaks, multipars and layout changes in
non-fixed width (i.e., standard) table columns.

Fixes: #6577

TODO: metrics are wrong (too wide) on screen with linebreaks.
2018-07-01 19:18:38 +02:00
Juergen Spitzmueller
88e5e5fd34 Wrap rotated cells with linebreaks in varwidth
Fixes: #8085
2018-06-30 14:32:27 +02:00
Juergen Spitzmueller
fc9d47f7f4 Handle correctly zero table special arguments.
Fixes: #10247
2018-06-26 10:51:16 +02:00
Richard Kimberly Heck
7af1a065e8 update assertion. 2018-06-26 00:26:35 -04:00
Kornel Benko
41ddac5519 Cmake tests: Added tex2lyx test for xltabular and tabularx 2018-06-25 12:04:45 +02:00
Juergen Spitzmueller
21005cbd6f Fix definition of boolean 2018-06-25 12:01:26 +02:00
Juergen Spitzmueller
650bb156d9 tex2lyx: tabular width in longtable is now possible (via xltabular). 2018-06-25 11:52:56 +02:00
Juergen Spitzmueller
8db5ff18cf With xltabular, multi-page tables can have a fixed width 2018-06-25 10:53:40 +02:00
Juergen Spitzmueller
4d80cd60ea GuiTabular: set focus on column width LE if custom is selected 2018-06-25 10:34:57 +02:00
Enrico Forestieri
380f34a114 Fix bug #11180
When a raster image with an advertised pixel density different
from 72 dpi is included in a latex file, the output image dimensions
are scaled by the ratio 72/pixel_density. Hence, if a clipping
bounding box is specified, it has to be scaled by the same ratio,
otherwise the images will be clipped differently on screen and output.
Here we use the extractbb command (present in any TeX distribution)
to ask about the output dimensions of the image as dictated by the
pixel density and compute the scaling ratio by the knowledge of the
actual dimensions. If, for whatever reason, extractbb is not found,
everything goes as before, because the clipping bounding box will
simply not be corrected.
2018-06-24 20:06:40 +02:00
Juergen Spitzmueller
c33506555f tex2lyx: Add support for multirow
Fixes: #11164
2018-06-24 18:14:10 +02:00
Juergen Spitzmueller
087a43ee1f tex2lyx: check for \maketitle also if other titlename is specified
Beamer for instance supports \maketitle, although we use \makebeamertitle
2018-06-24 10:23:30 +02:00
Juergen Spitzmueller
9c10816b84 Update tex2lyx tests. 2018-06-24 10:09:39 +02:00
Juergen Spitzmueller
f38816bf16 Add support for tabularx/xltabular
I.e., variable width columns in single and multiple page tables

Files format change.

Fixes: #4154, #4155
2018-06-24 10:05:15 +02:00
Enrico Forestieri
f6922b8c88 Fix bug #11174
Apparently, a new paragraph is started after a float even if
no blank line is actually present. So, account for this fact.
2018-06-16 20:55:38 +02:00
Juergen Spitzmueller
01d8f41894 Support input of non-ASCII characters in hyperlinks
We transform them to hex representation via
QByteArray::toPercentEncoding()

Fixes: #11165
2018-06-09 11:52:55 +02:00
Jean-Marc Lasgouttes
f1ea7fee5c Unbreak completion in text mode
Completion uses a complicated async scheme based on timers to update
itself. This is probably not necessary anymore and is fragile to
event order changes.

This is what happens with the new painting scheme. Therefore the
asyncHideXXX() methods have to be made more robust and detect whether
completion state has changed by the time they are triggered.
2018-06-08 10:32:47 +02:00
Richard Kimberly Heck
51f8ba9d35 Fix up 3847e0ef7. 2018-06-06 13:55:59 -04:00
Enrico Forestieri
125ee9fb8c Avoid duplicate generation of the same preview
When an image has to be loaded a second time and the cache
is not used or the image is not in the cache, its preview is
going to be regenerated again. Hence, if the same image
appears more than once on screen, avoid requesting simultaneous
generation of the same preview.
See also this thread:
https://www.mail-archive.com/lyx-devel@lists.lyx.org/msg205057.html
2018-06-06 18:59:37 +02:00
Richard Heck
f17f5617e0 Fix bug #7404.
This allows for external editing of ERT insets. Original patch
by Georg Baum. Updated to 2.4dev by Riki Heck.
2018-06-05 23:13:54 -04:00
Richard Heck
3847e0ef77 Fix bug #991.
Patch adapts Georg's work on #7404 to this case.
2018-06-05 22:26:16 -04:00
Jean-Marc Lasgouttes
2d02c39d56 Use getArg to read math-extern arguments
This avoids a use of istringstream that coverity dislikes.
2018-06-05 11:24:05 +02:00
Jean-Marc Lasgouttes
32f37250d5 Catch exception in replaceEnvironmentPath
This exception in the regex constructor is only theoretical (our regex
are hardcoded), but this is creating coverity noise.

Additionally, revert the following commits that are not needed anymore:
6b6fa94c: Catch exceptions to please coverity
c2ed75fd: Fixup 6b6fa94c: coverity says there are more possible exceptions.

This commit is better viewed with 'git show -b'.
2018-06-04 11:39:41 +02:00
Jean-Marc Lasgouttes
4d0c43f9aa Fixup c7496a11: test emptiness before accessing elements 2018-06-01 21:48:26 +02:00
Juergen Spitzmueller
2fbce44401 We do not natively support multirow yet
See #11164
2018-06-01 17:11:35 +02:00
Juergen Spitzmueller
a368439bcc If a master is being created at loading the child, un-hide it.
Fixes: #11162
2018-06-01 10:17:18 +02:00
Jean-Marc Lasgouttes
c7496a11b2 Skip paint event when in the middle of a buffer operation
This is detected when an undo group is open and contains at east one
element. This means indeed that changes are in progress. Note that the
group is in general opened in GuiApplication::dispatch. The code there
is changed to ensure that the group is closed before updating the
screen.

This patch is experimental. It is expected to be replaced in master by
a more complete solution. It could in the meantime be backported to 2.3.x.

Fixes bug #11159.
2018-05-31 23:26:17 +02:00
Richard Kimberly Heck
efc9720b0d Revert "Remove test for files when using batch mode."
We are not really ready for this case.

This reverts commit e143f0b9e9.
2018-05-30 23:13:07 -04:00
Richard Kimberly Heck
e143f0b9e9 Remove test for files when using batch mode.
As Kornel pointed out, it's possible to give a command sequence, or
multiple "-x" arguments, and carry out an operation without actually
giving LyX a filename argument. This will lead to cases like:
    lyx -batch -x buffer-export
which don't do anything, but it's not catastrophic.
2018-05-29 15:48:56 -04:00
Jean-Marc Lasgouttes
b54fcc0b7f Fixup 7900e995: avoid null dereference
Spotted by Coverity.
2018-05-29 15:23:28 +02:00
Jean-Marc Lasgouttes
d1d3f75548 Fixup dd79338c: avoid hypothetical division by zero
Spotted by Coverity.
2018-05-29 15:18:01 +02:00
Jean-Marc Lasgouttes
c76b8b3a25 Fixup 57dc8175: initialize GuiCharacter::nospellcheck_
Spotted by coverity.
2018-05-29 15:08:38 +02:00
Jean-Marc Lasgouttes
6bcc7d6e42 Fixup 4e9084b3e4
The reordering of the code was incorrect. The code calling Change::paintCue()
has to come last, since it depends on the change_drawn value.

Spotted by coverity.
2018-05-29 15:00:04 +02:00
Jean-Marc Lasgouttes
5c3900344a Fixup a8fd12d1
Remove unused variables.
2018-05-28 18:02:54 +02:00
Jean-Marc Lasgouttes
a8fd12d18c Cosmetics
Use range-for in TextMetrics.cpp.

Rename InsetList::InsetTable to InsetList::Element.
2018-05-28 12:33:17 +02:00
Jean-Marc Lasgouttes
947527084b Remove trailing _ to local variable
We reserve these to private members.
2018-05-28 11:43:24 +02:00
Jean-Marc Lasgouttes
4e9084b3e4 Draw frame last when drawing text insets
This avoid cases where the blinking cursor erases the frame.
2018-05-28 10:33:55 +02:00
Juergen Spitzmueller
8bd65041f2 Fix encoding problems in \input@path
As of LaTeX2e 2018, characters are made active earlier, which results
in new expansion problems.

Following a suggestion of Markus Kohm (pc) and the TL mailing list [1],
we embrace non-ASCII input paths in \detokenize. This relies on e-tex,
but I think we can assume this is nowadays available everywhere.

[1] http://tug.org/pipermail/tex-live/2018-May/041691.html

Fixes: #11146
2018-05-27 11:54:07 +02:00
Juergen Spitzmueller
5996b2e373 Unbreak bibitem citations
ENGINE_TYPE_DEFAULT includes the other two types. Thus we need to check
for multiple engines in parallel (and reintroduce the binary operators)
2018-05-27 11:49:10 +02:00
Juergen Spitzmueller
a4c416a03d disambiguate function name 2018-05-27 09:57:22 +02:00
Kornel Benko
1a36fee79d Added testcase for ticket #11156
The test is named "AMS-import", with defined test-labels 'tex2lyx' and 'batch'
2018-05-24 20:49:11 +02:00
Juergen Spitzmueller
8b4c76fb24 Consider required modules when checking for layout definitions in modules
Fixes: #11156.
2018-05-24 17:38:10 +02:00
Jean-Marc Lasgouttes
a3868e40a4 Set caret height correctly for cells inside math rows
The code in 90cfe4ec3 only handled the cells which metrics are
computed directly, and missed those who were linearized inside a MathRow.

To fix this, we use the fact that all the positions in a math row have
the same height and make MathRow::metrics return a boolean indicating
whether it contains a caret for a given bufferview.

Fixes bug #11153.
2018-05-24 14:47:08 +02:00
Juergen Spitzmueller
429edc0a59 tex2lyx: extend titling support
Rather than checking for hardcoded title commands such as \maketitle,
use the titlename and titletype as defined in the layout.

This now also includes title environments.

Fixes part of #6461
2018-05-23 12:34:41 +02:00
Juergen Spitzmueller
da4e51a6c2 Fix wrong warning. 2018-05-21 13:46:05 +02:00
Juergen Spitzmueller
4f33b7d1d1 Update tex2lyx tests 2018-05-21 13:46:04 +02:00
Juergen Spitzmueller
98621be1ba Support \cite command in tufte classes
This is an extra command used for sidenote citations. Since we do not
provide \cite with natbib (which tufte uses) as a choice, we use the
new AddToCiteEngine feature to add it.

File format change.

Fixes: #11150
2018-05-21 13:46:04 +02:00
Jean-Marc Lasgouttes
c58b914c80 Reset dim width when computing MathRow metrics
This was dropped by mistake in 7bcb78a77.

Fixes bug #11152.
2018-05-21 13:26:48 +02:00
Juergen Spitzmueller
bbf287a3c6 Allow for cite engine and format definitions/modifications in layouts
Now layout files and modules can extend the cite engines or completely
overwrite them, and modify the cite formats.

Any CiteEngine definition in a layout/module will completely overwrite
those by cite engine files.

AddToCiteEngine will extend them (add if they do not exist yet).

Any CiteFormat definition in a layout will be preferred to those in cite
engines. CiteFormat definitions that are not touched by the former are
still active, though (so, as opposed to CiteEngine, a CiteFormat does
not completely overwrite those by the engine files).

Layout format change.
2018-05-21 12:46:53 +02:00
Juergen Spitzmueller
0aeeb78f3c Simplify cite engines code
As opposed to modules (from which the framework was initially borrowed),
we only allow one cite engine per document. Thus, we don't need to fiddle
with lists.
2018-05-20 12:27:03 +02:00
Enrico Forestieri
17ea71b31c Fix bug #11151 2018-05-19 21:33:29 +02:00
Juergen Spitzmueller
e077255aea Do not start from a non-reveant parent in Buffer cloning. 2018-05-16 08:35:21 +02:00
Pavel Sanda
d0cd06e191 cosmetics 2018-05-15 11:01:22 +02:00
Jean-Marc Lasgouttes
d03deeca0c Avoid black screen on macOS
When paintEvent is triggered on macOS, the least we can do is to copy
our backing store to the screen.
2018-05-15 10:22:03 +02:00
Jean-Marc Lasgouttes
3591aa833f Implement layout-toggle lfun
This is like `layout', except that the layout is reset to default if
it was already correct. In the case of a selection, the layout is set
normally if some layouts in the selection are not at the required
layout; it is reset only if all the layouts of the selection already
have the required layout.

Part of ticket #9864.
2018-05-15 00:03:55 +02:00
Jean-Marc Lasgouttes
c4075367fa Removed unused private variable
Spotted by clang++ 6.
2018-05-14 23:03:50 +02:00
Jean-Marc Lasgouttes
255a5cf401 Clean up code of LFUN_LAYOUT
Factor out some code in helper functions. Improve getStatus so that
icon is selected only when the whole selection has the correct layout.

This work towards ticket #9864.
2018-05-14 16:45:46 +02:00
Juergen Spitzmueller
3e24f0da98 Implement InsetFloat::contentAlignment() 2018-05-11 15:31:04 +02:00
Juergen Spitzmueller
de67b68b1d Fix InsetBox::contentAlignment()
Some cases where alignment is possible were missing.

Candidate for 2.3.x.
2018-05-11 15:11:06 +02:00
Juergen Spitzmueller
5dde4b1b3e Merge paragraphs when pasted into an inset that forbids multipars
Fixes: #8281
2018-05-11 13:17:39 +02:00
Juergen Spitzmueller
a78dad7487 Align some strings 2018-05-11 12:59:26 +02:00
Jean-Marc Lasgouttes
7f83d26934 Avoid crash when trying to handle FitCursor
It is better to handle SinglePar before FitCursor, since the later
requires correct metrics at cursor position.

Fixes bug #11139 and probably #11125.
2018-05-11 11:27:26 +02:00
Juergen Spitzmueller
db9e50bdcf update tex2lyx tests after file format change 2018-05-10 20:16:56 +02:00
Juergen Spitzmueller
aa9543fa2b Add support for global float alignment
It is now possible in the float settings (doc dialog) to specify a global
(inner) alignment for floats, and in the float settings, this can be
overridden (just as with float placement)

Fixes: #8665

File format change.
2018-05-10 20:15:11 +02:00
Scott Kostyshak
23de5e5e19 Only show Accept/Reject Change options if relevant
In the context menu for a selection, we now only show the options
"Accept Change" and "Reject Change" if there is actually a change in
the selection. Similarly, in the toolbar, the buttons are only
enabled when there is a change in the selection.

This fixes #10338.
2018-05-10 12:58:44 -04:00
José Matos
37c9480656 Simplify the backup names when using an older file format.
Currently if we have a 2.3 file and we open it with a more recent version
we get:

original file: file.lyx
backup file:   file-lyxformat-544.lyx~

After this commit the backup file becomes

file-lyx23.lyx~

If the file is from a development version then we get the same result as before.
2018-05-09 08:53:28 +01:00
Scott Kostyshak
bde1834f7e Center longtable explicitly (#10690)
"Center" is the default of longtable, but some situations require it
to be centered explicitly, such as when using floatrow:

https://tex.stackexchange.com/questions/320592/floatrow-package-conflicting-with-centering-longtable
2018-05-08 11:18:07 -04:00
Richard Kimberly Heck
81abfdc13d Fix problem noted by Scott in bug #11125.
Need to set the Buffers for math insets, too.
2018-05-08 02:11:49 -04:00
Juergen Spitzmueller
3313e7d0ab Separate Text Styles and Text Properties 2018-05-08 07:46:53 +02:00
Juergen Spitzmueller
5b352e6e8e Fix cutnpaste error 2018-05-07 10:15:23 +02:00
Juergen Spitzmueller
3825b25aed GuiCharacter: Reset > Default 2018-05-07 09:03:45 +02:00
Juergen Spitzmueller
2f2102d0ba Paint nospell mark lower than foeign mark, since these can appear both
Also, assure that misspelled mark is not shown when nospellcheck()
2018-05-07 08:41:28 +02:00
Juergen Spitzmueller
57dc817581 Add \nospellcheck font property
This revives a ten year old idea (and patch) by Dov.

You can now mark in the character dialog text and exclude it from spell
checking.

Fixes: #1042

File format change

Remaining issue: The instant spell checking marks are not immediately
removed, but only after some editing.
2018-05-06 19:48:21 +02:00
Juergen Spitzmueller
16918f9706 More UI tuning following Scott's suggestions 2018-05-05 18:48:43 +02:00
Richard Kimberly Heck
c7a2011adf Remove unused function. 2018-05-05 12:02:10 -04:00
Juergen Spitzmueller
9c0bea33b6 Fine-tune character dialog UI 2018-05-05 17:45:17 +02:00
Juergen Spitzmueller
7be3805a65 Further BC fixes to GuiCharacter 2018-05-05 17:24:09 +02:00
Juergen Spitzmueller
c62055458e Use a copy of BufferParams 2018-05-05 15:26:58 +02:00
Juergen Spitzmueller
a853dab61f Check script char fontenc from main language. 2018-05-05 15:26:37 +02:00
Juergen Spitzmueller
01ca601877 Fix BC issue with autoapply 2018-05-05 12:35:07 +02:00
Juergen Spitzmueller
fe18bea3d0 Have OK/Apply buttons initially disabled. 2018-05-05 11:33:45 +02:00
Juergen Spitzmueller
164e8d1dc8 Add missing transition to button controller
(needed by GuiCharacter, the only user of that specific policy)
2018-05-05 11:32:56 +02:00
Juergen Spitzmueller
d4598bab62 Remove unused code 2018-05-05 11:28:54 +02:00
Juergen Spitzmueller
6c35d5cb5b Fix signals 2018-05-05 10:29:26 +02:00
Juergen Spitzmueller
a320403590 Remove hack that's no longer needed 2018-05-05 10:28:43 +02:00
Juergen Spitzmueller
fe6b0e2670 Add and correct tooltips 2018-05-05 10:05:01 +02:00
Juergen Spitzmueller
01ffcd5f67 Add translator hints 2018-05-05 10:04:46 +02:00
Juergen Spitzmueller
0a8ec32a3b Remove connections
We have on_emphCB_clicked() and on_nounCB_cklicked() that call
change_adaptor at the end (after doing other things)
2018-05-05 10:00:20 +02:00
Richard Kimberly Heck
a2030abab9 Constify. 2018-05-04 15:42:01 -04:00
Richard Kimberly Heck
7f4f14786d Add missing connection after fb393b45. 2018-05-04 15:11:53 -04:00
Juergen Spitzmueller
f888afeb9e Small cosmetic addon to the character dialog redesign 2018-05-04 19:50:41 +02:00
Juergen Spitzmueller
fb393b450d Towards a sane character dialog
This is a proposal, but I think you should try it out in order to comment

What this does, is:

1. Remove the toggle madness. This is really not something anyone
understands without knowing the code, and its very unusual UI
(fixes #4836)

2. Separate and group things that were put all into the "Misc" trashcan
combo

3. Let the dialog reflect the font settings at cursor (selection)

Now the dialog looks more like character dialogs from other applications,
and I think it is more in line with what users expect.

Comments very welcome (and of course I will revert if you want to have
the old idiosyncratic thing back).
2018-05-04 19:34:09 +02:00
Juergen Spitzmueller
9fd94a2dd0 Fixes for nested ulem commands
1. \uuline must be on top of \sout
2. \uwave in \xout needs a hack to compile
2018-05-04 19:32:38 +02:00
Richard Kimberly Heck
ea9fe52336 Note. 2018-05-04 12:39:07 -04:00
Juergen Spitzmueller
df74be4cea Set main_fontenc runparam also for paragraph-only source preview. 2018-05-04 16:37:21 +02:00
Juergen Spitzmueller
f479c5e8c7 cprotect include inset
We \cprotect them in fragile context. This allows \input, \include as
well as \verbatiminput and \lstinputlisting in sections etc.

They still don't work in titling (#2528)
2018-05-04 11:56:42 +02:00
Richard Kimberly Heck
df5805917b Do not step equation numbers in deleted equations. 2018-05-03 00:05:21 -04:00
Richard Kimberly Heck
200064e9a4 Do not step counters in deleted material.
Also, display the counter as "#" if the inset is deleted.
2018-05-02 23:56:41 -04:00
Richard Heck
cc4bfc7f04 Add toolbar menus for custom insets and character styles.
I'm open to putting this elsewhere on the toolbar, or even on a
different toolbar. Also, we need decent icons. These ones are not
intended seriously but were just borrowed for testing purposes.
Anyone have good ideas about icons?
2018-05-02 20:31:24 -04:00
Richard Kimberly Heck
e91245362f Fix indentation. 2018-05-02 19:57:37 -04:00
Pavel Sanda
641ae5c7ad Enable graphics-unify only for selections containing graphics insets.
Follow-up of
https://www.mail-archive.com/lyx-devel@lists.lyx.org/msg204907.html
2018-05-02 22:38:42 +02:00
Jean-Marc Lasgouttes
22de5c972a Move code around 2018-05-02 12:43:10 +02:00
Jean-Marc Lasgouttes
7f035b51a0 Revert "Update documentation"
This update was wrong.

This reverts commit 969540be59.
2018-05-02 12:38:40 +02:00
Jean-Marc Lasgouttes
969540be59 Update documentation 2018-05-02 12:21:29 +02:00
Juergen Spitzmueller
a756299c50 revert accidental commit 2018-05-01 21:47:41 +02:00
Juergen Spitzmueller
2009469219 Group the switch of encoding for listings in utf8 documents
Else, \cprotect'ed documents fail.
2018-05-01 14:21:05 +02:00
Richard Kimberly Heck
2777b51c58 Request buffer update rather than do it. 2018-04-30 22:31:50 -04:00
Richard Heck
35afcfb6dd Fix bug 11070.
Allows plural, caps, no prefix to be set via context menu.
2018-04-30 21:29:21 -04:00
Juergen Spitzmueller
9644916d32 Fake CJK quotes also for utf8 inputenc
The glyphs are not covered yet.
2018-04-30 15:22:50 +02:00
Juergen Spitzmueller
dd79338cff Try to make an educated guess about the logo extension on the banner 2018-04-30 12:59:54 +02:00
Juergen Spitzmueller
00e00b32fd cprotect: don't consider content in Notes, deactivated branches etc. 2018-04-30 09:53:14 +02:00
Juergen Spitzmueller
16dc796a47 Fix comment 2018-04-30 09:41:12 +02:00
Juergen Spitzmueller
768c9a552e cprotect allows to place environments in fragile contexts.
use that possibility.

Fixes parts of #5128.
2018-04-30 09:06:15 +02:00
Juergen Spitzmueller
15df033bce PassThru paragraphs have latex_language; consider this when checking
previous language

Fixes: #10793.
2018-04-29 13:19:27 +02:00
Juergen Spitzmueller
54aa0addee Allow adjustment of banner slogan size to localized slogan 2018-04-29 11:56:17 +02:00
Juergen Spitzmueller
0423d381e6 Localize slogan on LyX banner
Fixes: #11107
2018-04-29 11:26:25 +02:00
Juergen Spitzmueller
58d7bad447 Language::fontenc(): Don't check for LaTeX font with nonTeX fonts. 2018-04-29 09:21:35 +02:00
Scott Kostyshak
4f7a5f8c3e Fix duplicate, disabled "Separated Frame Below"
This commit fixes an issue where the menu option "Insert Separated
Frame Below" would show up twice, with one instance disabled. This
occurred when there was a "Standard" environment nested in a
"Frame". With this commit, the duplicate instance is removed.
2018-04-28 11:45:17 -04:00
Juergen Spitzmueller
0b2fae66e3 unicodesymbols: add general way to require a feature only for specific encodings
A feature can now be required only for specific input or font encodings:
- <feature>=enc1;enc2...  Require the feature <feature> only if the
                          character is used in one if the specified font
                          or input encodings.
- <feature>!=enc1;enc2... Require the feature <feature> only if the
                          character is used in a font or input encoding
                          that is not among the specified.
2018-04-28 13:31:29 +02:00
Juergen Spitzmueller
c7bdb3b342 Rework OK/Apply/Cancel UI of prefs dialog
Instead of "Save" (permanently) and "Apply" (temporarily), OK and Apply
now always save permanently, unless the new checkbox "Apply to current
session only" is checked.

Addresses: #10016
2018-04-28 11:19:26 +02:00
Scott Kostyshak
e49a10729e Initialize toolbarsMovable_
Valgrind detected a conditional jump because this member was not
initialized.
2018-04-27 21:20:56 -04:00
Juergen Spitzmueller
7018d3641f Don't add localswitch if no language changes 2018-04-27 18:27:21 +02:00
Kornel Benko
cf7c31b559 Amend 26ea1e1 for roundtrip tests 2018-04-27 12:49:13 +02:00
Juergen Spitzmueller
f778870338 Close/reopen local language switches at each par
Fixes: #11128
2018-04-27 09:48:14 +02:00
Jean-Marc Lasgouttes
90cfe4ec3b Adapt caret height to context in mathed.
Compute a height from current font and current cell vertical
dimensions in MathData::metrics(), because this is where current font
is known.

Introduce BufferView::setCaretAscentDescent to remember this value.

This mechanism is not used for text because Cursor::current_font is
restored by undo, and the caret height would not be changed then. But
in principle it is doable.
2018-04-27 00:03:48 +02:00
Jean-Marc Lasgouttes
2f1eb35b86 Rework caret display code
The new code is much simpler: what it does is, after redrawing has
been done, to mark the cursor row as changed, so that it will be
repainted on next paint event.

This avoids some crashes at the price of possibly repainting the row
when it was not necessary.
2018-04-26 23:25:31 +02:00
Richard Kimberly Heck
19e6977b5b Try to fix bug #10989.
The problem is that popping dialogs during reload can cause paint
events for which we are not ready. If this does not work, then we
can introduce a new flag, besides 'busy', for that case. But busy
does not seem to be used very widely, so hopefully this works.
2018-04-25 23:46:13 -04:00
Richard Kimberly Heck
4e8730b57e Const. 2018-04-25 22:51:57 -04:00
Richard Kimberly Heck
ba0f28a09b Simplify some code now that we don't need it for indexes.
This has the effect that inserting nomenclature entries does not
cut the selection (implicit or explicit) but rather copies it, which
seems to me to make a lot more sense. If anyone objects, let me know.
2018-04-25 22:22:36 -04:00
Richard Kimberly Heck
aa2f409d87 Restore implicit word selection for inset insertion.
Modifies 83356ab9.
2018-04-25 21:48:25 -04:00
Richard Kimberly Heck
821e101547 Improve error message a bit more.
Sorry to Kornel, who had already updated sk.po!
2018-04-25 18:43:49 -04:00
Richard Kimberly Heck
6b095e2b71 Don't sort the bibfiles cache.
This causes problems with biblatex. Instead, we sort the old and
new lists and then compare them.
2018-04-25 13:41:12 -04:00
Richard Kimberly Heck
04f7151684 Improve error message. 2018-04-25 12:05:25 -04:00
Juergen Spitzmueller
389352b3fb Add optional flavor flag to needaux
Also, use latex flavor if no flag is given rather than default output
format

Fixes: #9127
2018-04-25 13:51:40 +02:00
Jean-Marc Lasgouttes
68ec34e603 Redo metrics after cancelling macro mode
When the cursor is inside a subscript that may become empty, metrics
issues can happen. This patch fixes the issue, although it is not
clear to see what the problem is.

Still, requesting a metrics update also in the case where the macro
mode is canceled makes sense.

Fixes bug #11125.
2018-04-24 14:03:35 +02:00
Richard Kimberly Heck
ae45a5de59 Add slightly improved error message.
(cherry picked from commit 4f0504d778)
2018-04-23 20:36:56 -04:00
Juergen Spitzmueller
dcd0586b75 Add T1 fontenc as fallback for no font
This probably needs some more thought.
2018-04-23 18:35:11 +02:00
Juergen Spitzmueller
72cebc2514 We need the "none" return value of main_font_encoding 2018-04-23 16:21:08 +02:00
Juergen Spitzmueller
0e75a749d0 Move definition out of loop 2018-04-23 16:21:08 +02:00
Juergen Spitzmueller
f63de41c4c Remove Language::fontenc()
This raw vector of fontenc alternatives is not needed outside Language,
and it should actually never be used.
2018-04-23 12:59:57 +02:00
Juergen Spitzmueller
998f097686 Correct fontenc for secondary languages 2018-04-23 12:33:11 +02:00
Juergen Spitzmueller
1af0832f75 Do not require cprotect if we only have a cprotectible inset in the maintext. 2018-04-23 11:04:18 +02:00
Richard Kimberly Heck
34c559edeb Whitespace 2018-04-22 21:45:36 -04:00
Juergen Spitzmueller
a883133e8d Paragraph on top level do not need cprotection. 2018-04-22 20:15:04 +02:00
Juergen Spitzmueller
26ea1e1496 Align fontenc with document fonts
Following a request by Günter, we consider the document fonts (only rm
for now) when selecting an appropriate font encoding.

See #9741

The new default font encoding setting "auto" does

* consider the font encoding needed by the language(s), which can now
  have fallback alternatives
* Consider which font encoding is provided by the document font

Thus, cm now will result in OT1 fontenc, if the language can deal with
that.

The font_enc pref is ditched: it is no longer needed.

The automatism is still very basic and is subject to extension.

File format and prefs format change.
2018-04-22 19:06:46 +02:00
Juergen Spitzmueller
3457d9d25f Output "textbaltic" definitions only if needed. 2018-04-22 10:08:07 +02:00
Scott Kostyshak
dc404b19a5 Comment: buffer-forall should be run synchronously
As of 8be51425, "buffer-forall" joins "command-sequence" and
"repeat" in this category of LFUNs.
2018-04-21 23:05:21 -04:00
Scott Kostyshak
8be514258f buffer-forall now disables async
Before, the command

  buffer-forall buffer-export

only exported one buffer for me. With async disabled, the command
works as documented and successfully exports all buffers.

Also before, I received an assertion from

  buffer-forall buffer-close

which caused a SIGSEGV at #9422. Now, the action works as expected.
2018-04-21 22:59:26 -04:00
Richard Kimberly Heck
97021ee369 Avoid warning. 2018-04-21 21:41:47 -04:00
Richard Kimberly Heck
0fc50a2637 Fix problem with synchronous export.
It surprises me a bit that the code is different in this case
from the case when EXPORT_in_THREAD is not set. I should check
to see if there's a problem in the other case, too.
2018-04-21 19:50:22 -04:00
Scott Kostyshak
ea17a3cd09 Whitespace 2018-04-21 14:16:54 -04:00
Juergen Spitzmueller
02d37932d0 \textcyr -> \textcyrillic
Use the command as defined by Babel. This allows us to use the (more
advanced) Babel command if provided instead of rolling our own.

I add a dummy file format change in case it turns out we need to
do something here for old documents (e.g. with user preamble definitions)
2018-04-21 16:28:15 +02:00
Juergen Spitzmueller
71f0dd3a7f Add Provides tag to languages
This allows to specify macros that are provided by specific (Babel)
languages (such as \textgreek)
2018-04-21 15:47:39 +02:00
Juergen Spitzmueller
ab4bd6b77e Define \textgreek only if needed
Babel provides a definition if a Greek language is loaded.

Also, clarify some FIXMEs
2018-04-21 15:00:42 +02:00
Juergen Spitzmueller
4010ccafbd Factor out test for script wrapper in given font enc 2018-04-21 12:55:11 +02:00
Juergen Spitzmueller
b7223bc5d1 Handle script chars in latexSurrogatePair
If we have "script chars" (\textcyr or \textgreek) combined with
combining chars, the combining chars need to go inside the script
macro.

Fixes: #6463
2018-04-21 11:38:19 +02:00
Pavel Sanda
9fa36455c9 cosmetics 2018-04-21 10:06:27 +02:00
Juergen Spitzmueller
51466fe649 Handle nested \cprotect 2018-04-21 09:35:42 +02:00
Richard Heck
2477493cf5 Fix #8338.
The idea here is to force commands to be run syncrhonously when
they are launched via "command-sequence" or "repeat". We do this
by using a new flag in FuncRequest.
2018-04-20 23:37:58 -04:00
Richard Heck
dd2efe8d0d Fix for #10624.
If we're in the first paragraph after a division (section, etc),
use the prefix for it.
2018-04-20 23:27:29 -04:00
Richard Heck
83356ab9fe Fix #6344.
For some reason, special code was added for LFUN_INDEX_INSERT
when it was not actually needed. So just delete it.
2018-04-20 23:11:04 -04:00
Richard Heck
64acc06b91 Reset counters before we re-run updateBuffer when the bibfiles change.
Fixes a bug reported by Pavel here:
  https://marc.info/?l=lyx-devel&m=152407889727665&w=2
2018-04-20 22:58:29 -04:00
Juergen Spitzmueller
4e5e1de086 Align \textgreek and \textcyr with font encoding, part II
Also embrace encodable chars to those macros if we don't have a font
encoding that can handle the glyphs.

Fixes the remaining part of #9637
2018-04-20 20:00:01 +02:00
Juergen Spitzmueller
d77c0707e0 Handle combining characters in writeScriptChars
They were output in the wrong order and thus produced wrong result.
2018-04-20 18:17:18 +02:00
Juergen Spitzmueller
a6c6bffbed Align \textgreek and \textcyr with font encoding
Fixes part of #9637
2018-04-20 18:01:16 +02:00
Jean-Marc Lasgouttes
7bcb78a778 Better mechanism for setting cell cell height
When computing a cell metrics, it is now possible to specify whether it
is tight (at least as tall as 'x') or not (as tall as the max height of
the font).

Use this to make sure that grid insets have large enough cells. It
will probably appear that other cells needn't be tight. Currently, the
only cell which is known to be tight is the nucleus of the root inset.
Others should be examined one by one. It might be that the default of
MathData::metrics tight parameter should be `false'.

Fixes bug #11050.
2018-04-20 09:59:45 +02:00
Jean-Marc Lasgouttes
4300feb859 Revert "Makes caret height adapt to context in mathed."
This will be replaced by a different solution.

This reverts commit c5ca503d92.
2018-04-20 09:59:45 +02:00
Scott Kostyshak
4e9e9881b2 Greyedouts can be inserted in commands/description
This change also applies to Comment insets. For example, Greyedout
and comment insets can now be inserted in section titles.

The usage of these insets in commands relies on the newly
implemented cprotect feature. The usage of these insets in
description items already worked fine (without cprotect).

This commit also enables modification of these insets (e.g.,
converting a LyX note to a Greyedout note) in commands.

This commit is related to #6969.
2018-04-19 12:35:06 -04:00
Scott Kostyshak
80fe0dbe7e Use \cprotect only for "simple frame" boxes
Compilation succeeds with verbatim environments for the other types
of boxes without \cprotect.

For more details, see the following ML thread:

https://www.mail-archive.com/search?l=mid&q=20180418191915.pfqbyeq44g7newro%40steph
2018-04-19 10:43:31 -04:00
Richard Heck
c4c7053d1d Fix bug #11118.
Adds LFUN_MASTER_BUFFER_EXPORT.
2018-04-19 00:09:41 -04:00
Richard Heck
02e6a5ea19 Formatting. 2018-04-18 22:42:44 -04:00
Richard Heck
87ce258627 Formatting. 2018-04-18 22:33:55 -04:00
Jean-Marc Lasgouttes
01fea56eb6 Update cursor position after committing IM string 2018-04-18 17:41:23 +02:00
Juergen Spitzmueller
97e1806c4a Add a floating landscape inset 2018-04-18 16:20:19 +02:00
Juergen Spitzmueller
2551614ff1 Add Landscape module
Support for the (pdf)lscape package.

Fixes: #10801
2018-04-18 14:36:49 +02:00
Juergen Spitzmueller
feab528fd1 Add support for rotated longtabulars (via [pdf]lscape)
Fixes: #9194

See #9194 for why we use an earlier file format change here.
2018-04-18 13:22:29 +02:00
Richard Heck
a714f6cb76 Move LFUN_UNICODE_INSERT to BufferView, per JMarc's suggestion. 2018-04-16 22:56:01 -04:00
Richard Heck
f7d502d024 Use FuncRequest::getArg instead of splitting the argument
ourselves.
2018-04-16 22:32:04 -04:00
Richard Heck
d8a1132e34 Alphabetize 2018-04-16 21:25:19 -04:00
Richard Heck
ff2df8cf37 Whitespace. 2018-04-16 14:02:20 -04:00
Richard Heck
83fded8fea Fix some problems with background cancellation.
The problem was that, if we killed export when some graphic was
being converted, or some external template was being handled, it
would only cancel that process, and then it would just continue.
To deal with that, we need to do a few things:
1. Modify the return values for some of the Converters routines,
   and similarly the routines for external templates,  so we can
   tell when something has been canceled.
2. Throw an exception from InsetGraphics or InsetExternal when this
   has happened during export, but ONLY when the Buffer is a clone.
   We shouldn't be able to 'cancel' export when we're, say, generating
   code for the preview pane, but this keeps us on the safe side..
The exception then has to be caught, obviously, back in the export
routines in Buffer.

Probably Coverity will be unhappy about something here, but I'll
deal with that problem as it arises.
2018-04-16 14:02:20 -04:00
Juergen Spitzmueller
6f2eda8a0c Simplify 2018-04-15 12:37:41 +02:00
Juergen Spitzmueller
78aed77c3d needsCProtection: consider LaTeXType "none" 2018-04-15 12:31:27 +02:00
Juergen Spitzmueller
c082c3a0f6 needsCProtection(): check all insets. 2018-04-15 12:29:49 +02:00
Richard Heck
52d7322d92 Typo. 2018-04-14 20:08:46 -04:00
Scott Kostyshak
7900e9957c Refactor code showing error dialogs
This commit follows 8d2b121e and is not expected to change
functionality (e.g., I confirmed that the cases of #7330 and #11106
are still fixed). The advantages of this refactoring are the
following:

- Remove some preprocessor directives:
  processingThreadFinished() is only called in the case that
  EXPORT_in_THREAD is 1, so by moving some code up in the call list,
  the directives are not needed.

- If errors() is called when there is no error, there will not be unexpected
  behavior (e.g., as was the case before 8d2b121e).
  Note that errors() is still only called by the code touched by this commit
  if there is an error, but that is for efficiency and readability.

- The "from_master" argument now has a constant meaning. Before, it
  could be the case that "from_master" was set to false but that the
  master's error dialog was shown.
2018-04-14 13:45:31 -04:00
Scott Kostyshak
d10317978a Typo 2018-04-14 13:25:35 -04:00