Commit Graph

22733 Commits

Author SHA1 Message Date
Guillaume Munch
12de677fcc Support for (std|boost)::make_shared 2015-09-15 15:25:32 +01:00
Guillaume Munch
61145265fc Math commands used in text mode now always use the current selection as contents
(#9762)

* fixes a bug where this was already the expected behaviour of
  math-subscript and math-superscript but failed.

* corrects the behaviour where if there is \newcommand in the
  selection, then a corresponding macro template is introduced
  instead of a math inset.

  * fixes a bug where math-display, math-subscript and math-supscript
    would also introduce such a macro template in a way unrelated to
    their function. Now it only happens with math-mode without
    arguments.

  * fixes a bug where a text that does not denote a macro definition,
    e.g. "aaa\newcommandaaa", would produce \invalidmacro.
2015-09-14 00:33:02 +01:00
Georg Baum
699a6db9fa Add some missing member variable initializations
These were all found by cppcheck. Even in constructors that are there "only
because of std containers" the class should be initialized correctly. You can
never know whether such an object does not get used, and then a nice crash
caused by dereferencing a NULL-pointer is better than undefined behaviour.
2015-09-13 19:47:21 +02:00
Georg Baum
c09663d2cb Return reference to this in operator=()
This is the recommendede signature of assignment operators and was found by
cppcheck.
2015-09-13 19:43:44 +02:00
Georg Baum
d4a79d81d2 Remove dead code
Thanks to Jean-Marc and coverity for finding it.
2015-09-13 14:05:49 +02:00
Georg Baum
c479243468 Work around a gcc5 bug
The old code produced crashes with gcc5 caused by calling the copy
constructor (see https://bugzilla.redhat.com/show_bug.cgi?id=1260976).
This has been filed as gcc bug: https://gcc.gnu.org/bugzilla/show_bug.cgi?id=67557
It is currently being marked as invalid (they claim the code is not valid and
produces undefined behaviour), but I don't think that this is correct.
Fortunately i does not matter for us whether the old code was valid or not,
since the new version is easier to understand and works with all compilers.
2015-09-13 10:04:16 +02:00
Georg Baum
acb09a3efd Make destructor virtual
Base classes with virtual methods should have a virtual destructor.
See Scott Meyers, Effective C++ item 7: Declare destructors virtual in
polymorphic base classes.
2015-09-13 09:41:45 +02:00
Guillaume Munch
f3008c3079 Fix bug #1996
\overrightarrow and related macros have a standard behaviour with respect to
sub/superscripts.
2015-09-13 00:46:02 +01:00
Guillaume Munch
fd7b13f5ae Improvements to the display of the source.
Fix bugs #6501 and #7359.

* Selection highlighting has been broken since a conflict with
  reverse-search was repaired (at 00a62b7c), is now fixed.

* The selection highlighting was not accurate, for LaTeX formats (in
  full source view), and meaningless, for non LaTeX formats.

* fix regression at cc00b9aa: force_getcontent_ was always true
  therefore the code to detect changes in the generated source was
  dead. The consequence is that the source view would jump to the
  beginning at each updateView() even if no change occurred. Cc00b9aa
  was meant to fix #5600, which I cannot reproduce with the new
  implementation.

* Various improvements:
  *  When the position-to-line conversion is unavailable (LyXHTML, LyX
     source, etc.) we focus on the first difference instead.
  *  Get some space around the cursor
  *  Respect the scrollbars
  *  Highlight with QTextEdit::ExtraSelections instead of cursor
     selection (the latter used to break syntax highlighting of the
     TeX code... which was not so much of an issue before because the
     wrong part was selected)

Known issues:
  * The highlighting is off by one line in very last paragraph of a
    document. This appears to be a bug in TexRow.cpp.
  * The highlighting is off for any kind of inset. This could be
    solved by adapting TexRow so that it accepts CursorSlices as
    and argument for the conversion to line number. (this is bug
    #4725)
2015-09-13 00:45:52 +01:00
Guillaume Munch
120c99ae60 Better session management for the source panel.
We now remember the previous GUI values across sessions.
2015-09-13 00:45:47 +01:00
Guillaume Munch
ba3e6cb2d2 Improve the performance of the source panel by using a QTimer.
Fix bug #9493. The source panel was very slow with auto-update on. Now
we use a timer that ensures that the source is generated only at
rest. The delay is short or long depending on whether we show the
source of a paragraph or the whole source.
2015-09-13 00:45:41 +01:00
Guillaume Munch
4d1ad336db Fix bug #9754
Don't delay the update of the TOC panel on switching documents
2015-09-13 00:45:22 +01:00
Jean-Marc Lasgouttes
1e4adc512e In fileLock, take in account the case where the file cannot be opened
overity issue 23352
2015-09-12 23:53:19 +02:00
Jean-Marc Lasgouttes
c71b4cc896 iInitialize a few variables in TextClass constructor
Also use proper initializers and reorder members properly.

Coverity issue 23385
2015-09-12 23:11:35 +02:00
Jean-Marc Lasgouttes
08fe2803c6 Initialize properly two members of InsetTabular
Also rename first_visible_cell to first_visible_cell_. I wonder though whether this variable is still useful.

Coverity issue 23383
2015-09-12 22:54:35 +02:00
Jean-Marc Lasgouttes
caa93de445 Initialize MathData members
Coverity issues 23381 and 23436
2015-09-12 22:47:09 +02:00
Jean-Marc Lasgouttes
cdeb425451 Initialize pointer members
Coverity issue 23387
2015-09-12 22:39:50 +02:00
Jean-Marc Lasgouttes
67907d2f12 Add missing break in switch
Coverity issue 102058
2015-09-12 22:29:25 +02:00
Jean-Marc Lasgouttes
acebea0655 Annotate missing breaks in switch for coverity
Coverity issues 102057 and 102060.
2015-09-12 22:24:50 +02:00
Jean-Marc Lasgouttes
3b49d6bd27 Annotate missing break in switch for coverity
Coverity issue 23362
2015-09-12 22:19:59 +02:00
Jean-Marc Lasgouttes
aac019ad29 Annotate missing breaks in switch for coverity
Coverity issues 23341, 23359, 32064 and 102056
2015-09-12 22:14:04 +02:00
Jean-Marc Lasgouttes
26322995b3 Annotate missing breaks in switch for coverity
Coverity issues 23344, 23354, 23371 and 102059
2015-09-12 20:11:26 +02:00
Jean-Marc
915066f068 Add missing break statement
Coverity issue 23338
2015-09-12 20:02:32 +02:00
Jean-Marc
4e4b2e224e Add missing breaks
Coveity issues 23333, 23334 and 23348.
2015-09-12 19:58:15 +02:00
Jean-Marc
d786d98c36 Remove useless test
Coverity issue 23300.
2015-09-12 19:53:29 +02:00
Jean-Marc
28e997781d Restore lyxerr number format to decimal
Coverity issue 23427
2015-09-12 19:38:38 +02:00
Jean-Marc
92d5e7c11b Do not pass objects by value
Coverity issue 23372.
2015-09-12 19:22:51 +02:00
Jean-Marc
f74de776ef Make the while loop actually loop
Coverity issue 23513.
2015-09-12 19:14:27 +02:00
Jean-Marc
ab1e642ef1 Fix logic of method
The last return statement was unreachable

Coverity issue 102063.
2015-09-12 19:01:18 +02:00
Jean-Marc
41cb3bbc0e Mark dead code as dead
Coverity issue 23511.
2015-09-12 18:49:22 +02:00
Jean-Marc
61f0271031 Add missing braces
Coverity issue 23506.
2015-09-12 18:40:52 +02:00
Jean-Marc
7065406eca image_ready is false at this point
Coverity issue 23299.
2015-09-12 18:33:17 +02:00
Jean-Marc
1d9c2daede Remove dead code
first is always false at this point.

Coverity issue 23298.
2015-09-12 18:29:02 +02:00
Jean-Marc
28f4a39a79 Fix unreachable code
c cannot be \\ at this point.

Coverity issue 23296.
2015-09-12 18:26:24 +02:00
Jean-Marc
c671740d83 Remove unreachable code
Fixes coverity issue 23295.
2015-09-12 18:22:31 +02:00
Jean-Marc
e5cae37853 error is always true at this point
Coverity issue 23294.
2015-09-12 18:14:28 +02:00
Jean-Marc
eba0bbe503 Fix unreachable code
Coverity issues 23292 and 23297.
2015-09-12 18:05:08 +02:00
Enrico Forestieri
e626184fd0 Take into account symbolic links
In order to adjust the path of an included file, when deciding
whether the document was moved or not, it is not sufficient
comparing the paths because the document could have been accessed
through a symbolic link.
2015-09-09 01:40:16 +02:00
Jean-Marc Lasgouttes
cf6128caf6 Use QFontMetrics information for underlines (and friends) width and position
The width of the line is now dependent on the font size.

This new computation is applied to: underline, strikeout, double underline.
2015-09-08 10:44:03 +02:00
Georg Baum
211ac35314 Work around crash on command line export
This was a regression of 0c093a6264. The crash was found by the tex2lyx
test case test-insets.tex: Running lyx -f main -e pdflatex test-insets.lyx.lyx
did crash. This is not a real fix, but will do for now since previews are not
needed in command line mode (I wonder why they are generated at all?) In the
long term, we need theApp() to return a console application in commandline
mode to eliminate the existing sifferences between export from GUI and
commandline.
2015-09-04 21:24:01 +02:00
Georg Baum
b84a5ac0d5 Remove unneeded second slash
docdir does always end with a slash, so the second one is not needed.
The first one is however mandatory.
2015-09-04 20:51:08 +02:00
Juergen Spitzmueller
0e62745995 Fix parsing of class and category declaration line in layout files
* Omit commented-out lines
* Properly escape backslash
* Do not allow non-space chars after delaration
* Allow blanks before # comment character

Fixes: #9746
2015-09-02 14:29:06 +02:00
Günter Milde
0bbc80fa83 Remove problematic workaround for "exotic" problem
Greek and Times under MikTeX with auto-install may fail due to a half-installed
font package. However, the workaround in LyX stands in the way of 
alternative approaches (see bug #6469).
2015-08-27 00:04:19 +02:00
Günter Milde
fb3bb6361c New lfun "accent-perispomeni".
This function inserts a COMBINING GREEK PERISPOMENI character that is
normalized to pre-composed characters for base characters where a 
corresponding WITH PERISPOMENI character exists.

This is a partial solution for Ticket #6463.
2015-08-26 22:43:38 +02:00
Jean-Marc Lasgouttes
4ede231ef1 Fix continuous spell checking
The extra check became useless after 4796e6b3, but its presence only
broke continuous spell checking after f65f3adb.
2015-08-26 14:01:45 +02:00
Guillaume Munch
d88e401589 Fix compilation with qt5 and c++11 combined. 2015-08-24 21:05:48 +02:00
Jean-Marc Lasgouttes
f921c2e8ec Fix some row breaking problems with large insets
When a row is too large due to a wide inset, it does not make sense to
break text before if the problem is the same in the next row.
Therefore give up breaking in this case.

Note that this was explicitely taken care of in the old-world
rowBreakPoint code.

Fixes bug #9691.
2015-08-24 14:09:19 +02:00
Guillaume Munch
125a297778 Fix bug #6466
\{ and \% now correctly use the selection as their argument instead of
erasing it.
2015-08-23 11:47:37 +02:00
Guillaume Munch
27f067dd9d Improve math-mode lfun for switching to text
math-mode inserts \text instead of \mbox when already in math mode,
since this supports accented characters.
2015-08-23 11:10:05 +02:00
Guillaume Munch
fde3963d99 Add \ensuremath to the list of math completions 2015-08-23 11:05:01 +02:00