Commit Graph

29587 Commits

Author SHA1 Message Date
Jean-Marc Lasgouttes
3c59a9a23c Remove legacy code to compute geometry
This code is not necessary anymore after the fix to #13069.

Remove the first QString argument to createView(). Set the autoShow
parameter to false by default and rename createView(id) to
createAndShowView(id) to avoid member function overloading issues.

Remove optional <GEOMETRY> argument of window-new lfun.
Document the removal of the argument in release notes.
2024-08-30 14:45:36 +02:00
Jean-Marc Lasgouttes
18c310a8cf 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.

Fixes ticket #13086.
2024-08-30 11:27:17 +02:00
Jean-Marc Lasgouttes
ce9de28f06 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.
2024-08-30 11:15:02 +02:00
Kornel Benko
f1fddd86ef Cmake build: Add defines for HAVE_XCB_XCB_H and HAVE_LIBXCB 2024-08-29 14:08:39 +02:00
Jean-Marc Lasgouttes
52ec69a1af 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.
2024-08-27 00:09:04 +02:00
Juergen Spitzmueller
8205458857 Reset lang_options before reading headers 2024-08-26 07:35:34 +02:00
Juergen Spitzmueller
b1b8ded15d output babel options via \babelprovide in all cases needed 2024-08-26 07:20:58 +02:00
Juergen Spitzmueller
686b55e70d Amend fc605cf138
Use proper option if main and a secondary language have BabelProvide 2
2024-08-25 18:01:26 +02:00
Juergen Spitzmueller
17ca2ac89c Properly set the babel bidi option (#12862) 2024-08-25 15:21:56 +02:00
Juergen Spitzmueller
fc605cf138 Add proper support for BabelProvide 2
We need to instruct babel not to load an existing ldf in this case
2024-08-25 14:56:05 +02:00
Juergen Spitzmueller
1ba7f104bf Fix typo in UI file 2024-08-25 13:39:18 +02:00
Juergen Spitzmueller
9e5bf47a68 Update tex2lyx tests 2024-08-25 13:26:06 +02:00
Juergen Spitzmueller
66aa0d8699 Avoid empty option in babelCall 2024-08-25 13:23:57 +02:00
Juergen Spitzmueller
b625138be6 Add support for the following languages
Polyglossia:
Chinese (Simplified), Chinese (Traditional), Japanese, Kurdish (Sorani),
Latin (Classic), Latin (Ecclesiastic), Latin (Medieval), N'ko, Odia,
Punjabi, and Uyghur

Babel:
Amharic, Armenian, Asturian, Bengali, Church Slavonic, Coptic, Divehi,
Kannada, Kazakh, Khmer, Kurdish (Sorani), Lao, Latin (Classic),
Latin (Ecclesiastic), Latin (Medieval), Malayalam, Marathi, N'ko,
Occitan, Odia, Punjabi, Russian (Petrine orthography), Sanskrit, Syriac,
Tamil, Telugu, Tibetan, Urdu, and Uyghur
2024-08-25 13:22:07 +02:00
Juergen Spitzmueller
a2629b8eab Assure OK/Apply button is initially disabled in InsetParamsDialogs (#8927) 2024-08-25 10:18:38 +02:00
Juergen Spitzmueller
047dee5a3b Basic support for \babelprovide
This is the new(er) babel mechanism to load languages via babel *.ini
files.

Some languages (or varieties) are only supported this way, some work
better with unicode engines this way (for the latter case, we have
BabelProvide 2)
2024-08-25 09:46:29 +02:00
Juergen Spitzmueller
7e09f574ba Add BabelOpts to languages
This way, some settings that were hardcoded in BabelPreamble are
customizable in document settings
2024-08-24 14:30:37 +02:00
Juergen Spitzmueller
8ff3e467a1 Avoid duplicate option passing with babel 2024-08-24 05:54:54 +02:00
Juergen Spitzmueller
401b783575 NomenclUI: fix spacer
This seems t be a bug in my Qt designer
2024-08-24 05:45:17 +02:00
Juergen Spitzmueller
285f467f24 Provide babel language options only for languages that have options 2024-08-24 04:51:45 +02:00
Pavel Sanda
ad0d5f9d40 Not needed anymore. 2024-08-23 21:35:53 +02:00
Juergen Spitzmueller
8a8d2d93d1 No need to decorate roots in one-level tree widgets 2024-08-23 18:00:58 +02:00
Juergen Spitzmueller
3c852439a6 Fix language options glitches 2024-08-23 16:46:30 +02:00
Juergen Spitzmueller
21252f924b update tex2lyx tests 2024-08-23 16:13:53 +02:00
Juergen Spitzmueller
2889e98d01 Amend 7e49ae7b13 2024-08-23 16:06:50 +02:00
Juergen Spitzmueller
7e49ae7b13 Add support for language options (#8034)
File format change.

Note that this cannot be properly reverted to LyX 2.4, so any options
will simply vanish on reversion or roundtrip
2024-08-23 15:52:34 +02:00
Scott Kostyshak
cdbdd4c7c5 Update tex2lyx tests 2024-08-22 12:04:11 -04:00
Scott Kostyshak
72f4acf66c Fix Python SyntaxWarning
Use raw strings to avoid the following syntax warnings that show up
in LastTest.log after running tex2lyx ctests:

  src/tex2lyx/test/runtests.py:135: SyntaxWarning: invalid escape sequence '\o'
    if linex[:-1] == '\origin ' + inputdir + '/':
  src/tex2lyx/test/runtests.py:136: SyntaxWarning: invalid escape sequence '\o'
    lines1[i1] = '\origin ' + outputdir + '/' + "\n"
2024-08-22 10:54:02 -04:00
Juergen Spitzmueller
ceaaacd8e3 typos 2024-08-22 09:42:40 +02:00
Juergen Spitzmueller
739e9a2382 Oops ... 2024-08-22 09:30:48 +02:00
Juergen Spitzmueller
b73000a495 The InsetPrintNomenclature settings make no sense with nomentbl 2024-08-22 08:17:33 +02:00
Juergen Spitzmueller
33869b62bf Add GUI support for nomencl options 2024-08-22 08:11:18 +02:00
Juergen Spitzmueller
0ca600b93b \use_nomentbl -> \nomencl_opts
This allows for support of more options

As the param is only a few hours old, no lyx2lyx handling is needed
2024-08-22 05:35:47 +02:00
Juergen Spitzmueller
47176ce34c Amend 13ee0bc8cd
Improve tex2lyx handling
2024-08-21 17:54:06 +02:00
Juergen Spitzmueller
954be0907b update tex2lyx tests 2024-08-21 17:39:36 +02:00
Juergen Spitzmueller
13ee0bc8cd Add support for the nomentbl nomenclature option
file format change
2024-08-21 17:39:36 +02:00
Koji Yokota
f88ee87d1c Fix wrong preedit cursor position in Qt5 2024-08-20 22:44:39 +09:00
Pavel Sanda
e322ef153d Fix regression introduced via #12819.
We will mark buffer as modified only in case of removal,
not when just externally modified.

https://www.mail-archive.com/lyx-devel@lists.lyx.org/msg222715.html
2024-08-19 22:03:16 +02:00
Pavel Sanda
d5da93628a Header not needed anymore. 2024-08-19 21:47:16 +02:00
Juergen Spitzmueller
1429552063 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)
2024-08-18 18:18:07 +02:00
Juergen Spitzmueller
03c5842006 Add "needcopiesfrom" converter flag
This is needed to provide ePub and other DocBook-based exports with
the right (renamed) images (fixes #12372)
2024-08-18 17:53:51 +02:00
Juergen Spitzmueller
fe43d03448 Assure widest nomencl label is encodable 2024-08-18 09:59:37 +02:00
José Matos
34a616bd91 Add another option to get python by using the unversioned name 2024-08-16 17:33:14 +01:00
Juergen Spitzmueller
712600dd6c Consider known latex text macros (basically the logos) in convertaTeXCommands() 2024-08-16 11:23:57 +02:00
Thibaut Cuvelier
8ae1b9554c Fix typo in comment. 2024-08-15 15:40:31 +02:00
Juergen Spitzmueller
c993485782 Disable valign widget in tabularx tables
See https://marc.info/?l=lyx-users&m=172363857509065&w=2
2024-08-14 16:28:15 +02:00
Juergen Spitzmueller
6b0c243cda Unbreak GuiTabular::fucEnabled()
I wonder how long this has been broken (if it ever worked)
2024-08-14 16:27:20 +02:00
Enrico Forestieri
d632753dea 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.
2024-08-13 22:51:40 +02:00
Juergen Spitzmueller
0659af15fb Add InsertCotext tag to InsetLayout
Avoids hardcoding of insets, and this behavior is possibly useful to
other insets than index and nomencl

We take this on yesterday's layout format change
2024-08-13 07:29:14 +02:00
Juergen Spitzmueller
6fa0532ed4 Escape special chars in indexes
We now have the functionality via sub-insets, and unexperienced users
are surprised when they don't get a literal !.

The unescaped chars can still be used via ERT.
2024-08-12 17:10:57 +02:00
Juergen Spitzmueller
0d87a3aab2 Omit escape-chars in pass_thru context 2024-08-12 14:28:59 +02:00
Juergen Spitzmueller
99fcf9df0e remove unused param 2024-08-12 13:15:02 +02:00
Juergen Spitzmueller
221a5c45dc update tex2lyx tests 2024-08-12 12:35:07 +02:00
Juergen Spitzmueller
a5841b3312 Transform InsetNomenclature to a collapsible
Fixes: #10460, #12595, #6353
2024-08-12 12:33:16 +02:00
Juergen Spitzmueller
8847651623 Add EscapeChars layout tag
This allows to define chars to be escape and an escape character

Needed in index and nomenclature
2024-08-12 12:25:31 +02:00
Pavel Sanda
28cb88d608 Header not needed. 2024-08-09 09:47:36 +02:00
Pavel Sanda
fb87ed74bd Header not needed. 2024-08-09 09:45:12 +02:00
Juergen Spitzmueller
90a876a049 enhance debug message (see #13087) 2024-08-07 14:46:30 +02:00
Richard Kimberly Heck
b494286a9c 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.
2024-08-06 11:31:35 -04:00
Juergen Spitzmueller
8aeee03e3a set toc_string_ before the label is being truncated
We do not want truncated items in the outliner.
2024-08-06 10:57:11 +02:00
Richard Kimberly Heck
1de4645286 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.
2024-08-05 18:13:07 -04:00
Juergen Spitzmueller
9fc1194494 Amend 9464f0526e
Simplify function
2024-07-30 15:30:41 +02:00
Juergen Spitzmueller
9464f0526e Fixup LFUN_REFERENCE_TO_PARAGRAPH for captions in other buffers
The movement to the caption is now done in the LFUN function itself,
as we need the DocIterator in the caption

This greatly simplifies the code in the TocWidget and shifts all the
complexity to the LFUN itself
2024-07-30 12:36:20 +02:00
Juergen Spitzmueller
4ed822925f fixup REFERENCE_TO_PARAGRAPH:
* par id actually can be 0
* properly move on in the buffer list if paragraph is not found
  in the current buffer
* use dit to get label (as this might be in a different buffer)
2024-07-30 09:49:34 +02:00
Juergen Spitzmueller
2c4536c709 typo 2024-07-29 09:11:42 +02:00
Juergen Spitzmueller
7d46ddaa95 rename Paragraph::getLabel()
getLabel() usually refers to a paragraph label (e.g. \item) in this
context, not \label as in the case here.
2024-07-29 09:08:13 +02:00
Juergen Spitzmueller
2fdeee4bf7 fixup definition of LFUN_REFERENCE_TO_PARAGRAPH 2024-07-29 08:46:43 +02:00
Juergen Spitzmueller
143e534d1e Implement reference-to-paragraph in outliner (#1624)
This allows to insert a cross-reference to headings, figures or tables
by right-clicking on the outliner item.

If the item in question does not have a label yet, it is inserted.
2024-07-28 15:59:06 +02:00
Juergen Spitzmueller
3fe99bf6f5 Implement LFUN_REFERENCE_TO_PARAGRAPH
This function checks whether a paragraph (specified by ID) has a label.
If so, it simply inserts a reference to this at cursor position, if
not it inserts a label to that paragraph (pos 0) and then inserts
a reference at cursor position.

Needed to implement #1624 (insert cross references to items that do not
have yet a label)
2024-07-28 15:54:55 +02:00
Juergen Spitzmueller
e3b36208ed Allow DocIterator::paragraphGotoArgument() to return id() without pos()
We need this for the forthcoming reference-to-paragraph function
2024-07-28 15:53:05 +02:00
Juergen Spitzmueller
a303600b54 Implement Paragraph::getLabel()
This function returns the first label (as string) if there is any
2024-07-28 15:52:19 +02:00
Juergen Spitzmueller
181c8ce7c1 re-implement LFUN_REFERENCE_INSERT
this is in preparation of another feature
2024-07-28 10:37:30 +02:00
Juergen Spitzmueller
5c3b788999 amend d4f58c96b5
avoid having to validate the whole buffer just for this information
2024-07-27 13:34:38 +02:00
Juergen Spitzmueller
ca4fc01847 Load geometry after graphics
Newer graphics driver overwrite some (output) page settings otherwise
See https://tex.stackexchange.com/a/384952/19291

Re-fixes #10970
2024-07-27 12:46:12 +02:00
Juergen Spitzmueller
b6d3066ad2 GuiLog: show also log files of additional indices 2024-07-26 18:48:31 +02:00
Juergen Spitzmueller
d4f58c96b5 Add support for multiple indexes in Memoir
As with almost everything, this class bakes its own cake also with
multiple indexes. So we need to account for this to produce
compilable output.

Not very nice, but there you go!
2024-07-26 12:48:12 +02:00
Jean-Marc Lasgouttes
fe1a3b57df Fixup 999fb37e: always run updateMacros when in batch mode
The optimization is useful in GUI mode only, and it turns out that it
creates weird crashes otherwise.

Thanks to Juergen Spitzmuller for the idea.
2024-07-25 18:37:50 +02:00
Juergen Spitzmueller
003bbd3483 Avoid loop in math parsing function 2024-07-25 09:18:01 +02:00
Jean-Marc Lasgouttes
0d50a8417f Do not update statisitics if buffer has not changed
Rely on the newly-introduced Buffer::id() to skip statistics
computation if the id is the same as last time. This will reduce the
annoyance of updates triggering at random times.

Take this occasion to clean code up:

- add 'skip' parameter (true by default) to Statistics::update to indicate
  that the insets that do not produce output should be skipped.

- use a trailing underscrore for private members
2024-07-24 22:38:39 +02:00
Juergen Spitzmueller
823d290036 amend 9291fc465b
XHTML wants LaTeX math, nothing converted to unicode
2024-07-24 21:44:02 +02:00
Jean-Marc Lasgouttes
a042d6a9d2 fix warning 2024-07-24 21:10:22 +02:00
Pavel Sanda
307d59cdb9 Squash gcc warning. 2024-07-24 19:55:05 +02:00
Jean-Marc Lasgouttes
393f65c737 Fixup 6e81f317: cut and paste error 2024-07-24 18:51:35 +02:00
Jean-Marc Lasgouttes
999fb37ebb 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.
2024-07-24 18:29:43 +02:00
Jean-Marc Lasgouttes
6e81f31722 Rewrite statistics code
The statistics code is known to be very slow, because it relies on
DocIterator to go through the buffer.

This commit introduces a new Statistics class that encapsulates the
main code, along a virtual method Inset::updateStatistics() that
allows to fine-tune how counting is done inset by inset.

This is a faithful bug-for-bug reimplementation.

The new code appears to be 3x faster than the old one.

See bug #12929 for a discussion about statistics update woes.
2024-07-24 18:07:04 +02:00
Jean-Marc Lasgouttes
1186d90edf 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.
2024-07-23 23:44:58 +02:00
Jean-Marc Lasgouttes
1385f0fddd Fixup 216a6fb348: close <mtext> when quitting text mode
This fixes malformed documents on UserGuide export.

Related to bug #13069.
2024-07-23 22:02:50 +02:00
Jean-Marc Lasgouttes
a268fe096a Fixup 216a6fb3: 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.
2024-07-23 19:52:12 +02:00
Richard Kimberly Heck
fb919e653d Typo 2024-07-22 16:21:37 -04:00
Jean-Marc Lasgouttes
1cc1f0ba27 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.
2024-07-22 22:02:04 +02:00
Jean-Marc Lasgouttes
216a6fb348 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.
2024-07-22 20:53:29 +02:00
Jean-Marc Lasgouttes
fbd4b0a13f 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.
2024-07-22 20:53:29 +02:00
Jean-Marc Lasgouttes
d7ba7bceb3 Revert "Fix bug #13069."
This reverts commit fafe3ea5d7.
2024-07-22 20:53:29 +02:00
Jean-Marc Lasgouttes
cd4d54f76a Revert "Cmake build: Add Qt?Xml modules to build."
This reverts commit 0116048697.
2024-07-22 20:53:29 +02:00
Jean-Marc Lasgouttes
095bb18331 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.
2024-07-22 20:36:20 +02:00
Juergen Spitzmueller
5bc4c11fd6 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
2024-07-22 09:51:54 +02:00
Jean-Marc Lasgouttes
23379bb1d5 Store spellchecker_esc_chars as a docstring
This is a minor optimization to avoid calling from_utf8() repeatedly
on a hot path.
2024-07-21 21:35:14 +02:00
Juergen Spitzmueller
f1ba6559f2 update tex2lyx tests 2024-07-21 18:06:58 +02:00
Juergen Spitzmueller
ae1e1cb069 Add possibility to manually specify longest label in nomenclature
File format change
2024-07-21 17:59:34 +02:00
Juergen Spitzmueller
eb1ac06a9a Consider masked modifiers (~S etc.) when writing to bind file
Fixes #12973
2024-07-21 10:18:58 +02:00
Jean-Marc Lasgouttes
3040eb0fa2 Use background to make math comments more visible 2024-07-20 23:37:24 +02:00
Juergen Spitzmueller
c4001c7022 update comment 2024-07-20 17:47:47 +02:00
Juergen Spitzmueller
d62f1723a5 Improve calculation of longest nomencl string
This tries o convert LaTeX macros before estimating the length
2024-07-20 17:39:58 +02:00
Juergen Spitzmueller
9291fc465b mode convertLaTeXCommands from BiblioInfo to Encodings
So it can also be used in other contexts.

This includes also an improvement of math parsing
2024-07-20 17:39:58 +02:00
Jean-Marc Lasgouttes
485f5afc21 Fixup 2bdd691130: 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.
2024-07-20 17:13:40 +02:00
Jean-Marc Lasgouttes
82f387dabc 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.
2024-07-16 15:43:11 +02:00
Juergen Spitzmueller
cca68d0614 Fix crash when attempting to search in selection that contains only math 2024-07-15 17:41:10 +02:00
Jean-Marc Lasgouttes
281744d24f Sort entries in src/Makefile.am
Remove also STANDALONEFILES variable, which is a remain of monolithic
builds.
2024-07-15 12:10:25 +02:00
Juergen Spitzmueller
2bf3124f25 GuiTabular: add missing connections 2024-07-14 14:20:05 +02:00
Juergen Spitzmueller
723a38be35 Improve tex2lyx for style-specific biblatex citation commands 2024-07-14 14:02:10 +02:00
Juergen Spitzmueller
55d60ee24f Rename function 2024-07-14 09:42:36 +02:00
Juergen Spitzmueller
25dd2e29b7 Fix non-biblatex style checks 2024-07-14 09:39:54 +02:00
Juergen Spitzmueller
08c0377f0c consider style-specifics for citation alias 2024-07-13 17:21:27 +02:00
Juergen Spitzmueller
6603c5362f Provide reversed style specifier for citation commands
This lets you exclude given variants for specific citation styles only
2024-07-13 17:20:29 +02:00
Juergen Spitzmueller
660ec568ef Check for uppercase marker after style prefix has been stripped 2024-07-13 17:16:34 +02:00
Jean-Marc Lasgouttes
ed2e5554d8 missing quote in message 2024-07-12 19:04:18 +02:00
Juergen Spitzmueller
a1e11fff44 update tex2lyx tests 2024-07-11 10:33:39 +02:00
Juergen Spitzmueller
2dac89aca0 Add support for biblatex-apa's \nptextcite 2024-07-11 10:28:38 +02:00
Juergen Spitzmueller
f7cc716861 Allow to pass several styles for style-specific cite commands 2024-07-11 10:09:26 +02:00
Juergen Spitzmueller
5c2652fa12 BiblioInfo: Ability to distinguish '&' and 'and' author separation
Finicky styles such as APA use both in different context, and we need
to represent this to make style choice differentiatable
2024-07-11 09:13:43 +02:00
Juergen Spitzmueller
a1e57a8fe5 BiblioInfo: Add citestyle conditional 2024-07-11 07:41:47 +02:00
Juergen Spitzmueller
40d644a7f9 Implement possibility to define citestyle-specific commands with biblatex
Not yet used.
2024-07-10 16:58:34 +02:00
Jean-Marc Lasgouttes
8bc3799b35 Fixup 145af7c2: remove unused method
TextMetrics::firstVisible(), introduced in this commit, is actually unused.
2024-07-10 13:42:57 +02:00
Juergen Spitzmueller
22332e35d8 update tex2lyx tests 2024-07-09 15:27:27 +02:00
Juergen Spitzmueller
8941b05774 Add support for biblatex-chicago (#12240)
File format change
2024-07-09 15:18:06 +02:00
Juergen Spitzmueller
a4b99aee94 BiblioInfo: provide macro for ellipses 2024-07-09 06:39:15 +02:00
Juergen Spitzmueller
f37448206a Fix string 2024-07-07 15:22:40 +02:00
Juergen Spitzmueller
8322622efa Add "notes" CiteEngine Type
This is needed for (forthcoming) biblatex-chicago support (see #12240)
2024-07-07 15:14:05 +02:00
Juergen Spitzmueller
666304633a Improve 0f35e3141b
* also handle replace string case-insensitively in case-insensitive mode
* leaner code
2024-07-06 09:25:57 +02:00
Juergen Spitzmueller
7d2d26132b Cut excessively long author lists before parsing them for the GUI
as they will be truncated anyway.

Fixes performance issues with long author lists in bib files.
2024-07-05 17:19:24 +02:00
Jean-Marc Lasgouttes
6f6d9b631d Fix display of page references when language is not specified
Using translateIfPossible with null language does not make sense (and
gives an error on console).

Using translateIfPossible there actually does not make sense at all: it
is only for string from layout files that may already be translated.

We use the buffer language when no language has been specified. It
might have been better to use the GUI language.

A consequence of the commit is that "elsewhere" will be in the po
files and now really translatable ;)
2024-07-05 16:18:09 +02:00
Juergen Spitzmueller
8ba74fe958 Remove performance bottleneck in getAuthors()
The regex is expensive which is especially noticeable with very long
author lists.

This introduces a case-insensitive subst() variant which is much faster.
2024-07-05 14:05:26 +02:00
Jean-Marc Lasgouttes
89ab9eb569 Make BufferView::singeParUpdate more robust
In some cases, it might happen that this method is called in cases
where no metrics is know for the current paragraph or where its
position is not set.

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) os the method that sets
everything right with minimal effort.
2024-07-03 17:43:00 +02:00
Jean-Marc Lasgouttes
2bdd691130 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.
2024-07-03 17:31:38 +02:00
Jean-Marc Lasgouttes
a7204098cf comment 2024-07-03 16:23:30 +02:00
Jean-Marc Lasgouttes
29597f600e fix comment 2024-07-03 15:43:12 +02:00
Jean-Marc Lasgouttes
6e0ea4269a 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.
2024-07-03 00:34:11 +02:00
Pavel Sanda
65a5c3989f cosmetics - synchronize with the rest of strings 2024-07-02 23:47:42 +02:00
Juergen Spitzmueller
4ed8bfb974 Do not check for diverging input encoding if the files use XeTeX/LuaTeX
Fixes the problem reported at
https://marc.info/?l=lyx-users&m=171986173131406
2024-07-02 16:59:28 +02:00
Jean-Marc Lasgouttes
c84c59eaec Avoid crash when InsetBibitem::updateCommand shows a dialog
This is one of the places where a dialog is shown (indicating that
some bibtems have been renamed) while the metrics are not up to date.
Then a draw operation can be triggered too early and a crash can ensue.

Use ad-hoc solution for this case and use Buffer::setBusy(). The
Alert::warning helper cannot really do that since it doe snot know the
current buffer.
2024-07-02 14:54:20 +02:00
Juergen Spitzmueller
574db22025 GuiDocument::onBufferViewChanged(): exit early if dialog is not open
This should fix the bug reported at
https://marc.info/?l=lyx-users&m=171957953801548&w=2
2024-07-02 11:02:36 +02:00
Richard Kimberly Heck
e7af6afb01 Add temporary directory to About LyX dialog 2024-06-25 11:32:36 -04:00
Jean-Marc Lasgouttes
e653907b84 fix comment 2024-06-25 12:01:53 +02:00
Pavel Sanda
fe9573ee8b Let the middle button pasting respect newlines by default.
This makes it in sync with the new default for Edit > Paste operation.
https://www.mail-archive.com/lyx-devel@lists.lyx.org/msg222233.html
2024-06-24 22:35:01 +02:00
Juergen Spitzmueller
c394a1ccf9 Amend fd78a25a7c
This way, it is a bit more plausible what we're doing
2024-06-23 18:53:14 +02:00
Kornel Benko
0116048697 Cmake build: Add Qt?Xml modules to build.
Cmake part of the fix to #13069 XHTML output for InsetMathBox can loop forever
2024-06-23 12:37:32 -04:00
Richard Kimberly Heck
fafe3ea5d7 Fix bug #13069.
Use XML parser to handle <mtext> issues.

Some of the config/qt.m4 code by JMarc.
2024-06-23 12:37:25 -04:00
Juergen Spitzmueller
b5260a3a0f Remove unneeded cycle checks (#12954) 2024-06-23 14:53:07 +02:00
Juergen Spitzmueller
fd78a25a7c Only issue currentWorkareaChanged() if the work area really changed.
(this function can be called repeatedly while the work area doesn't
change any further)
2024-06-23 14:52:02 +02:00
Juergen Spitzmueller
026c4bd726 Fixup [152811a27d242/lyxgit]
tabBarClicked() should really only reset focus if a click in a different
TabBarGroup happened. And no need to issue workAreaChanged() again.

This has lead to extra and erroneous focus changes (see #12954)
2024-06-23 14:47:43 +02:00
Juergen Spitzmueller
8659924abd \cprotect amendment
\cprotect'ed insets do not need forced local font switch; in fact files
with this break in compilation. E.g. a caption with an URL containing
the char '#' and caption text set to a secondary language.
2024-06-22 13:38:47 +02:00
Jean-Marc Lasgouttes
45dce93af7 redoParagraph: avoid extra cache accesses
To this end, CoordCacheBase::add returns true when a change was made.
This uses the return value of std::unordered_map::insert.
2024-06-21 17:02:13 +02:00
Jean-Marc Lasgouttes
608929a857 Rename DocumentCLass:plainInsetLayout() to InsetLayout::undefined()
This makes the code easier to understand.
2024-06-20 18:29:41 +02:00
Jean-Marc Lasgouttes
c4531741a9 Fix cursor when undoing accept/reject all changes
Before this change, the whole document would remain selected.

This relies on the new UndoGroupHelper constructor introduced at e7b1ee47.
2024-06-20 18:02:33 +02:00
Jean-Marc Lasgouttes
e7b1ee47ea Add a constructor of UndoGroupHelper that uses a CursorData parameter
This aloows to se the the `before' cursor of the undo group.

Not used for now.
2024-06-20 17:52:19 +02:00
Jean-Marc Lasgouttes
f643057779 Remove useless cursor parameter to global undo actions
Add a Cursor-less version of Undo::recordUndoBufferParams (we don't
use an optional arument to avoir #includ'ing Cursor.h).

The version with CursorData parameter has been kept for the case of
local dictionary lfuns that have some kind of locality.

Remove Cursor argument to Undo::recordUndoFullBuffer().
2024-06-20 17:25:25 +02:00
Jean-Marc Lasgouttes
c7c16fe9fa Remove trailing underscore on members x and y of Point class.
These members are not private.
2024-06-20 16:37:05 +02:00
Jean-Marc Lasgouttes
b78d2a4eda Add missing override keyword 2024-06-19 15:05:45 +02:00
Jean-Marc Lasgouttes
c263463cad Move DrawStrategy enum to update_flags.h.
Introduce new drawStrategy() and drawStrategyDescription() methods to
frontend::Application.

Show the current draw strategy in About dialog.
2024-06-18 18:26:34 +02:00
Scott Kostyshak
1a87c5313d Adapt to deprecation of \DeclareCollectionInstance
Change LaTeX output of smallLetterFrac. For more information, see:

  https://tex.stackexchange.com/questions/720579/do-i-need-to-replace-declarecollectioninstance-after-recent-package-change/

This fixes 44 failing tests from 074-76-letterlike-numberforms-arrows.lyx
that started failing after a tlmgr update around 2024-06-04.
2024-06-16 11:50:34 -04:00
Juergen Spitzmueller
9d3bd6a3a2 more indentation fixes 2024-06-16 16:16:59 +02:00
Juergen Spitzmueller
c243126eb4 GuiDocument: do not ask switch-back question on document closing 2024-06-16 15:54:50 +02:00
Juergen Spitzmueller
3fa2623ca0 Fix indentation 2024-06-16 15:54:50 +02:00
Juergen Spitzmueller
3d78d8734d Fix indentation 2024-06-16 15:54:50 +02:00
Juergen Spitzmueller
0fc8ee5ace Prevent division by zero
Fixes crash reported at
https://marc.info/?l=lyx-users&m=171842978728676
2024-06-15 14:48:37 +02:00
Pavel Sanda
1e5c366d53 Add comment from dev list. 2024-06-14 22:40:22 +02:00
Daniel Ramoeller
92aeaf5d73 Fix depth bar optics 2024-06-14 16:28:04 +02:00
Juergen Spitzmueller
ea1f3099cf update tex2lyx tests 2024-06-13 07:49:32 +02:00
Udi Fogiel
3854086e59 Remove hebrew letter document class
The only difference from regular letter is the alignment of
"Send To Address" layout, but it no longer reflect the output
corrctly, probably because LyX revert the alignment of layouts
in RTL context now.
2024-06-11 21:14:27 +03:00
Jean-Marc Lasgouttes
b54d352075 InsetMathMacoTemplate: recompute metrics on editXY too
This inset can change dimensions when edited (like macros can).
Therefore Update::SinglePar should be set with editXY() like it is
already set for edit().
2024-06-11 17:04:58 +02:00
Jean-Marc Lasgouttes
f48cf46101 Add "full" drawing strategy
With this patch, 3 draw strategies (set in prefs with
\draw_strategy partial|backingstore|full) are available:

- "partial": only draw the parts of text that have changed since last
  paint event (default for X11 and windows)

- "backingstore": the same, but drawing happens on an offspring
  pixmap; this breaks subpixel rendering (default for Wayland and
  macOS)

- "full": the screen is fully redrawn at each paint event and should
  therefore always be correct; this is presumably slower but
  introducing it will allow to test it.

This would deserve a proper UI eventually.
2024-06-11 15:17:22 +02:00
Jean-Marc Lasgouttes
30338ec6b3 Remove debug code that is not very useful as it is. 2024-06-10 20:33:27 +02:00
Alexander Dunlap
8c501308c3 FindAdv: Omitting cursor advance at start of search if in mathed.
Fixes #13070 Advanced S&R does not find math symbols at start of document
2024-06-10 14:46:07 +02:00
Udi Fogiel
a5749b9c1f Fix change tracking colors with RTL languages (#12923) 2024-06-10 15:19:08 +03:00
Udi Fogiel
ee43584140 Fix greyedout with RTL languages (#8647) 2024-06-10 15:03:05 +03:00
José Matos
b86059ee6d Update build time Python requirement to 2.8 (cmake edition) 2024-06-10 10:33:33 +01:00
José Matos
1c458dc121 Python runtime detection requirement upgraded to 3.8
Remove -tt option that is a no-op in Python 3.

Remove search for Python 2
2024-06-10 10:04:26 +01:00
Richard Kimberly Heck
4372f1b58f Brackets.
I read somewhere that comments after an if-statement without brackets
is dangerous.
2024-06-09 21:02:24 -04:00
Enrico Forestieri
afb70c905b Fix textstyle-update handling in mathed
The code was expecting that all properties were specified
in the argument and not only some. Simply do not process
those properties not specified in the argument.
2024-06-09 13:06:35 +02:00
Juergen Spitzmueller
2a9648fc4c Return false on invalid input in Font::fromString()
Fixes crash with invalid font-update lfun
2024-06-09 08:09:01 +02:00
Juergen Spitzmueller
747a4a7946 rename function 2024-06-09 07:29:37 +02:00
Juergen Spitzmueller
f1742ee269 Implement InsetLayout::requiresPackage() 2024-06-08 13:02:26 +02:00
Jean-Marc Lasgouttes
a185642746 Text::dispatch: ignore single par update when there is a full update
Reorder the tests so that, when the flag Update::SinglePar has been
specified, it does not take precedence over Update::Force flag.

This fixes the crash with inset-split.
2024-06-07 16:52:04 +02:00
Jean-Marc Lasgouttes
c96d3a0340 Fixup 7acfbe0fcc: forgot to change one location 2024-06-06 17:27:24 +02:00
Jean-Marc Lasgouttes
7acfbe0fcc Do not draw appendix lines below en of document
This bug is pretty old, but it was not visible because the grey area
below the document would overwrite it.

It would be better to close the frame at the end of the document, but
this is for later.
2024-06-06 14:38:20 +02:00
Jean-Marc Lasgouttes
92ef555abd Fixup de5f63eeb: the code did not do what it was supposed to 2024-06-06 08:40:50 +02:00
Juergen Spitzmueller
1449fbf9ae Strip quotes from PackageOptions. Amends a77c84a0b4 2024-06-06 06:58:33 +02:00
Richard Kimberly Heck
b8cdfd1e1d Use ranges 2024-06-03 22:05:15 -04:00
Udi-Fogiel
51453c61d6 avoid adding redundant preamble to double column hebrew documents (#12919) 2024-06-03 21:06:10 +03:00
Juergen Spitzmueller
7a85b1b7ca Show full inset context-menu when clicking on text part of collapsible (#10370)
Re-fix this since #12907 has been resolved
2024-06-03 16:12:15 +02:00
Kornel Benko
a8a408223a Adv. F&R: strange dialog text
Fixes #12997
Added 'Scope' to better indicate the searched area.
2024-06-03 08:13:28 +02:00
Richard Kimberly Heck
0c70f340c0 Fix bug #13066
Patch from Lorenzo
2024-06-02 23:07:34 -04:00
Richard Kimberly Heck
3e796c680a Fix table crash reported on Windows. 2024-06-02 23:07:34 -04:00
Scott Kostyshak
2e227cceaf Whitespace 2024-06-02 22:52:18 -04:00
Juergen Spitzmueller
2a7ec054be Support half und full line parskip class options (#12946)
Currently only employed by the KOMA classes.

Layout format change.
2024-06-02 11:41:54 +02:00
Richard Kimberly Heck
40ae8644f9 Put new citation after selected item rather than at end of list.
Fixes bug #12940.

Patch from Daniel.
2024-06-01 20:26:06 -04:00
Daniel Ramoeller
a114f12868 Extend tab context menu features
Add

- Close Other Tabs
- Close Tabs to Left/Right
- Move Tab to Start/End
- Show Enclosing Folder

to the tabs context menus.

Fix for bug #11963
2024-06-01 19:25:14 +02:00
Richard Kimberly Heck
6484dce51b Fix bug #12934 2024-06-01 13:05:12 -04:00
Richard Kimberly Heck
42a8463aab Fix bug #11796.
Toolbars are now locked by default. Unlocked state should be saved
by Qt as a session variable.

Patch from Daniel.
2024-06-01 12:43:56 -04:00
Richard Kimberly Heck
2a1c3dce57 Fix bug #8856.
Show values of cross-references in tooltips.
2024-06-01 12:36:00 -04:00