Commit Graph

29289 Commits

Author SHA1 Message Date
Juergen Spitzmueller
dcc91b4a85 Implement Paragraph::getLabel()
This function returns the first label (as string) if there is any

(cherry picked from commit a303600b54)
2024-09-22 11:57:07 +02:00
Juergen Spitzmueller
18d9d7ee9d re-implement LFUN_REFERENCE_INSERT
this is in preparation of another feature

(cherry picked from commit 181c8ce7c1)
2024-09-22 11:57:07 +02:00
Juergen Spitzmueller
897fa08919 Only \protect labels in \thanks notes
See https://marc.info/?l=lyx-users&m=136394387505489
2024-09-21 13:36:55 -04:00
Juergen Spitzmueller
59d61892e4 GuiBibTeX: introduce way to toggle between absolute and relative local paths (#13097) 2024-09-21 13:27:37 -04:00
Juergen Spitzmueller
5cb9b55162 Fix outliner tree depth (#13098) 2024-09-19 11:00:01 -04:00
Jean-Marc Lasgouttes
2c5f284f89 Initialize client's name in main()
Initializing clientName at declaration time is not a good idea.

Spotted by Coverity scan.

(cherry picked from commit 3d323412ad)
2024-09-10 12:02:32 +02:00
Jean-Marc Lasgouttes
615f035854 Do not forget to reset stream after std::hex
Spotted by Coverity scan.

(cherry picked from commit f4c02d670b)
2024-09-10 11:59:22 +02:00
Juergen Spitzmueller
a7e8397a84 adapt tex2lyx to 0beb790a6a
(cherry picked from commit f725abea05)
2024-09-09 18:11:08 -04:00
Juergen Spitzmueller
fb5782b62a Handle space issue with refstyle more downstream
It is not necessarily, and infers with some usages, to generally escape
spaces in labels and references

(cherry picked from commit 0beb790a6a)
2024-09-09 18:05:10 -04:00
Juergen Spitzmueller
16281b4cf1 Fix indentation
(cherry picked from commit bfd855747a)
2024-09-09 18:04:59 -04:00
Jean-Marc Lasgouttes
4d46f766ea Avoid missing updates after some operations on selection
The logic at the end of Text::dispatch failed when needsUpdate and
singleParUpdate were true at the same time.
2024-08-31 16:12:59 +02:00
Jean-Marc Lasgouttes
5ca48a7a39 Fix update of cursor in tab-delete when there is a selection
The position of the cursor should not be decreased if it is already at
the start of the paragraph. This can lead to a crash when trying to
display the caret.

(cherry picked from commit 16be88ca18)
2024-08-31 16:12:59 +02:00
Jean-Marc Lasgouttes
d7e2ca377f Get rid of QPA_XCB define
Since the platform is selected at run time (e.g. xcb vs. Wayland), it
is not a good idea to decide at compile time what code is run. Another
example is on macOS, where having xcb libraries available will lead to
lauching the Xquartz whenever LyX is running.

With this patch, things are separated:
- the code is run when run-time platform is "xcb".
- the support code is compiled in when xcb header and libraries are
  available.

The cmake code is courtesy of Kornel Benko.

Fixes ticket #13086.

(cherry picked from commit 18c310a8cf)
(cherry picked from commit f1fddd86ef)
(cherry picked from commit 3bc4554e57)
(cherry picked from commit 8c14748e78)
2024-08-31 15:07:29 +02:00
Jean-Marc Lasgouttes
390f458122 Streamline -geometry command-line option support
Instead of baking our own support for -geometry command line option on
Windows (Qt only does that for Xcb), use the fact that Qt 5 provides
the equivalent -qwindowgeometry flag.

All we need to do is to replace the -geometry option with -qwindowgeometry.

This is part of the effort in ticket #13086 to get rid of the
compile-time QPA_XCB define.

(cherry picked from commit ce9de28f06)
2024-08-31 15:05:34 +02:00
Jean-Marc Lasgouttes
76ef192214 Fixup e2cf6731: fix thinko
The current buffer is part of allRelatives(), contrary to what I
thought. Therefore updateId() increased the buffer id by two.

(cherry picked from commit 2eb4e3d3ca)
2024-08-30 15:10:22 +02:00
Jean-Marc Lasgouttes
e2cf6731c0 Do not run updateMacros if the buffer has not changed
Each buffer now has an id which is increased when it is marked dirty
(or when one of its relatives is marked dirty).

This can be a big win since updateMacros is very expensive.

(cherry picked from commit 999fb37ebb)
(cherry picked from commit fe1a3b57df)
2024-08-30 11:11:10 +02:00
Jean-Marc Lasgouttes
f06de64047 Force a metrics update of buffer after reload
It makes reload more robust and is in any case good enough to avoid
crash in #139091.

Fixes bug #13091.

(cherry picked from commit 52ec69a1af)
2024-08-27 14:07:51 +02:00
Juergen Spitzmueller
53ae96fb0b Assure OK/Apply button is initially disabled in InsetParamsDialogs (#8927)
(cherry picked from commit a2629b8eab)
2024-08-25 12:42:33 -04:00
Koji Yokota
0562b13743 Fix wrong preedit cursor position in Qt5 2024-08-20 21:11:15 +09:00
Pavel Sanda
3a68177562 Fix regression introduced via #12819.
Cherry-pick e322ef153.
2024-08-20 09:32:03 +02:00
Juergen Spitzmueller
a46fb46633 Improve output pane, as discussed in #12372
* The image scale param is shared by XHTML and DocBook
* It does not only apply to math
* Get rid of redundant group headers (#12902)

(cherry picked from commit 1429552063)
2024-08-18 18:32:03 +02:00
Juergen Spitzmueller
b21f104b37 Add "needcopiesfrom" converter flag
This is needed to provide ePub and other DocBook-based exports with
the right (renamed) images (fixes #12372)

(cherry picked from commit 03c5842006)
2024-08-18 18:29:22 +02:00
Richard Kimberly Heck
3f7569edcd Add temporary directory to About LyX dialog
(cherry picked from commit e7af6afb01)
2024-08-17 19:37:37 -04:00
Enrico Forestieri
b079bfe4c8 Improve detection of our math fonts
It turns out that Qt font selection via style name is broken on
Windows (QTBUG-101436). As we use our own style name for discriminating
our math fonts and applying proper kerning, we need a fallback method.
With this commit we check for the family name when the style name does
not match. In computing the kerning we also consider the right bearing
reported by the font instead of the width of the enclosing bounding box,
as this produces better results (see bug 13087).

Fixes #13087.

(cherry picked from commit d632753dea)
2024-08-15 11:36:49 -04:00
Juergen Spitzmueller
092911880a Disable valign widget in tabularx tables
See https://marc.info/?l=lyx-users&m=172363857509065&w=2

(cherry picked from commit c993485782)
2024-08-15 07:32:04 +02:00
Juergen Spitzmueller
7d309d08fd Unbreak GuiTabular::fucEnabled()
I wonder how long this has been broken (if it ever worked)

(cherry picked from commit 6b0c243cda)
2024-08-15 07:26:59 +02:00
Juergen Spitzmueller
b6cd31e99a Properly escape special characters (!, @, |) in nomenclature output 2024-08-12 18:22:57 +02:00
Richard Kimberly Heck
1ddd148b06 Fix bug with display of reference tooltips.
Previously, the tooltip was assigned during updateBuffer. But then
we could not determine the value for forward references.

(cherry picked from commit b494286a9c)
2024-08-06 11:35:20 -04:00
Richard Kimberly Heck
8f6c41a110 temp 2024-08-06 11:18:51 -04:00
Juergen Spitzmueller
f37bd183ab set toc_string_ before the label is being truncated
We do not want truncated items in the outliner.

(cherry picked from commit 8aeee03e3a)
2024-08-06 11:08:03 -04:00
Richard Kimberly Heck
91b085d5ad Use the old-style sorts of label strings in the TOC.
There are several reasons to do it this way, among which is odd
behavior of the TOC filter if we put anything else there. This also
allows for filtering of the references themsevles in a natural way.

The change, I think, was really an unintended consequence of other
changes connected to showing formatted references in the work area.

(cherry picked from commit 1de4645286)
2024-08-05 18:23:25 -04:00
Juergen Spitzmueller
451f3b2784 Consider masked modifiers (~S etc.) when writing to bind file
Fixes #12973

(cherry picked from commit eb1ac06a9a)
2024-07-29 18:14:45 +02:00
Juergen Spitzmueller
c16f99c524 Load geometry after graphics
Newer graphics driver overwrite some (output) page settings otherwise
See https://tex.stackexchange.com/a/384952/19291

Re-fixes #10970

(cherry picked from commit ca4fc01847)
2024-07-27 11:17:20 -04:00
Jean-Marc Lasgouttes
73bfef16f3 Make scrolling-by-selection smoother
This trivial patch makes scrolling-by-selection smoother by dividing
the step size and the time between steps by 8 when generating
synthetic events in work area.

The scrolling speed is unchanged, but the result is visually better.

(cherry picked from commit 1cc1f0ba27)
2024-07-25 18:20:38 +02:00
Pavel Sanda
df313e9920 Squash gcc warning. 2024-07-25 11:52:20 +02:00
Jean-Marc Lasgouttes
2baa292314 Do not export the content of InsetMathBoxed as text in MathML
\boxed{} is the only box in LaTeX that contains math. It is amusing
that the example file that we had for ticket #13609 should not have
been a problem since there is no reason to force <mtext> there.

(cherry picked from commit 1186d90edf)
2024-07-24 18:26:53 +02:00
Jean-Marc Lasgouttes
458ce0fdba Fixup b29b3eb1: close <mtext> when quitting text mode
This fixes malformed documents on UserGuide export.

Related to bug #13069.

(cherry picked from commit 1385f0fddd)
2024-07-24 18:17:20 +02:00
Jean-Marc Lasgouttes
8ea0987644 Fixup b29b3eb1: fix broken xml syntax
This commit addresses two issues:

1/ the embarassing one: the member SetMode::old_text_level_ was
   declared as bool instead of int. This means that is was definitely
   not a proper backup variable!

2/ a robustness issue: replace two consecutive test for isTest() by a
   boolean veriable that is used twice. This makes sure that <mrow>
   cannot be output without the corresponding </mrow>.

Part of bug #13069.

(cherry picked from commit a268fe096a)
2024-07-24 18:17:13 +02:00
Jean-Marc Lasgouttes
b29b3eb1fc Fix crash when generating MathML with InsetMathBox
Instead of generating code and parsing it to add <mtext>...</mtext> at
the right spots, this commit honors the text mode setting that was
already present in the codebase to generate it automatically.

This is the work of two helper methods in MathMLStream:

* beforeText() notices when the stream is in text mode and that a
  <mtext> has not yet been generated. In this case it inserts it, so
  that raw text can be emitted afterwards.

* beforeTag() checks whether a <mtext> needs to be closed at this
  point, and does it if needed.

To make this work, the code now tracks the nesting level in the
stream, and compares it the what the level was when text mode has been
enabled using the SetMode helper function.

In order to avoid later bugs, member os() that allows to access the
underlying stream of MathMLStream is removed. This required many <<
operators to become friends of MathMLStream.

In InsetMathBox, rename splitAndWrapInMText() to mathmlizeHelper(),
which is not just a method that sets text mode inside a <mrow>
element.

In InsetMathFont and InsetMathHull, the explicit generation of nesting
in <mtext>...</mtext> can be removed now.

Fixes bug #13069.

(cherry picked from commit 216a6fb348)
2024-07-22 22:08:58 +02:00
Jean-Marc Lasgouttes
17bc6d05b3 Cleanup MathMLStream
This is preparatory work for fixing ticket #13069.

Remove direct accesses to the underlying stream of MathMLStream in
InsetMathChar, InsetMathSpecialChar, and in all << operators other
than MathMLStream << docstring. This will allow to add a hook later in
this operator.

Move default values of MathMLStream private members to their definition.

Get rid of line_ member, which is not used.

(cherry picked from commit fbd4b0a13f)
2024-07-22 22:06:02 +02:00
Jean-Marc Lasgouttes
2999061e38 Remove alpha component of system colors
When using system colors it may happen (on windows 11 in particular)
that the background color is actually translucid. This is not
something we are prepared to handle and it creates ghosts on screen.

The fix is easy: the alpha channel of the colors is set to 255.

Fixes bug #13084.

(cherry picked from commit 095bb18331)
2024-07-22 15:55:46 -04:00
Juergen Spitzmueller
4a796889e9 tex2lyx: Fix two bugs in nomencl import
* The comment character % is made active to serve as an escape char
* quotation marks need to be escaped

(cherry picked from commit 5bc4c11fd6)
2024-07-22 19:03:10 +02:00
Jean-Marc Lasgouttes
0867aaf5c5 Fixup f4364c75: remove two more Update::SinglePar instances
They do not do what the author(s) of these lines thought it would do,
and can create crashes.

(cherry picked from commit 485f5afc21)
2024-07-20 23:50:48 +02:00
Pavel Sanda
33b1d7e39f Status bar did not show font info anymore.
This line from commit 1d1f95d2e seem to inadvertedly
slipped into commit 76dbb9dc.

https://www.mail-archive.com/lyx-devel@lists.lyx.org/msg222405.html
2024-07-19 23:51:20 +02:00
Jean-Marc Lasgouttes
e57ccede18 Fix faulty undo recording
The recordUndo() call is very wrong, since we may be inserting over a
selection covering several paragraphs (undo itself works at paragraph
granularity).

recordUndoSelection() is the right operation in this case. It is
equivalent to recordUndo() when there is no selection.

(cherry picked from commit 82f387dabc)
2024-07-18 23:40:39 +02:00
Juergen Spitzmueller
f8949079ef Fix crash when attempting to search in selection that contains only math
(cherry picked from commit cca68d0614)
2024-07-15 18:22:13 +02:00
Juergen Spitzmueller
d15f4fe5ec GuiTabular: add missing connections
(cherry picked from commit 2bf3124f25)
2024-07-14 19:09:21 +02:00
Jean-Marc Lasgouttes
aadf3d8a5d Make BufferView::singeParUpdate more robust
In some cases, it might happen that this method is called with no
metrics or position known for the current paragraph.

Take care of these cases to avoid assertions.

Remove setting of inset positions in the method, but make sure that
updateMetrics(false) is always called to get everything right.

In the new code, updateMetrics(bool) is the method that sets
everything right with minimal effort.

(cherry picked from commit 89ab9eb569)
2024-07-10 17:18:48 +02:00
Jean-Marc Lasgouttes
f4364c7593 Remove useless SinglePar update when scrolling in text
Using SinglePar does not majke sense here since the paragraph is not
modified and it might even not have a position yet.

This fixes a crash in BufferView::singleParUpdate, which is not
prepared (yet) to such situations.

(cherry picked from commit 2bdd691130)
2024-07-10 17:18:48 +02:00
Jean-Marc Lasgouttes
2886843560 Make sure paragraph positions are updated when scrolling
Sometimes quick selection-scrolling could cause a crash because the
position of some paragraphs is not computed. To fix that, in
BufferView::showCursor, make sure that the metrics are always kept
clean using updateMetrics(false), which is lighweight.

As a consequence, the 'update' parameter of showCursor and
scrollDocView is not needed anymore. Its removal is mechanical and
accounts for most of this commit.

The only other significant change is that, when creating synthetic
mouse events and relying on scroll() for small moves, the full metrics
recomputation is replaced by the lighter version.

More work is still to come on this code, but this should be going in
the right direction.

(cherry picked from commit 6e0ea4269a)
2024-07-10 17:18:47 +02:00