Commit Graph

126 Commits

Author SHA1 Message Date
Tommaso Cucinotta
244de5d2c1 Add 'needauth' option to converters that need explicit user authorization.
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.
2016-11-22 23:54:58 +01:00
Guillaume Munch
557975a8de Replace auto_ptr with unique_ptr
This is a mechanical replacement. For now it seems that unique_ptrs are
essentially used for exception-safety. More could certainly be done to clarify
pointer ownership in general.
2016-06-09 15:21:39 +01:00
Enrico Forestieri
d4ca8d7404 Introduce the latexpar separator.
This is the same as the parbreak separator and is represented on screen
as the old parbreak. Old parbreak separators are converted to latexpar
separators when they are used for introducing blank lines in the
latex output rather than for separating environments.
Instead, parbreak separators are now represented on screen by a
double line. In essence, latexpar and parbreak separators produce
the same output but are represented differently on screen.
The context menu does not account for latexpar separators and only
"true" separators can be turned each into the other one.
2016-04-06 05:25:27 +02:00
Enrico Forestieri
a93ac27450 Avoid compiler warning about overloaded virtual function. 2015-05-20 15:49:15 +02:00
Enrico Forestieri
62d36bf04d Correctly load documents moved elsewhere after save.
It is now possible opening documents that where manually moved to a
different location after they were saved and still produce an output.
Indeed, (hopefully) all needed included files are now still found.
When the moved document is saved again, all paths are accordingly updated.
Of course, for this to work, a document has to be saved in Format 490,
at least.

As an example, after converting the user guide to the last format, it can
be copied anywhere and opened without the need of adapting the paths of
included files or moving them to a proper place.

There is one glitch I am aware of. When moving a child document (but not
the master) the path to the master is correctly updated but it won't be
recognized as such. This is because LyX checks that the parent actually
includes this document but, of course, being the parent document not
touched, it appears not including this child. Anyway, it will also occur
when saving the child to a different location and the user is warned
on the terminal about this fact when the moved child is loaded.
However, there is no problem when it is the master that has been moved.
2015-05-16 19:52:39 +02:00
Enrico Forestieri
c668ebf611 Fix bugs #8546 and #9055, and introduce new separator inset.
The algorithm used for breaking a paragraph in LaTeX export is changed
for avoiding spurious blank lines causing too much vertical space.
This change is tied to the introduction of a new inset (with two
different specializations) helping in either outputing LaTeX paragraph
breaks or separating environments in LyX. Both of the above goals were
previously achieved by the ---Separator--- layout and can now be
accomplished by the new inset in a more natural way. As an example,
after leaving an environment by hitting the Return key for two times,
a third return automatically inserts a parbreak inset, which is
equivalent to the old separator layout, i.e., it also introduces a
blank line in the output. If this blank line is not wanted, the
parbreak separator can be changed to a plain separator by a right
click of the mouse. Of course, an environment can still be separated
by the following one by using the Alt+P+Return shortcut (or the
corresponding menu key), but now the plain separator inset is used
instead of the old separator layout, such that no blank line occurs in
the LaTeX output.

Old documents are converted such that the LaTeX output remains unchanged.
As a result of this conversion, the old separator layout is replaced by
the new parbreak inset, which may also appear in places where the old
algorithm was introducing blank lines while the new one is not.
Note that not all blank lines were actually affecting the LaTeX output,
because a blank line is simply ignored by the TeX engine when it occurs
in the so called "vertical mode" (e.g., after an alignment environment).
The old ---Separator--- layout is now gone and old layout files using it
are also automatically converted.

Round trip conversions between old and new format should leave a document
unchanged. This means that the new behavior about paragraph breaking is
not "carried back" to the old format. Indeed, this would need introducing
special LaTeX commands in ERT that would accumulate in roundtrip
conversions, horribly cluttering the document. So, when converting a
modified document to old formats, the LaTeX output may slightly differ in
vertical spacing if the document is processed by an old version of LyX.
In other words, forward compatibility is guaranteed, but not backwards.
2014-05-10 23:25:11 +02:00
Juergen Spitzmueller
c246076ed5 Fix the 'caption inset mess' (bug #4647) 2012-12-30 18:29:02 +01:00
Juergen Spitzmueller
2e69c66195 InsetArgument revision, first working version 2012-11-19 14:21:02 +01:00
Lars Gullik Bjønnes
6b2232a29c src/*.cpp: reformatting to increase consistency 2012-10-28 17:42:07 +01:00
Juergen Spitzmueller
ee1fc9130a Add support for some basic non-unicoded IPA macros
We now support everything on the IPA chart via the toolbar
2012-08-23 17:42:53 +02:00
Jürgen Spitzmüller
f626cfb7a3 Implement a native IPA inset (bug #2591) with instant preview.
Currently only basic functionality (our math-tipa functionality plus multipar input). Further enhancements (such as proper unicode input and a specific toolbar) are planned. DocBook and XHTML output also need to be audited.

The lyx2lyx reversion routine surely can be improved (help appreciated), and I don't know  tex2lyx enough to handle this file format change.

git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@40867 a592a061-630c-0410-9148-cb99ea01b6c8
2012-03-06 07:54:22 +00:00
Uwe Stöhr
f5a03ab601 InsetSpace support for
- \negmedspace and \negthickspace outside of math
- \enspace, \hspace*, \hspace*{\fill} and \hfill inside math
(fileformat change)

git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@39557 a592a061-630c-0410-9148-cb99ea01b6c8
2011-08-29 14:07:30 +00:00
Pavel Sanda
5005facace Add visible space. After long discussion the solution is part of InsetSpace.
http://www.mail-archive.com/lyx-devel@lists.lyx.org/msg169847.html

git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@39367 a592a061-630c-0410-9148-cb99ea01b6c8
2011-07-23 18:40:21 +00:00
Georg Baum
e57084c140 fix bug 6698
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@36519 a592a061-630c-0410-9148-cb99ea01b6c8
2010-11-26 17:14:21 +00:00
Georg Baum
7edd656f21 Fix inserting subscript/superscript with nonempty selection by creating a dedicated lfun:
inset-insert simply swallows the selection, while box-insert, note-insert etc.
put the selection inside the new inset.
As a side effect the toolbar icons get better names, as requested by Uwe.


git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@36451 a592a061-630c-0410-9148-cb99ea01b6c8
2010-11-23 20:09:08 +00:00
Georg Baum
dea050cb93 fix bug 3008: Add subscript/superscript inset for text
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@36424 a592a061-630c-0410-9148-cb99ea01b6c8
2010-11-21 17:00:12 +00:00
Vincent van Ravesteijn
c5b9664476 Remove the name parameter from string2params and params2string. We can always derive the name with insetName(params.code()).
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@35891 a592a061-630c-0410-9148-cb99ea01b6c8
2010-10-29 00:25:28 +00:00
Abdelrazak Younes
d8981b13ae * Get rid of LFUN_TOC_INSERT: we use LFUN_INSET_INSERT "toc".
* Fix usage of "inset-insert type" without CommandInset arguments.

git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@35345 a592a061-630c-0410-9148-cb99ea01b6c8
2010-09-12 07:56:08 +00:00
Uwe Stöhr
0e7ab29f49 InsetLine: support for the LaTeX command \rule; kick out the hardcoded \lyxline; fileformat change
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@35299 a592a061-630c-0410-9148-cb99ea01b6c8
2010-09-07 00:41:00 +00:00
Uwe Stöhr
53cb5fb06c factory.cpp: this should not have gone in r35277
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@35278 a592a061-630c-0410-9148-cb99ea01b6c8
2010-09-04 13:17:08 +00:00
Uwe Stöhr
8fc3baa3f9 factory.cpp: sorting
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@35277 a592a061-630c-0410-9148-cb99ea01b6c8
2010-09-04 13:13:44 +00:00
Richard Heck
0345bef67b Renaming: \\begin_inset OptArg to \\begin_inset Argument.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@34619 a592a061-630c-0410-9148-cb99ea01b6c8
2010-06-07 21:58:27 +00:00
Richard Heck
319ca06167 Rename LFUN_OPTIONAL_INSERT as LFUN_ARGUMENT_INSERT.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@34597 a592a061-630c-0410-9148-cb99ea01b6c8
2010-06-04 22:53:44 +00:00
Richard Heck
8480d1dd9a Rename InsetOptArg as InsetArgument.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@34596 a592a061-630c-0410-9148-cb99ea01b6c8
2010-06-04 22:44:58 +00:00
Richard Heck
b79d8e5e2d Make members of FuncRequest private, per the FIXME there. Again, this is
basically a massive renaming, with no real changes.


git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@34106 a592a061-630c-0410-9148-cb99ea01b6c8
2010-04-09 19:00:42 +00:00
Richard Heck
4c7a5d0024 This is just a giant renaming of member variables in FuncRequest,
preparatory to making them private.


git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@34105 a592a061-630c-0410-9148-cb99ea01b6c8
2010-04-09 18:15:17 +00:00
Vincent van Ravesteijn
bb69584112 Introduce InsetPreview.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@33890 a592a061-630c-0410-9148-cb99ea01b6c8
2010-03-28 13:47:50 +00:00
Abdelrazak Younes
4c9f0eb5e6 * InsetFloat:
- now accept a full parameter string at construction
- LFUN_INSET_MODIFY now also interprets float type.

* FloatPlacement:
- The float type label is replace with a combo that can be used to
change the type.


git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@33412 a592a061-630c-0410-9148-cb99ea01b6c8
2010-02-10 17:33:39 +00:00
Abdelrazak Younes
52bd0268a3 * Migrate InsetFloat to InsetDialog
* Bug fix and clean up InsetFloat parameter handling: this is still not very clean as the float type is not really a parameter still... The solution is to defer the float type reading to the actual inset reading, not its creation.

git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@33370 a592a061-630c-0410-9148-cb99ea01b6c8
2010-02-08 22:09:40 +00:00
Abdelrazak Younes
882e2eeb7b InsetCommand ctor: Pass 'Buffer *'
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@31902 a592a061-630c-0410-9148-cb99ea01b6c8
2009-11-08 16:10:34 +00:00
Abdelrazak Younes
82c7e15e64 Uniformize Inset construction (passing Buffer * everywhere). Lots of cleanup to do still...
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@31901 a592a061-630c-0410-9148-cb99ea01b6c8
2009-11-08 15:53:21 +00:00
Enrico Forestieri
a1a34443ef Fix bug #5530: LyX expansion in math-macro overwritten by default one.
This patch initializes the buffer_ member of a MathHull inset in most
(but not all) cases. The problems with buffer_ should be greatly
allievated now, but there still can be some corner case.


git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@31873 a592a061-630c-0410-9148-cb99ea01b6c8
2009-11-06 15:18:48 +00:00
Uwe Stöhr
0b33b9d090 allow to use glue lengths in the HSpace dialog; file format change
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@30724 a592a061-630c-0410-9148-cb99ea01b6c8
2009-07-21 11:51:43 +00:00
Jean-Marc Lasgouttes
4dbe411ba9 Remove all BufferParam arguments in InsetXXX methods (since insets know about their Buffer)
Add an assertion in Inset::dispatch that checks that buffer() == *cur.buffer()


git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@30540 a592a061-630c-0410-9148-cb99ea01b6c8
2009-07-13 12:56:20 +00:00
Jürgen Spitzmüller
18cfe15b64 file format change due to r29770.
No automatic width calculation is done for old documents, because these might rely on settings in
nomencl.cfg.

A GUI to alter this is needed.

git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@29775 a592a061-630c-0410-9148-cb99ea01b6c8
2009-05-22 08:31:43 +00:00
Uwe Stöhr
629b07b72f InsetCollapsable.cpp, factory.cpp: sorting
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@29720 a592a061-630c-0410-9148-cb99ea01b6c8
2009-05-17 21:28:35 +00:00
Jürgen Spitzmüller
d12426a340 New inset dialog for InsetPrintIndex (only used with multiple indices)..
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@29290 a592a061-630c-0410-9148-cb99ea01b6c8
2009-04-17 14:29:32 +00:00
Jürgen Spitzmüller
c52bd08442 Introduce splitindex support. File format change.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@29255 a592a061-630c-0410-9148-cb99ea01b6c8
2009-04-16 07:29:01 +00:00
Jean-Marc Lasgouttes
fc1fb61336 allow to read Flex insets with a space in their name
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@28736 a592a061-630c-0410-9148-cb99ea01b6c8
2009-03-09 13:48:09 +00:00
Uwe Stöhr
b742ff6406 support for the LaTeX commands \*phantom, fileformat change
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@28292 a592a061-630c-0410-9148-cb99ea01b6c8
2009-01-30 00:56:37 +00:00
Georg Baum
ac1fd9b37f fix bug 2558: hspace support in math
The basic idea was to reuse the corresponding text space inset in the same
fashion as is already done for references. The dialog displays a different
selection for math than for text. If wanted, the additional spaces could
also be enabled for text, but that would be a file format change.
Constructs like \hspace{\mylengthvariable} that are not supported are
treated by the math parser as ERT as before.

For reasons I don't know the context menu does not work, but this is not so
important IMHO (since a left click opens the dialog).


git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@27954 a592a061-630c-0410-9148-cb99ea01b6c8
2008-12-22 18:12:32 +00:00
André Pönitz
6192345f60 add Buffer * member to DocIterator
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@27603 a592a061-630c-0410-9148-cb99ea01b6c8
2008-11-17 11:46:07 +00:00
André Pönitz
f1cba8ff64 more latin1..utf8 schanges. all of src/* should be utf8 now
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@27425 a592a061-630c-0410-9148-cb99ea01b6c8
2008-11-14 15:58:50 +00:00
Abdelrazak Younes
a5d7f0504d Pass Buffer in InsetQuote ctor. Patch fro Richard.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@26312 a592a061-630c-0410-9148-cb99ea01b6c8
2008-09-06 14:04:01 +00:00
Abdelrazak Younes
4bc7feaa96 * Inset: ensure that the Buffer pointer is not copied. This was the cause of very weird bugs with copy and paste within table.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@25837 a592a061-630c-0410-9148-cb99ea01b6c8
2008-07-23 12:13:41 +00:00
Abdelrazak Younes
79beb91e3a Sanitize LyX singleton access by getting rid of ref() and cref() methods.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@25597 a592a061-630c-0410-9148-cb99ea01b6c8
2008-07-14 08:35:00 +00:00
Pavel Sanda
a7a31dc392 Remove LFUN_BIBITEM_INSERT.
The last GUI trace for using this lfuns is here: http://www.lyx.org/trac/changeset/9966 .

http://www.mail-archive.com/lyx-devel@lists.lyx.org/msg141812.html



git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@25588 a592a061-630c-0410-9148-cb99ea01b6c8
2008-07-14 01:28:06 +00:00
Pavel Sanda
20b9e0ba93 Remove InsetEnvironment. This is unfinished decade old stuff.
http://www.mail-archive.com/lyx-devel@lists.lyx.org/msg141609.html


git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@25479 a592a061-630c-0410-9148-cb99ea01b6c8
2008-07-07 16:34:55 +00:00
Pavel Sanda
c077415c87 Next leftover.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@25468 a592a061-630c-0410-9148-cb99ea01b6c8
2008-07-06 21:22:25 +00:00
Richard Heck
8a64579d9c More cache fixing. Similar fix as for InsetBibtex, and I've renamed the key routine.
Unfortunately, we can't do a one-short fix for InsetCommand, requiring that it take
a Buffer & in the constructor, due to problems in mathed, specifically, here:
void InsetMathHull::label(row_type row, docstring const & label)
{
...
label_[row] = new InsetLabel(p);
if (buffer_)
label_[row]->setBuffer(buffer());
}
If InsetLabel has to have a Buffer, then buffer_ has to be set, which means InsetMathHull needs a Buffer. But then truckloads of these are created in Parser, where we don't really seem to have access to a Buffer.



git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@25137 a592a061-630c-0410-9148-cb99ea01b6c8
2008-06-05 06:55:34 +00:00