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