Commit Graph

23255 Commits

Author SHA1 Message Date
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
Scott Kostyshak
43ca05ead4 Refresh file cache before checking existence
This is done only inside LFUN_BUFFER_VIEW_CACHE so as to preserve
the benefits of caching in other places.

Without this commit, if a converter or a user (re)moves the preview
file and then calls buffer-view-cache LyX will launch the viewer for
a file that does not exist.

For a discussion and use case, see:
https://www.mail-archive.com/search?l=mid&q=55D393D7.6050403@lyx.org
2015-08-18 22:03:59 -04:00
Enrico Forestieri
435c1bbac7 Quote argument of tag when necessary
Both \origin and \textclass tags may be paths and contain spaces.
In this case, enclose them in double quotes such that they can be
correctly read by the lexer.
2015-08-15 18:32:41 +02:00
Scott Kostyshak
f8774a446b Set font in BufferView::setCursor (#9500)
This solves a few bugs related to the font not being set correctly.
For example, when putting a selection somewhere with
putSelectionAt(), the font was not reset so that before this commit
if the cursor was in an ERT, strange things could happen.
putSelectionAt() is notably used when highlighting the location
corresponding with a LaTeX error (GuiErrorList), when using find,
and when using the spellcheck. I could reproduce the bug using all
three of these.

Bug #9500 is an example of the type of bugs that this commit fixes.
2015-07-30 14:08:09 -04:00
Juergen Spitzmueller
7b1107d7f5 Decrease height of citation dialog by using a QToolBox
Fixes: #9618
2015-07-30 10:09:21 +02:00
Juergen Spitzmueller
9f777d4bfb Do not attempt to select an empty cell before inserting a longtable caption
Fixes: #9692
2015-07-25 12:48:13 +02:00
Jean-Marc Lasgouttes
d893400f93 Another go at improving row shortening
Instead of remembering the last breakable element in the row, search
backward in the row and consider all string elements one by one until
a correct place to break is found.

This fixes the case where the row ends with a string, but there is no
space soon enough in the string to break it here. In this case, we
need to consider the previous row.
2015-07-23 00:39:27 +02:00
Richard Heck
2b8ebe9f0d Comment. 2015-07-22 12:08:20 -04:00
Richard Heck
17a033c15a Fix bug noticed by Pavel. Apparently, some changes Abdel made to preview loading for 2.1.x broke LyXHTML preview of math as images.
We have been here before. The png files are generated, but then by the time we preview the document, they are gone. This is because (a) when the PreviewLoader for a Buffer is deleted, it removes all its previews and (b) we export in a clone, so that Buffer gets deleted before the preview is actually shown. So we need to check whether we are a preview for a clone before we delete anything.
2015-07-22 11:04:35 -04:00
Jean-Marc Lasgouttes
7d19265ba0 Do not break row at inset boundary if possible
The first change is to concentrate on the last ro elements that contain separators and try to break it a a width that is shorter than both
- its current width (we want to break it, after all)
- the amount of space available.

This simple heuristic seems to give good results.
2015-07-22 11:54:04 +02:00
Stephan Witt
bdc9977264 Improved symlink creation for Mac OS for first LyX start 2015-07-22 06:27:21 +02:00
Stephan Witt
9f972ba90c Use the safer addName helper function to add the configure lock name to user support directory path name 2015-07-22 06:02:46 +02:00
Enrico Forestieri
0c093a6264 Fix bug #9684: Update previews after background color change 2015-07-22 00:56:34 +02:00
Jean-Marc
b63421b7dc Merge branch 'rowpainter2' 2015-07-21 23:47:12 +02:00
Jean-Marc Lasgouttes
8ec4080537 Remember the cursor before an undo group
With this patch, the cursor position before undo can be saved when
creating an undo group. Any such value will supercede parameters
passed to recordUndo. Only the first such cursor set by nested
beginUndoGoup takes effect.

Fixes bug #9663.
2015-07-21 11:57:50 +02:00
Jean-Marc Lasgouttes
2b760212e2 Reset properly the cursor font when leaving an inset to the left
There was a missing setCursorFont there.

Fixes bug #6032.
2015-07-21 11:50:36 +02:00
Jean-Marc Lasgouttes
0d38729281 Initialize correctly the default keymap
If keymaps are activated and there is a secondary keymap but no
primary one, then the pointer to the active keymap was 0x0. This can't
be good.

Fixes bug #9685.
2015-07-21 11:36:49 +02:00
Jean-Marc Lasgouttes
371bd2b1e5 Get rid of SEPARATOR row element type
It is not used anymore.

Also get rid of a comment made irrelevant by recent changes.
2015-07-21 09:51:52 +02:00
Jean-Marc Lasgouttes
7675a81949 Reset cursor font when entring an inset with char-forward/backward
When entering an inset from the keyboard, setCurrentFont()
was not called and thus the cursor retained the font that was set
before. This could create strange behavior that could often go
unnoticed by the user.

It is easy to imagine many other situations similar to #9597 where
the user could trigger this bug.

Fixes bug #9597.
2015-07-21 09:24:31 +02:00
Jean-Marc
25727ee5a8 Only compute string length every 30 characters
This makes paragraph rebreaking muh much faster, at least on my ancient iMac Core 2 Duo.
2015-07-21 00:20:42 +02:00
Jean-Marc Lasgouttes
b68f391232 Re-implement text justification
* GuiFontMetrics::pos2x, x2pos: add support for inter-word spacing.
* GuiPainter::text: idem

* Row::Element::countSeparators:
  Row::countSeparators: new methods that count spaces in strings.
  Row::setSeparatorExtraWidth: new method (code lifted from TextMetrics.cpp).

* TextMetrics::computeRowMetrics: rely on the above methods.

* RowPainter::paintMispelledMarked: pass only a Row::Element object reference
  RowPainter::paintStringAndSel: idem; do not rely on values returned by
      Painter::text (trailing spaces do not honor wordspacing value).
2015-07-20 23:43:05 +02:00
Jean-Marc Lasgouttes
f65f3adbf7 Do not break row elements at spaces
The goal of this commit is to make painting faster by reducing the
number of strings to paint. To this end, it is necessary to include
spaces in row elements.

Also importantly, this commit should fix existing problems with line
breaking in chinese text.

* TextMetrics::breakRow: do not do anything special for word separators.

* Row::add: when adding a character to a row element, keep the string
  width updated. If need be, it is possible to tweak this by updating
  every 10 characters, for example.

* GuiFontMetrics::breakAt (new): use QTextLayout to break text either
  at word boundary or at an arbitrary width.

* Row::Element::breakAt: use the above method.

* Row::shortenIfNeeded: simplify now that because there is no need for
  handling separator elements. This will be taken care of by the
  improved breakAt.

Two things remain to be done:

* remove all traces of separator row element

* re-implement text justification.
2015-07-20 21:22:53 +02:00
Georg Baum
0f4c5df9f4 Support Photos in RasterImage template
Actually photos (i.e. .jpg files) where supported previously, but for pdflatex
output an unneeded conversion to png was done. The RasterImage templates
behaves now exactly as InsetGraphics for these files: If the input format is
jpg, use that for pdflatex, else convert to png.
2015-07-20 21:14:45 +02:00
Jean-Marc Lasgouttes
038f003be6 Rewrite RowPainter::paintOnlyInsets to use row elements 2015-07-18 20:37:53 +02:00
Georg Baum
dc6d201f8f Store InsetGraphics bounding box in parsed form
This is like InsetExternal does it, avoids some string parsing, reduces the
amount of code and makes it more robust.
2015-07-18 17:02:54 +02:00
Georg Baum
bf515425e1 Remove relative units from bounding box
When adding units to the external inset bounding box I overlooked that
InsetGraphics supports only bb, cm, mm and in. Therefore I added too many
units for the external insets. We are not as strict as the graphics inset
and allow all absolute units, but no relative ones.
2015-07-18 16:41:52 +02:00
Georg Baum
eaf70913ac LengthCombo does not depend on VSpace
so use the right include
2015-07-18 16:29:04 +02:00
Georg Baum
39c1fcb864 Devirtualize some methods
These do not need to be virtual, since no class inherits from LengthCombo.h,
and they do not exist in the base class either.
2015-07-18 16:23:24 +02:00
Jean-Marc Lasgouttes
d328fb2021 Rewrite Cursor::posVisToRowExtremity without Bidi class
It is trivial to implement it using TextMetrics::getPosNearX.
2015-07-18 00:39:55 +02:00
Jean-Marc Lasgouttes
412a724aaf Some fixups to row margins
In breakRow set left and right margin properly for RTL paragraphs.
Remove corresponding code from ComputeRowMetrics.

In row painter, check the use of left and right margin depending on
context. The problem in the original text is that the various
leftMargin() methods actually represent right margin for RTL
paragraphs. This should be fixed eventually.
2015-07-18 00:17:00 +02:00
Jean-Marc Lasgouttes
4cdd9732d3 Fix logic error in on-screen font shape
This made text in smallcaps+emph display as upright instead of plain
emph. There is no latex font for smallcaps + emph, but it is not a
reason for displaying it wrong.
2015-07-17 12:07:52 +02:00
Jean-Marc Lasgouttes
f750d9b5cf Remove old cruft
There are many things that are not necessary anymore:

* remove methods paintText2, paintFromPos, leftMargin, paintInlineCompletion

* Remove use of Bidi class.

* add a Font and a Change parameter to paintInset.

Also remove a comment that describes what we have just done.
2015-07-16 23:56:24 +02:00
Jean-Marc Lasgouttes
83afe2e547 Rely on Row elements to draw rows.
The new version of paintText is quite short. Elements are treated one
by one. They are already in the right ordering.

The other changes are:

* a new paintChange method is added (using code lifted from old version)

* in paintLast, the support for end of paragraph markers is removed
  (this is already part of the Row object.
2015-07-16 23:24:45 +02:00
Jean-Marc Lasgouttes
1de0d2a19b Code cleanup in RowPainter
* move some code that handle selection to paintInset()

* change the arguments of paintSeparator()
2015-07-16 23:24:28 +02:00
Stephan Witt
d16a95afe7 #9496 add a check for requested thesaurus files if thesaurusdir_path of lyxrc is empty
This path configuration variable is used for user defined location.
There are other possible places for the thesauri like mythes installers or bundled with LyX.
2015-07-16 22:07:25 +02:00
Georg Baum
81e592603d Support units in external inset bbox
This brings the external inset on par with the graphics insets as far as the
clipping option is concerned. The graphicxs package supports both: A bounding
box without units (which means that bp ia assumed), and a bounding box with
units, so we can simply output the values including the units.
2015-07-16 22:06:35 +02:00
Stephan Witt
7d420669e6 #9496 factor out getting language from LFUN args or cursor position in speller LFUNs 2015-07-16 21:59:15 +02:00
Uwe Stöhr
5fe5ae3e80 VCBackend.cpp: addendum to [f51d7fdd/lyxgit] 2015-07-16 21:10:50 +02:00
Georg Baum
0cbcc8a166 Remove InsetGraphics noUnzip parameter
Being able to compile document with zipped .eps files was a useful feature of
the graphicxs package 20 years ago, but the LyX support is no longer relevant:
- The flag is ignored if preview is on
- If pdflatex is used then uncompressing happens during the compilation anyway
- If set, the flag prevents LyX from issuing proper error messages if
something with the image is wrong
- For hard disk capacities from 20 years ago not uncompressing is a useful
feature, but for current hard disk capacities it does not matter
- The external inset does not have it, and if we want to merge both insets
one day we would need to implement it there, which is even more difficult
than in InsetGraphics
2015-07-16 20:44:47 +02:00
Jean-Marc Lasgouttes
d87ce2c91f Update comment. 2015-07-16 19:33:29 +02:00
Jean-Marc Lasgouttes
a7896cb190 End all Undo::Private members names with an underscore 2015-07-16 14:48:23 +02:00
Jean-Marc Lasgouttes
96692bdbb0 Move some functions out of Bidi.*
The functions reverseDirectionNeeded() and reverseDirectionNeeded() do
not rely on the Bidi class. The first one is changed into a Cursor
method, and the second one is replaced with explicit code.
2015-07-16 11:57:40 +02:00
Jean-Marc Lasgouttes
f51d7fdd2a Compilation fix for windows
Since commit 7ac70092, lyx::dispatch returns a DispatchResult const &,
which is ignored in the cases below. Nevertheless, the windows
compiler complains that it does not know this type. Gcc and clang can
deal with it without problem.
2015-07-16 09:48:57 +02:00
Jean-Marc Lasgouttes
0f1fdaaa97 Remove extra row painting added by horizontal scroll branch
The bug workaround added an extra repaint, which can be very bad when
editing large tables.

It turns out that the bug this is trying to fix is due to the handling
of LFUN_LINE_END in InsetMathGrid. Adding the same code as in
InsetMathNest fixes the problem.

The workaround can therefore be removed.
2015-07-15 23:12:34 +02:00
Jean-Marc Lasgouttes
6c8520f100 Rename paintTextAndSel to paintStringAndSel 2015-07-15 22:47:47 +02:00
Jean-Marc Lasgouttes
75640b66e5 When adding completion to a row, add also the unique part
The unique and non-unique parts of the completion are show in different colors.
2015-07-15 21:38:55 +02:00
Jean-Marc Lasgouttes
cb0dbfdadb Avoid crash when inserting space in the middle of misspelled character
This is a fixup to commit 4796e6b3.
2015-07-15 20:38:07 +02:00
Günter Milde
605b933ec2 Add "TODO-comments" with link to textcyr/textgreek tickets.
Add links to tickets #9637 and  #9681 at places that require 
changes in the code and/or comments.
2015-07-15 18:55:30 +02:00
Jean-Marc Lasgouttes
7ac700920f Auto feature for minibuffer toolbar
Now the minibuffer toolbar is "auto" by default. It is opened by
command-execute (M-x) and closed when the command is executed without error.

* make lyx::dispatch return a DispatchResult struct

* there is a new MINIBUFFER type of toolbar, that can be used for this use.

* remove special handling of M-x in minnibuffer; Escape can be used instead. Fix focus in this case.

* when minibuffer toolbar is "auto", make the toolbar close itself after
  - a command has been executed without error
  - an empty command has been executed
  - the Escape key has been used

[this is actually commit fdcff02a, which was later reverted at dd61d8cf]
2015-07-15 17:41:09 +02:00
Jean-Marc Lasgouttes
4796e6b337 Avoid breaking kerning with continuous spell checking
There is a mismatch between the way text is tokenized in Row objects
and the way it is shown on screen. When metrics are computed,
continuous spell checking has not been done yet. Yet, the row painter
explicitly breaks words at spell status boundaries. This creates
problem with a text like "PMP," (see bug #9649), where there is a
negative kerning before the comma.

This is solved by not taking in account spell status when drawing
text, and drawing spell underlines separately.

* replace Paragraph::isSameSpellRange with new method getSpellRange.

* merge RowPainter::paintChars into RowPainter::paintFromPos

* move the actual text painting code into the new paintTextAndSel.

* merge some code from paintFromPos to paintMisspelledMark

* in paintMisspelledMark, scan the string which needs to be annotated
  and add dashed line below text marked as misspelled.

Fixes bug #9649.
2015-07-15 12:13:24 +02:00
Jean-Marc Lasgouttes
1136bc4fb2 Convert a few more variables to int
This avoids warnings with windows compiler. It is a pity that even
clang does not give those. Maybe I missed them with the large amount
of boost warnings that it spits.
2015-07-15 10:16:42 +02:00
Jean-Marc Lasgouttes
a05b8be4bf Always use unicode override characters to enforce direction
There is a second solution in the code which uses some undocumented Qt
stuff, but it does not work in some cases. The best is to rely on the
documented way.
2015-07-14 23:19:26 +02:00
Jean-Marc Lasgouttes
8f73d1e56b Fix comment. 2015-07-14 18:03:58 +02:00
Jean-Marc Lasgouttes
463bd17d75 Use integer line thickness in painter
There is no need for real-valued line width in painters. Actually, this even leads to uneven dashes for continuous spell checker.

The new code is supposed to be equivalent to the old one, just more readable. From this, we can try to see whether some lines need to be made thicker on HiDPI screens.
2015-07-14 17:42:45 +02:00
Günter Milde
468cedb923 Fix #9679 textcyr fails without fontenc 2015-07-14 14:47:44 +02:00
Kornel Benko
789e7f7ed9 Cmake tests: Add missing definition for check_Length_SOURCES
This was forgotten in previous commit ccbac353ea
2015-07-12 18:59:24 +02:00
Georg Baum
ccbac353ea Fix Length::inBP()
Length::inBP() returned the wrong values for most units. I guess that this was
caused by the default case in the switch statement: It did probably exist
before the other units were added.
inBP() is now correct for all units except the font dependent ones em, ex and
mu and the percent units: For these only approximate values are returned,
since not all needed information is available.
2015-07-12 18:36:19 +02:00
Georg Baum
7910502b8e Add unit test for the Length class
I noticed that inBP() is wrong for several units and want to fix it.
The unit test will help me to find regressions.
2015-07-12 18:10:43 +02:00
Günter Milde
3f6b034167 Fix Ticket #9607 (support comma below accent in unicodesymbols).
LaTeXFeatures defines \textcommabelow and \textcommaabove based on a 
generic \LyXTextAccent and declares TextCompositeCommands for the Baltic 
letters in the T1 font encoding, using \textcommaabove for the small letter g 
and \textcommabelow else.

This allows overwriting of the composite definition for other font encodings. 
Especially, it does not interfere with the polish/baltic font encoding L7x 
(supported by LatinModern and TeXGyre fonts)  that provides pre-composed 
glyphs.
2015-07-12 16:21:25 +02:00
Günter Milde
5a47e4bc70 Fix #9636 textgreek: restore compatibility with lgrenc.def.
Greek characters with perispomeni (tilde) accent were not properly shown
in the output document, because the "textgreek" feature re-defined \~ in
a way incompatible with lgrenc.def since version 0.8  (2013-05-13)
(package greek-fontenc).

The compatibility-definition is required for older versions of the font setup
(before the move of "lgrenc.def" from "babel" to "greek-fontenc").
It is now done with "ProvideTextCommand" to not overwrite the more complete
implementation in lgrenc.def.
With the compatibility definition, combined diacritics with tilde
must be input with the tilde first (e.g. \~>, not \>~).
"unicodesymbols" is changed accordingly.

Also, some LICRs for combining Greek diacritical characters were added to
Unicodesymbols.
2015-07-11 15:39:02 +02:00
Jean-Marc Lasgouttes
7d018853fc Position better the cursor after math-display
When the cursor had idx > 0 (since math-display does merging anyways),
reset cursor to the start of the inset. This looks less strange than
setting it at the end.

Now at least the basic case of a displayed equation with cursor
somewhere at top-level is handled correctly.

The math-display lfun operates at top level in the math inset.
Therefore, when the cursor is in an inner inset, it will after the
lfun be moved at top level. Unfortunately, there is no way that I know
f to detect this in Inset::doDispatch.

Even if we could, as things stand, it is difficult to keep the cursor in the
inner inset, especially if the inner inset moves : this happens for
example when moving from eqnarray to inline maths.

Therefore this fix is the best I can think of now.

Fixes part of bug #9664.
2015-07-09 12:00:25 +02:00
Stephan Witt
6e9bd23a1f Add paths of private frameworks to linker rpath options 2015-07-08 17:56:26 +02:00
Jean-Marc Lasgouttes
f41e423b30 Small clean-up to debug support 2015-07-08 11:03:42 +02:00
Enrico Forestieri
b7dd5ade94 Remove unneeded header
Forgot this at 4dff1394
2015-07-06 23:47:22 +02:00
Günter Milde
c56f0538a0 Fix clash between marvosym and bbding packages (fixes #7811).
Both marvosym and bbding define the "Cross" macro.
To prevent a compilation error due to conflicting definitions, 
we undefine the "Cross" macro if both packages are required.
2015-07-06 14:10:34 +02:00
Enrico Forestieri
4dff1394ab Avoid calling Buffer::getMacro inside the MathMacro copy constructor
It turns out that it is always better using the copy of the MacroData
for updating the macro_ pointer to avoid problems related to the cursor
position.
2015-07-05 20:44:54 +02:00
Stephan Witt
8a772549d7 Fix for #9659 - Qt may send more then one close event to a window. Therefore multiple calls to unregisterView for a GuiView are possible. The first one removes the view from the list of known views, subsequent calls do nothing. 2015-07-04 18:59:29 +02:00
Scott Kostyshak
0d52736061 Remove an incorrect horizontal size policy
This effectively makes the horizontal size policy "minimum", which
makes it clear that there is no advantage for this widget of
increasing the horizontal size past the minimum, allowing other
GUI elements to use the horizontal space if useful.

This change for caseCB is consistent with wordsCB and searchbackCB.
2015-07-02 10:33:38 -04:00
Enrico Forestieri
2072de8349 Avoid code duplication 2015-06-30 19:27:38 +02:00
Enrico Forestieri
305a712bbb Avoid using a dangling pointer
This can happen when a macro is copied and then the document where
it is defined is closed. In this case, the macro survives in the
cut stack but the the buffer pointer is dangling.
2015-06-30 18:54:19 +02:00
Jean-Marc Lasgouttes
dd61d8cf3f Revert "Auto feature for minibuffer toolbar"
This reverts commit fdcff02a31.

This was pushed too early, we are not ready yet.
2015-06-30 11:09:48 +02:00
Jean-Marc Lasgouttes
c8c1ee72bc Constify RowPainter (no intended change) 2015-06-29 16:12:11 +02:00
Jean-Marc Lasgouttes
fdcff02a31 Auto feature for minibuffer toolbar
Now the minibuffer toolbar is "auto" by default. It is opened by
command-execute (M-x) and closed when the command is executed without error.

* make lyx::dispatch return a DispatchResult struct

* there is a new MINIBUFFER type of toolbar, that can be used for this use.

* remove special handling of M-x in minnibuffer; Escape can be used instead. Fix focus in this case.

* when minibuffer toolbar is "auto", make the toolbar close itself after
  - a command has been executed without error
  - an empty command has been executed
  - the Escape key has been used
2015-06-29 09:21:15 +02:00
Georg Baum
8a27143e72 Test negative numbers as well 2015-06-28 11:27:17 +02:00
Georg Baum
b8eb4fffee Make it explicit that we need floating point abs
The 'using namespace std' at the top of the file makes it quite difficult to
understand which abs is used: double std::abs<double>(double) or
int ::abs(int)? Now it is explicit, and the code does not change in subtle
ways if somebody removes the using statement.
2015-06-28 11:27:17 +02:00
Scott Kostyshak
6c3a6ea9bd Give Advanced Find a minimum size
The horizontal size policy is now set to "MinimumExpanding", which
means that sizeHint() is enforced as a minimum, but that the widget
can make use of extra available space.

Before, the size policy was ignored, and often resulted in a
scrunched pane that had to have its size manually increased.
2015-06-28 05:16:49 -04:00
Scott Kostyshak
8f1b7f47fa FindAndReplaceUi: update format 2015-06-28 05:16:14 -04:00
Enrico Forestieri
9b0e5215d9 Was forgetting this 2015-06-26 22:54:23 +02:00
Enrico Forestieri
67c52ae773 Amend c9d9309c
It suffices taking the log of the absolute value.
2015-06-26 22:49:17 +02:00
Juergen Spitzmueller
c9d9309c1e Fix formatFPnumber with negative doubles. 2015-06-26 15:49:44 +02:00
Juergen Spitzmueller
2a8db0a64b HSpace/VSpace: use a _signed_ length validator in the dialogs. 2015-06-26 13:19:12 +02:00
Scott Kostyshak
5e7cbc8f2c Fix setting of pref "hide scrollbar in fullscreen"
The symptom of the bug is that the preference could be incorrectly
displayed (based on the value of the statusbar preference).

This seems to have been a copy/paste mistake introduced in 214f7ed2.
2015-06-25 08:33:11 -04:00
Enrico Forestieri
d275d034c0 Check whether the buffer pointer is valid before using it 2015-06-25 01:25:42 +02:00
Enrico Forestieri
fee356eb56 Assure not to miss requirements on loading with instant preview on 2015-06-25 00:49:15 +02:00
Enrico Forestieri
f3b03699ef Fix crash when copying a macro with instant preview on
The MacroData pointer is updated by MathData::metrics() which is not
called when selecting a math inset with instant preview for math on.
Thus, we have to update it in the copy constructor otherwise a crash
is almost assured when hitting Ctrl+C.
2015-06-24 23:38:53 +02:00
Stephan Witt
e4fada8c57 #7896: LyX templates folder is empty - create a symlink to system templates in user template directory at run time 2015-06-23 08:41:43 +02:00
Stephan Witt
bfc7c4d379 #7896 add support for symlink creation by the LyX binary itself 2015-06-23 08:41:43 +02:00
Enrico Forestieri
cd046f0e0c Avoid an exception when the lyxpreview2bitmap.py script fails completely
If latex fails to generate any output, the forked process was not removed.
Now, if a snippet was changed a new one was started but, if also the zoom was
changed, things went awry because the 2 concurrent processes were asked to
process again the same snippet. Previously this would have simply caused a
waste of resources because the changed snippet would have not been regenerated.
Also reset the guard due to the early exit.
2015-06-23 02:39:48 +02:00
Enrico Forestieri
592219c1f1 Properly reschedule refresh of previews
If the zoom factor is changed right while the previews are being
regenerated, the refreshPreviews() method is a no-op. So, reschedule
the refresh until everything is ready.
2015-06-21 17:21:19 +02:00
Enrico Forestieri
2973108a62 Make really sure to wait for previews after zoom changes
Relying on the fact that the timer is not active anymore does not
guarantee that the previews at the correct zoom are ready because
the regeneration process may take several seconds and during this
time the zoom factor may be changed again. So, we need an additional
guard for assuring that everything has settled down.
2015-06-21 11:21:59 +02:00
Enrico Forestieri
cabc7c4be1 Fix another couple of issues spotted by Guillaume
* Take into account macro redefinitions in the legacy route
* Take into account macros inside nested macro definitions
2015-06-20 16:37:12 +02:00
Enrico Forestieri
b610c13f67 Amend 98a5072a
We only look once for the definition of the same macro, but we have
to always check its arguments when the same macro appears more than
once in a math inset. So, move earlier this check.
2015-06-20 03:05:50 +02:00
Enrico Forestieri
98a5072a58 Fix a couple of issues with macros and previews
* Fix typo causing to only account for the first char of a macro name
* Also check for macros as arguments of other macros
2015-06-20 01:44:22 +02:00
Juergen Spitzmueller
46aed6d2b9 Refine lang nesting fix 2015-06-19 19:03:11 +02:00
Juergen Spitzmueller
b1c68dccf8 Fix language nesting problem with polyglossia
Part (?) of #9633
2015-06-19 09:25:11 +02:00
Jean-Marc Lasgouttes
8b36c090b7 Simplify the code for "auto" toolbars handling
Instaead of passing a number of booleans, it make more sense to pass
the relevant visibility values in a single flag.
2015-06-18 15:51:53 +02:00
Juergen Spitzmueller
406d710131 Force local font switch in caption.
It is needed with polyglossia. With babel, it does not harm (and looks
more sensible).
2015-06-18 14:17:18 +02:00
Juergen Spitzmueller
d722f5ed8e Properly pass char to stream (probably fix bug #9632) 2015-06-17 10:22:46 +02:00
Juergen Spitzmueller
4c0e99ac3d Check for, and report, uncodable characters in user preamble.
Fixes: #9599
2015-06-15 21:08:40 +02:00
Enrico Forestieri
11c2b7792c Replacement for commits bc47054b and ad0d0f6d
The strategy adopted in bc47054b had some drawbacks related to the way
instant preview snippets are generated. See the subthread starting at
http://www.mail-archive.com/lyx-devel@lists.lyx.org/msg187916.html
for details.

The strategy adopted in this commit is that of adding macro definitions
only for the macros actually used in a preview snippet, independently
of whether some macro was already used in a previous snippet. In this way
the snippets don't need to be changed according to whether they are
compiled as a whole or separately from each other. This fact was causing
the regeneration of a preview snippet whenever the cursor entered the
corresponding inset, even if the generated image would have not changed.
The problem of defining or redefining a macro is taken care by the
python scripts.
2015-06-14 18:10:29 +02:00
Enrico Forestieri
bdec44d614 Revert bc47054b and the related commit ad0d0f6d
As discussed on the devel list. See the subthread starting at
http://www.mail-archive.com/lyx-devel@lists.lyx.org/msg187916.html
Soon to be replaced with the same strategy adopted in the stable branch.
2015-06-14 18:05:39 +02:00
Juergen Spitzmueller
f0923ebadc GuiParagraph: Fix remaining glitch when entering custom line spread
while immediate apply is activated.
2015-06-13 12:31:03 +02:00
Juergen Spitzmueller
930fef9d8d GuiParagraph: fix thinko (bug #9621) 2015-06-13 12:17:11 +02:00
Jean-Marc Lasgouttes
c783ef962d Fix cursor setting in right-aligned text
Fixes bug #9619.
2015-06-13 12:09:53 +02:00
Georg Baum
6f84ceb821 Make tex2lyx tests green again
Unfortunately I overlooked in 44f73b0650 that the first three whitespace
changes in box-color-size-space-align.lyx.lyx were actually correct, so they
should not have been reverted. In detail:
1), 2): The space after \raggedleft must not be part of the ERT inset, but it
        is ouput by check_space() as part of the standard text which follows.
3):     The space in front of www is caused by the fact that there is a
        newline between the opening brace of the parbox and the \centering
        command, so this space is not the one after \centering (which is
        correctly swallowed). This additional space is in fact not needed,
        and the contents would look better in LyX without it, but since it is
        not caused by special code I'll put it back in the refernce for now.
        We can still improve this in the future if anybody has a good idea.

The remaining whitespace issues are all fixed by a simple change in
parse_text(): Instead of always eating whitespace after detecting \centering
et al, and always output a space as part of the ERT if these commands need an
ERT, let the standard space handling mechanism kick in: skip whitespace if
no ERT is used (in this case LyX will always output the needed space), and
do not touch whitespace if an ERT is used.
2015-06-11 22:25:00 +02:00
Georg Baum
90a524a075 Fix comments
The FIXME is not needed, this is how StyleChanger and FracChanger work:
In the constructor, they change the state of the FontInfo, and in the
destructor the state is set back. Therefore, all code that needs the changed
state, needs to be executed while the objects do still exist.
2015-06-11 20:40:04 +02:00
Jessica Hamilton
7cd2e55d1f Qt4: Prevent crash on Haiku when clicking in a document
Fixes bug #8595.
2015-06-11 18:12:35 +02:00
Juergen Spitzmueller
664ef2c459 Report missing characters on conversion with XeTeX or LuaTeX (bug #9610)
As discussed on trac, we treat this as error, since it severely
corrupts the output (dataloss).
2015-06-11 11:32:17 +02:00
Enrico Forestieri
dd62e0594c Fix building with cmake and Qt4 2015-06-11 00:09:31 +02:00
Kornel Benko
19c7902b53 Cmake build: Adapt to compile after 0213e7b5c6 2015-06-10 21:53:10 +02:00
Enrico Forestieri
0213e7b5c6 Was forgetting to clean up 2015-06-10 20:12:31 +02:00
Enrico Forestieri
21e908b8c4 Delay regeneration of previews on zoom changes
Until now the regeneration process was starting as soon as the zoom scale
factor was changed. This was causing some glitches, especially if the zoom
was changed by the mouse wheel, as on each change the process was started
again and again making zoom changes painful and causing races such that
one could end up with the text at some zoom factor and the previews at
another one. After this commit, the regeneration is started only after
the zoom factor has been stable for about 1 second. In this way, one can
use the mouse wheel for changing back and forth the zoom factor at own's
heart desire without any slow down due to the regeneration process running
in the background. For those using previews with numbered math equations,
a nice possibility for getting the equations correctly numbered in sequence
(after removing or adding an equation) is using the shortcuts Alt+ and Alt-
in rapid sequence (less than a second between the keystrokes). Previously,
this would have triggered twice the regeneration, but now only once.
2015-06-10 19:21:27 +02:00
Juergen Spitzmueller
4feec2ef4b Properly fix bug #9598
Do not output \\par at the end of environments with size change if the
environment cosinsts of only one par.
2015-06-09 08:18:19 +02:00
Juergen Spitzmueller
8e671a5cdc Revert "No \\par after greyedout notes (bug #9598)"
This reverts commit f929f21228.

It is not as easy as this. See ticket.
2015-06-09 07:57:19 +02:00
Juergen Spitzmueller
f929f21228 No \\par after greyedout notes (bug #9598) 2015-06-09 07:44:03 +02:00
Jessica Hamilton
dcfb918f15 Add packaging support for Haiku
See bug #7568 for details.
2015-06-08 17:18:14 +02:00
Jean-Marc Lasgouttes
469a1f48a6 Properly notify insets after BufferView::doDispatch
Currently, insets are notified that the cursor entered or leaved them in Cursor::dispatch. This is not the cas efor lfuns which are handled in BufferView.

Adding the proper code allows to fix many bugs where previews are not updated correctly.

This also reverts cf4f79f8, which was the same fix for a particular case.

Fixes bug #6173.
2015-06-08 15:10:36 +02:00
Enrico Forestieri
8f169aa23d Properly fix #9602.
Other than checking that we are at the beginning of a paragraph,
we must also check that this is not the first paragraph before
triggering the code that removes the inset separator. This accounts
for the case that we are dissolving an inset from the inside.
Without this additonal check the old code was fooled into thinking
that the separator should have been removed.
2015-06-08 00:41:36 +02:00
Enrico Forestieri
541984e43e Revert 6bd9f885
Sorry, I was wrong. That code is still needed.
Proper fix for #9602 is on its way.
2015-06-08 00:38:10 +02:00
Enrico Forestieri
6bd9f8856f Fix bug #9602.
The removed code was introduced at [c668ebf6/lyxgit] to assure that
an inset separator in the last position of a paragraph was getting
removed when hitting backspace with the cursor at the beginning of
the next paragraph. Apparently, it is not needed anymore and can
be removed. This avoids the reported assertion.
2015-06-07 23:26:57 +02:00
Scott Kostyshak
580947bfe0 Revert "Update previews after pasting (#6211)"
As JMarc notes on the ML, the referenced commit modifies a full
buffer just in the middle of a dispatch action.

Further, this commit lead to an assertion [1], although it is not
clear to me whether the root cause of the assertion is the commit
that is being reverted here, or one of the issues we have with
previews and macros.

This reverts commit 73460423ad.

[1] http://www.mail-archive.com/lyx-devel@lists.lyx.org/msg187921.html
2015-06-07 12:14:00 -04:00
Juergen Spitzmueller
7cce590390 GuiIndices: Improve widget disabling and account for read only status
(bug #9593)
2015-06-03 16:54:54 +02:00
Jean-Marc Lasgouttes
25913aaac6 When the document language is changed, update cursor language too
Actually, the change is done only if the cursor language was the
document language already.

This fixes an trivial but annoying problem: create a new file (in
English), change language to your favourite language, then start to
write. Before this fix, the words come out in English, which does not
make sense.

Fixes bug #9586.
2015-06-03 12:19:07 +02:00
Jean-Marc Lasgouttes
0db513c4d6 Make case-changing lfuns operate on full words by default
This is for people who cannot grasp the superior conventions of emacs ;)

A new argument "partial" has been added to word-upcase, word-lowcase
and word-capitalize that restores the old emacs-like behavior.

The (x)emacs bindings are updated to use the "partial" argument, and
also to bind correctly M-u and M-l (M-c is unfortunately not
available).

Fixes bug #2826.
2015-06-03 09:30:28 +02:00
Enrico Forestieri
3924030e82 Fix some preview issues reported on the devel list.
* Provide for vector fonts only if needed.
* Make sure microtype doesn't throw a trantum in dvi mode.
* Use correct macro definition in preview insets.
2015-06-03 00:24:54 +02:00
Juergen Spitzmueller
77ab3017d0 Make Thesaurus check for more general dictionaries (en-v2.idx)
if a specific one (such as en_NZ-v2.idx) is not found.

If someone can replace the rather clumsy code by an elegant regexp
(I failed to find one), this is most welcome!
2015-06-02 17:28:44 +02:00
Juergen Spitzmueller
5d41a22ee4 Fix preview of included files in child documents (bug #9583) 2015-06-02 17:23:52 +02:00
Georg Baum
44f73b0650 Revert whitespace changes in test references
These whitespace changes are not correct. The test fail now, but they will
pss again once the tex2lyx bug is fixed.
2015-06-01 21:20:08 +02:00
Georg Baum
e1d9ad9f28 Revert some recent test changes
These should not have been done without discussion.

- Removal of the dcolumn table in 1a8b74f5e1. Even if LyX does not support
dcolumn anymore, it is still a useful test whether tex2lyx imports it
correctly.

- Removal of the first "%% LyX" line. A long time ago it was decided (after
long discussion between at least Jean-Marc, Uwe and me), that this line is
interpreted by tex2lyx, and used to remove some LyX-generated preamble code.
These lines in the current tests exist on purpose (one can see in the diff
how the removal added unwanted stuff). I do not really like the
interpretation of the "%% LyX" line, but if this behaviour is to be changed
then this needs discussion first.

- Changed comment of \date. The comment was put there on purpose, and the
warning which was "fixed" by the change hints at a limitation in LyX, not a
tex2lyx problem (LyX does not know that a comment inset between some title
insets is OK). The roundtrip .tex output was OK with the old version.

- Change of \verbatiminput{foo}. This was supposed to test whether a
verbatim inset is correctly created even if the included file does not
exist.

- Removal of \lyxlines. Although these tests test input of files created by
old LyX versions, they are useful.

- Change of the lemma in test-modules.tex. The old version was put there on
purpose, and the file itself explains why it is translated to ERT.
2015-06-01 21:15:52 +02:00
Georg Baum
d4ae233106 Fix xfig test reference
For a not yet known reason the correct external xfig inset was replaced by an
include inset in 656bb6a0cb. Now it is correct again.
2015-06-01 20:43:31 +02:00
Juergen Spitzmueller
eb748d6330 Make layout membership to ParagraphGroup settable (see #6854) 2015-06-01 16:11:05 +02:00
Juergen Spitzmueller
83a9ed4e62 Fix remaining preview issue with math macros (#6369) 2015-06-01 10:29:48 +02:00
Enrico Forestieri
ad0d0f6d69 Really fix bug #9354 2015-05-31 00:53:38 +02:00
Enrico Forestieri
bb4bef8994 Extend the fix for #5760 to the cygwin xcb backend. 2015-05-30 17:25:36 +02:00
Uwe Stöhr
f8d5a3ea4f LaTeXFeatures.cpp: register the hpstatement package 2015-05-29 01:47:46 +02:00
Richard Heck
babe9eaeab The way this was done here is inconsistent with how it is done
in other places.
2015-05-28 18:03:27 -04:00
Georg Baum
f329d2c2ec Revert e1c04e56e1
verbatim.tex was added by Kornel on purpose and should not be removed without
discussing it beforehand.
2015-05-28 22:11:35 +02:00
Georg Baum
59294b71fe Revert 82c7669381
Now make dist works again. See b188e74cd6 for details.
2015-05-28 20:48:15 +02:00
Juergen Spitzmueller
abefdcaf30 Add comment 2015-05-28 13:34:58 +02:00
Stephan Witt
0632c91aee Remove leftover from printing support. 2015-05-28 13:33:56 +02:00
Stephan Witt
c25e8c50a7 #9574 check for valid focus (see ticket #1720) does not work on Linux and Windows 2015-05-28 13:27:59 +02:00
Juergen Spitzmueller
6501bb0904 Do AutoInsert of item arguments also on paragraph break. 2015-05-28 09:46:40 +02:00
Stephan Witt
31ebb84486 improved positioning of version text in banner image 2015-05-28 08:01:58 +02:00
Richard Heck
3c2b3e6907 Remove printing support from LyX.
This was bug #6747.
2015-05-27 18:13:08 -04:00
Scott Kostyshak
7399d99c98 Allow SVGs in HTML output (#7441)
This is only a specific part of #7441.

Patch from Julien Rioux.
2015-05-27 11:25:06 -04:00
Jean-Marc Lasgouttes
ab1e13702e Fix bad font toggling after the layout has been changed.
When changing the paragraph layout, it is a good idea to call
{{{Cursor::setCurrentFont()}}} to make sure that all is in order.

Fixes bug #4394.
2015-05-27 17:06:11 +02:00
Juergen Spitzmueller
edd37de8b4 Enable polyglossia for LuaTeX 2015-05-27 14:40:04 +02:00
Juergen Spitzmueller
5353172793 If there is an inset at cursor, connect the dialog with that, not the containing one
Fixes: #8716 ("minipage within minipage" Settings bug)

This is a potential candidate for branch, but only after some more testing.
2015-05-26 19:33:07 +02:00
Jean-Marc Lasgouttes
7f0ac0932b Avoid crash with undo in a closed collapsable inset
The recipe for reproducing this crash is to do a search and replace
that changes a string present in a collapsed inset, and then undo.

This is a followup to 17e435c4, which used editable() instead of
isActive(); this commit was amended at c2f785bd, since editable() is
not set properly in mathed.

Truth is, editable() is not the right property to test against, since
it is false for a collapsed inset, which does not prevent a cursor
from pointing inside. Therefore sanitize should not change the cursor
in this case.

Hopefuly, this is the last word on the subject. Alternative would be
to drop this if()-clause completely.
2015-05-26 11:19:05 +02:00
Enrico Forestieri
806cfc5a8b Virtualize the origin tag for the system directory.
The documents saved to the system directory have now the origin tag
prefix "/systemlyxdir/". This allows both saving them always using
the same virtual path irrespective of the real path and to let the
origin tag work out of the box also on MacOS.
2015-05-26 00:29:46 +02:00
Uwe Stöhr
a06b3900d2 tex2lyx/Preamble.cpp: revert a part of [041a3add/lyxgit]
There is a general problem of tex2lyx handling theorems. it is not sufficient to cure only one instance as I did. For more info see bug #9561.

Update the references accordingly.
2015-05-25 17:49:54 +02:00
Uwe Stöhr
6867277843 test/test-refstyle-theorems.lyx.lyx: update reference according to yesterdays tex2lyx changes
- I am aware that the resulting LyX file cannot be compiled - another tex2lyx bug
2015-05-25 17:20:41 +02:00
Juergen Spitzmueller
c60827146f Fix logic in tabular dialog with decimal alignment
Fixes: #9570

Partially reverts [9d05ac5c912/lyxgit].
2015-05-25 15:55:11 +02:00
Uwe Stöhr
656bb6a0cb tex2lyx: update references according to today's changes 2015-05-25 02:10:03 +02:00
Uwe Stöhr
9960709fc2 tex2lyx/Preamble.cpp: handle \LyX
The definition for \LyX is re-added if the file contains \LyX
2015-05-25 02:02:10 +02:00
Uwe Stöhr
111df7b600 tex2lyx/Preamble.cpp: handle \lyxline 2015-05-25 01:48:28 +02:00
Uwe Stöhr
a7db473445 tex2lyx/Preamble.cpp: handle \lyxarrow
this fixes error 20 in bug #9565
2015-05-25 01:40:59 +02:00
Uwe Stöhr
77c8599658 tex2lyx/test/test-insets.tex: remove the \lyxline stuff
the \lyxline hack has gone from LyX long time ago. Therefore only one reference is enough
2015-05-25 01:38:52 +02:00
Uwe Stöhr
429f4669b0 test-insets-basic.tex: remove (in my opinion) wrong parser test
for more info see bug #9563
2015-05-25 01:07:35 +02:00
Uwe Stöhr
32cc0d2b2f tex2lyx/test/test-insets.tex: don't say that this is a LyX file
With the now removed command we said that this is a file created by LyX but this is not the case

- also replace a comment to avoid LaTeX warnings about mixing title and non-title stuff
2015-05-25 00:53:59 +02:00
Uwe Stöhr
1a8b74f5e1 tex2lyx: use correct LaTeX code for a table
before LyX 2.1 was released the dcolumn support was dropped and another method was used to align at the decimal point. Nevertheless the old LaTeX table was even wrong in terms of dcolumn

Now a table is used that uses the decimal alignment as it is supported by LyX
2015-05-25 00:17:18 +02:00
Kornel Benko
701a100d0b Adapt tex2lyx tests to Uwe's changes 2015-05-24 19:39:16 +02:00
Uwe Stöhr
e69124ab76 test-insets-basic.tex: add new testfile
The idea is to get a compilable file that does not require programs that are only available on certain platforms.
For example on Windows there is no Gnumeric available (only a very outdated and unsupported version with bugs).
2015-05-24 18:42:46 +02:00
Uwe Stöhr
410918400c tex2lyx/test/test-insets.tex: avoid 2 error messages 2015-05-24 18:38:40 +02:00
Uwe Stöhr
82c7669381 Dummy Document.tex: this file was missing but input in our test file 2015-05-24 18:06:02 +02:00
Uwe Stöhr
eb90d531be tex2lyx/test/test-insets.tex: input an existing file to avoid errors ad warnings 2015-05-24 18:05:16 +02:00
Uwe Stöhr
e1c04e56e1 delete test file verbatim.tex
because we already check for verbatim in test-structure.tex
2015-05-24 17:20:55 +02:00
Uwe Stöhr
041a3add6c tex2lyx/Preamble.cpp: fix bug #9561
there were 2 issues:
- the body was not output to the Preamble
- the theorem module already defines a theorem. It must not be output to the preamble to avoid a redefinition error of LaTeX

update the test files accordingly
2015-05-24 17:03:13 +02:00
Juergen Spitzmueller
5ceb82d4e4 GuiAbout: Detect and provide links to trac
Text in the form "bug #1234" is transformed to a link that points
to the respective trac entry.
2015-05-24 14:51:47 +02:00
Juergen Spitzmueller
19b6248498 Update tex2lyx test after dbe0096c12 2015-05-24 14:23:20 +02:00
Juergen Spitzmueller
ee41b0f193 Forgotten tex2lyx change in dbe0096c12 2015-05-24 14:21:36 +02:00
Juergen Spitzmueller
dbe0096c12 Rename ref prefix "sub:" to "subsec:"
This solves a macro conflict between subfloat's \subref and our own
\subref definition (bug #7550)

File format change.
2015-05-24 13:50:21 +02:00
Uwe Stöhr
e6c225d582 jss.layout: support for more layouts
Since lyX 2.0 we support to use the in_preamble tag. This allows to support more commands. For an unknown reason I forgot the jss.layout when I updated the other layouts once.

Fileformat change
2015-05-24 03:34:36 +02:00
Enrico Forestieri
c2a18fc142 Bump RC format for commit 260a98d2 2015-05-23 18:24:26 +02:00
Enrico Forestieri
260a98d295 Save the document directory path only if explicitly allowed.
A new preference is introduced for allowing the record of the document
directory path in the saved file. Without explicit consent, it is not saved.
If the origin tag contains an invalid/wrong path or garbage, LyX behaves
exactly as before, i.e., included files are simply not found.
2015-05-23 17:49:33 +02:00
Juergen Spitzmueller
be6a6d76af InsetFloat: fix typo 2015-05-23 10:38:31 +02:00
Stephan Witt
89469a9e55 fix whitespace issue 2015-05-22 22:04:19 +02:00
Uwe Stöhr
0f3fc879d0 Merge branch 'master' of git.lyx.org:lyx 2015-05-22 22:03:13 +02:00
Uwe Stöhr
175568b797 tex2lyx/test/test-insets.lyx.lyx: update according the the recent text2lyx fixes 2015-05-22 22:03:02 +02:00
Stephan Witt
43dd383073 avoid float-conversion warning and simplify size computation 2015-05-22 22:00:22 +02:00
Juergen Spitzmueller
47dd9189eb Add more Float tags to allow to disable wide and sideways feature
Fixes: #9557, #9558

This is amended to yesterday's layout format change.
2015-05-22 18:59:17 +02:00
Jean-Marc Lasgouttes
7760c5ccf2 Create proper undo groups for advanced find and replace
Create new helper class UndoGroupHelper, which simplifies a lot the
handling of undo groups in cases like this one. The class tracks open
undo buffers and allows to switch buffers transparently.

Using the class for advanced search and replace is trivial. THe class
may be useful in some other classes.

Fixes ticket #8658
2015-05-22 16:42:10 +02:00
Jean-Marc Lasgouttes
c444fddc0b Use macro LYX_USE_CXX11 in one more location
This is a follow-up to commit 329eae56.
2015-05-22 12:41:30 +02:00
Juergen Spitzmueller
1d266c8cfa Indicate read-only status in tabs (#6783) 2015-05-22 10:41:12 +02:00
Juergen Spitzmueller
7dc123b790 Add Float tag to determine allowed positioning options (#7752) 2015-05-22 10:37:14 +02:00
Enrico Forestieri
93e131f54f Code simplification. 2015-05-21 18:13:42 +02:00
Jean-Marc Lasgouttes
88609b3984 Improve list of available languages for UI l10n.
Add a new tag HasGuiSupport to language file. Add it for all l10ns
that we currently ship. The po files that are unused are not currently
tagged as available, but this could be done, since the code later
checks that the translation is actually there.

This new information is used in GuiPrefs when populating the language
combox.

The new scheme implies that adding a new language is now a two-step
process:
* the language code has to be added to po/LINGUAS, as before;
* one of the entries of the lib/language file has to be selected as
  reference and be given the "HasGuiSupport true" property.
2015-05-21 10:48:38 +02:00
Juergen Spitzmueller
977bbd9bc3 Add InsertCotext tag also to InsetLayout argument (part of #4745) 2015-05-21 08:53:56 +02:00
Scott Kostyshak
c983aa3049 Set empty pdfborderstyle for hyperref (#7264)
This leads to better compatibility with e.g. arXiv.

As Jürgen notes, it is also possible to override this automatic
empty pdfborderstyle via the Additional Options.

Patch by Julien Rioux.
2015-05-21 00:31:51 -04:00
Uwe Stöhr
96874489f4 tex2lyx/text.cpp: avoid a tex2lyx error message 2015-05-20 22:26:42 +02:00
Uwe Stöhr
437d0d2b10 tex2lyx/text.cpp: a fix for \fboxcolor around \parbox and minipage 2015-05-20 21:37:14 +02:00
Juergen Spitzmueller
9e16608867 Fix problems with immediate apply and length validators
Fixes bugs #7022 and #7599.
2015-05-20 19:13:12 +02:00
Enrico Forestieri
7b0ecf1f38 Also find external material files when the document is moved and origin is known 2015-05-20 16:04:18 +02:00
Enrico Forestieri
a93ac27450 Avoid compiler warning about overloaded virtual function. 2015-05-20 15:49:15 +02:00
Jean-Marc Lasgouttes
32148586a8 Place the cursor correctly after undoing an inset dissolution
The cleanup in 11ca1406 was not correct. It is actually not possible to implement recordUndoInset from the undo API, since the cursor may not be at a different level than the text to be saved.

Fixes ticket #9553
2015-05-20 12:14:34 +02:00
Jean-Marc Lasgouttes
3176ac365c remove bogus comment
There used to be a showCursor call below the command, sometimes between 2002 and 2007.
2015-05-20 11:24:15 +02:00
Jean-Marc Lasgouttes
329eae5605 Use explicit macro to declare that we want to use C++11
This replaces tests for __cplusplus >= 201103L, which are wrong with gcc 4.6 and earlier. Indeed these versions of gcc define __cplusplus = 1.

Reference:
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=1773
2015-05-20 10:19:19 +02:00
Juergen Spitzmueller
8b86af7298 Fix LaTeX length export of big numbers, part 2 (bug #9416)
LaTeX lengths must not use scientific notation, since the + sign has a
different meaning (glue lengths). This is the GUI part of bug 9416,
on top of part 1 [59e4d16ab/lyxgit].
2015-05-20 09:35:57 +02:00
Stephan Witt
2ac45cc4d2 #9130 Text in main work area isn't rendered with high resolution
Try SVG version of banner with Qt4 too.
2015-05-20 08:46:26 +02:00
Stephan Witt
d392df30c0 #9130 Text in main work area isn't rendered with high resolution
Correctly guard Qt5 code introduced by change c053a9394d
2015-05-20 07:52:30 +02:00
Uwe Stöhr
896d0e00ca box-color-size-space-align.lyx.lyx: update file 2015-05-20 00:15:03 +02:00
Uwe Stöhr
bf532908b6 tex2lyx/text.cpp: remove an unintended addition 2015-05-20 00:05:12 +02:00
Uwe Stöhr
013eb54270 tex2lyx/text.cpp: fixes for \mbox{}
now all box constructs should be fully supported by tex2lyx
2015-05-19 23:35:56 +02:00
Uwe Stöhr
8f3ed42294 tex2lyx/text.cpp: remove a now unnecessary hack
\framebox{} is equal to \fbox{} and \makebox{} is equal to \mbox{}
When I once wrote this code LyX did not support \fbbox and \mbox and therefore had to use a workaround.
2015-05-19 23:25:36 +02:00
Stephan Witt
c053a9394d #9130 Text in main work area isn't rendered with high resolution
Improved icon and pixmap handling with SVG images and high physical resolution displays.
This results in much better looking icons and splash banner.
2015-05-19 22:46:26 +02:00
Stephan Witt
0933df0011 Add Qt's Svg module to the list of used modules. This is required to allow the use of e.g. the QSvgRenderer class. 2015-05-19 22:46:26 +02:00
Enrico Forestieri
82e4dbc48e Use the xcb definition for the primary selection atom. 2015-05-19 21:19:49 +02:00
Juergen Spitzmueller
c162d02915 GuiAbout: enforce a reasonable width (show all tabs) 2015-05-19 15:09:46 +02:00
Kornel Benko
b5ce8989bf Cmake tests: cheating check_layout to accept module files as layouts 2015-05-19 13:42:33 +02:00
Juergen Spitzmueller
14557b28d9 Complilation fix.
This time without unwandted po stuff.
2015-05-19 12:56:31 +02:00
Juergen Spitzmueller
01e7a10029 Revert "Complilation fix."
This reverts commit abf8208679.

I'll properly re-commit in a minute.
2015-05-19 12:52:19 +02:00
Juergen Spitzmueller
af42a9d683 GuiAbout: minor ui fix 2015-05-19 12:43:44 +02:00
Juergen Spitzmueller
abf8208679 Complilation fix. 2015-05-19 12:37:45 +02:00
Juergen Spitzmueller
4005a4d470 Use trimmed string in [Inset]Layout Requires.
Fixes: #9518
2015-05-19 10:17:34 +02:00
Juergen Spitzmueller
cf44bb842b Provide optional trimmed version of Lexer::getString and getDocString
Prerequisite to fix #9518
2015-05-19 10:15:34 +02:00
Juergen Spitzmueller
9f55ce9b04 Make RELEASE-NOTES accessible from GUI (#8616)
CMake people, please check if something needs to be done to install
lib/RELEASE-NOTES.
2015-05-19 09:57:52 +02:00
Uwe Stöhr
f996cf74b8 tex2lyx/text.cpp: set correct alignment for \makebox{test}
also fix an indentation error
2015-05-19 03:25:55 +02:00
Uwe Stöhr
c3178903d4 tex2lyx/text.cpp: coding style improvements and code simplification 2015-05-19 03:03:35 +02:00
Uwe Stöhr
290e7a9e09 tex2lyx/text.cpp: fix a bug I introduced with [c7a11c1d/lyxgit] 2015-05-19 02:29:16 +02:00
Uwe Stöhr
1ace9f5ac2 tex2lyx/text.cpp: add support for box alignment
the nasty hack with the FIXME is due to bug #9552
2015-05-19 02:19:24 +02:00
Uwe Stöhr
78aeccc19a tex2lyx/text.cpp: code simplification 2015-05-19 00:24:13 +02:00
Uwe Stöhr
6ae2a8bcbe tex2lyx/Preamble.cpp: forgot a package in previous commit 2015-05-19 00:21:12 +02:00
Uwe Stöhr
0471fe366a tex2lyx: register required packages for boxes 2015-05-19 00:17:08 +02:00
Uwe Stöhr
bcc423c7ea tex2lyx/text.cpp: support for \fcolorbox
and a fix also for \colorbox
2015-05-19 00:04:45 +02:00
Uwe Stöhr
c7a11c1da5 tex2lyx/text.cpp: fix handling of \fbox
since a while now lyX supports inner boxes in \fbox, tex2lyx was outdated in this case
2015-05-18 23:45:27 +02:00
Juergen Spitzmueller
e1b1dd7445 GuiBox: remove unneeded connection and use a more senible signal 2015-05-18 13:13:04 +02:00
Juergen Spitzmueller
7d67e94cd0 GuiBox: do not rely on count (as explained on lyx-devel) 2015-05-18 13:12:26 +02:00
Juergen Spitzmueller
a98cfe1874 GuiBox: sort colors 2015-05-18 13:11:34 +02:00
Juergen Spitzmueller
bca8f5a940 GuiBox: remove none from the static color list
It is not used anyway and it prevents sorting.
2015-05-18 13:10:32 +02:00
Juergen Spitzmueller
47bee41ea3 GuiBox: assure combo boxes are empty before filling 2015-05-18 13:09:07 +02:00
Juergen Spitzmueller
edfdd5139e GuiBox: swap filling of color combos 2015-05-18 13:07:00 +02:00
Juergen Spitzmueller
2548e7fd98 GuiBox: simplification 2015-05-18 13:05:28 +02:00
Juergen Spitzmueller
927136c256 isReadable can only be used after the file has been opened 2015-05-18 11:15:11 +02:00
Juergen Spitzmueller
7f1d33efc1 Re-defactor ColorSorter.
This hopefully cures Richard's compilation woes.
2015-05-18 11:11:45 +02:00
Uwe Stöhr
496dba4532 tex2lyx/text.cpp: support for lengths like "2.5\width" in boxes
LyX supports these length in boxes for a while now; tex2lyx was not up to date
2015-05-18 01:37:59 +02:00
Uwe Stöhr
7eaae7b7ff tex2lyx/TODO.txt: add a feature that is not yet supported 2015-05-18 01:00:25 +02:00
Uwe Stöhr
5449a5b837 tex2lyx/text.cpp: support for the commands \fboxsep etc.
It is impossible handle all cases because the closing brace of an \fboxsep block can be everywhere. Therefore the braces remain in ERT.
2015-05-18 00:56:23 +02:00
Uwe Stöhr
52a158b6d7 InsetBox.cpp: add visual feedback for frame color
- the idea is to color the box inset frame according to the fame color of the box (if there is any). To keep the WYSIWYM principle the frame thickness and box separation are not taken into account. However this should be possible if anybody would like that.

- besides this, use the correct conversion command for the background color
2015-05-17 23:20:43 +02:00
Richard Heck
61448d8cb2 Fix bug #9544: Mark file clean after we write it. 2015-05-17 16:12:47 -04:00
Uwe Stöhr
f1832074f0 tex2lyx/text.cpp: set correct default horizontal position for \framebox 2015-05-17 21:59:29 +02:00
Uwe Stöhr
76b579ed37 tex2lyx/text.cpp: a fix for the horizontal box position
- if nothing is specified, the box content is left aligned, except for \makebox where it is centered
2015-05-17 18:12:20 +02:00
Uwe Stöhr
55417b50da tex2lyx/text.cpp: fix an indentation mistake 2015-05-17 17:45:56 +02:00
Uwe Stöhr
95af488798 InsetBox.cpp: fix a bug I introduced in [88593e0e/lyxgit] 2015-05-17 17:36:46 +02:00
Georg Baum
84cca2dd94 Fix indentation 2015-05-17 17:27:27 +02:00
Uwe Stöhr
92b7ee46ed tex2lyx: support the command \colorbox
support for \fcolorbox will follow soon
2015-05-17 17:26:51 +02:00
Juergen Spitzmueller
b7c53b6017 Use view/data separation for GuiCharacter colors, which makes it possible to sort the colors 2015-05-17 17:15:01 +02:00
Juergen Spitzmueller
8fc637103f Factor out ColorSorter to qt_helpers, to make it
available to other dialogs as well.
2015-05-17 16:47:40 +02:00
Kornel Benko
3cd36977c9 Updated remaining tex2lyx test cases after commit 12ae7140c2 2015-05-17 15:53:58 +02:00
Kornel Benko
e2d4197068 Cmake build: Added target updatetex2lyxtests to update lyx2lyx test files 2015-05-17 15:51:28 +02:00
Uwe Stöhr
12ae7140c2 tex2lyx/text.cpp: add default value for 2 box features
- also add a comment
2015-05-17 15:00:51 +02:00
Georg Baum
39329935f3 Parse \multicolumn in math (bug 396)
The math parser could not handle multicolumn grids. This is a problem because
there is no true ERT in math (everything is parsed).
Now multicolumn cells are parsed correctly. The display is also somewhat OK,
but apart from that any multicolumn related UI is missing. Since the file
format change is now done the UI can be added at any later point. The most
important part of bug 396 is now fixed: tex2lyx does not create invalid .lyx
files anymore for formulas containing \multicolumn.

I updated the tex2lyx test cases that produce correct output. tex2lyx does
still produce invalid output for the test cases which are not updated because
of the previous format change.
2015-05-17 13:43:37 +02:00
Uwe Stöhr
46671b5836 InsetBox.cpp: code simplification
thanks Pavel for the hint
2015-05-17 03:21:02 +02:00
Uwe Stöhr
8dd217c983 GuiBox.cpp: fix bug introduced by [bec3f7bc/lyxgit]
There were now 2 entries named "none" in backgroundcolorCO

- delete the fixmes; the LateX name is used as parameter to save unnecessary conversions for the LateX output; please ask me before adding fixmes
2015-05-17 01:45:56 +02:00
Uwe Stöhr
51e3b026b2 GuiBox.cpp: a compile fix 2015-05-17 01:28:06 +02:00
Enrico Forestieri
324abefd53 Fix #5575 also on Windows. 2015-05-16 23:36:40 +02:00
Enrico Forestieri
62d36bf04d Correctly load documents moved elsewhere after save.
It is now possible opening documents that where manually moved to a
different location after they were saved and still produce an output.
Indeed, (hopefully) all needed included files are now still found.
When the moved document is saved again, all paths are accordingly updated.
Of course, for this to work, a document has to be saved in Format 490,
at least.

As an example, after converting the user guide to the last format, it can
be copied anywhere and opened without the need of adapting the paths of
included files or moving them to a proper place.

There is one glitch I am aware of. When moving a child document (but not
the master) the path to the master is correctly updated but it won't be
recognized as such. This is because LyX checks that the parent actually
includes this document but, of course, being the parent document not
touched, it appears not including this child. Anyway, it will also occur
when saving the child to a different location and the user is warned
on the terminal about this fact when the moved child is loaded.
However, there is no problem when it is the master that has been moved.
2015-05-16 19:52:39 +02:00
Juergen Spitzmueller
853283ca87 Extend comment and remove superfluous parentheses. 2015-05-16 19:18:51 +02:00
Juergen Spitzmueller
9e57f906c2 Refine fix for #5575 and comment it out for windows
See #5575 for details why it does not work on windows.
2015-05-16 17:16:01 +02:00
Juergen Spitzmueller
1738d4e409 Fix tooltip line breaks. 2015-05-16 15:41:22 +02:00
Juergen Spitzmueller
818249f69f Clarify "Save compressed by default" feature (bug 7822) 2015-05-16 15:31:51 +02:00
Juergen Spitzmueller
69fe51f9d8 Fix casing 2015-05-16 13:30:23 +02:00
Juergen Spitzmueller
b5fbd9f2a2 Fix Box UI (buddies and accelerators) 2015-05-16 12:46:08 +02:00
Georg Baum
08b2859663 Do not require esint for \int (bug 9498)
We also get a consistent look with amsmath, so require esint or amsmath.
When resolving alternatives, do also take into account whether the package
is available. For this to work, we also need to test for amsmath.sty (which
was surprisingly not yet done).
2015-05-16 12:29:54 +02:00
Juergen Spitzmueller
bec3f7bc8c Fix up GuiBox (use proper data/view separation and clean up) 2015-05-16 11:27:13 +02:00
Georg Baum
1e4700b277 Remove bash construct
Now it should work with any sh compatible shell
2015-05-16 11:11:08 +02:00
Uwe Stöhr
bd80617cdb GuiBox.cpp: enable color features also for non-English locales
stupid me, I used a translatable string as box parameter. Therefore the feature only worked correctly with English locale. Now it works for every locale.
2015-05-16 05:22:22 +02:00
Uwe Stöhr
0140063c8e GuiBox.cpp: add a comment and a string conversion 2015-05-16 03:54:51 +02:00
Uwe Stöhr
a49f24767a GuiCharacter.cpp: sort all colors, also white
as proposed by Scott
2015-05-16 03:32:45 +02:00
Uwe Stöhr
88593e0ec6 support for colored boxes
adds support to set colors for some box types (support for the LaTeX commands \fcolorbox and \colorbox)

fileformat change
2015-05-16 03:22:37 +02:00
Georg Baum
b596330093 Fix compilation with boost 1.58
Newer boost versions use complicated type traits for boost::next and
boost::prior, which do not work with the RandomAccessList iterators.
The long term solution is to use std::next and std::prev, for now supply
simple replacements for compilers that do not support C++11 yet.
2015-05-16 00:05:23 +02:00
Georg Baum
ef456e9607 Update tex2lyx test references correctly
This was produced by

make updatetests
2015-05-15 21:27:47 +02:00
Georg Baum
b2b68969ab Revert broken tex2lyx test reference update
Revert "tex2lyx testfiles: update to latest fileformat"
This reverts commit afdfc3cf43.

The tex2lyx test vrefernces must be produced by tex2lyx, otherwise the tests
would still fail.
2015-05-15 21:23:29 +02:00
Georg Baum
b147cd0f3a Instantiate trivial_string::c_str() explicitly
This fixes hopefully the compilation of check_trivstring on cygwin and
solaris. Previously I did not use the explicit instantiation, because c_str()
is used by other explicitly instantiated methiods, but for some reason this
does not seem to suffice.
2015-05-15 21:01:59 +02:00
Uwe Stöhr
ffb4146d17 GuiBox.cpp: fix logic
- if pagebreaks are allowed there cannot be defined a width
2015-05-15 06:04:46 +02:00
Uwe Stöhr
6780a30409 GuiBox.cpp: fix logic
- if pagebreaks are allowed there cannot be defined a width
2015-05-15 06:02:41 +02:00
Uwe Stöhr
7bb691b8ad InsetBox.cpp: code simplification 2015-05-15 03:59:04 +02:00
Uwe Stöhr
a5cc5dce3c GuiBox.cpp: assure that the parameters are not empty 2015-05-15 03:51:11 +02:00
Enrico Forestieri
194e8bb4ac Fix layout tests. 2015-05-15 01:19:50 +02:00
Uwe Stöhr
afdfc3cf43 tex2lyx testfiles: update to latest fileformat 2015-05-14 23:13:14 +02:00
Uwe Stöhr
699f4b49a9 tex2lyx/Preamble.cpp: correct capitalization 2015-05-14 23:05:05 +02:00
Uwe Stöhr
e35bb3126a support for all default colors of the package xcolor
fileformat change
2015-05-14 22:23:44 +02:00
Georg Baum
9c9c6be175 Fix MSVC build 2015-05-14 20:36:12 +02:00
Kornel Benko
fecc438964 Update runtests.py to handle \origin for tex2lyx/cmplyx tests used by cmake. 2015-05-14 14:24:17 +02:00
Georg Baum
59e4d16ab9 Fix LaTeX length export of big numbers (bug 9416)
LaTeX lengths must not use scientific notation, since the + sign has a
different meaning (glue lengths). This is the export part of bug 9416, the GUI
part is still not fixed.
2015-05-14 12:14:47 +02:00
Georg Baum
1586f79499 Shut up compiler warning
We know that ceil() returns an integer, although the type is double.
2015-05-14 12:14:47 +02:00
Kornel Benko
4c6f9d039b Make output of runtests.py better readable 2015-05-14 10:45:43 +02:00
Enrico Forestieri
7144f8dad8 Update tex2lyx and tests after 306b136c 2015-05-14 01:02:37 +02:00
Enrico Forestieri
306b136cc0 Fix bug #4812 (Layout in local directory lost on Save As, Copying)
The "save-as" part of the bug is fixed by extending the \textclass tag
such that, if a local layout file is used, its path relative to the
document directory is now stored together with the name. If a relative
path cannot be used, an absolute one is used but, in this case, the
document is not usable on a different platform.

The "copy" part is fixed by introducing a new \origin tag, which is
written when the file is saved. This tag stores the absolute path of
the document directory. If the document is manually copied to a
different location, the local layout file is retrivied by using
\origin (which is only updated on save).
This new tag may prove useful also for locating other files when the
document is manually moved to a different directory.

As in the original implementation the files needed for the layout
(for example, a latex class) had to be in the same directory as the
layout file, this directory has also to be added to TEXINPUTS.
2015-05-13 22:02:13 +02:00
Enrico Forestieri
9b9f381598 Update tex2lyx tests after 8010b90c 2015-05-13 21:36:36 +02:00
Juergen Spitzmueller
301782fad7 Do not blindly insert ubound Alt-<letter> keybindings.
Fixes: #5575
2015-05-13 14:54:52 +02:00
Pavel Sanda
915b7c521e Unduplicate box strings. 2015-05-13 00:15:37 -07:00
Uwe Stöhr
858c12c6bb GuiBox.cpp: make a logic setting more clear 2015-05-13 01:16:35 +02:00
Richard Heck
fb4c70650c Use const ref instead of passing by value.
Thinko caught by coverity.
2015-05-12 12:52:36 -04:00
Richard Heck
7a0f7b7046 Pass XHTMLStream by reference. Problem found by coverity.
The previous code worked because we are writing to the stream, and
the actual odocstream is a member by reference of XHTMLStream.
2015-05-12 10:13:04 -04:00
Juergen Spitzmueller
5f20d05b1b Fix left margin with some nested layouts (#9538) 2015-05-12 15:47:38 +02:00
Uwe Stöhr
34da634451 BoxUi.ui: update tooltips and tab order
- InsetBox.cpp: constify
2015-05-12 00:28:29 +02:00
Uwe Stöhr
335ccee3b5 GuiBox.cpp: re-add lost braces
- FORMAT: add date
2015-05-11 22:16:36 +02:00
Uwe Stöhr
8010b90cb4 add ability to change box line thickness and separation
fileformat change
2015-05-11 21:30:32 +02:00
Juergen Spitzmueller
1d3b7e5085 Fix enabling/disabling in InsetParams derived dialogs (#9541) 2015-05-11 11:35:02 +02:00
Uwe Stöhr
3290d15a15 GuiBox.cpp: add missing braces from previous commit 2015-05-10 21:42:45 +02:00
Uwe Stöhr
4be4d4e1a6 GuiBox.cpp: fix button logic (fixes bug #9543) 2015-05-10 15:54:03 +02:00
Juergen Spitzmueller
49fa913739 GuiBox: Factor out enabling/disabling to checkedWidgets.
Part of: #9541.
2015-05-10 13:02:00 +02:00
Georg Baum
7b0485dbb2 Remove gcc 3 traces
We claim that gcc 4.x is needed in INSTALL, so it does not make sense to keep
this old stuff. Instead, I made configure output an error if gcc is too old.
2015-05-10 10:01:33 +02:00
Scott Kostyshak
c12dc2feef Fix pasting of PDF from clipboard
The command "paste pdf" was always disabled because the
condition in the following "if" statement always returns false

  if (arg == "pdf" && (type = Clipboard::PdfGraphicsType))

The value of "type" is zero in this case because PdfGraphicsType is
the first enum value (and it is not set explicitly to non-zero).

An alternative patch is to put AnyGraphicsType as the first
element of enum GraphicsType, or to set the first element to a
number greater than 0.

To test the bug that this commit fixes, either copy a PDF and try to
paste with the action "paste pdf", or click on the "Edit" menu and
notice (before this commit) the terminal output "Unrecognized
graphics type: pdf".
2015-05-09 20:46:43 -04:00
Juergen Spitzmueller
4ed8caaf1c Split different indices in the outliner
Fixes: #7012.
2015-05-09 15:30:10 +02:00
Juergen Spitzmueller
760b7cf2b6 Add option to Argument to let it be inserted with a copy of the co-text.
This is useful for classic "Short Titles", where one might want to start
with the full title in the inset.

Addresses: #4745
2015-05-09 12:17:24 +02:00
Juergen Spitzmueller
be040c4469 Whitespace 2015-05-09 12:05:45 +02:00
Georg Baum
51cc8aa9f6 Fix build with GNU libstdc++ C++11 ABI
The GNU libstdc++ that ships witch gcc 5 can be used with the same ABI as
older versions, or with a new ABI which is conformant to the C++11 standard.
LyX did not build if the latter was used:
https://kojipkgs.fedoraproject.org//work/tasks/1267/9651267/build.log

This is now fixed by detecting the ABI version and disabling the wrong forward
declarations. At the same time, STD_STRING_USES_COW is switched off for the
C++11 ABI version, because the std::basic_string implementation is now C++11
conformant. Since the GNU libstdc++ can also used by other compilers such as
clang, we must not test for the compiler version.
2015-05-08 21:12:42 +02:00
Stephan Witt
da548dbe30 #1720 disable document buffer related LFUNs in GUI view if the work area has no focus 2015-05-08 19:09:00 +02:00
Enrico Forestieri
bc8717b297 Fix compilation after e93444e7
Stephan, please check whether RowPainter::paintMisspelledMark has
to be extended to use a third parameter, instead.
2015-05-08 14:15:38 +02:00
Stephan Witt
e93444e7e9 #9514 improved document iterator for correct check of speller disabled state 2015-05-08 11:13:51 +02:00
Juergen Spitzmueller
9162a3f40e Forgot this. 2015-05-08 09:51:09 +02:00
Juergen Spitzmueller
5b03ae11a0 Implement PassThruChars to Argument
Closes: #9535.
2015-05-08 09:32:31 +02:00
Georg Baum
b0e387e013 Make static variable non-static
This is still a hack, but a less dangerous one. The old code had a problem
if it was called from different threads, or if for some reason it would get
called recursively.
2015-05-07 20:24:02 +02:00
Jean-Marc Lasgouttes
bb987c50c1 Revert correctly cursor font after undo a font toggle
The recordUndoSelection call was done after the modification of cursor font. This is bad.

Fixes: #9537
2015-05-07 15:56:22 +02:00
Kornel Benko
01bacfd060 Cmake build: New libmagic dependency after commit 93b0f9c080
The command check_ExternalTransforms was no longer linked.
2015-05-06 18:59:26 +02:00
Stephan Witt
93b0f9c080 #9514 contents inside of LyX insets with spell check disabled should be ignored by spell checker.
The document iterator now skips math insets and insets like notes where spell check is disabled.
The continuous spell checking is part of the row painter drawing and the spell check disabled state
has to be passed down recursively while doing the inset painting.
2015-05-06 18:39:24 +02:00
Enrico Forestieri
d0146c8e82 Don't update paths of non-existing files 2015-05-05 22:30:10 +02:00
Juergen Spitzmueller
4ba17c90a0 Do not insert non-rpintable characters (such as ASCII control characters)
Fixes: #5704.
2015-05-05 14:23:24 +02:00
Kornel Benko
9e105996d6 Adapt tex2lyx testfiles to the new format 488. 2015-05-05 12:34:25 +02:00
Scott Kostyshak
73c2513758 Remove code that is no longer needed
Because of our better mechanism for dealing with errors (72c5385f),
the problem described in the comment is no longer possible.
NO_OUTPUT is treated as an error so there will no longer be a
lingering PDF in this case.
2015-05-05 03:00:29 -04:00
Scott Kostyshak
72c5385f83 Do a fresh compile for preview after error (#9061)
As Enrico said, the user might have installed a package that was
missing (in which case the .tex file would not have changed).

Another reason is that changing some document settings did not
automatically lead to a fresh compile after an error (#9061).

Our old mechanism for detemining whether there was an error was to
check if the dependent file existed in the temporary directory. If
it did not exist, that meant it was removed, presumably because
there was an error during compilation. That mechanism cannot be used
anymore because we keep the files around even after error because of
the "Show Output Anyway" button (09700d5b). This commit implements a
more straightforward way of checking whether there was an error in
the previous preview by simply storing the success of last compile
in a buffer variable.
2015-05-05 00:30:50 -04:00
Scott Kostyshak
a1aeea3f16 Rename deleteFilesOnError to removeAuxiliaryFiles
The function is no longer called when there is an error because
we keep the file around for the "Show Output Anyway" button
(see 09700d5b).
2015-05-05 00:26:25 -04:00
Enrico Forestieri
6e6abe1edd Fix #5760 also on Windows.
The problem was due to the use of the wrong symbol for the slash.
The zero-width symbol for the \not operator was being used.
Using TeX fonts for all symbols gives now a better uniform look.
It is not possible using the alternative code even with Qt 5.4.1
because some glyphs are still missing.
2015-05-05 01:38:50 +02:00
Juergen Spitzmueller
1aea9864f3 TabularCreate.ui: Fix zorder. 2015-05-04 17:38:15 +02:00
Enrico Forestieri
8c351e32be Update paths of included files when saving to a different folder.
Fixes #9528 and #5115.
2015-05-03 23:55:19 +02:00
Juergen Spitzmueller
b9573096f7 Factor out polyglossia language begin command construction and apply forcelocalfontswitch to polyglossia as well. 2015-05-03 16:08:14 +02:00
Juergen Spitzmueller
ee771408e4 Fix display of math delimiters in delimiter dialog (#5760)
Exclude win32 from the fix due to #9428.
2015-05-03 13:23:27 +02:00
Juergen Spitzmueller
88ecc18e30 Do not output \noindent if paragraph does not support indentation change
Part of: #7320.
2015-05-02 16:34:57 +02:00
Juergen Spitzmueller
f07830bb5c Remove unused header 2015-05-02 14:37:23 +02:00
Juergen Spitzmueller
b53773232a sign. 2015-05-02 11:38:46 +02:00
Juergen Spitzmueller
6be393a4f1 Use EmptyTable widget in TabularCreate dialog.
Fixes #3155.
2015-05-01 18:11:57 +02:00
Juergen Spitzmueller
17a4acf857 Fix usability of EmptyTable widget.
Fixes #3919 (math matrix dialog UX issues).
2015-05-01 18:10:36 +02:00
Juergen Spitzmueller
bc47054be8 Properly fix #6369
Avoid that \newcommand[x] definitions of math macros are pushed multiple
times to the preview loader.

Redefinitions (via \renewcommand[x]) are properly handled.
2015-04-30 16:48:55 +02:00
Enrico Forestieri
eed452077b Preserve numbering of previewed math formulas on zoom
The preview snippets are cached in a seemingly random order, such
that, when regenerating them on zoom, the math previews would be
numbered accordingly. Hence, we have to go through the insets to
get the correct order. This is a bit slower but unavoidable.
2015-04-28 22:06:58 +02:00
Enrico Forestieri
b82e0d6d7f Fix instant preview for documents not specifying a specific output format.
Fixes the regression introduced at 0bb378ba.
2015-04-27 12:30:03 +02:00
Enrico Forestieri
890b9a53cb Fix bug #7850 (Preview of inline math misaligned) 2015-04-26 19:08:16 +02:00
Juergen Spitzmueller
42ba33a53f Use namespace. 2015-04-26 16:49:16 +02:00
Scott Kostyshak
ae14d8fe34 Update previews when going to a bookmark (#6173)
Note that I move the definition of cur up because we need to check if
it changed before the return. I also removed the const because
notifyCursorLeavesOrEnters() requires that.

This commit probably fixes other issues for any inset that defines
notifyCursorLeaves().

This fixes only part of #6173.
2015-04-25 20:01:39 -04:00
Scott Kostyshak
72838f24b9 Whitespace 2015-04-25 20:01:39 -04:00
Richard Heck
c3c1ac0621 Don't write \PassThruChars if it is empty. 2015-04-24 12:49:26 -04:00
Kornel Benko
f2e759d499 Cmake build: Enable debug output for check_layouts. 2015-04-24 11:20:33 +02:00
Scott Kostyshak
02cb5fd374 Assert if unknown argument to internal paste 2015-04-22 19:38:21 -04:00
Enrico Forestieri
b8f04ae29a Fix bug #8258 (Zoom of editor doesn't zoom instant preview) 2015-04-21 23:59:09 +02:00
Juergen Spitzmueller
c886679160 Rewrite the linguistic Glosse insets.
This gets rid of the PassThru hack and makes the inset actually usable
for linguistists.

Fixes: #7773

File format change.
2015-04-21 20:33:35 +02:00
Juergen Spitzmueller
efb4a26512 Make ParBreakIsNewline work in inset layout without PassThru
Fixes: #9513
2015-04-21 19:43:41 +02:00
Scott Kostyshak
73460423ad Update previews after pasting (#6211)
The reason we want to do this is for if there is pasting across buffers.
For within buffer, the previews should already be updated. Calling the
buffer-wide updatePreviews() might seem like overkill, but actually it
should be quick because only the previews that need updating are updated
(and this check feels quick to me, although I did not profile).

If we were to loop through the pasted text and update each preview
individually, this might take more time. When updating previews
together, only one .tex file is compiled.
2015-04-21 02:51:54 -04:00
Scott Kostyshak
390ae05444 Update previews on preference change (#9507)
Normally the theBufferList().updatePreviews(); statement would go inside
of PrefDisplay::applyRC. However, that would not work well because
Buffer::updatePreviews() calls loader() which conditions on
(lyxrc.preview == LyXRC::PREVIEW_OFF) but the new RC has not been set at
this point.
2015-04-21 02:40:18 -04:00
Scott Kostyshak
cf4f79f884 Preview and math now update on screen-up (#6173)
When editing a preview inset, or math, when we leave the inset, we
should update the preview. This update now happens for screen-up and
screen-down (commonly bound to Page Up and Page Down).

Note that this is only relevant if preview is turned on in
preferences.

This commit probably fixes other issues for any inset that defines
notifyCursorLeaves().

This fixes only part of #6173.
2015-04-21 02:40:18 -04:00
Juergen Spitzmueller
7158f7b58d Add support for linguistic trees (via forest) 2015-04-20 18:14:42 +02:00
Juergen Spitzmueller
897b2e73a1 New (Inset)Layout tag PassThruChars 2015-04-20 18:13:49 +02:00
Juergen Spitzmueller
bf93b9756e Do not show obsoleted flex insets in the menu. 2015-04-20 18:10:25 +02:00
Juergen Spitzmueller
225a37be39 Support item argument in linguistic examples
File format change.
2015-04-20 12:15:20 +02:00
Scott Kostyshak
66f527e417 Update previews after doing a find/replace (#7242)
This commit addresses #7242 for normal Find/Replace. That issue was
fixed for Advanced Find at 29948eec.
2015-04-18 21:47:21 -04:00
Jean-Marc Lasgouttes
03b010b4ce Remove bad hack.
The macro N_() is a no-op which does exactly what is needed here: tell gettext that the string should be in the list of translations.
2015-04-17 15:58:14 +02:00
Scott Kostyshak
876f406815 Add \li Origin for the buffer-move-* LFUNs 2015-04-16 22:50:48 -04:00
Jean-Marc Lasgouttes
af4548cd6b Toggle properly the math-display icon 2015-04-16 18:51:29 +02:00
Jean-Marc
bdaa6fbb26 Do not remove separators at end of rows.
I am not sure why I addd this code at the time. I do not think there was a good reason.

Fixes bug #9447.
2015-04-16 11:39:33 +02:00
Jean-Marc Lasgouttes
d592ec06b9 Avoid requiring messages with empty language.
This is a follow-up to commit 8aa2d6b1.
2015-04-15 15:31:41 +02:00
Juergen Spitzmueller
6fe3dc01e0 Issue a warning if thesaurus dir is not set up (as suggested in #9496) 2015-04-12 15:55:01 +02:00
Georg Baum
4069e3daed Update tex2lyx test references
The lyx2lyx conversions for the new formats are empty, therefore we can simply
update the format number.
2015-04-12 10:07:42 +02:00
Juergen Spitzmueller
3bb588f4aa Remove problematic accelerator (#9495)
Seems there is no free accelerator left for the source view pane.
2015-04-10 10:13:12 +02:00
Kornel Benko
0bb378ba6a Adapt creation of preview images to the defaul document output.
Sometimes, even compilable documents could not display preview
snippets. Previously the preview was computed only with help
of latex or xelatex.
This also fixes #9371
2015-04-09 16:29:59 +02:00
Jean-Marc Lasgouttes
13c60bfa78 Fix potential link error in tests.
This is a followup of d4718b18, which itself fixes a problem introduced in 66fa801e.
2015-04-09 11:59:12 +02:00
Juergen Spitzmueller
319ee3296a File format change caused by 34eadf5d4. 2015-04-09 11:01:44 +02:00
Georg Baum
d4718b18b6 Fix tex2lyx linker error on windows
The FontMetrics dummy class was in the wrong namespace. Linking on linux
did work because the GNU linker is more clever than the MSVC linker for this
particular example and throws out more unused code, so that theFontMetrics was
not referenced at all.
2015-04-08 22:06:51 +02:00
Scott Kostyshak
6cf81782dd Implement and bind buffer-move-{next,previous}
Control + Shift + PgDn now moves a tab to the right.
Control + Shift + PgUp now moves a tab to the left.

These keybindings are consistent with Chromium, Firefox,
Nautilus, and gnome-terminal.

Note that I allow for wrapping. This is consistent with
allowing wrapping for buffer-{next,previous}, but there
might be reasons to disable it in the future.
2015-04-08 14:12:52 -04:00
Scott Kostyshak
a64a2d0ab7 Set enable for both cases
Thanks to Jürgen.
2015-04-08 12:59:06 -04:00
Scott Kostyshak
2b77b2e8ad Correct typo from last commit 2015-04-07 23:00:51 -04:00
Scott Kostyshak
dabb534a36 Simplify previous commit
The brackets are not necessary.
2015-04-07 22:59:34 -04:00
Scott Kostyshak
e26ac5c550 Add getStatus check that >1 tab for switching
buffer-next and buffer-previous are now only enabled
if there is more than one tab. Note that it does not
matter whether we are at the first or last tab because
we cycle.
2015-04-07 22:55:20 -04:00
Enrico Forestieri
52fee3556e Fix external middle-mouse pasting with Qt5/X11.
Closes #9216. Patch by Jürgen and me.
2015-04-07 12:59:41 +02:00
Scott Kostyshak
03b17b5272 Continue compilation despite errors (#8739)
Now that we have the "Show Output Anyway" button (09700d5b),
it makes sense to continue compilation even if there is an error.
2015-04-07 03:44:38 -04:00
Scott Kostyshak
744b2e304b Add on to fix for #2757
- Treat BibTeX errors as errors so the LaTeX Errors dialog is shown.
- Add RELEASE-NOTES (updated from cba432f1).
2015-04-07 02:45:09 -04:00
Juergen Spitzmueller
7970b84049 Do not close LyX in the commitData process (#9277)
Since the logout process still can be canceled here, we should only
check that all dirty buffers are saved and that the session state is
recorded.

Please test, particularly on Windows and OSX, that logging out with LyX
running (both with and without dirty buffers) proceeds sensibly and that
the LyX session is correctly restored when you re-login.
2015-04-06 13:50:32 +02:00
Juergen Spitzmueller
c46162db23 Prevent crash when attempting to restore a file multiple times.
We currently cannot restore multiple views of the same buffer properly.
On the mac, we even crash.
So do not try it, record each file only once in the last opened list.

Fixes: #9483.
2015-04-06 09:55:07 +02:00
Juergen Spitzmueller
29705851cb Re-introduce BibTeX error reporting via Error dialog (#2757)
Since PDF can now viewed anyway, the objections to the previous attempt might be addressed.
2015-04-06 09:43:06 +02:00
Uwe Stöhr
c6b17b685a support for Georgian
add support to set Georgian as document language, fileformat change
2015-04-06 06:00:11 +02:00
Juergen Spitzmueller
80f992fc29 Show Anyway button needs to be enabled/disabled in paramsToDialog.
Else, the state set on first launch persists, notwithstanding the change of function state.
2015-04-05 10:50:30 +02:00
Scott Kostyshak
90772a01e7 Simplify code 2015-04-04 14:56:29 -04:00
Scott Kostyshak
7032b03748 Detect when an external command crashes
This fixes a situation where LyX did not detect that something went
wrong (that an external comman crashed) and reported that export was
successful. To reproduce, use the following version of LuaTeX (the
bug in LuaTeX causing the crash has since been fixed):
LuaTeX, Version beta-0.79.1 (TeX Live 2014) (rev 4971)
Then open FeynmanDiagrams.lyx and export with PDF (LuaTeX).

In the documentation [1] for QProcess::exitCode() it states:
"This value is not valid unless exitStatus() returns NormalExit."

For more information, see:
https://www.mail-archive.com/lyx-devel@lists.lyx.org/msg185317.html

[1] http://doc.qt.io/qt-5/qprocess.html#exitCode
2015-04-04 13:45:19 -04:00
Scott Kostyshak
09700d5b71 Button for showing PDF if compilation error
Building on cd8be655, we still allow viewing a produced PDF even if
there were compilation errors. However, now the user must click the
"Show Output Anyway" button in the LaTeX Errors dialog. The reason
is that before, there was a chance that the user would not realize
there was an error (because the PDF would be shown over the error
dialog). The approach in this commit makes it more clear that there
is an error.

A new LFUN is introduced, LFUN_BUFFER_VIEW_CACHE. It is useful not
just for the implementation of the "Show Output Anyway" button, but
also to show the last compiled version of a document, which can save
time if a document takes a long time to compile (e.g. heavy use of
knitr).
2015-04-04 13:13:19 -04:00
Juergen Spitzmueller
8c1a484cd2 Use local babel language switch in fixed width cells in order to prevent unwanted whitespace
Fixes: #9455
2015-04-04 11:59:01 +02:00
Scott Kostyshak
032da815fa Fix selection at borders of insets (#9487)
When at the last position in an inset, selecting to the right
should select the entire inset. This only worked if there was
already a selection (i.e. the selection was started not at the
boundary).

The behavior of this bug was changed by commit 73a7bf9d.  Before
that commit, if at the last position of an inset you select to
the right, nothing is selected but the selection is set. If you
select once more to the right, because the selection is set the
needsUpdate condition is satisfied so the whole inset is selected.

Note that everything here applies also to "first position of an
inset" and selecting to the left. By "selecting", I am referring
to LFUN_{CHAR,WORD}_{FORWARD,BACKWARD}_SELECT.
2015-04-03 14:24:28 -04:00
Georg Baum
1b5875043d Fix math macro crash (bug 9418)
In the test case the crash occured in mathml export of the temporary buffer,
because the macro was updated, and because one of the used other macros was
not copied, the macro argument was detached. However, the underlying problem
of the crash was a broken ArgumentProxy::mathMacro_ reference which became
invalid each time the ownng MathMacro was copied. In the bug test case the
copying happened due to resizing a std::vector, but any other copy would have
created the same problem. The crash did not always happen, because sometimes
the old freed memory was not immediately reused, so the invalid reference did
still point to usable data.

The fix is easy: Convert ArgumentProxy::mathMacro_ to a pointer and update it
always after creating a copy of the owner. The pimpl of MathMacro from the
previous commit helps here to distinguish between the data that can be
automatically copied (in MathMacro::Private) and the cleanup that needs to be
done manually (in MathMacro). This way, the manual copy constructor and
assigment operator of MathMacro does not need to be touched if a new member is
added.
2015-04-02 21:35:05 +02:00
Georg Baum
948ed1ffd5 Pimpl MathMacro
This will make it easier to fix bug 9418.
2015-04-02 21:20:32 +02:00
Juergen Spitzmueller
5fec78f69f Properly determine active font encoding 2015-04-02 17:13:45 +02:00
Juergen Spitzmueller
b309fa5d2b Implement checkWidgets in the remaining InsetParamsWidget derived dialogs. 2015-04-02 17:03:08 +02:00
Juergen Spitzmueller
5aee9e6d63 No need for default argument 2015-04-02 16:32:04 +02:00
Jean-Marc Lasgouttes
11ca140667 Clean-up the undo API
* Remove the UndoKind parameter in the general interface
* move recordUndoInset to Cursor
* remove one variant of Undo::recordUndo.
* get rid of Text::recUndo.
2015-04-01 14:18:23 +02:00
Juergen Spitzmueller
82b392eb0d GuiInfo: implement checkWidgets. 2015-04-01 10:07:20 +02:00
Jean-Marc Lasgouttes
a9baa5380c Fix warning 2015-03-31 17:08:04 +02:00
Jean-Marc Lasgouttes
4dcc73ebf0 Get rid of autoBreakRow, which is obsoleted by allowMultiPar()
The only real user was Text::insertStringAsLine, but this got changed
in commit 2c7152ab.

While not other place did read the value, there is a side effect of
setAutobreakRow that merges exiting paragraphs. However, this is used
in two situations

* some constructors, where the inset is empty;

* InsetTabular::toggleFixedWidth, which actually contains itself some
  code to merge paragraphs.

Therefore the member and all associated code can be removed safely.
2015-03-31 17:02:00 +02:00
Enrico Forestieri
0bbfadb23f Typo 2015-03-31 16:03:16 +02:00
Jean-Marc Lasgouttes
67ff68bd02 Improve the check for multiple paragraphs in Text::insertStringAsLine.
Rely only on InsetText::allowMultipar() to get this information.

Implement this method for InsetTabular and InsetBox.

Also rely on this method for disabling LFUN_PARAGRAPH_BREAK.
2015-03-31 14:07:45 +02:00
Enrico Forestieri
f516629285 Add comment 2015-03-31 01:26:48 +02:00
Georg Baum
af6cb2d0e2 Initialize definition_ correctly 2015-03-30 22:04:52 +02:00
Georg Baum
cdd79e76a6 whitespace 2015-03-30 22:03:03 +02:00
Juergen Spitzmueller
99f7b916e6 Improve read-only mode of InsetParams derived dialogs
* Disable "New Inset" button
* Do not disable line edits, but use setReadOnly instead (this allows copying contents)

Fixes: #9408

Note that some dialogs still need some care.
2015-03-30 14:44:11 +02:00
Georg Baum
417139f4da Remove InsetMathSqrt hack from MathMacro
The expanded cells of a mathmacro were previously stored in an InsetMathSqrt.
This was only used as a container for the MathData object in the first cell
of the sqrt inset, which contained the actual expanded arguments.
Funny enough, the only place were the inset property of expanded_ was really
used cannot be seen in the diff. It was MathMacro::kerning(), and this usage
was wrong, since InsetMathSqrt::kerning() always returns 0. Threfore, using
the correct type (MathData) for expanded_ does not only make the code more
readable, gets rid of an unneeded dependency, but also fixes a bug: Now the
correct kerning is returned for expanded cells. Also, expanded_ and
definition_ use the same type now, which looks nicely symmetric.
2015-03-29 14:50:37 +02:00
Georg Baum
d48855cdfe Improve CAS output of math macros
Previously, things like [ name ] where exported for computer algebra systems.
Now, the expanded macros are exported, which may still be wrong, but now the
CAS has at least a chance to understand what was meant.
2015-03-29 13:53:01 +02:00
Georg Baum
34d0e997c4 support tests do not need QtGui anymore 2015-03-29 12:56:38 +02:00
Enrico Forestieri
cb899b3fa2 Provide icons for the outline-* lfuns.
- Accordingly rename "promote" and "demote" icons.
- Add "outline-down" and "outline-up" icons.
2015-03-28 23:22:21 +01:00
Kornel Benko
fd7e4f2dbb No need to compute size of an icon if not using GUI.
This also avoids crash while calling Qimage() without GUI.
2015-03-28 21:05:41 +01:00
Enrico Forestieri
0f0750a65a Allow using icon names in InsetInfo
Currently, only lfun names are accepeted but there are cases in which
the lfun name does not map directly to an icon. Fore example, in the
outliner, the icon named "promote" is used for the lfun outline-out.
As a result, a graphics inset is used in the documentation for describing
the corresponding icon. Now one can also use an icon name. The argument
of "info-isert icon" is firstly lookep up as an lfun. If no corresponding
icon is found, the argument is taken as the name of the icon. If no such
icon exists, the "unknown" icon is used.
2015-03-28 12:45:20 +01:00
Stephan Witt
7789f3eb37 #9477 add documentation for optional language argument of LFUN_SPELLING_{ADD,REMOVE,IGNORE} 2015-03-28 09:24:08 +01:00
Kornel Benko
27844f580e Expand dummy_functions.cpp with needed class for check_ExternalTransforms. 2015-03-27 10:53:12 +01:00
Stephan Witt
73242e0052 #9477 improved argument handling for LFUN_SPELLING_ADD,LFUN_SPELLING_IGNORE and LFUN_SPELLING_REMOVE 2015-03-27 08:07:05 +01:00
Jean-Marc Lasgouttes
e4fe294bdc Make builds reproducible
We do not really need to use __TIME__ and __DATE__, which prevent from making LyX builds reproducible.

Fixes bug #9415.
2015-03-26 18:14:45 +01:00
Jean-Marc Lasgouttes
66fa801e74 Improve support for on screen length calculation
The computation of length on screen depend in particular of the computation of the size of an em. Many places of the code used to rely on the width of the M character, which is not really correct:
http://en.wikipedia.org/wiki/Em_%28typography%29

In digital typography, the best value to use is the point size of the font.

* Implement FontMetrics::em(), which returns the value in pixels of the EM unit.
 Convert code to use it.

* Introduce Length::inPixel(MetricsBase const &), which takes the textwidth and em information from the MetricsBase object. Convert code to use it.

* Fix several places where Length::inPixel is used without a proper em value.

* add mathed_font_em() helper function. It should eventually be removed like some other functions in MathSupport.

* Add dummy implementation of FontMetrics to tex2lyx for linking purposes.
2015-03-26 17:10:15 +01:00
Jean-Marc Lasgouttes
67e6c45f80 Call DEPM properly when going somewhere with outliner.
LFUN_PARAGRAPH_GOTO used to do a plain setCursor, whereas the more elaborate mouseSetCursor is a much better version.

Fixes bug #9479.
2015-03-26 10:45:48 +01:00
Enrico Forestieri
6d3019c7de Fix compilation with cmake 2015-03-26 02:27:11 +01:00
Enrico Forestieri
a3d5f27038 Remove the iconScaleFactor() method from src/support.
I am moving the corresponding code directly to InsetInfo.cpp.
Moreover, the size of the image displayed by the info inset is
now dynamically set according to the text size.
2015-03-25 21:26:32 +01:00
Jean-Marc Lasgouttes
1780cb4896 Fix consecutive merging of tabular cells
This is a bug reported and fixed by Edwin Leuven.

Here is how Edwin described it in his inimitable minimalist style:
  first i merge the top-left two cells in a small, say 3x3, table

  if i then merge this multicolumn cell with the remaining cell in the first row
  my table ends up all bonkers
2015-03-24 10:50:51 +01:00
Richard Heck
eb79a98e01 Whitespace. 2015-03-23 21:58:45 -04:00
Georg Baum
49ac79100b Make InsetSpecialChar names more consistent
This is the rersult of a discussion on the list. Now all special characters
have meaningful names, and it is clear that the LyX file syntax is not LaTeX.
2015-03-23 21:28:04 +01:00
Georg Baum
9e8ebce2bd Fix compilation of tests
support/filetools.cpp requires the qt GUI libs since d00dcc2ca7.
2015-03-23 21:23:03 +01:00
Georg Baum
19297a891c Fix tex2lyx import of \LaTeXe
Previously, it did generate an invalid SpecialChar inset.
2015-03-23 20:52:51 +01:00
Jean-Marc Lasgouttes
c2f785bdcc Use isActive() instead of editable() in mathed.
Fixes crash introduced in [17e435c4/lyxgit].

editable() is more related to Texted. It is false for closed collapsable insets
Eventually the two methods should be merged.
2015-03-23 15:09:09 +01:00
Georg Baum
1fb31ab92d Use standard comparison against end
This makes it more easy to exchange the underlying iterator. Also, use our
own specialized erase() instead of repeating its implementation.
2015-03-22 17:31:55 +01:00
Juergen Spitzmueller
880715c5a5 Load amsthm after amsmath.
This follows a strong advice in the masthm manual and fixes #7233.
2015-03-22 11:14:08 +01:00
Georg Baum
88c274eee7 Let imagemagick detect file format (bug #2332)
Imagemagick detects the inut file format based on contents. Therefore it does
not make sense that we prefix the to be converted file name with the extension
(assuming that the file extension matches the imagemagick format name). This
breaks formats where the extension used by LyX does not match the imagemagick
format name.
2015-03-22 10:22:31 +01:00
Georg Baum
82263ccad9 Implement DocIterator::backwardInset()
I thought I would need it to fix bug #9418, but once backwardInset() worked
it turned out that it is not needed. However, since it took me some time to
figure out the correct implementation I do not want to throw the result away.
2015-03-20 18:50:58 +01:00
Georg Baum
c54b136880 Replace outdated LASSERT
The concept of rows and cols is no longer unique to mathed.
Each inset decides itself whether it is grid like or not, so we should not
interfere with this in the cursor slice.
2015-03-20 18:50:58 +01:00
Scott Kostyshak
7416064033 Assert if successful export but no output file
If LyX thinks the export was successful but no output file was
produced for preview, then something is wrong (most likely LyX
did not detect an error that occurred during export).

Also clean up some logic.
2015-03-20 02:21:35 -04:00
Scott Kostyshak
cd8be655f1 Export/view a PDF even if error
A PDF is often still produced after a LaTeX error.

If there was an error when exporting a PDF, we now give an error
and the PDF (if it exists), where before we gave the error and
not the PDF. The GUI and command line behaviors are consistent:
in the GUI an error is given and the PDF is viewed; on the
command line, a non-zero exit code is given and a PDF is created.

This also solves what was in my mind an inconsistency: if the user
"updated" a document and there was an error, the resulting
PDF would be shown; but if the user viewed a document and there
was an error, the document would not be shown.

Note that this applies to all output formats, not just PDF.

For discussion, see:
https://www.mail-archive.com/lyx-devel@lists.lyx.org/msg186454.html
2015-03-20 02:21:31 -04:00
Scott Kostyshak
0a6120cb7f Improve log scanner to correctly report error
When scanning the LaTeX log, previously we only looked ahead 10 lines
after a "!" line and if we did not find a line number we did not count
an error. This lead to the problem that templates/ACM-sigplan.lyx was
showing a successful export and the PDF was shown (it is still
created despite the error). Now that the exit code of the latex
command is checked (as of the previous commit), an error is correctly
given, but by parsing the log better with this commit, a more
informative error is given.

Increasing the look-ahead to 15 lines leads to correct parsing of
the ACM-sigplan log. The excerpt in the log file where there are more
than 10 lines in-between the "!" line and the line number is below:

! Undefined control sequence.
\@toappear ...ent http://dx.doi.org/10.1145/\@doi

<argument> ...n is removed.]\par \else \@toappear
                                                  \fi \if \@reprint
\noinden...

\@begin@tempboxa ...mpboxa #1{\color@begingroup #2
                                                  \color@endgroup }\def
\wid...

\@iiiparbox ...tempdima \@parboxrestore #5\@@par }
                                                  \ifx \relax #2\else
\setle...

\@copyrightspace ...planconf@finalpage}.\par \fi }
                                                  }\end@float
\maketitle ... \@copyrightwanted \@copyrightspace
                                                  \fi
l.34 \maketitle

Another example is posted here:
http://tex.stackexchange.com/questions/231655/lyx-cannot-output-to-pdflatex-for-a-specific-file
2015-03-20 02:19:44 -04:00
Scott Kostyshak
1dbf0e5aab Check exit code of LaTeX process in LaTeX::run
Systemcall::startscript returns the exit code of the LaTeX command
that is run, but the return value was not being checked by
LaTeX::run.  Instead, we relied on parsing log files. However, this
parsing is not perfect.

The return value is now checked and if the exit code of the command
is non-zero, an enum value is added to the return and the user is
notified of the error.

At a higher level, if the LaTeX command returns a non-zero exit code,
in the GUI a message such as
"Error while exporting format: PDF (LuaTeX)" will be given instead of
"Successful preview of format: PDF (LuaTeX)".

When run on the commandline, lyx -e lualatex example.lyx
will give "Error: LaTeX failed" and a non-zero exit code
where before it gave a zero exit code.

A real example of the bug this commit fixes is LyX's (as of this commit)
ACM-sigplan.lyx template.
Before this commit:
  $ lyx -e pdf2 ACM-sigplan.lyx
  [...snip...]
  support/Systemcall.cpp (288): Systemcall: 'pdflatex  "ACM-sigplan.tex"'
  finished with exit code 1
  $ echo $?
  0
Starting with this commit:
  $ mylyx master -e pdf2 ACM-sigplan.lyx
  support/Systemcall.cpp (288): Systemcall: 'pdflatex  "ACM-sigplan.tex"'
  finished with exit code 1
  Error: LaTeX failed
  ----------------------------------------
  LaTeX did not run successfully. The command that was run exited with
  error.
  $ echo $?
  1
2015-03-20 02:19:44 -04:00
Scott Kostyshak
f74b2b79c7 Allow cloned buffers to give alerts in runLaTeX()
This was disabled in 2009 in bea0925f but it is now safe.

From Richard:
"I am pretty sure that all the work that Peter Kümmel did with the
InGuiThread classes dealt with this issue."
2015-03-20 02:19:44 -04:00
Scott Kostyshak
4f0593f91b Remove an outdated comment
LaTeX::deleteFilesOnError is no longer a dummy function.

This comment was interoduced with the first version of this
function, at e6d063c4.
2015-03-20 02:19:44 -04:00
Scott Kostyshak
2bfbf75eed Remove output file in temporary folder on error
This commit solves two issues:

(1) A PDF from a previous run could have been the result of a command
that exited with error (e.g. sometimes pdflatex still produces a PDF if
it exits with error). If the "View" button were clicked a second time
without changing the .lyx file, then the checksum of the .tex file would
not have changed so LyX would show the PDF (which was created from the
first run that exited with error), and this time LyX would not report
the error (because the parsing of the logs only happens when the .tex
file is compiled).

(2) A myfile.tex that results in no output does not yield a myfile.pdf.
Thus, Any myfile.pdf in the temporary directory will not be overwritten.
Before this commit, the following scenario was possible: LyX runs
pdflatex which processes myfile.tex and no error is given so LyX opens
myfile.pdf. However, it could have been the scenario that pdflatex did
not exit with error and did not create myfile.pdf, in which case
whichever myfile.pdf is being shown is not correct. To see this bug in
action, start a new document, type "abc", view the PDF, delete "abc",
view the PDF (this correctly gives an error that empty output was
created), view the PDF again (this does not give an error because the
checksum has not changed). The PDF shown will contain "abc".

Note that the above also applies to DVI files and that the fix is
general.
2015-03-20 02:19:26 -04:00
Scott Kostyshak
6343d9941a Clarify message about an empty file
When empty output is generated, no PDF is produced. The previous
message made it seem like an empty PDF was produced.
2015-03-20 01:34:11 -04:00
Georg Baum
3b6232679d Improve source code documentation
Adjust comments to current code and extend them a bit, also revert a part
of af5acb6d which was certainly not wanted.
2015-03-18 21:33:10 +01:00
Georg Baum
423a55acc6 whitespace 2015-03-18 21:33:10 +01:00
Georg Baum
3d492529bf Fix math macro plain text output
Previously it was not thread safe, and the translation could be wrong.
2015-03-18 21:33:09 +01:00
Jean-Marc Lasgouttes
6010f38e01 Use integer arithmetic for drawing logos; fix LaTeX output
Using fraction of points is a reasonable way to avoid warnings with fussy compilers.

Moreover, this fixes the output of PHRASE_LATEX2E to use the proper form \LaTeXe.

The file format still uses the questionnable form \\LaTeX2e.
2015-03-18 11:32:49 +01:00
Jean-Marc Lasgouttes
ba0b847040 Toggle properly toolbar icons that set layout of a paragraph.
Fixes bug #9463.
2015-03-17 16:40:55 +01:00
Jean-Marc Lasgouttes
8aa2d6b184 Fix setting Interlingua as GUI language
The problem came from the fact that Qt associates Interlingua to locale C.
Now, we do not rely anymore on the Qt locale to set the language. I suspect that the problem will still exist if the system locale is ia_IA.

Fixes bug #9267.
2015-03-17 12:37:24 +01:00
Juergen Spitzmueller
7aad787047 fixltx2e must be loaded as early as possible
Fixes: #9452, #9361

This reverts the 'fix' to #7233, which must be solved differently.
2015-03-17 10:24:33 +01:00
Juergen Spitzmueller
af4090bb0a Make the missing class warning opt-out 2015-03-16 20:34:32 +01:00
Juergen Spitzmueller
f305f0b4d8 Properly handle the bicaption package (bug #9449) 2015-03-16 20:31:38 +01:00
Jean-Marc Lasgouttes
ed3d9544a3 Improve undo of consecutive insertions/deletions
The old scheme was:
 * multiple insertions are undone by groups of 20
 * multiple deletions are undone in one big block

The new scheme is to stop merging undo elements after 2 seconds of elapsed time.

Moreover, the merging of undo elements stops when the cursor has moved. Potentially, this could allow to remove many of the finishUndo() calls.

Fixes bug #9204.
2015-03-16 18:31:22 +01:00
Juergen Spitzmueller
d2ab8e1b65 Add missing breaks (and time for a break :-() 2015-03-16 14:49:58 +01:00
Juergen Spitzmueller
fd5d47d182 More switches and whitespace fixes 2015-03-16 14:47:38 +01:00
Juergen Spitzmueller
066d6a9cfb Grr... 2015-03-16 14:30:02 +01:00
Juergen Spitzmueller
bc85f0fdf7 Properly escape backslash in string 2015-03-16 14:28:16 +01:00
Juergen Spitzmueller
245c2b3c45 InsetPhantom::latex(): use a switch 2015-03-16 14:22:03 +01:00
Juergen Spitzmueller
e30db1e444 Whitespace
Time to properly set up QtCreator...
2015-03-16 14:15:05 +01:00
Juergen Spitzmueller
d044d6afa7 Phantom is fragile (#9456) 2015-03-16 14:11:45 +01:00
Enrico Forestieri
1af2242c7e Refine fix for #9453
It is better to introduce a dummy blank dir in TEXINPUTS rather than
appending a blank at the end. Even if I have checked that this is not
a problem with MikTeX, some other engine (maybe texlive, but I cannot
check) could not ignore this space and take it as the name of a dir.
In this case, TEXINPUTS would not end with an empty element and the
standard search path would not be inserted there.
2015-03-16 10:55:54 +01:00
Enrico Forestieri
0a5e1f20fc Fix bug #9453
This was due to a problem with the QProcess parser.
See #9453 for details.
2015-03-16 00:34:35 +01:00
Kornel Benko
fcf8d1a746 make build: Make it compilable for Qt4 too. 2015-03-15 20:12:55 +01:00
Jean-Marc
1f36fa6d56 Document the drawing of logos
Also fix a couple of spacings.
2015-03-15 18:21:01 +01:00
Georg Baum
73c3f3e2fd Improve code readability
Using a small helper struct instead of a std::pair makes things like
it->second.first a little less confusing: it->second.scope.
2015-03-15 13:57:45 +01:00
Georg Baum
5bb7857bb2 Add missing check
The other insert method has this as well, and it is indeed a problem is pos
points outside the vector.
2015-03-15 13:56:48 +01:00
Juergen Spitzmueller
187c5f0ef5 Use QLocale::toDouble instead of QString::toDouble in the length validator
Fixes: #9214
2015-03-15 11:48:36 +01:00
Juergen Spitzmueller
d9626ec6af Set the logic straight 2015-03-15 10:38:37 +01:00
Juergen Spitzmueller
d15388ba98 Allow to disable inputenc loading via 'Provides inputenc 1' 2015-03-15 10:29:07 +01:00
Jean-Marc Lasgouttes
322da78299 Improve display of the logos.
This look now more like the real logos. Moreover, we use not the normal font color because Color_special is a bit too flashy.
2015-03-14 17:01:49 +01:00
Georg Baum
5ee6172b7b Fix stmaryrd operators with limits (bug 9458)
LyX did not display the limits of the big math operators defined by
stmaryrd.sty correctly. The reason for this was a missing check in
InsetMathSymbol::metrics(), where it is hardcoded which symbols use display
style limits and which symbols use inline limits. In an ideal world this
information would be contained explicitly in lib/symbols.

This should go to branch as well.
2015-03-13 18:38:38 +01:00
Enrico Forestieri
ee6583ff94 Make sure that a generated temporary filename doesn't end with a dot.
This may happen if the extension is empty, and a filename ending with
a dot may give troubles on Windows.
2015-03-13 18:12:08 +01:00
Enrico Forestieri
c057d4e7ee Make sure an unzipped file has correct extension.
If a mask is missing, the TempFile class appends it to the filename.
This may be a problem with applications relying on the extension,
so explicitly add a mask.
2015-03-13 17:28:18 +01:00
Kornel Benko
d9c867da19 Cmake build: QtGui now needed also for filetools.cpp 2015-03-13 14:22:12 +01:00
Enrico Forestieri
7be2a5d815 Prefer svg icons.
If a compressed svg icon is present, load it instead of a png one.
Also introduce two more sizes (huge and giant icons) that should be
useful when using hires displays, as svg icons automatically scale
to the desired size without loss of quality.
2015-03-13 00:47:21 +01:00
Enrico Forestieri
d00dcc2ca7 Use the nominal theme's icon size for displaying the icon in an info inset. 2015-03-13 00:38:05 +01:00
Enrico Forestieri
bd9f5408cf Properly name an uncompressed sgvz file.
Some tools may rely on the extension and do not actually check whether
a svg file is compressed or not.
2015-03-13 00:34:53 +01:00
Enrico Forestieri
cbad159ac2 Make sure a temporary file is always created in the global temporary dir. 2015-03-13 00:31:08 +01:00
Georg Baum
d752334ec4 Fix tex2lyx script output
tex2lyx did not use the InsetLayout for the script insets, so it did not know
that it had to use Plain Layout. However, there is still a possible pitfall:
InsetScript uses a hard coded plain layout for the InsetText constructor, so
if anybody would remove ForcePlain 1 and MultiPar false from the InsetLayout
then LyX would still write script insets with plain layout, but tex2lyx would
output standard layout again.
2015-03-11 22:20:44 +01:00
Georg Baum
361967e613 whitespace 2015-03-11 22:03:29 +01:00
Georg Baum
d8ed62f496 Update tex2lyx test references
tex2lyx outputs the correct layout ("Plain Layout") for captions since
9d824a04d1. Previously, it did output  "Standard", which was wrong.
2015-03-11 21:02:59 +01:00
Jean-Marc Lasgouttes
58b3971eeb Avoid crash with after a params undo.
When doing a non-atomic undo, one should not try to merge with a previous params undo.

This fixes bug #7740.
2015-03-11 16:55:51 +01:00
Georg Baum
24d011117f Remove unsupported macros from autocompletion
We have some math macros that exist only because LyX can display them easily,
but which require user preamble code. These commands should not appear in
autocompletion, they are only there to make the formulas of users who actually
need thgese symbols and know what to put into the preamble more beautiful.
2015-03-10 20:53:56 +01:00
Jean-Marc Lasgouttes
e86cc0135a Fix generation of lyx_commit_hash.h
Now version.o is not recompiled on already built tree.
2015-03-10 19:13:06 +01:00
Juergen Spitzmueller
9d824a04d1 Properly define MultiPar status of caption in the layout definition.
Also remove hardcoded paragraph break disabling.

Candidate for branch.
2015-03-10 18:31:55 +01:00
Jean-Marc Lasgouttes
c85ad29f11 Take in account the parent's getStatus in macro templates
This avoids invoking the insert space dialog instead of the math version. Thereafter, spaces are correctly inserted inside macro templates.

This is the last part of the fix to #9432.
2015-03-10 16:17:29 +01:00
Jean-Marc Lasgouttes
97c6e6d1ba Do not sanitize the anchor of cursor when selection is not set
Additionally, move the code to write to a stream from Cursor to CursorData (so that debugging undo is easier). We loose x_target, but I am not sure it is important.

This is the second part of bug #9432.
2015-03-10 16:17:29 +01:00
Jean-Marc Lasgouttes
17e435c47e Check that DocIterator::sanitize only adds editable insets
This fixes the crash on ticket #9432, but the bug there has other causes.
2015-03-10 16:17:29 +01:00
Jean-Marc Lasgouttes
f07ffaee84 Some code factorization for the Change template
The original motivation is to initialize the change_ member but do it only once.

This fixes coverity issue 23432.
2015-03-05 16:52:49 +01:00
Jean-Marc Lasgouttes
a0fd54b2e7 Remove variable properly now
This is a follow-up to db1979f398.
2015-03-05 12:48:01 +01:00
Jean-Marc Lasgouttes
24737eeceb Reset stream properties after changing them
Fixes coverity issue 23468.
2015-03-05 12:46:40 +01:00
Jean-Marc Lasgouttes
db1979f398 Remove unused member.
Fixes coverity issue 23413.
2015-03-05 12:30:12 +01:00
Jean-Marc Lasgouttes
0e2ef88b43 Fix uninitialized member in Lexer constructor
Fixes coverity issue 23501.
2015-03-05 12:24:47 +01:00
Jean-Marc Lasgouttes
c925748126 Fix uninitialized members in Language constructor
Fixes coverity issue 23412.
2015-03-05 12:17:52 +01:00
Jean-Marc
4e2f16e84e Fix uninitialized member in LaTexFont constructor
Fixes coverity issue 23382
2015-03-04 23:21:34 +01:00
Jean-Marc
1e94fc4fea Fix uninitialized member in Floating constructor
Fixes coverity issue 23402.
2015-03-04 23:13:06 +01:00
Jean-Marc
3705fd4eba Fix uninitialized members in Cursor and CursorData constructors
Fix coverity issues 23401, 23407, 23416 and 23429.
2015-03-04 23:00:07 +01:00
Jean-Marc
0fbc402141 Fix unitialized members in CacheItem
Fixes coverity issue 23380.
2015-03-04 22:50:37 +01:00
Jean-Marc
8d882e662b Add test for null buffer
This is actually not needed in practice.

Fixes coverity issue 23306.
2015-03-04 22:46:48 +01:00
Jean-Marc
a5a01b6af3 Fix uninitialized members in Compare::Impl
Fixes coverity issue 23418.
2015-03-04 22:35:40 +01:00
Jean-Marc
08c9f208fb Pass parameters by reference (performance)
Fixes coverity issues 23339 and 23347.

Some additional spacing changes sneaked in.
2015-03-04 22:26:28 +01:00
Jean-Marc
fbe333245e Fix unintialized member of BufferView::Private
Fixes coverity issue 23404.
2015-03-04 22:17:51 +01:00
Jean-Marc
fac7cb922a Fix missing break in switch
Fixes coverity issue 23350.
2015-03-04 22:13:20 +01:00
Jean-Marc Lasgouttes
9448e89879 Remove unused variable BufferParams::quotes_times
This was pointed out inadvertently by coverity issue 23484: the
variable was not properly initialized.
2015-03-04 18:21:58 +01:00
Jean-Marc Lasgouttes
0552563c99 Initialize Buffer::Impl members correctly
In practice the variables were initialized later as needed.

Fixes coverity issue 23497.
2015-03-04 17:57:29 +01:00
Jean-Marc Lasgouttes
1d2b7fb1ec Initialize object properly
Fixes coverity issue 23363
2015-03-04 17:48:44 +01:00
Jean-Marc Lasgouttes
83073aec3a Record undo properly when changing multiple paragraphs parameters
Fixes bug 9437.
2015-03-01 16:25:19 +01:00
Jean-Marc Lasgouttes
536cd8ecd8 Fix cursor position before a virtual element
When there is a virtual element like an end-of-paragraph marker, the cursor should be on the left (in RTL text).

This problem was created by 46ee6799.
2015-03-01 15:59:00 +01:00
Georg Baum
3e9e6e344a Replace automatic logofication with insets
Previously, LyX did replace some words with typeset logos, and there was no
way to prvent this except putting them, in ERT (bug #4752). Now we have
special insets for these words, and standard text is left alone.
2015-03-01 11:16:57 +01:00
Jean-Marc Lasgouttes
776a4f53c2 Revert some other dubious "improvements" in b627b870 2015-02-28 23:41:20 +01:00
Georg Baum
e76fc73040 Fix \nobreakdash- roundtrip in moving args
Previously, tex2lyx did not remove the \protect which is output by LyX in
front of \nobreakdash- if needed. Now tex2lyx removes it unconditionally (like
it does elsewhere), because LyX will add it if needed.
2015-02-27 22:06:11 +01:00
Georg Baum
d49051d99f Fix hyphen conversion in passThru insets
The old hyphen replacement code did not convert hyphens if the condition
style.pass_thru || runparams.pass_thru
was met. style.pass_thru got set from inset owner (isPassThru()). Therefore
we have to consider this for the new replacement code as well.
2015-02-26 22:55:20 +01:00
Richard Heck
db954b5dc0 Add comment, so that does not happen again. 2015-02-24 20:07:32 -05:00
Richard Heck
94a5481a17 Partially revert b627b870, which broke cursor movement. 2015-02-24 20:04:59 -05:00
Georg Baum
8aa37c43a1 Fix plaintext output of dashes (bug #3647)
Previously, consecutive dashes in .lyx files were combined to endash and emdash
in some cases, and in other cases they were output as is. This made the code
complicated, and resulted in inconsitencies ((bug #3647).
Now, a dash in a .lyx file is always a dash in the output, for all flavours.
The special handling is moved to the input side, so that you still get an
endash if you type two hyphens. If needed, this can be changed or made
customizable without the need to update the file format again. Many thanks
for the fruitful mailing list dicsussion, which contributed significantly to
the final version.
2015-02-24 22:06:12 +01:00
Richard Heck
fc9e6326b9 Micro-optimization. 2015-02-24 13:43:33 -05:00
Jean-Marc Lasgouttes
b627b8701b Some performance stuff reported by cppcheck 2015-02-24 18:38:20 +01:00
Scott Kostyshak
58f428d57c Whitespace 2015-02-21 14:09:02 -05:00
Jean-Marc Lasgouttes
143c136a7f Do not read array before checking the bounds
Fixes coverity issue 23377
2015-02-20 16:51:20 +01:00
Jean-Marc Lasgouttes
2694fde47d Initialize variable properly.
This fixes coverity issue 23503.
2015-02-20 16:47:27 +01:00
Jean-Marc Lasgouttes
fd7aa2d62d Do not mix several names for the same variable
This confuses coverity, but is probably harmless.

Fxies coverity issue 23374
2015-02-20 16:37:06 +01:00
Jean-Marc Lasgouttes
d9c9c6b36d Remove C-isms in isValidLength
This fixes coverity issue 23349, with a potential out-of-bounds write to the pattern array.
2015-02-20 16:16:31 +01:00
Jean-Marc Lasgouttes
053d02d176 Don't try to show 1000 as a roman number
Fixes coverity issue 23360.
2015-02-20 15:59:19 +01:00
Jean-Marc Lasgouttes
edddb47bae whitespace 2015-02-20 15:57:45 +01:00
Jean-Marc Lasgouttes
01691cde49 Fix uninitialized variable
Fixes coverity issue 23446.
2015-02-20 15:53:19 +01:00
Jean-Marc Lasgouttes
4a439d6ac0 Do not create a new socket if the max. number of clients is attained
Fixes coverity issue 23431.
2015-02-20 15:46:34 +01:00
Jean-Marc Lasgouttes
3db4b23b3f Fix memory leak in TImer class.
This is not really important since the class is currently not used.

This is coverity issue 23291.
2015-02-20 15:39:45 +01:00
Jean-Marc Lasgouttes
eb4f963eef Main argument of a subfloat is not a moving argument
Fixes bug: #9421
2015-02-20 11:51:40 +01:00
Georg Baum
1fd4aaefd6 Fix regression of eb121f999
Again thanks to Scott for finding this. The removal of the check for full
unicode in eb121f999 was not wanted. Now listings can be exported to
lualatex and xetex again.
2015-02-17 21:19:05 +01:00
Georg Baum
bc8638bd25 Fix wrong LATTEST
Thanks to Scott for testing. If a macro is unknown (displayed in red), then
macro_ is 0. The LATTEST is now adjusted and works like in MathMacro::write()
where I stole it from.
2015-02-16 22:33:48 +01:00
Georg Baum
e4ec11e8a1 Output -- and --- in XHTML like in LaTeX
For exports based on LaTeX, consecutive hyphens are only converted to endash
and emdash if the current font family is not typewriter, and if none of the
parent insets is an IPA inset. Now this is done for XHTML export as well.
2015-02-15 20:17:21 +01:00
Uwe Stöhr
4a8881c60a text3.cpp: adapt a possible fix to current code 2015-02-15 01:04:41 +01:00
Georg Baum
7adc6125f7 Fix missing symbols in math completer
The math icons for the symbol image in the math completer were hardcoded to the
command names. This is wrong for some icons for various reasons, e.g. the case
insensitivity of windows file systems. Therefore we have to use the replacement
list which is also used for the toolbar icons. Bug #3538 is not closed because
of this problem, but IMHO it has nothing to do with this bug, it is a more
general one.
2015-02-14 20:32:25 +01:00
Georg Baum
f9f05c364b Unify layout categories 2015-02-14 11:35:40 +01:00
Georg Baum
864f44ddc2 Fix unused parameter warning 2015-02-14 11:32:39 +01:00
Scott Kostyshak
36c3495a3a Correct the spelling of "occured" to "occurred" 2015-02-09 18:44:02 -05:00
Richard Heck
5a78a112b6 Fix bug #9383. Writing directly to the output stream bypassed the
machinery that clears the tag stack.
2015-02-09 17:26:47 -05:00
Jean-Marc Lasgouttes
51cc1a1cbe Do not modify the changed() status of rows when no drawing has taken place
There are several places in the code where a row is painted with drawing disabled in the painter. The goal is only to recompute inset positions.

Such a case happens in BufferView::checkCursorScrollOffset, as part of the horizontal scrolling patch. Note that this particular piece of code should eventually be removed, since it is a performance problem.

It makes sense to consider that only a real painting of a row should change its status. However, I would not be surprised if this change would break other things.

Fixes: #9388
2015-02-09 15:16:41 +01:00
Scott Kostyshak
d81fe084a6 Revert "Do not modify the changed() status of rows when no drawing has taken place"
This reverts commit c6f8f51525.

I accidentally committed this patch, which I am testing as
a fix to 9388.
2015-02-08 16:39:06 -05:00
Jean-Marc Lasgouttes
c6f8f51525 Do not modify the changed() status of rows when no drawing has taken place
There are several places in the code where a row is painted with drawing disabled in the painter. The goal is only to recompute inset positions.

Such a case happens in BufferView::checkCursorScrollOffset, as part of the horizontal scrolling patch.

It makes sens to consider that only a real painting of a row should change its status. However, I would not be surprised if this change would break other things.

Fixes: #9388
2015-02-08 16:18:56 -05:00
Juergen Spitzmueller
d48e5330be Add pref option to disable middle-mouse-button paste
Fixes: #9399
2015-02-08 17:41:28 +01:00
Georg Baum
7178f98b0f Fix tex2lyx parsing of consecutive hyphens
tex2lyx was already behaving as if bug #3647 was fixed, but currently -- and
--- have the same special meaning in LyX as in LaTeX.
2015-02-01 14:03:58 +01:00
Georg Baum
3120ff8e9f Fix tex2lyx tests for 23e8db3e5
The textcyr test did not work anymore, since the output of
"CYRILLIC SMALL LETTER VE" changed from \textcyr{\char226} to \textcyr{\cyrv}.
The the old version is now converted to ERT. In theory it could also be
converted to "CYRILLIC SMALL LETTER VE", but this would mean to maintain an
extra list, which is not worth the effort.
2015-02-01 13:12:45 +01:00
Georg Baum
e6354e1a17 Oops 2015-02-01 12:49:41 +01:00
Georg Baum
8c3829e6f1 Improve InsetSpace docbook export
The removed link does not exist anymore. The character entities were taken
from http://www.sagehill.net/docbookxsl/SpecialChars.html.
2015-02-01 12:39:53 +01:00
Enrico Forestieri
e3960ffd0b Fix bug #9392: Matrix widget keyboard navigation broken 2015-01-27 22:59:33 +01:00
Juergen Spitzmueller
5563dc924a Fix output encoding information for non-TeX fonts XeTeX/LuaTeX on preview pane
Fixes: #8919
2015-01-24 15:53:28 +01:00
Juergen Spitzmueller
16c33b5f6e Move font encoding information to languages. 2015-01-24 14:02:16 +01:00
Jean-Marc Lasgouttes
7021f4c342 Implement new recordUndoBufferParams method.
Rename recordUndoFullDocument to recordUndoFullBuffer.

Separate the notion of recording changes to paragraphs and recording changes in buffer parameters.

Audit every user of recordUndoFullDocument and replace it with either recordUndoBufferParams or recordUndoFullBuffer. Add comments to identify remaining work.
2015-01-22 15:15:21 +01:00
Uwe Stöhr
95bf60b52b ParagraphUi.ui: update file to QT's xml format 2015-01-22 01:07:40 +01:00
Enrico Forestieri
f496ec373b Solve the "soft-hyphen" (0x00ad) symbol problem.
After the str-metrics merge, the kludge for displaying symbols whose
code point corresponds to a soft-hyphen was not working anymore.
The solution is replicating the offending glyphs with index 0x00ad
at a different index. They were replicated at 0x00ac, whose glyph
was missing in all affected fonts.

However, this would not work by alone because, if a system font with
same family name exists, it would be picked up instead of the right one
(at least on non-Windows platforms). For this reason, the style of the
fonts has been changed from "Regular" to "Lyx", so that we can discriminate
the right font. However, this requires using at least Qt 4.8. If an
older Qt is used *and* a system font with same family name is already
available, the affected glyphs will all turn out on screen as the
"logical not" symbol.

I have also set the executable flag on the font files, because on Windows
they are loaded only in this case.

This solves #9229.
2015-01-21 14:12:42 +01:00
Georg Baum
c5782ff4bb Fix pasting insets into math (bug #9302)
The problem was that the conversion to plain text (which is used as an
intermediate step) requires for some insets a valid buffer pointer, but
insets in the cut stack do not have one. Now we use the same temp buffer
business as for copying to the external clipboard.
2015-01-19 21:37:01 +01:00
Georg Baum
19f3f630bc Remove unused declaration 2015-01-14 21:44:28 +01:00
Jean-Marc Lasgouttes
3830ce46db Squash warnings reported by gcc 4.9
Most of these are just about conversion from double to int.

Of note also the replacement of an horrible reinterpret_cast by a proper solution.
2015-01-14 11:52:14 +01:00
Vincent van Ravesteijn
51b28ba1d8 ConsoleApplication: Fix typos 2015-01-13 21:59:39 +01:00
Vincent van Ravesteijn
1950152b39 cmake: Put check_ExternalTransforms in tests folder 2015-01-13 21:21:12 +01:00
Enrico Forestieri
35357c1225 Fix preferences panel.
This commit fixes a thinko in [8bab2338/lyxgit] causing the warning:
QObject::connect: No such slot lyx::frontend::GuiPreferences::slotApplyRC() in ../../../../src/frontends/qt4/GuiPrefs.cpp:3308
QObject::connect:  (sender name:   'applyPB')
QObject::connect:  (receiver name: 'PrefsUi')
2015-01-11 20:11:40 +01:00
Georg Baum
eb121f9993 Replace hardcoded hack with InsetLayout tag 2015-01-11 20:01:19 +01:00
Jean-Marc Lasgouttes
6e519e7727 Fix two warnings about conversion from double to int. 2015-01-11 19:55:05 +01:00
Enrico Forestieri
d4428ceb81 Adjust preprocessor guards for Qt5/X11.
This fixes the -geometry command line option and restores the
"Use icons from system's theme" checkbox in the preferences.

There is still code addressing Qt4 and xlib that has to be
audited. This code cannot be compiled with Qt5 because the
default backend is now xcb and not xlib. I have marked such
code with a "FIXME QT5" comment.
2015-01-11 19:44:35 +01:00
Georg Baum
5d6351d476 Fix wrong listings preamble encoding (bug #9382)
The listings package employs some dirty tricks internally, therefore it does
not work with utf8 encoding, but requires fixed width encodings. This version
of the fix uses ugly hardcoding instead of a layout file format change, so it
could be backported if needed.
2015-01-11 19:17:51 +01:00
Georg Baum
7b48e2aac0 Start qt event loop for commandline usage
This is needed since src/support calls lots of qt code, and some parts of it
(e.g. QFileInfo) require a running event loop. This fixes bug #4917 which is
a symptom of the problem.
The fix is to create a QCoreApplication for tex2lyx, lyxclient and LyX running
without GUI. In the future this could be extended, i.e. to split up the
frontend Application class in a GUI and a console class, and having the
console class use LyXConsoleApp in the same way as Application now uses
GuiApplication. If that is done, one could also think of moving
support/ConsoleApplication to frontend/console/ConsoleApplication.
2015-01-11 14:06:17 +01:00
Georg Baum
a02af82b82 Fix indentation 2015-01-11 11:29:00 +01:00
Jean-Marc Lasgouttes
1e18ab586e Fixes to InsetCaption \protect-ion
* \caption does not need to be protected in general
* the contents of \caption arguments need to be protected, though.

All styles related to caoption inset have been audited and updated.

The special casing of captions in longtables has been removed, since there is no special case.

Fixes bug: #9177
2015-01-10 19:48:56 +01:00
Jean-Marc Lasgouttes
9c55af4a22 Merge remote-tracking branch 'features/scroll-reloaded'
This implement horizontal scrolling of rows to allow editing insets
(math, tabular...) that are larger then the screen. The scrolling happens
as the cursor moves, in order to make sure that the cursor is always visible.
This effectively closes an 11 years old bug.

This feature is the result of the work of Hashini Senaratne as part of
Google Summer of Code 2013. The code has been cleaned-up for inclusion
and remaining bugs have been fixed.

Fixes bug: #1083.
2015-01-10 18:39:09 +01:00
Georg Baum
ca6fba31fb Remove direct calls of exit()
This is a preparation for using QCoreApplication.
2015-01-09 21:43:45 +01:00
Georg Baum
8f2828197c Move otexstream out of support
This resolves a dependency of src/support/docstream.cpp on src/TexRow.cpp,
which is the wrong way round. This fixes the linking
src/tests/check_ExternalTransforms with MSVC where the linker is not clever
enough to detect that the whole otexstream class is unused.
2015-01-09 21:07:59 +01:00
Georg Baum
9c1504a416 Update references after 706960eba
The generated output is correct, since the lyx2lyx forward conversion is empty.
2015-01-09 21:05:42 +01:00
Juergen Spitzmueller
706960eba4 Add Question and Question* theorem types (bug #9015)
File format change.
2015-01-09 11:24:45 +01:00
Georg Baum
ba045c0a68 Fix biblio regex test
Now it tests lyx::regex instead of boost::regex, so it works as well if
std::regex is used.
2015-01-08 20:46:54 +01:00
Georg Baum
aafb5138ab remove duplicated include 2015-01-08 19:55:40 +01:00
Jean-Marc Lasgouttes
52236503d3 Add marks to indicate when a row is too large
A dotted line is shown on the left or on the right to indicate that a part of the row is not visible.

Add a color code for the scroll indicator
2015-01-07 22:55:11 +01:00
Jean-Marc Lasgouttes
c6e1db7682 Fix some display glitches
* When doing a redraw with drawing disabled (to set inset positions properly), take horizontal scroll offset in account

* reset horizontal scroll offset when it is smaller than the left margin.

* when drawing a paragraph, do not modify x globally, only for the row that is offset.
2015-01-07 22:55:11 +01:00
Jean-Marc Lasgouttes
fcaf5b5fc8 Remove the special horizontal scrolling support in InsetTabular
It is not necessary anymore now that there is a global mechanism.

Also, fix the clearing of rows in SingleParUpdate mode.
2015-01-07 22:55:11 +01:00
Jean-Marc Lasgouttes
a7ba04dbaf Fine tune the scroll offset setting code
The new code should feel a bit more natural. It avoids explicit pixel values for the margins and does not scroll in some cases where it is not necessary.
2015-01-07 22:55:11 +01:00
Hashini Senaratne
5a361b35cf Keyboard based horizontal scrolling for wide insets
[This commit is the output of the "horizontal scrolling" GSoC 2013
 project, by Hashini Senaratne. The code has been cleaned up, some
 variables have been renamed and moved from the Cursor class to
 BufferView::Private. This is the base from which I (jmarc) will polish
 the feature for landing on master.

 Below is the original commit log of Hashini, updated to reflect the
 changes that have been done.]

This feature also applicable for other insets; graphics and labels.

This implementation is capable of scrolling a single row when reaching
its content which is beyond the screen limits, using left and right
arrow keys.

The attribute 'horiz_scroll_offset_' introduced in the
BufferView::Private class plays a main role in horizontal scrolling of
the wide rows that grow beyond the screen limits. This attribute
represents by how much pixels the current row that the text cursor
lies in should be get scrolled.

The main logic that is responsible for drawing the scrolled rows is
within the BufferView class, BufferView::checkCursorScrollOffset.

 * The main logic is called via BufferView::draw.

 * What this does is set the horiz_scroll_offset_ attribute in in order to
 show the position that the text cursor lies in.

 * To make sure that BufferView::draw gets involved when Update flag is
 FitCursor, necessary changes are made in BufferView::processUpdateFlags.

Basically what the logic that used to set the horiz_scroll_offset_
does is,

 * The row which the text cursor lies in is identified by a
 CursorSlice that points to the beginning of the row. This is the
 'rowSlice' variable used in BufferView::checkCursorScrollOffset. Acessors
 are added to obtain this variable. Here row objects were not used to
 identify the current row, because it appears that row objects can
 disappear when doing a decoration update for example. This means that
 comparing row pointers is not a good idea, because they can change
 without notice.

 * Stop calculations of horiz_scroll_offset_ variable, if metrics have not been
 computed yet. Otherwise the calls to TextMetrics::parMetrics, calls
 redoParagraph and may change the row heigths. Therefore vertical scrolling
 feature may get disturbed. This is avoided.

 * Using BufferView::::setCurrentRowSlice resets horiz_scroll_offset_
 when changing cursor row. This is done in order to prevent unwanted
 scrolling that happens when changing the selected row using up and
 down arrow keys.

 * Recompute inset positions before checking scoll offset of the row, by
 painting the row insets with drawing disabled. This is done because the
 position of insets is computed within the drawing procedure.

 * Current x position of the text cursor is compared with the
 horiz_scroll_offset_ value and the other variables like row.width(),
 bv.workWidth(). Compute the new horiz_scroll_offset_ value in order
 to show where the text cursor lies in. The basics conditions that we
 check before recomputing it are, if the text cursor lies rightward to
 the current right screen boundary, if the text cursor lies leftward
 to the current left screen boundary, if the text cursor lies within
 screen boundaries but the length of the row is less than the left
 boundary of the screen (this happens when we delete some content of
 the row using delete key or backspace key).

 * Change update strategy when scrooll offset has changed. This allows to
 redraw the row when no drawing was scheduled. By doing so, it was
 possible to redraw a wide row when moving to the leftmost position of the
 wide row, from the leftmost position of the row below, using the left
 arrow key.

In TextMetrics::drawParagraph it is checked whether the current row is
what is drawing now. If it is so, the value used to the x value of the row
for drawing is adapted according to BufferView::horizScrollOffset.

The method used to pass boundary() was fixed to get row when cursor was in
a nested inset. This matter is considered in Cursor::textRow and it is
modified accordingly.

GuiWorkArea::Private::showCursor() is modified to show the cursor position
in a scrolled row.
2015-01-07 22:55:11 +01:00
Jean-Marc Lasgouttes
38dc763e50 Turn a double variable into an int.
This is a better fix than 0ad9d46068, and was just as simple.
2015-01-07 22:42:14 +01:00
Jean-Marc Lasgouttes
0ad9d46068 Fix some warnings 2015-01-07 21:27:53 +01:00
Vincent van Ravesteijn
ad6c03fe26 InsetTabular.cpp: Remove commented code without a comment
This was a leftover of [b2246c4e/lyxgit].
2015-01-06 22:02:20 +01:00
Vincent van Ravesteijn
c313b1c8eb str_metrics: Prevent clipping of chars with negative bearing
This happens when part of the word is selected.

To reproduce:
1. Start a new document
2. Type "af"
3. Select 'a'
4. Observe that the right part of the 'f' is clipped away.

This patch uses QRegion to set a clip region that is everything except
the part that is drawn in another color.

Fixes: #9223.
2015-01-06 22:02:07 +01:00
Georg Baum
59b705dcd9 Move global variable to preamble
This will be needed in the future, when I need to parse the preamble twice
for detecting japanese encoding (bug #8218).
2015-01-06 19:21:34 +01:00
Juergen Spitzmueller
27a8abf768 Some casing fixes
English UI uses Title Casing for headers and sentence casing for normal widgets
2015-01-04 10:53:36 +01:00
Juergen Spitzmueller
3cd1d396ff Fix aspectratio UI
Fixes: #9357
2015-01-04 10:05:42 +01:00
Georg Baum
3f72a026cc Fix parsing of verbatim options (bug #9113)
Parser::verbatimOption() did swallow backslashes previously. The similar code
in Parser::verbatim_item() was already correct.
2015-01-03 20:45:06 +01:00
Georg Baum
b1bfbfb3f9 Adjust subfigure and subcaption options 2015-01-03 18:43:01 +01:00
Richard Heck
935646bf91 Cleanup of outliner moving code. 2015-01-03 11:33:11 -05:00
Georg Baum
1d4fb5ac7d Parse post command argument insets (bug #8473)
This is now very easy with the new InsetArgument infrastructure.
2014-12-30 18:37:08 +01:00
Georg Baum
d1e530cf5d Handle \textgreek commands from unicodesymbols
This is the second part of bug #8553: The symbols defined in unicodesymbols
are now detected correctly and converted to unicode, so no ERT anymore.
2014-12-30 18:12:35 +01:00
Georg Baum
bf1006a22c Fix misparsing of \textgreek without polyglossia
This is the first part of bug #8553. \textgreek was interpreted as the
polyglossia version even if polyglossia was not used. Now it is not recognized
at all and converted to ERT, but this ensures at least correct LaTeX output.
2014-12-30 17:44:08 +01:00
Georg Baum
33b059bd9d Make macro xhtml export more secure
Actually I wanted to do that in cc87f8100 but forgot to adjust the original
solution completely. Now we do not search for an arbitrary latexkeys instance
which just happens to have the same name as the macro, but we only use the
symbol that was explicitly set for global macros.
2014-12-30 13:30:40 +01:00