Commit Graph

24173 Commits

Author SHA1 Message Date
Enrico Forestieri
72a488d7e6 Fix output of en- and em-dashes with TeX fonts
This commit fixes the regression introduced in 2.2 about the
output of en- and em-dashes. In 2.2 en- and em-dashes are output as
the \textendash and \textemdash macros when using TeX fonts, causing
changed output in old documents and also bugs (for example, #10490).

Now documents produced with older versions work again as intended,
while documents produced with 2.2 can be made to produce the exact
same output by simply checking "Don't use ligatures for en-and
em-dashes" in Document->Settings->Fonts.

When exporting documents using TeX fonts to earlier versions, in order
to avoid changed output, a zero-width space character is inserted after
each en/em-dash if dash ligatures are allowed. These characters are
removed when reloading  documents with 2.3, so that they don't accumulate.
2017-03-19 20:50:34 +01:00
Juergen Spitzmueller
1a8fd56333 Consider text-mode accents of the form {\v a} in BiblioInfo
Fixes #9340.
2017-03-19 16:15:03 +01:00
Guillaume Munch
4f3c3a794e repair Cursor::x_target mechanism (#10168) 2017-03-19 14:41:54 +01:00
Guillaume Munch
ac6d3ffb6a Regularly check if preview is modified when visible on screen
In case one cannot rely on QFileSystemWatcher.
2017-03-19 14:41:54 +01:00
Guillaume Munch
ad16347b08 Regularly check if graphics is modified when visible on screen (#10596)
In case one cannot rely on QFileSystemWatcher.

see https://www.mail-archive.com/lyx-devel@lists.lyx.org/msg199112.html
2017-03-19 14:41:54 +01:00
Guillaume Munch
c779e9806e Cosmetic 2017-03-19 14:41:17 +01:00
Guillaume Munch
9926927fb1 Ressurect old FileMonitor à la Frankenstein
ActiveFileMonitor combines QFileSystemWatcher with the previous checksum
approach.
2017-03-19 14:41:17 +01:00
Guillaume Munch
6c4b9c97cb Blocking signals also blocks the notification of file creation (#10595) 2017-03-19 14:41:17 +01:00
Guillaume Munch
fa9ab74ffa Correct ownership
One can now delete a file monitor if a blocker is active.
2017-03-19 14:41:17 +01:00
Juergen Spitzmueller
1eba2c92da Improve BibTeX name parsing #4
Handle name prefix (aka "von" part) as a separate entity, just like
BibTeX and Biblatex do. This allows to omit or reposition it in
accordance to the current style ("Goethe, Johann Wolfgang" or
"von Goethe, Johann Wolfgang" or "Goethe, Johann Wolfgang von" are all
valid and used).

LyX's name parser should now be on par with BibTeX's.
2017-03-19 14:03:48 +01:00
Juergen Spitzmueller
7489cab6c9 Replace "junior" with the more generic term "suffix". 2017-03-19 13:33:56 +01:00
Juergen Spitzmueller
5fdcca4c06 Improve BibTeX name parsing #3
Correctly handle name suffix ("Jr.-part")
2017-03-19 12:42:18 +01:00
Juergen Spitzmueller
9f4df64f23 Allow for simple conditions in name scheme.
I.e., only output a comma between last and first name if there is
a first name.
2017-03-19 11:45:42 +01:00
Juergen Spitzmueller
08500c1a7c Improve BibTeX name parsing #2
Also consider grouping when looking for name separators.

Cases such as {{Barnes and Noble, Inc.}} are now handled correctly.
2017-03-19 11:44:22 +01:00
Juergen Spitzmueller
ee26e7fadf Improve BibTeX name parsing #1
Consider groupings of name parts via {...}
2017-03-19 11:41:33 +01:00
Scott Kostyshak
82705a0e8a Fix typo in comment 2017-03-18 11:36:00 -04:00
Guillaume Munch
340d747fff Clean up
Only keep one dynamic-cast. This fixes coverity warnings.
2017-03-18 15:09:07 +01:00
Jean-Marc Lasgouttes
5d29527916 Output debug message when creating bad length
Coverity is right to say that we should check the return value.
2017-03-14 15:20:09 +01:00
Jean-Marc Lasgouttes
c6213b1b20 Another forgotten unreachable `return' that is not needed
The compilers we use now do not care, but coverity complains.
2017-03-14 14:46:02 +01:00
Jean-Marc Lasgouttes
7a124ab861 Fixup commit 50060053
Fix two instances where theFormats() was used instead of a local parameter.

Fix layout test.
2017-03-14 14:26:26 +01:00
Jean-Marc Lasgouttes
7d4b8b7606 Only accept non-negative lyxscale parameters
Since lyxscale is unsigned, a negative value would lead to a very
large positive value.

Spotted by coverity.
2017-03-14 14:25:08 +01:00
Richard Heck
50060053e3 Move the global formats and system_formats variables into the
LyX singleton.

Mostly, this is very boring, but it might be good if someone would
check what I did about the dummy implementation in tex2lyx.
2017-03-13 23:40:29 -04:00
Jean-Marc Lasgouttes
591f5780e4 Use FileName::lastModified() intead of stat() in DepTable
This patch removes explicit calls to stat() in the DepTable code. The
original motivation was to get read of a stat() invokation where the
error condition was not checked (spotted by coverity).
2017-03-13 17:06:42 +01:00
Jean-Marc Lasgouttes
b8c0891427 Remove optimization that avoids drawing some math inset cells.
It is not clear that the optimization is a gain, but it is clear that
it has a cost: some elements of formulas will not be present in the
position cache.

Fixes bug #10520.
2017-03-13 11:44:48 +01:00
Jean-Marc Lasgouttes
a69bae0c99 Make InsetMathNest::editXY more robust
If no reasonable cell has been found to put the cursor in (maybe
because the cell exist but is not in the cache), exit gracefully.

Fixes bug #10520
2017-03-13 11:44:22 +01:00
Jean-Marc Lasgouttes
a2bfe0042d Do not use the global variable `formats' in Formats class
Using this global variable in the class is clearly a bug. If we wanted
to avoid doing it by mistake, the variable should be moved to the LyX
singleton.

Also add an underscore to the private variable formatlist_.
2017-03-13 11:39:26 +01:00
Richard Heck
322331c53a Fix problem noted at bug #10582.
When we have a name with more than two parts, but no "von",
it was coming out as, e.g.:
	Obama, Barack Hussain Obama
i.e., with the last name appearing twice.

Also adds a check for names without spaces, which would have given:
	Pele, Pele

This was not the original issue at #10582, so that bug is still
open (though I cannot reproduce it).
2017-03-12 16:43:15 -04:00
Richard Heck
8414c38e4b Whitespace and const'ing. 2017-03-12 16:27:36 -04:00
Guillaume Munch
797bb2df14 Fix compilation with 5 <= qt < 5.4 2017-03-11 22:22:27 +01:00
Jean-Marc Lasgouttes
5d8918f68f Compilation fix
It is actually better to compile code before pushing changes...
2017-03-11 20:51:39 +01:00
Jean-Marc Lasgouttes
d6d412c49e Limit the size of strings we read from RCS
This calms down Coverity which fears than an evil RCS repository would break LyX.
2017-03-11 20:46:32 +01:00
Scott Kostyshak
3db74fa92d When catching exception, give error on STDERR
The error is reported in the GUI, but for the terminal we must write
explicitly to STDERR.

For a specific example of this type of exception, see the previous
commit, 72c3dbd.
2017-03-11 02:56:31 -05:00
Scott Kostyshak
72c3dbd02c Change a warning to an error if missing include
If an included file is not found, it seems impossible that the final
output would be correct. Before this commit, when exporting on the
command line, LyX would create the PDF and exit with a zero error
code so unless the user was monitoring the terminal output, they
would not know there is a problem.

This change is consistent with 1a374a93.
2017-03-11 02:51:49 -05:00
Guillaume Munch
24f68aff8d Nonsense for whoever insists on using gcc4.6 & qt4.8 in 2017 2017-03-11 00:50:57 +01:00
Guillaume Munch
f96d7a8b2c Remove legacy FileMonitor 2017-03-11 00:50:57 +01:00
Guillaume Munch
a4fae021f2 Replace FileMonitor with FileMonitor2 in RenderPreview 2017-03-11 00:50:57 +01:00
Guillaume Munch
e3a1396813 Replace FileMonitor with FileMonitor2 in GraphicsCacheItem
Remove dead code
2017-03-11 00:50:57 +01:00
Guillaume Munch
22ce6636ef Clarify dialog 2017-03-11 00:50:57 +01:00
Guillaume Munch
0cb85e9206 Disable edition when external modifications are detected
Introduce a distinction between being read-only and having the read-only flag. A
buffer is read-only if either it has been externally modified or if it has the
read-only flag.
2017-03-11 00:50:57 +01:00
Guillaume Munch
b6b56d8518 Notification of external modification inspired by gedit 2017-03-11 00:50:57 +01:00
Guillaume Munch
299242bb16 New LFUN buffer-external-modification-clear 2017-03-11 00:50:57 +01:00
Guillaume Munch
656bc46892 Clean-up 2017-03-11 00:50:57 +01:00
Guillaume Munch
1e57fd12b1 Display externally modified status 2017-03-11 00:50:57 +01:00
Guillaume Munch
7c123507a4 Whitespace 2017-03-11 00:50:57 +01:00
Guillaume Munch
cf3c035266 Implement real-time detection of external modifications 2017-03-11 00:50:57 +01:00
Guillaume Munch
caa54e80ee Implement FileMonitor as a wrapper for QFileSystemWatcher
The new file monitor supports both boost and qt signals. It is implemented in a
ressource-safe way.
2017-03-11 00:50:57 +01:00
Guillaume Munch
22edb3df96 Preventive fix inspired from ~ 2017-03-11 00:50:57 +01:00
Guillaume Munch
b034389e6d Amend 63be456c8
Fix crash when clicking on math previews
2017-03-11 00:50:57 +01:00
Guillaume Munch
387ac78088 Add option to ignore a parameter in InsetCommandParams
It will not be saved to the file and will always be equal to a given default
value.
2017-03-11 00:50:57 +01:00
Guillaume Munch
3dec5826da buffer-export default 2017-03-11 00:50:57 +01:00
Jean-Marc Lasgouttes
9a013637bb Experiment: limit size of strings read from lib/symbols
Coverity complains that we might read strings that are arbitrary
large, and that this can be a security issue. This is a problem in
particular, when we feed these strings to from_utf8(), which coverity
flags as dangerous for some reason.

The best solution would be IMO to model from_utf8() properly, but I do
not know how to do that. Here I try a different solution, where I
cannot read a string larger than 64k from the file.

Let's see whether this removes part of coverity warnings.
2017-03-10 16:29:09 +01:00
Jean-Marc Lasgouttes
0f220503ff Small cleanup to LayoutBox and CategorizedCombo
Coverity does not find it obvious that p is never negative. Normally
it is the case (because the items have been filtered), but it is
better to play safe.
2017-03-10 15:57:31 +01:00
Jean-Marc Lasgouttes
e2f2915f8e Be careful about unparsable bibtex years
Handle gracefully the case where the regex that parses a year fails.

This is a fixup to ba171930 (spotted by coverity).
2017-03-10 10:35:03 +01:00
Jean-Marc Lasgouttes
4b8e5a9d53 Another unreachable `return' that is not needed
The compilers we use now do not care, but coverity complains.
2017-03-09 15:12:03 +01:00
Jean-Marc Lasgouttes
ce0c11ba4e Remove unreachable return statements
They were needed long ago to avoid gcc warnings, but now all they do
is create coverity warnings.
2017-03-09 15:05:33 +01:00
Jean-Marc Lasgouttes
5a62e37add Handle the case where doc_bv is null
It might only happens in specific cases where no file is open and for
some reason the new file cannot be opened.
2017-03-09 14:41:27 +01:00
Jean-Marc Lasgouttes
f7ab893def Avoid dereferencing an iterator at the end
Found by coverity, could lead to a crash with badly formed kmap file.
2017-03-09 14:26:17 +01:00
Richard Heck
4569010b66 Add a comment. 2017-03-08 17:34:07 -05:00
Jean-Marc Lasgouttes
dee0ea0c21 Make a test clearer
This should hopefully please coverity now. For some reason, the
annotation did not work. Should it be in lower case?
2017-03-08 17:03:48 +01:00
Jean-Marc Lasgouttes
000dcb8672 Make a false positive explicit
Pleases coverity
2017-03-08 16:50:03 +01:00
Jean-Marc Lasgouttes
2d86b2debb Fix missing initialization
This was already fixed after coverity report at bad511f3fe,
but this part was missing.
2017-03-08 16:41:42 +01:00
Jean-Marc Lasgouttes
f0ab93c4b8 Initialize members spotted by coverity 2017-03-08 16:37:53 +01:00
Jean-Marc Lasgouttes
ed15c31bf8 Make a dummier LyXRC for tex2lyx
The old version made coverity complain about uninitialized members.
The new one is the same as in support/tests/dummy_impl.cpp.
2017-03-08 16:37:53 +01:00
Scott Kostyshak
37290fdb61 Describe the use of '*' in -e/-E CL options
The use of '*' in buffer-export was implemented at 494ce664.
2017-03-08 00:36:28 -05:00
Scott Kostyshak
24ad64c406 Implement '*' in "buffer-export <FORMAT> <DEST>"
For the variant of buffer-export that allows a format and a
filename, the substitution must be done after the argument is split.

Related to 494ce664.
2017-03-08 00:36:28 -05:00
Kornel Benko
5d3d26b024 Cmake build: Adapt handling of mytheslib to automek behaviour
The added cmake-parameter is:
  -DLYX_EXTERNAL_MYTHES=<value>
where <value> is one of
  AUTO	(Default) Search first on system for mythes (lib and include)
  ON	Use installed only (errors if not installed)
  OFF	Compile the provided source in 3rdparty
2017-03-07 14:27:08 +01:00
Jean-Marc Lasgouttes
dc126bad04 Fix typo found by coverity
We were not testing for the right end(), although it is not sure that
an actual bug could be triggered because of that.
2017-03-07 12:02:54 +01:00
Jean-Marc Lasgouttes
25d64bf43a Fix test to make coverity happy
It is not obvious that cur is not null iff thisSlice is not -1, but
this is what happens in the caller.
2017-03-07 11:56:59 +01:00
Jean-Marc Lasgouttes
55957c4576 Fix test to make coverity happy
It is not obvious that cur is not null iff thisSlice is not -1, but
this is what happens in the caller.
2017-03-07 11:48:32 +01:00
Kornel Benko
15babdc0f1 Amend 0e50ad8 'move mythes sources to 3rdparty' for cmake build. 2017-03-06 19:31:23 +01:00
Jean-Marc Lasgouttes
0e50ad8b16 Update bundled mythes to version 1.2.5
Move it to 3rdparty/ directory alongside the other ones.
2017-03-06 17:08:38 +01:00
Guillaume Munch
3d2d02510a Amend 841825aa56
sort alphabetically
2017-03-06 01:01:11 +01:00
Guillaume Munch
841825aa56 Add default export to the menu 2017-03-05 08:45:52 +01:00
Guillaume Munch
76f3f6eb01 Fix warning 2017-03-05 08:45:52 +01:00
Guillaume Munch
a0ce37147c Allow Ctrl+Enter in GuiCitation even if the citation is already there 2017-03-05 08:45:52 +01:00
Guillaume Munch
354897f6d9 Tabular::editXY should not touch the selection 2017-03-05 08:45:52 +01:00
Guillaume Munch
494ce6647a buffer-export * synonymous to buffer-export 2017-03-05 08:45:52 +01:00
Enrico Forestieri
5940dc53aa Fix bug #10579
The \lyxdeleted macro cannot cope with empty lines.
2017-03-03 13:00:32 +01:00
Jean-Marc Lasgouttes
1de8ab6ed5 Try to see if coverity annotations should be in lower case
The current one did not work.
2017-03-02 15:24:12 +01:00
Jean-Marc Lasgouttes
f4f84ef9a3 Initialisize properly member variables
Instead of using a coverity annotation (that does not work) it is
better to really iinitialize the members of the object, just in case
somebody decides to actually use the DisplayPath() constructor.
2017-03-02 15:20:46 +01:00
Jean-Marc Lasgouttes
5ad8815a51 Please coverity properly 2017-03-02 14:47:31 +01:00
Jean-Marc Lasgouttes
ae6e6b3e47 Try another way to signal a false positive to coverity 2017-03-01 17:44:02 +01:00
Jean-Marc Lasgouttes
5453e00cfa Do not return a reference to a temporary variable
Coverity correctly spotted that the existing code creates a temporary
map and returns a value from it. It is not possible to make the map
const& directly because operator[] may change the map.

Therefore, we use map::find instead.
2017-03-01 17:37:41 +01:00
Jean-Marc Lasgouttes
1f10969bb5 Add missing initialization
Spotted by coverity
2017-03-01 17:25:03 +01:00
Jean-Marc Lasgouttes
a2425c7121 Initialize properly TextEntry variable
Not sure it fixes a bug, but it should calm down coverity.
2017-03-01 17:18:19 +01:00
Jean-Marc Lasgouttes
91d8a3982d Initialize properly several InsetQuote members
Spotted by coverity
2017-03-01 17:02:20 +01:00
Jean-Marc Lasgouttes
dc385a8b97 Fix coverity false positive
The fall through was intended at db889bc6.
2017-03-01 16:42:28 +01:00
Jean-Marc Lasgouttes
e8b744ad2e Fix broken logic
Spotted by coverity.
2017-03-01 16:36:46 +01:00
Jean-Marc Lasgouttes
f52325f051 Initialize pointer class member
Found by coverity.
2017-03-01 16:34:01 +01:00
Jean-Marc Lasgouttes
9251a360a9 Initialize class member to please coverity 2017-03-01 16:31:00 +01:00
Jean-Marc Lasgouttes
af45bfaee1 Initialize class members to please coverity 2017-03-01 16:28:30 +01:00
Jean-Marc Lasgouttes
ea8f0d2076 Initialize properly a class member
This was forgotten at 0552563c99, and it only meant to keep coverity happy.
2017-03-01 16:21:45 +01:00
Enrico Forestieri
17ab47b3e6 Allow Input of local includes from local layout files
When including files, LyX always searches the user and the system
directory, in that order. This means that when using local layout
files broken down into multiple includes, the various includes should
be specified with a path relative to the user layouts directory
(typically ~/.lyx/layouts), making this very impractical.
This commit allows including local files by specifying their path
as explicitly relative to the main layout file position, i.e., by
specifying their path with either "./" or "../". If the main layout
is not loaded from a local file, the usual search order is used,
even if the path are explicitly relative. So, for system layouts,
both "Input ./name.inc" and "Input name.inc" are equivalent.
2017-03-01 09:19:18 +01:00
Guillaume Munch
a1faa41c83 buffer-export without argument exports the default format
buffer-export is proposed as a default binding in the preferences so now it does
what a user expects when binding it to a key.
2017-02-28 00:46:33 +01:00
Guillaume Munch
887722dbfa Remove LyXToolBox
It extended QToolBox with size calculation to fix UI issues with the previous
design of GuiCitation. Since it always needed some kind of hack and since
QToolBoxes do not appear so popular, it probably won't be used anymore.
2017-02-26 22:16:10 +01:00
Guillaume Munch
06416763ac Give focus to the filter in GuiRef
This is now consistent with GuiCitation. Compared to the previous behaviour
there is only one down key press difference.
2017-02-26 22:16:10 +01:00
Guillaume Munch
750c48eda3 Fix focus events in GuiCitation 2017-02-26 22:16:10 +01:00
Guillaume Munch
d50b66fc88 Whitespace and remove obsolete #ifdef. 2017-02-26 22:16:10 +01:00
Guillaume Munch
eab83ec678 Implement down key press in FancyLineEdit 2017-02-26 22:16:10 +01:00
Guillaume Munch
e6180e9914 Implement left-right navigation in GuiCitation 2017-02-26 22:16:10 +01:00