Commit Graph

37760 Commits

Author SHA1 Message Date
Jean-Marc Lasgouttes
3d590d3bd7 Merge remote-tracking branch 'features/properpaint'
Now painting the workarea is done at paint events as should be.
Explicit painting after updating metrics has been replaced by a much
lighter procedure (updatePosCache) to update the insets positions cache.

Expected benefits:
- better performance
- proper use of subpixel aliasing

The LyXRC variable use_qimage is not needed anymore and is therefore removed.
2017-09-08 17:05:13 +02:00
Jean-Marc Lasgouttes
4f4383cac5 remove LyXRC::use_qimage
This is not needed anymore now that we do not need a backup pixmap.

Update LyXRC format to 23 and add conversion.
2017-09-08 16:58:21 +02:00
Jean-Marc Lasgouttes
3b404b0023 Update insets position in cache in more cases
This patch makes sure that, every time a ParagraphMetrics has its
position set, the inset positions for the insets held by this
paragraph are remembered too.

This is complementary to BufferView::updatePosCache, but I do not have
hard evidence that this is required other than to increase robustness.
It may help in some cases when scrolling the document (scrollbar,
cursor up/down, page up/down).
2017-09-08 16:57:22 +02:00
Jean-Marc Lasgouttes
b0737d2589 Rename more instances of "cursor" to "caret"
Thanks to Pavel for the hint.
2017-09-08 16:57:22 +02:00
Jean-Marc Lasgouttes
fb655725b7 Remove workaround that is not necessary anymore.
This code was necessary to handle cases where the insets positions
were not yet in cache. This cannot happen anymore thanks to the
nodraw stage.
2017-09-08 16:57:21 +02:00
Jean-Marc Lasgouttes
8edadee145 Update the painting process documentation 2017-09-08 16:57:21 +02:00
Jean-Marc Lasgouttes
14320e5b9a Make input methods support great again
This unbreaks input methods by splitting the part of the code that
does the actual drawing to a separate paintPreeditText() method which
is called from paintEvent().

The proper solution would have been to introduce the preedit string in
the Row object, like is done for completion, but this is too complex
to do at this point.

The only change in behavior is that now the commit string is inserted
in one fell swoop, intead of emulating a number of key events.
2017-09-08 16:57:21 +02:00
Jean-Marc Lasgouttes
1a7e342652 Cleanup and simplify WorkArea code
Rename cursor to caret to in order to avoid ambiguity. The caret is
now the blinking thing only.

Remove unused header contents, and some not so useful methods.

No intended change of behavior.
2017-09-08 16:57:21 +02:00
Jean-Marc Lasgouttes
e7fdce0b5a Fix caret painting
The trick is to remember in BufferView what has been done at the
previous draw, so that the row that contained the caret can be
repainted if needed.

To this end, add an argument paint_caret to BufferView, although
painting the caret is not the job of the BufferView (at this point).

BufferView::needRepaint will act as an interface with
TextMetrics::drawParagraph to know whether the painting of a given
row should be forced.

Currently everything is done at the top row level, so that, if the
caret is in a large table, the whole table will have to be repainted.
It is not clear yet that this is necessary.
2017-09-08 16:57:21 +02:00
Jean-Marc Lasgouttes
24c29908bd Do the actual drawing in the paint event
Historically, because of two-stage drawing, LyX has been painting on a
Pixmap, and this pixmap is copied to screen at paint event time.

Now that we have three-stage drawing, it is possible to delay the
painting to actual paint event and avoid the intermediate Pixmap.

Known bug: the cursor is never erased.
2017-09-08 16:55:11 +02:00
Juergen Spitzmueller
4762698e6f de.po 2017-09-08 10:40:58 +02:00
Scott Kostyshak
ee4e5c7b25 ANNOUNCE: give information about the backup files
Many users are confused when the backup files are created after
saving with a new major LyX version.

Thanks to Richard.
2017-09-07 22:12:06 -04:00
Juergen Spitzmueller
858a9a0465 Make the session zoom relative to the default zoom
Also rename lyxrc.zoom to lyxrc.defaultZoom

Fixes: #10455
2017-09-06 18:13:34 +02:00
Juergen Spitzmueller
eb51d60571 Consider insets that are chars in InsetCollapsable::getNewLabel()
This fixes the display of closed ERTs, Indexes etc. when they contain
special chars, logos or quotation marks.

(Since quotation marks in ERTs are now insets, not chars anymore,
this also fixes a bug/regression of the display of babel shortcuts
such as "= in closed ERTs; hence I consider this fix necessary for 2.3.x)
2017-09-06 10:02:51 +02:00
jpc
103e17da90 Copy recent additions to EmbeddedObjects to localized files
Translate French and remove CT in original file
2017-09-02 22:46:51 +02:00
jpc
e9527b9d5a Update fr.po 2017-09-02 19:07:41 +02:00
Kornel Benko
e8e31e0630 Update sk.po 2017-09-02 09:54:43 +02:00
Juergen Spitzmueller
b14756f3e2 Support for Japanese BX classes, by K. Yokota
Fixes: #10746
2017-09-02 09:06:52 +02:00
Kornel Benko
53edf3484b Update sk.po 2017-09-02 00:42:41 +02:00
jpc
6e936eeb39 Update fr.po after 2cbca8be1e 2017-09-01 23:07:38 +02:00
jpc
2cbca8be1e Update acmart.layout following tickets #10722 & #10723 2017-09-01 23:02:26 +02:00
jpc
c17eb8d024 Remove \a warning 2017-09-01 23:01:06 +02:00
Kornel Benko
8749ceb8a2 Remove \f warning 2017-09-01 18:38:02 +02:00
Juergen Spitzmueller
a3eab36364 Add special chain for Modules with OutputFormat for pLaTeX (Japanese)
Fixes: #8823
2017-09-01 10:27:12 +02:00
Kornel Benko
762c24940a Spelling errors in sk/splash/lyx (found with the spellchecker) 2017-08-31 15:48:07 +02:00
Jean-Marc Lasgouttes
59e2c40564 When a row is shortened, reset its flushed() attribute.
Fixes bug #10699.
2017-08-31 14:52:30 +02:00
Jean-Marc Lasgouttes
5c54557350 Honor trailing spaces in LabelString and friends
Remove the trimming operation on LabelString, LabelStringAppendix,
EndLabelString and LabelCounter. This trimming meant that quotes
strings were not preserved, which is wrong.

To preserve layouts, the Layout format has been updated to 64, so that
layout2layout can remove extra spaces on existing strings, which
ensures that behavior is unchanged for old layouts (courtesy of rgheck).

It is now possible to re-add spaces in label strings where it makes
sense.

Fixes bug #10723.
2017-08-31 13:59:37 +02:00
jpc
42c14d0c90 Add .gmo file 2017-08-31 10:02:52 +02:00
jpc
447edabdb9 Updates for Japanese documentation posted on po-updates@lyx.org
Translation status reflected in Changelog files
2017-08-31 09:58:36 +02:00
Scott Kostyshak
592848b903 ja.po: translation update from Koji Yokota
I checked that the changes from 29378af4 are preserved.
2017-08-31 01:09:25 -04:00
Kornel Benko
ff0ce478e4 sk/splash.lyx: add note for Linux installations 2017-08-30 02:12:48 +02:00
jpc
a18dd15b00 Update fr.po 2017-08-29 18:10:34 +02:00
Jean-Marc Lasgouttes
efc7359015 three-stage drawing: add a nodraw stage
Normally the two stages of drawing are
1/ compute metrics of insets/rows/paragraphs/mathrow...
2/ draw the elements and cache their positions

Now the three stages are
1/ metrics
2/ nodraw: do not draw the elements, but cache their position
3/ draw the elements (and store again their position; it does not
   seems to hurt performance).

Revive the NullPainter: this replaces the setDrawingEnabled mechanism
with a painter that does nothing. The advantage is that updatePosCache
(renamed from setPosCache) does not need anymore to be invoked from
the frontend.

updatePosCache (the nodraw stage) is called at the end of
BufferView::updateMetrics.
2017-08-29 16:37:07 +02:00
Jean-Marc Lasgouttes
48f099d93a Fix Lexer::getLongString prefix pruning logic
This fixes 3 bugs:
1/ only spaces are considered as part of the prefix
2/ leading tabs are removed unconditionally
3/ off-by-one error in the removal

The new intended behavior is:

1/ find the prefix (sequence of spaces and tabs) before the first
   line; remove this prefix from the line
2/ on the next lines, check whether they start with the same prefix,
  and if they do, strip this prefix
2017-08-29 15:30:44 +02:00
Jean-Marc Lasgouttes
c5b8250604 Small update to README 2017-08-29 12:15:44 +02:00
Juergen Spitzmueller
fe61ef9c07 Minor corrections 2017-08-29 12:12:11 +02:00
Juergen Spitzmueller
3da5c23c59 de/Customization: some bits more translation 2017-08-29 12:11:32 +02:00
jpc
508f16cd10 Copy new paragrpah in section C.2.2.1 in localized UserGuide files
Remove CT, translate in French file  and update Changelog
2017-08-29 11:53:23 +02:00
Juergen Spitzmueller
702e5b8118 Minor corrections I did while translating 2017-08-28 15:35:13 +02:00
Juergen Spitzmueller
5e42076b7f de/Customization: some more translation 2017-08-28 15:34:36 +02:00
Jean-Marc Lasgouttes
c874641e95 Fix computation of string width when using a QTextLayout
It was not a good idea to rely on QTextLine::naturalTextWidth() to
compute a string width. The correct method is horizontalAdvance().

Also round the value to the nearest pixel, since this is what
QFontMetrics::width() does.

Fixes bug #10700 (and maybe others).
2017-08-28 14:05:45 +02:00
Juergen Spitzmueller
f4511485da EmbeddedObjects: More (minor) corrections to the Inkscape template decription.
Includes German translation.
2017-08-28 08:41:57 +02:00
Juergen Spitzmueller
933a7dee00 Improve the svg2*tex.py scripts.
The inkscape command was hardcoded, but it seems that we need the full
patch on Windows. Therefore we check in configure.py if inkscape is
installed and pass the proper name (and possibly path) to the scripts.

Should address problems mentioned in #10679
2017-08-28 08:05:29 +02:00
Juergen Spitzmueller
17b37c604c de/EmbeddedObjects: add and translate the Inkscape modifications. 2017-08-27 16:02:50 +02:00
Juergen Spitzmueller
d63b946466 de/Customization.lyx: Some updates and translations.
Still lots to do. This document is utterly outdated.
2017-08-27 15:34:16 +02:00
jpc
f12b1844a7 Copy new documentation of Insksscape external material
in localized files and remove change tracking
2017-08-27 14:46:17 +02:00
Juergen Spitzmueller
491cd48cfe EmbeddedObjects: Clarify the aim of the Inkscape external template
This should clear some confusion about the input format of the template
(see #10679).
2017-08-27 10:50:01 +02:00
Kornel Benko
b5ee08df4d Update sk.po 2017-08-27 10:43:37 +02:00
Pavel Sanda
0d9a11e4ef typo in colored-boxes.lyx 2017-08-27 04:27:38 +02:00
Pavel Sanda
ff572c752f * cs.po 2017-08-27 04:25:43 +02:00