Commit Graph

2204 Commits

Author SHA1 Message Date
Juergen Spitzmueller
4a5ae39e8b Revert "Fix Qt6 deprecation warning (QString::fromUcs4(uint))"
This reverts commit 52dff70641.
2021-03-21 16:59:25 +01:00
Juergen Spitzmueller
52dff70641 Fix Qt6 deprecation warning (QString::fromUcs4(uint)) 2021-03-21 12:38:47 +01:00
Eugene Chornyi
4421b721e4 Make all a synonym of any in cmd debug mode 2021-03-21 09:59:23 +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
9f92fc92bd Yet another deprecation fix (this is the last one I am aware of) 2021-03-12 12:14:42 +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
Thibaut Cuvelier
d8c6bc7c1f Stop using a GCC extension for an unprintable character in regex. 2021-02-13 18:23:20 +01:00
Enrico Forestieri
04c0cce43e Fix make check
We have to explicitly link zlib after [197ea636/lyxgit].
2021-01-31 15:21:23 +01:00
Juergen Spitzmueller
76eae4572e Introduce InputGlobal (#12087)
This is a variant of Input for layout files that only searches build
and system directories and thus allows "InputGlobal name.inc" in a user
file name.inc that attempts to modify its global counterpart.
2021-01-26 08:42:39 +01:00
Kornel Benko
ea5e16d075 Replace calls from make_unique to lyx::make_unique
After advice from Yuriy Skalko to satisfy compilation with clang8
2021-01-15 11:36:14 +01:00
Richard Kimberly Heck
fcea6c471c Revert "Add move constructor and move assignment operator for FileName class"
For now, since it's causing problems on OSX particularly.

This reverts commit 854c9de8fa.
2021-01-14 03:08:12 -05:00
Richard Kimberly Heck
3f3d769107 Count words in hyperlink 2021-01-10 01:54:40 -05:00
Yuriy Skalko
854c9de8fa Add move constructor and move assignment operator for FileName class 2021-01-09 11:23:33 +02:00
Richard Kimberly Heck
cf07d4825f Fix bug #11104. Activate refstyle support for InsetMathRef.
At the moment, there is no support for plurals and capitalization.
A long comment explains why. Support could be added for that without
a format change.
2021-01-05 18:17:53 -05:00
Enrico Forestieri
2099dca5d3 Do not replace nonexistent environment variables
References to environment variables embedded in a filename are expanded
and replaced by their value. However, if a variable does not exist, its
reference is simply erased from the filename, causing havoc (see #7801).

This has been like that since ever and cannot be changed, both for
backward compatibility and because this feature is currently used in
the Windows installer.

A possible backward compatible strategy is leaving as is the reference
to the environment variable (introduced by a $ sign) in the filename
if it does not exist. This is done in this patch, which also assumes
that an escape character is never used in a filename (inserting a $ in
the filename is easy, but I don't think one is able to easily insert
an escape character).
2021-01-04 23:00:42 +01:00
Thibaut Cuvelier
adf62c3184 Fix compilation with MSVC 19. 2021-01-02 17:27:56 +01:00
Yuriy Skalko
197ea63631 Use crc32 calculation from zlib instead of boost 2020-12-28 21:32:56 +02:00
Yuriy Skalko
d9e455b61a Move Trackable class to Server.h 2020-12-19 22:52:57 +02:00
Yuriy Skalko
4f0981e7bb Merge namespace signals2 into namespace lyx 2020-12-19 22:52:51 +02:00
Yuriy Skalko
cbd1b3a2d4 Remove useless declaration 2020-12-19 21:33:33 +02:00
Richard Kimberly Heck
8c805db9d3 Typo 2020-12-18 17:35:58 -05:00
Richard Kimberly Heck
fdbbddecb7 Fix bug with registering files for VC when they are in repo subdirs. 2020-12-18 15:48:51 -05:00
Pavel Sanda
2db26ff522 Compile on older gcc. 2020-12-14 00:01:05 +01:00
Yuriy Skalko
bda4570400 Use new signal library nod instead of boost::signals2
Thanks Enrico for updating autotools files.
2020-12-13 23:11:19 +02:00
Yuriy Skalko
9348c5c635 Use to_string instead of boost::lexical_cast 2020-12-10 20:14:40 +02:00
Jean-Marc Lasgouttes
d9c39232ac Reduce the amount of needed boost headers
boost/signals2.hpp is a convenience header, it seems that
boost/signals2/signal.hpp is enough for our needs.

This allows to get rid of 6MiB of header files in 3rdparty/boost (and
probably to speed-up compilation).
2020-12-09 14:50:18 +01:00
Kornel Benko
a171c651a6 Revert "Amend 3093789e for cmake build"
This reverts commit b3d43404f4.
2020-11-30 10:19:22 +01:00
Yuriy Skalko
7779316e6c Include standard <regex> 2020-11-29 15:27:28 +02:00
Kornel Benko
b3d43404f4 Amend 3093789e for cmake build 2020-11-29 10:04:54 +01:00
Yuriy Skalko
075ae38ec9 Use correct std header 2020-11-29 10:49:59 +02:00
Jean-Marc Lasgouttes
3093789e8d remove most traces of boost::regex
1/ remove boost regex code from 3rdparty/boost. Only the cmake stuff remains.

2/ remove traces of BOOST_LIB since there is no need anymore to
   compile boost stuff.

3/ remove traces of boost regexp in config/lyxinclude.m4 and INSTALL

4/ require gcc 4.9 as minimal version in autoconf.

Unfortunately, the net gain is only 10% of included boost size (now 21M).
2020-11-28 19:59:17 +01:00
Yuriy Skalko
f3ec89cfa1 Always use std::regex
Since now minimum supported GCC is 4.9.
2020-11-27 12:39:59 +02:00
Yuriy Skalko
fdefff1108 Fix signed integer overflow on x = 0, detected by GCC sanitizer 2020-11-27 12:17:22 +02:00
Yuriy Skalko
6a21ec854b Move several common types to support/types.h 2020-11-27 12:16:22 +02:00
Yuriy Skalko
43b16548b4 Cleanup headers 2020-11-25 02:43:16 +02:00
Jean-Marc Lasgouttes
d53b44273c Compilation fix 2020-11-21 19:54:43 +01:00
Yuriy Skalko
8dfe07b5b5 Use std::any when compiler supports C++17 or later 2020-11-21 20:32:51 +02:00
Yuriy Skalko
cbad214cdd Refactor checksum calculation 2020-11-21 20:32:43 +02:00
Yuriy Skalko
7ca2f2b58d Use range-based loops 2020-11-21 20:32:16 +02:00
Yuriy Skalko
916ceeba12 Simplify Length 2020-11-21 00:32:47 +02:00
Yuriy Skalko
888ff9c114 Amend 9b1dc338b2. Fix compilation in GCC 4.9 2020-11-15 22:41:38 +02:00
Yuriy Skalko
9b1dc338b2 Simplify Changers 2020-11-12 14:22:00 +02:00
Yuriy Skalko
c7d0ba0f26 Simplify bformat 2020-11-02 11:54:40 +02:00
Yuriy Skalko
5061db891c Use const references 2020-11-01 22:23:26 +02:00
Yuriy Skalko
f1926251c0 Move Windows-specific stuff into os_win32.h 2020-10-25 19:59:03 +02:00
Yuriy Skalko
10272e4747 Move include of own header to the top. Fix dependencies 2020-10-25 19:58:57 +02:00
Yuriy Skalko
1b508fff03 Small refactorings 2020-10-25 09:28:41 +02:00
Yuriy Skalko
d25c10ed81 Remove duplicate and unused header includes in .cpp files 2020-10-19 18:01:11 +03:00
Richard Kimberly Heck
1f22a2520a Fix linking problem by adding convert from string to unsigned long long. 2020-10-14 22:28:10 -04:00
Pavel Sanda
c0f9309300 Move <fstream> from support/gzstream.h 2020-10-14 15:12:48 +02:00
Yuriy Skalko
2a594d3e90 Remove unused forward declarations 2020-10-13 09:57:36 +03:00
Thibaut Cuvelier
769578eac6 Fix typos in filetools.cpp. 2020-10-13 00:33:05 +02: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
d82adc625b Amend efc0877f
Add more `override` specifiers. Replace `throw()` to `noexcept`.
2020-10-05 09:37:15 +02:00
Yuriy Skalko
715b8cda54 Refactoring based on cppcheck suggestions 2020-10-03 13:39:51 +02:00
Yuriy Skalko
efc0877f8f Add override specifiers to improve code maintainability 2020-10-03 12:43:48 +02:00
Yuriy Skalko
fb7b7e5223 Refactor runCommand 2020-09-11 16:13:23 +02:00
Stephan Witt
45e8ea4acc #11756 Respect system preferences for tabbing on Mac 2020-09-04 23:28:27 +02:00
Enrico Forestieri
8039b34802 Adjust debug output for fonts
This restores the debug output as it was intended before the
introduction of the LYXERR macro that was unconditionally outputing
an end of line. This is how this output was appearing until lyx 1.5:

Looking for font family cmr10 ... got: cmr10
 got it normal!

instead of as it was since lyx 1.6 and until now:

Looking for font family cmr10 ...
got: cmr10
 got it
normal!
2020-09-01 12:12:55 +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
Stephan Witt
784139da50 Remove unused leftover from Makefile. 2020-08-30 11:24:59 +02:00
Stephan Witt
0fa4b7e736 #9376 prepare use of Length in lyxrc - move the class Length to support 2020-08-07 09:24:31 +02:00
Pavel Sanda
801d7dc9f4 typo 2020-08-01 22:54:01 +02:00
Pavel Sanda
eef0c8e8ed xHTML export: change filenames of exported images.
This patch aims at:
1. replacing absolute paths by their hashes (do not leak directory structures)
2. not using counters anymore so that changing figures order in the document
   does not lead to large number of obsolete images in export directory.

Other changes than in xHTML export of images are unintended.
2020-08-01 22:16:04 +02:00
Jean-Marc Lasgouttes
f758894c2f Use Common Number separator instead of European to detect numbers
The is a fixup to commit 611df441. It seems that the wrong unicode
property was selected. It could be that both classes should be used.

Fixes bug #11900.
2020-07-10 18:06:41 +02:00
Jean-Marc Lasgouttes
9fe1ed4d68 Run codespell on src/support
Codespell is run with command line
codespell -w -S Makefile.in -L mathed,afe,tthe,ue,fro,uint,larg,alph,te,thes,alle,Claus -i 3 src/support/
2020-06-25 23:17:18 +02:00
Richard Kimberly Heck
da362a6a59 Need this for std::endl now, according to Eugene 2020-06-06 13:06:06 -04:00
Richard Kimberly Heck
a2b21e3cd4 Fix more warnings and simplify a tiny bit. 2020-05-19 18:06:20 -04:00
Richard Kimberly Heck
a96ec2db45 Remove debugging code. Thanks Scott! 2020-05-17 20:59:34 -04:00
Richard Kimberly Heck
c6b3f35c8c Properly check return values so TIMEOUT is recognized. 2020-05-17 14:58:15 -04:00
Jean-Marc Lasgouttes
fc5b22a2f1 Get rid of lyx::next uses for RandomAccessList
These uses are inefficient (a loop really) and require that pit_type
is ptrdiff_t.

Instead, RandomAccesslist::constIterator is renamed to iterator_at and
a version adding a non-const iterator is added. Additionally, the
method retirns end() when position is equal to the size of the
container (see #11861).

lyx::next and lyx::prev are removed, and std::prev is used in the few
places where the code requires it (for no good reason IMO).
2020-05-14 10:35:49 +02:00
Jean-Marc Lasgouttes
c756749991 Revert "Get rid of lyx::next uses for RandomAccessList"
This is not ready (see #11861).

This reverts commit 6d97e39934.
2020-05-13 10:45:25 +02:00
Jean-Marc Lasgouttes
6d97e39934 Get rid of lyx::next uses for RandomAccessList
These uses are inefficient (a loop really) and require that pit_type
is ptrdiff_t.

Instead, RandomAccesslist::constIterator is renamed to iterator_at and
a version adding a non-const iterator is added.

lyx::next and lyx::prev are removed, and std::prev is used in the few
places where the code requires it (for no good reason IMO).
2020-05-12 17:29:21 +02:00
Richard Kimberly Heck
5f5cb7eea7 Fix warnings by using size_t as the loop variable. 2020-05-03 15:02:40 -04:00
Richard Kimberly Heck
e8800373e6 is_utf8 is always passed a char. 2020-05-03 15:02:25 -04:00
Richard Kimberly Heck
684d27c0fb New counter manipulation inset.
This inset allows counters to be set, reset, saved, restored, etc,
both in the LyX GUI and in the output; optionally, the effect can be
limited to the GUI. Of course, LaTeX provides means for doing all of
these things, so they could previously be done with ERT, as far as
the output is concerned. But there was no mechanism for manipulating
counters in the GUI and none for other output formats.
2020-04-30 23:09:36 -04:00
Richard Kimberly Heck
7b9dc7bc9e Revert last three commits.
There are other issues here. The big one is in TextMetrics::getPitNearY,
where -1 is used as a 'special' return value for pit.
2020-04-26 03:09:27 -04:00
Richard Kimberly Heck
c92b4f27ec Fix compilation problem 2020-04-26 03:04:06 -04:00
Richard Kimberly Heck
57065afb45 Whitespace 2020-04-25 22:57:09 -04:00
Richard Kimberly Heck
b9e2941847 Make pit_type unsigned (in particular, size_t).
This involves not just changing the type but checking that downward
loops and similar tricks don't break.
2020-04-25 22:50:48 -04:00
Richard Kimberly Heck
986a55fd7e Comment. 2020-04-19 13:31:57 -04:00
Kornel Benko
ef42541d26 Prepend dir containing created dtl executables to PATH
This should work on Windows, but needs test.
The changes (namely the installation directory for the dtl executables)
for automake are not yet done. (JMarc?)

It may fix bug #11325 if cmake configured with '-DLYX_EXTERNAL_DTL=OFF'
2020-04-13 12:51:04 +02:00
Juergen Spitzmueller
3f364864d4 Fix indentation 2020-03-22 10:10:36 +01:00
Richard Kimberly Heck
7c7ea3113f Use ranges and fix nullptr warnings. 2020-03-16 01:31:30 -04:00
Scott Kostyshak
24e0bd3afe Fix Qt deprecation warns for QTime
This commit fixes a couple of warnings from Qt 5.14 like the
following one:

  error: ‘int QTime::restart()’ is deprecated: Use QElapsedTimer instead [-Werror=deprecated-declarations]

This commit changes two uses of QTime to QElapsedTimer, one used
only when the "files" debug flag is set, and the other for timing
whether a script (e.g., knitr) takes longer than a certain amount of
time to run.

QElapsedTimer is superior for these two use cases in that it uses a
monotonic clock if possible, and is thus more robust to certain
changes (e.g., daylight savings changes) [1]. Similarly, the commit
in Qt Base that makes this deprecation [2] mentions the following in
the commit message:

  QElapsedTimer does the job better and without the DST kludges.

Note that QElapsedTimer class was introduced in Qt 4.7, so no
conditioning on Qt version is necessary.

Not all methods of QTime are deprecated and we still use some of
the non-deprecated methods in our code (e.g., to get the current
wall clock time in GuiProgress::currentTime()).

[1] https://doc.qt.io/qt-5/qelapsedtimer.html
[2] https://code.qt.io/cgit/qt/qtbase.git/commit/?id=ed99a591a83a399458f12341d0a1c0b3152f247a
2020-03-15 22:47:08 -04:00
Richard Kimberly Heck
bd0bf2125c Fix nullptr warnings 2020-03-01 15:31:58 -05:00
Richard Kimberly Heck
99bf96c56b Fix warnings in support/. 2020-02-29 00:06:35 -05:00
Richard Kimberly Heck
4460df3292 Fix header. 2020-02-29 00:06:35 -05:00
Richard Kimberly Heck
56a5a8280e Null pointers. 2020-02-29 00:06:35 -05:00
Enrico Forestieri
5873a382de Fix FileName::realPath() on Windows
The realPath() implementation on Windows works only for files and
not for directories. By using an API available starting from Vista
it is possible to fix it in a simple way.

I also took into account using the Qt QFileInfo::canonicalFilePath(),
but it turns out to not work when a path component is a junction
(tested with Qt 5.14.1).

Due to this, it is not possible compiling or using LyX on Windows
versions earlier than Vista.
2020-02-23 22:59:03 +01:00
Pavel Sanda
4e4bba441d gcc 4.7 leftover 2020-02-20 09:25:00 +01:00
Juergen Spitzmueller
4debbdd6b6 Restore custom tmp directory
Fixes #1174
2020-02-17 09:00:08 +01:00
Juergen Spitzmueller
e31364fdcb whitespace 2020-02-15 09:26:43 +01:00
Juergen Spitzmueller
195393f401 Fix Python detection on windows
Patch by Eugene Chornyi
2020-02-15 09:26:08 +01:00
Richard Kimberly Heck
b175f5a315 Fix bug #11737.
We need to use the FileName methods when moving or removing a file,
so that refresh() gets called.

(cherry picked from commit d930913898)
2020-02-13 00:11:23 -05:00
Juergen Spitzmueller
40b1a6f9b1 Revert "Fix bug #11712."
This breaks on Linux

This reverts commit fdf81a9bab.
2020-02-12 16:11:01 +01:00
Richard Kimberly Heck
fdf81a9bab Fix bug #11712.
Fixes some escaping issues on Windows especially

Patch from Eugene.
2020-02-12 09:25:13 -05:00