Commit Graph

34293 Commits

Author SHA1 Message Date
Guillaume Munch
94e992c5ed Better construction of the TOC for floats and captions
We introduce TocBuilder for building TOCs that take into account both float
insets and their captions.

* Floats without caption are shown with their content.

* Floats with a caption are shown with their caption, but clicking the entry now
  correctly moves to the float and not to the caption.

* Subsequent captions produce additional entries in the TOC.

* Figures and subfigures are correctly ordered in the outliner.

* New TOC "senseless" for captions appearing alone (a bit like broken references
are still displayed in the menu and outliner).

* Disable LFUN_CAPTION_INSERT if there is already a caption in a listing

Known issues:

* Inconsistent output for includes located inside floats

* We should record the end of the float in addition of the beginning for a more
  accurate cursor -> outliner entry conversion
2015-09-15 15:25:33 +01:00
Guillaume Munch
c02f6bd8a7 Do not show subfigures in the menu (bug #9759)
* More consistent behavour (no 30 elements limit)
* Subfloats are given depth 1
* Only show depth 0
* Always show "Open outliner..."
2015-09-15 15:25:32 +01:00
Guillaume Munch
12de677fcc Support for (std|boost)::make_shared 2015-09-15 15:25:32 +01:00
Stephan Witt
65a95620b2 Correct commit 92b0886: true is not True in python. 2015-09-15 07:18:16 +02: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
Jean-Marc
a22f7b7001 Do not use -Wfloat-conversion with recent gcc versions 2015-09-10 18:12:35 +02:00
Kornel Benko
8c3dbe19b6 Cmake build: Adapt use of c++11 for cygwin too.
Change done according to commit 864a4db26b
2015-09-09 14:45:55 +02:00
Enrico Forestieri
864a4db26b On cygwin, use -std=gnu++11 instead of -std=c++11
This allows compiling without monkeying with compiler guards.
2015-09-09 02:34:18 +02:00
Enrico Forestieri
bde1bee24e Make it compile on cygwin in c++11 mode
When using -std=c++11, the cygwin compiler automatically defines
__STRICT_ANSI__ which is used as a guard for not declaring essential
unix standard calls such as setenv, popen, etc. As a result,
compilation stops with errors such as "xxxx has not been declared".
By undefining the guard, compilation succeeds and lyx works Ok.
2015-09-09 01:54:49 +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
Jean-Marc Lasgouttes
893ae612e4 Use C++11 by default when possible
Compiler that are known to support C++11 (gcc >= 4.3 and clang) are
now used in this mode by default. It is still possible to override
this choice using --(en|dis)able-cxx11.

Moreover, c++11 mode is detected from the compiler itself, not from
the use of --enable-cxx11. This allows to support compilers other
than gcc or clang.

Update INSTALL file accordingly and clean it a little bit.
2015-09-07 11:42:39 +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
Kornel Benko
46d2344902 Cmake build: Adapt detection of C++11 mode to automake 2015-09-03 11:15:10 +02:00