Commit Graph

28474 Commits

Author SHA1 Message Date
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
Jean-Marc Lasgouttes
e11c7cb71d Remove all uses of Q_WS_* macros
They are only defined with Qt4.
2022-11-19 19:53:28 +01:00
Jean-Marc Lasgouttes
a3327f576c Get rid of setSectionResizeMode helper functions. 2022-11-19 15:04:38 +01:00
Jean-Marc Lasgouttes
11369131ee Remove workaround that was needed only by Qt4 2022-11-19 14:58:50 +01:00
Jean-Marc Lasgouttes
0f8b4e36d8 Remove old workaround that was needed for Qt 4.2
Jürgen believes that this is not needed anymore.
2022-11-19 14:55:33 +01:00
Jean-Marc Lasgouttes
ac248e392d Get rid of Qt4 code in src/
Qt4 code has been identidifed by
  git grep -l 'QT_VERSION.*\(0x050000\|0x04\)' src

Uses of QT_VERSION_CHECK have been checked too.

been used to remember what places need further work.

Then remaining Qt4 references have been searched using
  git grep -i qt4
  git grep -i 'qt 4'
and relevant issues have been either fixed or noted in the new
TODO.killqt4 file.
2022-11-18 17:19:50 +01:00
Pavel Sanda
d984730235 Drop C++17 if init-statements to support older compilers. 2022-11-16 21:23:01 +01:00
Jean-Marc Lasgouttes
94e7421a0a Fix compilation with gcc 4.9
It appears that gcc 4.9 does not implement the following part of C++11:
https://cplusplus.github.io/CWG/issues/1148.html

Therefore, we have to use a special case in C++11 mode that does an
explicit std:move.

With recent compilers (gcc >= 9), this leads in C++11 mode to a warning:

MetricsInfo.cpp: In member function ‘lyx::Changer lyx::MetricsBase::changeFontSet(const string&)’:
../../master/src/MetricsInfo.cpp:83:13: warning: redundant move in return statement [-Wredundant-move]
   83 |  return move(rc);
      |         ~~~~^~~~
MetricsInfo.cpp:83:13: note: remove ‘std::move’ call

Partly reverts commit fff28c57.
2022-11-16 17:49:52 +01:00
Jean-Marc Lasgouttes
12bff77722 Merge branch 'breakspace'
This branch improves handling of spaces on display (see #10117):
* caret is correctly shown in the middle of double spaces in justified rows;

* sequence spaces are correctly shown at the end of rows before
  automatic row breaks.

Moreover, this branch:
* streamlines the code that handles spaces in row breaking

* improves display in Qt4 : although the improvements outlined above
  are not present in Qt4 for monospaced fonts, some dsplay glitches
  are resolved.

* improves performance for very long paragraphs (#12598).
2022-11-16 10:22:11 +01:00
Juergen Spitzmueller
5bf7f938a4 Fix tex2lyx corner case (#12537) 2022-11-11 08:12:14 +01:00
Jean-Marc Lasgouttes
50e1bdf320 (almost) Fix Qt4 support
When is it detected that our zero-width characters are not really
zero-width, avoid to use them altogether. Currently, this is known to
happen in Qt4 with monospace fonts.

This allow to remove the special Qt4 code in breaskString_helper.

Related to bug #10117.
2022-11-10 17:27:45 +01:00
Jean-Marc Lasgouttes
23cd38bc1c Use TextLayoutHelper in x2pos and pos2x
This leads to substantial code simplification.

No intended behavior change.

Related to ticket #10117.
2022-11-10 16:13:29 +01:00
Jean-Marc Lasgouttes
7fdc604606 Refactor GuiFontMetrics::getLayout
This allows to create a new version that takes an already built
TextLayoutHelper struct as parameter.

No intended change.

See discussion in bug #10117.
2022-11-10 16:13:28 +01:00
Jean-Marc Lasgouttes
201c95a76e Handle multiple spaces at row break
In order to work around the Qt row breaking algorithm, which considers
multiple spaces as one at QTextLine break, we insert word_joiner unicode
characters beteween each pair of spaces.

The TextLayoutHelper class makes it easy to handle that.

Update Row::Element::rtrim() to only remove one space at row end.

Update support::countExpanders() to count all spaces, without special
handling for consecutive ones.

Fixes bug #10117.
2022-11-10 15:21:02 +01:00
Jean-Marc Lasgouttes
a48efa03b1 Introduce a struct to handle docstring <-> QString index translation
This new code allows to get rid of some hardcoded stuff and will be a
foundation for handling of consecutive spaces.

This code can be used in the future for getTextLayout, x2pos, and
pos2x in order to streamline code. Actually some features as the naked
parameter are here to prepare for this second set of changes.

No change intended. The modified code is much clearer, though.

Related to bug #10117.
2022-11-10 12:06:15 +01:00
Jean-Marc Lasgouttes
a99f76477d Revert "Fixup 572b06d6: reduce cache size for breakString"
10MB cache is not so large after all, and it can be helpful with
Scott's perverse examples.

This reverts commit 2abe771407.

Fixes part of bug #12598.
2022-11-08 00:12:40 +01:00
Jean-Marc Lasgouttes
ec151de2cc Fix expensive thinko: operator++ returns a reference, not a copy
This accounts for 45% of the row breaking time on the (huge) paragraph
of the MWE in bug #12598.

Fixes part of bug #12598.
2022-11-08 00:12:40 +01:00
Jean-Marc Lasgouttes
90ea508111 Fix pasting as LaTeX in documents with no modules
When there is no module, the old code would invoke tex2lyx with option
 -m
instead of
 -m ""
and an error would ensue.

This is because the QProcess command line parser used in Systemcall is
broken and does not recognize empty parameters as such. The solution
is to rewrite our parsecmd() parser to generate a list of parameters.
This is post-2.4.0 work.

The workaround used here is:

- set the list of modules to "," when it should be empty. In effect,
  this is a list of two empty modules.

- change tex2lyx to accept empty module names and ignore them; this is
  good in terms of robustness anyway.

Additionally, when there is no receiving buffer, set the defaults as
the BufferParams defaults instead of empty (this is cleaner, but
should not make a difference in practice).

In the long term, we should switch to use the QStringList-based API of
QProcess in Systemcall (see QTBUG-80640).
2022-11-06 13:20:02 +01:00
Scott Kostyshak
378c19bfc2 Guard some debug code
Amend f352a375 and 3bf1b97a.
2022-11-05 14:35:27 -04:00
Juergen Spitzmueller
3bbce7f24a Introduce index-tag-all lfun
This is a convenience function for indexing. It adds a copy of the
index inset under cursor after any word in the buffer that is equal
(case-insensitively) to the word preceding the index inset.

The function can be easily used to generate bad indexes (and I warn
about that in the UserGuide), but if used with care, it can also be
extremely convenient.
2022-11-05 18:39:33 +01:00
Daniel Ramoeller
89394bcd0f Show suggestions containing the input in the command buffer
Previously, only the suggestions starting with the current input were
shown.

Contains the following minor improvements:
- Add space to indicate when only one suggestion is found

- Select first item in suggestion-list in order to make selecting with
  arrow keys more intuitive

- Fix selection with Shift+Up/Down in text-field

Fix for bug #12572.
2022-11-04 22:27:31 +01:00
Jean-Marc Lasgouttes
fad170be1a New lfun to copy index insets from ToC
The new function inset-insert-copy can only be invoked from the ToC.
It is currently only implemented for Index inset.

It is a special lfun because Inset::dispatch is called directly from
the ToC widget with cursor pointing to the inset, whereas the patch
happens in the workarea at caret position. This function cannot be
called directly.

Add an entry for this function in the toc context menu.

Fixes bug #4582.
2022-11-04 21:52:46 +01:00
Jean-Marc Lasgouttes
d2f05b9e6f When Inset::dispatch is called from TOC, process screen flags
This is needed because we are not using the complete dispatch
machinery here.

Part of bug #4582.
2022-11-04 21:46:32 +01:00
Jean-Marc Lasgouttes
0b27eb7deb Introduce new function copyInsetToTemp
This is a version of copyInset that does touch the cut stack and the X
selection.

Part of bug #4582.
2022-11-04 21:44:24 +01:00
Jean-Marc Lasgouttes
2c53f0315e Fix another use of unqualified std::move 2022-11-04 21:36:43 +01:00
Kornel Benko
2333af615d Amend 9be6a425, Workaround for advanced search in 'uncover'-inset.
Use getInset(i)->toString() instead of getInset(i)->plaintext()
if searching, so that we get the option of 'uncover' visible to the search engine.
2022-11-04 15:34:49 +01:00
Juergen Spitzmueller
68e268e117 Add some options to index context menu 2022-11-04 11:29:56 +01:00
Juergen Spitzmueller
55870df5c7 Do not \protect stuff in index when we postpone the index
\protect us not needed here and affects sorting
2022-11-04 08:32:34 +01:00
Juergen Spitzmueller
d41e0c9231 Fix page range without page format 2022-11-04 07:57:56 +01:00
Juergen Spitzmueller
975f304185 Indicate see[also] refs in label and outliner 2022-11-02 15:56:59 +01:00
Juergen Spitzmueller
293b8dbe67 Do not unnecessarily reset the outliner to TOC on internal model changes
The activated() signal is only issued on user changes, what we want here,
not internal model changes (as with currentIndexChanged())
2022-11-02 12:33:20 +01:00
Juergen Spitzmueller
b51f1f7800 Remove wrong count comment 2022-11-02 10:46:52 +01:00
Kornel Benko
9be6a425df Workaround for advanced search in 'uncover'-inset.
Allows for matches inside style Uncover if used
	Settings->Adhere to search string formatting
This does not cover all of #12594 though.
2022-11-02 10:33:29 +01:00
Juergen Spitzmueller
5a53a5f608 Fix output of subentry with sortkey 2022-11-01 11:55:57 +01:00
Juergen Spitzmueller
fd5adacef2 Handle empty index subentries (#7820) 2022-11-01 10:20:50 +01:00
Thibaut Cuvelier
3bf1b97ae5 InsetIndex: hide printTree behind a LYX_INSET_INDEX_DEBUG flag
The change ensures that the function is not seen by the compiler when
the debug mode is not enabled. The flag is not set by default, because
it might have a significant performance impact for large indices.

The reason for the flag is that the default configuration under Linux
forbids the definition of unused functions.
2022-11-01 00:00:37 +01:00
Juergen Spitzmueller
3c488c22e1 Update tex2lyx tests 2022-10-31 21:11:07 +01:00
Juergen Spitzmueller
ca89c6c18e Typo 2022-10-31 07:52:11 +01:00
Juergen Spitzmueller
077ccf905d Rename subindex to subentry
Makes more sense, and distinguishes it better from printsubindex
2022-10-31 06:51:38 +01:00
Juergen Spitzmueller
fba3dace9e Display subinsets in inset button and outliner 2022-10-31 06:04:13 +01:00
Juergen Spitzmueller
9dc9fa68ce Enter subindex on Enter in index 2022-10-31 05:25:04 +01:00
Juergen Spitzmueller
874f559bc7 Add last missing bit to insetindexmacros: file format change and lyx2lyx
The feature is now ready for primetime!
2022-10-29 15:11:11 +02:00
Juergen Spitzmueller
e39c755b85 Enable pagination property with inset sortkey 2022-10-29 12:48:45 +02:00
Juergen Spitzmueller
3a949b32f0 Merge branch 'master' into features/indexmacros 2022-10-29 11:42:14 +02:00
Juergen Spitzmueller
6415afc1fe Minor improvements to the screen width UI
* fix order of input and unit widgets
* remove redundant "Screen used" label
* Add tooltip
2022-10-29 11:17:22 +02:00
Scott Kostyshak
172e544e2c Whitespace 2022-10-28 18:28:31 -04:00
Jean-Marc Lasgouttes
a852423781 Revert "WIP: refactor Systemcall"
This reverts commit c8015878e1.

Committed by mistake obviously!
2022-10-28 18:04:45 +02:00
Jean-Marc Lasgouttes
6c2d4f9392 constify 2022-10-28 18:03:50 +02:00
Jean-Marc Lasgouttes
c8015878e1 WIP: refactor Systemcall
**WARNING; only compilation has been ested; even that does not work**

The goal of this commit is to use the list-based API to
QProcess::start, to avoid annoying syntax issues (see issues with
pasting from LaTeX).

* Create a new latexEnvironment() in filetools.h that returns a
  map<string, string> containing the variables and their values.

* Rewrite parsecmd() so that it returns a QStringList of tokenized parameters.

* Use this in startProcess. This is the part is is not finished yet.

Obviously, this will not be possible to get right for 2.4.0.
2022-10-28 17:21:33 +02:00
chillenb
22e5903bf3 adjust text display width in windowed mode 2022-10-27 17:49:43 +02:00
Jean-Marc Lasgouttes
4ce45a5bcd Remove unused method 2022-10-27 17:17:19 +02:00
Jean-Marc Lasgouttes
a559616cbd Revert "Always remove selection after cursor up/down"
This reverts commit 008a0825e8.

This commit was part of bug #12310. The goal was to remove the
selection when using "up" at the start of selection (so that the
cursor cannot move). Unfortunately, it creates navigation issues for
insets inside tabulars.

Since the fix was minor, the safest decision is to revert.

The part of ticket #12310 that resets selection with
char-forwars/backward when moving is not possible still works.

Fixes bug #12593.
2022-10-27 15:07:57 +02:00
Juergen Spitzmueller
b3b22b0c70 Sync with master 2022-10-26 10:52:21 +02:00
Jean-Marc Lasgouttes
fff28c5756 Always qualify calls to std::move()
This quashes a new warning in clang++ 15, when std::move() (the
one-parameter version) is used as simply move(). There is a strong
recommendation from WG21 to avoid that.

Details here: https://reviews.llvm.org/D119670

It might be that we should not use that many move()s. I am not
competent to decide on that.

I also used this occasion to get rid of a spacial casing for C++11
that does not seem necessary after all.
2022-10-21 14:11:36 +02:00
Juergen Spitzmueller
647c7b1ac3 GuiLog: don't miss package warnings for packages with dashes
(e.g. scrlayer-scrpage)
2022-10-16 12:08:21 +02:00
Juergen Spitzmueller
d4d4654d63 Only load subscript package with LaTeX < 2005/12/01 (#12387) 2022-10-13 16:05:03 +02:00
Juergen Spitzmueller
ac3562dbc9 Need cellvarwidth also in left-aligned cells if they use newlines (#12587) 2022-10-11 16:01:29 +02:00
Juergen Spitzmueller
2c72884f26 GuiLyXFiles: differentiate user and system folders 2022-10-09 16:13:48 +02:00
Juergen Spitzmueller
0e4ca9aa88 GuiLyXFiles: Hide empty categories on filtering (#12584) 2022-10-09 16:01:49 +02:00
Juergen Spitzmueller
5ee0ba6403 GuiLyXFiles: Visually distinguish folders from files (#12584) 2022-10-08 16:45:52 +02:00
Jean-Marc Lasgouttes
49fee942cf Fix inline completion prefix for macro insets
As it was, the prefix was empty when completion popups were disabled.

Related to bug #12581.
2022-10-08 14:22:18 +02:00
Jean-Marc Lasgouttes
786a6edb54 Disable completion when document is read-only.
Being able to insert completion in a read-only document is definitely
a bad idea.

This patch acts both on indication of completion and on insertion
itself.

Fixes bug #12582.
2022-10-08 12:52:05 +02:00
Yuriy Skalko
8f43f83ddf Show branches from master document in branch inset dialog 2022-10-07 19:00:37 +03:00
Jean-Marc Lasgouttes
8508c3fe04 Completion: handle undo in insets' insertCompletion methods
I mathed, undo should record the underlying inset on completion,
whereas in test recording the paragraph is enough.

Therefore the recordUndo() in GuiCompleter::tab is removed, and the
relevant recordUndo/recordUndoInset are used at the right places.

As a further cleanup, the parameter `finished' of
Text::insertCompletion is removed as it is useless.

Fixes bug #12581.
2022-10-05 09:48:01 +02:00
Scott Kostyshak
300160df1c Whitespace 2022-10-03 20:43:54 -04:00
Enrico Forestieri
65b4c3fcd2 Fix bug #12580
This amends [4a7a1935/lyxgit]. Before 4a7a1935 it was assumed
that a labeled row was also numbered. Hence, when unnumbering
a row a label was also deleted. We now have to do this explicitly.
2022-10-02 14:59:03 +02:00
Scott Kostyshak
725168baba Fix gcc-12 warning
From Kornel:

>  /usr2/src/lyx/lyx-git/src/Paragraph.cpp:1931:1: warning: control reaches end of non-void
>  function [-Wreturn-type]
>
> This is with gcc-12, compiled in debug mode.
2022-09-24 21:05:38 -04:00
Jean-Marc Lasgouttes
bbaebd15ce Fix line breaking at trailing space
With a string like "abc def [inset]", it should be possible to break
between the "def" and the inset. A case of interest is when "abc def "
is too long, but "abc def" is not.

To this end, tweak the test that look whether breaking was successful:
the right width to look at is nscp_width, the width without the final
space.
2022-09-23 18:31:10 +02:00
Jean-Marc Lasgouttes
3bba2ad150 vocabulary 2022-09-21 19:29:52 +02:00
Jean-Marc Lasgouttes
2abe771407 Fixup 572b06d6: reduce cache size for breakString
This was necessary only due to bug #12534.

Reduce the size from 10Mb to 1Mb. Profiling shows that the cache hit rate
is the same.
2022-09-21 19:10:57 +02:00
Enrico Forestieri
90551a03ac Amend f426470a
The synctex option can also be specified by a single dash and
any value different from zero will do.
2022-09-14 20:10:01 +02:00
Jean-Marc Lasgouttes
8319bdbbbe Unify wording for statistics
Use 'no blanks' uniformly.

Also remove separator in zoom menu.
2022-09-13 12:42:28 +02:00
Daniel Ramoeller
974534f28a Disentangle status bar and zoom menu
- Moves the zoom menu to the zoom value
2022-09-13 11:49:41 +02:00
Pavel Sanda
e0b1cc902c * doxy 2022-09-06 22:12:25 +02:00
Thibaut Cuvelier
0bda6950e4 MathML: amend 26300c565f as discussed in bug 12513
Contributed by lynx
2022-09-02 02:00:12 +02:00