The code that specializes for double elements in the display string
does not trigger anymore: displayString() returns a single unicode
value, plus some space for french guillemets.
Use a thin space for these french quotes instead of a plain space and
remove special case in metrics().
Richard Heck [Mon, 18 Jul 2016 02:50:17 +0000 (22:50 -0400)]
The way this was previously, it had to fail if the GUI language
was not English: We return the the abbreviated author "One and Two",
but translated to the GUI language; then we search that for " and "
in order to pull the authors apart again.
I've just replaced the distinct routines with a single one that handles
both cases, depending upon whether a Buffer is provided as one argument.
Fix i18n.inc creation with some out of tree builds
Actually, POFILES already contains the relative path to the po files,
so that the old code was only working by chance when the source and
build directories were at same level.
The full path of the tools is retained only if the Qt directory is
specified using --with-qt-dir. Now, when qtchooser was detected it
was blindly assumed that the corresponding system tools were being
used. These tools discriminate between Qt4 and Qt5 through the
option -qt=qt4 or -qt=qt5. However, the original Qt tools don't
understand these options, so that if they come first in the PATH,
configuration fails. So, only use those options if we are reasonably
sure that the system Qt is wanted. This is achieved by comparing the
paths of qtchooser and tools as, typically, they are located in the
same directory. In this way, if one prepends the bin directory of a
custom Qt build to PATH (and accordingly adjusts PKG_CONFIG_PATH),
configuration succeeds even if --with-qt-dir is not specified.
QT5.7 cmake config files explicitly instruct cmake to use `-std=gnu++11`.
This is not the same as is found by our FindCXX11Compiler.cmake,
which leads to compilation errors.
Here we overrule the setting.
Thanks to helpfull hand from Brad King <brad.king@kitware.com>
* 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.
José Matos [Wed, 13 Jul 2016 14:01:17 +0000 (15:01 +0100)]
Improve the file format upgrade and downgrade for microtype
Add get_bool_value to parser_tools to be used in other places.
Make the upgrade convertion seamless from lyx writing the file (regarding
microtypes, there are still other dragons to chase. :-)
Scott Kostyshak [Wed, 13 Jul 2016 08:51:58 +0000 (04:51 -0400)]
Add CMake flag for keytests and disable by default
The keytests were previously enabled by default if the necessary
dependencies were found. They require a GUI and mouse so can
sometimes be annoying. Further, they are not currently reliable.
They are thus now disabled by default.
Richard Heck [Tue, 12 Jul 2016 03:56:32 +0000 (23:56 -0400)]
Introduce "inverted" branch insets: These are branches whose content
is output when a branch is NOT activated. Fixes bug #7698.
At the moment, inversion is controlled through the branch settings
dialog. There is no provision for inserting inverted insets directly,
or for changing them from the context menu. Both of these could be
done, of course. The latter would need LFUN_BRANCH_TOGGLE_INVERTED.
The differentiation of "xetex" and "platex" is not needed here,
is ambiguous and confusing (see #10013). The code that relies on
it can/should get its information otherwise.
Furthermore, polyglossia-exclusive languages now also work with
LuaTeX, since we support LuaTeX + polyglossia.
Fix paste of selection to (unfocused) external applications
With both Qt4 and Qt5, when using a click-to-focus policy, the first
attempt to paste a selection by middle mouse in an external application
which has no focus may fail. It is not clear why this succeeds for some
applications and fails for others, but refreshing the timestamp of the
selection request cures the issue. The cmake part is by Kornel.
See also this thread:
http://thread.gmane.org/gmane.editors.lyx.devel/162491
Richard Heck [Sun, 10 Jul 2016 05:12:42 +0000 (01:12 -0400)]
Fix thinko in Buffer::preview. It is possible for this routine to
be called when we do not have a cloned Buffer, namely, if we do not
have EXPORT_in_THREAD defined.
Richard Heck [Sun, 10 Jul 2016 03:12:32 +0000 (23:12 -0400)]
Fix problem with branch handling. The problem was that we were not
dealing properly with the paragraph separator tag.
We really need to use that tag as a kind of general marker for which
tags we're responsible for in a given paragraph and which tags we are
not. So the changes to InsetText.cpp use the tag as that kind of marker.
Note that, as of this commit, the User Guide again exports without any
kind of error. I haven't yet checked the other manuals.
Account for the case in which Qt tools are not in PATH
If the Qt directory is specified by --with-qt-dir, the full path
of the tools is retained. Otherwise, if qtchooser is detected,
the generic names are attempted with proper arguments to select
the desired Qt version. Otherwise, the generic names with and without
proper suffixes (either -qt5 or -qt4) are checked in the PATH.
This means that --with-qt-dir=qtdir should be used only if the tools
are not in the PATH, or qtdir/bin/{moc,rcc,uic} are the right versions
for the desired Qt. In any case, it is later checked that the selected
tools are the right ones and a warning is issued if there is a mismatch.
New test to determine correct -std option for CXX compiler
The test file is stolen from cmake. The options tested are, from the
most desirable to the least desirable:
-std=c++14 -std=c++11 "" -std=c++0x -std=gnu++14 -std=gnu++11 -std=gnu++0x
It is expected that the result will not be correct for cygwin, but
this is fixable.
Cmake build: Split use of 3RDPARTY_BUILD to build individual libs
The split is now analogous to automake. The individual libs are handled
analogously to already handled boost.
automake config setting cmake config settings
--with-included-iconv -DLYX_EXTERNAL_ICONV=OFF
--with-included-zlib -DLYX_EXTERNAL_Z=OFF
--with--included-hunspell -DLYX_EXTERNAL_HUNSPELL=OFF
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.