62 Commits

Author SHA1 Message Date
Enrico Forestieri
771f30e946 Enable QWindowsMimeMetafile with Qt6
The QWinMime class has been removed in Qt6 but the functionality
is still present. However, one has to allow inclusion of private
headers and register the mime handling to the QWindowsApplication
native interface.
2021-10-17 15:06:05 +02:00
Jean-Marc Lasgouttes
7067f48fa7 typo 2021-09-28 11:25:48 +02:00
Kornel Benko
84655a07d8 Fix crash
Lyx crashes on export to pdf if used with sanitizer set to 'unspecified'.
Crash found by Scott.

Given that if we export without GUI, there is some weirdness here though.
1.) Why does lyx not crash if not using '-fsanitize' compile-option
2.) Why is export to pdf dependent on the screen-resolution
2021-09-28 10:33:24 +02:00
Pavel Sanda
20cee15937 Give the user visible feedback when reconfiguring. 2021-07-22 14:30:08 +02:00
Jean-Marc Lasgouttes
e309a5599e Fixup f3a0e8ff: forgot to test in main dispatch
I would probably have seen this missing bit if not for the bug fixed
since then at c9146e5b.

Fixes (again) bug #12074
2021-06-08 16:15:28 +02:00
Enrico Forestieri
7a6ad48495 Use font metrics for computing the size of math decorations
It was an error using an absolute size instead of one relative to the
size of the used font. It was requiring using the physical dpi of the
screen and caused #12222. Now everything is computed with respect to
the metrics of the font and should be automatically correct.

Fixes #12222.
2021-04-03 18:37:10 +02:00
Jean-Marc Lasgouttes
9ff27f8ce0 Produce an error on bad debug level values
Add new funciton Debug::badValue, that returns the first bad value in a debug
setting string.

Use it to parse the -dbg comand line option and to control the
execution of the debug-level-set lfun.

Use range-based loops in a few places.
2021-03-26 17:55:54 +01:00
Kornel Benko
a9b0f5faae Cmake build with qt6 on MAC
Patch from P. De Visschere
Citing:
I also must exclude the QMacPasteboardMimeGraphics class in
GuiApplication.cpp since QMacPasteboard is not available anymore with qt6.

and add an #include <QStandardPaths> in support/Package.cpp (I suppose
this will pose no problem for qt5 but have not checked it, it's only
needed with USE_MACOSX_PACKAGING)
2021-03-26 13:11:44 +01:00
Juergen Spitzmueller
b7f983bc47 Address Qt6 deprecation warning (QLibraryInfo::location()) 2021-03-21 12:30:34 +01:00
Enrico Forestieri
635a7d77dd Allow compiling with Qt6
This commit allows compiling LyX with Qt6 when using autotools.
For a successful compilation the following 2 conditions must be met.

1) The Qt6 qmake has to come first in PATH, so that the command
   "qmake -v | grep -o 'Qt version .'" returns "Qt version 6".
2) The --enable-qt6 switch has to be passed to the configure command.

If --enable-qt6 is used but Qt6 is not found, Qt5 is tried as a fallback.
If also Qt5 is not found, configuring for Qt4 is attempted.
If --enable-qt6 is not used, then things go as usual. This means that Qt5
is tried first and then Qt4, unless --disable-qt5 is used, in which case
Qt4 is directly attempted. This means that existing scripts should
continue working unmodified.

LyX should compile with Qt6 on windows and linux, and possibly also on
mac, but I could not test that. However, it is not guaranteed that it
works as it should. In particular I am not sure that I got right the
conversion from QRegExp to QRegularExpression. For sure, the syntax
highlighting seems to not work right. Someone in the know should take
a look at that. I am able to load documents and compile them but some
thourough testing is needed. However, when compiling for Qt5 or Qt4,
I tried to make sure that the functionality is preserved.
2021-03-15 17:09:09 +01:00
Juergen Spitzmueller
10f4f2113a Fix deprecation warning (from|toTime_t) 2021-03-12 10:32:03 +01:00
Juergen Spitzmueller
26459a2cf5 Address another deprecation warning.
One left to go.
2021-03-12 10:10:33 +01:00
Jean-Marc Lasgouttes
5d8f3a9307 Fix debug output of FunCode
Outputing the FuncCode enum to a stream using the << operator does not
work well. Actually I am not sure whether the << operator in LyXAction
is supposed to work (don't we need an enum class for that?).
2021-03-09 16:26:44 +01:00
Jean-Marc Lasgouttes
f92f2f95ff Cleanup High DPI support
Disable for Qt >= 6 (this is the default now).

Disable for macOS (does it in its own way).
2021-03-02 08:22:02 +01:00
Jean-Marc Lasgouttes
42b23f3fb2 Display bookmarks in the workarea (take 2).
The bookmarks are shown with circled numbers in the right margin (or
the left margin in RTL mode). A new color "bookmarks" has been added.
Currently bookmark 0 (the return position) is not displayed because it
is very disturbing in practice.

To make this work, a new method BookmarksSection::bookmarksInPar
retuns the list of bookmarks in a paragraph along with their position.

Force redraw when using bookmark-save and bookmark-clear.

Caveats:

- this solution does not show the precise position of the bookmark
  (this is supposedly not a problem).

- if several bookmarks are on the same row, they will currently be
  garbled. It would be easy to make sure that only one is shown ; what
  would be more difficult would be to move the second bookmark lower.

- it is possible to make sure that the markers are correctly centered
  in the margin, and that the margin size is large enough to hold the
  marker (I did not try all fonts).

Fixes bug #2496.
2021-02-26 19:09:25 +01:00
Jean-Marc Lasgouttes
e4ab91d802 Revert "Display bookmarks in the workarea."
This will be replaced by a different version.

This reverts commit 99e636ae7b83dacb5acc96ae3b60a96c28339c0e.
2021-02-26 18:07:39 +01:00
Richard Kimberly Heck
946d112ee6 Allow to call cap::switchBetweenClasses without an ErrorList.
It turns out that we usually don't care about the errors and so
were creating dummy ErrorList objects in several places.
2021-02-25 21:49:50 -05:00
Jean-Marc Lasgouttes
d7a4f47e7d Improve HiDpi handling
Add code stolen from QBitTorrent that enables properly HiDpi handling.

HighDpi support is set by default starting with Qt 5.6.

Support for fractional scaling is added for Qt >= 5.14.

Hopefully fixes bug #12060.
2021-02-25 19:24:22 +01:00
Enrico Forestieri
a0a0119b48 Account for true dpi
We have to account for the physical rather than logical dpi.

See #12132.
2021-02-15 22:43:36 +01:00
Juergen Spitzmueller
fbef5e687a Use dialog-show in icon names
(and search for them also with dialog-toggle counterpart lfuns)

Fixes #12137
2021-02-12 12:18:51 +01:00
Juergen Spitzmueller
c2822d684b Add LFUN_LYXFILES_OPEN
This opens the new templates/examples dialog and creates a view if
necessary (#12106).
2021-02-10 09:36:32 +01:00
Juergen Spitzmueller
11b7714fc1 Use SVG icons in itemize bullet selector
This scales much better than the current png solution, is HiDPI- and
darkmode-ready
2021-02-09 10:32:16 +01:00
Stephan Witt
80e20e86be #11682 amend change 4d4dc96b06 - check Qt version for all Qt::ApplicationState occurances 2021-02-08 09:04:18 +01:00
Stephan Witt
4d4dc96b06 #11682 open new window on Mac if there is none and LyX is activated via dock 2021-02-07 18:53:40 +01:00
Pavel Sanda
ded8c873f4 Attempt on #12066.
Some lfuns are handled directly in GuiApplication while handling
of menu hiding in fullscreen was done on the level of GuiView.

We'll see if this code movement breaks in different scenarios,
but quick grep suggested that the only other way to guiview
dispatch is through drag&drop when menu isn't involved.
2021-02-03 22:06:14 +01:00
Jean-Marc Lasgouttes
9f899a17fa Force redraw of all bufferviews after zoom in/out
Add a new ForceAll update flag that forces to update metrics and
redraw all buffer views.

The situation in multi windows setting is very fragile and will need
to be adressed properly in the 2.5 cycle.
2021-02-03 15:42:11 +01:00
Juergen Spitzmueller
e2a66df3b8 LFUN_FILE_OPEN: Strip quotes from argument (#12091) 2021-01-24 14:48:55 +01:00
Juergen Spitzmueller
3f1799b2c8 Add method to check whether LyX runs in dark mode 2021-01-19 09:21:36 +01:00
Richard Kimberly Heck
12bb380941 Fix bug #5972: Count words in citations (approximately). 2021-01-10 01:43:34 -05:00
Jean-Marc Lasgouttes
99e636ae7b Display bookmarks in the workarea.
The bookmarks are added as virtual elements in display Rows. Bookmarks
are shown with circled numbers. A new color "bookmarks" has been
added. Currently bookmark 0 (the return position) is not displayed
because it is very disturbing in practice.

To make this work, a new method BookmarksSection::bookmarksInPar
retuns the list of bookmarks in a paragraph along with their position.

Force redraw when using bookmark-save and bookmark-clear.

Fixes bug #2496.
2021-01-06 20:20:03 +01:00
Jean-Marc Lasgouttes
b64b1aa85e Fix use of BookmarkSection::size()
The value was 9 instead of 10, which forced its users to use unusual code.
2021-01-06 19:33:20 +01:00
Richard Kimberly Heck
4cee3478f7 nullptr 2021-01-03 22:36:04 -05:00
Juergen Spitzmueller
882f06121b Use semantic latex and math colors for dark theme icon overlay 2020-12-12 10:56:51 +01:00
Juergen Spitzmueller
704331fdcd Add dark theme colors to semantic colors (#8325) 2020-12-12 10:56:05 +01:00
Juergen Spitzmueller
a06cdfa073 Adapt math and IPA panels to dark theme (#5636) 2020-12-11 09:08:41 +01:00
Juergen Spitzmueller
f9b817676a Search ipa image dir befor top dir
Else the unknown icon is found before the proper icon.

This unbreaks IPA panel top icons
2020-12-10 07:08:04 +01:00
Yuriy Skalko
cbad214cdd Refactor checksum calculation 2020-11-21 20:32:43 +02:00
Yuriy Skalko
0b1e0b8610 Remove unused headers 2020-11-21 20:32:30 +02:00
Jean-Marc Lasgouttes
222a317dd2 Store correctly the window position with Wayland
To do this, hard-coded test for xcb had to be replaced with a call to
platformName(). Since this method does not exist in Qt4, we emulate
it.

Note that Qt5 uses xcb bindings for X11 system, while Qt4 relies on
older X11 bindings. We return platorm == "qt4x11" in this case.

Fixes bug #11746.
2020-11-14 17:55:59 +01:00
Yuriy Skalko
5061db891c Use const references 2020-11-01 22:23:26 +02:00
Yuriy Skalko
d25c10ed81 Remove duplicate and unused header includes in .cpp files 2020-10-19 18:01:11 +03:00
Yuriy Skalko
fbefdb10a5 Move Cursor.h from Clipboard.h 2020-10-16 08:02:51 +03:00
Yuriy Skalko
7d38a4d126 Loop refactoring 2020-10-09 09:04:20 +03:00
Yuriy Skalko
fe85162a29 Refactoring 2020-10-05 14:55:00 +02:00
Yuriy Skalko
efc0877f8f Add override specifiers to improve code maintainability 2020-10-03 12:43:48 +02:00
Stephan Witt
292799a4bd #11756 cleanup the view menu on Mac
Using US english desktop language LyX's Mac OS adds some items to the view menu:
1. Show/Hide Tab Bar and
2. Enter Full Screen
These items won't work properly and it's better to hide them.
2020-08-30 15:35:02 +02:00
Stephan Witt
1c5a2fc0ec #11756 hide additional menu items in edit menu on Mac
Mac OS adds two extra menu entries to the edit menu.
These menu items are:
1. Start Dictation...
2. Emoji & Symbols
Both menu items don't work with LyX.
Therefore they shouldn't be present and the new code hides them.
2020-08-30 11:24:59 +02:00
Juergen Spitzmueller
8415041b1f Use hexnames only for x11 colors
This prevents wrong color allocation with ambiguous names.

Fixes #11828

Patch by D. Ramöller with extensions by me.
2020-08-03 14:10:46 +02:00
Jean-Marc Lasgouttes
2a80b0ac01 Set desktop name for Wayland
Fixes bug 11847.
2020-07-11 20:40:30 +02:00
Jean-Marc Lasgouttes
8ceb4f6b58 Run codespell on src/frontends
Command was:
codespell -w -i 3  -S Makefile.in -L mathed,afe,tthe,ue,fro,uint,larg,alph,te,thes,alle,Claus,pres,pass-thru  src/frontends/
2020-06-26 00:21:47 +02:00