Commit Graph

8664 Commits

Author SHA1 Message Date
Scott Kostyshak
9b821eb047 Initialize toolbarsMovable_
Valgrind detected a conditional jump because this member was not
initialized.

(cherry picked from commit e49a10729e)
2018-04-27 23:31:09 -04:00
Jean-Marc Lasgouttes
5c6bc52b1b Update cursor position after committing IM string
(cherry picked from commit 01fea56eb6)
2018-04-26 22:45:57 +02:00
Richard Heck
00522ecd3f Fix #8338.
The idea here is to force commands to be run syncrhonously when
they are launched via "command-sequence" or "repeat". We do this
by using a new flag in FuncRequest.

(cherry picked from commit 2477493cf5)
2018-04-20 23:48:50 -04:00
Richard Heck
12c196755b Fix bug #11118.
Adds LFUN_MASTER_BUFFER_EXPORT.

(cherry picked from commit c4c7053d1d)
2018-04-19 00:11:48 -04:00
Juergen Spitzmueller
9e52c7693e Add support for rotated longtabulars (via [pdf]lscape)
Fixes: #9194

See #9194 for why we use an earlier file format change here.

(cherry picked from commit feab528fd1)
2018-04-18 18:10:06 +02:00
Richard Heck
bcb002039b Merge branch '2.3.2-staging' into 2.3.x 2018-04-14 23:52:31 -04:00
Scott Kostyshak
c19fd610b9 Do not show master's errors if compiling child
If a master document is compiled and has errors, and then a child is
compiled without error, the errors from the master compilation were
shown.

The setup of the relevant code is the following:

  processingThreadFinished() calls errors().  errors() makes the
  assumption that if it is called, there must have been an error
  somewhere.

The logic of the setup is the following:

  processingThreadFinished() knows whether there was an error on
  the most recent preview/export, although it doesn't know whether
  the error is from master or child (i.e. does not know whether the
  user was compiling the child, or whether master-buffer-view was
  called).  Inside error(), if there is no error in the child, it is
  assumed the error is from master.

For the above logic to work, errors() should only be called if there
was an error.

This commit fixes #11106 and preserves the fix to #7330.

(cherry picked from commit 8d2b121ef5)
2018-04-14 23:25:19 -04:00
Joel A. Kulesza
d25762da35 Changed Settings->Local Layout to FixedWidth & Nowrap
This change is made in response to Ticket 10992.

The change made is consistent with those captured in Ticket 9966.

(cherry picked from commit 869e2fe9b9)
2018-04-09 21:30:40 -04:00
Pavel Sanda
5394481071 Upstreaming compilation patch needed for Gentoo. 2018-04-02 21:42:51 +02:00
Richard Heck
d1fa6f10e5 Set preamble tab stop to 4 chars. 2018-04-01 22:20:57 -04:00
Richard Heck
2bb9d49527 Fix bug 11099.
Adds simple search/find functionality to preamble.
2018-04-01 22:20:57 -04:00
Juergen Spitzmueller
bcd1814746 Open ExternalInset dialog on first tab for new insets
Fixes: #11081
(cherry picked from commit 126e0c3dac)
2018-03-29 09:48:00 +02:00
Jean-Marc Lasgouttes
977a0c4037 Make it possible to select (not)native file dialogs at run time
Add a new LyXRC variable use_native_filedialog (true by default) that
allows to select the kind of FileDialog we want at runtime.

(cherry picked from commit af795b80d8)
2018-03-21 10:56:57 +01:00
Juergen Spitzmueller
d9314d15dc Some improvements to the graphics dialog
* Describe the viewport/bb situation more accurate
* Use generic term "coordinates", since bb and viewport are flavor-specific
* Add some tooltips
* Increase the width of the options widget.

(cherry picked from commit c462fadff5)
2018-03-19 18:23:59 +01:00
Juergen Spitzmueller
7927d71a08 Properly fix math packages table in Document Settings
Fixes: #10777
(cherry picked from commit 3face5e119)
2018-03-18 16:47:59 +01:00
Uwe Stöhr
91a15383f9 GuiDocument.cpp: change back alignment for column with package names
- as discussed in bug #10777 the first column should be left-aligned

(cherry picked from commit 56670d7322)
2018-03-18 16:36:21 +01:00
Uwe Stöhr
eb172be29b GuiDocument.cpp: fix bug 10777
- the column width must be as wide as the column header text
- also center the radiobuttons in the table
- also use alternating colors for the table rows

(cherry picked from commit a69f1a9e16)
2018-03-18 16:36:21 +01:00
Juergen Spitzmueller
b35fb98335 Fix list of viewable formats in view/update menu.
Also fix list in (currently unused) Export toolbar button.

Fixes: #11044
(cherry picked from commit ab6bd5e319)
2018-03-17 15:44:05 -04:00
Juergen Spitzmueller
c285b4f8c3 amend 71fea63326
(cherry picked from commit be4d49ebd1)
2018-03-17 15:44:05 -04:00
Juergen Spitzmueller
c0a1893008 Disable CheckTeX while buffer is processed
Since CheckTeX itself processes the tex file, a synchronous run with
a TeX process can lead to all sorts of conflicts, including crashes.

Fixes: #7434.
(cherry picked from commit 71fea63326)
2018-03-17 15:44:05 -04:00
Juergen Spitzmueller
b408222f76 Disable BUFFER_EXPORT and BUFFER_EXPORT_AS while buffer is processed
I am rather irritated we didn't do this already, since synchronous runs
with BUFFER_VIEW or BUFFER_UPDATE leads to all sorts of problems,
including crashes.

Fixes the crash in #8338 (but not the bug itself).

(cherry picked from commit 1437ae3f9c)
2018-03-17 15:44:05 -04:00
Pavel Sanda
3d6b8c0abb Allow reload if buffer is externally modified.
Follow-up of 2df82c4a44.
2018-03-02 20:49:48 +01:00
Pavel Sanda
e97a82b7ff Filter in citation dialog is not respected when reloading databaze. 2018-03-02 01:33:02 +01:00
Richard Heck
04e8526460 Respect "literal" setting when entering citation via LyX server.
This requires moving the bool that tracks this somewhere that it
is visible from BufferView. It seemed to make sense to put it as
a static member of InsetCitation.

(cherry picked from commit f8e8877f83)
2018-02-22 15:33:01 -05:00
Alexander Dunlap
257f978d62 save session when we save a buffer
Implements enhancement #10712.

(cherry picked from commit cca365f26c)
2018-02-21 11:56:37 +01:00
Juergen Spitzmueller
90ca393c7f Localize items in view/update popup icons
Fixes: #11040
(cherry picked from commit 578cf77f6f)
2018-02-21 09:40:01 +01:00
Jean-Marc Lasgouttes
be35ba31bf Fix compilation in monolithic mode
(cherry picked from commit 3aa10c8dba)
2018-02-15 12:29:25 +01:00
Jean-Marc Lasgouttes
c677156938 Use a backing store on macOS
Qt on macOS does not respect the Qt::WA_OpaquePaintEvent attribute and
clears the widget backing store at each update. Therefore, we use our
own backing store in this case.

This restores a simplified version of the code that was removed at 06253dfe.

(cherry picked from commit 2316435f2f)
2018-02-15 12:29:25 +01:00
Jean-Marc Lasgouttes
2b1b33189d Create new method GuiWorkArea::Private:::updateCaretGeometry
This replaces a showCaret/hideCaret pair and avoids an update.

Also remove an update() call in resizeBufferView: is is not necessary
since we are already in a pintEvent handler.

(cherry picked from commit add342d088)
2018-02-15 12:29:25 +01:00
Jean-Marc Lasgouttes
f6cbc08a7d Fix bad refresh when changing zoom level
Replace the tricky code in LFUN_SCREEN_FONT_UPDATE and replace it with
proper use of DispatchResult flags.

LFUN_BUFFER_ZOOM* does not need to call LFUN_SCREEN_FONT_UPDATE, since
it already does everything that is required.

(cherry picked from commit 9df59aac63)
2018-02-15 12:29:25 +01:00
Jean-Marc Lasgouttes
7b99bf6a37 Do not presume what the defaults for a new QPainter are
(cherry picked from commit 275d306c73)
2018-02-15 12:29:25 +01:00
Jean-Marc Lasgouttes
c43b6a9ecf Remember correctly pixel ratio used for painting
This avoids endless resize issues on HiDPI systems (e.g. Retina Mac).

Rename pixel_ratio_ to last_pixel_ratio_ to emphasize that this is a
cached value.

Inline needResize method to make the logic clearer in paintEvent.

(cherry picked from commit 6532e5104d)
2018-02-15 12:29:25 +01:00
Jean-Marc Lasgouttes
a1579c583a Compute metrics when graphics is updated
Remove the old schedule_redraw_ mechanism that was only useful because
of our synchronous drawing code. Now that actual painting is
scheduled instead of forced, it becomes pointless.

Rename WorkArea::redraw(bool) to scheduleRedraw(bool), to show that
the drawing is not done right away.

In GuiView::updateInset, call scheduleRedraw(true), so that metrics
are correctly computed (this was the whole point of the exercise).

(cherry picked from commit a31d3dc67d)
2018-02-15 12:29:25 +01:00
Jean-Marc Lasgouttes
94b1d04f2c Rename more instances of "cursor" to "caret"
Thanks to Pavel for the hint.
2018-02-15 12:29:25 +01:00
Jean-Marc Lasgouttes
9ef52806f8 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.
2018-02-15 12:29:25 +01:00
Jean-Marc Lasgouttes
418bf09879 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.
2018-02-15 12:29:25 +01:00
Jean-Marc Lasgouttes
ef1d502070 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.
2018-02-15 12:29:25 +01:00
Jean-Marc Lasgouttes
7b8b3e38a1 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.
2018-02-15 12:29:25 +01:00
Jean-Marc Lasgouttes
d222e0f48e 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.
2018-02-15 12:29:25 +01:00
Jean-Marc Lasgouttes
1dc134fb60 Improve UndoGroupHelper and use it more
Now the helper class contains logic that checks whether buffer are
known before closing them. This avoids potential crashes.

Use it in different places to siplify code. It is not clear at this
point whether it should be used everywhere.

Followup to bug #10847.

(cherry picked from commit cd9e42dc35)
2018-02-15 10:36:17 +01:00
Juergen Spitzmueller
bf94074114 Disable unsupported ref types in mathed.
Also repair prettyref in InsetMathRef.

Part of #9798

(cherry picked from commit 47e85b37eb)
2018-02-15 06:48:38 +01:00
Jean-Marc Lasgouttes
e11c8ba81b Disable and hide the pixmap cache feature 2018-02-14 10:12:11 +01:00
Richard Heck
0dfca93139 Fix crash when citeengine is unknown.
(cherry picked from commit 5ee3396459)
2018-02-12 23:31:42 -05:00
Juergen Spitzmueller
fe414fcdd8 Fix race condition in processFuncRequestQueue
The issue here was that the element was only removed from the queue
after the func request was processed, but within that process, other
function could access the queue, so the queue could even be empty
when this function finally wanted to remove the item.

Fixes: #10406.
(cherry picked from commit dadec50a18)
2018-02-10 18:32:03 +01:00
Juergen Spitzmueller
af91405786 Consider class-provided citation engines
Do not attempt to load, nor allow to set, a different engine in this
case.

Fixes: #11022
(cherry picked from commit 2f6ada6644)
2018-02-09 09:50:43 +01:00
Juergen Spitzmueller
4285438558 Add missing connection.
This activates the OK/Apply when a biblatex style file is changed
manually

(cherry picked from commit 6236bcb653)
2018-02-06 17:58:13 +01:00
Juergen Spitzmueller
14e0a27098 Enable CompressorProxy for all Workareas (incl. EmbeddedWorkarea)
This fixes the Advanced F&R.

(cherry picked from commit 5ce36019e5)
2018-02-03 09:43:36 +01:00
Juergen Spitzmueller
fdc98c3fa8 Make another GUI string translatable
Part of #10999.

(cherry picked from commit 6ed7bbbf7e)
2018-01-27 18:30:14 +01:00
Juergen Spitzmueller
47adfa661e Make GUI string translatable
Part of #10999

(cherry picked from commit 26755a015e)
2018-01-27 18:29:46 +01:00
Juergen Spitzmueller
d65eee3688 Use proper localization chain for Box special width/height
Fixes: #11000
(cherry picked from commit e2160ec960)
2018-01-27 18:25:52 +01:00