This code has issues and there is no evidence that it improves performance.
Remove LyXRC variable \use_pixmap_cache and update rc format to 29.
Now the global pixmap cache is only used by GuiCompleter. Therefore
there is no need to reset it when fonts change.
This is due to the bad packaging in the early 2.3.x installers. We
normally do not use version suffixes on Windows, but did.
(cherry picked from commit b738aa53d1)
The checkProg() function was separating a command from its parameters
by splitting at the first space. This was a problem if the command
was specified with a full path containing spaces. Now the checkProg()
function separates a command from the parameters by splitting at the
first non-quoted space. So, it suffices quoting a path to solve the
issue.
LyX on Mac uses a user directory with version suffix. On change of the version suffix the existence of the directories with previous versions is checked and the latest one is used for a copy on first configure run. For 2.4 the candidate list starts with 2.3 now as it should.
We have a couple of converters (using Sweave and knitr to "tangle"
an intermediate file) that are used for exporting code chunks
contained in a .lyx file. Since the code is just exported to a text
file and is not executed, needauth is not necessary.
Following a request by Günter, we consider the document fonts (only rm
for now) when selecting an appropriate font encoding.
See #9741
The new default font encoding setting "auto" does
* consider the font encoding needed by the language(s), which can now
have fallback alternatives
* Consider which font encoding is provided by the document font
Thus, cm now will result in OT1 fontenc, if the language can deal with
that.
The font_enc pref is ditched: it is no longer needed.
The automatism is still very basic and is subject to extension.
File format and prefs format change.
This is mandatory for some features (such as bookmarks,pdfusetitle)
to work, and only a handful of drivers can be auto-detected by hyperref.
Fixes: #6418
When we switched from r'...' to b'...', this required strings used
as input to re.compile to be double-escaped. It's not an issue with
"\s", because "\s" has no special meaning in a string.
Also, printing in binary mode did not output a line ending.
The wrapper script is placed in the binary directory of the LyX bundle.
It tries to find the real inkscape command line converter in the
Inkscape.app bundle and starts it or reports an error.
The configure.py is changed for Mac OS to check the presence of
the real inkscape binary in the Inkscape.app bundle.
Now painting the workarea is done at paint events as should be.
Explicit painting after updating metrics has been replaced by a much
lighter procedure (updatePosCache) to update the insets positions cache.
Expected benefits:
- better performance
- proper use of subpixel aliasing
The LyXRC variable use_qimage is not needed anymore and is therefore removed.
The inkscape command was hardcoded, but it seems that we need the full
patch on Windows. Therefore we check in configure.py if inkscape is
installed and pass the proper name (and possibly path) to the scripts.
Should address problems mentioned in #10679
Don't assume any encoding for the layout files and treat them in
the same way python 2 does. Thanks José for the idea.
This commit supersedes 50e21b71 and e19b2a71.
Biblatex can be used with Japanese, but then, biber (not pbibtex) should
be used as processor.
I this context, bring the jbibtex UI in line with bibtex, allowing for
a selection of alternatives.
Add common raster image viewing applications:
gwenview: KDE image viewer,
eog: Eye of Gnome, the Gnome default viewer,
xviewer: Eye of Gnome successor for MATE and Cinnamon,
ristretto: XFCE image viewer,
gpicview: LXDE image viewer,
lximage-qt: QXDE image viewer,
xdg-open: generic file handler
The problem with xdg-open is, that it calls the browser (firefox) as fallback. This is not good for DVI and PDF, but still better than an editor (Gimp) for raster images.
Kee Gimp as last option for viewing, and default choice for editing.
Place "notepad" at the end of the text editor selection list.
* Under Linux, notepad comes with the Windows emulator "wine"
but it is not a good choice for the default text editor.
* Most Windows users will not have the Linux programs
and not see any change.
* Windows users with the Windows version of "geany"
will see this (syntax highlighting) editor preferred over notepad by default.
'xed' is the 'gedit/plume' successor by Linux-Mint.
It inherits gedit's functionaly and adds a traditional UI matching the
XFCE, MATE and Cinnamon desktop environments.
See: https://de.wikipedia.org/wiki/X-Apps
'xreader' is the successor of 'evince' by Linux-Mint.
It inherits evince's functionaly and adds a traditional UI
matching the XFCE, MATE and Cinnamon desktop environments.
See: https://de.wikipedia.org/wiki/X-Apps
Addressing #10481.
This patch adds the new 'needauth' option for converters launching
external programs that are capable of running arbitrary code on behalf
of the user. These converters won't be run unless the user gives explicit
authorization, which is asked on-demand when the converter is about to
be run (question is not asked if the file is cached and calling the
converter is not needed).
The user prompt has a 3rd button so that he/she's not prompted again
for (any converter over) the same document (identified through
buffer->absFileName()).
Two preference options are added:
lyxrc.use_converter_needauth_forbidden disables any converter with
the 'needauth' option, which is meant to force user to an explicit
action via the preferences pane, before being able to use advanced
converters that can potentially bring security threats;
lyxrc.use_converter_needauth enables prompting the user for 'needauth'
converters, or bypasses the check if not enabled, falling back to the
previous behavior.
So, the first option is for maximum security, the second is for
maximum usability.
Based on Daniel Groger's work of five years ago, with minor changes
http://www.mail-archive.com/lyx-devel%40lists.lyx.org/msg169820.html
This extends the support for Xfig LaTeX + PDF to a more modern and
actively developed vector graphics editor. Embedded Objects manual
updated, also to include a workaround for an Inkscape 0.91 bug.
We do already have docx, but xlsx was missing. This is a separate format
because of the MIME type. nd because some users might need converters which
can only handle one format. Now the spreadsheet template does not hide the
fact anymore that it can deal with xlsx files as well.
After the fix at fe06ef0e, several converter chains to DVI
(dviluatex) were broken because they had previously gone through an
incorrect link in the chain.
This commit adds converters for the above formats to dviluatex and
fixes the following ctests:
export/examples/Literate_dvi3_texF
export/examples/Literate_dvi3_systemF
export/examples/knitr_dvi3_texF
export/examples/knitr_dvi3_systemF
export/examples/lilypond_dvi3_texF
export/examples/lilypond_dvi3_systemF
export/examples/noweb2lyx_dvi3_texF
export/examples/noweb2lyx_dvi3_systemF
export/examples/sweave_dvi3_texF
export/examples/sweave_dvi3_systemF
export/templates/RJournal_dvi3_texF
Although this a problem that only manifests itself on windows the change is general
and it works anywhere.
The major change is to change the file redirection > to -o the specifies the output file.
At the same time it makes the call to lyx2lyx less cryptic, e.g. to revert to the 1.3
format we have:
\converter lyx lyx13x "python -tt $$s/lyx2lyx/lyx2lyx -t 221 $$i > $$o" ""
now instead of
python -tt $$s/lyx2lyx/lyx2lyx -t 221 $$i > $$o
we use a call where the version to revert is explicit
python -tt $$s/lyx2lyx/lyx2lyx -V 1.3 -o $$o $$i
or we could write a longer, but more understandable form:
python -tt $$s/lyx2lyx/lyx2lyx --final_version 1.3 --output $$o $$i
FWIW I shuffled the order of the arguments just for the sake of readability,
to let $$i be the last argument.
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.
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.
LyX did not distinguish compressed and uncompressed svg files previously.
Therefore XHTML export of vector graphics did use svgz images directly, which
is not supported by browsers. If svg and svgz are treated as two formats then
all works fine. This is also consistent with the loadable image formats
reported by qt: It reports both svg and svgz.
The gunzip dependency in converters is not new (it is already used internally),
but the gzip dependency is new, so it might not be available on windows.
This is not important at the moment, since we do not yet need to convert svg
to svgz, I only added the converter for completeness.
We ensure that configure.py is called by python2, regardless whether 'python'
is python 2 or 3. Therefore we can simply call TeXFiles.py with the currently
running interpreter. This fixes configuration on systems where 'python' is
python 3.
Otherwise it could easily happen that the order is changed, since rsvg_convert
seems to be more picky about invalid files (see http://www.lyx.org/trac/ticket/9891)
* Omit commented-out lines
* Properly escape backslash
* Do not allow non-space chars after delaration
* Allow blanks before # comment character
Fixes: #9746
The path argument of checkProg* was added to the PATH list in a nested
loop such that the list doubles in size each time the loop is executed,
thus also slowing down detection of missing programs.
When closing a document with the cursor near an icon info inset, LyX
may crash on loading again the same document. This is most probably due
to the fact that compressed svg icons are first uncompressed to a
temporary file before being used. The temporary file is then deleted
but something still expects to find it in place. The exact circumstances
that lead to the crash are unknown, and maybe there is also a race entering
the picture here. However, a document that always leads to a crash can be
found attached here: http://article.gmane.org/gmane.editors.lyx.devel/154566
This commit does not fix the cause of the crash but rather avoids it.
As a bonus, the svg icons used by LyX are not uncompressed anymore before
being used, speeding up startup time. This is not a problem, because Qt
can deal with compressed svg images.