As such, it shall be protected in moving arguments, such as sections.
Fixes bug #10092.
(cherry picked from commit 86ee2699c30b63e5b4de3ad725519756d17aec2c)
Those two functions used two different hackish and buggy
implementation to know when the function is disabled. Replace that by
asking the containing inset whether it accepts inserting display math
inset.
Fixes bug #10033.
(cherry picked from commit de5630a1562054cb969b106e35f84bfe1e99002a)
The Reproducible Builds effort (https://wiki.debian.org/ReproducibleBuilds) in Debian (at least) means that 'ar' is built in deterministic mode as default: all timestamps are set to 0.
This is not compatible with the use of the 'u' flag, and therefore ARFLAGS has to be changed from 'cru' to 'cr'.
This gets rid of the harmless but annoying warning
ar: `u' modifier ignored since `D' is the default (see `U')
(cherry picked from commit 987fc1d15d017c192a566fc922e3967d9d280668)
When in a tabular cell, "this" is just a lone InsetText, while cur.inset() is the whole tabular. This makes a big difference, especially when one wants to count cells.
Fixes bug #9954.
(cherry picked from commit 4caf167dbd24722421ae8d94a2c103bf41a7667d)
We ensure that configure.py is called by python2, regardless whether 'python'
is python 2 or 3. Therefore we can simply call TeXFiles.py with the currently
running interpreter. This fixes configuration on systems where 'python' is
python 3.
The old name conflicted with the newly introduced Inset::isTable.
Now the meaning is as follows.
* Inset::isTable() is true when the inset is composed of lines and columns
* InsetMathHull::allowsTabularFeatures is true when the current type of hull allows for tabular-like functions.
(cherry picked from commit db39dc7ccd4c2dd14ef20547e6e3c056ba030d83)
inset-select-all has 3 levels
1. select current cell
2. select all cells
3. select inset from outside.
The second level makes sense for tables (text and math), but not for things like a math fraction.
Introduce a new method Inset::isTable() that allows to detect this case properly and skip level 2.
(cherry picked from commit 5de28b9ac6736c791146a1a3ebe7f4826c22a9b7)
Lyx files converted from 2.1 to 2.2 contain parbeak and latexpar separators that
would not appear if the lyx file was written in 2.2 from scratch. The script
removes latexpar separators and transforms parbreak separators into plain
separators. Then it displays a diff of the resulting pdf files (requires
diffpdf) for manual control. All lyx files shipped with lyx should be updated in
this way. See #10068.
example usage:
cd lib/doc
../development/tools/separator-convert.sh Math.lyx
The difference has been validated with diffpdf.
The following could not be tested and were left unchanged:
docbook_article.lyx
lilypond.lyx
linguistics.lyx
springer/sv*.lyx
de/linguistics.lyx
es/linguistics.lyx
ja/FeynmanDiagrams.lyx
ja/lilypond.lyx
ja/beamer.lyx
ja/xypic.lyx
The following is the script that I used (in lib/examples):
LYX=../../build/src/lyx
$LYX -E pdf2 $1.old.pdf $1
sed -i "s/^\\\\begin_inset Separator parbreak$/\\\\begin_inset Separator plain/" $1
sed -i "/^\\\\begin_inset Separator latexpar$/ { N; d; }" $1
$LYX -e lyx $1
$LYX -E pdf2 $1.pdf $1
diffpdf $1.old.pdf $1.pdf
The difference has been validated with diffpdf.
The following could not be tested and were left unchanged:
AEA.lyx
IJMPC.lyx
ja_beamer-conference-ornate-20min.lyx
The following is the script that I used (in lib/templates):
LYX=../../build/src/lyx
$LYX -E pdf2 $1.old.pdf $1
sed -i "s/^\\\\begin_inset Separator parbreak$/\\\\begin_inset Separator plain/" $1
sed -i "/^\\\\begin_inset Separator latexpar$/ { N; d; }" $1
$LYX -e lyx $1
$LYX -E pdf2 $1.pdf $1
diffpdf $1.old.pdf $1.pdf
This is what the polib version does already. If a translation is marked
fuzzy then it is not used, so if the other file contains a non-fuzzy
translation we do not throw away useful information if we overtake it.
If the -o option is given, we may overwrite existing translations with
translations from the other .po file. In this case, we have to delete or set
the fuzzy flag accoring to the updated translation.
2.1.x allows some document settings to have negative values where
2.2.0rc1 does not (because of the bug fix at 9e166088). If a user of
2.2.0rc1 opens a document from 2.1.x that contains one such negative
value, it will appear as though no change to the document settings
can be saved because 2.2.0rc1 treats the document settings as
invalid immediately on opening the dialog. Further, unless the user
manually goes through each tab they will not see the red text next
to the input that is now considered invalid. This could lead to
confusion for users. One example of such confusion is [1].
The following settings now allow negative values, which is
consistent with 2.1.x. Negative values in these settings do not lead
to LaTeX errors:
- Text Layout tab: the two line edits enabled with "Custom"
- Page Margins tab: all eight line edits
The following settings are not changed by this commit, so they now
(with 2.2.0) do not allow negative values that 2.1.x allowed. This
change makes sense because negative values lead to LaTeX errors in
these cases:
- Page Layout tab: the "Height" and "Width" line edits, which are
enabled when "Custom" is selected
[1] https://www.mail-archive.com/search?l=mid&q=CAGZ2pgXqf27UaAaQ%3De_wFz1fGTa6Yv0iFyS97qu1C7B5R59irg%40mail.gmail.com
"Output changes" alters the preamble even in the absence of tracked
changes. Therefore, not being able to notice when it is activated can possibly
yield hard-to-debug compilation failures.
(#8738)
For efficiency, we add a new flag to the buffer indicating when changes are
present. This flag is updated at each buffer update, and also when explicitly
requested via a dispatch result flag.
An undocumented behaviour of QClipboard::mimeData() is that it can fail on
windows due to the specificities of the windows API that allow a race condition.
In particular it seems that querying the clipboard as soon as the dataChanged()
signal is received favourises this race condition.
Thanks to Trac user bquistorff for the explanation and a proof of concept patch.
The timer logic introduced to solve bug #7138 was not entirely reliable; in
particular it resulted in spurious updates (noticeable by the treeview
collapsing just after one opens a branch, in particular).
This commit cleans up the timer logic. I followed the original design decision
of having an immediate update followed by a delayed update. Now the updates are
appropriately compressed and done after a delay of 2s (as can be noticed with
the treeview still collapsing, unfortunately, but after a more predictable
delay...).
4d1ad336fixed#9754 but caused perf issues by cancelling the gains of having a
timer (introduced after #7138). This introduces in GuiToc::enableView() a
lightweight check of whether the widget should be updated. The logic is inspired
from GuiViewSource::enableView().
If we do not do that, it is not possible to position the cursor after
a long inset with the mouse.
To do this, it is necessary to add the pit information to the Row
object. This is a good idea in any case, and will allow to simplify
some code later on.
Fixes bug #10094.
(cherry picked from commit 8851645799ef67015e49fd75b9dfeed65d685e85)
When document settings are modified, a command
inset-forall Branch inset-toggle asign
is run to open as needed all branches. At the end of the said loop,
the cursor is reset to where it was. However, the cur_after undo
element member is not set because it already had a value.
To make this work as expected, it is necessary in LFUN_INSET_FORALL to
reset the cursor before ending the undo group and to insert a dummy
recordUndo call.
Fixes bug #10097.
(cherry picked from commit 0036762f30def16ab8b2216f721f9e552893bc85)