Commit Graph

47072 Commits

Author SHA1 Message Date
Juergen Spitzmueller
7d2d26132b Cut excessively long author lists before parsing them for the GUI
as they will be truncated anyway.

Fixes performance issues with long author lists in bib files.
2024-07-05 17:19:24 +02:00
Jean-Marc Lasgouttes
6f6d9b631d Fix display of page references when language is not specified
Using translateIfPossible with null language does not make sense (and
gives an error on console).

Using translateIfPossible there actually does not make sense at all: it
is only for string from layout files that may already be translated.

We use the buffer language when no language has been specified. It
might have been better to use the GUI language.

A consequence of the commit is that "elsewhere" will be in the po
files and now really translatable ;)
2024-07-05 16:18:09 +02:00
Juergen Spitzmueller
8ba74fe958 Remove performance bottleneck in getAuthors()
The regex is expensive which is especially noticeable with very long
author lists.

This introduces a case-insensitive subst() variant which is much faster.
2024-07-05 14:05:26 +02:00
Juergen Spitzmueller
28f49c90dc de/Customization: fix typo 2024-07-05 09:51:49 +02:00
Jean-Marc Lasgouttes
89ab9eb569 Make BufferView::singeParUpdate more robust
In some cases, it might happen that this method is called in cases
where no metrics is know for the current paragraph or where its
position is not set.

Take care of these cases to avoid assertions.

Remove setting of inset positions in the method, but make sure that
updateMetrics(false) is always called to get everything right.

In the new code, updateMetrics(bool) os the method that sets
everything right with minimal effort.
2024-07-03 17:43:00 +02:00
Jean-Marc Lasgouttes
2bdd691130 Remove useless SinglePar update when scrolling in text
Using SinglePar does not majke sense here since the paragraph is not
modified and it might even not have a position yet.

This fixes a crash in BufferView::singleParUpdate, which is not
prepared (yet) to such situations.
2024-07-03 17:31:38 +02:00
Jean-Marc Lasgouttes
a7204098cf comment 2024-07-03 16:23:30 +02:00
Jean-Marc Lasgouttes
29597f600e fix comment 2024-07-03 15:43:12 +02:00
Enrico Forestieri
1dd0bf3253 Update format in lyxrc.dist 2024-07-03 12:32:18 +02:00
Jean-Marc Lasgouttes
6e0ea4269a Make sure paragraph positions are updated when scrolling
Sometimes quick selection-scrolling could cause a crash because the
position of some paragraphs is not computed. To fix that, in
BufferView::showCursor, make sure that the metrics are always kept
clean using updateMetrics(false), which is lighweight.

As a consequence, the 'update' parameter of showCursor and
scrollDocView is not needed anymore. Its removal is mechanical and
accounts for most of this commit.

The only other significant change is that, when creating synthetic
mouse events and relying on scroll() for small moves, the full metrics
recomputation is replaced by the lighter version.

More work is still to come on this code, but this should be going in
the right direction.
2024-07-03 00:34:11 +02:00
Pavel Sanda
65a5c3989f cosmetics - synchronize with the rest of strings 2024-07-02 23:47:42 +02:00
Juergen Spitzmueller
4ed8bfb974 Do not check for diverging input encoding if the files use XeTeX/LuaTeX
Fixes the problem reported at
https://marc.info/?l=lyx-users&m=171986173131406
2024-07-02 16:59:28 +02:00
Jean-Marc Lasgouttes
c84c59eaec Avoid crash when InsetBibitem::updateCommand shows a dialog
This is one of the places where a dialog is shown (indicating that
some bibtems have been renamed) while the metrics are not up to date.
Then a draw operation can be triggered too early and a crash can ensue.

Use ad-hoc solution for this case and use Buffer::setBusy(). The
Alert::warning helper cannot really do that since it doe snot know the
current buffer.
2024-07-02 14:54:20 +02:00
Juergen Spitzmueller
574db22025 GuiDocument::onBufferViewChanged(): exit early if dialog is not open
This should fix the bug reported at
https://marc.info/?l=lyx-users&m=171957953801548&w=2
2024-07-02 11:02:36 +02:00
José Matos
7a79a416b8 Remove profiling.py
The hotshot module used there only works for Python 2.

BTW the profiling turned out not be necessary.

As a case in point Python 3.13 is twice as fast as Python 3.6 when using
lyx2lyx. Not only that but Python 3 is almost 10 times faster than using
Python 2 for this particular case.
2024-06-27 21:20:49 +01:00
Koji Yokota
99d59490d7 Update ja.po 2024-06-27 06:42:26 +09:00
Kornel Benko
d3ea677a3e Update sk.po 2024-06-26 08:53:46 +02:00
Richard Kimberly Heck
e7af6afb01 Add temporary directory to About LyX dialog 2024-06-25 11:32:36 -04:00
Kornel Benko
527693b782 Typo 2024-06-25 14:36:35 +02:00
Kornel Benko
5ee53450bb Cmake build: Require std >= 17 for compilation of QT6 2024-06-25 13:50:32 +02:00
Jean-Marc Lasgouttes
e653907b84 fix comment 2024-06-25 12:01:53 +02:00
Pavel Sanda
979aabfaed ftp->http 2024-06-24 22:54:21 +02:00
Pavel Sanda
935781ceab Document python changes 2024-06-24 22:45:15 +02:00
Pavel Sanda
cfc9675d0e Prepare notes for 2.5 2024-06-24 22:44:49 +02:00
Pavel Sanda
fe9573ee8b Let the middle button pasting respect newlines by default.
This makes it in sync with the new default for Edit > Paste operation.
https://www.mail-archive.com/lyx-devel@lists.lyx.org/msg222233.html
2024-06-24 22:35:01 +02:00
Stephan Witt
740d863f61 Add runpath verification of deployed binaries and plugins 2024-06-24 08:24:45 +02:00
Stephan Witt
521ca59f15 Add Qt binary directory to PATH to locate qmake utility 2024-06-24 07:32:08 +02:00
Juergen Spitzmueller
c394a1ccf9 Amend fd78a25a7c
This way, it is a bit more plausible what we're doing
2024-06-23 18:53:14 +02:00
Richard Kimberly Heck
562f92f272 Fix up fafe3ea5d7.
There was a merge conflict, and it looks like I didn't fix it right.

I had set the author of that commit to Alexander, but for some
reason it didn't stick?
2024-06-23 12:48:17 -04:00
Kornel Benko
0116048697 Cmake build: Add Qt?Xml modules to build.
Cmake part of the fix to #13069 XHTML output for InsetMathBox can loop forever
2024-06-23 12:37:32 -04:00
Richard Kimberly Heck
fafe3ea5d7 Fix bug #13069.
Use XML parser to handle <mtext> issues.

Some of the config/qt.m4 code by JMarc.
2024-06-23 12:37:25 -04:00
Juergen Spitzmueller
b5260a3a0f Remove unneeded cycle checks (#12954) 2024-06-23 14:53:07 +02:00
Juergen Spitzmueller
fd78a25a7c Only issue currentWorkareaChanged() if the work area really changed.
(this function can be called repeatedly while the work area doesn't
change any further)
2024-06-23 14:52:02 +02:00
Juergen Spitzmueller
026c4bd726 Fixup [152811a27d242/lyxgit]
tabBarClicked() should really only reset focus if a click in a different
TabBarGroup happened. And no need to issue workAreaChanged() again.

This has lead to extra and erroneous focus changes (see #12954)
2024-06-23 14:47:43 +02:00
Juergen Spitzmueller
8659924abd \cprotect amendment
\cprotect'ed insets do not need forced local font switch; in fact files
with this break in compilation. E.g. a caption with an URL containing
the char '#' and caption text set to a secondary language.
2024-06-22 13:38:47 +02:00
Jean-Marc Lasgouttes
45dce93af7 redoParagraph: avoid extra cache accesses
To this end, CoordCacheBase::add returns true when a change was made.
This uses the return value of std::unordered_map::insert.
2024-06-21 17:02:13 +02:00
Jean-Marc Lasgouttes
608929a857 Rename DocumentCLass:plainInsetLayout() to InsetLayout::undefined()
This makes the code easier to understand.
2024-06-20 18:29:41 +02:00
Jean-Marc Lasgouttes
c4531741a9 Fix cursor when undoing accept/reject all changes
Before this change, the whole document would remain selected.

This relies on the new UndoGroupHelper constructor introduced at e7b1ee47.
2024-06-20 18:02:33 +02:00
Jean-Marc Lasgouttes
e7b1ee47ea Add a constructor of UndoGroupHelper that uses a CursorData parameter
This aloows to se the the `before' cursor of the undo group.

Not used for now.
2024-06-20 17:52:19 +02:00
Jean-Marc Lasgouttes
f643057779 Remove useless cursor parameter to global undo actions
Add a Cursor-less version of Undo::recordUndoBufferParams (we don't
use an optional arument to avoir #includ'ing Cursor.h).

The version with CursorData parameter has been kept for the case of
local dictionary lfuns that have some kind of locality.

Remove Cursor argument to Undo::recordUndoFullBuffer().
2024-06-20 17:25:25 +02:00
Jean-Marc Lasgouttes
c7c16fe9fa Remove trailing underscore on members x and y of Point class.
These members are not private.
2024-06-20 16:37:05 +02:00
Jean-Marc Lasgouttes
b78d2a4eda Add missing override keyword 2024-06-19 15:05:45 +02:00
Enrico Forestieri
66ef66ca0d Avoid bogus warnings when configuring for Qt6
Recent versions of qmake complain loudly when the locale
does not explicitley specify the utf8 codeset. Specifically,
the configure script exports LC_ALL=C and that implies the
ascii codeset. Previously, this was silently changed to utf8,
whereas now we get a warning for each qmake invocation.
So, explicitly set utf8 before calling qmake.
2024-06-18 21:56:15 +02:00
Jean-Marc Lasgouttes
c263463cad Move DrawStrategy enum to update_flags.h.
Introduce new drawStrategy() and drawStrategyDescription() methods to
frontend::Application.

Show the current draw strategy in About dialog.
2024-06-18 18:26:34 +02:00
José Matos
95a7440b0e Sort and format comments
The last code change shuffled the comments out of place
2024-06-18 10:52:05 +01:00
José Matos
44e0940d75 Order imports
This is similar to what we have in C++ code where we order the standard
includes to be easier to read.

This is a readability change only.
2024-06-18 10:25:52 +01:00
José Matos
5abe42f6d3 Tweak ruff configuration
Add I - isort rules (order of imports);
Ignore line too long warnings.
2024-06-18 10:24:09 +01:00
Enrico Forestieri
fe64db4b70 Add xcb lib if x11extras is detected
In this case we use directly some xcb api outside of the Qt framework
and hence we have to add the xcb library by ourselves.
2024-06-17 21:57:24 +02:00
Jean-Marc Lasgouttes
5d76b4bb8f Support qmake with Qt5 too
This extends the support of qmake to Qt5. Currently, the other
configuration methods are tried if qmake fails, but a message is
printed.

A nice goal would be to get rid of those legacy methods (pkg-config,
plain autoconf-style), if this proves possible.
2024-06-17 17:09:04 +02:00
José Matos
4534a20f1a Fix functions that used functions but did not defined it
The functions were selected from the parser files where document is
always defined.

The only case was this code was used was on document.warning.

Since our documents are well formed this code was never active and thus
the reason why we did not saw this before.

One possible solution to assure that these type of errors do not occur
is to make the convention that all the functions in lyx2lyx_tools have
as the first argument document.
2024-06-17 11:31:10 +01:00