Commit Graph

26284 Commits

Author SHA1 Message Date
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