Commit Graph

24538 Commits

Author SHA1 Message Date
Guillaume Munch
c76e0f1153 Make latex highlighter colors compatible with dark theme
Partial fix for #8325
2016-06-15 19:42:06 +01:00
Guillaume Munch
52dd5dc84f Fix compilation with gcc 4.6 part II 2016-06-15 14:42:34 +01:00
Richard Heck
ff4005de68 Whitespace. 2016-06-15 00:23:53 +01:00
Richard Heck
0fa905ceab Replace coverity comment with assertion. 2016-06-14 18:26:08 +01:00
Guillaume Munch
b148629d56 Fix compilation with gcc 4.6 2016-06-14 16:44:40 +01:00
Guillaume Munch
947c34364c Fix bug #10195
The computation of the index of the main text entry of a row did not take into
account the fact that the entry could be optimised away.
2016-06-14 16:44:40 +01:00
Guillaume Munch
b7abd752fa amend 6144bbfb 2016-06-14 01:34:16 +01:00
Guillaume Munch
aef8746712 amend e2bc7ffa 2016-06-14 00:21:26 +01:00
Guillaume Munch
b2b8733096 Remove a conversion to_utf8() inside FontSetChanger
This requires to change many docstrings into std::strings. The logic behind that
is that they represent a fixed set of math fonts, and therefore “string” means
here “poor man's enum” rather than text (this is consistent with MetricsBase).

Profiling of scrolling inside a document over macro-instensive areas:

Before the patch:
  44,1% BufferView::updateMetrics()
   -> 34,8% InsetMathHull::metrics()
     -> 9,8% FontSetChanger::FontSetChanger()
  28,4% BufferView::draw()

After the patch:
  35,3% BufferView::updateMetrics()
   -> 27,2% InsetMathHull::metrics
     -> 0,4% FontSetChanger::FontSetChanger()
  47,5% BufferView::draw()

FontSetChanger::FontSetChanger() is made 41x less expensive (with reference
BV::draw()) just by removing this conversion. The remaining 0,4% could be
squished by replacing the strings with a proper enum, but this is premature. Of
course, this only treats the symptoms: there is no good reason that this
function is called 45500 times over the time of 40 repaints.
2016-06-13 08:46:15 +01:00
Guillaume Munch
325c476bcb ScrollbarParameters: clean-up and document
Position is always 0.
2016-06-13 08:46:15 +01:00
Guillaume Munch
0e3c8ba627 Fix computation of scroll value 2016-06-13 08:46:15 +01:00
Guillaume Munch
d2d243d77f Simplify the TexRow information for mathed output
Replace the manual manipulation of a stack of RowEntries with a Changer
function. When I introduced the stack of RowEntries, I did not know about the
Changer mechanism.
2016-06-13 08:46:15 +01:00
Guillaume Munch
348e0241af Do not include MetricsInfo.h in MathStream.h
Fixes the FIXME in MathStream.h
2016-06-13 08:46:15 +01:00
Guillaume Munch
760bca8265 Change tracking cue: paint over labels in text and prepare for further work
* Inset::canTrackChange() had two meanings: can it deal with change tracking?
  Will it paint its own CT status? The latter information is now given by
  Inset::canPaintChange().

* Line thickness computation is moved from RowPainter to MetricsBase.

* Painting function for Changes moved to lyx::Change. (One new, that strikes
  diagonally.)
2016-06-13 08:46:15 +01:00
Guillaume Munch
e2bc7ffae3 RefChanger
RefChanger temporarily assigns a value to a non-const reference of any
kind. RefChanger provides a flexible and uniform generalisation of the various
scope guards previously derived from the old Changer class in MetricsInfo.h.

As before, a temporary assignment lasts as long as the Changer object lives. But
the new Changer is movable. In particular, contorsions are no longer needed to
change a private field. Special code can be moved into the appropriate classes,
and it is no longer necessary to create a new class for each specific use.

Syntax change:

   FontSetChanger dummy(mi.base, value);
-> Changer dummy = mi.base.changeFontSet(value);

New function for generating arbitrary Changers:

  Changer dummy = make_change(ref, val, condition);

Bugfix:

* Fix the display of \displaystyle{\substack{\frac{xyz}{}}} (missing style
  change).
2016-06-13 08:46:15 +01:00
Guillaume Munch
0be52d3710 ShortcutOverride again
Re: fix for #9218 (not #10119)

Now it matches the example given in the docs. This time tested on qt4.
2016-06-13 08:46:15 +01:00
Guillaume Munch
881b7ec673 Remove that pesky broken window that pops up with Qt5 when saving preferences
It turns out this show event is not necessary (tested with Qt4.8 and Qt5)
2016-06-12 19:17:33 +01:00
Guillaume Munch
89175ee0f1 Add perf comment 2016-06-12 19:17:33 +01:00
Guillaume Munch
aedc6720c7 Toc: clean-up 2016-06-12 19:17:33 +01:00
Guillaume Munch
6144bbfbf8 Replace foreach with for
C++11 allows foreach-style iterations with the following syntax:

for (auto & element : container) {
 ...
}
2016-06-12 19:17:33 +01:00
Guillaume Munch
32ff5f0f30 climits
It's as you prefer, Jean-Marc.
2016-06-12 19:17:33 +01:00
Stephan Witt
a80e0cacb9 Use iostream instead of sstream and move it from header to cpp-source of LyX-Server 2016-06-12 13:03:06 +02:00
Richard Heck
fa190691a8 When we use InPremable styles, we want to write as many versions
to the premable as the user enters.
2016-06-12 00:58:33 -04:00
Richard Heck
e622f82521 Add comments to fix coverity #23505 and 23507. 2016-06-12 00:35:49 -04:00
Richard Heck
4152c68c66 Add comment to fix coverity #111935. 2016-06-12 00:31:33 -04:00
Richard Heck
a48adfa6d6 Fix coverity issue #127197.
We may fail to get a buffer when we request one.
2016-06-12 00:26:38 -04:00
Richard Heck
f19d650752 Add comment about coverity #102061. 2016-06-12 00:22:09 -04:00
Richard Heck
7b15ea393f Add a check to please coverity.
Fixes #23496.
2016-06-12 00:12:03 -04:00
Richard Heck
6675601147 Fix a number of other uninitialized members.
Fixes coverity #23392, 23394, 23397, 23403, 23414, 23424,
23448, 23477.
2016-06-11 23:59:55 -04:00
Richard Heck
ae676958d9 Add comment to fix coverity #23438. 2016-06-11 23:57:15 -04:00
Richard Heck
d29732e138 Initialize a bunch of uninitialized members. It does not seem to
matter what they are initialized to. Fixes coverity #23391.
2016-06-11 23:39:43 -04:00
Richard Heck
1bd5ef9a75 Add some comments to fix coverity #23386. 2016-06-11 23:26:02 -04:00
Richard Heck
3703a0235c False positive on coverity #23366. 2016-06-11 23:13:01 -04:00
Richard Heck
7aa6f972da Add a LATTEST, just in case this ever causes a problem.
Fixes coverity #23363.
2016-06-11 23:09:30 -04:00
Richard Heck
df022f91b4 Check to make sure we have a preview loader.
Fixes coverity #23353.
2016-06-11 23:09:30 -04:00
Richard Heck
a637efca6e Add comment fixing coverity #23351. 2016-06-11 23:09:30 -04:00
Richard Heck
9d49f09bcf Add comment about coverity #23335. 2016-06-11 23:09:30 -04:00
Richard Heck
fd42194c7e Add comment to fix coverity #23308 2016-06-11 23:09:30 -04:00
Richard Heck
2cb6ed9376 Make sure we have a buffer in VC_COMPARE.
Fixes coverity #23304.
2016-06-11 23:09:30 -04:00
Richard Heck
edefef17b5 Add comment for coverity, fixing #23307. 2016-06-11 23:09:30 -04:00
Richard Heck
355395174b Mark a number of coverity false positives.
Fixes coverity #23284, 23285, 23286, 23287, 23289.
2016-06-11 23:09:30 -04:00
Scott Kostyshak
2db62cf5d5 Add a comment and FIXME that lualatex can make DVI
The command 'lualatex' can produce a DVI with the option
--output-format=dvi
It is best to keep things as is because it is better to guess a PDF
than to guess a DVI (we do not use that feature of the 'lualatex'
command internally; we use 'dvilualatex' instead). However, we
should ideally get this information in a more robust way.

Thanks to Günter for pointing this out.
2016-06-11 17:05:28 -04:00
Günter Milde
b170b6e40f fix #10199 Non-encodable characters with XeTeX and utf8-plain
XeTeX with TeX fonts is only safe with ASCII input encoding (see #9740)
and we therefore force "ascii" when exporting with XeTeX and 8-bit TeX-fonts.

However, "utf8-plain" is a "power-user" option, which allows to switch off LyX's 
encoding of the LaTeX file: 
keep this also for "XeTeX with TeX fonts".

The user is responsible to ensure all characters can be processed and are 
correctly shown in the output. The provided test sample shows the problems
with this encoding without special measures (like loading fontspec in the
user-preamble or a document class).
2016-06-11 13:57:24 +02:00
Stephan Witt
e8b15b5f0c Add missing includes after change to boost signals2 2016-06-11 09:56:35 +02:00
Richard Heck
bb5c760b37 Fix silly error outputting math sizes. Fixes bug #10129. 2016-06-11 00:49:21 -04:00
Guillaume Munch
ab41c1d1ac Fix bug #10119
This makes Qt 5.4 as usable as Qt 5.5.1 in my experience. Otherwise, fix again
INSTALL.
2016-06-11 05:42:43 +01:00
Guillaume Munch
8e4648f38c Add missing header
Spotted by jkulesza
2016-06-11 05:08:23 +01:00
Richard Heck
9d5ffa8e75 Restore last selected label when using the "go to label" feature
of the reference dialog.
2016-06-10 18:19:46 -04:00
Georg Baum
2047ea5eb4 Replace Boost.Signals with Boost.Signals2
Boost.Signals is deprecated. This fixes bug #9943.
The only thing left to do is to rewrite (or get rid of) the boost -mt test
in config/lyxinclude.m4 not to use signals anymore.
2016-06-09 22:25:34 +02:00
Guillaume Munch
e87febd0de Exercise: simplify the definition of IconvProcessor
It is no longer needed to create fake copy constructors and assignment and to
deal with deletion by hand, thanks to unique_ptr, the inference of move
constructor and assignment operator, and the compatibility of standard
containers with movable objects.
2016-06-09 19:16:44 +01:00
Guillaume Munch
8d640dc776 Remove non-copyable idioms
Two better ways of making a class non-copyable in C++11:

* Store the p. impl. in a unique_ptr (for the cases of classes with p. impl.),
  or:

* Define publicly the copy constructor and assignment as deleted

Lots of other classes could be cleaned up in this way.
2016-06-09 19:16:44 +01:00
Guillaume Munch
973618e1c1 Missing headers
Found by Jean-Marc
2016-06-09 19:16:44 +01:00
Jean-Marc Lasgouttes
725c66d20c Initialize GuiDocument:biblioChanged_ in constructor
Found by Coverity
2016-06-09 17:38:30 +02:00
Jean-Marc Lasgouttes
664fca5566 Initialize correctly SystemcallPrivate in constructor
It seems that Error is the best possibility when nothing has been done yet.

Found by Coverity
2016-06-09 17:34:14 +02:00
Jean-Marc Lasgouttes
7800c05788 Initialize bool member of Package in default constructor
Found by Coverity
2016-06-09 17:26:55 +02:00
Jean-Marc Lasgouttes
ab40fe6f05 Initialize properly InsetTabular members in constructor
Found by Coverity
2016-06-09 17:23:27 +02:00
Jean-Marc Lasgouttes
0f5c34b8ab Initialize Parse::theCatCode_ in constructor
Normally, it is done before tokenizing, but it does not hurt to do it
even before.

Found by Coverity.
2016-06-09 17:11:41 +02:00
Jean-Marc Lasgouttes
76f45b351d Initialize FindAndReplaceOptions in default constructor
Found by coverity
2016-06-09 17:06:21 +02:00
Jean-Marc Lasgouttes
bad511f3fe Initialize correctly GuiErrorList::from_master_ in constructor
Found by Coverity
2016-06-09 16:58:13 +02:00
Jean-Marc Lasgouttes
102e6340e5 Initialize InsetExteralParams::preview_mode in constructor
The value PREVIEW_OFF is the same default as for external::Template.

Found by Coverity
2016-06-09 16:51:07 +02:00
Jean-Marc Lasgouttes
e3d74ee935 Initialize GuiSendto::format_ in constructor
Found by Coverity.
2016-06-09 16:44:56 +02:00
Jean-Marc Lasgouttes
a0c2328fd6 Always initialize InsetQuote language in constructor
Found by Coverity
2016-06-09 16:42:24 +02:00
Jean-Marc Lasgouttes
c056062d59 Initialize some GuiTabular members in constructor
Found by Coverity.
2016-06-09 16:38:32 +02:00
Jean-Marc Lasgouttes
020a890f42 Initialize ScopeBuffer::buffer member in constructor
Found by Coverity.
2016-06-09 16:34:25 +02:00
Jean-Marc Lasgouttes
4f795bd309 Initialize LyXModule::available_ in constructor
Found by Coverity.
2016-06-09 16:26:07 +02:00
Guillaume Munch
b95b77c631 Replace boost::tuple with std::tuple 2016-06-09 15:21:39 +01:00
Guillaume Munch
b032e2dfaf Replace support/shared_ptr.h and boost::shared_ptr with std::shared_ptr
shared_ptrs now only require the <memory> header.
2016-06-09 15:21:39 +01:00
Guillaume Munch
ca8709aaf5 Replace boost::scoped_ptr with unique_ptr 2016-06-09 15:21:39 +01:00
Guillaume Munch
557975a8de Replace auto_ptr with unique_ptr
This is a mechanical replacement. For now it seems that unique_ptrs are
essentially used for exception-safety. More could certainly be done to clarify
pointer ownership in general.
2016-06-09 15:21:39 +01:00
Guillaume Munch
af5f69cea7 unique_ptr and make_unique 2016-06-09 15:21:39 +01:00
Jean-Marc Lasgouttes
af6a164e3c Initialize all MathMacroTemplate members in constructors
Found by coverity.
2016-06-09 16:19:31 +02:00
Jean-Marc Lasgouttes
8cd8080322 Please Coverity (code should be equivalent)
The parameter passed to allowDisplayMath will need to be copied, so it
made sense to pass it by value. Since Coverity complains about that,
the code is rewritten to make the copy explicit.
2016-06-09 16:02:39 +02:00
Jean-Marc Lasgouttes
731dbddd11 Annotate source code to please coverity
This code is signalled as a copy and paste error, but it is a false
positive.

According to the documentation, adding a comment starting with
  // coverity[name_of_error]
should be enough to flag the false positive.
2016-06-09 15:51:07 +02:00
Jean-Marc Lasgouttes
5e5440f2f3 Fix right_boundary properly after a row is shortened
Instead of resetting it to false, do a proper test to see whether
there is a separator at the end of the row.

Fixes bug #10180.
2016-06-09 10:48:15 +02:00
Georg Baum
0f5554a8f2 Remove zombie noncopyable.hpp dependency
The header was still included, but not used.
2016-06-07 20:49:27 +02:00
Georg Baum
273c67d8aa Require a C++11 compiler
As discussed on the list. If no C++11 compiler is found configuration stops
with an error. There are now unneeded parts of boost, the will be removed in
a second commit.
2016-06-07 20:34:52 +02:00
Kornel Benko
9dd695b17a Cmake build: Correct some installation paths 2016-06-07 14:38:20 +02:00
Richard Heck
6f88e11da3 Fix bug #10194: Space missing in UI. 2016-06-06 20:41:07 -04:00
Georg Baum
41fda35c59 Fix cppcheck initialization warnings 2016-06-06 21:55:39 +02:00
Georg Baum
03395b7871 Rethrow excepction instead of a copy
This fixes the cppcheck warning "(style) Throwing a copy of the caught
exception instead of rethrowing the original exception."
2016-06-06 21:52:52 +02:00
Georg Baum
42362cfb87 Remove duplicated if clause
This was a thinko in 760b7cf2 (found by cppcheck), it was added in 977bbd9b as
well.
2016-06-06 20:33:31 +02:00
Georg Baum
bf60696ee6 update test references for ba2b86fa 2016-06-04 17:00:17 +02:00
Georg Baum
6bd5263405 Work around limited SVG support (bug #9778)
Qt only supports SVG 1.2 tiny, so we prefer to convert on our own if an
explicit converter is defined and the converter cache is used (otherwise
the conversion would be too expensive).
2016-06-04 09:09:33 +02:00
Pavel Sanda
48c4763b86 typo 2016-06-03 11:19:02 -07:00
Jean-Marc Lasgouttes
508518ad95 Take inset dimension into account in row signature
In some cases, the insets may change height or width without changing
the other apsects of the row.

Fixes bug #6991 and #10182.
2016-06-03 11:21:09 +02:00
Pavel Sanda
d5933fc5b5 Comment only 2016-06-02 22:48:58 -07:00
Pavel Sanda
ba2b86fa5d Introduce basic support for microtype.sty.
https://www.mail-archive.com/lyx-devel@lists.lyx.org/msg192743.html
2016-06-02 22:48:58 -07:00
Scott Kostyshak
6a2219bc6f Support a changed log message in newest LuaTeX
The version of LuaTeX that ships with TeX Live 2016 now gives the
following message after processing a document that yields no pages
of output:

"warning  (pdf backend): no pages of output."

The lowercase "n" in "no" is a change that caused our parser not to
pick up the message.
2016-06-02 22:59:05 -04:00
Scott Kostyshak
1e8b925c07 Output file from (xe|lua)latex is PDF, not DVI
A few parts of our code depend on correctly identifying the output
format of LaTeX commands. One specific bug is that because the
output file was not correctly set, it was not removed after an
error. For example, this commit fixes the following bug:

1. Create a new document that contains "hello\blah" where \blah is
in an ERT box.
2. Compile with PDF (LuaTeX). You'll get an error because of \blah.
3. Close the error dialog.
4. Remove the text "hello" and compile again with PDF (LuaTeX).

The error dialog is shown and the "Show Output Anyway" button is
enabled. If you click it, it shows the previously compiled PDF (with
the text "hello"). With this commit, the button is correctly
disabled (and the output file is deleted).
2016-06-02 22:41:26 -04:00
Scott Kostyshak
831c057593 Generalize a comment
An output file does not have to be a DVI.
2016-06-02 22:34:50 -04:00
Georg Baum
8d255ced2a Do not duplicate jpg format
Some qt versions report both "jpeg" and "jpg" as loadable file extensions.
In this case the jpg format was added twice previously. This does not happen
anymore with the new code, and it works as well if only "jpg" or only "jpeg"
is reported.
2016-06-02 22:31:27 +02:00
Georg Baum
d2424c6998 Improve debug output
Now we have only one line per format, not two. The output looks the same now
as in GuiApplication.cpp for the qt formats.
2016-06-02 22:17:19 +02:00
Pavel Sanda
b356df7fcf glitch in lfundoc 2016-06-01 00:20:50 -07:00
Uwe Stöhr
b540bc1c42 ErrorListUi.ui: correct an expression 2016-05-31 23:15:07 +02:00
Jean-Marc Lasgouttes
51ee267c6e Allow automatic text direction in Painter::text()
It is wrong to assume that direction is left-to-right when no indication exist.

Add a new enum with values LtR, RtL and Auto to be used as argument of
the private text() methods. When direction is Auto, let Qt decide how
the string shall be layed out.

Fixes bug #10169.
2016-05-31 11:52:30 +02:00
Guillaume Munch
1cc14a31ca TocWidget: fix an erroneous collapse and optimise updates based on profiling
TocModels::reset() in GuiView::structureChanged() collapses the TocWidget, and
therefore requires an update right after, which was missing.

In fact, profiling TocWidget::updateView() shows that delaying the update is
good only for fast keypresses (essentially movement). It costs 5% of a
char-forward operation in a document with approx. 100 table of contents
items. The update optimisation has been rewritten to take this data into
account.
2016-05-31 00:14:13 +01:00
Guillaume Munch
78a5c87781 TocWidget: fix part of #9825 2016-05-31 00:14:13 +01:00
Guillaume Munch
6a662cbb27 TocModel: clean-up 2016-05-31 00:14:13 +01:00
Guillaume Munch
6aceb3558a GuiDelimiters: display at least (and at most?) 4 columns 2016-05-31 00:14:13 +01:00
Guillaume Munch
ef8b8ebcfd GuiDelimiter: Synchronise the vertical scrollbars 2016-05-31 00:14:13 +01:00
Guillaume Munch
8aaa79cfb6 ShortcutPrefs: hide empty lfuns for which there is already a binding 2016-05-31 00:14:13 +01:00
Guillaume Munch
b53d07897b ShortcutPrefs: clean-up 2016-05-31 00:14:13 +01:00
Guillaume Munch
2b6d0ae3de Show names of debug modes in the debug panel
Sometimes it's hard to know which is which from a translation of the description
alone.
2016-05-31 00:14:13 +01:00
Jean-Marc Lasgouttes
0311718215 Split TextMetrics::setRowHeight in three parts
The new functions parBottomSpaging and parTopSapcing return below/above each paragraph.

This allows to remove the TopBottomSpace argument and makes the code a
bit clearer.
2016-05-30 14:55:41 +02:00
Jean-Marc Lasgouttes
e39e4cf96b Do not require an extra pit parameter when a row is available
Now that Row has a pit() member, it is possible to use it instead of passing an extra pit_type parameter to a function which already has access to a Row.
2016-05-30 14:55:41 +02:00
Jean-Marc Lasgouttes
4c19c5149d RowPainter const cleanup
Change the various paint* helpers to take a single row element as argument.

Do not update x_ in the various paint* helpers. Constify them. Update x_ in paintText and paintOnlyInsets instead.

Remove an empty call to paintForeignMark in paintInset (the call did nothing since orig_x == x_ at this point).
2016-05-30 14:55:41 +02:00
Jean-Marc Lasgouttes
656b7f5ab7 Set vertical margins in redoParagraph, not setRowHeight
It is actually easier to set the 20 pixels margin in redoParagraph, since it is not necessary to take newlines in account when deciding what is the real last row of the paragraph.

Moreover this solves the following bug (present in 2.1.x too): when the document ends with a newling, the bottom margin disappears.

Update PAINTING_ANALYSIS with new tasks.
2016-05-30 14:55:41 +02:00
Jean-Marc Lasgouttes
598f7e4a45 Cleanup Painter text() API
* remove optional arguments to the helpers that use a FontInfo
* add a textwidth argument to the text() methods that are used by rowpainter.

Now textwidth is only computed if a null value was passed to the
text() method. This means that in the use case of rowpainter, no
textwidth needs to be computed.
2016-05-30 14:55:41 +02:00
Jean-Marc Lasgouttes
333f6fcf07 Make the different Painter::text void methods
The textwidth value that was returned is not used anymore. Now in some
cases we can avoid to compute it at all.
2016-05-30 14:55:41 +02:00
Jean-Marc Lasgouttes
51b1cfab72 Do not use the return value of Painter::text for logos
This will allow to get rid of this return value (and avoid computing it).
2016-05-30 14:55:41 +02:00
Jean-Marc Lasgouttes
ac759b4368 Rewrite setRowHeight using row information
The initial values for maxasc and maxdes (renamed from maxdesc) is obtained as a maximum of max ascents/descents of all row elements.

This allows to get rid of Paragraph::highestFontInRange and FontList::highestInRange.

Some auxilliary variables declarations are also moved to where they are needed.
2016-05-30 14:55:41 +02:00
Jean-Marc Lasgouttes
1751626776 Simplify redoParagraph by merging duplicate code
Let breakRow return a boolean indicating whether an additional row is
required (after a newline) and use that to replace the code that added
an extra row when a paragraph ends with a newline.
2016-05-30 14:55:41 +02:00
Jean-Marc Lasgouttes
fc73ebc16c Make the non-drawing cases faster in TextMetrics::drawParagraph
There are two main cases:
* when drawing is disabled from the start, use a simplified code that only paints insets (in order to cache positions).
* when the row is not visible, do the same.

The goal of this optimization is to be able to always run a no-drawing draw after the metrics have been computed.
2016-05-30 14:55:41 +02:00
Jean-Marc Lasgouttes
96fee0ed7a Move some horizontal scrolling code from TextMetrics to BufferView
It is better to have all the code in the same place, and it will avoid code duplication later.
2016-05-30 14:55:41 +02:00
Jean-Marc Lasgouttes
77ef48d093 Only add inset postion to cache in paintInset
It was also added in paintText and paintOnlyInsets.
2016-05-30 14:55:41 +02:00
Jean-Marc Lasgouttes
65a6cc1fc3 Cleanup of spacing in mathed
This is a first cleanup step. More complex rules have to be
implemented on top of this.

Use proper spacing \thinmuskip, \medmuskip and \thickmuskip instead of
ad-hoc values.

Rename isRelOp to isMathRel and introduce isMathBin and isMathPunct
(for InsetMathChar and InsetMathSymbol). Update the categories of
characters in InsetMathChar according to LaTeX source (fontmath.ltx).

Set correctly the spacing around mathrel, mathbin and mathpunct
elements. Use \thinmuskip around MathDelim instead of a hardcoded 4.

This is related to bug #8883.
2016-05-29 17:55:55 -04:00
Jean-Marc Lasgouttes
68149e380d Remove extra spacing around InsetCommand buttons
There is already a spacing of 2 pixels on each side of a button (e.g. collapsed inset). There is no need to add one extra pixel for command insets.

Fixes part of bug #10149.
2016-05-29 17:55:46 -04:00
Jean-Marc Lasgouttes
516d5d29dc Fix drawing of buttonText (enforce same left/right spacing)
The computation of the width of the button was wrong. If <--> stands for TEXT_TO_INSET_OFFSET/2 spacing, and if `[]' marks the button's limits, then the intent is
  <-->[<-->button text<-->]<-->

Therefore the physical grey rectangle width is
   width - Inset::TEXT_TO_INSET_OFFSET

With this change, the spacing on the right of the button is not larger than the  left one.

Fixes bug #10147.
2016-05-29 17:55:46 -04:00
Jean-Marc Lasgouttes
ccc8ad4744 Cleanup handling of LFUN_LAYOUT_PARAGRAPH in getStatus
The way it works is:
* the inset defines allowParagraphCustomization() correctly
* Text::getStatus acts on it.

Note that, in Text::getStatus, testing for cur.inset().allowParagraphCustomization() does not make much sense, since one should pass the cursor idx as parameter. Actually, for some reason the safest bet is to use the owner of the Text object as inset.
2016-05-29 17:55:46 -04:00
Jean-Marc Lasgouttes
0d21dca360 Cleanup handling of LFUN_LAYOUT in getStatus
The way it works is:
* the inset defines forcePlainLayout() correctly
* Text::getStatus acts on it.

Note that, in Text::getStatus, testing for cur.inset().forcePlainLayout() does not make much sense, since one should pass the cursor idx as parameter.

There are many other lfuns that do not have to be handled directly by insets. InsetScript in particular has tests for way too many lfuns.
2016-05-29 17:55:46 -04:00
Jean-Marc Lasgouttes
f78967a802 Rename badly named variable 2016-05-29 17:55:46 -04:00
Jean-Marc Lasgouttes
019fceda3f Remove variables set but not used
This was found by cppcheck.
2016-05-29 17:55:46 -04:00
Jean-Marc Lasgouttes
a8cfeb1538 Move one Text::setCursor instance to CursorSlice
This method did access more CursorSlice than Text. It is only a setter for
CursorSlice with some bound checking. The new signature is
setPitPos(pit_type, pos_type).
2016-05-29 17:55:46 -04:00
Jean-Marc Lasgouttes
0437d8dc1a Variables of type pit_type should be named pit, not par
It is easier to use always the same conventions for naming.
2016-05-29 17:55:46 -04:00
Jean-Marc Lasgouttes
83d8e12cc1 Rename Cursor::setSelection(bool) to selection(bool)
The old name would be confusing wrt setSelection(), which does additional checks.
This one is a pure acessor, and the more complete methods are
* setSelection(), which avoids empty selections
* clearSelection(), which resets anchor, and sets word selection and mark more to false.

Most of the code should use these two instead of selection(bool), but this is for later.
2016-05-29 17:55:46 -04:00
Jean-Marc Lasgouttes
9fbee19a7f Avoid incorrect "Autocorrect Off" message 2016-05-29 17:55:46 -04:00
Jean-Marc Lasgouttes
5739433feb FindAndReplace: reorder includes 2016-05-29 17:55:45 -04:00
Jean-Marc Lasgouttes
641691bc12 TextMetrics: Use shorter names for font metrics
This keeps code easier to read.
2016-05-29 17:55:45 -04:00
Jean-Marc Lasgouttes
700e480a18 Cleanup bruteFind. 2016-05-29 17:55:45 -04:00
Jean-Marc Lasgouttes
27bc2e4b63 Remove unused bruteFind* functions
And rename bruteFind2 to bruteFind.
2016-05-29 17:55:45 -04:00
Jean-Marc Lasgouttes
171fe0cb43 Remove unused CursorData::logicalpos_
This was introduced in 41ecabf5, probably by mistake.
2016-05-29 17:55:45 -04:00
Jean-Marc Lasgouttes
5792606ff9 Directly pass a Row::Element to RowPainter::paintInset 2016-05-29 17:55:45 -04:00
Jean-Marc Lasgouttes
e52a83549d Remove unused TextMetrics::maxWidth() 2016-05-29 17:55:45 -04:00
Jean-Marc Lasgouttes
4fb8e9b639 Use isMainText() instead of doing explicit tests 2016-05-29 17:55:45 -04:00
Jean-Marc Lasgouttes
d0a318c742 We do not use <boost/scoped_array.hpp> anymore
The code using it  was removed at 81959251.
2016-05-29 17:55:45 -04:00
Jean-Marc Lasgouttes
5ee778af75 Remove support/metahash.h
It turns out that it did not take off since introduced in 2011. It is better to remove it and the associated boost headers (extract.sh was run against boost 1.60 to do the update).

Since we will move away from several boost classes when transitioning to C++11, it is good to start by removing lesser used ones.
2016-05-29 17:55:45 -04:00
Jean-Marc Lasgouttes
68a1f9a44e Do not use of boost::tokenizer
It is easier to use instead getVectorFromString for the use we have of this tokenizer. The two places are environment.cpp (path stuff) and qt_helpers (file fileters). The new code is much shorter.

This allow to remove boost/tokenizer.hpp and friends from our boost tree.
2016-05-29 17:55:45 -04:00
Jean-Marc Lasgouttes
87d4ce0ff7 Remove boost/format support
Only ChkTex.cpp used it, whereas the rest of our code uses the simpler bformat.
2016-05-29 17:55:45 -04:00
Jean-Marc Lasgouttes
b639056981 Remove declaration of classes that do not exist
Some headers contain
  class Foo;
whereas there is no class Foo.

The list of class statements is given by
  classes=`git grep  '^\(class\|struct\) [a-zA-Z_:]*;' src | sed 's/^.* \(.*\);/\1/'|sort -u`

The ones that are useless are:
  for c in $classes ; do grep -r "\\<$c\\>" src| grep -vq '^[^:]*:\(class\|struct\) [a-zA-Z_:]*;' || echo "$c"; done
2016-05-29 17:55:45 -04:00
Jean-Marc Lasgouttes
7628f0bf97 \\pagebreak is a fragile command in general
As such, it shall be protected in moving arguments, such as sections.

Fixes bug #10092.
2016-05-29 17:55:45 -04:00
Jean-Marc Lasgouttes
282fe102f3 Fix getStatus for math-mutate and math-display
Those two functions used two different hackish and buggy
implementation to know when the function is disabled. Replace that by
asking the containing inset whether it accepts inserting display math
inset.

Fixes bug #10033.
2016-05-29 17:55:45 -04:00
Stephan Witt
b8be856f79 Remove unused include file. 2016-05-29 17:55:45 -04:00
Stephan Witt
3a2fc1595b Correct path names were to look for RPM based dictionaries for hunspell on Linux. 2016-05-29 17:55:44 -04:00
Jean-Marc Lasgouttes
26308c1d6b Disable LFUN_INSET_DISSOLVE in tabulars
When in a tabular cell, "this" is just a lone InsetText, while cur.inset() is the whole tabular. This makes a big difference, especially when one wants to count cells.

Fixes bug "9954.
2016-05-29 17:55:44 -04:00
Guillaume Munch
4002c6af72 fix #9826: Outline disclosure of subsection content disappears one second after
doubleclicking content item.

This is only meant as a workaround. See #6675 for more general issues regarding
unwanted collapse of the tree view.
2016-05-29 17:55:44 -04:00
Georg Baum
cfa0eea4b9 Fix compiler warnings 2016-05-29 17:55:44 -04:00
Georg Baum
d2e3a201b9 Do not redefine WINVER
Compiling different parts of the sources with different WINVER may lead to
subtle and hard to detect problems. Better use the same value everywhere.
The existing error message suggests that this was wanted anyway, and it
fixes a compiler warning when cross-compiling for mingw on linux. Our code
does not require a specific value, only a minimum value of 0x5000, which
means the resulting executable will require at least Windows 2000.
2016-05-29 17:55:44 -04:00
Georg Baum
d5d2aa9de9 Fix compiler warnings
Only the ones I understand (DWORD is always unsigned). There are more:

../../src/Server.cpp: In member function ‘bool lyx::LyXComm::pipeServer()’:
../../src/Server.cpp:280:10: warning: enumeration value ‘CONNECTING_STATE’ not handled in switch [-Wswitch]
   switch (pipe_[i].state) {
             ^
     ../../src/Server.cpp:347:8: warning: ‘success’ may be used uninitialized in this function [-Wmaybe-uninitialized]
             && status == pipe_[i].iobuf.length()) {
             ^
2016-05-29 17:55:44 -04:00
Georg Baum
26526b13c5 Properly check for windres
Use the standard way to check for the resource compiler, as e.g.
libtool does it: AC_CHECK_TOOL does already provide some cross compiling
magic, and we do also get an error now at configure time if windres is not
found.
2016-05-29 17:55:43 -04:00
Stephan Witt
d5fb80ed87 Remove special code for Qt5 to manage HiDPI. It's not needed anymore and leads to strange icon scaling problems in mixed resolution environment.
For reference see the screen shots in bug tracker ticket #10114.
2016-05-29 17:55:43 -04:00
Guillaume Munch
ee18af67cd Show review toolbar when outputting changes
"Output changes" alters the preamble even in the absence of tracked
changes. Therefore, not being able to notice when it is activated can possibly
yield hard-to-debug compilation failures.
2016-05-29 17:55:43 -04:00
Georg Baum
fddaa6adeb Make windres configurable
The windres program is typically not called windres for cross compilation.
Now you can call configure with the argument
	WINDRES=x86_64-w64-mingw32-windres
in order to use the windres program on a standard debian installation.
2016-05-29 17:55:43 -04:00
Georg Baum
08afc52c4c Configure included iconv with autotools
The included iconv should not be used on Linux or OS X, but (depending on
local configuration) it might be needed for crosscompiling a mingw target
from Linux. Now the user can choose whether to use the included iconv or not.
cmake does already support that.

eilseq.m4 was taken from the original libiconv 1.14 package.
2016-05-29 17:55:43 -04:00
Georg Baum
637fbb7ac9 Use c-style cast as in original
static_cast does not work
2016-05-29 17:55:43 -04:00
Georg Baum
127e5b1955 Add forgotten zlib includes
I forgot this in 9b822b25ae5. Also remove a comment that is no longer true.
2016-05-29 17:55:43 -04:00
Georg Baum
d5f2bad461 Mingw-w64 build fixes for long long
On mingw-w64, long long (64bit wide) is larger than long (32bit wide).
Therefore we need some more specializations for string, docstring,
otextstream and << overloaded ostream functions. The configuration code
is by me, the source code changes by Shankar Giri Venkita Giri (bug 10053).
2016-05-29 17:55:43 -04:00
Shankar Giri Venkita Giri
88b68ee004 Fix return types for mingw-w64
This is needed for warning-free compilation with mingw-w64, and does not hurt
for other build configurations. Patch by Shankar Giri Venkita Giri (bug 10053).
2016-05-29 17:55:43 -04:00
Georg Baum
78e17b1579 Configure included zlib with autotools
The included zlib should not be used on Linux or OS X, but (depending on
local configuration) it might be needed for crosscompiling a mingw target
from Linux. Now the user can choose whether to use the included zlib or not.
cmake does already support that.

zconf.h.in was taken from the original zlib 1.2.8 package. The generation of
zconf.h was made equivalent to the one generated by cmake.
2016-05-29 17:55:43 -04:00
Guillaume Munch
3465bf4baf typo 2016-05-29 17:55:42 -04:00
Guillaume Munch
395d9e09e2 Disable certain change tracking commands when there are no changes
Fix TODO
2016-05-29 17:55:42 -04:00
Guillaume Munch
4154e088b0 GuiChanges: provide feedback when there are no more changes
Remove FIXMEs: date and time localisation
2016-05-29 17:55:42 -04:00
Guillaume Munch
6d4e6aad24 Automatically show the review toolbar if the document has tracked changes
(#8738)

For efficiency, we add a new flag to the buffer indicating when changes are
present. This flag is updated at each buffer update, and also when explicitly
requested via a dispatch result flag.
2016-05-29 17:55:42 -04:00
Guillaume Munch
9a09fe38bd getInnerText() 2016-05-29 17:55:42 -04:00
Jean-Marc Lasgouttes
1639abb8ed Let getPosNearX take horizontal scrolling into account
If we do not do that, it is not possible to position the cursor after
a long inset with the mouse.

To do this, it is necessary to add the pit information to the Row
object. This is a good idea in any case, and will allow to simplify
some code later on.

Fixes bug #10094.
2016-05-29 17:55:42 -04:00
Guillaume Munch
27607b76f5 TocWidget: clean-up the timer logic
The timer logic introduced to solve bug #7138 was not entirely reliable; in
particular it resulted in spurious updates (noticeable by the treeview
collapsing just after one opens a branch, in particular).

This commit cleans up the timer logic. I followed the original design decision
of having an immediate update followed by a delayed update. Now the updates are
appropriately compressed and done after a delay of 2s (as can be noticed with
the treeview still collapsing, unfortunately, but after a more predictable
delay...).
2016-05-29 17:55:42 -04:00
Guillaume Munch
2f9d323396 TocWidget: Fix perf regression
4d1ad336 fixed #9754 but caused perf issues by cancelling the gains of having a
timer (introduced after #7138). This introduces in GuiToc::enableView() a
lightweight check of whether the widget should be updated. The logic is inspired
from GuiViewSource::enableView().
2016-05-29 17:55:42 -04:00
Guillaume Munch
0e740018ff Whitespace 2016-05-29 17:55:42 -04:00
Jean-Marc Lasgouttes
5aa342ed75 Fix cursor position after redo
When document settings are modified, a command
  inset-forall Branch inset-toggle asign
is run to open as needed all branches. At the end of the said loop,
the cursor is reset to where it was. However, the cur_after undo
element member is not set because it already had a value.

To make this work as expected, it is necessary in LFUN_INSET_FORALL to
reset the cursor before ending the undo group and to insert a dummy
recordUndo call.

Fixes bug #10097.
2016-05-29 17:55:42 -04:00
Guillaume Munch
c47bfee231 Amend d7d4f65b
Thanks Richard
2016-05-29 17:55:42 -04:00
Guillaume Munch
e3540f33e1 Simplify class structure in TocBackend
Deriving from std::vector to provide helper functions appears a touch
excessive. Use typedef instead and move helper functions to the base class. New
header Toc.h provided to replace forward-declarations.

Remove TocIterator which is useless.
2016-05-29 17:55:42 -04:00
Jean-Marc Lasgouttes
d48d426c72 Rename InsetMathHull::isTable to allowsTabularFeatures
The old name conflicted with the newly introduced Inset::isTable.

Now the meaning is as follows.
* Inset::isTable() is true when the inset is composed of lines and columns
* InsetMathHull::allowsTabularFeatures is true when the current type of hull allows for tabular-like functions.
2016-05-29 17:55:42 -04:00
Jean-Marc Lasgouttes
a879bc2575 Fix horizontal scrolling in full-width collapsable insets
While a one paragraph large collapsable inset (containing for example a tabular) could be very wide and trigger horizontal scrolling, the code that makes collapsable insets wide when they contain several paragraphs would actually make them narrower in this case.

Typical example is a wide tabular and a caption in a table float, where horizontal scrolling would not trigger.
2016-05-29 17:55:42 -04:00
Guillaume Munch
6bd70011e9 LyXToolBox: a QToolBox with minimum size management
The purpose of this custom widget is to allow the use of a QToolBox in a limited
area. The stock QToolBox does not provide a minimum size hint that depends on
the size of the pages; it assumes that there is enough room.  This subclass sets
the minimal size of the QToolbox. Without this, the size of the QToolbox is only
determined by values in the ui file and therefore causes portability and
localisation issues. Note that the computation of the minimum size hint depends
on the minimum size hints of the page widgets. Therefore page widgets must have
a layout with layoutSizeContraint = SetMinimumSize or similar.
2016-05-29 17:55:41 -04:00
Stephan Witt
6799032e77 factor out lookup of loaded hunspell checkers and use it to reduce file system accesses when checking for available dictionaries 2016-05-29 21:17:08 +02:00
Juergen Spitzmueller
8ed362fda7 Implement some forgotten context menu items for arguments
* Dissolve context menu
* Label toggle (for conglomerate-styled arguments)

Fixes: #10150
2016-05-29 12:32:53 +02:00
Richard Heck
0e1834f2d9 Updates to splitting of consecutive environments.
From Enrico.
2016-05-28 17:43:01 -04:00
Jean-Marc Lasgouttes
625e7609f0 Cleanup bv-dependent variables in InsetCollapsable
It makes sense to group all the variables in a common struct instead of having four maps.
2016-05-28 17:43:01 -04:00
Jean-Marc Lasgouttes
1ec605cbb2 amend 5b7be5eb (typo+spacing) 2016-05-28 17:43:01 -04:00
Jean-Marc Lasgouttes
d8f6e65ec7 Make inset-select-all select all cells only in tables
inset-select-all has 3 levels
1. select current cell
2. select all cells
3. select inset from outside.

The second level makes sense for tables (text and math), but not for things like a math fraction.

Introduce a new method Inset::isTable() that allows to detect this case properly and skip level 2.
2016-05-28 17:43:01 -04:00
Jean-Marc Lasgouttes
fd3a41e035 Change mouse cursor on tabular selection zones
This is done by implementing the clickable method. It is not possible yet to have the usual left and down arrows, because Qt does not implement them as far as I can see.

Factor the code that triggers row/column selection and fix the logic. Now it is possible to select also at the right of the tabular inset.
2016-05-28 17:43:01 -04:00
Jean-Marc Lasgouttes
fd6ae3539b Fix display of InsetCollapsable with split views
When several bufferviews exist for the same inset, the data that depends on the view width have to be BufferView-dependent. While this is the case for several mutable members of InsetCollapsable, some were missing.

This commit makes button_dim_ (renamed from button_dim) and openinlined_ bv-dependent.

Get rid of the hitButton function.

Remove the bv-independent geometry() method and implement editable() explicitely instead.

Fixes bug #9756.
2016-05-28 17:43:01 -04:00
Jean-Marc Lasgouttes
f23a8fed80 whitespace only 2016-05-28 17:43:01 -04:00
Jean-Marc Lasgouttes
ffe1d53cdb Pass a BufferView to Inset::clickable 2016-05-28 17:43:01 -04:00
Jean-Marc Lasgouttes
890a1efe47 Make monolithic build code portable to Mac OS
"echo -e" is definitely not portable. Use a plain loop instead.

Also use the automake silent rule mechanism to make the generation of monolithic source files visible.
2016-05-28 17:43:01 -04:00
Jean-Marc Lasgouttes
aef78c821f Avoid narrow boxes when using \width as box width unit
When the box has a special width, one should not consider that as a fixed width. Otherwise, due to implementation quirks, the width will be set on screen as 1 inch.

A better solution would be to actually set the width by taking in account the contents width, height ans total height. This is not very difficult, but I do not know whether it would workout well in the work area.

Fixes bug #10048.
2016-05-28 17:43:01 -04:00
Jean-Marc Lasgouttes
72e038f03e When a counter is stepped, reset recursively all slaves
Fixes bug #10063.
2016-05-28 17:43:01 -04:00
Guillaume Munch
efbc297b95 Include config.h in LyXToolBox.cpp
Amend 367a7a6dd.
2016-05-28 17:43:01 -04:00
Guillaume Munch
7e9d0a938b Fix compilation with qt5
Amend 367a7a6d.
2016-05-28 17:42:32 -04:00
Guillaume Munch
4e50cd809b Amend a5db05ae
Restore tabstops. I was mistaken about what tabstops are and thought they were
useless in this context.
2016-05-28 17:42:32 -04:00
Guillaume Munch
26c12dba8f CitationUi.ui: Align "Selected citations" label to the left 2016-05-28 17:42:32 -04:00
Guillaume Munch
576cb5df77 LyXToolBox: a QToolBox with minimum size management
The purpose of this custom widget is to allow the use of a QToolBox in a limited
area. The stock QToolBox does not provide a minimum size hint that depends on
the size of the pages; it assumes that there is enough room.  This subclass sets
the minimal size of the QToolbox. Without this, the size of the QToolbox is only
determined by values in the ui file and therefore causes portability and
localisation issues. Note that the computation of the minimum size hint depends
on the minimum size hints of the page widgets. Therefore page widgets must have
a layout with layoutSizeContraint = SetMinimumSize or similar.
2016-05-28 17:42:32 -04:00
Guillaume Munch
70fe2c618e Correct strange FIXME 2016-05-28 17:42:31 -04:00
Guillaume Munch
7faafd037e Improvements to the shortcuts preference dialog (#9174)
Ask the user for removing bindings when using the "restore" button (#9174).

Fix the already-bound-key detection logic.

Don't forget to trigger the search when initializing the search LineEdit with
its former value.
2016-05-28 17:42:31 -04:00
Guillaume Munch
935588f2de Sanitize InsetMathHull and add a check for mutability in LFUN_MATH_MUTATE
Remove in particular all comparisons < and >= involving HullType.

Add a guard to make sure that mutate() only operates on types it has been
designed for. Then I figured I could use this new knowledge to give feedback
when math-mutate is not implemented via getStatus(). (To test this, insert a
regexp in Advanced Search & Replace and try to change it into a standard
equation via the contextual menu.)
2016-05-28 17:42:31 -04:00
Guillaume Munch
1840b5992c Correct col spacing in Cases environment 2016-05-28 17:42:31 -04:00
Guillaume Munch
d4b56646b4 Fix the display of column spacing in AMS environments
AMS align environment should have some spacing between odd and even columns.

Add a new virtual method displayColSpace() to InsetMathGrid, InsetMathHull and
InsetMathSplit.
2016-05-28 17:42:31 -04:00
Guillaume Munch
f3b70fd2cd Display the correct horizontal alignment in AMS environments
A longstanding problem... (related: #1861)

The columns in AMS math environments have a fixed alignment (colAlign() in
InsetMathGrid.cpp). We set this alignment for display (Georg's
displayColAlign()) in InsetMathHull and InsetMathSplit. This is done according
to tests and documentation for the various environments.

There is also some mechanical code factoring via colAlign().

Finally, I disable setting the horizontal alignment in InsetMathSplit, which has
no impact on the LaTeX output, and has no longer any impact on the screen. (As
for vertical alignment I discovered that it was in fact customisable for
\aligned & friends! I hope that the more faithful interface will let other
users discover that too.)
2016-05-28 17:42:31 -04:00
Guillaume Munch
3a4af5a3e1 Do not omit the starting space when copying (#9995)
The offending code appears to have been introduced a long time ago. My
understanding is that it is no longer relevant. Notably, it only appears on copy
and not on cut, which tells us that: 1) it should be safe to remove it, 2) we
should remove it for consistency.
2016-05-28 17:42:31 -04:00
Guillaume Munch
77714e6db7 Raise the maxlastfiles cap
This only changes the maximum value that the user can choose in the UI, not the
default value.
2016-05-28 17:42:31 -04:00
Scott Kostyshak
594748374b Fix using system theme icons with Qt 5 (#10052)
With Qt 5, our code did not correctly detect when icons were
available and thus tried to use nonexistent icons.

QIcon::hasThemeIcon(theme_icon) returns true when theme_icon is
empty. We now rely on the behavior that QIcon::isNull() returns true
if the icon is empty.

The same code is used with Qt 4 and Qt 5.
2016-05-22 20:56:12 -04:00
Georg Baum
ff4668621b Fxy typo in XHTML output (bug #10124)
There was a simple typo that did ouput the slash before the closing tag
instead of inside the closing tag.
2016-05-22 17:32:04 +02:00
Stephan Witt
1719fa6c6a Handle activateWindow in LFUN_BUFFER_SWITCH like in saveBufferIfNeeded() and doShowDialog() methods.
This is a requirement on Mac to get the current buffer view topmost after buffer switch.
2016-05-21 22:17:03 -04:00
Guillaume Munch
9a1afbf3ff Do not float the outliner in OSX (#9825)
There are focus issues in qt5 when the outliner is floating.
2016-05-21 18:54:38 +01:00
Guillaume Munch
a70f053a62 Use bilinear filtering when resizing graphics
This is used when scaling graphics previews. It is also used on a rare occasion
to scale instant previews when the user's configuration mixes low-dpi and
high-dpi monitors (#10114).
2016-05-20 21:19:31 +01:00
Guillaume Munch
791ef98016 GuiDelimiter: Workaround symbols alignment problem #10118 2016-05-20 19:32:35 +01:00
Guillaume Munch
a645d7f4e5 ShortcutWidget: override shortcuts in the way they are meant to be (#10075)
I would say "by the books" but the documentation was not really clear.

Problems with the logic of the previous implementation were exposed in Qt 5.6 by
commit <https://codereview.qt-project.org/125142>.

<http://mid.gmane.org/20160510070413.wzjpk4w4turnx6pr@cotopaxi>

Note that ShortcutOverride events are used elsewhere in the code where they may
need to be corrected in the same way.
2016-05-20 19:14:35 +01:00
Guillaume Munch
df86a4b8f0 Allow inset-forall to match separators (#10090)
With this change, it becomes possible to run the following commands:
     inset-forall Separator:latexpar char-delete-forward
     inset-forall Separator:parbreak inset-modify separator plain

The first one deletes all latexpar separators. The second one turns parbreak
separators into plain separators. This is safe, flexible, and avoids adding a
new LFUN.
2016-05-17 00:48:26 +01:00
Guillaume Munch
1b4728b5e2 amend 660a43ec 2016-05-07 01:53:04 +01:00
Scott Kostyshak
262dfd3826 Move some unsigned validators to signed (#10095)
2.1.x allows some document settings to have negative values where
2.2.0rc1 does not (because of the bug fix at 9e166088). If a user of
2.2.0rc1 opens a document from 2.1.x that contains one such negative
value, it will appear as though no change to the document settings
can be saved because 2.2.0rc1 treats the document settings as
invalid immediately on opening the dialog. Further, unless the user
manually goes through each tab they will not see the red text next
to the input that is now considered invalid. This could lead to
confusion for users. One example of such confusion is [1].

The following settings now allow negative values, which is
consistent with 2.1.x. Negative values in these settings do not lead
to LaTeX errors:

  - Text Layout tab: the two line edits enabled with "Custom"
  - Page Margins tab: all eight line edits

The following settings are not changed by this commit, so they now
(with 2.2.0) do not allow negative values that 2.1.x allowed. This
change makes sense because negative values lead to LaTeX errors in
these cases:

  - Page Layout tab: the "Height" and "Width" line edits, which are
                     enabled when "Custom" is selected

[1] https://www.mail-archive.com/search?l=mid&q=CAGZ2pgXqf27UaAaQ%3De_wFz1fGTa6Yv0iFyS97qu1C7B5R59irg%40mail.gmail.com
2016-05-06 15:43:41 -04:00
Guillaume Munch
660a43ecf4 Clipboard: Retry on_dataChanged() after a delay on windows (#10109)
An undocumented behaviour of QClipboard::mimeData() is that it can fail on
windows due to the specificities of the windows API that allow a race condition.
In particular it seems that querying the clipboard as soon as the dataChanged()
signal is received favourises this race condition.

Thanks to Trac user bquistorff for the explanation and a proof of concept patch.
2016-05-04 19:20:56 +01:00
Guillaume Munch
8fd223146b Whitespace 2016-05-04 18:59:36 +01:00
Jean-Marc Lasgouttes
ff17b366a0 Resources.cpp is a built source, it should not be in SOURCEFILES
We want to avoid that Resources.cpp be distributed in the tar file.
2016-04-27 00:59:30 +02:00
Stephan Witt
21e4e939be Revert part of c053a9394d
This change introduced a regression and is not needed anymore.

(cherry picked from commit 1cbabdf8d51b26dd80677ddfeb64d13df91fefc0)
2016-04-25 20:59:25 +02:00
Georg Baum
dc38ae873a Fix bug 10074 (regression)
This was a regression of 8aa37c43. I did not take into account that end_pos
could be -1, so the code that checked whether a pair of braces needs to be
inserted between two hyphens did not work for that case. Now we check for
the length of text_, which should be done anyway, and only take end_pos into
account when it is not -1.
2016-04-24 20:12:43 +02:00
Guillaume Munch
86227b196d Citation dialog: Fix trouble with openbox, fluxbox
http://thread.gmane.org/gmane.editors.lyx.devel/161725

These wms have trouble with the fix at b5a2f1c7, probably more precisely with
the trick to force the calculation of the actual sizes before the display
(layout->invalidate() and the code around it).

This patch gets rid of the code that forces the calculation. As a consequence,
the minimum sizes are again incorrect the first time the window is shown. They
are only correct the second time the window is shown. Now here is the trick: LyX
remembers the sizes of windows between sessions. Therefore, as soon as the good
minimum size has been set, the good size is remembered for the next
session. Thus, in the following sessions, even though the minimum size is
incorrect the first time, the dialog still opens with the good size. So the user
does not see the problem in practice, apart from the very first time.

This is meant as a temporary workaround.
2016-04-24 14:05:54 +01:00
Guillaume Munch
744f6e3cd8 Compute the highlighting color from AlternateBase and Highlight roles (#10073) 2016-04-15 14:13:50 +01:00
Stephan Witt
87c85303c5 Improved fix for #9966
* provide GuiApplication::typewriterSystemFont() to get a fixed font consistently
* enlarge fixed font on Mac because of the too small default Qt system font
* use it in source pane, progress view, log view and document preamble editor
2016-04-15 11:49:04 +02:00
Guillaume Munch
f180e813fe Fix dataloss when flex inset is undefined.
Regression at cfeddb929. If a flex inset has no layout upon saving (e.g. if a
module has been deleted) then its name became lost. This checks whether the name
resolution, introduced with the ObsoletedBy tag, comes back empty-handed (which
it will if the layout is not defined). In this case, we do as was done before
cfeddb929.

In addition, the use of support::token to strip "Flex:" off the beginning of the
name introduces a regression if somebody used a name containing ":". This
replaces it with support::split.
2016-04-11 21:02:06 +01:00
Enrico Forestieri
d4ca8d7404 Introduce the latexpar separator.
This is the same as the parbreak separator and is represented on screen
as the old parbreak. Old parbreak separators are converted to latexpar
separators when they are used for introducing blank lines in the
latex output rather than for separating environments.
Instead, parbreak separators are now represented on screen by a
double line. In essence, latexpar and parbreak separators produce
the same output but are represented differently on screen.
The context menu does not account for latexpar separators and only
"true" separators can be turned each into the other one.
2016-04-06 05:25:27 +02:00
Guillaume Munch
b5a2f1c7e5 Fix broken layout of the citation dialog (#10019)
7b1107d7 introduced the following inconveniences which are regressions to 2.1:

* The citation dialog can open with vertical scroll bars in the options

* The citation dialog can open with horizontal scroll bars, especially if the
  translated text is longer than the original text (e.g. in FR)

* Resizing the dialog is inconvenient because it increases the gap between the
  options. This is unlike before when the dialog could let us see more of the
  reference list when enlarging.

This is because the QToolbox that the above commit introduced is not natively
aware of the sizes of its page sub-widgets. The widget is not conceived for this
use, where the space is scarce.

Geometry values provided in the ui file (automatically computed by qtcreator I
suppose) somehow gave the illusion that it worked, but relying on such values is
not portable : it does not take into account the specific theme, font sizes and
localization. This explains why it failed on my side and will probably fail in
other settings too.

Luckily, there is a simple way to make QToolbox suitable for the current use,
which is to add the "missing link" which computes its size based on the minimal
sizes of its pages. The result looks very nice and intuitive. It solves all the
aforementioned issues.
2016-04-04 17:58:16 +02:00
Peter Kümmel
a0a472c16e msvc2015: always incude strfwd.h first, to prevent crashes of our
typedefed streams.
2016-04-02 11:03:17 +02:00
Peter Kümmel
44c57bb9d8 msvc2015: _wgetmainargs is not available ony more 2016-04-02 11:00:42 +02:00
Jean-Marc Lasgouttes
fd1ee3b424 Rename Caption:LongTableNoNumber to Caption:Unnumbered
The term LongTable has been deprecated and moreover the renaming makes the interface easier to the eye.

File format updated to 507. (conversion based on jamatos patch)
Layout format updated to 60.
tex2ylx tests updated.
Document EmbeddedObjects.lyx has been updated.
2016-03-30 16:07:00 +02:00
Richard Heck
f7fdf49f64 Const. 2016-03-28 12:40:18 -04:00
Richard Heck
82c3a44337 More informative name for backups of files from older versions. 2016-03-27 19:40:02 -04:00
Richard Heck
23f6c1c962 Fix problem reported by Kornel in this thread:
https://www.mail-archive.com/lyx-devel@lists.lyx.org/msg193248.html
The static InsetLayout could be initialized before its members were, as
JMarc realized here:
		https://www.mail-archive.com/lyx-devel@lists.lyx.org/msg193293.html
2016-03-27 16:56:17 -04:00
Jean-Marc Lasgouttes
ba7e2113f3 Fix some display bugs related to end of paragraph markers
There are two regressions that are fixed here:

 * empty rows at the end of a paragraph (think after newline at end of
   paragraph or empty line in Verbatim) do not have an end-of-par
   marker. This is fixed by removing the early return in breakRow and
   letting the whole function be executed. This requires to relax an
   assertion in Paragraph::fontSpan. It makes sense here to query
   position at the end of the paragraph.

 * a newline at the end of a paragraph will be followed by and
   end-of-par marker. This is fixed by skipping the end-of-par marker
   when a new row has been requested.
2016-03-25 22:22:45 +01:00
Jean-Marc Lasgouttes
ecd7dee5ea Make thin lines exactly 1 pixel wide
The setting of 0 (minimal possible width) was too thin for Mac Retina displays.

Fixes bug #10031.
2016-03-25 16:53:37 +01:00
Jean-Marc Lasgouttes
0aaa930a5c Do not assert when cursor is deeper than anchor
This works around bug #9917 and might give us an occasion of obtaining a recipe for reproducing it.
2016-03-22 13:48:15 +01:00
Jean-Marc Lasgouttes
98883304e2 When handling mouse events, make the undo group a bit larger
notifyCursorLeave can delete empty insets in mathed.

Fixes bug #10022.
2016-03-16 18:33:39 +01:00
Jean-Marc Lasgouttes
be7e89a29b In mathed, only select current cell on double-click
Keep the behavior of split selection with triple click.

Fixes part of #9747. The remainder was fixed at f58d9f27, AFAICS.
2016-03-16 10:23:23 +01:00
Georg Baum
4bab2ab5f8 Fix regression of 359aef92f8
The context menu of newline insets was completely greyed out if one clicked
at the right of the inset. Thanks Scott for finding this. The fix is to undo
the cursor movement also for insets without settings, but with a context menu.
2016-03-15 21:35:50 +01:00
Guillaume Munch
0434f5676a Fix perf issue when displaying the symbols gui (#9968)
According to callgrind, the time taken to display the symbol dialog is spent in
updateSymbolsList. No longer translate strings for every symbol. This speeds
it up more or less by a factor two.
2016-03-13 07:19:13 +00:00
Enrico Forestieri
0430132aa0 Circumvent odd stmary font metrics (part of #9990).
The stmary font has an unusual large descent that was causing a large
gap between lines in the math delimiter dialog because of the \llbracket
and \rrbracket delimiters. The solution is to force Qt using the same
size for all elements of the QlistWidget widget instead of letting it
compute the size of each element.
2016-03-13 01:51:15 +01:00
Jean-Marc Lasgouttes
8d088df4df When using pixmap cache, add word spacing to signature
Fixes bug #9971.
2016-03-12 12:57:49 +01:00
Jean-Marc Lasgouttes
3b6919217b Do not set cursor to the right of newline with mouse
When a row is broken by for example a display math inset, it is
possible to put the cursor at the end of the previous line using the
boundary setting of cursor.

For newline insets and separator insets, we want to force the cursor
to be before this inset. Also, in the other cases, do not force
boundary property (effectively reverts part of f29e7803).
2016-03-12 12:49:00 +01:00
Jean-Marc Lasgouttes
e8e97d67d9 Fix Cursor::inCoordCache: the root inset is never in the cache
Fixes bug #10007.
2016-03-11 16:55:03 +01:00
Enrico Forestieri
bb6130eea1 Fix bug #9990: Oversized & Incorrect Glyphs in Math Delimiter Dialog
The TeX fonts ditributed with LyX are now used for displaying the
delimiters. This assures a uniform look and that no symbol is missing.
2016-03-11 11:37:15 +01:00
Guillaume Munch
b3bed2927e Fix perf issues and crash when showing 1'100'000 items (#9968) 2016-03-11 01:15:47 +00:00
Jean-Marc Lasgouttes
31eba79b09 Fix dist target when configured with monolithic build. 2016-03-10 14:53:26 +01:00
Jean-Marc Lasgouttes
5f9053d6d3 Reset right_boundary row property when row is shortened
Fixes bug #10003.
2016-03-09 09:57:14 +01:00
Jean-Marc Lasgouttes
ffc693c87f Better handling of different int sizes when computing row crc 2016-03-05 23:18:12 +01:00
Jean-Marc Lasgouttes
b4d85944a6 Set margins correctly for empty rows
Calling breakRow ensures that everything is set correctly.
2016-03-05 14:10:02 +01:00
Jean-Marc Lasgouttes
b87946c11d Revert "Better handling of different int sizes when computing row crc"
This reverts commit 7d163d4e78.
The commit got pushed by mistake and needs improvements anyway.
2016-03-04 00:14:56 +01:00
Jean-Marc Lasgouttes
8009edd3d4 Avoid endless loop when the window is too narrow
* breakRow: remove wrong condition that would silently eat the contents of the
   paragraph when the window is narrower than left margin

 * breakRow: make sure that there is at least one element in each row

 * breakAt: when force-breaking a row element, make sure it is not empty. Doing
   so may create empty rows and therefore a endless loop.

Fixes bugs #9962 and #10001.
2016-03-03 18:08:11 +01:00
Jean-Marc Lasgouttes
7d163d4e78 Better handling of different int sizes when computing row crc 2016-02-29 13:12:16 +01:00
Guillaume Munch
bd56ed38e8 Delete .out files after compilation errors (#9963)
This treats the symptom, not the bug.
2016-02-28 19:09:21 +00:00
Jean-Marc Lasgouttes
b01d7b2262 Do not merge consecutive hyphens in LyX-Code
The existing code already avoids merging with typewriter font, but it does not work with LyX-Code, where the typewriter family is inherited. Therefore it is Cursor::real_current_font that must be tested.

Fixes bug #9987.
2016-02-26 12:02:37 +01:00
Uwe Stöhr
229d7fafd5 ErrorListUi.ui: make 2 strings compilable
fixes bug #9988
2016-02-26 02:04:49 +01:00
Guillaume Munch
20a9c7a381 Fix SIGSEGV when introducing a new shortcut (#9869)
removeShortcut() restores default settings, therefore was used incorrectly. I
introduce deactivateShortcuts() which only removes assignments.

Clean up a bit the lack of view / model distinction (getting rid of the crashing
code at the same time).

Repair inconsistency of the selection in the "modify" case. (regression at
717d19d3c)

Make the test for existing bindings a bit more robust. (Not perfect yet.)

Focus on the item that has just been added/modified. (cosmetic)
2016-02-23 22:08:25 +00:00
Richard Heck
efd1af6789 Whoops on the last commit. This is the right patch. 2016-02-20 22:19:03 -05:00
Richard Heck
c498adf4db Fix bug reported on the list by Philip Pirrip. It is possible that
paramsToDialog is called when we do not have a BufferView and so do
not have a Buffer.
2016-02-20 22:16:36 -05:00
Stephan Witt
89985bebf9 #9940 VCS now toggles buffer read-only state if locking is not active and it is enabled by VC backend 2016-02-20 07:32:56 +01:00
Stephan Witt
63e982191e correct whitespace 2016-02-20 06:39:32 +01:00
Guillaume Munch
0c3643ada9 Set the preamble in fixed-width font and without line breaks (#9966) 2016-02-18 17:19:38 +00:00
Georg Baum
c0ce79452f Introduce proper integer rounding function
This fixes a failing unit test with 32bit gcc 4.9.3 and -O2 optimization:
It computed 9953 instead of 9954 for Length::inPixels() of value 2342.
The reason for this is probably different rounding behaviour caused by storing
the unrounded value in a processor register (uses 80bit accuracy) vs. writing
it back to memory (uses 64bit accuracy). The unrounded value is very close to
9953.5 (which is not representable as an exact IEEE floating point value).

Apart from that, having a proper function for rounding makes the code more
readable, and has the nice side effect to make Length::inPB() work for
negative lengths as well.
2016-02-17 21:42:37 +01:00
Guillaume Munch
e56820bea4 Do not save \origin when \save_transient_properties is false (#9958)
\origin is a transient property in the sense that in a collaborative context
each co-author is going to have a different value for it. Moreover, \save_origin
is a global (lyxrc) setting that cannot yet be deactivated for a single file,
but one author's setting is going to impact other authors, even those who have
set save_origin=false.

There is only one location where lyxrc.save_origin produces an effect, modified
by this patch. With this patch, everything happens as if lyxrc.save_origin was
false whenever save_transient_properties=false.

This is not a file format change. When a file has
save_transient_properties=false but an origin is set (for instance a file
produced before this patch) then the origin produces its effect before the file
is saved. This produces the same effect as if the user decided to disable
save_origin between two sessions.
2016-02-09 17:48:16 +00:00
Jean-Marc Lasgouttes
2804011957 Get rid of use_preview_ in various insets
This concerns InsetPreview, InsetIPA and InsetMathHull.

Caching such a value is bad when opening the same buffer in two views.
In this case, it is not necessary to remember use_preview_ at all,
actually.

Also remove private member dim_ which is not used and remove some trailing whitespace.

Fixes bugs #9085 abd #9957.
2016-02-09 09:54:14 +01:00
Jean-Marc Lasgouttes
a3b19c60a7 Do not record undo in the tabularFeatures helper
Since the low-level version of tabular features is only called by the high-level one, it does not make sense to record undo there. It is much better to do it once in the high-level handler, rather than 37 times (yes!) at lower level when the tabular GUI calls tabular-feature with all the settings at once.

With large tables, this avoids to keep 37 copies of the table in Undo stack.

As an added bonus, this fixes bug #9960.
2016-02-09 09:18:56 +01:00
Uwe Stöhr
28e6174be7 InsetBox.cpp: fix bug #8712 2016-02-05 00:49:17 +01:00
Jean-Marc Lasgouttes
31471496fd Allow breaking a row element at a leading/trailing space
When an inset is separated from the adjacent string by a space, it is
reasonable to be able to break the string after the space.
Unfortunately, QTextLayout does not do that.

This patch reverts the workaround inserted in 71378268 and replaces it
with a different trick: the string is enlosed between a pair of
zero-width non breaking space characters, so that the leading/trailing
spaces are now normal spaces, where QTextLayout will agree to break
the string.

    Fixes bug #9921 for good.
2016-02-04 08:45:27 +01:00
Jean-Marc Lasgouttes
169cf7c24d When selecting whole row, reset properly the pit()
Since different cells in a row can have different number of paragraph, take care of setting cur.pit() when selecting a row/column.

Fixes bug #9955
2016-02-03 09:48:29 +01:00
Guillaume Munch
bcfa3547be minor cleanup 2016-01-31 16:02:18 +00:00
Georg Baum
de3e5280f6 Open tex2lyx input files with correct encoding
We open the input file now twice: The first time in latin1 encoding to read
the document encoding from the preamble. This does always work, since
traditional TeX does not allow non-ASCII contents without an encoding changing
command (except for comments, but we do not need them, and using latin1 rather
than utf8 ensures that they do not produce an iconv exception, but are simply
recored with wrong characters), and we do detect the utf8 based TeX engines
XeTeX and LuaTeX as well. The second time we open the file directly with the
document encoding.

This fixes a few tex2lyx tests on OS X, since changing the encoding of an
open file steam does not work with clang on OS X. Files using more than one
encoding are still broken, but all single-encoding files are fixed now.
2016-01-31 12:54:59 +01:00
Georg Baum
92d0835e14 Avoid encoding changes of open streams if possible
Changing the codecvt_facet of a file stream after the file has been opened
does not work with clang on OS X. Therefore we avoid it if possible (i. e. the
new encoding is the same as the old one).
2016-01-31 12:49:17 +01:00
Georg Baum
250b058192 Do not use static objects in Preamble
This does not make any difference currently, since the only instance of the
Preamble class is a global one, but it is cleaner and will be needed for
parsing the encoding with a second Preamble instance.
2016-01-31 12:37:22 +01:00
Uwe Stöhr
4dce8d4da4 tex2lyx testfiles: update fileformat 2016-01-30 02:17:45 +01:00
Georg Baum
5727cb2d43 Use consistent iconv encoding names
We should stick to the names used in lib/encodings. iconv has many aliases,
but fi we ever compare names it is better to use only one variant.
2016-01-29 20:38:40 +01:00
Jean-Marc Lasgouttes
8d091cfe78 Avoid making tabular too large when using a caption in longtable mode
This is a fixup to commit cdb9f043, which fixed bug #9757.

It is necessary to make a special case for inserting an InsetCaption
in a tabular cell, because this commonly happens in longtable mode.

Fixes bug #9945.
2016-01-29 10:05:48 +01:00
Enrico Forestieri
9edbeef7b7 Make sure the cursor is in texted 2016-01-28 14:13:17 +01:00
Guillaume Munch
2c08848700 Let tabular-feature commands fall through non-table math insets. (#4189) 2016-01-27 18:36:07 +01:00
Guillaume Munch
f58638c704 New LFUN tabular-feature: convert "inset-modify tabular" in LyX files
* Increase LyX format

* New function convert_info_insets in lyx2lyx_tools.py
  Use this function in the future for future updates of info insets

* Convert "inset-modify tabular" to "tabular-feature" in info insets

* Remove icon naming hack regarding "inset-modify tabular"
2016-01-27 18:33:09 +01:00
Guillaume Munch
366b319e42 New LFUN tabular-feature: update prefs2prefs.py 2016-01-27 18:20:53 +01:00
Guillaume Munch
c9f7ce0a7a New LFUN tabular-feature (#9794)
The tabular-features LFUN was merged with "inset-modify tabular" when
simplifying the tabular dialog at b5049e7. This choice later indirectly caused a
few regressions (#7308, #9794).

I reintroduce tabular-feature to allow more flexibility for user
commands, whereas "inset-modify tabular" is now reserved for the tabular
dialog. In particular, inset-modify tabular is no longer caught by math grid
insets. The name tabular-feature is kept to avoid renaming icons.

Known issues:

* After successfully applying a tabular command, the cursor is truncated to the
  table.

* Note that the tabular dialog still has similar issues that are inherited from
  the achitecture of the dialog menu. For instance the pref change can be
  mis-dispatched to an inset inside a cell and cause an error, for instance:

    Lexer.cpp (934): Missing 'Note'-tag in InsetNote::string2params. Got
    tabular instead. Line: 0

  Maybe the inset-modify LFUN should be modified to treat commands coming from
  the wrong dialog (by checking the type) as unknown and undispatched so that
  the parent can get it. In that case a non AtPoint variant of inset-modify
  could be reintroduced in order to generalise tabular-feature. See:
  http://mid.gmane.org/n4rdk1$efj$1@ger.gmane.org
2016-01-27 18:20:37 +01:00
Uwe Stöhr
c1e0b24304 acmsiggraph.layout: update layout for ACM siggraph 0.92
fileformat change: update fileformat for all files
2016-01-27 01:58:13 +01:00
Georg Baum
8171272d1f Fix file locking problem on windows (bug 9925)
External processes cannot access files which are open in LyX. Therefore the
temp files created by the external inset need to be closed right after
creation. The symptom was that the date inset did not produce any outout on
windows (bug 9925). This change reverts a small part of f09a9fe2.
Although the date inset is unimportant and will probably be removed, this
change is important for all external insets that make use of temp files.
2016-01-26 21:49:08 +01:00
Georg Baum
4ab1d77577 Fix regression of 0bf8b8a1 (bug 9884)
Unfortunately the footmisc package does not work together with hyperref:
Before 0bf8b8a1, a footnote in a section title was created as a link in pdf
outpout, after 0bf8b8a1 ist was no link anymore. For now we revert to the old
code, and wait until the footmisc and hyperref packages are made compatible.
2016-01-26 21:33:46 +01:00
Uwe Stöhr
854ec56419 PrefOutputUi.ui: the official program name is "dvips"
(We used this also in LyX 2.1.x so there is no need to rename it to DVI-PS.)
2016-01-25 02:06:10 +01:00
Scott Kostyshak
58730c73d4 Ammend 20addbbf
These two signals were not QProcess::error().
2016-01-24 13:05:51 -05:00
Scott Kostyshak
20addbbf36 Qt 5.6 renames signal QProcesss::error()
QProcesss::error() was renamed to QProcesss::errorOccurred().

The renaming was done to avoid confusion from overloading (see the
documentation for the signal before the renaming [1]).

For more details, see this Qt bug report [2].

[1] http://doc.qt.io/qt-5/qprocess.html#error-1
[2] https://codereview.qt-project.org/#/c/114451/
2016-01-24 12:07:52 -05:00
Georg Baum
dc8c4f3eab Fix date inset except on windows (bug 9925)
The important thing is actually not the date inset, but the converter
machinery, which did convert the time stamps of two unused freshly created
temp files, which does not make sense, and did work before f09a9fe2 only by
accident.
This fixes the date inset on linuy, but not on windows, probably due to
different file locking semantics.
2016-01-24 17:11:31 +01:00
Stephan Witt
3d00aef3ac use QStandardPaths::GenericDataLocation instead of QStandardPaths::DataLocation to get common user_support_dir path for all LyX binaries (LyX, tex2lyx and lyxclient) 2016-01-24 15:19:54 +01:00
Enrico Forestieri
80e2c85474 Change the shape of the parbreak separator
As per request, this makes it better distinguishable from the
neline inset. For posterity, see this thread:
http://thread.gmane.org/gmane.editors.lyx.devel/159267
2016-01-24 12:49:02 +01:00
Stephan Witt
1440ae2e13 pass values for @executable_path and @loader_path to instruct the dyld where to find the Qt frameworks 2016-01-23 07:16:09 +01:00
Uwe Stöhr
2f98d3902c ViewSourceUi.ui: fix bug #4430 2016-01-21 23:01:10 +01:00
Jean-Marc Lasgouttes
76eebf5707 typo 2016-01-20 17:40:47 +01:00
Jean-Marc Lasgouttes
82b6dc8aa9 Update all paragraphs layouts when undoing bufferparams
When undo restores a previous BufferParams instance, it should also
update all the layout pointers in the document's paragraphs.

Fixes #9916.
2016-01-20 15:20:51 +01:00
Uwe Stöhr
bcbeeebe63 ViewSourceUi.ui: correct wrong property number
Just save the file with Qt Designer of Qt 4.8 or Qt 5.5 version and this change will be made by designer automatically
2016-01-20 01:33:42 +01:00
Enrico Forestieri
8998b88370 Make sure cursor is in texted after clicking
Fixes #9936.
2016-01-20 01:18:42 +01:00
Uwe Stöhr
764a2163bb Revert "Revert "Fix the display of column spacing in AMS environments""
This reverts commit f1a388584f.

# Conflicts:
#	src/mathed/InsetMathGrid.cpp
#	src/mathed/InsetMathSplit.cpp
2016-01-19 23:20:53 +01:00
Uwe Stöhr
641a1cc1a2 Revert "Fix the display of column spacing in AMS environments"
This reverts commit 1676b69cf7.
2016-01-19 23:01:44 +01:00
Guillaume Munch
1676b69cf7 Fix the display of column spacing in AMS environments
AMS align environment should have some spacing between odd and even columns.

Add a new virtual method displayColSpace() to InsetMathGrid, InsetMathHull and
InsetMathSplit.
2016-01-19 22:45:04 +01:00
Uwe Stöhr
360992cb9f Revert "Fix the display of column spacing in AMS environments"
This reverts commit bb5470b5d1.

I have no clue what is with my GIT. I apologize. Can anybody please check if it is now OK again?
2016-01-19 22:40:38 +01:00
Uwe Stöhr
f1a388584f Revert "Fix the display of column spacing in AMS environments"
I have no clue why this was automatically committed, I just applied the path, nothing more.

This reverts commit bb5470b5d1.

# Conflicts:
#	src/mathed/InsetMathGrid.cpp
#	src/mathed/InsetMathSplit.cpp
2016-01-19 22:35:24 +01:00
Uwe Stöhr
c7ad447f98 InsetMath: normalize the line endings of 2 files 2016-01-19 22:30:36 +01:00
Guillaume Munch
bb5470b5d1 Fix the display of column spacing in AMS environments
AMS align environment should have some spacing between odd and even columns.

Add a new virtual method displayColSpace() to InsetMathGrid, InsetMathHull and
InsetMathSplit.
2016-01-19 22:22:23 +01:00
Guillaume Munch
0b733507da Display the correct horizontal alignment in AMS environments
A longstanding problem... (related: #1861)

The columns in AMS math environments have a fixed alignment (colAlign() in
InsetMathGrid.cpp). We set this alignment for display (Georg's
displayColAlign()) in InsetMathHull and InsetMathSplit. This is done according
to tests and documentation for the various environments.

There is also some mechanical code factoring via colAlign().

Finally, I disable setting the horizontal alignment in InsetMathSplit, which has
no impact on the LaTeX output, and has no longer any impact on the screen. (As
for vertical alignment I discovered that it was in fact customisable for
\aligned & friends! I hope that the more faithful interface will let other
users discover that too.)
2016-01-19 22:22:22 +01:00
Jean-Marc Lasgouttes
7137826896 Allow breaking a row element at a leading space
When an inset is separated from the next strng by a space, it is reasonable to be able to break the string after its leading space.

Fixes bug #9921
2016-01-19 09:55:31 +01:00
Pavel Sanda
555b08c325 Comment only. 2016-01-18 14:29:37 -08:00
Stephan Witt
faef2f93dd fix GIT - version control for LyX documents not detected 2016-01-17 08:03:57 +01:00
Enrico Forestieri
5c891242f3 Don't merge next paragraph when removing a separator inset 2016-01-16 16:44:26 +01:00
Enrico Forestieri
55b3374f3e Always place the cursor before a separator inset when clicking 2016-01-16 16:41:04 +01:00
Enrico Forestieri
1c3b6807db Insert a plain separator instead of a parbreak one.
When hitting Enter after a non-standard layout a plain separator is
now inserted. This seems to be preferred and more in line with what
is obtained with the "Alt+M P" shortcut.
2016-01-14 20:57:52 +01:00
Enrico Forestieri
a8ab3379d9 Insert a separator only when the paragraph is empty. 2016-01-13 22:49:33 +01:00
Guillaume Munch
467bc27aea Update tex2lyx tests
Just add \save_transient_properties as expected.
2016-01-12 21:25:34 +00:00
Guillaume Munch
5c2d049996 Add \save_transient_properties parameter (#9841)
Increment LyX format to 504.

With this new parameter, the user can indicate that some other parameters that
are frequently switched must not be recorded in the file (as if they were a
setting specific to the user or transient, rather than a document setting). This
will play nicer with version control systems.

See the discussion, e.g.:
http://thread.gmane.org/gmane.editors.lyx.devel/157824/focus=157993 (third
solution mentioned)

TODO:
* The interface remains to be set up. We cannot change this setting from LyX
  for now.
* If save_transient_properties is false, we should read the user setting as a
  per-user-per-document (session) setting (e.g. like the cursor position).
* Once the above is done, we can treat \justification the same way (but it would
  be even better if \justification was moved to lyxrc).
2016-01-12 21:25:34 +00:00
Guillaume Munch
f475795b92 Revert "Work around bug #9841"
This reverts commit dc016de34e.

See discussion at http://mid.gmane.org/n53ar8$1tj$1@ger.gmane.org
2016-01-12 21:25:34 +00:00
Guillaume Munch
b529a2ffe5 Amend fd4d23b4
http://mid.gmane.org/3790287.D9aVANvQPJ@linux-22mz
2016-01-12 21:25:34 +00:00
Jean-Marc Lasgouttes
626f8d4448 Fix compilation error with clang's libc++
The bug is probably fixed for clang 3.7.1 or 3.8.0
2016-01-11 11:18:20 +01:00
Enrico Forestieri
71ff50b753 Make sure the origin tag is properly terminated. 2016-01-10 23:17:59 +01:00
Georg Baum
d80fa17175 Do not apply \origin at existing files
The current behaviour of the \origin parameter replaces relative file names
with the absolute original names if a document has been moved even if the
files have been moved as well. This behaviour is annoying e.g. for editing the
LyX docs in a git checkout.

Now file names are only replaced if the referenced file sdo not exist.
2016-01-10 19:46:01 +01:00
Stephan Witt
7e72c1d0d3 Call lyx::next and lyx::prev explicitely. In case libc++ provides
std::next even when not in C++11 mode this is necessary. E.g. with
clang from Xcode7 on Mac OS X.
2016-01-10 18:06:15 +01:00
Stephan Witt
34cbec9074 remove unused minizip include; avoid putting zlib include dir before others, this causes use of external boost headers if they are at the same location 2016-01-10 18:06:15 +01:00
Enrico Forestieri
bbb5a1a28f Always place the cursor before a separator inset when moving up or down. 2016-01-10 00:08:10 +01:00
Enrico Forestieri
c8aaaff15a Avoid inserting multiple consecutive parbreak separators. 2016-01-10 00:05:24 +01:00
Günter Milde
3a70340a95 Use polyglossia also with DVI (LuaTeX).
Simplify the logic for language package selection and make it more consistent:

Use polyglossia with non-TeX fonts (system fonts/Unicode fonts) for all
export flavours (XeTeX, LuaTeX, DVI-LuaTeX), if the language package setting
is "auto" and there is no language not supported by Babel and no package
providing Babel.

This solves some Babel-related autotest cases and leads to some new failures
due to the polyglossia language nesting problem.
2016-01-08 22:52:28 +01:00
Georg Baum
f35ed0c168 Improve \AA and \aa tex2lyx import
The lib/unicodesymbols part is based on work by Günter Milde:

Both, \r{A} and \AA (rsp. \r{a} and \aa) are equivalent standard LICR macros
for Aring/aring  as well as the deprecated "angstrom sign" character (212B).

However, with \AA for 212B and \r{A} for 00C5, tex2lyx converts \AA to the
deprecated "angstrom sign" which is missing in many fonts including the
Unicode version of Latin Modern.

I added the normalize_c() calls so that tex2lyx prefers the precomposed forms
(these are better editable in LyX) and the deprecated flag.
2016-01-08 21:06:24 +01:00
Georg Baum
ac1cd1ad9a Add symbol tests for A WITH RING ABOVE
The conversion is not completely correct yet, but adding the test before the
fix has the advantage that the fix can easily be documented by changing the
test reference.
2016-01-06 22:34:12 +01:00
Peter Kümmel
936ec66124 fix merged build 2016-01-06 13:07:59 +01:00
Richard Heck
0407364392 Fix bug #9907: We get a crash if we first close a master buffer one of
whose children is also a child of another buffer, then try to close that
one.

The problem is that we do not check properly to make sure that the child
is not a child of some other buffer. Now we do.
2016-01-05 09:59:31 -05:00
Richard Heck
e8ffb0c97a Rewrite the BufferList::releaseChild method so that it only checks
whether a given child Buffer is also a child of some other parent.
Then do the releasing or resetting where this method is called.

There should be no change of behavior with this patch.
2016-01-05 09:59:31 -05:00
Jean-Marc Lasgouttes
01fc62b78e When moving cursor, always reset anchor
This applies to BufferView::moveToPosition, which is used for bookmarks and initial cursor position (on loading).

Fixes bug #9912.
2016-01-05 15:05:27 +01:00
Jean-Marc Lasgouttes
d3c0044617 Fix entering inset in visual cursor mode
Improve the test whether cursor has moved in Cursor::posVisLeft. The code for posVisRight had already been fixed for #5764 at 0730c923, but this replaces both tests by the proper == operator.

Fixes bug #9913.
2016-01-05 15:03:30 +01:00
Guillaume Munch
18918f1c1b Amend bb344452 2016-01-04 03:43:08 +00:00
Scott Kostyshak
752c67ada9 Do not initialize a var to a val that's never used
By initializing 'to' to a value, the code made it seem like that
value mattered. But the value is overwritten in getWord().

Further, now if 'to' is used before it is initialized, there might
be a useful compiler warning that could point to a bug.
2016-01-03 11:57:19 -05:00
Stephan Witt
f1a21f8250 #9889 slightly improved layout management to avoid too small popup window for advanced F&R 2015-12-28 10:36:25 +01:00
Jean-Marc Lasgouttes
30cf941cb3 Avoid swapping a cell with itself
Gcc STL debugging feature asserts when swapping an object with itself. This happens in some cases with math grids that have only one column.

A quick review of other uses of swap() in the code base did not reveal any other dubious case.

Fixes bug #9902.
2015-12-26 13:59:25 +01:00
Peter Kümmel
e1c893127f boost dir is used for out-of-source build detection 2015-12-20 14:00:04 +01:00
Peter Kümmel
3c3141dc23 3rdparty/boost: build with cmake 2015-12-20 13:41:00 +01:00
Guillaume Munch
fd4d23b448 Amend f441590c
Remove runtime warning "QMetaObject::connectSlotsByName: No matching signal for
on_copyPB_clicked()".
2015-12-19 23:54:42 +00:00
Georg Baum
5e3165e9cc Improve directory name juggling
The old code did not ensure that the path was only broken into parts at
directory separators. The new code ensures it.
2015-12-19 16:49:52 +01:00
Guillaume Munch
54a28ca2dc Hide OptSubmenus (#9717) (for real this time)
Amend 6cc69343 and d449e7e6. See the latter for the rationale behind this
change.
2015-12-17 23:48:47 +00:00
Guillaume Munch
6cc6934378 Hide OptSubmenus (#9717)
At d449e7e6 it has been decided that submenus are going to be displayed even if
all their items are disabled. Here we make an exception for OptSubmenus.

Example of submenu no longer shown: Insert > Insert Regexp
Example of submenu always shown: Edit > Math > Limit Type, Macro Definition
2015-12-17 21:54:41 +00:00
Guillaume Munch
dc016de34e Work around bug #9841
\output_changes is now output at a distance from \tracking_changes.

Since both parameters can be seen as per-user preferences, they can cause
undesirable merge conflicts, in a multi-author setting, were it treated as a
single block by the version control system, as was the case before this patch.
2015-12-17 20:40:54 +00:00
Guillaume Munch
2dfb5f80ce Limit the size of navigation menus for performance.
After d5a5fbb8, as indicated in the commit log, it remained to make sure that
the sub-menus of the navigation menu showing the TOCs are generated in a delayed
fashion, to avoid corner cases regarding performance when documents have very
lengthy tocs (e.g. in a document with 1000 sections it takes a few hundreds
milliseconds for the menu to be refreshed). But this idea actually requires
substantial changes to the way menus are computed, so it is not for now.

In the meanwhile, I reintroduce a max size for menus, after which it is cut
off. This differs from the one that I removed at d5a5fbb8 in two ways: 1) if
there are more items than the max size, then we still show something instead of
nothing, 2) we allow ourselves to rely on qt's scrollable menus and therefore
allow bigger menus than before the above commit. The philosophy is that it is
better to show something than nothing, that it's better to show a scrollable
menu than to cut the menu to fit the screen, and that beyond a certain size the
scrollable menu becomes useless anyways.
2015-12-17 20:38:04 +00:00
Jean-Marc Lasgouttes
91b385166d Do not use a static variable as QTextLayout cache
It is a bad idea to have a QObject variable that oulives the main QApplication object. See for example:
https://www.ics.com/designpatterns/book/globals.html

Here the QTextLayout object was static to the anonymous namespace getTextLayout function, and got destroyed after the freetype renderer had been disposed of by QApplication.

This causes segmentation faults when quitting LyX on some systems.

This patch moves the cache together with other GuiFontMetrics caches. It means that one will have one such QTextLayout per font type, but this will not change much.
2015-12-16 10:34:43 +01:00
Peter Kümmel
3bd2cfecf0 move 3rdparty dir out of src/ 2015-12-15 13:20:13 +01:00
Peter Kümmel
6cc83c5072 bundled iconv uses const 2015-12-15 13:20:11 +01:00
Peter Kümmel
584c3a6f7b build with msvc2013 2015-12-15 13:20:10 +01:00
Peter Kümmel
b46ea7fac0 integrate 3rdparty libs 2015-12-15 13:20:10 +01:00
Peter Kümmel
31b5da479d build zlib with cmake 2015-12-15 13:20:09 +01:00
Peter Kümmel
a34b5376c2 add stripped down zlib 1.2.8 2015-12-15 13:20:08 +01:00
Peter Kümmel
72540e8b87 build libiconv with cmake 2015-12-15 13:20:08 +01:00
Peter Kümmel
69be7ebfa2 add stripped down libiconv 1.4 2015-12-15 13:20:08 +01:00
Peter Kümmel
34c822cf65 build hunspell with cmake 2015-12-15 13:20:07 +01:00
Peter Kümmel
37b951c77a add stripped down hunspell 1.3.3 2015-12-15 13:20:06 +01:00
Stephan Witt
4fd4c31bb6 #9875 disable the modifier check for LFUN_SELF_INSERT on Mac 2015-12-15 01:24:31 +01:00
Stephan Witt
6bac894042 #9875 add checks for having a current_view_ before using it 2015-12-15 01:14:53 +01:00
Guillaume Munch
3c9b62a69d Layout format update: AddToToc, IsTocCaption, OutlinerName
Preliminary work for addressing #7790. Thanks to Richard for providing initial
files this is based on.

Adding to TextClass:
    OutlinerName <string> <string>
    (the second string is translated)
e.g.:
    OutlinerName thm "Definitions & Theorems"

Adding to Layout:
    AddToToc <string>     (default "", means no)
    IsTocCaption <bool>   (default 0)
e.g.:
    AddToToc thm
    IsTocCaption 1

Adding to InsetLayout:
    AddToToc <string>     (default "", means no)
    IsTocCaption <bool>   (default 0)
e.g.:
    AddToToc literate

Adding to inset arguments:
    IsTocCaption <bool>   (default 0)
2015-12-13 19:56:49 +00:00
Kornel Benko
f7a8c5b4eb \origin handling. Use realPath() intead of absFileName()
This change avoids misinterpreting paths containing symbolic parts.
Without this, lyx may not find its own sysdir.
2015-12-13 12:25:32 +01:00
Richard Heck
947aaf7a57 There does not appear to be any need to update the entire Buffer
after each entry into mathed. Instead, we just update the TOC for
anything the mathed happens to be inside.
2015-12-12 17:19:33 -05:00
Richard Heck
cf64064db7 Use the much faster forOutliner also to get the tooltip text. 2015-12-12 17:19:33 -05:00
Richard Heck
a5ea77410e Do not try even to hide buffers that are being processed by LyX.
Should fix #9711.
2015-12-12 13:00:20 -05:00
Richard Heck
394fc5cf15 Simplify logic. 2015-12-12 13:00:20 -05:00
Guillaume Munch
87861bc6d5 Use AMS align instead of eqnarray on newline-insert by default (#2543) 2015-12-11 19:28:32 +00:00
Jean-Marc Lasgouttes
9c43747cc9 Make text margin size dependent on zoom and dpi
The default hardcoded value of 10 corresponds to 2.5mm at 100dpi, but does not make much sense on a HiDpi screen.
2015-12-11 12:26:07 +01:00
Enrico Forestieri
b6880470b3 Fix bug #9898: inset info cannot show specified icon 2015-12-11 08:51:37 +01:00
Georg Baum
92573c9ddc Fix crash in info inset dialog apply (bug 9896)
posBackward() is the exact inverse of posForward(), not backwardPos().
2015-12-10 20:21:20 +01:00
Uwe Stöhr
219b5645c2 Inset files: add includes to compile with cxx11
see the list thread "Re: use FindCXX11Compiler.cmake also for MSVC"
2015-12-10 01:15:16 +01:00
Jean-Marc Lasgouttes
7dbd63e2b9 When counting hfills, make sure that they are active
The active/inactive status of hfills was not checked in numberOfHFills.

The code is reorganized a bit, but the important part is the change in the above function.

Part of bug #9870.
2015-12-09 17:16:00 +01:00
Peter Kümmel
8028110578 qtmain also needed for Qt5 on Windows 2015-12-09 16:45:15 +01:00
Jean-Marc Lasgouttes
f3cdf74e68 Remember the last used QTextLayout object
This crude caching mecanism is useful in the particular case of a screen with many misspelling dotted lines. In this case, it is necessary to build a QTextLayout in order to know where to put the start/end of the spell line. Since rows typically contains text snippets longer than a word, we may be in a situation where the same QTextLayout is constructed repeatedly.

This commit is useful in this particular use case, and should not be costly in other cases. A better fix would be to remember the QTextLayout associated to each row element. This is a bit more work, so this fix should be sufficient for now.

Additionally, do not paint misspelled marks when painting is disabled.

Fixes bug #9890.
2015-12-09 11:57:52 +01:00
Enrico Forestieri
db363ab19f Remove unneeded png images.
Fixes #9857.
2015-12-07 19:14:44 +01:00
Jean-Marc Lasgouttes
79bb97b1ba Detect properly when cursor position cannot be computed
Replace old ad-hoc test by a better one that inspects the coordcache to see whether all the insets in the cursor are known.

Fixes bug #9881.
2015-12-07 13:25:10 +01:00
Scott Kostyshak
acadb4d608 Fix a debug comment 2015-12-07 02:02:04 -05:00
Scott Kostyshak
6631e736bd Revert "InsetFootlike.cpp: disable listings inside footnotes"
Although af8ba5e0 fixed #9321, it broke a valid use case that was
reported by a user at #9785. Hopefully we can come up with a better
fix for #9321.

This reverts commit af8ba5e069.
2015-12-07 01:52:11 -05:00
Richard Heck
4d94460ce3 Add new ProvideStyle tag, which adds a new style only if it does not already
exist. This will allow for a proper fix for bug #8796, though that may or may
not get fixed before 2.2.0.

Also, change the InStyle tag to ModifyStyle, per a suggestion of Jurgen's.
2015-12-05 18:11:46 -05:00
Guillaume Munch
400703aff1 Convert remaining C++ files to UTF-8 2015-12-05 19:33:24 +00:00
Guillaume Munch
d9524321d7 Simplify Unicode symbols for old systems
(http://mid.gmane.org/565E17DD.7090008@clear.net.nz)

Fix the pilcrow and the cross in the outliner for Windows and old Ubuntus.

The thin space after the cross is based on aesthetics (in Ubuntu at least) after
trying both with and without a normal space. A thin space is already used for
display in BiblioInfo.cpp, so I presume it is safe.

Ideally, I prefer  (CROSS MARK), whose description fits the purpose, over ✖
(HEAVY MULTIPLICATION X), which looks too bold in the UI. Whereas ✕
(MULTIPLICATION X, successfully tested in Windows by Andrew) looks too dim. But
 (CROSS MARK) is next to  (NEGATIVE SQUARED CROSS MARK) so it might be as
problematic as the latter.

Do not output the cross on the author name in the toc of tracked changes.
2015-12-04 17:29:39 +00:00
Jean-Marc Lasgouttes
1546b91f27 Make spellchecker dotted underlines thicker. 2015-12-02 21:49:54 +01:00
Jean-Marc Lasgouttes
39e33d5138 Fix width of row when there are active hfills
It is important to make sure in computeRowMetrics that the row width
is correct at the end, because we rely on it in several places.

Fixes bug #9870.
2015-12-01 09:14:22 +01:00
Scott Kostyshak
d887b2a5dc Update previews when turned on in prefs (#9507)
Previews are now generated when previews are turned on in
preferences. This change ensures that when users activate previews
for the first time, they are not confused by no previews showing up
(a restart of LyX or a triggering of each individual preview would
be required).

There was a previously attempted fix for #9507 at 390ae054 which was
reverted at 358745d0 for performance reasons: it updated previews
after every preference change and updating previews is costly (even
if the cache signals there are no changes needed).

This implementation is consistent with what we do for updating the
system fonts in preferences.
2015-11-30 18:51:05 -05:00
Richard Heck
a8f57334e2 Fix bug #9096: Load all the files specified on the command line, and then dispatch whatever commands we are given to those Buffers.
Original patch due to Benjamin Piwowarski. Updated for 2.2 by Richard Heck.
2015-11-29 11:25:21 -05:00
Richard Heck
c01a533acc Whitespace. 2015-11-29 11:25:08 -05:00
Georg Baum
5c35ebcd24 Simplify logic
The old code was more complicated than needed, we have unstarred_name to make
our live easier. The test proves that the new code works as before.
2015-11-27 20:35:13 +01:00
Georg Baum
8ac43f2e04 Add tex2lyx test for verbatim* 2015-11-27 20:30:41 +01:00
Richard Heck
f791b2d3ea Remove "dialog-show print" from various UI locations. 2015-11-26 23:21:07 -05:00
Richard Heck
b4abecd99b Remove some gui remnants of print support. 2015-11-26 23:21:07 -05:00
Uwe Stöhr
bfc749eb23 stdlayouts.inc: support for verbatim*
fileformat change
2015-11-24 23:56:26 +01:00
Georg Baum
e8211fb931 Fix C++11 std::regex incompatibility
boost::regex supports escape sequences starting with a backslash in format
strings of regex_replace, but std::regex does not. Therefore format strings
involving literal backslashes have to be written differently for both flavours.

The special MSVC handling in regex.h is removed, since it is not needed
anymore, and using grep syntax would definitely be wrong.
2015-11-24 20:31:14 +01:00
Jean-Marc Lasgouttes
1f0305509b Fix length of hfills
The computation of the legth of expanded hfills did not take into account their unexpanded size. This is done now by increasing the dimension (+=) instead of merely setting it.

Moreover, since the insets sizes are integer number, rounding effects have to be taken in account. To this end, the extra number of pixels is added to the last hfill in the row.

This fixes part of bug #9860.

Note not everything is fixed by this patch: the logic of ParagraphMetrics::hfillExpansion seems bogus to me. I do not see why consecutive hfills at the beginning of a row should not be all expanded. Since I do not know what are the peculiarities of hfill handling in LaTeX, I did not change it (yet).

I did not either try to investigate the label hfill part, because I do not even know what is so special about it. I think there is a lot of old logic that nobody ever tried to question.
2015-11-24 10:11:17 +01:00
Scott Kostyshak
82ef95043d Add comment 2015-11-23 22:14:14 -05:00
Jean-Marc Lasgouttes
d8719ade59 Implement on screen rendering of alignment in LR boxes.
This is done by implementing contentAlignment() for this inset.

In order to display properly 'stretch' alignment, the code for TextMetrics::getAlign is rewritten to include some code that was in computeRowMetrics.
2015-11-23 11:40:36 +01:00
Kornel Benko
af5ec069c7 Removed doubled code in CMakeLists.txt 2015-11-22 19:20:32 +01:00
Georg Baum
dfe3a7d9fc Fix InsetListings::getCaption() for std::regex
Back references in the format string of regex_replace use the syntax $n both
in std::regex and in boost::regex for the default format. Boost seems to
support the syntax \n in addition, but it is not documented at
http://www.boost.org/doc/libs/master/libs/regex/doc/html/boost_regex/format.html.
Therefore it is a good idea to use $n also for boost.
2015-11-22 17:43:10 +01:00
Georg Baum
3b842d5a62 Add unit test for InsetListings::getCaption()
The regex in InsetListings::getCaption() does not work with C++11 and
std::regex. This can now be checked easily by this new unit test.
2015-11-22 17:36:32 +01:00
Georg Baum
08317ecc0b Fix some thinkos in MSVC regex hack
The changed code is not used, but I tried to use a similar approach for
boost::regex, and found some problems:
- regex_replace and regex_search are implemented in the replacement, so they
  must not be used directly
- an smatch object must be given by reference (as in the called methods),
  otherwise an exception would be thrown at runtime
- the commented out regex_replace version is actually needed

This code is supposed to be deleted, but nevertheless I wanted to record here
how it had to be modified if it was actually needed.
2015-11-22 13:02:39 +01:00
Günter Milde
faadac9f4a Remove wrong FIXME.
Code at this place calls "switchEncoding" which takes care of not-switching
if there is only one inputenc used in the document.
2015-11-21 23:08:54 +01:00
Jean-Marc Lasgouttes
46ca4e9aa6 Improve debug message 2015-11-20 22:43:45 +01:00
Stephan Witt
dd6b5cc67c improved data types for prefix length and pointer diff 2015-11-20 20:48:56 +01:00
Scott Kostyshak
1bd56c8730 Clear the error list before second LaTeX run
It was possible for errors that occured in the first run to be shown
in the error list after the second run. Now, the errors are cleared
before the second run.

Although I do not have a reproducible example at hand, I imagine
this situation would occur if a rerun is required and there is still
an error after the rerun.

Related to #9765.
2015-11-20 13:47:11 -05:00
Scott Kostyshak
0a91abbc9f Update exit code on second LaTeX run (#9765)
Before, the exit code for the first LaTeX run was used to set the
flag, which caused an error to be reported when in fact there was no
error on the second run.

This fix ammends 1dbf0e5a.
2015-11-20 13:40:37 -05:00
Scott Kostyshak
6f207b37ed Add comment 2015-11-20 13:40:37 -05:00
Jean-Marc Lasgouttes
2811f76039 tex2lyx: Add a newline at the end of comment if not at the end of a paragraph.
When importing TeX code like
  %comment
  TEXT
the LyX document currently becomes
  [ERT %comment] TEXT
so that TEXT is now part of the comment.

Now output_comment adds a trailing newline if the token after the
comment is not a newline. Note that the newline that marks the end of
the comment has already been parsed at this point.

tex2lyx tests have been checked manually and updated.

Fixes ticket #9551.
2015-11-20 15:07:21 +01:00
Juergen Spitzmueller
d0aa1d250c Disable Apply button in InsetParams dialogs if there is no inset to apply to.
Fixes: #9386
2015-11-19 15:48:49 +01:00
Kornel Benko
492d44a284 Correct tex2lyx/roundtrip/test-structure.tex test. 2015-11-18 18:35:54 +01:00
Guillaume Munch
355f9a0efc Remove trailing space at the end of \author
Checked that the change is compatible with lyx2lyx (relevant lines are in
lyx_2_0.py).
2015-11-18 02:50:25 +00:00
Guillaume Munch
86bd1cd641 Fix bug #9854 "Dataloss after git merge with change tracking"
A plausible scenario is that change tracking is used together with a versioning
system. In this case, parallel modifications might remove an \author line on one
side, and add another change of this author on the other side. This scenario
causes a bad merge after which the added change has no associated author. In
this case, LyX used to display a list of errors on opening and deliberately
removed the corresponding change tracking information.

* If ever a tracked change refers to an author that does not exist, then add a
  dummy author. This dummy author is not saved to the file afterwards.

* Have a very clear error message on opening such a corrupt file.
2015-11-18 02:50:25 +00:00
Guillaume Munch
dbce5cafcc Rewrite regexes in ECMAScript style (bug #9799) 2015-11-18 01:52:50 +00:00
Uwe Stöhr
cc6c86ff3b theorems.inc: add environment "solution"
fileformat change, fixes bug #6363
2015-11-18 01:14:30 +01:00
Kornel Benko
c9f6ed309f Cmake monolithic build: Some corrections.
In the src/support directory do not use src/support/AppleScriptProxy.cpp if not APPLE.
In the src/client directory remove inclusion of src/TexRow.cpp
2015-11-17 21:21:00 +01:00
Juergen Spitzmueller
dd6340cfcc Do not switch listings to singlebyte encoding with pLateX/Japanese
Also improve Listings warning about uncodable characters
if the encoding has been switched by LyX.

Fixes: #8439
2015-11-17 10:30:03 +01:00
Jean-Marc Lasgouttes
b26b90ae0e Use a QCache for string metrics
This is better because it implements a LRU cache. Indeed, while editing in particular, width of many different strings has to be computed. This is different from the previous situation where only width of single characters was computed and cached.
2015-11-17 09:38:16 +01:00
Jean-Marc Lasgouttes
735c10d039 Update documentation for tabular features 2015-11-17 09:26:29 +01:00
Jean-Marc Lasgouttes
68217b1e4a Implement toggling for longtabular and booktabs tabular features
This is needed for the tabular context menu. This menu is updated accordingly.
2015-11-17 09:18:50 +01:00
Jean-Marc Lasgouttes
0f5886b856 Disable LFUN_LAYOUT when layout cannot be found
Fixes bug #8077
2015-11-17 08:48:55 +01:00
Georg Baum
0c97d6edc0 Fix wrong forward declaration
This popped up in cmake monolithic build once. It looks like BufferView is
included indirectly by some of the other headers (otherwise we would have seen
compile errors for other build configurations as well), bu I'll keep the
forward declaration since we don't want to depend on this indirect header
inclusion.
2015-11-16 21:51:30 +01:00
Georg Baum
1900eb2834 Fix a cmake monolithic build error
N_() is a preprocessor macro to mark translatable static strings. It is not a
good idea to also name a class member variable N_: It did only work in the
other build configurations because gettext.h was not included.
2015-11-16 21:39:03 +01:00
Kornel Benko
5c796730b2 Replace the translatable latexism 'longtable' with 'multi-page table' in UI. 2015-11-16 10:29:53 +01:00
Juergen Spitzmueller
78c706e02d Assure we use docstring.
Cures another monolithic build error with CMake.
2015-11-16 08:21:53 +01:00
Juergen Spitzmueller
2a223b0933 Rename function that was ambiguous from a monolithic perspective.
Cures one monolithic build issue with CMake.
2015-11-16 08:20:54 +01:00
Juergen Spitzmueller
b423c59d3c Factor out multiply used ColorSorter.
This cures one problem of monolithic build (where the function was
ambiguous)
2015-11-16 08:19:16 +01:00
Richard Heck
fb2c558f67 We need to show the error message in the case in which we copied the
file due to a format change, as well.
2015-11-15 12:32:26 -05:00
Richard Heck
9efa43d2be Simplify use of Buffer::getBackupName().
Previous versions of this code used the string in a different way,
but now it is sufficient just to return a FileName.
2015-11-15 12:19:17 -05:00
Guillaume Munch
7b07788278 Amend 789745df
Remove warning. Actually the auxiliary function is not necessary since its
actual contents have been relocated as TexRow::prepend() during dev.
2015-11-15 12:18:47 +00:00
Richard Heck
5afe6cf947 Fix stupid error in cc83dfa887. 2015-11-13 17:03:40 -05:00
Günter Milde
8021c0b0dc Update comments after solving #9740. 2015-11-13 13:59:17 +01:00
Scott Kostyshak
62190855bf Revert "Now math previews are correctly updated when replacing math contents inside"
Updating all previews (even if only one has changed) is more costly
than I thought. Thanks to Guillaume for tracking down this
performance issue.

This reversion is related to the reversions at 358745d0 and
a7a14395. See also #7242 and #9855.

This reverts commit 29948eec26.
2015-11-13 00:54:15 -05:00
Scott Kostyshak
a7a143950a Revert "Update previews after doing a find/replace (#7242)"
Updating all previews (even if only one has changed) is more costly
than I thought. Thanks to Guillaume for tracking down this
performance issue.

This reversion is related to the reversion at 358745d0.
See also #7242 and #9855.

This reverts commit 66f527e417.
2015-11-13 00:50:39 -05:00
Günter Milde
0eb9477be7 Fix 480937a103708a651/lyxgit, second attempt.
Prevent encoding changes whenever the TeX engine is XeTeX or LuaTeX,
as XeTeX/LuaTeX use only one encoding per document:

* with useNonTeXFonts: "utf8plain",
* with XeTeX and TeX fonts: "ascii" (inputenc fails),
* with LuaTeX and TeX fonts: only one encoding accepted by luainputenc.

+1 no needless encoding switches
+1 runparams.encoding matches the correct encoding at any time
+1 less complicated code.

-1 there may still be problems with CJK (possibly impossible to
   solve for Xe/LuaTeX with TeX fonts).

For LuaTeX & TeX fonts, the complete document uses the encoding
of the global document language.

See also #9740.
2015-11-12 16:55:04 +01:00
Scott Kostyshak
358745d0e3 Revert "Update previews on preference change (#9507)"
The referenced commit lead to performance issues and possibly
crashes in some cases when saving preferences. Thanks to Guillaume
for discovering the issues. See #9828 for more discussion.

I hope to come up with a better fix for #9507.

This reverts commit 390ae05444.
2015-11-11 18:06:07 -05:00
Richard Heck
cc83dfa887 Fix bug #9554: When we save a file that was not originally in the current
LyX format, create a backup of the original file. We put it in the backup
directory, if one exists, otherwise in the directory the original file is
in. This is the same strategy as for normal backups. Basically, the only
diferences are: (i) what name we use and (ii) we do not over-write any
backups that may already exist.
2015-11-10 19:40:06 -05:00
Günter Milde
9894e0be23 Fix 480937a103708a651/lyxgit. See also #9740.
Actually, the changed tests were used to prevent overwriting the encoding
changed in Buffer::writeLaTeX with a language-default encoding.
This is still required for XeTeX with TeX-fonts unless a proper solution is found.

Documents with more than one encoding and TeX-fonts fail with LuaTeX,
as "luainputenc" can only handle one encoding.
2015-11-11 00:11:06 +01:00
Guillaume Munch
a8c1161d7b Move tmpdir error message to stderr
http://thread.gmane.org/gmane.editors.lyx.general/85638/focus=157802
2015-11-10 08:04:19 +00:00
Georg Baum
1d3a85fe37 Fix regression of 2fc430d5ae
Thanks Kornel for noticing
2015-11-09 20:06:36 +01:00
Günter Milde
480937a103 Reset encoding after insets and environments also for LuaTeX with TeX fonts.
With inputenc == "auto" or "default", the encoding changes with
the language and must be reset after an eventual language switch in insets
or environments (see #6216).

However, whether we need to do this does not depend on 8-bit TeX vs. LuaTeX
but on the possible use of more than one encoding for the document.
With "nonTeXFonts", the encoding is utf8,
LuaTeX with TeX fonts requires encoding handling similar to 8-bit TeX.

(Additionally, the value of "params.inputenc" could be tested: if it is
not "auto" or "default", we have just one common encoding and could skip
the reset as well.) Not sure how much time this saves, though.
2015-11-09 12:42:48 +01:00
Georg Baum
2fc430d5ae Store both sets of font selections
This is one part of bug 9744: If you toggle between TeX fonts and non-TeX
fonts, the settings of the other choice are no longer thrown away, but stored
and re-activated if you switch back. Most parts of the patch are purely
mechanical (duplicating some BufferParams members), the only non-mechanical
change is in the GUI logic.
2015-11-09 07:36:42 +01:00
Jean-Marc Lasgouttes
32dd44b209 Improve fix to 57615915.
Reset pointer to 0 as Georg suggested in #9804.
2015-11-08 21:53:32 +01:00
Scott Kostyshak
22104ac518 Fix a Makfile.am typo preventing "make lyxdist"
Thanks to Vincent.
2015-11-07 01:48:43 -05:00
Richard Heck
2c4ec33591 Move LFUN_CHANGES_TRACK and LFUN_CHANGES_OUTPUT to Buffer.cpp,
and record an undo call. This deals with the problem of marking
the Buffer dirty, as well.

Move LFUN_BUFFER_TOGGLE_COMPRESSION and LFUN_BUFFER_TOGGLE_OUTPUT_SYNC
to Buffer.cpp, and add an undo call.
2015-11-06 23:13:11 -05:00
Richard Heck
ba99ea5b88 The cite engine info is needed by makeDocumentClass().
Fixes both #9797 and #9848.
2015-11-06 15:53:45 -05:00
Jean-Marc Lasgouttes
89dca6d3a9 Be careful about accounting for the right margin
In computeRowMetrics, the right margin of the row shall be taken in account when the text is not left-aligned. Rewrite the code in terms of the available width `w' to avoid this pitfall.
2015-11-06 14:35:21 +01:00
Günter Milde
4d2074b378 Fix encoding-setting of child document with LuaTeX and TeX-fonts 2015-11-05 10:55:43 +01:00
Jean-Marc Lasgouttes
576159156e Avoid using pointer after it has been invalidated
The pointer macroInset points to a vector element. When another element is inserted in this vector, some reallocation occur and the pointer points to a deleted element.

This does not crash LyX by default, but it is bad enough to make valgrind cry.

See ticket #9804.
2015-11-05 10:01:04 +01:00
Jean-Marc Lasgouttes
eb1e85b096 Try to avoid horizontal scrolling with wide insets.
There was a problem with end of paragraph markers. By design, wide insets choose their size without taking in account the marker. This should not lead to unneeded horizontal scrolling.

Part of ticket #9807.
2015-11-05 09:57:42 +01:00
Georg Baum
60a648c572 Remove unused declarations 2015-11-04 21:41:00 +01:00
Jean-Marc Lasgouttes
a5822a2976 Allow quotes in PDF text properties
PDF properties (Author, Title...) need to be quoted properly when writing (normal operation and tex2lyx). Also, reading them requires to use Lexer::getString() directly, because >> uses next(), which does not handle escapes.

Fixes bug #9830.
2015-11-04 12:18:01 +01:00
Günter Milde
f739c98fd7 Fix some XeTeX + TeX-fonts regressions introduced by fixing #9740.
hyperref expects LICR macros for non-ASCII chars in the PDF Header Information.
As hyperref provides good coverage for \inputencoding{utf8}, we try
this if the current input encoding does not support a character.

With XeTeX, we do not load inputenc and cannot use \inputencoding.
However, utf-8 works out of the box so we can write the content in UTF8.
2015-11-04 11:21:22 +01:00
Uwe Stöhr
62a69584e6 achemso.layout: add a flex inset
- this one is in achemso since version 3.8

- fileformat change
2015-11-04 01:18:13 +01:00
Enrico Forestieri
1c94995aef Fix bug ##9627: Make the document name available to preview insets
The \jobname macro is redefined for the preview snippets such that
it contains the name of the document without extension. This is
harmless because the moment it is redefined, TeX has already chosen
the name of the output and log files. On the other hand, any use
of \jobname in preview snippets is now consistent with what one
obtains after exporting and compiling by hand.
2015-11-04 00:36:41 +01:00
Enrico Forestieri
76dfde36d4 Fix bugs #2645 (export BIBINPUTS) and #6634 (Better support for external files in ERT)
Other than BIBINPUTS, also BSTINPUTS and TEXFONTS are exported.
They do not replicate the setting for TEXINPUTS but are set such
that the current dir (i.e., the temp dir) and the document dir
are also searched for bibtex and fonts related files.
2015-11-03 23:28:36 +01:00
Guillaume Munch
a0783e1527 Amend f441590c 2015-11-03 15:27:25 +00:00
Günter Milde
338f0174cf Fixme for the partial patch for #9740 (XeTeX with TeX fonts), 2015-11-03 12:29:07 +01:00
Guillaume Munch
21eea1e77a Capitalization 2015-11-03 03:54:52 +00:00
Guillaume Munch
f441590c8e Add "Open Containing Directory" button to the log dialog (#9211, #9834)
It takes the place of the "Copy to Clipboard" button which was redundant.
2015-11-03 03:54:52 +00:00
Enrico Forestieri
f8bfc8405e Fix bug #7657: Detect inkscape from the configure script
On Windows, if inkscape is not found in the PATH, search for it
in the registry and store its full path in lyxrc.defaults.
2015-11-02 23:46:14 +01:00
Jean-Marc Lasgouttes
cb8c52bd0c Fix compilation with clang++ 3.6.2. 2015-11-02 16:14:43 +01:00
Jean-Marc Lasgouttes
5e0e676530 Disable setting vertical lines when using a formal table
The code in InsetTabular disables the toolbar icons and menu entries related to vertical lines.

The code in GuiTabular disables vertical lines in the Settings dialog.
Note that there was a bug in
GuiSetBorders::set(Left|Right|Top|Bottom)Enabled, where the borders
did not get drawn correctly.

Fixes bug #9816
2015-11-02 15:58:40 +01:00
Jean-Marc Lasgouttes
1f81cd7b65 Set current font correctly after inset-select-all
Since we modify directly the cursor, it is wise to make sure that the current font is updated.

Fixes bug #9719.
2015-11-02 14:35:50 +01:00
Jean-Marc Lasgouttes
1f0d210ab5 Fix algorithm that computes horizontal scroll offset
Rewrite the logic completely:
* fix cases where the offset was reset unnecessarily
* fix cases where the row was scrolled too much: as soon as a side of the row is completely visible, there is no need to scroll more.
* fix cases where offset would never reset
2015-11-02 11:17:36 +01:00
Jean-Marc Lasgouttes
1db691c2f5 Fix wrong reset of horizontal scolling of current row
This partially reverts commit 0f1fdaaa9, but only redraws the current
row when the value returns by getPos is obviously false. It would also
be possible to check whether the current cursor has all its insets in
cache instead.

A better fix should be found, but this is unfortunately not 2.2 stuff.

Fixes bugs #9796 and #9812.
2015-11-02 11:11:39 +01:00
Guillaume Munch
f6be7d89ef Fix bug #9813
tex/row correspondance for \end{tabular}.
2015-11-02 00:07:21 +00:00
Juergen Spitzmueller
a9b8cdca9e Varwidth module provided by d.iabo
See #9417.
2015-11-01 11:00:23 +01:00
Scott Kostyshak
0911915b6a Typo 2015-10-31 02:12:31 -04:00
Kornel Benko
ea70c1ff0d Cmake tests: Display process while executing for target updatetex2lyxtests
The execution took some time and the messages were delayed
until all test files were processed. Now as each testfile
is processed, the appropriate messages are printed.

There is also a new target: cleanupdatetex2lyxtests
It is the same as updatetex2lyxtests, but removes also
some extra created files from the source directory.
2015-10-30 13:28:20 +01:00
Kornel Benko
9b1f459f77 Cmake tests: Remove the use of file(TIMESTAMP...)
Cmake versions prior to 2.8.11 don't know this command, but
our minimal requirenment is 2.6.4

Thank to Vincent, it is replaced by using 'if(file1 IS_NEWER_THAN file2)' comparision.
2015-10-29 11:07:34 +01:00
Scott Kostyshak
0ca63f4e27 Disable "Show Output Anyway" button if empty file
Sometimes when compilation fails a PDF file is created but is empty
and the viewer gives an error when trying to view it. One such
example is compiling the current lib/examples/PDF-comment.lyx file
with TeX fonts and the following version of LuaTeX:

  beta-0.80.0 (TeX Live 2015) (rev 5238)
2015-10-29 02:27:27 -04:00
Kornel Benko
e430586ec3 Cmake tests: Get rid of use of command 'env', which is not available under Windows. 2015-10-28 17:59:28 +01:00
Jean-Marc Lasgouttes
b5871decc0 Justify row correctly after double space
The wordSpacing property of a QFont object applies only once when there are multiple spaces between words. Therefore Row::Element::countSeparators shall not count spaces, but groups of spaces.

Fixes bug #9808.
2015-10-28 14:03:01 +01:00
Jean-Marc Lasgouttes
febbcf7f6c Fix painting of selection with change tracking
When partially selecting an element, the selected text color was not
the same as when selecting it completely.

Fixes bug #9809.
2015-10-28 10:40:10 +01:00
Günter Milde
c061e339f9 Clarify the FIXME for PDF-info encoding. 2015-10-28 10:31:08 +01:00
Günter Milde
3d521cfcac Update the FIXME for PDF-info encoding. 2015-10-28 10:16:41 +01:00
Uwe Stöhr
2c1851e2ec moderncv.layout: update some styles and add new ones
- support for at least modernCV 1.5 (layout will still work with moderncv 1.3 as before)
- fileformat change
2015-10-28 02:27:32 +01:00
Georg Baum
1eaa2366bf Make language nesting code more readable
This is a tiny simplification that makes understanding the code more easy and
will help in fixing the remaining regressions. The logic remains the same, no
export test result is changed.
2015-10-27 22:36:52 +01:00
Jean-Marc Lasgouttes
f7e639c818 Fix commit 32edb659
A bad test meant an embarassing red line on the left.

This is still bug #9807.
2015-10-26 11:39:58 +01:00
Günter Milde
2aa65fdc8d Fix the partial patch for #9740 (XeTeX with TeX fonts), part 2. 2015-10-26 00:51:38 +01:00
Jean-Marc Lasgouttes
32edb65985 Avoid showing vertical scroll mark when not necessary
Now the mark if only shown when editable text is outside of the row.

Fixes bug #9807.
2015-10-26 00:01:28 +01:00
Günter Milde
36b9645b5d Fix the partial patch for #9740 (XeTeX with TeX fonts). 2015-10-25 12:12:10 +01:00
Stephan Witt
23a3148c02 Fix a missing-braces warning for initialization of subobject 2015-10-24 21:10:36 +02:00
Stephan Witt
2a3b54d57b For Mac OS: Additional check for Control and Meta modifier swap state.
Starting with Qt 5 the modifiers aren't reported correctly for disabled swap.
Until this is fixed it is corrected by reverting the modifier mask to check for.
2015-10-24 21:08:10 +02:00
Georg Baum
d5ed835225 Revert the box alignment part of 8010b90c
The horizontal alignment changes caused a regression for documents in older
formats. This could have been fixed by adding the following lines to the
format entry for 489 in development/FORMAT:

	Previously, the horizontal position was ignored except for the
	following parameter combinations:
	- fixed width and type Boxed and without inner box
	- fixed width and any type   and with    inner box and with makebox
	Now, it is also used for the parameter combination below:
	- makebox is not used and not (type Boxed and without inner box)

and a corresponding conversion to convert_BoxFeatures() in
lib/lyx2lyx/lyx_2_2.py. However, it was decided to revert the box alignment
changes instead: The box alignment can contradict the paragraph alignment. A
better way to avoid the additional space that can be created by paragraph
alignment (which was the motivation for implementing box alignment) is the
same as for table cells (see noTrivlistCentering() in src/Paragraph.cpp).
This would be a file format change and it is too late now for 2.2.0.

See http://www.mail-archive.com/lyx-devel@lists.lyx.org/msg188147.html for the
complete discussion (subject "Regression in lyx2lyx box alignment").
2015-10-23 22:08:38 +02:00
Uwe Stöhr
a685e5601c InsetMathNest.cpp: add \sideset to the autocomplete list
fixes bug #9810
2015-10-23 05:20:51 +02:00
Guillaume Munch
671c7e12e5 Amend bb344452
Repair the senseless truncation on long file names
2015-10-21 15:02:12 +01:00
Guillaume Munch
7a60c96dfa msvc: Proper fix for compilation of TexRow
This bug in MSVC 10 was fixed at e948caf6, but the workaround belongs to
strfwd.h.

Thanks Vincent and Georg.
2015-10-20 21:29:19 +02:00
Vincent van Ravesteijn
990446c0e1 msvc: Move implementation of numpunct<> functions to cpp file
These functions use lyx::from_ascii which means they need to include
docstring.h, but that results in a circular include.
2015-10-20 21:28:40 +02:00
Vincent van Ravesteijn
42e5353f8a Revert "msvc: Fix compilation of TexRow"
This reverts commit 10d7f6d479.
2015-10-20 19:22:36 +02:00
Günter Milde
1523fc6023 Partial fix for #9740 "XeTeX/LuaTeX with TeX fonts problems".
Fixes output for 3 of the 4 test lyx-files.

Includes "FIXME"s at places where further action is required to get the XeTeX
export right but I don't know how.
2015-10-20 19:16:25 +02:00
Guillaume Munch
9d7c3a4876 Amend bb344452 2015-10-20 16:23:25 +01:00
Günter Milde
a0e2d48a56 Update the fileformat number in the tex2lyx test's expected output.
This needs to be done with every fileformat change!
2015-10-20 17:09:54 +02:00
Jean-Marc Lasgouttes
b14c0530eb Assorted cppcheck fixes
Remove member disp_ that is defined both in Cursor and CursorData classes

Pass parameter of convert<T>(docstring const) templates as const reference for performance.
2015-10-20 09:58:46 +02:00
Guillaume Munch
6f2e86dff2 TexRow: fix return value on invalid row input.
Caused loops with Sweave & Knittr compilation.
2015-10-20 00:51:27 +01:00
Vincent van Ravesteijn
10d7f6d479 msvc: Fix compilation of TexRow
The problem was that "odocstringstream << (const char *) ptr" did not
compile using msvc.
2015-10-19 21:27:20 +02:00
Georg Baum
be3e470068 Fix language nesting regression
b1c68dccf8 and 46aed6d2b9 fixed some language nesting issues, but introduced
a regression for the case that there is a standard paragraph in a foreign
language, followed by a list (e.g. itemize) in the same language, followed
by the end of the document, as e.g. in lib/doc/de/Additional.lyx. The reason
for this was that not all language ending commands did reset
state->open_polyglossia_lang_ correctly.
I am sure that one can still construct broken corner cases, and I am also sure
that this was already possible before b1c68dccf8 and 46aed6d2b9. However,
this fix seems to fix the most important issues, and to get nesting completely
correct we would probably need some stack-like structure, for languages and
encodings, also for the CJK part (which is not touched at all by this commit).
2015-10-19 21:08:01 +02:00
Günter Milde
7e716a26a5 Fix #9764, combining diacritical characters for line below (part 2).
The correct mappings break the tex2lyx roundtrip tests because both, 
the tests and tex2lyx use the wrong mapping (\b for "combining minus below").

Fix tex2lyx and the test files so that round-trip tests pass again.
2015-10-19 18:34:48 +02:00
Günter Milde
af16acb0b4 Fix #9792 cyrtext and textcyr in the preamble of every document.
Add the brackets missing in [468cedb923b/lyxgit].
2015-10-19 18:34:48 +02:00
Vincent van Ravesteijn
92b7c5a92f cmake: Put updatetex2lyxtests in an appropriate folder 2015-10-19 17:54:04 +02:00
Jean-Marc Lasgouttes
1e075bdf55 Fix drawing with pixmap cache
The culprit was that the computation of textwidth did not take wordspacing in account.

Also fictor the code so that the pixmap path can use the special RTL handling.

It is not clear however that the handling of left and right bearing works correctly.
2015-10-19 16:38:05 +02:00
Jean-Marc Lasgouttes
26eb5092fb Get rid of ParagraphMetrics::insetDimension
We already have a CoordCache of insets dimensions. It is not necessary
to store the same information in two places.

Give a name to CoordCache tables types to improve code readability.

Remove ParagraphMetrics::singleWidth, which is not used anymore.
2015-10-19 13:17:16 +02:00
Guillaume Munch
f4f68a5764 Add cursor<->row correspondance tracking for tables and subcaptions.
Please use the new function otexstream.append(str, texrow) to append an
odocstringstream with texrow information to the output when outputing to a
string buffer (e.g. case of subcaptions).
2015-10-19 06:55:18 +01:00
Guillaume Munch
73d3816e0f Improve the TexRow Cursor->Row algorithm for selections.
Selections were incorrect after the addition of math due to the invalidation of
an invariant.
2015-10-19 06:55:18 +01:00
Guillaume Munch
c51ebd9bbc Remove a deep copy of MathData in lyx::write
This deep copy used to mess with the unique identifier: what TexRow saw was
different from the original uid. There may also be performance improvements.

(Using Georg's suggestion)
2015-10-19 06:55:18 +01:00
Guillaume Munch
789745df7a TexRow info in source panel and gotoCursor() for debugging
These features are active in DEVEL_VERSION when Debug is set to LATEX.

1. The TexRow information is prepended to the source panel.

2. Clicking on any line in the source triggers reverse search. (This would be an
interesting feature to implement on the user side, but we need a proper LFUN.)
2015-10-19 06:55:17 +01:00
Guillaume Munch
460a764b7f Adding TexRow information on math latex output (#4725)
WriteStream is now built from an otexstream instead of an odocstream, and
therefore counts lines in a TexRow. Calls to TexRow are added in relevant places
in math insets.

This finishes adding line tracking for math in the source panel and for forward
search.
2015-10-19 06:55:17 +01:00
Guillaume Munch
65d61e7a27 Add math cell positions to TexRow
This is preliminary work for extending the cursor<->row tracking to math.

TexRow used to associate, to each row, a location id/pos where id determines a
paragraph and pos the position in the paragraph.

TexRow now associates to each row a list of entries, text or math. A math is a
pair uid/idx where uid will determine a math inset and idx is the number of the
cell.

The analogy id/pos<->inset/idx works better than the analogy id/pos<->idx/pos,
because what matters for the TexRow algorithm(TM) is the behaviour in terms of
line breaks.

This only improves the source view and the forward search, not the error report
and the reverse search (though this could be easily added now).
2015-10-19 06:55:17 +01:00
Guillaume Munch
e2d7a4534a Add a unique id to math insets
The id is just the memory address.

The status bar now spits out the math inset uid information when in a math cell
in DEVEL_VERSION, like it already does when in a paragraph.

This is preliminary work for extending the cursor<->row tracking to math.
2015-10-19 06:55:17 +01:00
Guillaume Munch
44e022ad74 Splitting otexstream into otexrowstream and otexstream.
otexstream used to count lines to build a TexRow, and some other things. The new
class otexrowstream has the line counting feature of the previous otexstream
without other stuff. otexstream is now a subclass of otexrowstream that has the
same features as before.

This is preliminary work for extending the cursor<->row tracking to math.
2015-10-19 06:55:17 +01:00
Uwe Stöhr
ce933b1e14 colored-boxes.lyx: new example file for the tcolorbox.module
- also improve the tcolorbox.module

This is a fileformat change - only to be able to revert the new styles defined in the module.
2015-10-19 07:10:09 +02:00
Georg Baum
86325e50d0 Fix language end command
The code that sets open_polyglossia_lang_ is not only executed for polyglossia,
but also for babel, so we have to use the correct language end command.
2015-10-18 20:57:21 +02:00
Georg Baum
1b9f51519e Remove confusing parentheses 2015-10-18 15:26:12 +02:00
Georg Baum
b70f2eff49 Fix regression of 359aef92f8
The context menu did no longer work for some insets, since it requires the
cursor to be in front, and editXY() is also used to determine the inset for
the context menu. Now the cursor is corrected if needed.
2015-10-18 15:26:12 +02:00
Georg Baum
79f11f4e7d Fix std::string docstream output error
This was made visible by aab1b145a5, since xhtml export for
lib/doc/Additional.lyx caused an exception. However, the cause for this was
already present earlier: All attempts to output a std::string to an
odocstream resulted in trying to change the encoding of the stream instead,
since there is no operator<<(odocstream &, std::string) defined, and an
implicit conversion to SetEnc happened instead.
This is fixed by making the SetEnc constructor explicit and adjusting all
code parts that did not compile anymore after that. The parts of the code
that did use the wrong output operator were the std::string version of
htmlize() from output_xhtml.cpp and all changed parts in the other .cpp files.
I also removed the std::string versions of html::htmlize() and
html::cleanAttr(), since it was difficult to see which encodings were used
with these. Now we are always explcit when using html::cleanAttr() and
html::htmlize().
2015-10-15 20:52:28 +02:00
Jean-Marc Lasgouttes
44acd4a3cb Remove variable y_top that was computed but not used. 2015-10-12 11:55:38 +02:00
Stephan Witt
b6b263b9fc Correct early return position for if use_pixmap_cache_ check 2015-10-12 08:00:24 +02:00
Georg Baum
359aef92f8 Fix cursor movement for large logos (#9628)
Previously, if one clicked onto a large non-editable inset like the new LyX
logo inset, the cursor was always positioned in front of the inset, even if
the click was almost at the back edge. Now the cursor is positioned at the
correct edge. I tested this also with RTL contents, where from means right
and back means left, but the inset anchor position anchor point is still
at the left, and the right edge is dim.wid pixels to the right of it.
2015-10-11 14:21:45 +02:00
Georg Baum
15a5e0f793 Disable assigment operator
Forgot that in cea2d71e64
2015-10-11 12:04:43 +02:00
Georg Baum
cea2d71e64 Comply with rule-of-three
The rule-of-three says that if any of virtual destructor, copy constructor
or assignment operator needs to be manually implemented, then all three
should be implemented. Otherwise you can get subtle bugs which can be
difficult to find. In the changed classes, changing a copy-construction to
an assignment would have had surprising effects. Now they all behave
consistently.
2015-10-11 11:16:09 +02:00
Georg Baum
74be166499 Move comment where it belongs 2015-10-11 10:27:16 +02:00
Georg Baum
34bfad7f64 Remove C-style casts found by cppcheck 2015-10-10 21:44:08 +02:00
Georg Baum
fd5cfc5101 Fix LASSERT correction
Found bx cppcheck:
(style) Assignment of function parameter has no effect outside the function.
2015-10-10 21:38:17 +02:00
Georg Baum
d3b5260f45 Remove unused variables
Found by cppcheck: (style) Unused variable: x
2015-10-10 21:28:28 +02:00
Georg Baum
60e594a0f7 Fix duplicated pointer check
Found by cppcheck: (style) Same expression on both sides of '&&'.
2015-10-10 21:23:52 +02:00
Georg Baum
adfeb9637f Fix copy-paste leftover
Found by cppcheck: (style) Same expression on both sides of '&&'.
I deduced the correct if-condition from the other places where theLaTeXFonts()
is called.
2015-10-10 21:15:55 +02:00
Georg Baum
8a047a4112 Add missing intializations
These were found by cppcheck:
Member variable 'x' is not initialized in the constructor.
The crash #9788 would not have happened if this had been done earlier.
2015-10-10 21:04:28 +02:00
Georg Baum
96f64ac028 Fix multicolumn regression (bug #9788)
The test case did show several problems:
- The alignment argument was not parsed correctly if it was not in braces
- There one column too much created, since I did not take into account that
  the current cell must bge replaced by the multicolumn cell
- If the last line of an array contained only an empty multicolumn cell, then
  the complete multicolumn was swallowed
- The decision whether to output the column separator & was sometimes wrong
  for multicolumns
2015-10-10 18:58:18 +02:00
Georg Baum
8a6fad9cea Initialize member
This fixes the crash of bug #9788. However, the misparsing of \multicolumn
is still there: LyX thinks that the array has three columns, it inserts an
additional one before the multicolumn.
2015-10-09 23:15:54 +02:00
Georg Baum
3602baa40c Fix typo
Found by gcc: operation on 'preview_ptr' may be undefined [-Wsequence-point]
2015-10-09 21:37:43 +02:00
Jean-Marc Lasgouttes
e5f42f67d0 Fix display of perenthesis in Hebrew documents
This was a regression from 2.1.x. I failed to copy the horrible hack that was present for the special case of () in Hebrew.

There is a real need for someone who understands RTL language stuff to fix this. Currently () are wrong in .lyx files IMO. We should not have to swap them for display.
2015-10-09 16:16:13 +02:00
Jean-Marc Lasgouttes
eb9250ff2c Small code cleanup 2015-10-09 15:48:59 +02:00
Jean-Marc Lasgouttes
e24f782eeb Get rid of old Bidi code
This removes the old implementation of Cursor::getSurroundingPos, that has been superceded in commit .

As this was the last user of the Bidi class, this can be removed too.
2015-10-09 15:17:34 +02:00
Stephan Witt
989c72530e Avoid the use of a static NSAutoreleasePool.
This seems to cause crashes on exit from time to time.
2015-10-09 08:16:24 +02:00
Stephan Witt
d5f7ed38fc Add missing adjustment of end_pos if given length exceeds last pos 2015-10-09 08:16:23 +02:00
Stephan Witt
77cc2c7c8c Fix "dead store" warnings of Xcode analyze tool 2015-10-09 08:16:23 +02:00
Georg Baum
c3cdd9aea7 Fix cppcheck portability warning
(portability) Assigning a pointer to an integer is not portable.
2015-10-08 20:25:11 +02:00
Jean-Marc Lasgouttes
1514087389 Revise commit 7a5eff56
Courtesy of the whitespace police.
2015-10-07 11:30:04 +02:00
Pavel Sanda
7a5eff56b0 Set minimal width of fixedwidth collapsable insets.
Intention behind this is actually Box inset being too tiny
to reasonably contain other insets like ERT.

http://www.mail-archive.com/lyx-devel@lists.lyx.org/msg188987.html
2015-10-07 02:15:35 -07:00
Guillaume Munch
68be651e89 Add TOC of external materials. (#7790, partial)
Known issues (non-regressions):

* The TOC is not updated immediately after an external material inset is
  inserted. See TocBackend::updateItem().
2015-10-05 21:16:16 +01:00
Guillaume Munch
bb344452c8 Consistency of ellipses across the UI
Use the function support:truncateWithEllipsis() to shorten a docstring with
... at the end. Actually we use U+2026 HORIZONTAL ELLIPSIS instead of "..." when
automatically shortening strings. This is to be consistent with Qt's own
truncation and is much nicer on the screen.

This includes the bugs #9575 and #9572 regarding broken text elision in the
outliner.

Known issues (non-regressions):

* TocBackend::updateItem() should be rewritten to update all TOCs. (#8386)

* "..." should be replaced with … everywhere else on the interface (including
  translation strings).

* We should prefer to rely on QFontMetrics::elidedText() to truncate strings
  with an ellipsis whenever possible, or an equivalent for the buffer view
  dependent on the font metrics. See the warning in src/support/lstrings.h.
2015-10-05 21:16:16 +01:00
Jean-Marc Lasgouttes
f6c6416f28 Remove PainterInfo argument to checkCursorScrollOffset
This will allow later to move its invokation to processUpdateFlags.

Also, remove wrong use of Update::SinglePar flag.
2015-10-05 18:09:34 +02:00
Jean-Marc Lasgouttes
d377e765a2 More updates to painting analysis 2015-10-04 22:28:36 +02:00
Enrico Forestieri
8a909b0fa3 Fix #9726: Preview does not have correct font size 2015-10-03 18:13:20 +02:00
Enrico Forestieri
82fe5183ca Fix #9490: SIGSEGV involving LyX macros --- A reproducible MWE (part II) 2015-10-03 17:41:25 +02:00
Guillaume Munch
8ea62f226b Amend d5a5fbb8e (cosmetic)
Bug #9579
2015-10-02 19:47:46 +01:00
Jean-Marc Lasgouttes
ca3e4e1494 Small BufferView cleanup
Rename fitCursor() to needsFitCursor() to show that it does not do any
action. Constify.

Update a few comments.
2015-10-02 15:25:09 +02:00
Guillaume Munch
39343d65af Fix compilation with MSVC in c++98 mode 2015-10-01 21:51:08 +01:00
Guillaume Munch
afed7d06fa Improvements to cursor highlighting in the source panel
* TexRow now computes rows from a DocIterator. In practice, the cursor
  highlighting is now correct inside insets, it is no longer restricted to the
  topmost level. It certainly also makes forward-search more precise.

* Added the option to disable a texrow when not needed, for perf.

* Fixed a bug where the last paragraph was not properly highlighted.

Limitations:

* TexRow still does not handle: math (e.g. multi-cell), sub-captions, inset
  arguments.
2015-10-01 21:51:08 +01:00
Guillaume Munch
d5a5fbb8ee Enhancements and bugfixes to the TOCs
* New TOC "math-macro". This means that math macros can now be accessed in the
  outline pane in their order of appearance or in alphabetical order, and can be
  searched using the filter.

* Lists of floats now show subfloats deeper in the navigation menu

* The arbitrary 30 element cut-off after which nothing is shown except "Open
  Navigator..." is removed. Menus now have no limit in size, so Qt may display
  them scrollable. In exchange, we always show "Open outliner..." at the
  beginning. I tested for performance issues with a rather complex document and
  it is fine; but this does not exclude corner cases with lots of TOC entries of
  a certain kind. If necessary, populating the navigation sub-menu should be
  delayed like the main menu.

* Elements that do not contribute to the output (e.g. in a note, a disabled
  branch) are now preceded with a symbol indicating this status. (The machinery
  was already there; I wonder why it was not implemented already.) I have chosen
  U+274E NEGATIVE SQUARED CROSS MARK.

* Fix the contextual menus in the outliner (bug introduced at 94e992c5).

* Toc item now move to the caption when present, but first center on the float,
  to prevent the situation where the caption is at the top of the screen and the
  contents of the float is off-screen above the caption.
  (Internally, the action of the toc items can now be customised)

* Fix the LyXHTML output. Disabled captions no longer appear in the list of
  figures.
2015-10-01 21:44:22 +01:00
Guillaume Munch
89342f2946 Fix bugs #6078 and #9364
Remove unwanted clearSelection()s in MathData::updateMacros(). These calls broke
text selection with keyboard and mouse, search-and-replace, restoring selection
after Undo, etc. in a document with math macros since 1.6.0. (Regression at
6aa54673 and 12314897)

I do not know the purpose of these calls, but the selection code has been worked
on since, and I cannot produce undesired behaviour after removing
them.
2015-09-28 04:22:06 +01:00
Jean-Marc Lasgouttes
21c30a09e1 Rewrite Cursor::getSurroundingPos without Bidi class
New method TextMetrics::findRowElement, excerpted from CursorX.

Reimplement getSurroundingPos using Row information. This is easy when
the cursor is inside a row element. At row element edges, different
situations can occur; hopefully all these situations are taken into
account.

Rename the old getSurroundingPos to getSurroundingPosOrig and
transform getSurroundingPos into a wrapper that compares the two
methods. This will be removed when we are confident that the new
function is equivalent to the old one.

It will then be possible to remove also the Bidi class (at last!).
2015-09-27 22:17:46 +02:00
Jean-Marc Lasgouttes
cc241bdaaf Repeat after me: into account, into account, into account 2015-09-27 21:38:20 +02:00
Jean-Marc Lasgouttes
b7909e7e6c Remove support for precompiled headers for autotools
This was turned off by default for a long time, and it does not seem
to have any use these days.
2015-09-25 12:05:40 +02:00
Jean-Marc Lasgouttes
cdb9f04395 Make text insets wide as soon as they contain a display inset
This also handles the case of a paragraph ended by a newline.

Fixes bug #9757.
2015-09-21 17:53:52 +02:00
Jean-Marc Lasgouttes
8b89709fc9 New helper method Row::Element::isRTL() 2015-09-21 14:03:54 +02:00
Richard Heck
1c3958d89c Add assertions, just to be sure.
Fixes coverity issue #111941.
2015-09-20 20:03:24 -04:00
Georg Baum
b24664b0ac Remove unused variables found by cppcheck
There are still a few warnings of the kind
(style) Variable 'x' is assigned a value that is never used.
since I did not touch code where I was not sure whether there might be a real
bug, and I kept some for symmetry reasons as well.
2015-09-20 21:39:59 +02:00
Georg Baum
aab1b145a5 Fix missing xhtml output found by cppcheck
Actually I don't know if this operator is used at all, but if it exists then
it must output something.
2015-09-20 20:47:33 +02:00
Georg Baum
7450d24eec Fix wrong label found by cppcheck
It was not intended to ignore the return value of expandParagraphLabel().
2015-09-20 20:32:45 +02:00
Georg Baum
1ad4d9e657 Forbid wrong compiler generated copy constructors
This fixes cppcheck warnings (style) 'class x' does not have a copy constructor
which is recommended since the class contains a pointer to allocated memory.
2015-09-20 19:43:06 +02:00
Guillaume Munch
ec086243df Amend 94e992c5
Fix compilation with --disable-cxx11
2015-09-20 19:24:45 +02:00
Richard Heck
720d8ae58e Add comment regarding fall through.
Coverity issue #111940.
2015-09-20 12:34:49 -04:00
Georg Baum
b6aed54c45 Fix cppcheck variable scope warnings
These were all flagged by "(style) The scope of the variable 'x' can be reduced."
Narowing the scope improves readability, and if it is in a loop then the
compiler will be clever enough to produce efficient code, we do not need
manual optimization for POD types.
2015-09-20 10:42:35 +02:00
Georg Baum
4a5efb5a7d Refuse to run tex2lyx tests with in-source builds
As Günter found out running the tex2lyx tests overwrites the test references
if the build directory is identical to the source directory. Therefore the
tests would always pass, but git diff would show a non-empty diff if the tests
should have failed. Since it is better anyway to build in a separate directory
we simply do not support srcdir = builddir for the tests and abort with an
error.
2015-09-17 22:11:18 +02:00
Juergen Spitzmueller
02ead6a93a restore crucial float information in note insets (bug #9760) 2015-09-15 22:58:49 +02:00
Guillaume Munch
9b7ccbfc80 New class InsetCaptionable
This generalises the new use of TocBuilder (97e8101) to listings and wraps and
removes some duplicate code.

Make sure that we will never write an empty float type again in the future
(#9760)
2015-09-15 15:25:33 +01:00
Guillaume Munch
94e992c5ed Better construction of the TOC for floats and captions
We introduce TocBuilder for building TOCs that take into account both float
insets and their captions.

* Floats without caption are shown with their content.

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

* Subsequent captions produce additional entries in the TOC.

* Figures and subfigures are correctly ordered in the outliner.

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

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

Known issues:

* Inconsistent output for includes located inside floats

* We should record the end of the float in addition of the beginning for a more
  accurate cursor -> outliner entry conversion
2015-09-15 15:25:33 +01:00
Guillaume Munch
c02f6bd8a7 Do not show subfigures in the menu (bug #9759)
* More consistent behavour (no 30 elements limit)
* Subfloats are given depth 1
* Only show depth 0
* Always show "Open outliner..."
2015-09-15 15:25:32 +01:00
Guillaume Munch
12de677fcc Support for (std|boost)::make_shared 2015-09-15 15:25:32 +01:00
Guillaume Munch
61145265fc Math commands used in text mode now always use the current selection as contents
(#9762)

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Fixes bug #9691.
2015-08-24 14:09:19 +02:00
Guillaume Munch
125a297778 Fix bug #6466
\{ and \% now correctly use the selection as their argument instead of
erasing it.
2015-08-23 11:47:37 +02:00
Guillaume Munch
27f067dd9d Improve math-mode lfun for switching to text
math-mode inserts \text instead of \mbox when already in math mode,
since this supports accented characters.
2015-08-23 11:10:05 +02:00
Guillaume Munch
fde3963d99 Add \ensuremath to the list of math completions 2015-08-23 11:05:01 +02:00
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
Georg Baum
b0361fb3c5 tex2lyx: Run configure.py if needed (bug #8539)
Since tex2lyx reads some LyX config files it needs to run configure.py if
they do not exist or are out of date.
2014-12-29 23:46:25 +01:00
Georg Baum
c1c439b94d Handle unknown table column specifiers (bug #9311)
Previously tex2lyx did ignore table columns if the column specifier was
unknown. This can lead to data loss, and now it does not ignore these columns,
but assumes that the column specifiers use only once character. This can still
lead to data loss, but less often.
2014-12-29 22:54:06 +01:00
Georg Baum
cd3b040a70 Write fixed encoding to LyX file (bug #9178)
If the user gave the -fixednec argument to tex2lyx then set that encoding as
LaTeX input encoding in the generated LyX file. Otherwise, included .bib files
could be interpreted using a wrong encoding.
2014-12-29 22:29:20 +01:00
Georg Baum
ff9b4a3834 Use new argument inset code for environments
This removes another instance of the limitation solved by file format 446:
The order of optional and required arguments is not fixed anymore.
2014-12-29 22:06:29 +01:00
Georg Baum
5bfd1c22d2 Skip missing optional argument insets in tex2lyx
Optional arguments are optional, so if one is missing, do not stop the parsing,
but continue with the next argument (it might be a required one).
2014-12-29 21:54:15 +01:00
Georg Baum
0a93c9b70f Store ASCII data in std::string
Math inset names and LaTeX requirements are always ASCII. This avoids some
conversions and makes math requirements more similar to text requirements.
2014-12-29 21:46:30 +01:00
Georg Baum
cc87f81002 Fix html export of \ne (second part of bug #9372)
The fix consists of two parts: The needed infrastructure to assign HTML
entities to global math macros, and the actual fix for \ne and \neq.
2014-12-29 21:13:42 +01:00
Stephan Witt
a88e6e1ea5 Add icon library to link target - needed on Mac OS X - thanks Kornel 2014-12-29 11:33:47 +01:00
Stephan Witt
74c9165190 whitespace again 2014-12-29 01:28:24 +01:00
Stephan Witt
2fbeb662b3 whitespace 2014-12-29 00:12:33 +01:00
Georg Baum
394e1bf99c Use std::regex if possible
It works with gcc >= 4.9.0 and clang (with libc++ or gcc libstdc++ from gcc
>= 4.9.0). The MSVC parg is missing, because I cannot test it, and the
autotools build still link against boost::regex even if it is not needed, but
I don't know how to fix that.
2014-12-28 18:08:18 +01:00
Georg Baum
dae8555234 Get rid of regex_constants::match_partial
As shown by the unit test this is not needed at all, even not for really
awkward input.
2014-12-28 17:46:33 +01:00
Georg Baum
449c766e03 Test invalid sanitizeLatexOption() input as well 2014-12-28 17:34:46 +01:00
Georg Baum
62ed0aeefb Use typedef for std::basic_string in trivstring
This fixes compilation for llvm-gcc-4.2 on OS X and makes the code a bit more
readable.
2014-12-28 17:06:34 +01:00
Kornel Benko
a50c0f2ab3 Add ExternalTransforms test also to cmake build 2014-12-28 14:20:17 +01:00
Georg Baum
1db9224cff Add unit test for sanitizeLatexOption()
This is a prerequisite for safe removal of regex::match_partial.
2014-12-28 13:23:35 +01:00
Georg Baum
59ab49846a Remove duplicated CMakeLists.txt from EXTRA_DIST 2014-12-28 13:20:20 +01:00
Georg Baum
9c375cb606 Add forgotten test to distribution 2014-12-28 12:53:18 +01:00
Georg Baum
e15d3d35cb Reduce caption hardcoding
Now we can handle all types of captions defined in layout files or modules.
This does also mean that \captionabove and \captionbelow are only recognized
in KOMA-classes and not always anymore, but this is correct, since these
captions would not work in other document classes anyway.
2014-12-27 18:15:07 +01:00
Georg Baum
eda5f69cc0 Revert e01886327d
Sorry, this was nonsense.
2014-12-27 17:03:39 +01:00
Georg Baum
e01886327d Output caption insets collapsed
Like all other collapsable insets, there is not reason to treat captions
specially.
2014-12-27 16:10:11 +01:00
Georg Baum
f4417e8125 Remove InsetArgument 999 workaround
Since we iterate through all arguments we can as well compute the correct id
directly.
2014-12-27 15:17:11 +01:00
Georg Baum
cb7ace9143 whitespace 2014-12-27 15:17:10 +01:00
Georg Baum
0c90821138 Parse starred InsetLayout correctly
Previously, an InsetLayout was not found if the LaTeX name was starred, e.g.
for "\caption*".
2014-12-27 15:17:10 +01:00
Georg Baum
614862fccc Move cjk check out of the loop
According to the indentation this was probably a merge error, and the check is
only needed once.
2014-12-27 15:17:10 +01:00
Georg Baum
2e5ecd9dfb Do not compile trivstring.cpp if not needed
This avoids a MSVC warning.
2014-12-27 15:17:10 +01:00
Georg Baum
16eb4f1ed7 Adjust tex2lyx InsetArgument to format 446
tex2lyx does now allow mixed order of required and optional arguments.
2014-12-27 15:17:09 +01:00
Enrico Forestieri
1b0cbb6932 Fix building with cmake on cygwin.
Add required libraries for the link stage.
2014-12-26 17:00:23 +01:00
Enrico Forestieri
9126a99e97 Fix bug #9217: [Qt5] QWindowsMime class not available
The support for QWindowsMime has been reintroduced in Qt 5.4.0.
The class name has been changed to QWinMime but the interface
is exactly the same.
2014-12-26 16:53:31 +01:00
Georg Baum
903917f3b8 Add tex2lyx test for KOMA-Script classes
In the future this test case should contain all KOMA-Script features.
Currently, it tests just \captionabove anmd \captionbelow.
2014-12-23 22:33:32 +01:00
Georg Baum
6f34a8a640 Get rid of tr1 support
As discussed on the list. We don't need it anymore, either we have a modern
compiler that supports C++11, or we fall back to boost. I kept and adjusted
the regex #define, since we cannot use std regex completely yet.
2014-12-23 22:18:08 +01:00
Stephan Witt
54b0fa330e Drop runtime support for OS X 10.5 NSSpellChecker 2014-12-23 18:19:27 +01:00
Georg Baum
bb87e0422a Revert parts of 7e69ac220d
This fixes the tex2lyx test test-refstyle-theorems.tex. It seems that the
intent of the fix was to remove a \protect in front of a \caption,
\captionabove or \captionbelow, but the implementation did not really do that.
Furthermore, it is not clear in which cases a \protect in front of a caption
needs to removed, and in which cases it needs to be kept: After looking at the
LyX sources I could not see that caprions are always output with \protect.
2014-12-22 21:32:45 +01:00
Jean-Marc Lasgouttes
e32a3e7f57 Reduce use of double variables in Row
All the code that is run before row metrics have been computed should use int arithmetic. After metrics have been computed, we still need doubles because fully justified rows use double for Row::Element::extra.

Rename Row::x to Row::left_margin and change its type to int.

Rename Row::Element::width() to full_width(). In some places of the code, use dim.wid (the int version without the extra separator) because metrics have not been computed.

Let Row::Element::x2pos take a int& argument instead of double&

Let Row::Element::breakAt take a int argument instead of double
2014-12-22 14:07:24 +01:00
Jean-Marc Lasgouttes
8bab23384a Fix the last clang warnings about overloaded virtual methods
This patch fixes a series of warnings like:
{{{
In file included from ../../master/src/mathed/InsetMathBoldSymbol.cpp:13:
In file included from ../../master/src/mathed/InsetMathBoldSymbol.h:15:
../../master/src/mathed/InsetMathNest.h:37:7: warning: 'lyx::InsetMathNest::metrics' hides overloaded virtual function [-Woverloaded-virtual]
        void metrics(MetricsInfo const & mi) const;
             ^
../../master/src/insets/Inset.h:186:15: note: hidden overloaded virtual function 'lyx::Inset::metrics' declared here: different number of parameters
      (2 vs 1)
        virtual void metrics(MetricsInfo & mi, Dimension & dim) const = 0;
                     ^
}}}
For a description of the problem, see for example:
http://stackoverflow.com/questions/18515183/c-overloaded-virtual-function-warning-by-clang

3 different strategies have been used:
 * in frontend, some functions have been renamed.
 * in InsetMath.h, Inset::write has been explicitly imported too
 * in InsetMathNest.h, since a comment said that hiding Inset::metrics is intended, a special trick has bee used to silence the warning.
2014-12-22 11:02:45 +01:00
Scott Kostyshak
625cea1528 Whitespace 2014-12-21 19:01:52 -05:00
Georg Baum
ed3b3afbe9 Make Converter class thread-safe
Again, this is used in a global list shared by all threads
2014-12-21 22:05:15 +01:00
Georg Baum
0af021878b Make Format class almost thread-safe
This is needed since all formats are stored in a global list which is shared
between threads, but never modfified except from the main thread.
The only missing bit is extension_list_, which is not so easy to do.
2014-12-21 21:40:25 +01:00
Georg Baum
90b1f084bf Improve C++11 support
If we compile in C++11 mode, do not use the boost replacements for bind,
functional and shared_ptr. regex is excluded, since it misses match_partial, and
gcc does not provide a usable one in versions less than 4.9.0.
I also removed the #define for match_partial, since this is dangerous. Now you
get a compile error instead of subtle runtime differences.
2014-12-21 20:22:16 +01:00
Juergen Spitzmueller
c9609fe56a Do not warn about changed modules when changing modules.
Part of #9356
Also fixes #9365
2014-12-21 19:10:13 +01:00
Georg Baum
c4613963fa Add missing using declarations
This fixes using std::tr1::regex for non-MSVC compilers.
2014-12-21 19:05:00 +01:00
Georg Baum
158b9a0e55 ::readlink() needs unistd.h
this is included in some gcc headers, but not in c++11 mode, that is the
reason why we did not get a compile error so far.
2014-12-21 18:13:33 +01:00
Georg Baum
7796ad3a36 Improve llvm libc++ detection
The old detection did only work if CFLAGS contained -std=c++11, since ciso646
was only included for __cplusplus > 199711.
Thanks to Koernel for the cmake part.
2014-12-21 17:26:21 +01:00
Juergen Spitzmueller
9b3e47fd87 Output package options before loading any package.
Fixes: #9355
2014-12-21 12:10:06 +01:00
Juergen Spitzmueller
740d9162c0 When switching classes, warn user about all unapplied document changes
Currently, this is limited to modules.

Part of #9356.
2014-12-21 11:49:08 +01:00
Juergen Spitzmueller
276fa4825d Do not silently dismiss unapplied document changes when adding module
Part of #9356
2014-12-21 11:47:59 +01:00
Juergen Spitzmueller
41c35476e5 Fix initialization order 2014-12-21 10:13:56 +01:00
Scott Kostyshak
15ae3eb85c Initialize recently added forceownlines_ bool
This adds on to the fix for #8875 (a25569eb).
2014-12-20 15:05:20 -05:00
Scott Kostyshak
6da7ee1be1 Whitespace 2014-12-20 15:03:40 -05:00
Georg Baum
d553938c92 Improve and unify error messages
Now the errors given for an unknown layout in copystyle and obsoletedby provide
the same information.
2014-12-09 21:20:56 +01:00
Georg Baum
c6b98a504f Make Encoding class thread-safe
Now all const methods may be called without additional locking.
This is assumed by the threaded LaTeX export, which always useses a globally
unique instance for each encoding.
2014-12-08 22:25:40 +01:00
Georg Baum
364e0f72c4 Fix invalid iterator access 2014-12-08 21:29:25 +01:00
Jean-Marc Lasgouttes
0bdfca2c6e \\subfloat captions are moving arguments
Therefore insets should be protected in these captions.

Fixes bug: #9346.
2014-12-08 09:43:49 +01:00
Juergen Spitzmueller
cfeddb9293 Add ObsoletedBy tag to InsetLayout
Fixes: #9000.
2014-12-08 09:08:45 +01:00
Georg Baum
5b336954d7 Try to fix compilation on cygwin 2014-12-07 20:43:47 +01:00
Georg Baum
0b30253f2b Fix compilation without trivstring 2014-12-07 20:39:31 +01:00
Georg Baum
c86f299a50 Encapsulate Converter class
Now members are not directly accessible anymore.
2014-12-07 18:35:28 +01:00
Georg Baum
25344de51d Make Language and Encoding threadsafe
Read-only access to these classes is now threadsafe, with one exception:
The encoding neds to be already initialized (i.e. init() must not be called).
This makes bug 9336 unreproducable on my machine, although it is not completely
fixed yet.
2014-12-07 18:26:44 +01:00
Georg Baum
d5aaee1f6b Whitespace 2014-12-07 17:29:12 +01:00
Georg Baum
83bee109db Make trivstring class ready for use
The interface is now 100% unit tested, and the typedefs depend on the new
STD_STRING_USES_COW configuration variable. The only missing bit is to detect
clang and disable STD_STRING_USES_COW for clang.
2014-12-07 13:14:17 +01:00
Georg Baum
46f7b578b2 First version of trivstring class (bug #9336)
As discused on the list. This is not used yet, but it is intended to provide
thread-safe read-access without the need for synchronization if the used STL
implementation does not provide it for std::basic_string. This is the case for
all implementations using copy-on-write.
2014-12-07 13:14:17 +01:00
Juergen Spitzmueller
2614d5a386 Use appropriate (cheaper) conversion. 2014-12-07 13:06:29 +01:00
Uwe Stöhr
0d63bdfc16 tex2lyx/text.cpp: bring back a comment as discussed 2014-12-04 00:57:14 +01:00
Georg Baum
49af9db623 Remove unneeded typedef
docstring is already defined in strfwd.h (which is included from docstring.h).
There are only two possible cases:
Either the typedef in docstring.h defines an identical type (then it is not
needed), or it defines a different type (then it generates a compilation error)
=> it is not needed.
2014-12-03 21:08:13 +01:00
Juergen Spitzmueller
a25569ebb3 Add a layout tag ForceOwnlines that assures an inset is started and terminated by a line break in the LaTeX output.
Fixes: #8875.
2014-12-01 14:56:47 +01:00
Juergen Spitzmueller
e5e8bff75b corrected_env: use breakln instead of hardcoded linebreak 2014-12-01 14:45:11 +01:00
Uwe Stöhr
7e69ac220d tex2lyx: support for KOMA-script's \caption* commands
- To my knowledge tex2lyx supports now all caption constructs provided by LyX.
- InsetArgument is correct here, I therefore deleted the FIXME.
2014-12-01 02:57:12 +01:00
Georg Baum
208e67c7a7 Avoid implicit copy 2014-11-30 12:59:00 +01:00
Georg Baum
38d387d1ab Remove heavy includes 2014-11-30 12:52:01 +01:00
Georg Baum
06cfd26d5e Fix return value of CVS::toString() + cosmetics
CVS::toString() returns a docstring, so rather be explicit than relying on a
cast that not everybody understands how it works at first sight.
2014-11-30 12:41:49 +01:00
Georg Baum
e066dd6bd9 A stringstream is overkill here 2014-11-30 12:37:43 +01:00
Enrico Forestieri
11b7b7234e Fix bug #9342: LaTeX build get stuck for unconventional path name
The reason being that the TEXINPUTS path list was not quoted on Windows.
This was no problem with spaces but some special characters are
interpreted by the shell and can cause problems. In this particular
case, the '&' character was being interpreted as a command separator.
2014-11-27 21:59:09 +01:00
Jean-Marc Lasgouttes
38f8858671 Fix warnings reported by clang
All these problems have the same root: the address of a reference can never be 0, and it does not make sense to test it.
2014-11-27 19:10:43 +01:00
Georg Baum
2c5c2a6683 Better fix for bug #8679
Thanks to Enrico, who noticed that the previous fix did not take into account
the case of nonempty length argument + the next line beginning with [.
Now the parsing is exactly the inverse of InsetMathGrid::eolString().
2014-11-26 22:06:15 +01:00
Jean-Marc Lasgouttes
8d6d21c6d9 Add new variables lyx_build_date/time
These are now in version.cpp. The build machinery should therefore make sure
that version.cpp is recompiled at every compilation.

These variables are now referred to by the other places that made use of __DATE__ and __TIME__.
2014-11-25 18:58:35 +01:00
Uwe Stöhr
bfc4af2d01 tex2lyx/text.cpp: add missing part of a comment 2014-11-25 00:53:35 +01:00
Uwe Stöhr
1427b6fe31 tex2lyx: support for glue lengths in InsetSpace 2014-11-25 00:50:39 +01:00
Jean-Marc Lasgouttes
af1ca8405f Fix bug in 81badf: char_type and double do not have the same size 2014-11-24 22:51:12 +01:00
Jean-Marc Lasgouttes
0b09424017 Autotools: read git commit hash at compile time
Also do as cmake to avoid full recompilation when the hash changes.
2014-11-24 22:00:21 +01:00
Uwe Stöhr
489cdae255 tex2lyx: support relative lengths in \vspace and \hspace 2014-11-23 04:56:47 +01:00
Uwe Stöhr
c2e0f22385 tex2lyx/Preamble.cpp: add support for all \defskip lengths
- support for percentage length was missing and the fix is really that simple
2014-11-23 03:28:07 +01:00
Uwe Stöhr
02b2cd50ed tex2lyx/TODO.txt: \=*{char} is already supported by tex2lyx 2014-11-23 01:30:13 +01:00
Uwe Stöhr
d179ef455c tex2lyx/TODO.txt: the UGM fonts are already fully supported 2014-11-23 00:40:47 +01:00
Jean-Marc Lasgouttes
9b530e59c2 Let the Foot inset have a different Layout when inside a title
This allows to address two main issues
 * \thanks does only accept one paragraph, while \footnote allows several (ticket #2666)
 * footnotes in titling environments were not numbered on screen.

Moreover, the code reduces hardcoding of features, which is always a good thing.

There are several pieces in this commit:

 * new numbering type \fnsymbol for counters

 * the Foot inset changes its layoutName() to Foot:InTitle when inside a paragraph with InTitle property. This is set when running updateBuffer.

 * Foot:intitle uses the \thanks command, does not allow multiple paragraphs and marks its contents as moving argument.

 * The InsetLayouts for Foot now have properLaTeXName/Type, so that InsetFoot::latex can be removed; further code simplification is probably possible.

Fixes: #2666
2014-11-21 10:23:56 +01:00
Georg Baum
0385ef0e19 Fix unwanted curly braces in formula (bug #8679)
There was an unsymmetry between reading and writing: InsetMathGrid::eolString()
adds curly braces if the first cell of the next line starts with [ to prevent
misparsing as optional argument of \\. These braces were not removed on reading.
2014-11-20 22:05:05 +01:00
Uwe Stöhr
2a1ab8b6f0 tex2lyx/Preamble.cpp: whitespace fix
- revert unnecessary change from previous commit
2014-11-20 02:03:06 +01:00
Uwe Stöhr
5c9667d8b8 tex2lyx: support for the libertine fonts
- all libertine font variants are now supported
2014-11-20 02:01:05 +01:00
Georg Baum
a180414975 Fix viewer file paths on windows (bug #8892)
Some applications do not accept forward slashes, so call external viewers
and editors with backward slashes which is the usual convention under windows.
2014-11-19 22:47:36 +01:00
Georg Baum
5ea48e077b Show export message also for non-threaded export 2014-11-19 22:45:25 +01:00
Stephan Witt
f7418758ab use enchant exception message accessor 2014-11-18 22:06:27 +01:00
Georg Baum
f3370c3e6a Remove unneeded mutable keywords 2014-11-18 21:08:43 +01:00
Georg Baum
f7be88ce4c Make document_language non-mutable
The many occurances of the mutable keyword in LyX sources make it quite
difficult to understand what is really const and what not, and to debug
multithreading memory problems. In this particular case it is not needed
at all to have a mutable member, so make it non-mutable.
2014-11-18 20:51:21 +01:00
Stephan Witt
2992bb04da Add lookup for standard location of hunspell dictionaries of Debian packages 2014-11-18 08:56:23 +01:00
Stephan Witt
5c90303c0a Add diagnostic messages for enchant spell checker dictionary requests 2014-11-18 08:48:41 +01:00
Scott Kostyshak
937a52b64d Do nothing if converting to the same type of Note
The advantage is that the buffer will no longer be
marked as dirty when converting to the same type.

A quick break here is done instead of disabling the
LFUN because disabling the LFUN would lead to a greyed out
entry, which might confuse users. In the future, we might
want to have a radio button for switching between notes.
2014-11-17 19:47:37 -05:00
Georg Baum
e5845fea49 Fix memory error detected by valgrind
The assignment name = sub.str(1) reads from the first argument given to
regex_match(), but previously this was a temporary object which was already
out of scope. This did probably not matter much in practice, but invoked
undefined behaviour, and as we all know this is allowed ton format your hard
disk or kill to your cat, so better fix this.
2014-11-17 22:08:21 +01:00
Georg Baum
f146bded7a Document Buffer::preview() 2014-11-17 22:07:38 +01:00
Jean-Marc Lasgouttes
689e54f34a Make sure that UpdateLocker is used correctly in the future 2014-11-17 11:52:14 +01:00
Uwe Stöhr
e4fb40b284 symbols: support the AMS commands \l(r)v(V)ert
- fixes bug #3538
2014-11-16 23:09:28 +01:00
Georg Baum
4d3f9f3ede Make doExport() helper private
One declaration of doExport() was not used, and the other one was only used by
Buffer, so make it private since returning the exported file name is a bit
strange if it can also appear as input argument.
2014-11-16 20:51:42 +01:00
Georg Baum
9d8839f688 Clarify member variable documentation 2014-11-16 19:15:13 +01:00
Stephan Witt
941868e8d7 #9317 add method cleanDuplicateEnvVars() to correct the broken environment with duplicate PATH values passed by Yosemite's launchd(8) 2014-11-16 17:21:46 +01:00
Georg Baum
f110ef2f41 Convert updatelayouts.sh to python
This makes the script usable on windows and speeds it up by an order of
magnitude, since no new process needs to be forked for each layout file.
It also does not conevrt .old files again.
2014-11-16 12:43:52 +01:00
Georg Baum
e7a8f63e1b Fix typo 2014-11-16 12:40:23 +01:00
Richard Heck
df7b0eb61d Get rid of boost::noncopyable. 2014-11-14 23:40:27 +00:00
Georg Baum
0f2069b8a5 Fix recursive math macro crash (bug #9140)
This is different from bug #8999, since in this case a new macro instance is
created. You still get a TeX capacity exceeded error if you try to typeset the
exported document, but this is the same as for bug #8999 and better than a
crash.
2014-11-14 21:30:42 +01:00
Georg Baum
0bf8b8a1d2 Load footmisc.sty instead of using outdated code
This is a patch I originally sent to lyx-devel in 2012 with subject
'Load footmisc.sty instead of using copied code from obsolete stblftnt.sty'.
It now takes all comments into account: It works also if the user loads the
package herself, it can be disabled by providing the footmisc feature in a
layout, and it does not use the ugly \AtBeginDocument{}.
2014-11-14 20:20:35 +01:00
Uwe Stöhr
ff85a4902e mathed: bformat infoize messages
- should fix bug #1908
2014-11-14 18:18:30 +01:00
Jean-Marc Lasgouttes
81badf8550 Fix overflow of inset over text (see #9224)
The symptoms are the same as the original #9224, but the reason is different. In the new code, the width of justified rows includes the Row::separator value. Therefore the CRC computed in ParagrahMetrics::computeRowSignature is not updated in some cases.

The fix is to add Row::separator as one of the elements of the row crc.
2014-11-14 11:20:21 +01:00
Jean-Marc Lasgouttes
3cbdfa1762 Fix some glitches in inset-select-all
Fix a crash reported in #7727. This happened because cur.pos() was reset before cur.pit(). In this case, cur.lastpos() will usually be wrong.

Fix bad behaviour when selecting at top level with several paragraphs.

Update documentation.
2014-11-14 10:18:34 +01:00
Richard Heck
be4646c8ac Whitespace. 2014-11-12 00:01:45 +00:00
Georg Baum
5deaaa3b13 Fix memory errors found by Alfredo with valgrind
BufferParams::setDocumentClass() deletes the old document class of the buffer
and creates a copy of the new one. Therefore, the stored layout pointers in
the paragraphs (actually only one paragraph exists) are dangling afterwards.
Resetting them before setting the document class helps here.
In the long term we need to get rid of BufferParams::setDocumentClass()
completely, this is very ugly.
2014-11-11 20:57:25 +01:00
Georg Baum
8f93600d3f Prevent accidental usage of wrong copy constructor 2014-11-11 20:57:25 +01:00
Uwe Stöhr
ec84cbfb44 tex2lyx: support for \item with opt arg in itemize environment 2014-11-11 01:20:03 +01:00
Uwe Stöhr
20cfef458f tex2lyx/TODO.txt: update file and add information 2014-11-11 01:06:51 +01:00
Jean-Marc
093a1fe14c Fix inset-select-all for insets with multiple paragraphs 2014-11-10 11:56:21 +01:00
Uwe Stöhr
9eae2b141d test-insets.lyx.lyx: forgot to commit this in r471889e0 2014-11-10 03:34:01 +01:00