Commit Graph

23348 Commits

Author SHA1 Message Date
Guillaume Munch
998c3e7c8e Introduce support/Cache.h
Useful to cache copies of objects, including shared_ptrs. No risks of dangling
pointer, and avoid naked pointers in the source.

Fix memory leak when compiling with Qt5.

As part as the backport to stable, this code has been change to work
with C++98.

(cherry picked from commit 33b696c8ac)
(cherry picked from commit e04079aa52)
(cherry picked from commit 5211ca52ca)
(cherry picked from commit 8353a53cc3)
2017-02-23 18:07:30 +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
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
ddac5a7f59 Compilation fix in C++98 mode. 2017-02-06 10:28:47 +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
Guillaume Munch
2305fd838c Fix compilation with --disable-cxx11 2017-01-26 01:10:39 +01:00
Jean-Marc Lasgouttes
81465da5d5 Fix metrics of math characters with 0 width
It seems that QTextLayout does not handle properly a single character
with 0 width. This breaks drawing of things like \not.

No status line needed as this amends 24648404.
2017-01-21 00:30:20 +01:00
Richard Heck
239be02234 Allow LyX to open empty files (created, e.g., via "touch").
Patch from new contributor Jan Niklas Hasse.

(cherry picked from commit 0d77a7e325)
2017-01-19 15:37:08 -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
Juergen Spitzmueller
ca9c8dbde1 Assure long tooltip is correctly formatted.
Amendment to ffb195b5e9
2017-01-13 09:09:43 +01:00
Juergen Spitzmueller
8184156f8f Clarify layout and add some tooltips
Addresses: #9795
2017-01-12 09:06:26 +01: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
Richard Heck
f7558646b1 Fix DocBook DTD identifier for XML output.
Thanks to Martin Brown for the correct one.

(cherry picked from commit b730419470)
2017-01-08 13:40:01 -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
5de448e132 From c7899a30a0b5975bf599a69ecd11ab25e1cdf1a4 Mon Sep 17 00:00:00 2001
From: "Joel A. Kulesza" <jkulesza@gmail.com>
Date: Mon, 24 Oct 2016 17:37:58 -0600
Subject: [PATCH] Add "Swap & Reverse" to math delimiter dialog

When "Keep matched" is unchecked, a button becomes enabled to "Swap &
Reverse" the left and right delimiters.  This is expected to be of use
with line-wrapped equations featuring one or more set of delimiters that
break across the lines.  When "Keep matched" is checked, the button is
visible but disabled.

The most common use case is expected to be the user entering a pair of
unmatched delimiters on the first line of an equation (e.g., "(" and
"(None)"), entering the inner text, going to the next line, and
inserting the opposite set of delimiters (e.g., "(None)" and ")").
This button will negate the need to find the correct corresponding
combination.  However, it relies on the dialog's memory of the previous
unmatched set.

This change addresses Ticket #10457

-----------

Modifications by spitz to the original patch:

* Only enable the button if an unmatched pair is selected
* Consider l7n when locating the string "(None)"
* Add an accelerator and a tooltip to the dialog
* Simplify the code a bit
2016-12-29 08:39:34 +01:00
Guillaume Munch
2a4538ad56 Do not rely on toolTip() to generate LaTeX code 2016-12-29 08:39:01 +01:00
Juergen Spitzmueller
458f03b131 Limit ligature protection to quote ligature chars
No status entry necessary (this is and emendment to an existing fix)
2016-12-14 09:07:43 +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
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
Guillaume Munch
adb00dbcf8 Work around dangling pointer
This pointer has been removed in master, but backporting the workaround is
enough.

(cherry picked from commit 79a947c904)
2016-12-03 12:58:12 +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
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
Jean-Marc Lasgouttes
6ab1f79b7c Round values properly when drawing right margin selection
This fixes a compiler warning reported by Uwe.
(cherry picked from commit 75fce32556)
2016-11-04 16:00:55 +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
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
Tommaso Cucinotta
33103ebc37 Show symbol name and description in plaintext export of nomenclature entries.
This addresses one of the issues highlighted in #10459.
See http://www.lyx.org/trac/ticket/10459
2016-10-31 23:07:02 +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
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
Enrico Forestieri
3508c7bc8a Quote filenames used for forward-search with SumatraPDF
Single quotes are special to our parser and must be either escaped or
quoted if they are part of a filename, otherwise they are stripped out.

Fixes #10342.
2016-10-27 04:16:04 +02:00
Enrico Forestieri
f8d3a8860b In mathed, require xcolor instead of color when appropriate
Fixes bug #10417.
2016-10-27 03:18:29 +02:00
Jean-Marc Lasgouttes
24648404b3 Work around issues with Qt5 and Arabic text
This fixes two particular problems

* with Qt5, it seems that QFontMetrics::width does not return the
  correct value for some Arabic text; this patch uses QTextLayout
  instead to compute a string width

* Likewise, the undocumented layout flags TextForceRightToLeft and
  TextForceLeftToRight do not work with Arabic text; this patch uses
  unicode override characters instead.

It might be that the two issues are related. In any case, they do not
happen with latin text where right-to-left direction is enforced. And
they do not happen with Qt4.

Additionally, remove some dead code in GuiFontMetrics::pos2x().

Fixes bug #10436.

(cherry picked from commit e832d2e90f)
2016-10-26 16:17:18 +02:00
Jean-Marc Lasgouttes
10b8421ed6 Remove unused methods in anononymous namespace
These have been flagged by gcc 6.
(cherry picked from commit 4065f596ad)
2016-10-26 15:15:54 +02:00
Jean-Marc Lasgouttes
d03a07b93a Fix compiler warning from clang 3.9
(cherry picked from commit fbba865d28)
2016-10-26 15:14:38 +02:00
Jean-Marc Lasgouttes
1d4d07b66e When selecting special logos, set their color correctly
Adapted from 860accd01f.
2016-10-26 11:19:49 +02:00
Enrico Forestieri
4ad8be330e Show on screen font changes for text-in-math 2016-10-25 20:24:26 +02:00
Günter Milde
ded70f24f6 Fix #10394 Do not error on missing characters in "nullfont".
Add an exception to the conversion of "missing character" warnings into errors.

The PGF package deliberately uses the dummy font "nullfont" to suppress output.
Therefore, warnings about missing characters in "nullfont" are really only warnings.

Also updated the comment: "Missing character" warnigns are especially widespread
in XeTeX/LuaTeX but can also happen with "classical" 8-bit TeX.

Feel free to port this to branch.
2016-10-23 17:16:26 +02:00
Juergen Spitzmueller
5b2f5d056a Amend 2c4673af58
Also consider xrefs in crossref'ed entries.
2016-10-23 08:12:34 +02:00
Juergen Spitzmueller
95f7545823 Improve info display for biblatex databases, part III
When resolving biblatex's xdata references, consider that xdata fields
can contain a comma-separated list of keys, not just a single key like
crossref.
2016-10-23 08:11:53 +02:00
Juergen Spitzmueller
0f21c5caf6 Regex fix for endyear
As of biblatex 3.5, years and endyears can be negative (BCE).
2016-10-23 08:11:30 +02:00
Juergen Spitzmueller
a887eb6300 Improve info display for biblatex databases, part II
In addition to the classic crossref, biblatex introduces xdata
references in order to source-out common data of entries. Entries
that have "xdata = {somekey}" just inherit all fields from the
respective @xdata entry, if the field is not already defined in
the entry itself (just like crossref, with the exception that @xdata
entries themselves are _never_ output on their own). @xdata entries can
themselves inherit to other @xdata entries (ad infinitum). So you can,
for instance, setup an xdata entry for a book series with series name
that inherits an xdata entry with information of the publisher
(publisher, address). Any book of that series would just need to refer
to the series xdata and add the number.

BiblioInfo now checks, in addition to crossrefs, for such xdata
references and inherits missing fields.

Nte that biblatex also introduces an "xref" field as an alternative to
crossref. We must not care about that, since the point of xref is that
it does not inherit fields from the target (just cites that one if a
given number of refs to it exist)
2016-10-23 08:11:14 +02:00
Juergen Spitzmueller
e7e0472742 Improve info display for biblatex databases
If an entry does not have a year field, check for a date field
(the common type in biblatex databases) and extract the year(s).

Candidate for branch.
2016-10-23 08:10:37 +02:00
Guillaume Munch
5e447d133e Better error message when try to bind a Hidden LFUN
(cherry picked from commit 1f2d7f4db9)
2016-10-22 20:07:42 +02:00
Guillaume Munch
bf588abfbd Prioritize the shortcuts from the work areas
* Fix bug #10261 : KDE smartly adds conflicting accelerators.

* Prevent bugs like #9495 in the future.

Issues (non-regression):

* It does not appear possible to prevent Ubuntu's Unity from grabbing the
  accelerators for the menus. For instance Alt+A still opens _Affichage in the
  French localization.

(cherry picked from commit eb8c5905f6)
2016-10-22 20:07:42 +02:00
Guillaume Munch
a36706c3ff Better title for ViewSource
The title is changed to "LaTeX (pdflatex) Preview", etc. depending on the
format. The actual default format is computed.

The menu name "Source Pane" is replaced by "Code Preview Pane" to better reflect
its purpose.

(cherry-picked from ca58674267)
2016-10-22 20:07:42 +02:00
Guillaume Munch
ef7e344318 Change "Output" into "Formats"
This reverts commit 030f4c6d1e.

The plural form seems more appropriate and the tag [[output]] is added for
disambiguation (e.g. for the French translation).
2016-10-22 20:07:41 +02:00
Juergen Spitzmueller
37d30288af Fix LaTeX output of fixed-width cells with decimal separator
This follows Uwe's suggestions (and discharges my own).

The result is not ideal, but there is currently no ideal solution.

Fixes: #9568
2016-10-22 19:27:53 +02:00
Juergen Spitzmueller
0be77e2eb2 Implement wrapping in next-change (#10388). 2016-10-22 19:25:07 +02:00
Juergen Spitzmueller
5c4fa40849 Move wrap check for simple search/replace to lyxfind
This gets rid of some dirty dispatch tricks and fixes wrap-around
on replace and in the spellchecker

Fixes: #10378
2016-10-22 19:20:26 +02:00
Juergen Spitzmueller
f23924e824 Refs dialog redesign. 2016-10-21 22:05:54 +02:00
Juergen Spitzmueller
54248a6e98 Citation dialog redesign 2016-10-21 22:03:19 +02:00
Jean-Marc Lasgouttes
4fa54014d7 When breaking an empty paragraph reduces depth, set layout too
This requires an adaptation of the Separator inset insertion code,
which has been duly provided by Enrico.
(cherry picked from commit b162bd6d2b)
2016-10-20 14:50:34 +02:00
Jean-Marc Lasgouttes
4c724a6072 Do some caching of window title and related UI
This should avoid performance problems related to the window update machinery.
Moreover this fixes a crash introduced by e4998f21 when closing a file.

Note that GuiWorkArea::Private already had a read_only_ member, but it
was unused.

Also rename LyXVC::vcname() to LyXVC::vcstatus() since it now contains
directly the UI string to be shown.

(cherry picked from commit 6cb05ce8bb)
(cherry picked from commit 85bcf0d93f)
2016-10-19 17:34:54 +02:00
Jean-Marc Lasgouttes
e4998f21b0 Set window title according to platform UI
The window title is built from the current file name and its
mofidication state. We use our own code instead of the automatic title
bar provided when windowFileName() is set because

1/ Qt does not keep the full path name
2/ Qt does not yield a nice application name
3/ Qt separates file name and app name with an em-dash. It seems that
   only KDE does that: Gnome does not, Windows does not either. I do not
   think that we can/want to detect a KDE environment at run-time.

The "read only" and "version control" status are shown in the status bar:

* for read only we use the tab read only emblem (with the right size)
* for version control, we show the name of the backend (using a new
  vcname() method of the backend).

The iconText() of the view is not updated anymore, since this is
deprecated in Qt5.

(cherry picked from commit 82808fea04)
(cherry picked from commit 9313f8565b)
(cherry picked from commit bbe36ce6ce)
(cherry picked from commit 7cbc0c16a8)
2016-10-17 10:51:46 +02:00
Jean-Marc Lasgouttes
25640ce39c Make *-lyxformat-* backup files use .lyx~ extension
At least now they look like real backup files.

(cherry picked from commit d12ebb00b9)
2016-10-17 10:27:40 +02:00
Jean-Marc Lasgouttes
181ecc51a7 Do not hardcode required packages for Note inset
This does not change the default behavior, but allows to customize it.

(cherry picked from commit db12707655)
2016-10-17 10:22:45 +02:00
Juergen Spitzmueller
90ffcf41eb Sanitize Ref dialog validation.
Fixes: #10376
2016-10-16 11:49:06 +02:00
Richard Heck
3fe8c04274 Fix monolithic build. 2016-10-10 10:24:08 -04:00
Enrico Forestieri
ae0679926e Improve systemlyxdir handling
Do not assume that the /systemlyxdir path prefix in \origin refers
to the system directory of the running instance, but check through
some heuristics what the real system dir is. In this way, a document
in the system dir of any other LyX installation is correctly spotted
and the \origin tag properly updated. For example, one can use an
installed version of lyx to edit a document in the lib/doc dir of a
git repo and obtain the same result as when running lyx in place.

(cherry picked from commit ade098e289)
2016-09-25 12:09:24 -04:00
Georg Baum
701f10a502 Fix data loss with [ in first cell of aligned
If the first character in the first cell of an aligned math environment is
'[', and the environment does not use top or bottom vertical alignment,
then LyX did write the '[' unprotected so that it got misinterpreted as
optional argument, both when reading the .lyx file in LyX and when reading
the .tex file in LaTeX => data loss!
The fix is to output an empty optional argument in this case, which is
interpreted as default alignment both by LyX and LaTeX. It would also be
possible to output \[ in the first cell instead, but this would be more
difficult to implement.
2016-09-12 20:56:05 +02:00
Jean-Marc Lasgouttes
69f0efd797 Set vertical lines in math arrays correctly on Y axis
This is a fixup to commit 39329935. The two fixes are
* add forgotten offset `y' when drawing the line
* in order to have a continuous vertical line, draw from the offset of
  the previous row.

Fixes bug #10363.

(cherry-picked from a27ff136)
2016-09-09 09:56:44 +02:00
Georg Baum
1cbc3b6e54 Fix filter filter regex
Now the external material file dialog shows the file types defined in the
template again. Before this fix it did only show "All files (*)".
I don't know what the old syntax was supposed to do or whether it ever worked
with boost::regex, but with std::regex the new one is correct.
2016-09-08 20:54:40 +02:00
Juergen Spitzmueller
b14d9186bb Amend 7d52d37662
\@ifundefined is an If-Then-ELSE construct.
2016-09-04 17:43:51 +02:00
Juergen Spitzmueller
7d52d37662 Fix for recent luatex versions. 2016-09-04 17:35:11 +02:00
Jean-Marc Lasgouttes
36d0e3032d Amend 3e432ec631
It failed in the case where a selection already existed (the anchor would be wrongly reset).

(cherry picked from commit 68d825fed8)
2016-08-29 18:25:56 +02:00
Jean-Marc Lasgouttes
9e44cd672a Simplify menus when there is only one caption type
This removes the submenu indirection in Insert and the type changer in
contextual menu. Interestingly, the code was there, but it did not
work at all.

(cherry picked from commit e7a33cacf1
and made compatible with C++98)
2016-08-29 13:49:50 +02:00
Jean-Marc Lasgouttes
bbeb3773a1 Do not set layout for no-op paragraph break
When breaking paragraph in an empty top-level paragraph, nothing
happens on screen but yet there is an undo step because the layout is
reset to what it already was.

Avoid this case.

Fixes bug #10089.
(cherry picked from commit 2ad52918da)
2016-08-29 12:09:53 +02:00
Guillaume Munch
1dc8278fef LaTeX highlighter: make at a letter in the user preamble
Syntax highlighting now provides the appropriate cue that the user preamble is
inside \makeatletter…\makeatother.

(cherry picked from commit 10f6eb2e7e)
2016-08-28 02:38:02 +01:00
Guillaume Munch
c8381f7873 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.

(cherry picked from commits 576cb5df77
                            7e9d0a938b
                            efbc297b95)
2016-08-28 01:43:46 +01:00
Guillaume Munch
2da2f6c00c Basic implementation of QSignalBlocker for qt4
(cherry picked from commit bc8eb059db)
2016-08-26 20:42:52 +01:00
Guillaume Munch
49ce94f636 Fix "scroll here" feature of scrollbar (#10311)
Prevent setRange() from causing a recursive call to scrollTo(). Reduces three
calls of scrollTo() to one call for all scrolling functions of the scroll bar
(e.g. clicking on the arrow, dragging, or clicking somewhere on the scrollbar).

(cherry picked from commit 4d7b912ca1)
2016-08-26 20:41:08 +01:00
Juergen Spitzmueller
010284dbe5 Implement proper dialog titles in InsetParamsDialogs
Fixes: #10329
2016-08-26 18:51:01 +02:00
Jean-Marc Lasgouttes
a957879839 Move correctly the end of proof marker when row is large
This was a regression from 2.1.x in LtR mode, and it never worked correctly in RtL mode.

Fixes bug #10344.

(cherry picked from commit 07c7dae367)
2016-08-24 12:04:19 +02:00
Jean-Marc Lasgouttes
3e432ec631 Reset anchor before selecting with S-button1
(cherry picked from commit b583fb26e8)
2016-08-24 11:59:01 +02:00
Jean-Marc Lasgouttes
e2489c1c31 Let M-x give focus to minibuffer when it is already open
(cherry picked from commit 65b0e84b54)
2016-08-23 12:25:16 +02:00
Jean-Marc Lasgouttes
e0730fe070 Remove horizontal spacing around previews
This concerns the preview version of InsetPreview and InsetIPA.

Fixes bug #10304.
(cherry picked from commit 4ddad2f6cd)
2016-08-22 10:20:01 +02:00
Scott Kostyshak
deec55866c Warn in GUI when mixing Title and InTitle layouts
Since we process layouts sequentially, we export LaTeX code for the
title once we arrive to a layout that has InTitle false. If the
document then later has a layout with InTitle true, we do not
(currently) go back to add it to the title and just output it
in-place. We previously warned with LYXERR0, but since this can
cause missing or unexpected output we now warn in the GUI.

For more information, see the following lyx-devel thread:
https://www.mail-archive.com/search?l=mid&q=a65ae226-d3bd-8fc5-a93b-7bb23f1cda82%40lyx.org

(cherry picked from commit 0b1cf1330d)
2016-08-18 21:07:42 -04:00
Scott Kostyshak
b3a6f51f30 Improve a layout LYXERR0 message
The name of the layout is now included in an error message about
layouts. This will help with finding the root issue of several
documents we have.

(cherry picked from commit c949268da7)
2016-08-18 21:07:38 -04:00
Enrico Forestieri
93003eee16 Fix exit code from runCommand on Windows
On Windows, runCommand has never returned the exit code of the
spawned process but the result of correctly closing the input handle.

Fixes #10327

(cherry picked from commit fb46b3a1ee)
2016-08-18 17:00:55 -04:00
Richard Heck
50162ebb1e Fix XHTML export of German Additional Features manual.
There was an oddity in the manual that exposed a problem with the
test for the "special case" of an inset all by itself in a pargraph.
If a font change is applied to that inset, we still need to open the
paragraph.

(cherry picked from commit 3be23d18b6)
2016-08-04 22:47:32 -04:00
Richard Heck
928c7a3d68 We don't need to crash here, but can try to continue in release
mode.

(cherry picked from commit 0a603c5d0e)
2016-08-04 22:46:26 -04:00
Richard Heck
c92b1aa359 Special characters should be output to the TOC.
(cherry picked from commit f15c4159aa)
2016-08-04 22:45:56 -04:00
Richard Heck
b5a37a856c Fix bug #10320.
Layout::write needs to allow for the possility that the name of the
style may contain a space. It seems sufficient just always to quote it.
2016-08-04 17:10:39 -04:00
Richard Heck
612dc74f75 Fix problem noticed by Scott.
(cherry picked from commit 16d39b1f83)
2016-08-02 18:56:46 -04:00