Commit Graph

229 Commits

Author SHA1 Message Date
Guillaume Munch
9f2fcf20a5 Fix compilation with Qt5.8dev
(cherry picked from commit 6d375ddeac)
2017-02-26 00:13:23 +01:00
Enrico Forestieri
857548d33b Allow inserting consecutive dashes
Because latex allows to do so, and there is no easy way to achieve this.
This was apparently implemented to allow cycling between the various dash
types, but it was a bad idea bringing no benefit and causing griefs.
2017-02-25 21:00:25 +01:00
Juergen Spitzmueller
c8f40508e7 Use \providecommand for logical markup macros
\strong is already defined by recent fontspec.

Also use non-long definition (starred version), since the insets
only contain one paragraph.
2017-02-23 18:18:45 +01:00
Juergen Spitzmueller
53933a4927 Compatibility fix for acmsiggraph.cls v0.93
Reported by Jean-Pierre Chrétien, fix suggested by Günter Milde.

Also add a note about obsolescence of the class, by Jean-Pierre.
2017-02-23 18:17:19 +01:00
Juergen Spitzmueller
508f4deae2 Output Preamble code of InPreamble styles before the styles themselves.
This assures that macros are defined.

Fixes: #10215
2017-02-23 10:53:30 +01:00
Jean-Marc Lasgouttes
e76a0fb8d8 Fix crash when selecting muticolumn in math
The cells that are part of the multicolumn are not in the cache, and
it is OK.

Fixes bug #10486.
2017-02-23 10:51:12 +01:00
Juergen Spitzmueller
9ac3e3a49a Fix Fixme module description to make it translatable
See #10058
2017-02-23 10:44:05 +01:00
Uwe Stöhr
3d3312042b zh_CN.po: updates from Zheru
- also add Zheru to the CREDITS
2017-02-14 00:17:51 +01:00
Juergen Spitzmueller
39cee7396b Use localized item when calculating the panel stack's tree widget width.
The current version was wrong for non-English dialogs, and even for
the English one, due to the translator commands that were not removed
for calculation (as in "Formats[[output]]").
2017-02-07 07:56:44 +01:00
Juergen Spitzmueller
8a0696db29 Correctly enable/disable citation dialog widgets on initialization.
Thanks Guillaume for pointing this out.
2017-02-06 18:24:51 +01:00
Jean-Marc Lasgouttes
1438123a13 Fix flushing of row that was cut after an hyphen
When using Qt stuff in breakAt, it may happen that the row is broken
after an hyphen (whereas the old code would only consider spaces).

The fact that we abuse the Row::right_boundary() property to detect when
a row should be flushed broke justification when a row is cut at an
hyphen.

Fix this by introducing a new Row::flushed() property and set it as needed.
(cherry picked from commit 8e7d0c2002)
2017-02-06 10:39:38 +01:00
Jean-Marc Lasgouttes
b0673bd1fa Fix wrong splitting of text row
The code that tries to decide whether it is worth splitting a given
text row element had a shortcoming: it did not take into account the
left margin of the new row that would be created.

The problem is that this left margin is not the same as the left
margin of the current row, because there can be for example
indentation effects.

To fix this problem, we pass the amount of available space on the
next row as a parameter of Row::shortenIfNeeded.

Note that there is no need to care about RtL row elements at this
point, since the bidi algorithm will be applied to the row
subsequently.
(cherry picked from commit 8491962c6b)
2017-02-06 10:37:12 +01:00
Jean-Marc Lasgouttes
59577dea7a Handle properly unicode paragraph/line break
They are shown on screen by arrow or pilcrow symbol and cause a line break.

They are still not handled in LaTeX output, though.
(cherry picked from commit 6dfbab3124)
2017-02-06 10:28:22 +01:00
Jean-Marc Lasgouttes
90688b63be Make sanitize more robust to dangling pointers.
It is necessary to sanitize the new_word iterator too.
(cherry picked from commit 344f7f2e7d)
2017-02-02 13:57:12 +01:00
Juergen Spitzmueller
a50ad8f926 Handle backslash in escape function.
Fixes: #4595.

Candidate for stable
2017-01-28 09:27:45 +01:00
Juergen Spitzmueller
efca146571 Generalize the protection of brackets in citation arguments
Whenever an argument delimiter is used inside the argument, the argument
needs to be grouped, that is

\cites({text (text) text})

or

\cite[{text [text] text}]

This fixes the original case reported in #2751 which is independent
from the general issue that the pre- and postnote field take literal
code.
2017-01-26 18:32:26 +01:00
Uwe Stöhr
ee5c96149e pt_BR.po: update from Georger 2017-01-23 01:12:09 +01:00
Richard Heck
6693fe5d6d Add some remarks about defining formatted references. 2017-01-19 15:26:31 -05:00
Richard Heck
dc7a5ecea1 Do not replace "--" with "\twohyphens" in formula macros.
(cherry picked from commit 5cb5d2cb5a)
2017-01-18 21:52:14 -05:00
Richard Heck
1d93cfca8f Section and Section* should have the same font size.
Going with normal corresponds better to how the PDF displays.

(cherry picked from commit cb6ea90256)
2017-01-14 16:14:24 -05:00
Juergen Spitzmueller
6a0de80b6b We don't have formatToolTip in stable. Use wrap instead.
Sorry for the hassle.
2017-01-13 11:32:36 +01:00
Guillaume Munch
4c5312f603 status.22x 2017-01-09 23:16:31 +01:00
jpc
0bfae01c6f Update status.22x 2017-01-09 10:20:06 +00:00
Enrico Forestieri
a9dd6ea6bc Avoid useless warning from Qt
When cloning InsetExternal, the tempname_ member of InsetExternalParams
has yet to be initialized. So, trying to remove it causes the warning
"QFile::remove: Empty or null file name".

(cherry picked from commit 25e6b5da39)
2017-01-08 18:48:55 -05:00
Richard Heck
3a1eff90b9 Escape link name for DocBook.
Thanks to Martin Brown for pointing out the bug, and the obvious
solution.

(cherry picked from commit 06e2669b35)
2017-01-08 13:51:18 -05:00
Jean-Marc Lasgouttes
d76309913f Add caching for the QTextLayout objects we use
The QTextLayout handling is terribly slow on Qt 4.8.7, but some
caching has been added in Qt5 that makes it much faster. For some
reason, it is not that slow with Qt 4.8.1.

Caches are introduced for the three following methods

* width(doctring), controlled by CACHE_METRICS_WIDTH. This cache already
  existed, but the code has been cleaned up

* getTextLayout, controlled by CACHE_METRICS_QTEXTLAYOUT (disabled by
  default on Qt5, which does its own caching). This is used for pos2x
  and x2pos and now for drawing of text too. The previous code used a
  trivial caching scheme of the last used QTextLayout, but now they
  are properly kept in a QCache. Moreover, the cacheEnabled() property
  is enabled for these QTextLayout object (not sure what this does).

* breakAt, controlled by CACHE_METRICS_BREAKAT. This is the only user
  of QTextLayout which did not have some kind of caching already.

For some weird reasons related to Argument-dependent look-up, the
qHash(docstring) function has to be defined in std namespace, since
lyx::docstring is actually std::basic_string<wchar_t>.

(cherry picked from c5119c97fc)
2017-01-06 22:47:32 +01:00
Juergen Spitzmueller
54fa0d51da Fix two hyperlink-insert problems
1. Do not prematurely cut selection (#10306); patch proposed by Daniel Ramöller
2. Obey lfun argument, even if there is a selection
2016-12-29 19:30:36 +01:00
Jean-Marc Lasgouttes
5962cea9d2 Fixup c49cd699: QString::toStdString is not always available
This method requires STL support in Qt. Fortunately, it is not needed
here.
2016-12-29 08:43:31 +01:00
Juergen Spitzmueller
6c4c164531 Fix some quote inset bugs:
* Adjoining closing Single + double quote becomes double + single quote
  (for English, Swedish and German, LaTeX export as ''').

* French double quotes are converted to << >> in the LaTeX file and to
  double inverted question/interrogation marks in the output, if the font
  encoding is set to [None] or OT1 but the global default is T1. (test
  for lyxrc.fontenc instead of the document-specific fontenc setting in
  InsetQuotes.cpp).

* Quote type ignored for LyXHTML: always "English" quotes used.

See #10451
2016-12-07 18:51:03 +01:00
Richard Heck
39e3fabffb Verbatim, etc, can be used with IOP articles.
Fixes #10505.

(cherry picked from commit 91f980cf31)
2016-12-06 17:56:46 -05:00
Enrico Forestieri
9435dd6b52 Fix display and output of math macros with optional arguments
This is a long standing issue, present since the new math macros
inception in version 1.6. It manifests as a display issue when a
macro with optional arguments appears in the optional argument of
another macro. In this case the display is messed up and it is
difficult, if not impossible, changing the arguments as they do not
appear on screen as related to a specific macro instance. It also
manifests as latex errors when compiling, even if the latex output
is formally correct, due to limitations of the xargs package used
to output the macros. Most probably, both aspects have the same
root cause, as simply enclosing in braces the macro and its
parameters solves both issues. However, when reloading a document,
lyx strips the outer braces enclosing a macro argument, thus
frustrating this possible workaround.

This commit solves the display issue by correctly accounting for
macros with optional arguments nested in the argument of another
macro, and circumvents the xargs package limitations causing errors
by enclosing in braces the macros with optional arguments appearing
in the argument of an outer macro when they are output. This means
that when loading an old document with such macros and saving it
again, the macro representation is updated and will have these
additional braces. However, as such braces are stripped by lyx on
loading, there is no risk that they accumulate.

See also this thread:
http://www.mail-archive.com/lyx-devel@lists.lyx.org/msg197828.html
2016-12-04 22:52:22 +01:00
Uwe Stöhr
e5954386d2 Arabic Tutorial.lyx: new translation by Hatim 2016-12-02 02:15:55 +01:00
Daniel Ramöller
060a9664f7 Add the icon-size to the toolbar menu
- Adds LFUNs for setting the icon size
- Adds icons sizes to the Toolbars menu
- Uses the Toolbars menu as application context menu
- The context menu can now be user defined in stdcontext.inc

When the logical sizes differ and the icon set is changed, the correct
sizes are established only after a restart.

Fixes ticket #10428.

(cherry picked from commit e91572a00b)
(cherry picked from commit 6c92075799)
(cherry picked from commit 7971dc83ef)
2016-11-25 10:33:21 +01:00
Jean-Marc Lasgouttes
133c2c62ee Make insertInset use a temporary cut-and-paste area.
This is a long wanted feature, although it does not go all the way to
fix #6604 (private-cut/private-paste).

Additionally, it fixes a crash that can happen when using undefined
branches. This is done by making the action when pasting unknown
branches configurable.

Fixes bug #6570.
(cherry picked from commit fb264663d8)
(cherry picked from commit 004fdf6aeb)
2016-11-23 12:26:05 +01:00
Uwe Stöhr
1fbe23a028 encodings: use correct encoding "latin7" for ISO 8859-13
- fixes bug #10474
2016-11-08 00:49:01 +01:00
Uwe Stöhr
fdfcb947c7 FeynmanDiagrams.lyx: fix compilation
recent KOMA script versions don't accept \rm anymore
2016-11-07 23:45:44 +01:00
Guillaume Munch
bac0780b27 Always prefer breaking at word boundaries
An overlong word containing a hyphen could be broken anywhere, instead of after
the hyphen.

Example: compare the line breaking of

   aaaaa-aaaaa-aaaaa-aaaaa

with

   aaa aaaaa-aaaaa-aaaaa-aaaaa

(with a very narrow window)

This also improves Chinese text in some situations (#10299)

(cherry picked from commit 50ccbd2eab)
2016-11-07 23:28:07 +01:00
Enrico Forestieri
8a1f936ff1 Strike out (in the output) deleted display math with track-changes
Showing deleted display math by enabling "Show Changes in Output" was
only possible with dvi (through dvipost). Although LyX strikes out
such formulas on screen, it was impossible obtaining an output
directly using pdflatex (or other engines producing pdf) because
ulem cannot cope with display math material and gives errors.
The solution is to strike out by ourselves such deleted formulas.
I took into account several options. One of them would produce
an output similar to dvipost (which strikes out each element), but
would have required much more changes in the output routines.
Eventually, I opted for using tikz, which gives a more clean
output (as it requires to simply adding a preamble and a postamble
to the latex code of any displayed math, instead of a mark up
tailored to each particular math construct). The look of the pdf
output is similar to the way LyX strikes out the equations on screen.

Fixes #9678
2016-11-05 21:31:09 +01:00
Jean-Marc Lasgouttes
b9edbfee40 Clear background behind sub-labels when necessary.
This is analogous to what has been done to address #4889 and #10359.

Fixes bug #10475.
(cherry picked from commit d207e85cfd)
2016-11-04 18:01:49 +01:00
Jean-Marc Lasgouttes
a0b8ea2eee Fix height of cursor inside insets
It turns out that Cursor::getFont() does not return a fully realized
font in some cases. This patch uses real_current_font instead, which
seems better anyway.

I suspect that all uses of getFont() should be removed, but this is
not code that I know well.

Fixes bug #10478.
(cherry picked from commit b099d9ae15)
2016-11-04 17:58:32 +01:00
Jean-Marc Lasgouttes
ea3cdb1552 QString only uses UTF-16, not UCS-4
This means that, when a string contains high-plane Unicode characters,
the length of a docstring and the corresponding QString will be
different: Qt will encode these characters using several 16bit
characters.

We have additionally to take into account QTBUG-25536, which implies
that sometimes qstring_to_ucs4(toqstr(s)) !=s. It is not clear whether
this bug can be a problem in other places.

Fixes bug #10443.
(cherry picked from commit 5d85a42bf0)
2016-11-04 17:56:02 +01:00
Daniel Ramöller
3372c0cf55 In Color Preferences "frame of button" should be "button frame"
Fixes #10135.
(cherry picked from commit f054721410)
2016-11-03 16:44:48 +01:00
Juergen Spitzmueller
008c229041 Fix usage of multiple varieties of the same polyglossia language.
1. We must always output all (diverging) options, including
   default options; if not, default options might get overwritten.

2. Do not output options in \setotherlanguage, since we might have
   multiple "other languages" varieties from the same language (such
   as naustrian, nswissgerman). And the options are output for the
   language switches anyway.

Hence, LaTeXFeatures::getPolyglossiaLanguages() does not have to record
varieties. This was not done correctly anyway, since the map allowed
for one entry per language only.
2016-11-02 18:04:26 +01:00
Jean-Marc Lasgouttes
065cd36922 Reimplement RowPainter::paintSelection() using row elements
The code is much simpler now and can be actually understood.

As a byproduct, fix bug #10424.

(cherry picked from commit a700d657b3)
(cherry picked from commit 2037cc5ef5)
(cherry picked from commit 4159cf97c1)
(cherry picked from commit 695b0cc33b)
2016-11-02 11:10:05 +01:00
Uwe Stöhr
22d30bf86e ar.po: translations by Hatim 2016-11-01 15:07:50 +01:00
Tommaso Cucinotta
f1b8635789 status update for commit 33103ebc 2016-11-01 09:57:43 +01:00
Juergen Spitzmueller
20e667e208 Use Buffer::validate() when previewing single paragraph
We used to use BufferParams::validate(), which does not validate the
paragraphs.
2016-11-01 08:29:28 +01:00
Juergen Spitzmueller
d190ae7787 Issue an error message if conflicting languages are used
Some languages are only supported by Babel, some only by Polyglossia.

If these are combined, we issue an error message now.

Fixes: #10456
2016-10-31 10:26:35 +01:00
Juergen Spitzmueller
9e2d101d5c Handle | verbatim in index insets. 2016-10-31 10:22:43 +01:00
Enrico Forestieri
0dd7505ec6 Sort the language nesting mess with polyglossia
When using polyglossia, lyx was making a real mess when changing
language inside nested insets. The \begin{language} and
\end{language} commands were not well paired such that they could
easily occur just before and after the start or end of an
environment. Of course this was causing latex errors such that
"\begin{otherlanguage} ended by \end{environment}".

Fixes #9633
2016-10-30 00:16:50 +02:00