Commit Graph

29248 Commits

Author SHA1 Message Date
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
Scott Kostyshak
f14384ff91 Add "override" to fix warning
Otherwise we get the following warning:

src/frontends/qt/InsertTableWidget.h:44:7: error: 'hideEvent' overrides a member function but is not marked 'override' [-Werror,-Winconsistent-missing-override]
        void hideEvent(QHideEvent * event);
             ^

Amends ca5a75b2.
2023-06-19 14:52:45 -04:00
Juergen Spitzmueller
2bbc420032 Disable LFUN_INDEX_TAG_ALL if there is noting to tag (#12812) 2023-06-18 12:45:25 +02:00
Daniel Ramoeller
ca5a75b23e Properly uncheck insert table toolbutton
Fix for bug #12801
2023-06-18 12:20:35 +02:00
Scott Kostyshak
eac460e438 Remove the mathed "BUGS" file (#3493)
Jürgen cleaned up the previous contents of this "BUGS" file. What
was left (before the rm in this commit) had been written in 2001 at
2dd1a460, and it is not clear if it is still relevant.
2023-06-15 05:15:32 -04:00
Daniel Ramoeller
c13c959974 Fix margins and spacing of InsetParamsUI
Fix for bug #12244.
2023-06-15 04:18:36 -04:00
Daniel Ramoeller
7371a99256 Fix for HiDPI logo in About
Fix for #12322.
2023-06-13 09:56:48 -04:00
Scott Kostyshak
67ff56c63a Whitespace 2023-06-13 09:55:53 -04:00
Pavel Sanda
152811a27d Activate work area by tab click.
Fix for #11835.
Patch by Daniel Ramoeller.
2023-06-13 12:11:11 +02:00
Yuriy Skalko
2475a6a616 Move Fullscreen preferences from Editing>Control section into Look & Feel>User Interface section 2023-06-13 11:28:31 +02:00
Pavel Sanda
afb918bf78 Fix for #12681.
Number Paste Recent menus entries as in toolbar.
Slightly improved patch from Daniel Ramoeller.
2023-06-13 10:07:56 +02:00
Richard Kimberly Heck
0c69a5eab2 Fix bug #12796 2023-06-12 19:38:40 -04:00
Daniel Ramoeller
8124e6c02e Fix bug #12795 2023-06-12 19:33:25 -04:00
Richard Kimberly Heck
c3f98d1fa4 The lyx2lyx for the previous commit. 2023-06-11 12:55:51 -04:00
Enrico Forestieri
c33f2f50a0 Do not output LaTeX for a macro if the LaTeX part is empty. 2023-06-11 12:55:51 -04:00
Juergen Spitzmueller
3be39de1f7 Address deprecation warning
QMutexRecursive has been introduced with Qt 5.14, the warning with
Qt 5.15.2
2023-06-11 13:15:55 +02:00
Juergen Spitzmueller
833f8c148e Limit QEvent::ApplicationPaletteChange casing to Mac
This is not needed on Linux and dramatically slows down runtime mode
change
2023-06-11 12:43:30 +02:00
Juergen Spitzmueller
3af906e9f3 Fix crash on OS-switch of dark/light mode (#12786)
At least for Mac and Linux. Windows needs testing and possibly its
own fix.
2023-06-10 08:30:31 +02:00
Jean-Marc Lasgouttes
24f4c51f0e inset-split should not be dispatched to inset at point
This functon does not make sense for a full inset.

Fixes second part of bug #12747.
2023-06-06 11:10:45 +02:00
Daniel Ramoeller
5a893d9862 Replace selection on insert LyX Document
Fix for bug #10390
2023-05-31 01:01:22 +02:00
Daniel Ramoeller
c0d7ac5b71 Split-inset fix
- Remember whether something has to be pasted

Fix for bug #12747
2023-05-31 00:05:23 +02:00
Daniel Ramoeller
2e966811d8 Center preview status message
Fix for bug #12724
2023-05-30 14:12:11 +02:00
Richard Kimberly Heck
9a4e44e7df Fix indentation 2023-05-27 11:38:19 -04:00
Richard Kimberly Heck
04fe6c89dc Fix typo 2023-05-27 11:37:00 -04:00
Daniel Ramoeller
4ed0312c51 Fix bug #12772 2023-05-26 23:39:28 -04:00
Jean-Marc Lasgouttes
3895c79879 Fixup 1d637b8a: do not set extra spacing for typewriter
This messed up rows with both normal and typewriter fonts.
2023-05-23 09:22:51 +02:00
Juergen Spitzmueller
ba659d0cfd Fix indentation 2023-05-22 16:32:49 +02:00
Juergen Spitzmueller
25ecd919fe Use proper (inset) font for normalizing purposes
Not all insets have a proper layout, but we have Inset::getFont()

Fixes #12729
2023-05-19 12:35:03 +02:00
Kornel Benko
f13808939b Advaced search: check for toString() before using it.
(#12783)
2023-05-18 18:07:40 +02:00
Juergen Spitzmueller
92f211d6b4 Replace deprecated function
activateWindow() is available back to Qt4 (at least)
2023-05-17 08:56:12 +02:00
Jean-Marc Lasgouttes
e0db6378c9 Revert "Do not return copies of string members"
This commit is very wrong when trivstrings are used (since what is
retirned is a temporary variable) and it turns out that cygwin
requires this for some reason.

This reverts commit 3ae5d6bdec.
2023-05-15 17:13:41 +02:00
Stephan Witt
ac286e54b7 #12769 correct line width based painting of wavy underline
With very tiny fonts the line width is 0 and the loop to construct the wavy line never ends.
2023-05-15 07:06:44 +02:00
Juergen Spitzmueller
90d40eb95e Add labels to encoding variant combo 2023-05-13 18:38:33 +02:00
Juergen Spitzmueller
75f628aec0 Replace removed signal
The used one has been removed from Qt6
2023-05-12 09:46:38 +02:00
Juergen Spitzmueller
120ba1d3ec Do not attempt to read bitmap icon with svg renderer
Pavel, this should cure your woes
2023-05-12 09:39:20 +02:00
Juergen Spitzmueller
0a040d18ad Some layout fixes
Layout was too squeezed and didn't properly expand on longer (l7n) strings
2023-05-11 17:46:16 +02:00
Pavel Sanda
918146addd Fix DocBook case 2023-05-11 15:29:14 +02:00
Jean-Marc Lasgouttes
6fbc8c6352 Fixup 7f1b1729: restore lazy caret handling
For some reason, the code that should have been put in
updateCaretGeometry() went to resetCaret(). I do not see how that made
sense.

I am not totally sure what the consequences of the patch are, though.
It just "looks right".
2023-05-11 10:13:27 +02:00
Pavel Sanda
b198a36a36 Less expensive OP first as this might be called often. 2023-05-10 12:43:14 +02:00
Pavel Sanda
52fd21f902 Handle stats for French guillemets 2023-05-10 12:23:56 +02:00
Pavel Sanda
63ff4f4431 Count quotes in document statistics as well.
Currently any quote counts as a single character.

https://www.mail-archive.com/lyx-devel@lists.lyx.org/msg219697.html
2023-05-09 20:48:13 +02:00
Pavel Sanda
16da5ef010 * LanguageUi.ui - change layout.
This pane is responsible for horizontal excess size (at least in CZ
translation) of document settings panel. The reason is second encoding combo
which get very lengthy (there are actually 3 of them).
This patch moves them to separate line.

Beware, touching this panel is headache.
Qt Designer (5.15.2) does not know even how to load this ui
file correctly and it's impossible to move unicodeEncodingCO.
When breaking layout this CO is mysteriously deleted.

Finally I gave up and simply edited file in vim to get COs to the new row.
2023-05-09 20:33:42 +02:00
Pavel Sanda
75d731c9d8 * OutputUi.ui - Reorganize Output pane so it takes less vertical space. 2023-05-09 19:06:26 +02:00
Pavel Sanda
20b45cf028 * Document prefs: rename Format -> Output 2023-05-09 19:05:31 +02:00
Pavel Sanda
c3613f1f17 * PrefDocHandlingUi.ui - add naming for emergency file 2023-05-09 18:35:00 +02:00
Jean-Marc Lasgouttes
e620920fe2 Fix unitialized member warning by coverity
The members open_braces and close_wildcards of MatchStringAdv are not
initialized in case of early return and coverity complains about that.
2023-05-09 13:52:33 +02:00
Enrico Forestieri
ee9fca42bb Use black as default color for an inset button label text
It turns out that LyX was using red as default color for the
inset button text since ever. However, due to the use of "inherit",
the default button text color was black in practice. This was so
until [897ee2ed/lyxgit], which made the label font not inherited
by default anymore. Hence, all insets that didn't specify a specific
label button color started using red as default color.

This commit restores the previous behavior and introduces the
possibility of modifying this default color.

Fixes bug #12771
2023-05-09 11:33:13 +02:00
Richard Kimberly Heck
8fac7d7035 If the ending delimiter is at the end of the file, then the test
pimpl_->is
will return false no matter what. So we need a different way to
check if the delimiter was found.
2023-05-06 18:59:40 -04:00
Jean-Marc Lasgouttes
e454deba2c Revert "Move Fullscreen preferences from Editing>Control section into Look & Feel>User Interface section"
I pushed it by mistake.

This reverts commit 4d31e20d7d.
2023-05-05 21:23:21 +02:00
Jean-Marc Lasgouttes
3ae5d6bdec Do not return copies of string members
This fixes the g++ 12 warnings below.

../../master/src/Converter.cpp:714:55: warning: possibly dangling reference to a temporary [-Wdangling-reference]
  714 |                                         Mover const & mover = getMover(conv.to());
      |                                                       ^~~~~
../../master/src/Converter.cpp:714:71: note: the temporary was destroyed at the end of the full expression ‘lyx::getMover(lyx::Converter::to() const())’
  714 |                                         Mover const & mover = getMover(conv.to());
      |                                                               ~~~~~~~~^~~~~~~~~~~
../../master/src/Converter.cpp:786:39: warning: possibly dangling reference to a temporary [-Wdangling-reference]
  786 |                         Mover const & mover = getMover(conv.from());
      |                                       ^~~~~
../../master/src/Converter.cpp:786:55: note: the temporary was destroyed at the end of the full expression ‘lyx::getMover(lyx::Converter::from() const())’
  786 |                         Mover const & mover = getMover(conv.from());
2023-05-05 20:35:23 +02:00
Yuriy Skalko
4d31e20d7d Move Fullscreen preferences from Editing>Control section into Look & Feel>User Interface section 2023-05-05 19:21:37 +02:00
Jean-Marc Lasgouttes
43b24085fb Merge files Text{,2,3}.cpp
This is done at the end of the release cycle to avoid backporting issues.

The goal is to simplify development, since it was difficult to guess
in which file a given method could be found.

There is some effect on compilation time, but it is not too bad:

* before merge

  lapinot: time make Text.o Text3.o Text2.o
    CXX      Text.o
    CXX      Text3.o
    CXX      Text2.o

  real	0m32,504s
  user	0m31,027s
  sys	0m1,446s
  lapinot: rm Text*.o
  lapinot: time make -j8 Text.o Text3.o Text2.o
    CXX      Text.o
    CXX      Text3.o
    CXX      Text2.o

  real	0m21,282s
  user	0m32,661s
  sys	0m1,424s

* after merge

  lapinot: time make Text.o
    CXX      Text.o

  real	0m26,731s
  user	0m25,706s
  sys	0m1,020s
2023-05-04 16:28:09 +02:00
Jean-Marc Lasgouttes
21dcb4782f Never not show caret when window does not have focus
A non blinking cursor could appear when hovering on inset button.

Fixes bug #12762.
2023-05-03 12:22:52 +02:00
Jean-Marc Lasgouttes
e533118b38 spacing 2023-05-03 12:15:26 +02:00
Jean-Marc Lasgouttes
89db357cd6 Code factoring: introduce BufferView::busy()
The WorkArea should not have to look at details of the undo stack.
No change intended.
2023-05-03 11:57:31 +02:00
Daniel Ramoeller
dfc3db773a Fixup 89394bcd: handle cursor keys from keypad
Due to a macOS peculiarity, it is necessary to handle KeypadModifier.
We do it unconditionnally, although only macOS seems to be affected.

"Note: On macOS, [...] The KeypadModifier value will also be set when
an arrow key is pressed as the arrow keys are considered part of the
keypad." (​https://doc.qt.io/qt-6/qt.html#KeyboardModifier-enum)

Related to bug #12572.
2023-05-03 11:25:06 +02:00
Jean-Marc Lasgouttes
ee5dcc9d47 Fixup e1261817: place cursor correctly in RtL
In an RtL paragraph, the cursor should be placed to the right of the
end-of-paragraph indicator.
2023-05-02 16:44:40 +02:00
Jean-Marc Lasgouttes
97ccb8c8c9 Make inset info icons tight again!
This is a follow-up to 5be391b2, which increased the space on
left/right of graphics inset. This extra space makes sense in normal
graphics editing, but is weird in the case of InsetInfo, which has its
own spacing.

Create a special tight graphics inset class, and use that for icons.
2023-05-02 14:49:47 +02:00
Enrico Forestieri
17b24cf480 Re-enable QWindowsMimeMetafile with Qt6
Qt 6.5.0 has dropped support for the QWindowsMime class
in favor of a new QWindowsMimeConverter class. They say:
  "If you have implementations of QWindowsMime or QMacMime in Qt 5,
   then those will almost directly translate to the new APIs but
   require less boiler-plate code to register the converters with Qt."
This may be true, but in practice they break binary compatibility with
previous versions. If you used the QWindowsMime class until Qt 6.4 by
using boiler-plate code to register the converters with Qt, you now
need to modify the sources and recompile. Fantastic!
2023-04-28 23:34:01 +02:00
Pavel Sanda
c6a190d480 Centralize use of "all files" wildcard in dialogs so it's consistent. 2023-04-28 21:59:37 +02:00
Pavel Sanda
a42a57a0b6 Increase hint verbosity, otherwise difficult to understand. 2023-04-27 21:24:49 +02:00
Pavel Sanda
5be391b274 Do not let cursor overlap with inserted graphics.
https://www.mail-archive.com/lyx-devel@lists.lyx.org/msg219612.html
2023-04-27 20:37:32 +02:00
Scott Kostyshak
1dc55bd88b Fix compiler warning about unused string consts
These trigger a warning with Clang:

src/Session.cpp:34:14: error: unused variable 'sec_session' [-Werror,-Wunused-const-variable]
string const sec_session = "[session info]";
             ^
src/Session.cpp:35:14: error: unused variable 'sec_toolbars' [-Werror,-Wunused-const-variable]
string const sec_toolbars = "[toolbars]";
             ^
2023-04-26 14:06:25 -04:00
Pavel Sanda
72eb386af0 Improve error msg. 2023-04-21 23:15:16 +02:00
Jean-Marc Lasgouttes
f7afcc31fe Fix undo with cell-plit
This function modifies several cells.

Fixes bug #12746.
2023-04-21 14:42:51 +02:00
Pavel Sanda
18be0ec7f8 Few changes in GUI color strings to improve grouping. 2023-04-19 22:25:18 +02:00
Juergen Spitzmueller
a15bc829d1 Do not load mathrsfs if unicode-math is required (#12734)
The latter provides \mathscr and the packages clash
2023-04-15 12:35:22 +02:00
Pavel Sanda
3dd79b1c4e comment only 2023-04-14 23:58:59 +02:00
Pavel Sanda
4b736a19f2 Add few color comments 2023-04-14 23:16:54 +02:00
Juergen Spitzmueller
9ec80456fe tex2lyx: fix import of umlauts and ß in math (#12739) 2023-04-14 19:13:23 +02:00
Pavel Sanda
7f614397ed typo 2023-04-14 10:53:37 +02:00
Pavel Sanda
32209c9845 Typo in metadata glyphs check.
So I belive, but someone please double check.
2023-04-13 21:55:57 +02:00
Pavel Sanda
6b7da5ec8c typo 2023-04-13 21:50:43 +02:00
Pavel Sanda
f664498ba7 typo 2023-04-13 21:36:17 +02:00
Jean-Marc Lasgouttes
d828728cc9 Revert "Automatically adjust tab stop width"
The fix is more complicated than that

This reverts commit bb16efc07e.
2023-04-11 14:19:20 +02:00
Daniel Ramoeller
bb16efc07e Automatically adjust tab stop width
Extend tab stops to the same indentation point instead of a fixed number of spaces.

Fix for bug #12736
2023-04-11 13:36:52 +02:00
Scott Kostyshak
7368e5be2b Amend 1dc66608
Declare override, otherwise we get the following warning:

src/insets/InsetListings.h:42:7: error: 'isEnvironment' overrides a member function but is not marked 'override' [-Werror,-Winconsistent-missing-override]
        bool isEnvironment() const { return !params().isInline(); }
             ^
src/insets/Inset.h:606:15: note: overridden virtual function is here
        virtual bool isEnvironment() const { return getLayout().latextype() == InsetLaTeXType::ENVIRONMENT; }
                     ^
1 error generated.
2023-04-10 13:14:15 -04:00
Juergen Spitzmueller
b42e978080 Do not switch dir with numbers and babel in full unicode
Patch by Udi Fogiel
2023-04-10 15:31:26 +02:00
Juergen Spitzmueller
8917cb3cc8 luabidi's \\LR[E] needs to be embraced (possibly a LuaTeX bug)
without the grouping, trailing text disappears
2023-04-10 15:16:20 +02:00
Juergen Spitzmueller
2abde5d162 Inset::forceLTR() only determines whether explicit switches are needed
(as opposed to InsetLayout::forceLTR()). So properly set this for ERT
and remove downstream special casing
2023-04-10 10:20:11 +02:00
Juergen Spitzmueller
767f3e5b81 Fix spacing in forceLTR for classic latex 2023-04-10 08:37:04 +02:00
Juergen Spitzmueller
e9c8b10c1d Do not forceLTR math with Xe/Lua (part of #12731) 2023-04-10 08:24:46 +02:00
Juergen Spitzmueller
f058442be9 Put forceLTR (display) environments in LRE environment rather than command
This fixes whitespace issues.
2023-04-10 08:10:51 +02:00
Juergen Spitzmueller
1dc666082e Add Inset::isEnvironment()
This usually returns InsetLayout::isEnvironment(), but listings has
specific conditions (depending on whether it is inline or not)
2023-04-10 08:09:32 +02:00
Juergen Spitzmueller
61f2cd27a8 Fix indentation 2023-04-09 15:01:17 +02:00
Juergen Spitzmueller
7b6707fc52 Properly resolve undefined citations with Xe/Lua and bibliography environment
These need an extra LaTeX run
2023-04-08 19:25:30 +02:00
Juergen Spitzmueller
6ec6db8cd9 Fix crash when copying multiple cells in table
while having done "backwards" selection (selBegin() in a later
column/row than selEnd())
2023-04-08 16:55:41 +02:00
Juergen Spitzmueller
849d0c81ca Record babel use for single par preview 2023-04-02 14:51:47 +02:00
Juergen Spitzmueller
84dde6aeb9 Fix indentation 2023-04-02 12:31:41 +02:00
Daniel Ramoeller
211554d0df Fix bug #12721. 2023-03-30 16:12:08 -04:00
Juergen Spitzmueller
3a02e477a0 Sync doc CT settings with dialog-external change of status (#12703) 2023-03-21 10:24:34 +01:00
Jean-Marc Lasgouttes
1d637b8af0 Spaces in typewriter font never expand in justified text
This fixes on-screen appearance of things like code with lines longer
than the window width.

The TeXbook makes it clear by indicating that \fontdimen3 == 0 for
these fonts.
2023-03-18 21:03:42 +01:00
Jean-Marc Lasgouttes
f24bb4a919 Remove indentation on screen after a plain separator inset
Fixes bug #12700.
2023-03-18 19:47:42 +01:00
Juergen Spitzmueller
5ad6cbb1d8 Fix signal order (#12712) 2023-03-18 15:58:04 +01:00
Juergen Spitzmueller
81d6965c81 Do not swap parens and stuff with babel and Xe/LuaTeX 2023-03-17 18:11:38 +01:00
Jean-Marc Lasgouttes
e2011856bc Fixup a2378c1182: handle the monospace case
When the font is tt, the stretch space is null. Change the display
rendering to accomodate that.
2023-03-17 14:27:15 +01:00
Jean-Marc Lasgouttes
98b5a16793 Fix completion in math when inline completion was not yet shown (take 2)
Better version of b4211ef2: we handle the case of a unique completion early.

Fixes bug #12674.
2023-03-16 11:58:49 +01:00
Jean-Marc Lasgouttes
fb1c4494ea Revert "Fix completion in math when inline completion was not yet shown"
A better fix is in the works.

This reverts commit b4211ef206.
2023-03-16 11:58:49 +01:00
Richard Kimberly Heck
7bcf201f40 Fix bug #12707 2023-03-15 23:24:47 -04:00
Jean-Marc Lasgouttes
175bcc6efc Fixup 00c39208: initialise ParagraphMetrics::id_ in default constructor
This was missing. Spotted by coverity.
2023-03-15 23:38:16 +01:00
Jean-Marc Lasgouttes
a2378c1182 Improve display of ellipsis special char
Follow the TeXbook and use a half space as separation.
2023-03-15 12:25:19 +01:00
Jean-Marc Lasgouttes
05469a053f revert/fixup 309f8f4b: setFilterRegularExpression was introduced in Qt 5.12. 2023-03-12 13:05:58 +01:00
Juergen Spitzmueller
7cde89ece7 Remobe static icon sizing which seems to play bad with HiDpi 2023-03-11 18:30:44 +01:00
Juergen Spitzmueller
466e6eb613 Remove workaround for Qt version which is no longer supported 2023-03-11 16:43:08 +01:00
Juergen Spitzmueller
31a197d88c Fix signals 2023-03-11 16:25:25 +01:00
Juergen Spitzmueller
548c5ba92d Two more icon scale fixes 2023-03-11 16:10:52 +01:00
Juergen Spitzmueller
8863d6d785 Properly scale some icons for HiDPI (#12695) 2023-03-11 14:49:07 +01:00
Yuriy Skalko
2b6b20ff69 Include QScreen header to fix compilation with Qt 5.14
Needed after e2e1fd6ea9.
2023-03-10 09:18:59 +01:00
Daniel Ramoeller
2ed5b4a705 Fix text color of "file changed on disk" notification
Adjusts the label color of the notification to the background.

Fix for #12690.
2023-03-09 16:13:00 +01:00
Pavel Sanda
4cccec60ca Improve tooltip. 2023-03-09 10:23:46 +01:00
Juergen Spitzmueller
c227a4af41 Check for invalid indexes in Module selection
This should fix crashes when moving with pressed mouse buttons on
category nods
2023-03-08 08:24:38 +01:00
Jean-Marc Lasgouttes
e2e1fd6ea9 QDesktopWidget is not required in Qt5, the Qt6 code works 2023-03-05 21:54:08 +01:00
Jean-Marc Lasgouttes
9156843ec2 QWidget::setContentsMargins is supported in Qt5 2023-03-05 21:37:01 +01:00
Jean-Marc Lasgouttes
7d78078838 When a displayed inset is aligned left, align it left
The use of LYX_ALIGN_BLOCK was a mistake.

Fixes bug #12683.
2023-03-05 20:59:35 +01:00
Jean-Marc Lasgouttes
f7de345f85 Avoid row breaking at inconvenient places.
The test that was used to avoid breaking a string that was followed
by a too long element was not correct (especially the part that
compared with total row width).

Typical example here is:
- a word with a part that has a font change like /un/breakable;
- a longish sentence after it.

Use a new test that is good enough for this particular case, although
with sortcomings. I do not want to overcomplicate and prefer to wait
for other complaints (this code is already more complicated that I
would like).

Document known shortcoming.

Fix ticket #12660.
2023-03-03 17:24:06 +01:00
Juergen Spitzmueller
e6966647fd Fix intitle context checking for info insets 2023-03-03 14:54:52 +01:00
Juergen Spitzmueller
739905862f Address deprecation
See https://doc.qt.io/qt-6/qbytearray-obsolete.html
2023-03-03 11:37:39 +01:00
Jean-Marc Lasgouttes
309f8f4b40 Remove two remaining snippets from the QRegExp era. 2023-03-03 11:17:58 +01:00
Jean-Marc Lasgouttes
263da2fa20 Remove use of QRegExp
QRegexp has been replaced with QRegularExpression in Qt5. Now that we
have dropped support for Qt4, there is no need for keeping it around.
2023-03-03 10:49:32 +01:00
Jean-Marc Lasgouttes
88c1ed9e32 Remove dead code which is deprecated in Qt6 2023-03-03 10:48:51 +01:00
Pavel Sanda
06928c914f * SpellcheckerUi fix casing in tooltip 2023-03-03 10:45:46 +01:00
Jean-Marc Lasgouttes
00c39208ac At metrics time, store paragraph id too
Instead of actually fixing the messiness of InsetInfo, let's just fix
the symptom and avoid the access to Paragraph::id() that was crashing
LyX every time updateBuffer/validate/metrics/draw did not happen in
the right order.

Fixes bug #12639.
2023-03-03 10:34:18 +01:00
Pavel Sanda
190d2ba2c3 * doxy - correct whitespacing. 2023-03-02 22:03:09 +01:00
Pavel Sanda
96eb65dc32 Spellcheck - more verbose tooltip. 2023-03-02 22:01:17 +01:00
Juergen Spitzmueller
5cb8733660 trim trailing linebreak 2023-02-27 12:16:04 +01:00
Pavel Sanda
9bbec4a75a Fix #12678. 2023-02-26 22:30:17 +01:00
Pavel Sanda
2b6ef1257a Infoinset - better specification of few strings 2023-02-25 18:52:31 +01:00
Pavel Sanda
b4ed627ecc Fogotten case for replacing $$python.
Patch from Jose.
https://www.mail-archive.com/lyx-devel@lists.lyx.org/msg219385.html
2023-02-24 19:44:37 +01:00
Juergen Spitzmueller
c5e4043fa3 Warn user when OUTLINE_IN/OUT is about to flatten the structure (#11178) 2023-02-22 17:31:32 +01:00
Scott Kostyshak
83af3dfd29 Fix equation numbers after row operation (#12665)
After removing/adding rows, the corresponding equation numbers in
the LyX display were not updated (although if you clicked outside
the math inset they were).

Now they are updated immediately after the operation.
2023-02-22 11:12:56 -05:00
Juergen Spitzmueller
8fd1aaa46e Fix another old outliner bug (#9375)
Parts, chapters and sections have different LabelTypes, but this does
not mean they cannot be transformed into each other while doing
OUTLINE_IN/OUT

Not sure why the labeltype check is here anyway, but let's keep it.
2023-02-22 16:33:37 +01:00
Juergen Spitzmueller
41d95a45d9 Properly reset tree depth in outliner with keep when outliner is re-filled
Fixes a 13 year old bug (#6675)
2023-02-22 15:24:15 +01:00
Juergen Spitzmueller
08fc56486e Whitespace 2023-02-22 14:53:25 +01:00
Juergen Spitzmueller
ceb03b1815 Amend 4cd568d312 2023-02-22 14:35:53 +01:00
Juergen Spitzmueller
4cd568d312 Do not change outliner tree depth when not appropriate
This fixes expansion/collapsing on double-click (#12672)
2023-02-22 14:23:04 +01:00
Jean-Marc Lasgouttes
b4211ef206 Fix completion in math when inline completion was not yet shown
It is necessary to set finish=true when the completion is unique.
Otherwise, one gets \upsilon instead of the proper glyph.

Fixes bug #12674.
2023-02-22 12:02:10 +01:00
Jean-Marc Lasgouttes
ab8ea2543d Revert "Fixup 0cbe0d7a: avoid double redraw when completion is finished"
This is my 635th lesson that trying to be too clever is not that good.
This change interferes with the yet-to-come fix to #12674.

This reverts commit cc6dae1363.
2023-02-22 12:00:14 +01:00
Jean-Marc Lasgouttes
cc6dae1363 Fixup 0cbe0d7a: avoid double redraw when completion is finished 2023-02-22 11:32:11 +01:00
Jean-Marc Lasgouttes
0cbe0d7a3e Make sure that screen is updated when completing math
There was a missing update there.

Fixes part of bug #12674.
2023-02-22 11:23:10 +01:00
Juergen Spitzmueller
1e99920b35 Disable zoom in/out buttons when threshold is reached (#12676) 2023-02-22 11:16:46 +01:00
Jean-Marc Lasgouttes
e181474e6c Fixup 04ece4f0: handle case where openinlined_ is not set
When computing the width of the button, some code has been added in
04ece4f0 to shorten the space in LeftButton geometry. It turns out
that the Left/Top-button-ness is not always known at this point (since
it depends on the width itself!).

Therefore, it is better to make the button narrower also in the
TopButton case.
2023-02-22 10:58:22 +01:00
Jean-Marc Lasgouttes
a3d58d2884 Fixup 04ece4f0d6: fix cursor position 2023-02-22 10:32:24 +01:00
Pavel Sanda
39fddce26e comment typo & one line 2023-02-21 11:29:40 +01:00
Juergen Spitzmueller
eb294eadb5 Strip et al. for citation search 2023-02-21 08:12:59 +01:00
Jean-Marc Lasgouttes
92178fe457 Add commented-out code that might prove useful one day
The code in the dead branch looks reasonable to me, but I was not able
to prove that it solves a problem (yet).
2023-02-20 14:53:07 +01:00
Pavel Sanda
3a72e2c76b lyxpaperview - fix viewer calls with additional arguments 2023-02-19 22:35:21 +01:00
Pavel Sanda
be0341edd3 typo 2023-02-19 21:41:40 +01:00
Pavel Sanda
5b69f6899f Another case of statusTip 2023-02-19 19:22:48 +01:00
Pavel Sanda
c629d11c43 citationSearchCB statusTip -> toolTip 2023-02-19 19:15:25 +01:00
Juergen Spitzmueller
8deb05f7a7 Mark empty bib(la)tex insets (i.e., with no databases defined) (#12668) 2023-02-19 12:15:45 +01:00
Juergen Spitzmueller
da1d6d03eb Amend 2987530434
This is more readable (and fixes a thinko)
2023-02-18 17:04:43 +01:00
Juergen Spitzmueller
2987530434 Address an edge case where we need to loaf fontspec also with babel 2023-02-18 16:12:49 +01:00
Juergen Spitzmueller
29a8097c3c Make string-widget combination more l7n friendly
This allows to adjust the minutes widget within the syntax of the language
2023-02-16 15:25:33 +01:00
Juergen Spitzmueller
536bcb0d7b Amend ef2ca233d6 2023-02-16 14:55:55 +01:00
Juergen Spitzmueller
ef2ca233d6 Differentiate backups from autosave files (#12659) 2023-02-16 14:42:44 +01:00
Pavel Sanda
76daf33dd5 * Adv FindAndReplace - add spacer to visually distinguish groupbox. 2023-02-15 21:25:22 +01:00
Pavel Sanda
065f125b61 Disentangle tooltip in Character dialog and FindAndReplace pane. 2023-02-15 21:18:11 +01:00
Pavel Sanda
dce4ff82b4 * ui: Latex -> LaTeX 2023-02-15 21:16:39 +01:00
Juergen Spitzmueller
c1168f35d7 tiny correction 2023-02-15 11:46:37 +01:00
Juergen Spitzmueller
bfab8f9435 Escape single quotes in bformat string 2023-02-15 11:45:16 +01:00
Juergen Spitzmueller
879aa03a3e Add some tooltips wrt document backup 2023-02-15 11:22:19 +01:00
Juergen Spitzmueller
03ced49d9f whitespace 2023-02-12 14:37:35 +01:00
Juergen Spitzmueller
ced6c591fb Silence warning when unappropriate 2023-02-12 14:33:27 +01:00
Juergen Spitzmueller
a218450aa4 tex2lyx: support documentclass in path (#12284) 2023-02-11 09:57:32 +01:00
Juergen Spitzmueller
8c6db95135 Add missing empty line (par break) between pars with differing line spacing (#12638) 2023-02-09 17:23:18 +01:00
Jean-Marc Lasgouttes
2a626f76fd Revert "Fix crash with info inset and dialogs"
This reverts commit 17e60e2e85.
2023-02-08 12:53:39 +01:00
Jean-Marc Lasgouttes
f0b60d0b4e fix comment. 2023-02-08 12:28:01 +01:00
Juergen Spitzmueller
713264ae2b Disable "search in selection only" with instant search
These two do not go well together. Making it work requires some major
overhaul of selection while searching (see #12655)
2023-02-07 14:48:09 +01:00
Jean-Marc Lasgouttes
17e60e2e85 Fix crash with info inset and dialogs
See the thread
  2.4 Crash (was: Updated LaTeXConfig.lyx (bxjsclasses added))
on lyx-devel (26/01/2023).

The backtrace imply a problem like:
1/ metrics are computed for some info inset
2/ the info inset is regenerated (and thus the paragraph it held is now invalid)
3/ We draw the inset and because of the new (disabled by default)
   bookmark display code, we access the id() of the invalid paragraph.
4/ boom!

To fix the issue, introduce a new boolean member that indicates when
the Row object of the metrics should not be used. In this case, the
draw() method returns early.
2023-02-06 21:34:08 +01:00
Jean-Marc Lasgouttes
04ece4f0d6 Remove space between button and text with inlines collapsible insets
Typically there are two sources of spacing:
* the button has two pixels added to the left and to the right
* the frame around the text also has 2 pixels to the left and to the right

Note that this value of two pixels is given here for simplicity, but
these are parameterized by methods like textOffset or leftOffset.

What we want to remove is the space after the button and the space
before the frame. This is done in 3 places

In dimensionCollapsed(), the extra space is removed from the dimension
after its computation

In metrics(), the space avoided before the frame is removed from width.

In draw, the whome text inset is drawn with a negative offset.

Fixes #12335.
2023-02-06 20:28:37 +01:00
Juergen Spitzmueller
fb37682d74 Check whether we have a selection before issuing warning (#12655) 2023-02-06 11:47:14 +01:00
Juergen Spitzmueller
97a5433bed Update tex2lyx tests 2023-02-04 17:48:57 +01:00
Juergen Spitzmueller
ac6314b834 Properly fix acknowledgment issue part 1/2
Bump file format and convert/revert styles to unique spelling
2023-02-04 17:47:52 +01:00
Jean-Marc Lasgouttes
418fd911f8 Revert "Extended comment and indentation for source code"
This was pushed by mistake. A different version of this patch will
eventually be committed.

This reverts commit 439c099124.
2023-02-01 00:12:14 +01:00
Jean-Marc Lasgouttes
1081893e97 Fixup 0fed10e4: make sure redraw happens as needed
This commit had had an additional not documented change: redraws
happen only when they are needed. This did not help fix the bug, but
looked smart on first sight. Alas, I find that these smart changes
added because "why not?" tend to come back to haunt me eventually.

In particular this case, the problem was that the code tested whether
the offset of anchor paragraph had changed, but not whether the
paragraph itself had changed. This means that, when switching from one
section to another with the outliner, the view was not updated.
2023-02-01 00:09:49 +01:00
Daniel Ramoeller
439c099124 Extended comment and indentation for source code
- automatically inherit indentation from previous block
- (un)indent blocks
- (un)comment blocks
- add feature to show tabs and spaces
2023-02-01 00:09:49 +01:00
Juergen Spitzmueller
2371bfdf15 Fix font combos with Qt6 (#12630)
Use CategorizedCombos methods to properly access the model
2023-01-30 08:46:36 +01:00
Juergen Spitzmueller
b260ff8b27 Allow to hide categories in CategorizedCombo
font combos do not need that
2023-01-30 08:45:58 +01:00
Enrico Forestieri
d213df2f2e Amend 891ba726
Avoid an assertion when the cursor is at the start of a math hull.
2023-01-29 18:32:23 +01:00
Enrico Forestieri
07150cd928 Amend 16e67d4e
A docstring is not 0-terminated...
2023-01-27 21:10:02 +01:00
Enrico Forestieri
16e67d4ebb Fix bug #12633
Avoid recursion when validating a macro that is defined recursively.
This avoids a crash but the latex engine will choke on it, of course.
2023-01-27 20:34:24 +01:00
Scott Kostyshak
2ccaefa8a1 Fix -Winconsistent-missing-override
Fix the following warning:

src/frontends/qt/GuiDocument.h:377:7: error: 'eventFilter' overrides a member function but is not marked 'override' [-Werror,-Winconsistent-missing-override]
        bool eventFilter(QObject * sender, QEvent * event);
             ^
/usr/include/x86_64-linux-gnu/qt5/QtCore/qobject.h:139:18: note: overridden virtual function is here
    virtual bool eventFilter(QObject *watched, QEvent *event);
                 ^

Amends 62413580de.
2023-01-25 10:56:40 -05:00
Daniel Ramöller
62413580de Fix bug #12061. 2023-01-23 18:05:26 -05:00
Thibaut Cuvelier
fca8e54289 InsetMathHull: add a missing const (plus strange indentation fixed). 2023-01-22 02:45:25 +01:00
Thibaut Cuvelier
d066a66a51 MathML: make InsetMathHull::mathmlize easier to read while doing less work
If `havetable == true`, a lot of the code didn't make any sense: in particular, it was outputting a level of <m:mrow> too many.

Also, add some comments and rewrite the comment about mlabeledtr.

Contributed by lynx: https://www.lyx.org/trac/ticket/12629
2023-01-22 01:49:03 +01:00
Thibaut Cuvelier
e7d57338b9 InsetMathHull: replace 0 by nullptr. 2023-01-22 01:25:03 +01:00
Thibaut Cuvelier
bf0da33c9a MathML: use standard {M/E}Tag{,Inline} instead of bespoke constructs
Also, replace lspace='thinmathspace' by constructs that are not deprecated.

Contributed by lynx: https://www.lyx.org/trac/ticket/12629
2023-01-20 02:56:55 +01:00
Thibaut Cuvelier
598c6a0a87 MathML in HTML: in case of conversion failure, add a comment 2023-01-20 02:45:35 +01:00
Thibaut Cuvelier
f9fd652aae MathML: improve formatting of formula in XHTML hull
Contributed by lynx: https://www.lyx.org/trac/ticket/12629
2023-01-20 02:45:35 +01:00
Thibaut Cuvelier
0c227d3dfa MathML: remove extraneous <mrow> in fractions
Contributed by lynx: https://www.lyx.org/trac/ticket/12629
2023-01-20 02:30:43 +01:00
Thibaut Cuvelier
66fab70388 MathML: replace HTML entities with XML ones in more places
This part should have been committed with bc73a857 in the first place.
2023-01-20 02:25:37 +01:00
Thibaut Cuvelier
5f7c26fbe5 MathML: remove useless code
Contributed by lynx: https://www.lyx.org/trac/ticket/12629
2023-01-20 02:19:33 +01:00
Juergen Spitzmueller
d213b72978 Introduce pkglist format
This allows us to check and reconfigure if the pkglist format is not
current
2023-01-14 10:45:57 +01:00
Thibaut Cuvelier
861af2b84f LyXHTML: remove meta content-type, it is only for HTML5, not XHTML5 (LyX is generating XML-compatible HTML, i.e. XHTML5). 2023-01-11 01:12:22 +01:00
Thibaut Cuvelier
fb70f89983 InsetTabular LyXHTML: fix wrong escape. 2023-01-11 00:26:28 +01:00
Jean-Marc Lasgouttes
8ec3397da3 Correct the description of Lexer::getLongString
The fact that it does not work with tabs has been fixed long ago.
2023-01-10 16:25:48 +01:00
Jean-Marc Lasgouttes
6093e7d661 Fix warning
This was:
../../master/src/mathed/InsetMathBox.cpp:116:20: warning: comparison of integer expressions of different signedness: ‘int’ and ‘std::vector<std::__cxx11::basic_string<wchar_t> >::size_type’ {aka ‘long unsigned int’} [-Wsign-compare]
  116 |  for (int i = 0; i < parts.size(); i += 2) {
      |                  ~~^~~~~~~~~~~~~~
../../master/src/mathed/InsetMathBox.cpp:120:20: warning: comparison of integer expressions of different signedness: ‘std::vector<std::__cxx11::basic_string<wchar_t> >::size_type’ {aka ‘long unsigned int’} and ‘int’ [-Wsign-compare]
2023-01-09 16:06:38 +01:00
Daniel Ramoeller
f608328059 Allow multiple selections in the file open dialog
Fix for bug #4315.
2023-01-09 15:52:33 +01:00
Juergen Spitzmueller
689962b8d5 Fix grammar in, and try to clarify, warning
I suppose many users won't know what a "python interpreter" is and how
they could install one.
2023-01-09 07:28:49 +01:00
Thibaut Cuvelier
9ae793c607 LyXHTML: avoid using v/align HTML attributes in tables, they are deprecated (like most attributes for td).
Also implement alignment at character in CSS.
2023-01-09 04:04:57 +01:00
Thibaut Cuvelier
1f370a3353 LyXHTML: avoid using v/align HTML attributes in tables, they are deprecated (like most attributes for td).
Also implement alignment at character in CSS.
2023-01-09 01:50:05 +01:00
Thibaut Cuvelier
1b09bc965d InsetMathBox: remove debugging code. 2023-01-09 01:11:52 +01:00
Thibaut Cuvelier
24cda9e94a Amend 2d56c01dcf 2023-01-08 22:51:01 +01:00
Thibaut Cuvelier
2d56c01dcf InsetIndex: make a condition more bullet-proof, a nullptr could be dereferenced.
Error noticed by Coverity:

*** CID 382777:  Memory - illegal accesses  (RETURN_LOCAL)
/home/lasgoutt/src/lyx/coverity/lyx/src/insets/InsetIndex.cpp: 1866 in _ZNK3lyx15InsetPrintIndex5xhtmlB5cxx11ERNS_9XMLStreamERKNS_12OutputParamsE()
1860
1861            // Collect the index entries in a form we can use them.
1862            vector<IndexEntry> entries;
1863            const docstring & indexType = params().getParamOr("type", from_ascii("idx"));
1864            for (const TocItem& item : *toc) {
1865                    const auto* inset = static_cast<const InsetIndex*>(&(item.dit().inset()));
>>>     CID 382777:  Memory - illegal accesses  (RETURN_LOCAL)
>>>     Using "indexType", which points to an out-of-scope temporary variable of type "lyx::docstring const".
1866                    if (item.isOutput() && inset->params().index == indexType)
1867                            entries.emplace_back(IndexEntry{inset, &op});
1868            }
1869
1870            // If all the index entries are in notes or not displayed, get out sooner.
1871            if (entries.empty())
2023-01-08 22:19:39 +01:00
Thibaut Cuvelier
b42269f065 InsetIndex: remove unused code that created Coverity errors. 2023-01-08 22:17:02 +01:00
Thibaut Cuvelier
6e4cf808da InsetIndex: add a missing destructor for IndexNode and call it from xhtml() to avoid leaking resources.
Corresponding Coverity finding:

** CID 382778:  Resource leaks  (RESOURCE_LEAK)
/home/lasgoutt/src/lyx/coverity/lyx/src/insets/InsetIndex.cpp: 1909 in _ZNK3lyx15InsetPrintIndex5xhtmlB5cxx11ERNS_9XMLStreamERKNS_12OutputParamsE()

________________________________________________________________________________________________________
*** CID 382778:  Resource leaks  (RESOURCE_LEAK)
/home/lasgoutt/src/lyx/coverity/lyx/src/insets/InsetIndex.cpp: 1909 in _ZNK3lyx15InsetPrintIndex5xhtmlB5cxx11ERNS_9XMLStreamERKNS_12OutputParamsE()
1903            }
1904
1905            xs << xml::EndTag("ul");
1906            xs << xml::CR();
1907            xs << xml::EndTag("div");
1908
>>>     CID 382778:  Resource leaks  (RESOURCE_LEAK)
>>>     Variable "index_root" going out of scope leaks the storage it points to.
1909            return ods.str();
1910     }
1911
2023-01-08 22:03:36 +01:00
Thibaut Cuvelier
e70cdfd3a2 InsetMathBox: split the boxed text into <mtext> and other tags, while boxing the whole inset within an <mrow>.
Rationales:
- previously, <mstyle> was used, but it's being deprecated for MathML 4 Core in favour of CSS and <mrow> (not a big deal in itself)
- the whole box cannot be hosted within the same tag, because neither <mstyle> nor <mrow> can have text, they need an intermediate container, <mtext> (which cannot hold anything else that pure text)
- new behaviour: always output a container for the whole box that has the right attributes, i.e. an <mrow>; split the content of the cell to have text and other tags set apart (text in <mtext>, other tags left as they were)

Old behaviour, invalid MathML (2 to 4):
<mstyle XXX>text<mn>.</mn></mstyle>

New behaviour, valid MathML:
<mrow XXX><mtext>text</mtext><mn>.</mn></mrow>
2023-01-08 02:36:48 +01:00
Thibaut Cuvelier
d3c81eb2cb InsetMathBox: fix strange indentation (mix of spaces and tabs). 2023-01-08 00:51:43 +01:00
Thibaut Cuvelier
edcaad2419 MathML: convert InsetMathBox as <m:mtext>.
The inset represents text (as opposed to maths in formulae). <m:mstyle> is used to give style to its children, it is not supposed to have any contents on its own.
2023-01-08 00:50:29 +01:00
Thibaut Cuvelier
6a3bd64032 LyXHTML: use a lower-case meta for generator, this is the most common convention. 2023-01-07 16:24:57 +01:00
Thibaut Cuvelier
a5c6215ebd LyXHTML: add a missing space in the content-type annotation. 2023-01-07 16:23:56 +01:00
Thibaut Cuvelier
fb4a26577e LyXHTML: don't explicitly mention that the style is CSS, HTML5 doesn't like it. 2023-01-07 03:42:11 +01:00
Thibaut Cuvelier
fd2078f3aa LyXHTML: remove the double specification of charset.
The choice of content-type is arbitrary.
2023-01-07 03:36:57 +01:00
Thibaut Cuvelier
cabb12ba51 LyXHTML: fix the content-type attribute, it must be lower case (enforced for HTML5). 2023-01-07 03:33:48 +01:00
Thibaut Cuvelier
26e6b1c209 LyXHTML and DocBook: encode language codes as BCP47. 2023-01-07 03:31:40 +01:00
Thibaut Cuvelier
3cf8ced72e Make formatting of DocBook changes more similar to surrounding code.
Spaces between if and condition.
2023-01-07 02:56:40 +01:00
Jean-Marc Lasgouttes
9dd716da3a Row breaking: keep unused tail for later (instead of assertion)
Instead of asserting when there are unprocessed row elements (which,
as I understand it, should almost never happen), play safe and keep
them for later processing.

Related to bug #12617.
2023-01-06 16:02:29 +01:00
Jean-Marc Lasgouttes
cb3de88cc4 Fixup dcef1a9c: better handling of front-of-string splitting
When splitting a string leads to a break before the first character, the
best is to declare that splitting failed.

Fixes bug #12617.
2023-01-06 15:56:54 +01:00
Scott Kostyshak
bee08b19ee Typo in a comment 2023-01-05 23:33:16 -05:00
Stephan Witt
bbc2270972 #12523 check for existence of usable Python interpreter
- present appropriate alert message in case of missing Python
- add the option to quit LyX immediately
- recheck for Python interpreter on reconfigure if it was missing
2023-01-06 00:32:09 +01:00
Jean-Marc Lasgouttes
7c5bad56c4 Add information to Row::operator<< 2023-01-05 11:56:56 +01:00
Richard Kimberly Heck
30189332c8 Fix minor bug mentioned in #10827 2023-01-04 23:23:30 -05:00
Richard Kimberly Heck
04025d0259 Fix compilation problem 2023-01-04 23:04:02 -05:00
Scott Kostyshak
09e25ca5b7 Fix compiler warning -Wstring-plus-int
Similar to d44eaa97.
2022-12-29 16:25:42 -05:00
Juergen Spitzmueller
38c118b02d Fix output of tex2lyx messages in runtests.py 2022-12-29 15:10:05 +01:00
Juergen Spitzmueller
a5115d4e4a tex2lyx: Also factor out error and debug messages 2022-12-29 09:37:00 +01:00
Scott Kostyshak
d44eaa9713 Fix compiler warning -Wstring-plus-int
Warning was as follows:

  src/tex2lyx/Parser.cpp:898:39: error: adding 'uint32_t' (aka 'unsigned int') to a string does not append to the string [-Werror,-Wstring-plus-int]
                  warning_message("ignoring a char: " + static_cast<uint32_t>(c));
                                  ~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~
  src/tex2lyx/Parser.cpp:898:39: note: use array indexing to silence this warning
                  warning_message("ignoring a char: " + static_cast<uint32_t>(c));
                                                      ^
                                  &                   [                         ]
  1 error generated.
2022-12-28 21:58:30 -05:00
Juergen Spitzmueller
9ecc30174a Factor out tex2lyx warnings and add -q option (#11328) 2022-12-28 16:29:38 +01:00
Juergen Spitzmueller
9047d60c5a tex2lyx: exit earlier if input file could not be found
In particular, do not write an empty .lyx file (#12339)
2022-12-28 14:05:23 +01:00
Juergen Spitzmueller
992e3aec88 Support suffix-less tex file input in tex2lyx (#12340) 2022-12-28 13:35:12 +01:00
Thibaut Cuvelier
7a67302c01 Amend febd1855eb: fix compilability 2022-12-28 12:57:45 +01:00
Juergen Spitzmueller
abe7adc8af Update tex2lyx tests again 2022-12-28 12:32:39 +01:00
Juergen Spitzmueller
b3a1caa9b9 Update tex2lyx tests after 7868929aac 2022-12-28 12:32:39 +01:00
Juergen Spitzmueller
32b5d253d1 tex2lyx: consider utf8 default encoding in newer LaTeX 2022-12-28 12:32:39 +01:00
Juergen Spitzmueller
2dafc6af0d Fix indentation 2022-12-28 10:58:36 +01:00
Juergen Spitzmueller
7868929aac tex2lyx: put adjacent comment lines in one ERT inset (#4797) 2022-12-28 09:40:22 +01:00
Thibaut Cuvelier
8b5bfa971b Amend febd1855eb: fix compilability of tex2lyx 2022-12-28 02:33:11 +01:00
Thibaut Cuvelier
4aeba17895 Fix a typo in a comment 2022-12-28 02:32:05 +01:00
Thibaut Cuvelier
febd1855eb XML: overhaul the tag-comparison operators.
First and foremost, this patch implements the latest best practices in C++ (i.e. comparison operators are not member functions).

The main objective of this rewrite is to have these operators callable in slightly more general contexts (*this->asFontTag() == *rhs.asFontTag() yielded an error because no member function could be called). This feature is no more required.

The rewrite took place in the context of https://www.lyx.org/trac/ticket/12585. The first iteration was using more complex code to circumvent XMLStream in DocBook (see details in the bug above and in the mailing list), while this one uses XMLStream fully. The bug was due to font tags being considered equal when they were not, due to the comparison done only on the XML tag and not on the actual font change (XML attributes can complement the tag for various font changes).
2022-12-27 16:52:51 +01:00
Thibaut Cuvelier
16a1aa9901 DocBook: add support for DocBookGenerateTitle.
The new parameter allows more flexibility when encoding some elements that have a poor mapping in DocBook, like theorems. The major use is to wrap the environment in a generic container, figure, which requires a title (but none is available).
2022-12-27 15:52:26 +01:00
Juergen Spitzmueller
69d54ff9d8 Master/Child: do not clean includeonly list while editing (part of #12470) 2022-12-27 15:36:36 +01:00
Juergen Spitzmueller
4c8a698a28 MasterChild.ui: Group radio buttons (part of #12470) 2022-12-27 15:10:37 +01:00
Thibaut Cuvelier
ed7072985e DocBook: for computing font changes, simplify code by removing state evolution from iteration to iteration. This surely makes the code slightly slower (although the compiler should be smart enough), but (much) easier to reason about. 2022-12-27 01:58:48 +01:00
Thibaut Cuvelier
2b03f0a2c1 DocBook: add some TODOs for the future. 2022-12-27 00:03:07 +01:00
Thibaut Cuvelier
e3eddd4cf9 Add comments about variable usage. 2022-12-26 20:57:44 +01:00
Thibaut Cuvelier
8b6ec979ff Fix a typo in a comment. 2022-12-26 20:57:24 +01:00
Thibaut Cuvelier
b2fdc04f96 InsetIPAMacro: implement the XHTML conversion, refactor plaintext and DocBook to share more code. 2022-12-26 20:54:36 +01:00
Thibaut Cuvelier
3839897c0f InsetMathExFunc: use XML entities instead of HTML in MathML.
This part should have been committed with bc73a857 in the first place.
2022-12-26 20:38:06 +01:00
Thibaut Cuvelier
9b80a5ba9e InsetMathSpace: use XML entities instead of HTML in MathML.
This part should have been committed with bc73a857 in the first place.
2022-12-26 20:35:26 +01:00
Thibaut Cuvelier
df025d15df InsetIPAMacro: refactor code between DocBook and XHTML. 2022-12-26 20:23:05 +01:00
Thibaut Cuvelier
21d1d917ba DocBook/HTML: use XML entities for spaces.
This part should have been committed with bc73a857 in the first place.
2022-12-26 19:11:41 +01:00
Juergen Spitzmueller
0c56f60535 Associate "run:" link types with "Other" 2022-12-26 13:19:52 +01:00
Juergen Spitzmueller
be25181d87 Disambiguate string 2022-12-26 11:24:29 +01:00
Juergen Spitzmueller
14d74c9578 Try to be more precise in the hyperlink type tooltips 2022-12-26 10:46:54 +01:00
Juergen Spitzmueller
d3b5905007 tex2lyx: support "Other" type 2022-12-26 10:40:39 +01:00
Juergen Spitzmueller
5f8e41dc9b GuiHyperlink: some minor fixes
* disambiguate "Other" label
* Add accelerator
* Add tooltip to "Other" widget
* Amend tooltip of "Web" widget (since "other" now seems to have taken
part of its function)
2022-12-26 10:13:51 +01:00
Thibaut Cuvelier
2592a36dae Amend bc73a85778
Missing return in `specialCharKindToXMLEntity`. Previously, the
functions that were merged into `specialCharKindToXMLEntity` did not
return any kind of error in case an unknown special character is met
(enumerated value). This behaviour is preserved.
2022-12-26 00:18:47 +01:00
Thibaut Cuvelier
ff2a2b2a8a DocBook: add a comment about the need for DocBook 5.2. 2022-12-25 20:48:26 +01:00
Thibaut Cuvelier
c77872f314 Cleanup following the removal of HTML entities
The remaining part that was not handled in the previous commit. It focuses on lib/symbols.
2022-12-25 20:48:14 +01:00
Thibaut Cuvelier
bc73a85778 LyXHTML: switch the doctype to (X)HTML5 and only output XML entities.
This is a new take on c8e2c17a that was reverted at da67bde61a due to entities no more recognised by the browsers. Corresponding thread on the mailing list: https://www.mail-archive.com/lyx-devel@lists.lyx.org/msg213179.html

This patch is a huge cleanup overall, by removing the distinction between HTML and XML entities (the latter arrived due to the DocBook support).

In InsetListingParams, I also changed the mechanism that relied on &quot; to use an XML entity to be consistent with the rest of the code, mostly in case someone looks for HTML entities and wonders why they are still there.
2022-12-25 20:48:14 +01:00
Thibaut Cuvelier
d85969b8b8 LyXHTML: give the language in the root tag. 2022-12-25 20:48:14 +01:00
Richard Kimberly Heck
3d2bedb160 typo 2022-12-25 12:50:54 -05:00
Richard Kimberly Heck
1413b509ac Update tex2lyx tests. 2022-12-25 12:49:42 -05:00
Richard Kimberly Heck
144cf4bb9a Allow an 'other' type for hyperlinks. Format change.
Also, perform the URL fixing magic for DocBook and XHTML.

As it was, it was impossible to enter e.g. "tel:" type links. Now
choosing the "Other" type just outputs the URL as given.

Also, the addition of "http" or "file" was not being done for
DocBook and XHTML. Now it is.
2022-12-25 12:45:48 -05:00
Juergen Spitzmueller
1e28965589 Do not wrap forceTLR in \L with babel and unicode engines
It does not seem to be needed, the \L macro is undefined, and there
does not seem to be an alternative.
2022-12-24 09:20:02 +01:00
Juergen Spitzmueller
064955b151 Used pressed() signal in status bar widgets (fixes #12613) 2022-12-24 07:20:39 +01:00
Juergen Spitzmueller
f06ddb2342 Fix signals 2022-12-23 16:07:47 +01:00
Juergen Spitzmueller
0bb25ee3cd \R and \L are not defined in babel with Xe/LuaTeX 2022-12-23 10:07:41 +01:00
Juergen Spitzmueller
d90484de0a Fix UI of document color selection
The coloring of push buttons does not work with all themes, so use a
dedicated widget.

Also, accelerators have been used multiple times.
2022-12-23 09:17:01 +01:00
Juergen Spitzmueller
7015d7db07 Mark "edit externally" button of preamble and local layout
while external editing is underway
2022-12-23 08:19:26 +01:00
Juergen Spitzmueller
d888d0d130 Inform user if panel or tab has invalid content (#10827)
This adds a warning icon to either the tab header or the panel stack
entry item if a widget on the panel/stack has invalid content.

Particularly helpful to get aware of such content on other tabs/panes
than the one currently selected.
2022-12-22 15:01:58 +01:00
Thibaut Cuvelier
4f314567b6 XML: improve formatting of error message for unrecognised tag type.
Before, there was always a space after the tag, even when there were no attributes. Now, the space is output conditionally, so that the output makes more sense.

Before, one space too many for the tag name (title), casting doubt on whether the code had this space hard coded or not:

<!-- Output Error: Unrecognised tag type 'para' for 'title ' -->

After, no such space:

<!-- Output Error: Unrecognised tag type 'para' for 'title' -->
2022-12-22 04:10:25 +01:00
Thibaut Cuvelier
43d096f647 DocBook: fix a typo in comments and improve docs. 2022-12-22 03:40:50 +01:00
Jean-Marc Lasgouttes
22c6fe8e0c Remove boolean arguments of scrollToCursor wih an enum
This makes the function inent more obvious. No change intended.

Related to bug #12491.
2022-12-21 18:47:33 +01:00
Jean-Marc Lasgouttes
0fed10e4c3 Simplify and hopely fix scrollToCursor
Remove some special cases that I do not really understand and
streamline the cases.

Also make sure that there is only one code path for centering.

Fixes bug #12491.
2022-12-21 18:47:33 +01:00
Pavel Sanda
b9da7617d8 * lfun doc 2022-12-21 18:29:05 +01:00
Juergen Spitzmueller
226ce75054 Add test 2022-12-20 06:04:29 +01:00
Juergen Spitzmueller
889be483cf Simplify test
Math is useful for something, after all...
2022-12-20 05:50:23 +01:00
Juergen Spitzmueller
9966b4be4a Adapt inset info to new version check 2022-12-19 17:42:49 +01:00
Juergen Spitzmueller
2e6ea5f613 Extend flexible version check to packages 2022-12-19 17:42:27 +01:00
Juergen Spitzmueller
029adfa28c Improve LaTeX version checking
Instead of having to add and individually test the versions to check
for, we store the current version and test on that with a specific
function isAvailableAtLeastFrom(package, year, month, day)

Currently only used for the LaTeX version, but could also be extended
for package versions.
2022-12-19 15:15:41 +01:00
Juergen Spitzmueller
41146030b6 Simplify output code 2022-12-19 11:09:50 +01:00
Juergen Spitzmueller
0c6d0a86b9 Remove unnecessary conversion 2022-12-19 10:55:28 +01:00
Juergen Spitzmueller
c2a324e242 Amend 9716e79624
If the main language does not require the inputenc package, but a
secondary language does, inputenc needs to be loaded as well
(without options)

Also simplify the code a bit.
2022-12-19 08:00:06 +01:00
Juergen Spitzmueller
4a3871f5db Add toolbar option to reset font + language settings (#12199) 2022-12-18 16:36:30 +01:00
Juergen Spitzmueller
97c9404b71 language reset should reset to the buffer language
not reset_language, which links to default_language, which is always
English.
2022-12-18 16:35:07 +01:00
Juergen Spitzmueller
005dc32e54 Disable non-functional insets in math (#4039)
... finishing 15 year old work of mine :-(
2022-12-18 15:12:21 +01:00
Juergen Spitzmueller
17634087ea Correct date 2022-12-18 14:17:46 +01:00
Juergen Spitzmueller
3d63b78d07 Correct counting 2022-12-18 14:17:29 +01:00
Juergen Spitzmueller
9fc190d61c Improve functions for bibliography managers (#8193)
- new function to list bibtex databases
- citation-insert returns the list of undefined keys
  if the request comes from the LyX server

Original patch from Benjamin Piwowarski (2012!).
Modified and updated by Riki Heck and myself.
2022-12-18 13:25:24 +01:00
Juergen Spitzmueller
9716e79624 inputenc only expects one option
File switches with documents are done via \inputencoding.
Other than with fontenc, these do not need to be laoded via options
beforehand.

Also, out current code loaded the additional languages' encoding last,
which might result in wrong encoding settings.
2022-12-17 15:14:47 +01:00
Juergen Spitzmueller
23a2920dae Remove preceding spaces 2022-12-15 08:39:52 +01:00
Richard Kimberly Heck
fdabd46e8e Fix shortcut 2022-12-12 17:36:07 -05:00
Richard Kimberly Heck
88f0a98b52 Fix bug #12609 2022-12-12 17:33:56 -05:00
Richard Kimberly Heck
bbe2ee10a4 Pronoun 2022-12-12 17:18:35 -05:00
Jean-Marc Lasgouttes
02783aec66 Revert "Remove left/right spacing around top/left buttons"
Let's try to find a better solution (see ticket #12335)

This reverts commit d2f23c303c.
2022-12-11 20:48:44 +01:00
Enrico Forestieri
e18709b176 Further amend fb7b7e52
This restores the previous behavior of runCommand().
When the child process could not be properly terminated the
error "RunCommand: could not terminate child process" was being
issued. However, in fb7b7e52 there was a misinterpretation
between this condition and the exit status of the child and
these two different errors were mixed up. They are now
disentangled again.
2022-12-11 15:06:22 +01:00
Juergen Spitzmueller
163844a6d0 Allow defaultfamily change with non_TeX fonts (#12608) 2022-12-11 14:47:13 +01:00
Enrico Forestieri
d7910e1870 Amend fb7b7e52
pclose() returns -1 only in specific cases, otherwise it returns the
exit status of the child, to be retrieved by the macro WEXITSTATUS.
2022-12-11 12:15:37 +01:00
Juergen Spitzmueller
c7c3b39413 Minor checkedLineEdit fixes
* Do not disallow application if an invalid widget is disabled
* Fix coloring of text
2022-12-11 10:01:09 +01:00
Daniel Ramoeller
bfff93d879 Restrict toolbar menu to toolbar
Partial fix for bug #11949.
2022-12-10 20:30:58 +01:00
Jean-Marc Lasgouttes
46992201b7 Add != operator to FuncRequest and special value FuncRequest::prefix
Use this value (and `unknown' where relevant)
2022-12-10 20:30:58 +01:00
Scott Kostyshak
9f7bbeadda Change Doc Settings "Edit" PB to "Edit Externally"
"Edit" by itself is not clear if the user doesn't already know what
it does.

This affects both the local layout tab and the LaTeX preamble tab.

Brief ML discussion here:

  https://www.mail-archive.com/search?l=mid&q=20221202193312.myfnuhuz6xcil6qt%40gary
2022-12-10 10:02:48 -05:00
Juergen Spitzmueller
7f1cb306f9 Warn if buffer is switched with unapplied document changes (#9369) 2022-12-10 14:28:46 +01:00
Thibaut Cuvelier
0e2513a0e8 Amend d4095dc0
Apostrophes were being converted inside code-like areas, like LilyPond insets. This patch fixes tests that started to fail:

  Processing `./60/lily-95ee389a.ly'
  Parsing...
  ././60/lily-95ee389a.ly:7:12: error: undefined character or shorthand: &
  \relative c
             &#8217;&#8217; {  g a b c}
2022-12-09 20:17:58 +01:00
Thibaut Cuvelier
5b7fbb4190 XHTML: support NONE as item tag when no item tag should be output.
This patch mimics a similar feature for DocBook (albeit not as pervasive).
2022-12-09 02:48:52 +01:00
Thibaut Cuvelier
6c22e32cee MathML: update code for InsetMathCases to newest classes.
Based on a commit from lynx <lorenzobertini97@gmail.com>

Part of bug #12590.
2022-12-09 01:49:19 +01:00
Thibaut Cuvelier
5893ea866e MathML: output substacks as grids.
Based on a commit from lynx <lorenzobertini97@gmail.com>

Part of bug #12590.
2022-12-09 01:48:14 +01:00
Thibaut Cuvelier
d4095dc0e6 Export ' (straight) as ’ (curly) in DocBook
This is similar to what LaTeX does in its output.

See the (long) discussion in ticket #11244. Port of ad3e6c69b2 for DocBook.

This patch requires delaying entire strings instead of just characters, so that the DocBook code path can be as similar to the XHTML one as possible.
2022-12-09 01:25:34 +01:00
Stephan Witt
deae5ea23a Follow-up for change a66ee4109e - guard Qt 5.4 code with version check 2022-12-08 18:05:37 +01:00
Stephan Witt
a66ee4109e Add OS version info to About box. 2022-12-07 00:08:11 +01:00
Jean-Marc Lasgouttes
f3f478c2fb C++11 compilation fix 2022-12-06 17:12:45 +01:00
Richard Kimberly Heck
c50f0b125d Add HTMLClass for InsetLayout as well. Layout format change. 2022-12-05 23:42:50 -05:00
Juergen Spitzmueller
a759fb7ae9 Update tex2lyx tests again 2022-12-05 18:01:31 +01:00
Juergen Spitzmueller
4d337e78ab Fix crash when inserting label before label in change tracking mode 2022-12-05 11:15:58 +01:00
Juergen Spitzmueller
6c904004b6 More refs sorting fixes
This now uses a Vector of pairs, which is more robust with non-unique
labels (e.g. in change tracking).
2022-12-05 09:45:40 +01:00
Juergen Spitzmueller
c715db4ae8 Amend 14b108fc22 2022-12-05 08:20:25 +01:00
Juergen Spitzmueller
dedcee9117 tex2lyx support for starred refs 2022-12-05 07:52:41 +01:00
Richard Kimberly Heck
e0e84eba01 Update tex2lyx tests 2022-12-05 01:09:05 -05:00
Juergen Spitzmueller
7a0c8f366d Typo spotted by Pavel 2022-12-05 06:47:52 +01:00
Richard Kimberly Heck
d4f2460ac4 Fix bug #11410.
Main part of patch from Daniel, adapted by me.
I also added the lyx2lyx code.
2022-12-04 18:33:58 -05:00
Jean-Marc Lasgouttes
ff1ddf6251 Fixup 71623b88: change semantics of "delete" LFUNs again
Instead of specifying "force" to disable the deletion protection
mechanism, invert the default so that "confirm" is needed to activate
it. The idea is to keep the lfun reasonable for scripting and add a
special argument for interactive use.

Document in release notes.

Update LFUN.lyx documentation

Update bind files.

Add conversion step to prefs2prefs_lfun.py.
2022-12-04 21:13:51 +01:00
Richard Kimberly Heck
7b5a5e524b Fix CSS output for lists.
Somehow that got committed before it was done. I guess I'm out of
practice...
2022-12-04 14:56:01 -05:00
Richard Kimberly Heck
5ac560cfa1 Add i, ii, iii, iv suffixes to CSS class as well in the case of itemizations 2022-12-04 14:34:29 -05:00
Richard Kimberly Heck
69a6c41b94 Introduce HTMLClass tag, to make it easier to give these. 2022-12-04 13:36:34 -05:00
Richard Kimberly Heck
6f4f7442ef Fix bug #11769 2022-12-04 12:51:47 -05:00
Richard Kimberly Heck
dfa87371f7 Use ranges 2022-12-04 12:06:48 -05:00
Richard Kimberly Heck
b37ac5807f Do not output label tags if there is no label 2022-12-04 12:01:42 -05:00
Richard Kimberly Heck
b9c52f20c7 Whitespace 2022-12-04 11:59:54 -05:00
Juergen Spitzmueller
3ec87be050 Fixup refs sorting
This has been broken at df59649a18
2022-12-04 16:21:14 +01:00
Juergen Spitzmueller
abd69b06f4 Fixup refs grouping
This has been broken at df59649a18
2022-12-04 15:32:47 +01:00
Daniel Ramoeller
7bdf372ecc Properly reset on ESC key on LayoutBox/CategorizedCombo
Fix for bug #12497.
2022-12-04 13:45:49 +01:00
Juergen Spitzmueller
891ba7263e Workaround for #11676
Avoid the crash we get with this combination. Having identified the real
cause would of course have been better. But it seems no one has a clue.
2022-12-04 11:09:00 +01:00
Richard Kimberly Heck
3eb3608138 Fix bug #11418.
Add new HTMLInToc layout tag: When false, the thing will not be output
to the TOC. It's now set to false for starred sections.
2022-12-04 00:33:14 -05:00
Richard Kimberly Heck
eb949f1d05 Use ranges 2022-12-04 00:02:51 -05:00
Richard Kimberly Heck
9f258704ae Use a couple ranges 2022-12-03 23:33:44 -05:00
Richard Kimberly Heck
fc6643e4aa Fix bug #11853 2022-12-03 23:03:33 -05:00
Richard Kimberly Heck
233ce1ec12 Partially fix bug #10827. Patch from Daniel, slightly modified by me. 2022-12-03 22:44:05 -05:00
Juergen Spitzmueller
c4b1f7b31c Some string fixes in compare UI 2022-12-03 15:21:15 +01:00
Juergen Spitzmueller
592f21aafd Update tex2lyx tests
This was forgotten at the latest file format change
2022-12-03 08:42:33 +01:00
Scott Kostyshak
c7269ffa86 Comment 2022-12-02 19:34:36 -05:00
Scott Kostyshak
a41b866e60 Line width 2022-12-02 19:29:04 -05:00
Scott Kostyshak
6f9cfdea7e Comment
Jürgen confirms that the behavior in #8493 is present with Qt6.
2022-12-02 19:28:10 -05:00
Juergen Spitzmueller
14b108fc22 Check encodability of math user macro names (#11855) 2022-12-02 11:23:32 +01:00
Juergen Spitzmueller
ac58a5060e Revert e500dc19c1
More general fix is upcoming.
2022-12-02 11:21:15 +01:00
Juergen Spitzmueller
e500dc19c1 Do not crash with uncodable character in math preview snippert (part of #11855) 2022-12-01 16:01:38 +01:00
Jean-Marc Lasgouttes
9376f0203d Merge branch 'killqt4'
Remove all trace of Qt4 support. The different elements have been
considered carefully before removal.

The only changes that need to be done concern Windows and macOS
compilation instruction and will need to be taken care of by the
respective maintainers before prerelease.

The file TODO.killqt4 lists what remains to be done.
2022-11-28 15:19:41 +01:00
Pavel Sanda
d82247985a * RELEASE-NOTES 2022-11-28 11:09:37 +01:00
Yuriy Skalko
7b23c76b71 Add "semantic linefeeds" after punctuation marks.
We already had such breaks for dot.

File format change.
2022-11-28 11:58:53 +02:00
Jean-Marc Lasgouttes
ec767f02a0 Support macros from hepnames and hepparticles packages
This macros are important for particle physicists. Note that the
package hepparticles as distributed in recent texlive does not work
(see #11804) and need to be patched. This is however not something we
can do, and any physicist wanting to use this will have patched his
own version I guess.

I contacted Andy Buckley, the author of the package, who answered that
he is aware of the issue but does not have time right now to fix it.
The workaround is straightforward: on line 176 of hepparticles.sty,
replace "\updefault" by "n".

Two parts:
- add *lots* of definitions to lib/symbols
- add hepparticles and hepnames as simple features in LaTeXFeatures.

The definitions are courtesy of @renyhp, and extracted from the
aforemented packages:
https://www.ctan.org/pkg/hepparticles
https://www.ctan.org/pkg/hepnames

Fixes bug #11804.
2022-11-27 19:47:02 +01:00
Richard Kimberly Heck
2c7f229b06 Fix bug #11917. Patch from Daniel. 2022-11-27 13:24:13 -05:00
Richard Kimberly Heck
5db9e91f16 Fix bug #11781. Patch from Daniel. 2022-11-27 13:20:17 -05:00
Daniel Ramoeller
2d01fcd079 Activate another tab group (aka split view)
Bind the new functions tab-group-next/previous to F6/S-F6 in CUA bindings.

Fix for #12115.
2022-11-27 18:52:05 +01:00
Juergen Spitzmueller
315d347d3e Include he/cua.bind (#12052)
To allow for its use, we add support to include a bind file from the
top dir (i.e., non-localized) via \bind_file ../<file>
2022-11-27 16:30:21 +01:00
Scott Kostyshak
6d4ab79917 Effectively disable the "Stop command?" dialog
We now allow the user to cancel the background process at any point
(via the red "x" in the status bar or Document > Cancel Export), so
we do not need to poll the user with the dialog.

The patch works by setting timeout to "-1" which is treated as a
special value to disable the poll.

Fix (by obviation) #12531 and #9953, which were about the dialog.
2022-11-25 10:25:40 -05:00
Scott Kostyshak
68c7953422 Change os::timeout from minutes to milliseconds
We can now specify the special value of "-1" milliseconds which is
interpreted as disabling the timeout.

No change of functionality intended.
2022-11-25 09:51:30 -05:00
Jean-Marc Lasgouttes
cd5fe091d2 Stephan has checked that caching is still needed on macOS
Basically removing the cache makes getTextLayout 17x more expensive on
a simple test of scrolling through the Tutorial.
2022-11-25 12:44:56 +01:00
Jean-Marc Lasgouttes
c24233e3f1 Improve replacement for qDegreesToRadians
This is for Qt 5.0.X compatibility.
2022-11-25 00:07:37 +01:00
Pavel Sanda
833def44eb makefile - forgotten file 2022-11-24 02:17:26 +01:00
Scott Kostyshak
3b30dbfca4 Centralize cancelation of export
An export can be canceled by clicking on the status bar icon or by
executing export-cancel (e.g., via Document > Cancel Background
Process).

The centralized code kills the script and updates the status bar
icons.

No change in functionality intended.

Related commits: 70a71a82 and 01abab9a.
2022-11-22 14:55:26 -05:00
Scott Kostyshak
01abab9ad9 After export-cancel, hide busy and cancel buttons
This is consistent with 70a71a82 (which is about the code path
through clicking on the 'x' status bar icon).

In the next commit I'll make a function to centralize this sequence
of killing a script and emitting the scriptKilled() signal.
2022-11-22 14:30:52 -05:00
Scott Kostyshak
70a71a824b After confirm cancel, hide busy and cancel buttons 2022-11-22 14:24:11 -05:00
Juergen Spitzmueller
f155e103d3 Cleanup mathes/BUGS (#3493)
This one is now also part of #12603.
2022-11-22 10:18:43 +01:00
Juergen Spitzmueller
1383276156 Cleanup mathes/BUGS (#3493)
This one is now #12603.
2022-11-22 10:16:29 +01:00
Juergen Spitzmueller
73156d88f2 Cleanup mathes/BUGS (#3493)
Removing. If this is still an issue, it should be described in much
more detail.
2022-11-22 10:12:06 +01:00
Juergen Spitzmueller
26f6aa465e Cleanup mathes/BUGS (#3493)
Removing. M-c e has a different meaning nowadays
(tabular-feature delete-vline-left)

Please file a new report with an updated description if this is still
an issue.
2022-11-22 10:09:16 +01:00
Juergen Spitzmueller
1d6ea2c711 Cleanup mathes/BUGS (#3493)
This one is now #12602.

Someone please check whether this is valid, and feel free to close.
2022-11-22 10:03:25 +01:00
Juergen Spitzmueller
b77b9d1565 Start to cleanup mathes/BUGS (#3493)
This one is implemented.
2022-11-22 09:59:01 +01:00
Juergen Spitzmueller
869247b617 Add button to stop processing
(rather than having it stop by clicking on the spinner)
2022-11-21 18:56:28 +01:00
Enrico Forestieri
1ac2dc2082 Do not allow nesting macro names in macro names
LyX removes a single backslash when it is inserted in a
macro name by the keyboard. However if it is followed by
another character before moving the cursor, it is retained
causing an assertion (bug #12601).
2022-11-21 18:24:29 +01:00
Jean-Marc Lasgouttes
593bfe248a Substack should not be allowed to change columns
Disable the arguments append-column and delete-column of tabular-features.

The code is taken from InsetMathCases, with some changes
* no need to record undo here
* in dispatch, return is prefered to break, since we do not want to invoke
  InsetMathGrid::doDispatch.
Propagate these changes to InsetMathCases.

Cleanup of the InsetMathCases error messages to fit with other parts
of the code.

The handling of tabular-features in mathed needs to be unified somehow.

Based on a commit from lynx <lorenzobertini97@gmail.com>

Part of bug #12590.
2022-11-21 12:08:17 +01:00
Kornel Benko
43d506b104 Amend(2) 580dea63: get rid of Qt4 code also in cmake build 2022-11-21 09:31:48 +01:00
Jean-Marc Lasgouttes
7d196fea77 Fix handling of codepoints 9, 10, 12, 13
Qt >= 5 refuses to display them. We work around this in lib/symbols
already, but make sure we do not try to display math glyphs at these
code points anyway.

Fixes bug #8493.
2022-11-20 20:53:55 +01:00
Enrico Forestieri
a11780b59f Do not allow pasting backslashes in macro names
Backslashes are not allowed in macro names and LyX
enforces this by not allowing entering them by keyboard.
However, it was possible to paste them and this may cause
crashes (see bug #12596).
2022-11-20 19:01:38 +01:00
Juergen Spitzmueller
e26a60edef Regenerate previews after zoom (#11919) 2022-11-20 18:18:59 +01:00
Thibaut Cuvelier
f3862130cf Amend 48d9d01a: remove debug output 2022-11-20 16:19:31 +01:00
Thibaut Cuvelier
48d9d01a82 InsetIndex: when building the IndexNode tree, ignore IndexEntry when empty
The previous code always considered it had at least one term (an assumption that is wrong at least for doc/de/Math.lyx).
2022-11-20 14:49:14 +01:00
Thibaut Cuvelier
77f0fbdc9a InsetIndex: enable escaping for terms in the index
The previous code explicitly disabled it and this behaviour caused problems (like "A&A" being output as-is, which is wrong in HTML: it should be "A&amp;A").
2022-11-20 00:19:53 +01:00
Thibaut Cuvelier
e9f21f2e83 InsetIndex: improve formatting of resulting XHTML
There was no line feed before the closing </li> for entries, which was inconsistent with the other block tags.
2022-11-20 00:14:43 +01:00
Jean-Marc Lasgouttes
546efc3ff1 Remove a workaround that seems to be useless since Qt 4.8 2022-11-19 20:09:59 +01:00