Commit Graph

28927 Commits

Author SHA1 Message Date
Scott Kostyshak
cc951cd411 Comments 2023-08-10 06:17:29 -04:00
Daniel Ramoeller
a2310d04f4 Keep cursor position when splitting
Fix for #12689
2023-08-10 06:10:08 -04:00
Scott Kostyshak
224f21c856 Update tex2lyx tests after format change to 618
Amends 9e8901f9.
2023-08-06 15:09:14 -04:00
Pavel Sanda
05276c5bea Our default for paste operation should preserve newlines.
https://www.mail-archive.com/lyx-devel@lists.lyx.org/msg220061.html
2023-08-06 17:05:55 +02:00
Pavel Sanda
9e8901f997 Adding hebrew quotation marks (bug #12849).
Patch from Udi Fogiel.
2023-08-06 16:50:07 +02:00
Stephan Witt
d656e01172 #12626 disable Ok button of shortcut editor when LFUN is empty 2023-08-06 00:28:50 +02:00
Stephan Witt
49fe82ec8d #10740 fix focus problems with color picker on Mac
- closing the color picker focuses the wrong (main) window
- to return focus to correct (parent) window it has to be activated explicitly
2023-08-05 15:24:33 +02:00
Stephan Witt
65ec100f6a #12576 improved file name chooser implementation for GUI dialogs
- code reorganization to move the file name chooser methods in GuiDialog class
- on Mac add explicit raise of the current dialog window on close of the file browser to work around the bug 12576
2023-08-05 08:56:35 +02:00
Stephan Witt
550c79215b #12001 make message boxes modal on Mac 2023-08-02 18:00:02 +02:00
Pavel Sanda
7b13cccb99 DocBook: fix encoding of citations.
Patch from Thibaut.
2023-08-01 16:11:21 +02:00
Richard Kimberly Heck
95cc596b7d Fix reference to temporary 2023-07-29 14:41:22 -04:00
Richard Kimberly Heck
7fb3773e60 Fix up 04fc48d790. 2023-07-29 13:53:59 -04:00
Richard Kimberly Heck
6cffef87d2 Fix silly mistake in 04fc48d79 2023-07-29 12:34:38 -04:00
Richard Kimberly Heck
2e945584bf Catch another potential crash of the same kind as in the previous commit.
Also refactor.
2023-07-28 23:09:00 -04:00
Richard Kimberly Heck
aacc5147b6 Fix crash when modifying an InsetRef inserted by the current author.
The problem was that, in this case, we actually delete the current inset
in changeCmdName. So when we return from that and attempt to call initView(),
we're in a non-existent inset.
2023-07-28 22:57:57 -04:00
Richard Kimberly Heck
aec6a764f7 Remove debug code 2023-07-28 17:51:55 -04:00
Richard Kimberly Heck
04fc48d790 New RefFormat tag for counters, and PrettyFormat for floats.
Layout format updated to 104.
2023-07-28 17:37:13 -04:00
Richard Kimberly Heck
57f284d9a8 Whitespace 2023-07-28 17:16:06 -04:00
Richard Kimberly Heck
1ea8b272a0 Polish 2023-07-28 17:13:12 -04:00
Richard Kimberly Heck
5164b2853e Fix bug #12337. Reorder plural and caps indicators. 2023-07-28 12:10:21 -04:00
Richard Kimberly Heck
ae5b4367d1 Fix bug #12235: Select text in search field on opening.
Patch slightly modified from one by Daniel.
2023-07-28 12:07:23 -04:00
Richard Kimberly Heck
5cb80b867f Hack to display section symbol 2023-07-28 12:07:15 -04:00
Pavel Sanda
80dac0e52a Fix wrong nesting in Outline.
Fixes #12814, patch from Yuriy.
2023-07-28 10:31:54 +02:00
Richard Kimberly Heck
96dfc081b7 Fix bug #11822.
Allow counter formatting strings in PrettyFormat. Patch from Daniel.
2023-07-27 21:20:53 -04:00
Richard Kimberly Heck
5b2b0d5c76 Fix bug #12819.
Pop a warning and mark the buffer dirty if the file is deleted from disk.
2023-07-27 18:13:42 -04:00
Richard Kimberly Heck
a13fb42a03 Add FIXME for bug #12828 2023-07-27 18:13:42 -04:00
Pavel Sanda
56d9b713c7 Save translators time, already used on different places. 2023-07-27 23:24:11 +02:00
Richard Kimberly Heck
d815f382fa Fix warning 2023-07-27 16:57:04 -04:00
Pavel Sanda
9c7030b36b Revert a9c6fb0c.
Causes regression, see #12841.
2023-07-27 22:39:49 +02:00
Richard Kimberly Heck
8424213ae4 Use non breaking space 2023-07-27 16:36:11 -04:00
Daniel Ramoeller
9361bf56a3 More consistent line spacing/leading
Uses maxHeight (= maxAscent + maxDescent) as leading.

Fix for bug #11818.
2023-07-27 10:36:41 +02:00
Thibaut Cuvelier
9a163399fb XHTML: remove deferred text in InsetListings, fixing 12007. 2023-07-27 10:29:42 +02:00
Thibaut Cuvelier
98d1b04160 Before this patch, each character within InsetMathClass was output separately, without understanding their meaning, using the default text output (with [] around each character). This commit changes the behaviour to skip the InsetMathClass during the MathML output. This effectively renders the inset useless for MathML (instead of controlling spacing), as expected, because the MathML processor is supposed to handle the spacing itself.
Another implementation would have been to use the lspace and rspace attributes in MathML, but they require to give the exact spacing before and after the operator instead of relying on rules like TeX.

For instance, `$a\mathbin{+}b$` resulted in this MathML output before the patch:

```
<math xmlns='http://www.w3.org/1998/Math/MathML'>
<mrow>
 <mi>a</mi><!--  -->
 <mi>[mathbin [char + mathalpha]]</mi>
 <mi>b</mi>
</mrow>
</math>
```

For comparison, this was the output with LyX 2.3.7

```
<math xmlns="http://www.w3.org/1998/Math/MathML">
 <mrow>
  <mrow><mi>a</mi><!--  -->
   <mi>[mathbin [char + mathalpha]]
   </mi><mi>b</mi>
  </mrow>
 </mrow></math>
 ```

 After this patch, it looks like:

 ```
 <math xmlns='http://www.w3.org/1998/Math/MathML'>
 <mstyle class='math'>
  <mrow>
   <mi>a</mi>
   <mo>+</mo>
   <mi>b</mi>
  </mrow>
 </mstyle>
 </math>
 ```
2023-07-27 01:22:30 -04:00
Richard Kimberly Heck
cc22d766a9 Slight rearrangement 2023-07-27 01:22:30 -04:00
Richard Kimberly Heck
f393e6d219 Fix bug #8741 2023-07-27 00:09:26 -04:00
Richard Kimberly Heck
2224e85030 Make Alt-escape work for search as well 2023-07-26 16:52:30 -04:00
Jean-Marc Lasgouttes
7f23bd4aca Restore some checks that were useful for search
It is really back of the enveloppe spacing, but people liked it this way.

Fixes ticket #12767.
2023-07-26 22:46:05 +02:00
Richard Kimberly Heck
926ae84921 Use Alt-Escape to float and unfloat dock widgets.
For some reason, redocking is not working for me at all. This
key seems free.
2023-07-26 14:26:02 -04:00
Alexander Dunlap
c609e9cbcf Display equation/theorem numbers in insert cross reference dialog.
Fixes bug #11466,
2023-07-26 13:35:42 -04:00
Juergen Spitzmueller
7f4c4cd548 Improve AllowedOccurrences
This does now apply to the whole inset or paragraph group (not to the
current paragraph only) unless the new boolean AllowedOccurrencesPerItem
is set and we are in a list-type environment.

Amends 729ab602ca
2023-07-26 09:53:25 +02:00
Juergen Spitzmueller
729ab602ca To finish up #6854, also add AllowedOccurrences
Again very basic for now (this only considers the current paragraph,
not the whole inset or a serious of grouped layouts
2023-07-25 15:49:53 +02:00
Juergen Spitzmueller
0b463bfe0f Add AllowedInInsets and AllowedInLayouts InsetLayout tags
This allows to restrict the use of flex insets to specific contexts.

Note that this is currently very basis. It only considers immediately
containing insets/layouts and can be surpassed via cut and paste.

The use case that made me finally implement this are macros in covington
that make sense only in specific environments (but also consider \inst
in some article classes)
2023-07-25 13:37:07 +02:00
Juergen Spitzmueller
bc95ff1ace Whitespace 2023-07-25 11:13:18 +02:00
Jean-Marc Lasgouttes
6a8c10f0d6 Display footnote labels as superscripts
A new counter type \superarabic is introduced, that transforms the
counter into superscript Unicode numbers.

This is used for the footnote counter.

The Foot inset layout is modified to use an empty LabelString (in size
Normal, since the numbers could be too small).

We use this occasion to set footnote text in footnotesize, as it should.

A couple of changes are done to the code to make the button label and
tooltip look better.

Fixes bug #12238.
2023-07-24 11:15:03 +02:00
Juergen Spitzmueller
6d167e94f4 Add accelerators 2023-07-24 10:33:20 +02:00
Juergen Spitzmueller
d212013bd7 Fix casing 2023-07-24 10:26:57 +02:00
Pavel Sanda
ae3aaa9ade Add a "nogui" option to the inset-edit lfun (bug 11956). 2023-07-24 01:21:52 +02:00
Jean-Marc Lasgouttes
35359a4c6f Improve branch activatiion LFUNs
* put the code that is called both from Buffer and InsetBrach in the
  two helper methods Buffer::branchActivationStatus() and
  Buffer::branchActivationDispatch().

* Cleanup the code so that _MASTER_ lfuns are disabled when there is
  no master document.

* When changing branches in the master buffer, make the buffer visible
  if it is not, and make sure that undo information is recorded.

* The code in Buffer::dispatch is used first, and it gives control to
  the branch inset code if no branch name has been specified.

Fixes bug #12588.
2023-07-23 18:57:38 +02:00
Jean-Marc Lasgouttes
0f7404392c Fix issues with inset-dissolve in mathed
* do not try to dissolve a macro template inset (avoids a crash)
* disable inset-dissolve when an argument is given
* when triggered by the AtPoint mechanism, make sur to dissolve the
  right inset.

Fixes bug #12562.
2023-07-23 17:39:39 +02:00
Jean-Marc Lasgouttes
62d61e7655 Revert "Fix crash when dissolving a top level math inset"
The code was too convoluted and actually wrong (the -1 should have been -2).

This reverts commit c75522bbb7.
2023-07-23 17:38:47 +02:00
Jean-Marc Lasgouttes
81e35bc396 Replace hardcoded inheritFont() with InheritFont InsetLayout tag
Each removed inheritFont method is replaced by a 'InheritFont false'
line in the relevant InsetLayout entry.

Add code to layout2layout that does this automatically when the entry
is missing.

The case of InsetScript is special, since the inheritFont() was not
needed here: the default is indeed true.

Fixes bug #12238.
2023-07-22 23:38:53 +02:00
Pavel Sanda
fe953000ed Fix application of PARAGRAPH_PARAMS* in selection.
- Setting in the last paragraph of selection was not applied
  at certain conditions (i.e. relative cursor position in first
  paragraph > rel.c.pos. in last paragraph).

Getting back + fixing typo from e2b42b1726.

https://www.mail-archive.com/lyx-devel@lists.lyx.org/msg220019.html
2023-07-22 18:17:46 +02:00
Jean-Marc Lasgouttes
cfe094a380 Introduce new InsetLayout tag InheritFont
The font inside the inset is inherited from the parent for LaTeX
export if this parameter is true, as well as on screen. Otherwise
the document default font is used.

The default value is true.

Update tufte layouts to use this tag for sidenote and marginnote flex
insets.

Increase layout format to 101.

Fixes bug #12238.
2023-07-22 15:53:14 +02:00
Jean-Marc Lasgouttes
c8c589353a Detect when one tries to bind a lfun to a prefix of longer commands
Change KeyMap::getBinding to return FuncRequest::prefix in this case.

Add handling of this case in PrefShortcuts::validateNewShortcut.

What does not seem to work is that if, for example, accent-acute is
bound to M-s (which is a prefix for size-related bindings), and then
the binding is removed, the functions are not visibly restored.

Part of bug #10131.
2023-07-22 00:01:34 +02:00
Jean-Marc Lasgouttes
f31bf0df1d Send some debug info to ACTION 2023-07-20 23:39:15 +02:00
Juergen Spitzmueller
0e0c2c6120 Update tex2lyx tests 2023-07-20 15:22:47 +02:00
Juergen Spitzmueller
2841a1c063 Update covington support in linguistics module (file format change) 2023-07-20 15:09:47 +02:00
Kornel Benko
11f44c00e0 FindAdv: Handle negthinspace, negmedspace and negthickspace also in regexes 2023-07-20 12:32:58 +02:00
Pavel Sanda
5b34105514 Group most verbose dbg output into more intuitive categories.
From now on, having all dbg level except of painting and scrolling
shows debug output which can be actually followed.
2023-07-18 22:25:28 +02:00
Jean-Marc Lasgouttes
008cec3eec Honor scroll_below_document when jumping to end of document
While fixing #12491 at 0fed10e4, some band-aids were removed at the
end of `BufferView::scrollToBuffer`. One of them ensured that
scrolling to last paragraph would not leave the last row alone on
screen.

This behavior is actually correct when the scroll_below_document pref is true.

This commit restores the test that avoids the issue.

Of course, this does not fix the real issue, since for example opening
Tutorial.lyx and jumping to "5.3 Errors!" produces the same unwanted
effect.
2023-07-18 21:03:00 +02:00
Juergen Spitzmueller
649cb30963 Another tiny correction (not yet ideal) 2023-07-18 18:11:59 +02:00
Juergen Spitzmueller
7640d1fbf5 Remove bogus condition and add comments 2023-07-18 17:55:08 +02:00
Juergen Spitzmueller
eadc8ab147 LaTeXHighlighter: handle grouped values with commas in keyval options 2023-07-18 17:35:48 +02:00
Juergen Spitzmueller
9e308ddb03 Improve keyval highlighter 2023-07-18 17:05:56 +02:00
Juergen Spitzmueller
c549a2b59c At end of children, language needs to be reset
This amends 243b0ef90c
2023-07-18 15:27:17 +02:00
Juergen Spitzmueller
6603ae2242 Support option snippets in the LaTeXHighlighter 2023-07-18 15:13:48 +02:00
Kornel Benko
8eda9e25e0 Acount for all non-negative spaces used by lyx
The unicode representation in an ascii-string string is
\302\240                                Normal space
\342\200\257                            Non-breaking Thin (1/6 em)
\342\200\213\342\200\205\342\200\213    Medium(2/9 em)
\342\200\213\342\200\204\342\200\213    Thick (5/18 em)
\342\201\240\342\200\202\342\201\240    Half Quad(0.5 em)
\342\200\203                            Quad(1 em)
\342\200\203\342\200\203                Double Quad(2 em)
\342\220\243                            Visible space

'Double Quad' counts as 2 spaces, all others count as 1 space in the search regex
2023-07-18 13:09:55 +02:00
Juergen Spitzmueller
cd080da3c4 Fix thinspace search regex 2023-07-18 07:28:18 +02:00
Jean-Marc Lasgouttes
430c41cd05 Fix display of comment char in "lyxlex" debug channel 2023-07-17 23:02:46 +02:00
Juergen Spitzmueller
999b95398d THINSPACE is nonbreakable (i.e., 0x202f, not 0x2009) 2023-07-17 17:14:50 +02:00
Juergen Spitzmueller
f6f936e3d0 Support protected and thin space in simple search (#12836) 2023-07-17 16:58:58 +02:00
Juergen Spitzmueller
e87ace901a Style 2023-07-17 16:55:47 +02:00
Juergen Spitzmueller
edaf28fdd6 Do not throw away runparams settings of InsetText in InsetFoot::latex
This amends 243b0ef90c
2023-07-17 13:18:56 +02:00
Jean-Marc Lasgouttes
13d24c711e When breaking a paragraph, do not reset depth
Remove some logic that would reset depth when editing non-environment
stuff (e.g. Standard layout) at non-zero depth. The current way of
decreasing depth is to use paragraph-break in an empty paragraph.

See discussion in ticket #2445 for why this code happened.

Fixes bug #12750.
2023-07-16 17:16:02 +02:00
Stephan Witt
c4195defe6 #12818 amend last change b924db72c5 - use c++ 11 compiler compatible code 2023-07-16 17:11:38 +02:00
Stephan Witt
b924db72c5 #12818 correct evaluation of message box result info
The help page of int QMessageBox::exec() (​https://doc.qt.io/qt-6/qmessagebox.html#exec) says:
When using a QMessageBox with standard buttons, this function returns a StandardButton value indicating the standard button that was clicked.
When using QMessageBox with custom buttons, this function returns an opaque value; use clickedButton() to determine which button was clicked.
2023-07-16 16:49:02 +02:00
Juergen Spitzmueller
b397c78b70 Move comment to where it belongs 2023-07-16 16:46:02 +02:00
Juergen Spitzmueller
243b0ef90c If language needs to be reset at the end of footnotes or floats
then do reset it only after footnotes or floats. \selectlanguage at
the end of environments might produce spurious vertical space
(see https://marc.info/?l=lyx-devel&m=168872369617866)
2023-07-16 16:31:31 +02:00
Jean-Marc Lasgouttes
386a2ddca1 Cache the value of FontMetrics::xHeight()
This value is computed for the metrics of *every* Mathdata and hotspot
says that it counts for 9% of total on math-heavy "branch-test.lyx"
file. I am not sure that real world agrees with that, but profiling
shows that Qt itself does not cache the value.

Part of reinvestigation of #12297.
2023-07-15 23:32:59 +02:00
Jean-Marc Lasgouttes
d8e509e5eb Cleanup and (maybe) speedup InsetMathChar::mathClass
Profiling with hotspot show that it counts for more than it should and
indeed using support::contains is a overkill here. I like the new code
better anyway.

I would be surprised to see that it makes a big difference, though.
2023-07-15 23:29:24 +02:00
Jean-Marc Lasgouttes
582eb7cc03 add comment 2023-07-15 15:20:28 +02:00
Daniel Ramoeller
975115479a Don't add LabelString for Manual LabelType
Fix for bug  #12753
2023-07-14 19:06:40 +02:00
Jean-Marc Lasgouttes
4bbd4a45e7 Fix display of a math hull inset in a tight inset
This is a kind of hack. This allows InsetMathHull to state that it
needs some elbow room beyond its width, in order to fit the numbering
and/or the left margin (with left alignment), which are outside of the
inset itself.

To this end, InsetMathHull::metrics() sets a value in
MetricsInfo::extrawidth and this value is recorded later in the
corresponding row element's `extra' field.

The code could be reorganized to be simpler, in particular by
computing metrics in tokenizeRow, or after tokenizeRow. However the
choice here is to produce a simple patch, fit for 2.4.0.

Fixes bug #12320.
2023-07-14 17:17:23 +02:00
Jean-Marc Lasgouttes
7cc431bd55 Add optional parameter 'local' to outline-in/out
When this parameter is given, only the current paragraph is affected
by the section promoting/demoting.

Note that the new argument is not used yet.

Update release notes and LFUNS documentation.

Part of ticket #12417.
2023-07-06 17:47:08 +02:00
Jean-Marc Lasgouttes
a3db9a667f Outline: swap order of up and down arrows
The order is more natural now.

See discussion in #12809.
2023-07-06 17:47:08 +02:00
Scott Kostyshak
c4cdff5de2 Fix cursor font after collapsing inset (#12830)
If the cursor is in an inset, and it is closed (e.g., with ctrl + i,
or inset-toggle), the cursor is moved outside of the inset, so the
font must be reset.
2023-07-06 08:40:41 -04:00
Pavel Sanda
fb43449c80 Hide multi-keystroke accelerators in Mac menu (bug 12693).
Patch from Juergen.
2023-07-05 20:45:26 +02:00
Daniel Ramoeller
28a9124241 Fix combined zoom widget on windows (bug #12803). 2023-07-04 19:08:51 +02:00
Pavel Sanda
9d8bef017b Add bug reference. 2023-07-03 23:54:34 +02:00
Juergen Spitzmueller
d5a9699794 Fix inset context menu offset with keyboard (#12811) 2023-07-03 16:28:38 +02:00
Juergen Spitzmueller
94dd5ed6eb Avoid unnecessary cprotect loading (#12826) 2023-06-30 16:31:13 +02:00
Scott Kostyshak
551ede855a Style and whitespace 2023-06-29 05:31:41 -04:00
Enrico Forestieri
befe2da495 Honor pending spaces in InsetMathChar::write
The InsetMathChar::write() method directly accesses the otexrowstream
underlying the TeXMathStream class for writing a character, thus
shortcircuiting the mechanism that allows to separate a macro from the
following material. It has to do so because directly writing a char_type
would cause printing its numerical value instead of the corresponding
unicode character in systems where char_type is typedef'd to uint32_t.

This problem has been uncovered by [7441172d/lyxgit] because each atom
of a mathed cell was being separately written to the output instead of
using the lyx::write() method in MathExtern.cpp that simply converts
everything to a docstring. As InsetMathChar::write() is the only method
bypassing the TeXMathStream machanism, it is simpler teaching it to
honor the pending space instead of modifying the code in InsetMathColor.

This commit amends 7441172d.
2023-06-28 21:17:26 +02:00
Jürgen Spitzmüller
889dac7def Prevent par break caused by \egroup (#12821) 2023-06-28 14:46:46 +02:00
Jean-Marc Lasgouttes
8aea6af6a0 Make outline function work in an inset
The function outline is modified to operate only in the inset that
contains the cursor. This means that the function can be enabled in
insets (this had been forbidden to fix #5004).

Of course, there may be cases where the user expects something to
happen outside of the inset. I am sorry to announce that this is not
going to happen ;)

Fixes bug #12809.
2023-06-27 14:58:27 +02:00
Scott Kostyshak
f208f18022 Update tex2lyx tests
Update the test files after the last format change (c3f98d1f).
2023-06-21 15:03:47 -04:00
Jean-Marc Lasgouttes
65b03c7c72 Improve label font computation in insets
This patch reuses the code of TextMetrics::displayFont() that handles
the label part of LABEL_MANUAL paragraphs to create a new
labelDisplayFont() method usable for things like Itemize labels.

To this end, and new magic value is used as position to force the
label case in displayFont(). The code is also factored a bit and
cleaned up.

Fixes bug #12810.
2023-06-21 17:23:34 +02:00
Juergen Spitzmueller
6c4afc1ccb Show full inset context-menu when clicking on text part of collapsible (#10370) 2023-06-20 11:00:13 +02:00
Juergen Spitzmueller
75eb3abcfb typo 2023-06-20 11:00:05 +02:00
Jean-Marc Lasgouttes
b82a7279a8 Comments cleanup 2023-06-20 00:06:57 +02:00