- Let all doExport calls honor maintain_unincluded_children
- Also don't let the behaviour depend on supplying the result_file parameter
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@40085 a592a061-630c-0410-9148-cb99ea01b6c8
TODO:
- Also let the public function return an error value,
- Move all user interaction (Alerts etc.) out of Buffer.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@40044 a592a061-630c-0410-9148-cb99ea01b6c8
TODO:
- Also let the public function return an error value,
- Move all user interaction (Alerts etc.) out of Buffer.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@40043 a592a061-630c-0410-9148-cb99ea01b6c8
All calls to doExport from outside of Buffer have the same algorithm to
determine whether the included children parameter should be true. Moreover,
this decision is only based on information from the Buffer itself.
Now, Buffer only has 1 public function doExport and preview.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@40041 a592a061-630c-0410-9148-cb99ea01b6c8
The LyX buffer is cloned before autosaving, but the unnamed_ member was not
copied. This causes the autosave files to end up in the wrong location and
consequently they were never removed afterwards.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@40008 a592a061-630c-0410-9148-cb99ea01b6c8
This restores \input@path handling, which turns out to be necessary, as
the TEXINPUTS mechanism is not used with relative paths. It turns out
that both methods must be used, because \input@path does not work in all
cases (most notably with tikz).
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@39918 a592a061-630c-0410-9148-cb99ea01b6c8
Keeping some debugging output about these filename mangling, in case additional debugging is needed.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@39812 a592a061-630c-0410-9148-cb99ea01b6c8
- \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
When a document is not multi-lingual the text contents is changed
to the new language. This should be recorded for Undo.
Because Undo wants a cursor the implemantation has to be
moved to the BufferView class.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@39508 a592a061-630c-0410-9148-cb99ea01b6c8
The PreviewLoader is created directly by Buffer on demand. The PreviewLoader cache was complex and unneeded because there is one and only one PreviewLoader per Buffer.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@39276 a592a061-630c-0410-9148-cb99ea01b6c8
It's amazing we haven't seen problems with this before. The basic problem is that buf.errorList("whatever") would always return the same global, static error list, if it did not already exist. So, to a significant extent, there was only one global error list!
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@38980 a592a061-630c-0410-9148-cb99ea01b6c8
It's amazing we haven't seen problems with this before. The basic problem is that buf.errorList("whatever") would always return the same global, static error list, if it did not already exist. So, to a significant extent, there was only one global error list!
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@38978 a592a061-630c-0410-9148-cb99ea01b6c8
the same document could not be rendered.
Problem was that we were using children_positions to deal with the
included documents. That structure only includes each child once.
We need to use position_to_children, instead.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@38842 a592a061-630c-0410-9148-cb99ea01b6c8
the macros declared in the parent do not work. This is because we were
cloning only the child, which then didn't have a parent.
The solution is to clone the whole structure, starting with the master
document. As a side effect, we only clone each child once.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@38837 a592a061-630c-0410-9148-cb99ea01b6c8
variable. This is done in the preferences, much like as the PATH prefix.
A single '.' in the paths will get replaced with the current document dir
and also non-absolute paths will be prefixed with that dir.
The default semantics of TEXINPUTS apply, such that, for example, if a
path is terminated with a double slash, all subdirectories will be also
searched by both the TeX engine and ancillary programs such as dvi
previewers or dvips. As an example, if the prefix is set to ".:figs", the
TEXINPUTS variable will be set as ".:<docdir>:<docdir>/figs:$ORIGTEXINPUTS",
where <docdir> is the document directory.
The initial '.' is necessary to address the actual current dir (this will
be the temp dir at preview time), while if TEXINPUTS was initially unset,
such that $ORIGTEXINPUTS is empty, a colon (or semicolon on Windows) will
end the path list. This is very important, because we don't want to replace
the system directories but to complement them and, in order to do that, an
empty element has to be present in the list. Indeed, according to the
TEXINPUTS semantics, an empty element means the standard search path.
This works whether TEXINPUTS is originally set or not, because if the
original TEXINPUTS starts with a colon (meaning that the standard search
path is wanted there) we will have an empty element at that point,
otherwise the final colon will simply serve as a path separator.
Of course, on Windows a ';' has to be used as a path separator. LyX will
take care of transforming the platform path list into one understandable
by the TeX engine. For example, this will be the case for a Cygwin version
of LyX using a native Windows TeX engine or viceversa. I tested all of
this and it works for me.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@38681 a592a061-630c-0410-9148-cb99ea01b6c8
inset to know that the BibTeX data had changed. So we introduce a
Buffer-wide variable that we can query for that information.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@38619 a592a061-630c-0410-9148-cb99ea01b6c8
calls into the file writing routines and out of doExport(). They were in
both places before: Called once in doExport, and then again in the e.g.
writeLaTeXSource()---and then again, actually, in validate().
It is possible this will reveal some missing updateBuffer() calls
somewhere. But it should somewhat speed up View>Source, since we now do
not do an extra set of such calls in that routine. Rather, we rely upon
the Buffer's having been made up to date first, by the updateBuffer()
call after dispatch.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@38596 a592a061-630c-0410-9148-cb99ea01b6c8
http://www.mail-archive.com/lyx-
for the reason it needs to be here.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@38497 a592a061-630c-0410-9148-cb99ea01b6c8
to be a set. Not that speed will really be an issue here, but....
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@38178 a592a061-630c-0410-9148-cb99ea01b6c8
as a whole gets highlighted. Now, the error list carries information
about the starting id/pos and ending pos, but not about the ending id.
So, when computing the range to be highlighted as range = pos_end - pos_start,
if id_start != id_end, the result 1 means one inset and only the first
character in the inset would be highlighted. Thus, when id_start != id_end,
let pos_end = 0, such that the whole content will be highlighted.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@37900 a592a061-630c-0410-9148-cb99ea01b6c8
child, the returned list had no master and twice the child itself).
(was causing misbehavior in Advanced Find & Replace with scope=Document).
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@37852 a592a061-630c-0410-9148-cb99ea01b6c8
at the same line. Given that we know where the error occurred, don't
unnecessarily check the master first.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@37846 a592a061-630c-0410-9148-cb99ea01b6c8
counting when exporting to latex. This is done for the code comprised
between \begin{document} and \end{document}, while the preamble code
still needs manual calls to TexRow::newline() for registering new lines.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@37584 a592a061-630c-0410-9148-cb99ea01b6c8
not release level. File format does not change for a single minor (branch), so
this info has small value.
On the other hand the first line of header is causing unnecessary merge
conflicts for users of LyX VCS.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@37579 a592a061-630c-0410-9148-cb99ea01b6c8
blank lines may be inadvertently output. This is achieved by using two
special iomanip-like variables (breakln and safebreakln) in the lyx::
namespace. When they are inserted in the stream, a newline is output
only if not already at the beginning of a line. The difference between
breakln and safebreakln is that, if needed, the former outputs '\n'
and the latter "%\n".
In future, the new class will also be used for counting the number of
newlines issued. Even if the infractrure for doing that is already in
place, the counting is essentially still done the old way.
There are still places in the code where the functionality of the
class could be used, most probably. ATM, it is used for InsetTabular,
InsetListings, InsetFloat, and InsetText.
The Comment and GreyedOut insets required a special treatment and a
new InsetLayout parameter (Display) has been introduced. The default
for Display is "true", meaning that the corresponding latex
environment is of "display" type, i.e., it stands on its own, whereas
"false" means that the contents appear inline with the text. The
latter is the case for both Comment and GreyedOut insets.
Mostly, the only visible effects on latex exports should be the
disappearing of some redundant % chars and the appearing/disappearing
of null {} latex groups after a comment or lyxgreyedout environments
(they are related to the presence or absence of a space immediately
after those environments), as well as the fact that math environments
are now started on their own lines.
As a last thing, only the latex code between \begin{document} and
\end{document} goes through the new class, the preamble being directly
output through odocstream, as usual.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@37360 a592a061-630c-0410-9148-cb99ea01b6c8
At the end escape for fsync would be the least hackish solution
but it needs somebody with ext4 to test with.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@37348 a592a061-630c-0410-9148-cb99ea01b6c8
and the converters is also used by the main thread (getStatus).
LyX.exe!lyx::Buffer::doExport
LyX.exe!lyx::Buffer::preview(
LyX.exe!std::tr1::_Pmf_caller3<
LyX.exe!std::tr1::_Pmf_caller3<
LyX.exe!std::tr1::_Callable_pmf<
LyX.exe!std::tr1::_Bind3<
LyX.exe!std::tr1::_Bind_base<
LyX.exe!lyx::frontend::GuiView::GuiViewPrivate::runAndDestroy<
LyX.exe!lyx::frontend::GuiView::GuiViewPrivate::previewAndDestroy(
LyX.exe!QtConcurrent::StoredFunctorCall3<
LyX.exe!QtConcurrent::RunFunctionTask(
QtCored4.dll!QThreadPoolThread::run(
QtCored4.dll!QThreadPrivate::start(
msvcr100d.dll!_callthreadstartex()
msvcr100d.dll!_threadstartex(void * ptd)
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@37292 a592a061-630c-0410-9148-cb99ea01b6c8
Using updateMacros() entails a performance hit when loading a document
with really a lot of macros. So, revert to the original strategy of
tracking macros at creation time. In order to also account for macros
defined in a child document, the child is now loaded by the include inset
at construction time instead of after the master has finished loading.
This strategy mimics what updateMacros() was accomplishing without
incurring in its drawbacks, such that loading time is practically
unchanged even with a thousand macros.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@36968 a592a061-630c-0410-9148-cb99ea01b6c8
updateBuffer() traversal. The reason is simple: InsetCitation needs
access to the BibTeX info to calculate its label. But we won't have it
until we get to the bibliography.
I don't think there is any way around that.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@36710 a592a061-630c-0410-9148-cb99ea01b6c8
to be passing the BiblioInfo structure around this way. (That's an old
holdover.) That lets us get rid of the non-const masterBibInfo() again.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@36697 a592a061-630c-0410-9148-cb99ea01b6c8
bibliography information in updateBuffer(), rather than doing a wholly
separate traversal. We still do a separate traversal in two cases, as a
full updateBuffer() call just isn't needed there.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@36696 a592a061-630c-0410-9148-cb99ea01b6c8
- With XeTeX/LuaTeX and tex fonts, we need to force the encoding to utf8-plain manually.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@36558 a592a061-630c-0410-9148-cb99ea01b6c8
Change its parameter type to support::FileName for convenience.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@36375 a592a061-630c-0410-9148-cb99ea01b6c8
In particular, it makes paragraph breaks generate single \n in latex output
when ParbreakIsNewline is true
This means that it is not necessary anymore to use newlines to break lines.
Plain paragraph breaks can be used instead, like is done now in ERT/Listings.
This is mainly aimed at sweave support.
lyx2lyx support courtesy of Richard Heck
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@36163 a592a061-630c-0410-9148-cb99ea01b6c8
Computes a hash value for the authors when using change tracking.
Text.cpp, BufferParams.h, Author.h:
Change unsigned int to int because the hash values can be negative.
lyx2lyx:
Allow to convert negative author_ids.
See also: r30756.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@36134 a592a061-630c-0410-9148-cb99ea01b6c8
Also move the saveCheckSum declaration to the section of functions involving reading/writing. And note that it should be made private.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@35925 a592a061-630c-0410-9148-cb99ea01b6c8
argument from that function. We are always saving the checksum for the
Buffer's file. The argument is a left-over from a time when we did the
wrong thing and saved it for e.g. the emergency file.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@35890 a592a061-630c-0410-9148-cb99ea01b6c8
A dynamic_cast is necessary when:
- the object to be casted is from an external library because we can't add Qxxx::asXxxx() to Qt e.g.:
* QAbstractListModel to GuiIdListModel,
* QValidator to PathValidator,
* QWidget to TabWorkArea,
* QWidget to GuiWorkArea;
- the object is to be casted from an interface to the implementing class, because the Interface does not know by whom it is implemented:
* ProgressInterface to GuiProgress,
* Application to GuiApplication.
A dynamic_cast can be replaced by:
- already existing as***Inset() functions, e.g.:
* asHullInset(),
* asInsetMath()->asMacro(),
* asInsetText();
- a static_cast when we are sure this can't go wrong, e.g.:
* we are sure that CellData::inset->clone() is an InsetTableCell,
* in cases where we explicitly check it->lyxCode().
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@35855 a592a061-630c-0410-9148-cb99ea01b6c8
- rename readFromVC to extractFromVC because this function actually doesn't read anything as compared to readEmergency, readAutosave and so on.
- rename readEmergency and readAutosave to loadEmergency and loadAutosave just like loadLyXFile and loadThisLyXFile. Only in loadThisLyXFile we switch to the actually reading of a file.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@35854 a592a061-630c-0410-9148-cb99ea01b6c8
It's strange to have a public interface which has a function loadLyXFile and a function readFile. A user of this class will be confused about the difference.
Therefore, loadThisLyXFile will be next to loadLyXFile to stress that loadThisLyXFile will not load another file ;). I don't know whether all of you like that this function just calls readFile, but it feels good this way. All public paths for loading a file will now go through loadThisLyXFile (i.e. the paths that come from loadLyXFile), while readFile is a pure private function. If this doesn't make sense, just shout.
I think this improves the readability of the class.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@35852 a592a061-630c-0410-9148-cb99ea01b6c8
The only substantive change here is moving the markDirty() call into the
first case. If we don't load the file successfully, then there is no
need to mark dirty.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@35834 a592a061-630c-0410-9148-cb99ea01b6c8
Extract convertLyXFormat function that runs LyX2LyX.
(and some compile fixes)
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@35831 a592a061-630c-0410-9148-cb99ea01b6c8
We need to save the checksum of the requested file. Not of the autosave file.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@35830 a592a061-630c-0410-9148-cb99ea01b6c8
- Move the saveCheckSum to both autosave file as emergency file read function.
- Extract the function parseLyxFormat.
- Improve comment about the older LyX format numbers.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@35829 a592a061-630c-0410-9148-cb99ea01b6c8
- Move some lines of code to more proper places.
- Let Buffer::readFile(FileName const &) return ReadStatus as well.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@35827 a592a061-630c-0410-9148-cb99ea01b6c8
- make a new function readFromVC(),
if the file does not exist, try to extract it from the version control (RCS),
- make a new function readEmergency(),
try to read the emergency file that is associated to the file we are trying to read,
- make a new function readAutosave(),
try to read the autosave file that is associated to the file we are trying to read,
- merge loadLyXFile() and readFileHelper(),
this new function now determines which file to read.
- add more ReadStatus elements to describe failures.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@35819 a592a061-630c-0410-9148-cb99ea01b6c8
exportAndDestroy was calling:
buffer->doExport(format, true, update_unincluded);
where "true" means: Leave it in the tempdir. We need false, which means
we need another parameter, if we're not doing it as cut and paste.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@35715 a592a061-630c-0410-9148-cb99ea01b6c8
for formatted references. Fixes#2295, in so far as it makes it possible
to translate formatted references.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@35623 a592a061-630c-0410-9148-cb99ea01b6c8
We should probably be checking for recursive includes here, and we want
to do that in one place.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@35537 a592a061-630c-0410-9148-cb99ea01b6c8
allRelatives() "stable", in the sense that what it returns does not
depend upon which Buffer we start with.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@35530 a592a061-630c-0410-9148-cb99ea01b6c8
it->fillWithBibKeys(d->bibinfo_, it);
This could be useful later, if we decide to try to do the work that
fillWithBibKeys did from updateLabels().
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@35106 a592a061-630c-0410-9148-cb99ea01b6c8
* src/LyXAction.cpp: add ReadOnly flag to LFUN_UNDO and LFUN_REDO, since
we do not want the dispatch mechanism to mark buffer dirty after them.
* src/BufferView.cpp: handle "by hand" the activation of undo/redo
* src/Undo.cpp: add lyx_clean member to UndoElement and make sure to
maintain it with undo operations; add a new markDirty() member for UndoStack
* src/Buffer.cpp: when saving a document, mark the undo and redo stacks
elements as dirty.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@35068 a592a061-630c-0410-9148-cb99ea01b6c8
Buffer whether we are exporting or not, rather than rely upon isClone(),
which could be adapted to other purposes. And, of course, someone might
choose locally to disable cloning....
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@34999 a592a061-630c-0410-9148-cb99ea01b6c8
allow this as a fallback. E.g., if we're unable to export as MathML,
then we try to export as an image.
There are several ways, I am sure, in which this implementation is not
ideal.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@34993 a592a061-630c-0410-9148-cb99ea01b6c8
DispatchResult to store a flag that tells us whether we need a buffer
update or not.
So: If you find a missing one, go to an appropriate place in the
dispatch and call cur.forceBufferUpdate() or, if you don't have a cursor
but do have a DispatchResult, call dr.forceBufferUpdate().
There is one remaining call I could not move, in
TextMetrics::redoParagraph. But this looks like an emergency call when
the macro context has not been set. There are also a couple calls that
are connected with buffer creation that I commented out, since the same
call is done again almost immediately. But I'm not positive about those.
Now the nice thing would be to do the same for updateMacros().
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@34826 a592a061-630c-0410-9148-cb99ea01b6c8
format bump so we can convert old Beamer files, which are otherwise
broken by the new layout.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@34615 a592a061-630c-0410-9148-cb99ea01b6c8
Solution: don't use boost::shared_ptr for msvc10 (could also be extended to several GCC versions)
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@34259 a592a061-630c-0410-9148-cb99ea01b6c8
Solution: don't use boost::bind for msvc10 (could also be extended to several GCC versions)
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@34257 a592a061-630c-0410-9148-cb99ea01b6c8
Using "-f all", or simply "-f", all files are silently overwritten.
Using "-f main", only the main file is overwritten.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@34224 a592a061-630c-0410-9148-cb99ea01b6c8
- new buffer parameter \boxbgcolor
(I'm still working on the remaining issue #6626 as this affect not only this feature.)
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@34083 a592a061-630c-0410-9148-cb99ea01b6c8
(The default color is still internally white because we have to set a color but the color is only used when the user explicitly specified it.)
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@34058 a592a061-630c-0410-9148-cb99ea01b6c8
- new buffer parameter \fontcolor
- the default color is internally black because we have to set a color
- the font color is only used when the user explicitly specified a color
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@34042 a592a061-630c-0410-9148-cb99ea01b6c8
I'm not happy about having what is basically the same enum in
BufferParams.h and OutputParams.h, but I don't see how to unify them
without either (a) including BufferParams.h in OutputParams.h, which is
ugly or (b) creating some new file just containing this enum, which
seems like overkill. Any other ideas?
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@33967 a592a061-630c-0410-9148-cb99ea01b6c8
- support to change the greyed-out note font color (fixes#3865)
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@33962 a592a061-630c-0410-9148-cb99ea01b6c8
I think it will be worth implementing a version of pure HTML output, for
some uses, a la eLyXer.
Note that at present none of this does anything, and there is no UI to
set it. I just want to make sure it's in the file format, in case I do
not get to this before 2.0.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@33794 a592a061-630c-0410-9148-cb99ea01b6c8
Do not warn that a label already exists if it is in a deleted part of the document.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@33714 a592a061-630c-0410-9148-cb99ea01b6c8
the included insets and make sure that the files they reference are
still where they are supposed to be.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@33686 a592a061-630c-0410-9148-cb99ea01b6c8
- Issue a warning if a path contains uncodable characters (bug 6301).
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@33514 a592a061-630c-0410-9148-cb99ea01b6c8
- fileformat change (lyx2lyx code follows the next days)
- the patch is a joint work of Edwin and me
The patch is huge but the major parts work already. I put it in now as the minor known issues can be solved step by step the next days. I think this is the best solution because collaborating with such large patches already lead to copy/paste bugs.
The known issues are listed here:
http://wiki.lyx.org/Devel/Multirow
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@33414 a592a061-630c-0410-9148-cb99ea01b6c8
a lot of simplification is possible. Except some instability period...
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@33389 a592a061-630c-0410-9148-cb99ea01b6c8
Wrong line count with parent math macros:
* TeXRow.{cpp,h}:
- new helper function to insert multiple newline at once.
* mathed/MacroTable.{cpp,h}:
* mathed/MacroTemplate.{cpp,h}:
- make write() an int, returning number of newlines
* Buffer.cpp (writeLaTeXSource):
- update texrow's newline on parent macro output.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@33367 a592a061-630c-0410-9148-cb99ea01b6c8
probably go also as we agreed that if we need signal/slot in src/ we'll
directly use Qt's.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@33224 a592a061-630c-0410-9148-cb99ea01b6c8
The idea here is to implement something like \refstepcounter for LyX. We
do this by tracking the "active" counter in Counters.cpp. We also have
to track when we go in and out of environments to which counters are
local, and so on and so forth.
This all gets done in updateLabels(), but only if we are producing
output, which is why I added the output boolean a while ago.
I expect there are bugs in here, though it seems to work pretty well
with the documents I've tested.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@33108 a592a061-630c-0410-9148-cb99ea01b6c8
cloned Buffer is always "unloaded" as far as the BufferList is
concerned.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@33105 a592a061-630c-0410-9148-cb99ea01b6c8
(i) release the macro lock after we've cloned, so that...
(ii) we can regenerate the macro caches before doing XHTML output.
It may be worth doing the regeneration in the clone() routine itself,
but it appears that the export routines now all do it anyway.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@32983 a592a061-630c-0410-9148-cb99ea01b6c8
prevents weirdness that might happen if the .bib file were to change
during updateLabels(), (b) prevents even further weirdness that might
happen if it changed during the output routines, and (c) ought to avoid
slowness caused by the repeated calls to QFileInfo::refresh() needed to
check the cache status.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@32972 a592a061-630c-0410-9148-cb99ea01b6c8
page numbering and the references of the master file are maintained in the included children (bug 1005).
I made this optional since some people use \includeonly to save compilation time, but a proper aux file update
needs a full compilation of the complete master prior to the compilation of the \includeonly master.
Hence, a new buffer param is introduced (file format change).
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@32936 a592a061-630c-0410-9148-cb99ea01b6c8
Furthermore, make sure that the read-only flag is always set to both true and false, since now the buffer can be read-only during a reload.
Last, set the buffer clean after a successful reload.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@32896 a592a061-630c-0410-9148-cb99ea01b6c8
when the cache was valid, we did not set it the first time through and
so always read the cache twice.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@32890 a592a061-630c-0410-9148-cb99ea01b6c8
table between tex rows and the lyx paragraph ids.
Not fixed yet it seems as the texrow object do not copy correctly.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@32876 a592a061-630c-0410-9148-cb99ea01b6c8
This fixes bug #6314: reloading master document makes emergencies of modified children.
Now also the version control handling could be moved to Buffer as well, and the hack in ensureBufferClean is removed.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@32875 a592a061-630c-0410-9148-cb99ea01b6c8
#6415
Enrico please verify that reverse dvi is fixed.
* Text and InsetText: create two private constructors and transfer some
initialisation code from InsetText.
* Paragraph: id generation is transfered to Text. May be transfered to
Buffer in the future, we'll see.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@32766 a592a061-630c-0410-9148-cb99ea01b6c8
These are not actually implemented yet, but I wanted to make sure to get
them into the format now, so even if I can't implement them before the
1.7 release, I can do so during the release cycle, without a format
change. I don't expect that to happen, but you never know....
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@32683 a592a061-630c-0410-9148-cb99ea01b6c8
Buffer::Impl::inset was set in the ctor Buffer::Impl::Impl to be a clone. However, in the Buffer::Buffer ctor the inset was set again, now to a new and empty InsetText.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@32589 a592a061-630c-0410-9148-cb99ea01b6c8
Two things are missing (but are fixable):
- the lack of feedback of the background latex compilation
- the error list is not shown in case of compilation error.
* Buffer:
- create a "cloned buffer" type.
- Transfer LFUN_MASTER_BUFFER_UPDATE, LFUN_MASTER_BUFFER_VIEW, LFUN_BUFFER_UPDATE and LFUN_BUFFER_VIEW to GuiView. This is good itself as these LFUN are GUI oriented.
* GuiView: detach the above LFUNs to a new thread as was already done for autosave.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@32584 a592a061-630c-0410-9148-cb99ea01b6c8
* Buffer: new clone() method. When this new autosave method is used the old autoSave() is not of course.
* GuiView: clone the current document buffer and save it in a new thread.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@32512 a592a061-630c-0410-9148-cb99ea01b6c8
The German layouts are replaced by the English ones.
German localization is now done as it is supposed to be: via gettext.
A file format change was needed to do this.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@32406 a592a061-630c-0410-9148-cb99ea01b6c8
as to allow us to call the routine when we are preparing for output and
so to do certain things we might not want to do every time.
This is an abuse of updateLabels(), in a way, but updateLabels() long
ago became the general recurse-through-the-Buffer routine, and to
implement the sort of thing I want to do here in validate(), say, much
of the code in updateLabels()---in particular, the counter-update
code---would have to be duplicated. So I believe this is the best, and
easiest, way to go.
Actual use of the new argument will follow.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@32318 a592a061-630c-0410-9148-cb99ea01b6c8
borrow the LatexFeatures::addPremableSnippet() method to do it.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@32301 a592a061-630c-0410-9148-cb99ea01b6c8
a piece at a time, using the new XHTMLStream.
This just gets the basic structures working, and fixes a bunch of iconv
errors in the process.
I hate iconv errors.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@32085 a592a061-630c-0410-9148-cb99ea01b6c8
The fileformat change is also needed because of our mistake that we load mhchem since LyX 1.6.4 automatically so that files created with LyX 1.6.4 won't compile under LyX 1.6.3. Now at least all files created or opened with LyX 1.7 can be reverted to the fileformat of LyX 1.6.x and can therefore be read by all LyX 1.6.x versions.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@31941 a592a061-630c-0410-9148-cb99ea01b6c8
performance problems when loading documents with lots of macros.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@31907 a592a061-630c-0410-9148-cb99ea01b6c8
Math manual loads and save correctly it seems but expect some instability period.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@31898 a592a061-630c-0410-9148-cb99ea01b6c8
- Do we want to ask the user which of the parents he would like to be the document's parent ?
- Do we want to disable any functionality related to parents ? Like references, bibliography, document outline etc.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@31809 a592a061-630c-0410-9148-cb99ea01b6c8
Furthermore:
- increase safety,
- improve error handling,
- minor cleanups,
- set documents to read-only while running the thread.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@31736 a592a061-630c-0410-9148-cb99ea01b6c8
There is a FIXME in there that says that if some LFUN need to be dispatched even if the Buffer is internal then we should add some code. But I couldn't find any for now.
* Move LFUN_BUFFER_IMPORT status to GuiView where it belongs.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@31398 a592a061-630c-0410-9148-cb99ea01b6c8
Replaced various replica of such check with the invocation of the new method.
TocBackend now does not call addToToc() for internal buffers.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@31340 a592a061-630c-0410-9148-cb99ea01b6c8
This basically solves bug #6162 in trunk (this cannot be done in branch until we take measures to prevent dataloss when closing a master and dirty children).
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@31149 a592a061-630c-0410-9148-cb99ea01b6c8
We don't want a master buffer to release all its children immediately because that would close dirty childs without saving and would make it impossible to store the childs in a proper way in the session file.
As, we close all children of a buffer together with the master itself, it is also no longer necessary to do it automatically.
I'll leave it commented out for a while in case someone objects to it.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@31130 a592a061-630c-0410-9148-cb99ea01b6c8
The first thing that bformat does is to check whether the string contains "%1$s". Otherwise it asserts.
Why didn't we see this happen before ? This was revealed by the emergency saves that Richard introduced in the Buffer dtor.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@31062 a592a061-630c-0410-9148-cb99ea01b6c8
This patch makes sure that there are minimal changes when loading and saving a file with change tracking.
- the authors are assigned a buffer_id, such that when the file is saved, they get the same id,
- the authorlist is sorted according to the buffer_id,
- the buffer_id is written to the file in the author list (file format change)
- the ids start with 1, because 0 is internally reserved for the current Author,
- when writing the file, the current author is assigned an id if he didn't already have it.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@30756 a592a061-630c-0410-9148-cb99ea01b6c8
Fix the rest of the code, whih implies fixing a few potential bugs where the appendix status was not taken in account.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@30524 a592a061-630c-0410-9148-cb99ea01b6c8
* Counters.cpp (flatLabelString): return a cache of the flattened strings for each used language
* Counters.cpp (theCounter, counterLabel, flattenLabelString): add a lang parameter; in theCounter, populate the cache as needed.
* insets/InsetCaption.cpp:
* insets/InsetFoot.cpp:
* insets/InsetBibitem.cpp:
* insets/InsetCollapsable.cpp:
* Paragraph.cpp:
* Buffer.cpp: pass a language argument to counter methods.
* Paragraph.cpp (translateIfPossible): use the function with same name in gettext.cpp.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@30520 a592a061-630c-0410-9148-cb99ea01b6c8
- GUI support for table alignment
(all comments to the polished layout of the table dialog welcome)
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@30477 a592a061-630c-0410-9148-cb99ea01b6c8
- rewrite getUsedBranches() with an InsetIterator approach.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@30465 a592a061-630c-0410-9148-cb99ea01b6c8
- rewrite LFUN_BRANCHES_RENAME with an InsetIterator approach.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@30464 a592a061-630c-0410-9148-cb99ea01b6c8
* on paste, ask if unknown branches shall be added to the branch list
(entails new LFUN_BRANCH_ADD)
* add a list of undefined branches to the buffer and the GUI
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@30419 a592a061-630c-0410-9148-cb99ea01b6c8
Navigating in such dialogs does not work yet, but at least the user is informed
at all that LaTeX wasn't succesful.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@30209 a592a061-630c-0410-9148-cb99ea01b6c8
- make LaTeX logfile dialog work for child documents and master-buffer-[view|update]:
if there's only a master file log or if the master file log is newer, it is displayed.
* Buffer.h: typo.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@30206 a592a061-630c-0410-9148-cb99ea01b6c8
This patch is from JMarc, except the docs, which are due to me.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@29906 a592a061-630c-0410-9148-cb99ea01b6c8
only sweave is supported (for building documentation, not programs).
Layout files allow a new OutputFormat tag
Modules can be conditionned on a feature of the type from->to, indicating that
it should be possible to convert from format 'from' to format 'to'.
Layout format incremented to 15.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@29874 a592a061-630c-0410-9148-cb99ea01b6c8
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
If the document is unnamed try to save in the backup dir, else in the default document path, and as a last try in the filePath, which will most often be the temporary directory.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@29508 a592a061-630c-0410-9148-cb99ea01b6c8
- prevent crash if no formats are found (and return an empty string).
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@29141 a592a061-630c-0410-9148-cb99ea01b6c8
This patch enhances the Buffer::dispatch() method to make it a full-fledged
member of the dispatch sequence. The most immediate payoff is that LFUNs that
are handled in Buffer::dispatch() can be used from the command line.
We make better use of the DispatchResult object and return error information
through it, rather than using return values. (This was JMarc's suggestion.) We
also introduce a corresponding Buffer::getStatus() method, and modify
BufferView::getStatus() to return a flag indicating whether a decision has been
made, as is already done in some other cases.
Finally, some LFUNs are moved to Buffer::dispatch(), including LFUN_BUFFER_PRINT.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@29125 a592a061-630c-0410-9148-cb99ea01b6c8
This change makes it possible (at long last!) to go to the work area, do some edition and then come back to the SpellChecker. We probably need a [Continue] button.
* Buffer::nextWord(): go back a bit to return the current word.
* SpellChecker and Dialog: get rid of the complicated, useless exitEarly() handling.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@29092 a592a061-630c-0410-9148-cb99ea01b6c8
* Buffer::spellCheck() new method constructed from mutiple bits of GuiSpellchecker.cpp.
* GuiSpellchecker: lots of simplifications.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@29090 a592a061-630c-0410-9148-cb99ea01b6c8
filename in a different way, we need to make sure we always do it the same
way. Makes more sense to do this in Buffer anyway.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@29073 a592a061-630c-0410-9148-cb99ea01b6c8
- re-assign a master's children if a child was reloaded (bug 5873)
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@29046 a592a061-630c-0410-9148-cb99ea01b6c8
this case, when the cursor is on a branch inset (using the AtPoint mechanism)
the branch to which the branch inset belongs will be (de)activated.
This functionality can now be used through the branch inset context menu
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@28987 a592a061-630c-0410-9148-cb99ea01b6c8
* Buffer::nextWord(): new method to search for next word.
* DocIterator.cpp: new function isLetter() moved from GuiSpellchecker.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@28963 a592a061-630c-0410-9148-cb99ea01b6c8
* use the UpdateScope, introduced recently, to prevent the 'strange' calls to setParent which also causes the update mechanism to run,
* remove the buffer parameter of loadIfNeeded and all function,
* remove doubled code from getChildBuffer.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@28919 a592a061-630c-0410-9148-cb99ea01b6c8
This patch encapsulates the needed call in Buffer::setBuffersForInsets(),
and calls it from Undo::Private::textUndoOrRedo(). As noted in the FIXME,
this is still a bit of a "hammer" and ought to be replaced with the sort of
more refined approach taken in r28709. But I don't at the moment see how to
do that. The place to do it, though, is in doTextUndoOrRed().
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@28757 a592a061-630c-0410-9148-cb99ea01b6c8
* Buffer.{cpp, h}:
- new method getChildren() that returns included (and sub-included) files
* GuiView.cpp (closeEvent):
- do not just close dirty child documents.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@28712 a592a061-630c-0410-9148-cb99ea01b6c8
The problem was that, if the master is not opened, no respective guiDelegate exists, and the functions that update the toc do not trigger. The fix is to update the child's toc backend and toc items directly in such cases.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@28551 a592a061-630c-0410-9148-cb99ea01b6c8
- avoid wrong console message while loading a child from a master
that lead me on the wrong track when debugging bug 5699.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@28491 a592a061-630c-0410-9148-cb99ea01b6c8
- do not set master_file as master buffer if the document s no real child (bug 5653).
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@28020 a592a061-630c-0410-9148-cb99ea01b6c8
- add optional bool "acceptDirty" to checkAndLoadLyXFiles.
If true, the method doesn't care for buffer dirtiness
* src/Buffer.cpp:
- when checking for master buffer, do not care if it's dirty
(fix bug 5514)
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@27774 a592a061-630c-0410-9148-cb99ea01b6c8
Babel doesn't support this variant (yet), so we use ngerman. However, for spell checking and thesaurus, this makes
a difference.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@27725 a592a061-630c-0410-9148-cb99ea01b6c8