Commit Graph

26479 Commits

Author SHA1 Message Date
Scott Kostyshak
273af8803d Fix Qt deprecation warning for setItemHidden()
Consistent with commit 24926b2e.
2020-03-05 20:38:31 -05:00
Scott Kostyshak
27ca2bd950 Rename a var "sort" to not mask std::sort()
This allows us to use sort() without the "std" prefix.
2020-03-05 12:46:48 -05:00
Scott Kostyshak
14f369b47f Fix deprecation warnings from use of qSort()
This commit replaces qSort with std::sort to fix warnings from compiling with
Qt 5.14.1. Below is one of the warnings:

  error: ‘void qSort(RandomAccessIterator, RandomAccessIterator, LessThan) [with RandomAccessIterator = QList<lyx::ColorCode>::iterator; LessT$
  an = bool (*)(lyx::ColorCode, lyx::ColorCode)]’ is deprecated: Use std::sort [-Werror=deprecated-declarations]

qSort() has been deprecated since Qt 5.2. Quoting from the ChangeLog [1]:

  With STL no longer being optional for building and using Qt, a number of
  parts of QtAlgorithms no longer make sense, and have therefore been
  deprecated. Replacements are available in the STL, and generally have
  much better performance

There are some cases that require more than just a trivial substitution, but
our code does not appear to use any of those cases.

For some discussion on the differences in speed of std::sort() and
qSort(), see the following:

  https://phabricator.kde.org/D10857

These are just warnings now, but will likely be errors with Qt 6:

  https://bugreports.qt.io/browse/QTBUG-73048

I tested that LyX can still be built against Qt 4.8.7 with this commit.

This commit follows 24926b2e, which also fixes some deprecation warnings.

[1]
https://code.qt.io/cgit/qt/qtbase.git/tree/dist/changes-5.2.0/?h=v5.2.0
2020-03-05 12:44:39 -05:00
Scott Kostyshak
24926b2e23 Fix a few deprecation warnings in Qt 5.14.1
These changes fix a few instances of the following type of warning:

  error: ‘void QListWidget::setItemSelected(const QListWidgetItem*, bool)’ is deprecated: Use QListWidgetItem::setSelected() instead [-Werror=deprecated-declarations]

as well as similar warnings for setItemHidden() and
setItemExpanded(). These are just warnings now, but it is planned to
remove the methods for Qt 6:

  https://bugreports.qt.io/browse/QTBUG-73048

I tested that LyX can still be built against Qt 4.8.7 with this
commit. Indeed, these methods have been deprecated for a while (it
is just that QT_DEPRECATED_WARNINGS was only turned on by default
starting with 5.13.0). See, e.g.,

  https://doc.qt.io/archives/qt-4.7/qlistwidget-obsolete.html
2020-03-05 11:12:31 -05:00
Richard Kimberly Heck
e5b6be0712 Fix bug #10316.
By sending the request through the usual dispatch machinery, we
make sure the cursor is valid when we're done.
2020-03-03 23:17:09 -05:00
Richard Kimberly Heck
15659fed53 Andr'e points out this is wrong. Of course it is, since that is not a pointer. 2020-03-03 14:27:03 -05:00
Jean-Marc Lasgouttes
e99436b529 Do not display caret when we're not ready
Using a dialog may trigger a redraw at times where the metrics caches
have not been updated yet. To fix this, do as in paintEvent() and
abort caret blinking if there is an open undo group.

Move the decision to skip the caret painting to showCaret(), closer to
where real work happens. hideCaret () is now an alias for
showCaret(false), which allows some code refactoring.

See also commit c7496a11b2.

Fixes bug #11763 (although it does not trigger on master).
2020-03-03 12:30:27 +01:00
Richard Kimberly Heck
84e91772eb Fix nullptr warning 2020-03-03 00:08:46 -05:00
Richard Kimberly Heck
37c5cae58b Send a DispatchResult object with dispatch requests to the TOC.
This allows us to request a buffer update.
2020-03-03 00:08:06 -05:00
Richard Kimberly Heck
bd0bf2125c Fix nullptr warnings 2020-03-01 15:31:58 -05:00
Kornel Benko
9c4642fbcc Cmake tests: Amend f6f51587 2020-02-29 20:37:04 +01:00
Richard Kimberly Heck
4a81983edd Avoid a copy. 2020-02-29 05:55:20 -05:00
Richard Kimberly Heck
585823704a Fix warnings and use ranges. 2020-02-29 00:21:02 -05:00
Richard Kimberly Heck
9afc001fc5 Fix warnings 2020-02-29 00:21:00 -05:00
Richard Kimberly Heck
33d663720b Fix a bunch of warnings 2020-02-29 00:06:35 -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
Richard Kimberly Heck
8d26ae57ba Use ranges, fix warning 2020-02-28 01:55:05 -05:00
Richard Kimberly Heck
5baca8171f Use ranges, fix warning 2020-02-28 01:48:10 -05:00
Richard Kimberly Heck
969a1bab7d Use range 2020-02-28 01:44:48 -05:00
Richard Kimberly Heck
12d164393e Fix nullptr warnings 2020-02-28 01:42:32 -05:00
Richard Kimberly Heck
cf37ad8c80 Use ranges, fix warnings 2020-02-28 01:40:30 -05:00
Richard Kimberly Heck
084baebbf9 Fix nullptr warnings 2020-02-28 01:28:08 -05:00
Richard Kimberly Heck
3f9aa81452 Use ranges, fix warnings 2020-02-28 01:25:30 -05:00
Richard Kimberly Heck
94f64cd304 Fix warnings 2020-02-28 01:21:02 -05:00
Richard Kimberly Heck
5728625b65 Fix warnings 2020-02-28 01:16:21 -05:00
Richard Kimberly Heck
a9e663546b Use range 2020-02-28 01:16:10 -05:00
Richard Kimberly Heck
31c511d2ce Fix warnings 2020-02-28 01:09:45 -05:00
Richard Kimberly Heck
83779e7972 Use range and rename private variable 2020-02-28 01:08:28 -05:00
Richard Kimberly Heck
5b5b6998cb Use more ranges 2020-02-28 01:06:22 -05:00
Richard Kimberly Heck
7a66c93265 Use ranges 2020-02-28 00:52:38 -05:00
Richard Kimberly Heck
81597aabdb Polish 2020-02-28 00:39:50 -05:00
Richard Kimberly Heck
62af7ee772 More requires --> required, for C++2a. 2020-02-28 00:36:55 -05:00
Richard Kimberly Heck
21b4ecca7f Apparently, "requires" is a keyword in C++2a. 2020-02-28 00:28:18 -05:00
Richard Kimberly Heck
0dc9fca86e Remove code that has not been used since 2010.
See 208acbc72.
2020-02-28 00:21:48 -05:00
Richard Kimberly Heck
b750941910 Stop dialogs from updating twice all the time.
I've long wondered why dialogs seem to update twice when it seems
they just need to update once. It seems it was this code. But it
was only put there to deal with a problem with code in the button
controllers that was disabled in 2007! So I'm going to try removing
it. If we start seeing weird behavior with dialogs in master, then
this will be why.
2020-02-28 00:11:45 -05:00
Richard Kimberly Heck
f53243f81b Fix warnings 2020-02-28 00:10:23 -05:00
Richard Kimberly Heck
78ade7e6ec Remove code that has not been used for 13 years. 2020-02-28 00:08:30 -05:00
Richard Kimberly Heck
1948391a94 Fix warnings. 2020-02-28 00:07:53 -05:00
Richard Kimberly Heck
c483565522 Fix a bunch of warnings. 2020-02-27 23:58:01 -05:00
Richard Kimberly Heck
2165855d5e Revert unintended change 2020-02-27 14:36:46 -05:00
Richard Kimberly Heck
f4d5122a10 Fix null pointer warnings. 2020-02-27 00:05:41 -05:00
Richard Kimberly Heck
79bcf68018 Fix warning (and simplify) 2020-02-26 23:37:24 -05:00
Richard Kimberly Heck
64f7da961a Fix bug #11748.
Track the last chosen citation style when we clear the entries.
2020-02-26 23:00:09 -05:00
Richard Kimberly Heck
ca40d1f92a Fix a bunch of warnings 2020-02-26 22:29:40 -05:00
Richard Kimberly Heck
2e444dd657 Fix problem with validation when using InsetLayout. 2020-02-26 22:19:36 -05:00
Enrico Forestieri
f28334ac8b Cleaner fix to ensure 32-bit XCB events
This fix still satisfies Valgrind and is cleaner than the approach
at 19c41bd0: instead of using calloc we now use the C++11 specifier
alignas. For more info, see the following ML thread:
https://www.mail-archive.com/search?l=mid&q=20200219024908.5n4x4osni55gylo3%40tallinn
2020-02-25 12:37:51 +01:00
Enrico Forestieri
8977296078 Revert "Fix write to uninitialized bytes for XCB event"
This reverts commit 19c41bd095.

A more efficient fix is on the way.
2020-02-25 12:32:10 +01:00
Jean-Marc Lasgouttes
74540c9896 Fixup d207e85c: paint sublabel with the correct background color
The above mentionned patch did paint the background of the sublabel to
avoid "bold-like" effect. However the correct backgound color is the
row's one, not the inset's one.
2020-02-24 10:41:18 +01:00
Richard Kimberly Heck
a9d9fdc9bf Fix alignment warnings from clang. 2020-02-23 17:15:01 -05:00
Richard Kimberly Heck
34f9ea8275 Use C++11 construct. 2020-02-23 16:59:59 -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
Richard Kimberly Heck
0daceae649 Try again to fix memory leak reported by Scott.
This time, use a shared_ptr.
2020-02-23 16:56:43 -05:00
Richard Kimberly Heck
72c581ebdb Revert "Fix memory leak reported by Scott."
It leads to a double delete error.

This reverts commit 11397a2e82.
2020-02-23 16:29:58 -05:00
Richard Kimberly Heck
11397a2e82 Fix memory leak reported by Scott. 2020-02-23 15:54:13 -05:00
Richard Kimberly Heck
86f95062bd Fix some clang warnings.
The first one, a comma instead of a semi-colon, is a weird one.
2020-02-23 15:52:15 -05:00
Richard Kimberly Heck
d11a27a611 Fix nullptr warnings 2020-02-23 15:52:15 -05:00
Richard Kimberly Heck
608b927daf Fix "no extern declaration" warning. 2020-02-23 15:52:15 -05:00
Jean-Marc Lasgouttes
57b400cdff Make sure that spelling marks do not spill ouside of row
This avoids annoying remnants of dotted red lines.

Fixes bug #11755.
2020-02-22 18:02:13 +01:00
Stephan Witt
f2f861f017 Use real path names for buffer lookup by name of temporary external files.
In case of path names for external files containing symbolic links the real path
and the logical path name may be different for the same file or directory.
LyX is using QDir::tempPath() to create the path name of the temporary directory.
The Qt implementation is free to return the logical or the real path name here and
it happens to be different for various platforms and versions.
The most stable and clean solution is to use the real path name consistently.
2020-02-22 12:11:42 +01:00
Stephan Witt
aec491f686 Avoid potential leak of memory pointed to by QTreeWidgetItem subcatItem 2020-02-21 07:57:09 +01:00
Pavel Sanda
4e4bba441d gcc 4.7 leftover 2020-02-20 09:25:00 +01:00
Stephan Witt
2bf7756196 Avoid potential leak of memory pointed to by QTreeWidgetItem catItem 2020-02-20 08:12:08 +01:00
Scott Kostyshak
19c41bd095 Fix write to uninitialized bytes for XCB event
As the xcb_send_event man page [1] states,

  In order to properly initialize these bytes, we allocate 32 bytes
  even though we only need less for an xcb_configure_notify_event_t

This commit fixes the following Valgrind error, which could be
triggered by selecting a letter in LyX:

  ==12698== Syscall param writev(vector[...]) points to uninitialised byte(s)
  ==12698==    at 0x61F578D: __writev (writev.c:26)
  ==12698==    by 0x61F578D: writev (writev.c:24)
  ==12698==    by 0x4A83BFC: ??? (in /usr/lib/x86_64-linux-gnu/libxcb.so.1.1.0)
  ==12698==    by 0x4A83FD0: ??? (in /usr/lib/x86_64-linux-gnu/libxcb.so.1.1.0)
  ==12698==    by 0x4A84246: ??? (in /usr/lib/x86_64-linux-gnu/libxcb.so.1.1.0)
  ==12698==    by 0x4A84ACB: xcb_flush (in /usr/lib/x86_64-linux-gnu/libxcb.so.1.1.0)
  ==12698==    by 0x17C8F06: lyx::frontend::GuiApplication::nativeEventFilter(QByteArray const&, void*, long*) (GuiApplication.cpp:3366)
  ==12698==    by 0x5AA4EEE: QAbstractEventDispatcher::filterNativeEvent(QByteArray const&, void*, long*) (qabstracteventdispatcher.cpp:484)

[1] https://www.x.org/releases/current/doc/man/man3/xcb_send_event.3.xhtml
2020-02-19 09:48:54 -05:00
Pavel Sanda
b7af21ad7c Fix memory leak.
Spotted by Scott.
https://www.mail-archive.com/lyx-devel@lists.lyx.org/msg210447.html
2020-02-18 10:03:42 +01:00
Stephan Witt
fc790bc1f5 Add missing check for nullptr on check of language encoding of next paragraph. 2020-02-18 09:03:20 +01:00
Stephan Witt
f904fb2d61 Add missing initialization for local variable.
The autoargs variable is random for empty macro argument lists otherwise.
2020-02-18 08:59:20 +01:00
Stephan Witt
fe02f151f9 Remove useless assignments to a local variables never read later. 2020-02-18 08:55:45 +01:00
Stephan Witt
225de7830e Remove useless assignment to a local variables never read later. 2020-02-18 08:55:00 +01:00
Stephan Witt
febbc3537a Avoid crashes in case of missing document buffer for buffer based conversions. 2020-02-18 08:43:22 +01:00
Richard Kimberly Heck
731feb9f18 Silence some clang warnings. 2020-02-17 12:31:38 -05:00
Richard Kimberly Heck
fb03f2a5ec Fix a strange warning in QtCreator:
/cvs/lyx/lyx-devel/src/frontends/qt/TocModel.cpp:356: warning: loop variable 'toc' has type 'const pair<std::string, shared_ptr<lyx::Toc> > &' (aka 'const pair<basic_string<char>, shared_ptr<vector<lyx::TocItem> > > &') but is initialized with type 'const std::pair<const std::__cxx11::basic_string<char>, std::shared_ptr<std::vector<lyx::TocItem, std::allocator<lyx::TocItem> > > >' resulting in a copy

/cvs/lyx/lyx-devel/src/frontends/qt/TocModel.cpp:356: use non-reference type 'pair<std::string, shared_ptr<lyx::Toc> >' (aka 'pair<basic_string<char>, shared_ptr<vector<lyx::TocItem> > >') to keep the copy or type 'const std::pair<const std::__cxx11::basic_string<char>, std::shared_ptr<std::vector<lyx::TocItem, std::allocator<lyx::TocItem> > > > &' to prevent copying

Easier just to use 'auto'.
2020-02-17 12:31:38 -05:00
Stephan Witt
f12c4dbcd9 Remove unnecessary assertion after explicit buffer pointer check. 2020-02-17 14:35:03 +01:00
Stephan Witt
a1d68511ac Avoid potential crashes with missing document buffer in dispatch of buffer based LFUNs.
Use LASSERT with appropriate action instead of LATTEST assertions.
Debug build is unchanged and asserts, release build skips the action gracefully.
2020-02-17 13:36:37 +01:00
Stephan Witt
0f1f00db27 Code cleanup: avoid repeating temp_dir method calls while local variable has a result already. 2020-02-17 13:25:35 +01:00
Juergen Spitzmueller
4debbdd6b6 Restore custom tmp directory
Fixes #1174
2020-02-17 09:00:08 +01:00
Pavel Sanda
2db6a81156 Unify handling in dispatchVC.
All these check could be actually dropped, because unless dispatchVC
is called directly, getstatus would already handle it.
2020-02-15 20:55:14 +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
Stephan Witt
6dab8739eb Avoid uninitialized position variables in case of current inset not doing the assignment 2020-02-14 12:11:10 +01:00
Stephan Witt
aca95619b8 Avoid potential leak of memory pointed to by QStandardItem catItem 2020-02-13 16:39:14 +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
Stephan Witt
e900b61d46 Make cell index of tabular local for column loop. 2020-02-12 12:32:31 +01:00
Stephan Witt
3ee1bcad04 Remove another unnecessary assignment 2020-02-12 12:28:18 +01:00
Enrico Forestieri
926c846abb Remove unnecessary assignments 2020-02-10 21:59:52 +01:00
Enrico Forestieri
536d476d38 Make sure to not dereference a null pointer. 2020-02-10 21:54:07 +01:00
Juergen Spitzmueller
b8546139c8 Properly resize columns of child document table widget 2020-02-07 17:23:14 +01:00
Juergen Spitzmueller
4fd4310ea7 Indentation fixes 2020-02-07 16:03:56 +01:00
Stephan Witt
59fa0b2592 Fix a crash with uninitialized buffer member of MathData
See the details here: https://www.mail-archive.com/lyx-devel@lists.lyx.org/msg210294.html
2020-02-07 10:17:33 +01:00
Stephan Witt
a50e07db46 update canAutoOpenFile/autoOpenFile implementation to new MacOSX API, avoid deprecated calls 2020-02-06 21:52:46 +01:00
Richard Kimberly Heck
5188f0fcff Don't need to remove the file if it doesn't exist. (This would cause a five second delay in that case.) 2020-02-03 11:37:12 -05:00
Scott Kostyshak
05f2494008 Remove a finishUndo() after a recordUndo()
finishUndo() is only helpful in the presence of undos of type INSERT
or DELETE.

See the following ML thread for details:

  https://www.mail-archive.com/search?l=mid&q=b721c098-c7ee-d12f-1cdf-067dda9aa5cf%40lyx.org
2020-02-02 16:10:59 -05:00
Juergen Spitzmueller
dce9e44a14 Ignore geometry-related settings if the class provides geometry
Fixes #11724
2020-01-29 11:25:01 +01:00
Jean-Marc Lasgouttes
4d6041a7b6 Adopt a 'belt and braces' approach to bidi forcing
There are two techniques that I know of for forcing the direction of a
string, regardlessly of whether its contents is naturally LtR, RtL or
undecided.

1/ The unicode LTR/LTR override characters. This is supposed to be the
   clean way, however, it does not seem to work with Qt 5.14 (see
   #11691).

2/ The undocumented QTextLayout::setFlags method. This is used
   internally and allows to pass the (undocumented) flags
   Qt::TextForceRightToLeft and Qt::TextForceLeftToRight. This was
   used until we had issues with Qt 5.11 (see #11284).

In order to get the best of both worlds, this patch allows to enable
those two methods separately, and actually enables both at the same
time by default!

(hopefully) Fixes bug #11691.
2020-01-27 23:23:10 +01:00
Jean-Marc Lasgouttes
4f4d52e8c0 Fix warning with --disable-nls 2020-01-27 15:34:27 +01:00
Jean-Marc Lasgouttes
9017581ecf Fix distcheck target
1/ The most annoying part was the error in po/. It turns out that reading
and understanding the po/Makevars file was the key. A simple change of
variable ensures that "make dist" does not try to rebuild lyx.pot.

2/ The way tests in src/ are defined meant that the
dependency-tracking files were not all deleted. This should be OK now.
2020-01-26 20:31:03 +01:00
Juergen Spitzmueller
62a2b69bb0 Remove terminating linebreak 2020-01-16 10:19:52 +01:00
Jean-Marc Lasgouttes
ba79a4b89e Make graĥics and external insets tighter
Now RenderGraphics adds offsets that depends on its parent inset.

These offsets are set to 0 for InsetGraphics and InsetExternal. A nice
consequence is that icons shown by Info inset stick out less on screen.

As an unrelated change, the "private:" specifier of these two insets
is moved to a more reasonable place.
2020-01-15 16:00:02 +01:00
Jean-Marc Lasgouttes
7d3d07ff40 Fixup eeb4187a: copy-paste errors 2020-01-15 15:19:38 +01:00
Jean-Marc Lasgouttes
eeb4187a28 Remove some spacing above InsetColapsible when possible 2020-01-15 11:13:54 +01:00
Jean-Marc Lasgouttes
9176e60b7b Make script inset much tighter in texted.
We use the fact that offsets can be set separately for each inset.
2020-01-15 11:13:54 +01:00
Jean-Marc Lasgouttes
0ef2c192c0 Replace the hardcoded TEXT_TO_INSET_OFFSET by tunable values
The basic value is Inset::textOffset(BufferView*), which can in theory
change with the BufferView zoom and dpi. It is hardcoded to 4 for now.

Moreover, we introduce the virtual inset methods
(top|bottom|left|right)Offset, which can be tweaked for each inset.

No change intended (for now).
2020-01-15 11:13:54 +01:00
Juergen Spitzmueller
8bd47bda8c Improve comments 2020-01-15 08:40:51 +01:00
Juergen Spitzmueller
a940e9d709 Cross out ct-deleted tabular rows/columns in workarea 2020-01-15 08:37:35 +01:00
Pavel Sanda
8c4d6bbba6 endl needs ostream header here. 2020-01-14 21:59:05 +01:00
Juergen Spitzmueller
218731c3eb Whitespace 2020-01-14 16:23:09 +01:00
Juergen Spitzmueller
1e5f252667 Account for bidi (swapped columns) when calculation clines
Fixes #11717
2020-01-14 16:15:49 +01:00
Juergen Spitzmueller
66c5d055e7 Do not output deleted rows columns if show changes in output is false 2020-01-14 13:03:12 +01:00
Juergen Spitzmueller
78ac0b4266 Fix typo in tooltip 2020-01-14 13:02:40 +01:00
Jean-Marc Lasgouttes
a187cbeb64 Rename PainterMetrics::change_ to change
This is not a private variable.
2020-01-14 11:50:44 +01:00
Jean-Marc Lasgouttes
5bb9ded4d6 Streamline RowPainter a bit 2020-01-14 11:42:01 +01:00
Juergen Spitzmueller
b5856628f1 Set changed status for changed column/row cells in updateIndexes() 2020-01-14 10:39:42 +01:00
Juergen Spitzmueller
2a48fbbf7f Some polishment. 2020-01-14 09:55:16 +01:00
Juergen Spitzmueller
33133733ae Record change author and time for tracked columns/rows
This now uses a real change object
2020-01-14 09:28:36 +01:00
Juergen Spitzmueller
194298045c Color lines of added/deleted rows/columns 2020-01-13 19:02:48 +01:00
Jean-Marc Lasgouttes
cbabff4686 Do make changebar shorter for last row
I do not know what the intent was, but it is ugly.
2020-01-13 17:42:31 +01:00
Jean-Marc Lasgouttes
93794d6fea Implement isChanged for tabular inset. 2020-01-13 16:35:15 +01:00
Jean-Marc Lasgouttes
b0371714a0 Only show pencil change mark when inset is collapsed 2020-01-13 16:35:15 +01:00
Juergen Spitzmueller
5fc2662b13 Add pref to keep ct markup on copy/paste
Fixes #10278, #10128
2020-01-13 15:20:48 +01:00
Jean-Marc Lasgouttes
1baa8cdc93 When iterator is in a table cell, set Changed indicator for the right inset. 2020-01-13 15:08:50 +01:00
Juergen Spitzmueller
c6ef96ea36 Prevent NULL pointer 2020-01-13 13:03:52 +01:00
Juergen Spitzmueller
adfd38e4ef Fix backspace deletion of selected items with change tracking
Move cursor at beginning of selection after deletion. Else backspace
operation gets stuck in a loop (tries to remove the selection again
and again).

This also fixes backspace deletion of insets with confirmDeletion() == true.

Fixes #11630
2020-01-13 09:48:56 +01:00
Juergen Spitzmueller
ff85641cc0 Whitespace 2020-01-13 09:21:32 +01:00
Juergen Spitzmueller
a450797b2a Rest in peace, dvipost! 2020-01-13 08:59:26 +01:00
Jean-Marc Lasgouttes
e340f46476 Fixup bf7f4d71: Let changeRefsIfUnique handle undo
This allows for a much lower memory consumption than a plain
recordUnfoFullBuffer.

Related to bug 6494.
2020-01-12 22:18:36 +01:00
Jean-Marc Lasgouttes
4a4ded2297 Reimplement computation of change tracking status
This is a reimplementation of 6d4e6aad that is both simpler and more
complete.

This uses the updateBuffer mechanism to implement a fully working
version of Inset::isChanged(). Now the function returns true for an
inset that contains an inset that contains a change, for example.

Moverover Buffer::areChangesPresent() is merely a proxy for
Buffer::inset().isChanged().
2020-01-12 20:26:35 +01:00
Jean-Marc Lasgouttes
dba1e40b52 Revert "Automatically show the review toolbar if the document has tracked changes"
We will replace this with a better solution

For now, only keep
- Changes::isChanged()
- Buffer::areChangesPresent(), replaced by a dummy function

Next step will be to provide a working areChangesPresent() and to
compute Inset::isChanged in updateBuffer.

This reverts commit 6d4e6aad24.
2020-01-12 20:26:35 +01:00
Jean-Marc Lasgouttes
ce950f1ea5 Fixup b321bb1a: set changebar when inset contains changes
Add Paragraph::isChanged() and InetText::isCgchanged() which indicate
the presence of a change in the relevant object.

Sets Row::needsChangebar() when adding an inset that contains changes.

Related to bug #8645.
2020-01-12 20:26:35 +01:00
Enrico Forestieri
45f8254cbd Fix bug #11716
Close \lyx*displayobjdeleted so that the correct macro is used for
the following deleted material.
2020-01-12 18:35:15 +01:00
Juergen Spitzmueller
ac8aa981db Do not track deletion of empty paragraph
Fixes #10412
2020-01-11 18:11:26 +01:00
Juergen Spitzmueller
4718d63fc3 Output proper driver to changebar package when using dvi chain
Else the bars are not shown
2020-01-11 16:51:00 +01:00
Juergen Spitzmueller
bbc6ea4a5f Implement change tracking of column/row addition/deletion
Fixes #8469

File format change
2020-01-11 16:17:04 +01:00
Jean-Marc Lasgouttes
bf7f4d716c Avoid blinking change tracking cur for math inset.
Since there is a margin above and below the inset, there is no problem
for putting it higher.

Fixes bug #11684.
2020-01-11 13:39:20 +01:00
Juergen Spitzmueller
c77999a5f3 Add buffer param to opt-out fragile content movement
Fixes #11714

File format change
2020-01-10 10:21:09 +01:00
Jean-Marc Lasgouttes
09130d7a62 Update to boost 1.72
This requires to add a assertion_failed_msg handler. Take this
occasion to cleanup and uniformize the various boost.cpp files that we
have.

This adds 50k line of whatever to the source code.
2020-01-07 16:27:23 +01:00
Jean-Marc Lasgouttes
294969c6a2 Improve Update::FitCursor when there is a selection
It is better indeed to try to make the whole selection fit on screen.

Fixes bug #11012.
2020-01-07 10:13:09 +01:00
Juergen Spitzmueller
224bc7de6e Fix copy-paste error (spotted by coverity) 2020-01-03 13:39:50 +01:00
Kornel Benko
ae7a7fa882 Adv search: fix handling of multiple params of a latex command
Fix the case of possibly nested parentheses
2020-01-03 13:11:47 +01:00
Juergen Spitzmueller
dc41c1f6df New helper lfun ifrelatives
This executes a command only if a buffer has either a master or children

Helps to disable master-related items in the UI
2020-01-02 14:09:24 +01:00
Juergen Spitzmueller
3f7b8db1b1 Further improve status check of master-buffer-forall 2020-01-02 14:09:01 +01:00
Kornel Benko
49aaf95894 Fix handling of doRemove in advanced search
Amend 11c47ddf
2020-01-01 14:03:21 +01:00
Juergen Spitzmueller
af9651a6a5 Slightly better status of master-buffer-forall 2019-12-31 18:46:33 +01:00
Juergen Spitzmueller
79674c7632 Track changes in InsetCommands 2019-12-31 15:46:03 +01:00
Juergen Spitzmueller
11c47ddfcf Do not copy deleted text to external clipboard
Fixes #10416
2019-12-31 13:47:06 +01:00
Juergen Spitzmueller
affc006bae Honor change tracking when automatically renaming refs to labels
Fixes rest of #11556
2019-12-31 12:29:53 +01:00
Juergen Spitzmueller
69792bbaa5 Implement master-buffer-forall
Similar to buffer-forall with the notable exception that its scope is
limited to the files of a project (master and all children)
2019-12-31 12:27:00 +01:00
Juergen Spitzmueller
a5db5d4c90 whitespace 2019-12-30 16:28:15 +01:00
Juergen Spitzmueller
ada07d0bf1 Amend dc174db6c1 2019-12-30 13:25:49 +01:00
Juergen Spitzmueller
adc90a5570 Fix some regressions with ct-struckout underlined display math 2019-12-30 13:00:03 +01:00
Kornel Benko
48c7d9b028 Do not search in deleted text in change tracking mode 2019-12-29 17:42:18 +01:00
Juergen Spitzmueller
8a17cc01e0 Implement (basic) ct for tabular-feature delete-row and delete-column
Fixes part of #8469

For a proper fix that works with change-reject as well as with hide
changes in output, we need to implement
ct information in tabular's row and column.
2019-12-29 14:09:52 +01:00
Juergen Spitzmueller
b37b39365f Remove obsolete FIXMEs 2019-12-29 12:07:55 +01:00
Juergen Spitzmueller
e65fdc6a51 Track change of label name
Fixes #11556
2019-12-29 11:01:18 +01:00
Juergen Spitzmueller
2fc0fdb3e4 Assure deleted display objects start on new line 2019-12-29 10:10:14 +01:00
Juergen Spitzmueller
b321bb1aed Indicate change of content in label of collapsed collapsible
Fixes #8645
2019-12-29 09:46:18 +01:00
Juergen Spitzmueller
89b5607e0a Centralize code to markup deleted complex objects (with tikz) in output
This fixes #9293
2019-12-28 13:43:17 +01:00
Juergen Spitzmueller
f686a97fd8 Restructure ct LaTeX markup
This makes it easier to redefine the markup only.
2019-12-28 13:41:19 +01:00
Juergen Spitzmueller
80361eb1eb Do not track changes while accepting/rejecting all changes
Fixes #7487
2019-12-27 14:49:51 +01:00
Juergen Spitzmueller
b2c2a6e15d Correctly handle deleted text on inset-dissolve
Part of #10128
2019-12-27 14:32:20 +01:00
Juergen Spitzmueller
28da0f4360 Properly nest \lyxdeleted within text markup
Fixes #8807
2019-12-27 13:56:53 +01:00
Juergen Spitzmueller
6964886daf Consider deleted spaces in spell checking
Addresses part of #11470
2019-12-27 13:01:35 +01:00
Juergen Spitzmueller
da5ad1736a Handle change-accept and change-reject in multi-cell selection
Fixes #8426
2019-12-27 12:05:56 +01:00
Juergen Spitzmueller
c0f4eb0580 Introduce buffer-reset-export
Small helper lfun that makes LyX remove the aux file before doing the
next export. A bit more convenient than removing the files manually
or restarting LyX.
2019-12-27 11:06:34 +01:00
Juergen Spitzmueller
39bff52797 Increase lyxrc format 2019-12-27 11:06:11 +01:00
Juergen Spitzmueller
8e62dcc20f Add pref option to disable underlining of added text (in workarea)
Addresses #10102
2019-12-27 10:35:52 +01:00
Juergen Spitzmueller
7c63896c60 CT: Mark deleted floats in output
Fixes #11175
2019-12-27 09:50:11 +01:00
Juergen Spitzmueller
117e63b01b Correctly show merged paragraphs with ct in plain text output
Fixes #3137
2019-12-27 09:01:06 +01:00
Juergen Spitzmueller
c096382beb Initialize correct font in description label with ct
Fixes #10811
2019-12-27 08:42:43 +01:00
Jean-Marc Lasgouttes
aeed6fb8fa Do not check again and again for non existing files
If the file of an InsetInclude does not exist, loadIfNeeded will try
again and again to look for it. This is very bad for files with many
include insets, especially on windows.

Fixes bug #11656.
2019-12-26 16:45:40 +01:00
Juergen Spitzmueller
38ca174819 Fix crash 2019-12-26 16:36:25 +01:00
Juergen Spitzmueller
6ed3eb6833 Signify added/deleted apr break in ct output
Fixes #3159
2019-12-26 15:43:00 +01:00
Juergen Spitzmueller
dc174db6c1 Correctly handle deleted environments in ct
Fixes #10252
2019-12-26 15:24:48 +01:00
Juergen Spitzmueller
afb442c76c Correctly show merged paragraphs with change tracking
Fixes #3136
2019-12-26 13:47:50 +01:00
Juergen Spitzmueller
54e10dc1ad Fix assertion 2019-12-26 12:32:50 +01:00
Juergen Spitzmueller
d644ba0087 Do not output empty \item's or \commands with change tracking
unless "show in output" is selected.

Fixes #2861
2019-12-26 12:26:32 +01:00
Juergen Spitzmueller
90ae998287 Show modified text in merge changes dialog as far as possible
Fixes #1362
2019-12-26 11:17:09 +01:00
Juergen Spitzmueller
d914142969 Improve info in changes dialog 2019-12-26 08:01:37 +01:00
Juergen Spitzmueller
e5a9d09870 Mark deleted graphics in output
Fixes #11687
2019-12-26 07:15:37 +01:00
Juergen Spitzmueller
efa381f3d4 typo 2019-12-26 05:28:50 +01:00
Juergen Spitzmueller
2d4948e107 Forgot this 2019-12-25 09:38:47 +01:00
Juergen Spitzmueller
0dbc3f759a Disable changebar checkbox if show changes in output is off 2019-12-24 18:43:22 +01:00
Juergen Spitzmueller
dc4823e759 Add native changebars
Fixes #10750
2019-12-24 18:12:22 +01:00
Juergen Spitzmueller
a08cbf41cf Provide way to add (optional) user initials
This makes it easier to hook the changes package into LyX's ct markup.
2019-12-24 14:31:08 +01:00
Juergen Spitzmueller
0139bcf48f Clarify change text color descriptors
Addresses #11704
2019-12-24 08:37:27 +01:00
Juergen Spitzmueller
00985cf2fa Don't hide qualified citation list individual pre- and posttexts on single.item references
See #11697
2019-12-22 14:02:21 +01:00
Juergen Spitzmueller
b879821897 Pass proper input markup option to xindy with xetex/luatex
plain xindy also needs the latex input markup specified
2019-12-16 11:50:11 +01:00
Scott Kostyshak
79787c2274 Correct typo in method name getDescendants()
When used as an adjective, both variants "descendent" and
"descendant" are acceptable, but when used as a noun only
"descendant" should be used.

For a reference, see here:

https://en.wiktionary.org/wiki/descendent#Noun
2019-12-15 23:36:17 -05:00
Scott Kostyshak
989a49f377 Remove execute permission from two source files 2019-12-15 23:32:29 -05:00
Juergen Spitzmueller
239dee34af Report makeindex/xindy errors
Fixes #2569
2019-12-15 13:48:21 +01:00
Juergen Spitzmueller
aa141bc293 Enhance support for Xindy
This adds the proper language module and codepage for languages supported
by Xindy
2019-12-15 12:01:59 +01:00
Scott Kostyshak
f1accdebf3 Refresh previews on branch toggle
We only referesh previews if the branch that is toggled exists in a
descendant. This code could be further optimized, as noted in the
comments.

For relevant discussion, see the following ML thread:

https://www.mail-archive.com/search?l=mid&q=20191209022030.d6gyy3abdectr3yz%40tallinn
2019-12-11 11:48:56 -05:00
Scott Kostyshak
c61472303e Fix crash due to encoding issues with child doc
This crash occurred starting with 553bebc3, and can be triggered
when preview is enabled both in preferences and in a child document
inset. For a minimal example, see the following ML thread:

  https://www.mail-archive.com/search?l=mid&q=20191209002609.6fao3dljtf3ohl25%40tallinn

This fix restores behavior to before that commit for the case when
oldEnc is 0.
2019-12-10 09:17:49 -05:00
Jean-Marc Lasgouttes
2e784b2f06 Fixup e1be71da: do not enforce plain layout when dissolving
Instead of checking whether the dissolved inset enforces plain layout,
it is better to check whether is uses plain layout.

Fixes #10369.
2019-12-06 10:23:03 +01:00
Jean-Marc Lasgouttes
5ac3b88007 Disable inset-dissolve in table cells
This is better than making sure that the inset has exactly one cell.

In the future, inset-dissolve could be extended to dissolve all the
cells contents in the enclosing text.

Note that this check does not appear in mathed, and using dissolve in
e.g. fraction inset may lead to data loss (only current cell contents
is preserved).
2019-12-06 09:54:43 +01:00
Pavel Sanda
88ff1686bc typo 2019-11-21 17:13:47 +01:00
Pavel Sanda
ae16abf57a Reduce number of strings (the same one in buffer). 2019-11-21 17:11:09 +01:00
Juergen Spitzmueller
ed44bc9b12 Fix crash with polyglossia and intitle commands when lang_auto_end is false 2019-11-21 08:38:21 +01:00
Juergen Spitzmueller
772f2a2841 GuiSelectionManager: fix getSelectedIndex for availableLV 2019-11-20 14:07:05 +01:00
Juergen Spitzmueller
a426b33067 Fix issues with tilde in inputpath
Fixes #11699
2019-11-20 11:57:32 +01:00
Juergen Spitzmueller
e75fa6f3ac Re-fix #11146 with recent LaTeX 2019-11-20 11:48:18 +01:00
Juergen Spitzmueller
5d45c10fc7 Fix crash in selection manager
Patch by Patrick De Visschere
2019-11-19 13:47:32 +01:00
Juergen Spitzmueller
1a1adbc821 Handle paragraph direction switch in captions (with polyglossia/bidi) 2019-11-19 13:45:35 +01:00
Juergen Spitzmueller
967158c054 Always use local font switches in table cells. 2019-11-17 11:07:18 +01:00
Jean-Marc Lasgouttes
49ed5b4626 Add a setBuffer method to InsetArgumentProxy
This is needed to set the buffer of default values of optional arguments.

Fixes bug #11695.
2019-11-15 20:43:00 +01:00
Kornel Benko
c9c86b4966 Cmake build: Remove warnings about deprecated policy CMP0069
Deprecated since cmake version 3.16
(Now explicitly enable/disable interprocedural optimization
if supported and not debugging)
2019-11-09 16:56:16 +01:00
Pavel Sanda
d6b108d8c3 Support C++98 again (gcc 4.8). 2019-11-06 15:54:27 +01:00
Jean-Marc Lasgouttes
2a2019d77e Constify and un-constify 2019-11-06 10:36:21 +01:00
Jean-Marc Lasgouttes
69fca0df1a Amend 464d6262: Forgot these 2019-10-27 00:17:27 +02:00
Jean-Marc Lasgouttes
d9edf32b67 Remove some useless expressions
Spotted by cppcheck
2019-10-27 00:09:05 +02:00
Jean-Marc Lasgouttes
464d6262b1 Simplify boolean expressions
Spottd by cppcheck.
2019-10-27 00:08:02 +02:00
Jean-Marc Lasgouttes
c73d397d32 Do not use same name for members and arguments
Spotted by cppcheck.
2019-10-27 00:06:54 +02:00
Jean-Marc Lasgouttes
68c88bc427 Use unsigned values for enum
Otherwise 1 << 31 overflows.

Spotted by cppcheck.
2019-10-27 00:05:41 +02:00
Scott Kostyshak
75bbe37495 Improve tooltip of "Save as Document Defaults"
The new message is shorter and also specifies that these defaults
are for new documents.
2019-10-26 14:46:33 -04:00
Juergen Spitzmueller
3c0e0f8a29 Polish warning 2019-10-26 09:10:40 +02:00
Juergen Spitzmueller
1c0572f1ab Validate if graphics path is encodable
Fixes #11688
2019-10-26 08:33:51 +02:00
Jean-Marc Lasgouttes
067d6dc759 Mark insets with invalid buffer() in red in devel-mode.
We tend to have insets which buffer() member is invalid. To help
debugging, this commit paints their background in red when devel-mode
is on.

To this end, a new method develMode() is added to the Painter class.

With this commit, it is easy to see that macro template do not have a
proper buffer set!
2019-10-21 17:24:24 +02:00
Jean-Marc Lasgouttes
44816adce6 Be careful before using buffer parameters in colAlign
Make InsetGrid::colAlign a normal method and make it check whether
buffer is valid before using it. This avoids crashes as we have seen
in 2.3.3 (see e.g. #11686).

There is still an assertion so that failure is noticeable before release.
2019-10-21 17:02:39 +02:00
Jean-Marc Lasgouttes
19abf29ea0 Set buffer when expanding macro
This avoids a crash in InsetMathSplit which uses the buffer() value.

Fixes bug #11686.
2019-10-20 12:54:59 +02:00
Jean-Marc Lasgouttes
58d22e0c6e Keep last file positions in last-use ordering
Using a map would sort the elements in alphabetic ordering, which
means that when the number of elements is larger than 100, the wrong
elements get pruned.

This commit uses a list instead. Searching an item needs linear time,
but this should not be a problem for a list with less than 100
elements.

Fixes bug #10310.
2019-10-20 12:37:27 +02:00
Jean-Marc Lasgouttes
1ac5c937fb typo 2019-10-07 15:31:30 +02:00
Jean-Marc Lasgouttes
f009138f9c Revert "typo"
An unrelated change slipped in.

This reverts commit 3b642cd0ed.
2019-10-07 15:31:10 +02:00
Jean-Marc Lasgouttes
3b642cd0ed typo 2019-10-07 15:10:52 +02:00
Jean-Marc Lasgouttes
bdf58b77e7 Fix bad caret position with horizontal scrolling
Horizontal scrolling used to be taken into account when updating caret
geometry. This is wrong since it may have changed when time comes to
draw the caret. This leads to a situation where the first apparition
of the caret is at a wrong place.

Now the extra horizontal offset is used at drawing time.

Fixes bug #11603.
2019-10-07 12:31:20 +02:00
Enrico Forestieri
0573bf92e0 Fix bug 11667
When automatic command termination was added to texstream it was
forgotten to reset its status after a math inset.
2019-09-28 16:08:06 +02:00
Jean-Marc Lasgouttes
8778e76a98 Pass some variables as reference
Spotted by cppcheck.
2019-09-17 23:22:35 +02:00
Jean-Marc Lasgouttes
912704511b Make some constructors explicit
Spotted by cppcheck.
2019-09-17 23:15:09 +02:00
Jean-Marc Lasgouttes
3fffa6eb83 Fix cut-n-paste error
Spotted by cppcheck.
2019-09-16 00:47:47 +02:00
Jean-Marc Lasgouttes
3aba81cf6a Many small code cleanups suggested by cppcheck 2019-09-16 00:45:20 +02:00
Jean-Marc Lasgouttes
7c1891e0b4 Remove unused private members.
Spotted by cppcheck.
2019-09-16 00:17:08 +02:00
Jean-Marc Lasgouttes
a7c6940f14 Get rid of useless affectation
Spotted by cppcheck.
2019-09-16 00:03:56 +02:00
Jean-Marc Lasgouttes
c6d8592ffb Mark constructors with only one parameter as explicit
Spotted by cppcheck
2019-09-16 00:01:48 +02:00
Jean-Marc Lasgouttes
8d080364d2 Clarify calculation precedence for '&' and '?'
Spotted by cppcheck
2019-09-15 23:57:57 +02:00
Jean-Marc Lasgouttes
decd2c74f1 Mark constructors with only one parameter as explicit
Spotted by cppcheck
2019-09-15 23:56:17 +02:00
Jean-Marc Lasgouttes
19fb4db71e Make code more obvious
- use propoer parenthesis
- do not store in variable something we do not use

Spotted by cppcheck.
2019-09-15 23:31:32 +02:00
Jean-Marc Lasgouttes
02d55ab0b3 Avoid useless test
Spotted by cppcheck
2019-09-15 23:30:29 +02:00
Jean-Marc Lasgouttes
b42e6e96d8 Pass variable by reference
Spotted by cppcheck
2019-09-15 23:29:47 +02:00
Jean-Marc Lasgouttes
17c827d177 Various fixes suggested by cppcheck
Rename local variables the hide other ones: get_binary_path, find_python_binary

Use unsigned int for conversion from hex using sscanf().

FileName::checksum(), parsecmd (SystemCall): use explcit values rather
than variable which value is known.
2019-09-13 22:37:16 +02:00
Jean-Marc Lasgouttes
e3c5987806 Forgot to test aspell and hunspell support 2019-09-13 19:01:26 +02:00
Richard Kimberly Heck
c2f5c850d9 Use const & 2019-09-13 11:49:29 -04:00
Jean-Marc Lasgouttes
714113655a Follow some of the performance advice from cppcheck
Most of that is changing string to string const &.
2019-09-13 16:23:49 +02:00
Richard Kimberly Heck
94896166d4 Fix bug #11619. 2019-09-11 22:13:58 -04:00
Richard Kimberly Heck
e71280221f Fix nullptr warnings 2019-09-11 22:13:25 -04:00
Richard Kimberly Heck
fb79552ae0 Minor renaming for clarity. 2019-09-11 20:54:51 -04:00
Richard Kimberly Heck
05a446b77c Fix bug #11636.
Directories are created when files are copied, so we do not need
to do it prospectively here.
2019-09-11 20:54:42 -04:00
Richard Kimberly Heck
a20f3a0d52 Revert last two commits, which we pushed accidentally. 2019-09-11 20:47:07 -04:00
Richard Kimberly Heck
1fb308cd02 Whoops, forgot this part 2019-09-11 20:30:31 -04:00
Richard Kimberly Heck
26813996e2 Constify, largely for debugging purposes 2019-09-11 20:29:58 -04:00