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)
Ask the user for removing bindings when using the "restore" button (#9174).
Fix the already-bound-key detection logic.
Don't forget to trigger the search when initializing the search LineEdit with
its former value.
This was done with
python ../lyx-2.3-staging/development/tools/mergepo.py -n -t po ../lyx-2.1/po
It should have been part of a26cdcb4ba, but the mergepo script did not overwrite
fuzzy translations with non-fuzzy ones at that time. Now 2.2 will not be missing
translations that are in 2.1 (but of course it might contain changed translations).
This was a regression of 8aa37c43. I did not take into account that end_pos
could be -1, so the code that checked whether a pair of braces needs to be
inserted between two hyphens did not work for that case. Now we check for
the length of text_, which should be done anyway, and only take end_pos into
account when it is not -1.
Jari-Matti provided an updated fi.po in bug 10084, but unfortunately I did not
see that before remerging the strings. Therefore, I did not take the updated
file directly, but downloaded it to /tmp/fi.po and merged the updates with
python ../lyx-2.3-staging/development/tools/mergepo.py -o -l fi -t po /tmp/
The two header changes were done manually. This way, the updated translations
are not hidden in lots of sorting changes. I had to use mergepo.py from 2.3
because the one in master does not treat fuzzy translations correctly.