Bring window to front only for single-instance mode
A window manager could be configured such that to maintain a certain
stack order for the windows. It would be annoying that opening a new
file through menu brings up the window, so do this only if we are
loading a file through the lyx-server.
Note: I am still sceptical with the principle of an increase at the rate of
1/200% instead of 1/100%.
Also, I am sceptical with changing painting dimensions to int when Qt supports
doubles for everything (see e.g. 463bd17d). If the goal is to force
integer-width solid lines then one could try to disable antialiasing on Qt's
side.
I think the painter should move in the other direction, towards more doubles and
fewer ints. For instance, for Hi-DPI, Qt could probably take advantage of the
increased precision even without AA. (Then one would have to fix the problem
regarding uneven lines, mentioned in the above commit, in another fashion.)
Guillaume Munch [Mon, 23 May 2016 09:01:29 +0000 (10:01 +0100)]
Change tracking cue: InsetText and InsetCollapsible
* Underline or strike through the label as if it was text (it is).
* Strike through deleted InsetText, but let RowPainter handle the case of
non-MultiPar text insets.
* Change the colour of the frame as a cue, unless its colour is customised (not
Color_foreground). (Essentially do the border of CharStyles like Tabular does
it already.)
* The change info needs to be reset when entering InsetText. Otherwise labels
are painted with the change of their n+1-th parent.
Georg Baum [Sun, 3 Jul 2016 16:51:22 +0000 (18:51 +0200)]
Fix linking with cmake and included iconv
Previously, the GNU linker would complain about missing libcharset_relocate.
The MSVC linker did not complain, since the code that uses libcharset_relocate
does not seem to be sued, so it removed it.
Guillaume Munch [Mon, 23 May 2016 10:38:48 +0000 (11:38 +0100)]
Painter: Add a line style to disable antialiasing
It is not possible to use opacity effects (such as drawing an antialiased line
to strike diagonally through an inset), until the painter is fixed so that it
does not redraw repeatedly over the same spot (otherwise, the usual aritfacs
appear).
Guillaume Munch [Sat, 11 Jun 2016 11:57:18 +0000 (12:57 +0100)]
Beautify ToolTips in work area
* Justification and nicer line breaks.
* Much nicer tooltip for lists of bibliographical references.
* Removed unnecessary iterated copies of the string buffer in
InsetText::ToolTipText() which looked bad. This function used to be costly
(cf64064), maybe it is quicker now.
Guillaume Munch [Mon, 6 Jun 2016 19:02:49 +0000 (20:02 +0100)]
Remove tooltips from the data of Toc Items
After the previous commit, tooltip in the outliner are formatted automatically,
along with the other tooltips. A previous commit had already removed the
expensive call to tooltipText() that, although it gave a better rendering, was
very expensive (cf64064). This patch finishes to remove the custom tooltip
from the model data in the outliner.
(It would be nice to reintroduce a tooltip based on tooltipText(), but there
seemed to be a consensus that in that case one would prefer a less expensive
approach that computes the tooltip on the fly.)
Guillaume Munch [Sun, 5 Jun 2016 19:35:35 +0000 (21:35 +0200)]
Line breaks in tooltips
* New function formatToolTip(QString):
Format text for display as a ToolTip, breaking at lines of a certain
width. Note: this function is expensive. Better call it in a delayed manner,
i.e. not to fill in a model (see for instance the function
ToolTipFormatter::eventFilter).
* Install a global event filter that formats tooltips on-the-fly
When is formatToolTip called automatically? Whenever the tooltip is not already
rich text beginning with <html>, and is defined by the following functions:
* QWidget::setToolTip(),
* QAbstractItemModel::setData(..., Qt::ToolTipRole),
* Inset::toolTip() (added in one of the subsequent patches)
In other words, tooltips can use Qt html and the tooltip will still be correctly
broken. Moreover, it is possible to specify an entirely custom tooltip (not
subject to automatic formatting) by giving it in its entirety, i.e. starting
with <html>.
Georg Baum [Sat, 2 Jul 2016 16:58:30 +0000 (18:58 +0200)]
Fix CAS input on windows (bug 10262)
This is the well known file locking problem: The TempFile class keeps the
created file locked for the own process, and this prevents the CAS to read it.
Georg Baum [Sat, 2 Jul 2016 10:42:04 +0000 (12:42 +0200)]
Do not use --std=c++14 for MSVC
MSVC does not need a special flag to specify the standard. Using --std=c++14
produces a warning, but compilation succeeds, so the old code did mistakenly
choose --std=c++14 for MSVC.
Georg Baum [Sat, 2 Jul 2016 10:39:08 +0000 (12:39 +0200)]
Fix std::regex detection for older gcc
Older gcc versions (e.g. the first one which has usable std::regex: gcc 4.9)
require the --std=c++11 flag to be set. Otherwise std::regex is not made
available. Therefore we need to keep the flag in the loop.
Georg Baum [Sat, 2 Jul 2016 09:09:26 +0000 (11:09 +0200)]
Ensure that iconv and zlib are always found
If the included thirdparty libs are requested, use them, even on unix. This is
consistent with autotools (but the recommended way is of course to use the
system libs). If the included thirdparty libs are not requested then try to find
libiconv and zlib also on windows. This will lead to an error unless the libs are
found via manually added include and link paths, but this is wanted since
libiconv and zlib are not optional.
Georg Baum [Thu, 30 Jun 2016 20:25:56 +0000 (22:25 +0200)]
Add some symbols from fontmath.ltx
These are all in lib/symbols, but we did not yet know the corresponding unicode
numbers. unicodesymbols does still not contain all symbols from lib/symbols.
Richard Heck [Thu, 30 Jun 2016 18:53:19 +0000 (14:53 -0400)]
Fix bug #8782.
We need to invalidate the BibTeX cache when undoing or redoing. I do
not like having to do it for every undo or redo. We should only have
to do it if we restored or deleted an InsetBibTeX. But there is no
way, so far as I can see, to do it that way. I tried.
Richard Heck [Mon, 20 Jun 2016 19:10:14 +0000 (15:10 -0400)]
This patch does two closely related things.
The main thing it does is integrate mouse-modifiers into the
FuncRequest machinery. Previously, these had to be passed
separately, which led to some ugly function signatures.
There was also an unnecessary form of the constructor, which
can now be removed.
Georg Baum [Sun, 26 Jun 2016 18:31:31 +0000 (20:31 +0200)]
Escape backslashes
The parser that reads unicodesymbols uses backslashes to escape quotes, so
every backslash that is part of a LaTeX command needs to be escaped as well.
There are more candidates in the greek and cyrillic sections, but I don't
know those commands, so I did not touch them.
Georg Baum [Sun, 26 Jun 2016 17:03:10 +0000 (19:03 +0200)]
Convert files to unix line ends in the repo
These files were aded with windows line ends before we did set the text=auto
attribute for all files in .gitattributes, and this caused phantom changes on
linux workspaces after .gitattributes was introduced.
Now these files appear with linux line ends on linux workspaces and with
windows line ends on windows workspaces, like all source files.
Georg Baum [Sun, 26 Jun 2016 16:22:59 +0000 (18:22 +0200)]
Remove using directives from headers
The only exceptions are:
- The purpose of the header is to drag in the used symbol, e.g. unique_ptr.h
- The used symbol is inside a class or a namespace other than lyx
The reason for this is that global 'using' statements effectively forbid to
use the used symbols in any other namespace in the whole program, since simply
adding or removing an #include of the corresponding header subtly changes the
name lookup. The namespace lyx is sort of global, so it should not have these
statements either.
Maxima uses \it as a markup for multiletter variables. However,
it has been reported that since texlive 2016 using \it in math
mode produces an error, even though I was not able to reproduce.
Anyway, this can be avoided by replacing the old-style construct
"{\it ...}" with the new-style one "\mathit{...}".
The problem has also been reported upstream:
https://sourceforge.net/p/maxima/bugs/3181/
but this workaround will hold whatever the resolution.
Scott Kostyshak [Sat, 25 Jun 2016 23:37:15 +0000 (19:37 -0400)]
Remove \it and other oldfonts from math completion
\it and the other oldfont commands are deprecated and the new forms
(e.g. \mathit) should be used instead. The old forms can lead to a
warning in TeX Live 2015 and an error in TeX Live 2016.
Note that with this commit only affects completion, so LyX still
supports displaying e.g. \it in math if the user enters it without
completion.
Georg Baum [Sat, 25 Jun 2016 19:09:21 +0000 (21:09 +0200)]
Remove asciiimage and asciixfig formats
The external templates requested conversion to these formats, but there was no
converter defined, so plain text export did fail, and there are no obvious ways
to create plain text representations for the files used by these templates.
Now we output the file name as for other templates and also the graphics inset.
This fixes bug #7135.
Reported the \it behaviour to maxima bugzilla.
https://sourceforge.net/p/maxima/bugs/3181/
If they don't fix it we might want to kill this line altogether.
Richard Heck [Mon, 20 Jun 2016 15:06:31 +0000 (11:06 -0400)]
Add new module:
Provides two new styles:
1. An "In Premable" style that puts whatever is entered into it into the preamble.
This can be used, if one wishes, to include preamble code in the body of the
LyX document.
2. An "In Title" style that will put its contents into the body of the LaTeX
document, but before \maketitle is issued. This is useful for making branches
and notes in title-related material. (If you put these in a Standard layout,
this signals to LyX to output \maketitle, which may then come too early.)
Due to the ForceLocal machinery, no format change is needed.
Richard Heck [Mon, 20 Jun 2016 14:21:22 +0000 (10:21 -0400)]
Fix bug #10153: There's a mechanism in XHTML output that defers the
output of tags until we know they're needed. In the case of HTML
tables, empty cells should of course be output, so we need to force
the tags to be output.
Georg Baum [Sun, 19 Jun 2016 19:23:25 +0000 (21:23 +0200)]
Remove external date inset
The external date inset was implemented as a demonstrator for external insets
in general. It was never intended for production code. Now that we have several
external insets defined we do not need the demonstrator anymore. This fixes
bugs #4398 and #9948.
Georg Baum [Sun, 19 Jun 2016 14:28:02 +0000 (16:28 +0200)]
Ajust instructions to qt 5
Building with MSVC and qt4 is an esoteric special case nowadays. People who
are able to do this will also figure out how to call cmake. The standard case
is qt 5, and this was not yet documented.