* Clear the paragraph metrics cache as well on redraw:
On fullscreen redraw the metrics of all visible paragraphs are
recreated and stored in the TextMetrics object. If the number of
paragraphs on screen does not change everything is fine because the
paragraph metrics cache is just updated. But if the number decreases
it can happen that old paragraph metrics remain in the cache. If this
happened because e.g. a paragraph was deleted, it's possible that the
cached paragraph is longer than the one which is actually at the
position now. Using the Row objects from the cached paragraphs then
can trigger accesses to positions which would have been valid in the
old paragraph, but go over the end of the paragraph which is there
now.
* On MacOSX enter is no activation key for a QListWidget. Hence it
does not close the command completion popup. Moreover setFocus does
not focus the widget correctly, probably because the popup widget
behavior is different. An activateWindow solves the problem by
selecting the LyX view again as active window.
Fix bug 3171: switching document jumps always back to last saved bookmark
http://bugzilla.lyx.org/show_bug.cgi?id=3171
* LyXFunc::closeBuffer(): remove code that is already done on Buffer deletion thanks to the Buffer::closing() signal connection to LyXView. Setting the Buffer twice was part of the reason of the bug.
* BufferView::setBuffer(): properly update the metrics if we move to a saved cursor position.
Fix a few quirks and a crash introduced by a bad manual merge of local tree at revision 18828. Sorry.
* LyXView::setBuffer(): update labels and toc only if we change parents.
* LyXView::loadLyXFile():
- update labels in _any_ case and before setting the Buffer.
- update GUI controls in case we move to a saved position.
Polish revision 18825 and fix some remaining issues with child documents. The diff is bigger than it should because of white space issues.
* buffer_funcs.{h,cpp}: new checkAndLoadLyXFile() transferred from BufferView::loadLyXFile().
* BufferView::loadLyXFile(): deleted.
* LyXView::loadLyXFile(): simplify logic and fix some issues:
- buggy child document leads to crash due to error list dialog.
- ensure that we switch to buffer if there's some errors.
- use LyXView::setBuffer() instead of repeating code.
Richard Heck [Tue, 19 Jun 2007 14:56:52 +0000 (14:56 +0000)]
Polish the Toc and labels updating when loading a child document.
Fix Bug 3860: Toc crash when loading a child documents.
* BufferView::loadLyXFile(): simplify, transfer last part to
LyXView::loadLyXFile().
Change return value to Buffer created by load (or 0 if none).
Ultimately, this should all be moved to buffer_funcs.cpp, as it is no
longer needed here.
* Buffer::setParentName(): small fix to avoid recursive includes.
* LyXView:
- setBuffer(): properly update the labels and the Toc if this is [LOAD Child
Document] command. Move buffer connection and disconnection, simplifying
earlier code.
- loadLyXFile(): get some code from BufferView::loadLyXFile() and from
LyXFunc::LFUN_BUFFER_CHILD_OPEN, properly handle the child document case.
There's a lot of overlap with setBuffer() here. This needs cleaning.
* LyXFunc: add optional argument to LFUN_BUFFER_CHILD_OPEN to indicate if
the document is being opened by LyX itself rather than the user (as on
View>DVI, for example).
* LyX: adapt to loadLyXFile() API changes.
* insets/InsetInclude: use LFUN_BUFFER_CHILD_OPEN rather than calling
loadLyXFile() directly. Make use of new optional argument.
With this in place, the only thing missing for proper multipart document support is to automatically update the parent Buffer when switching from the parent Buffer. This would be very useful when you work with multiple document sharing the same child documents (as I often do).
Uwe Stöhr [Mon, 18 Jun 2007 18:21:29 +0000 (18:21 +0000)]
LaTeXFeatures.cpp: Make the German Userguide compile again, fixes bug 3878 (http://bugzilla.lyx.org/show_bug.cgi?id=3878)
Patch kindly provided by Georg.
* update cursor position on resize _after_ drawing. Because before
the coordinate cache of the math inset is not valid and InsetMathNest
depends on that to compute the cursor position.
Uwe Stöhr [Sun, 17 Jun 2007 00:21:35 +0000 (00:21 +0000)]
moderncv: update layout and example to version 0.6 of moderncv.layout
This means:
- added subsection style in moderncv.layout
(I had to promise to JMarc when I added the moderncv support to add this as soon as the new noderncv version is out.)
- actualize preamble of modernCV.lyx to make it compile with the new version
- better explanation of customization possibilities in the preamble of modernCV.lyx
* Added the kerning method to a macro to inherit the kerning from the expanded form.
* Moreover the marker metrics calls are removed as they are not drawn anyway.
(fixes #3705)
Richard Heck [Fri, 15 Jun 2007 17:02:35 +0000 (17:02 +0000)]
Make HTML export work.
The key is the new copier script lib/scripts/ext_copy.py. Usage:
ext_copy.py [-e ext1,ext2,...] <from file> <to file>
Given a <from file> and <to file>, it will copy all files in the directory
in which from_file is found that have the extensions given in the -e option,
or all files in that directory if no such argument is given. So, for example,
we can do:
python ext_copy.py -e png,html,css /path/from/file.html /path/to/file.html
and all html, png, and css files in /path/from/ will be copied to the
(possibly new) directory /path/to/file.html.LyXconv/. The -t option determines
the extension added to the output filename passed to the script ($$o, in the
copier definition), the default being "LyXconv". If just . is given, then no
extension is added.
Other changes:
* configure.py: added appropriate copier definitions for html and wordhtml
formats, as well as for the Program pseudo-format.
* lib/Makefile.am and development/scons/scons_manifest.py: add ext_copy.py.
* lib/doc/Customization.lyx: update documentation.
Saves some compile time by diminishing Buffer.h header dependencies:
- delete unneeded InsetList.h
- transfer the errorList to the private implementation.
* the old cursor is stored before dispatch and then used after moving
up/down to tell the insets that the cursor left them. The
notifyCursorLeaves methods can set updateFlags to trigger a redraw.
* leave mathed with cursor up/down and get the math redrawn for the
decorations
Better fix for bug 3510 (by me, Juergen, and Jean-Marc)
* lib/layouts/IEEEtran.layout: Add a proper definition to the
preamble when using the MarkBoth environment (fix bug 3510).
Allow inserting an optional argument for theorem like environments.
Remove white space from begin of line in preamble stuff.
* lib/templates/IEEEtran.lyx: Reintroduce the MarkBoth environment
in the document body thanks to the fix above. Use optional argument
instead of ERT in Theorem environment. Use the new --Separator--
environment for splitting biography environments.
Dov Feldstern [Wed, 13 Jun 2007 19:12:38 +0000 (19:12 +0000)]
lyx2lyx to convert the language of spaces surrounding text in a foriegn
language to be in the paragraph's language. This is necessary due to format
change 259, but the language was forgotten in lyx2lyx back then. It's important
for Bidi documents.
Dov Feldstern [Mon, 11 Jun 2007 22:05:44 +0000 (22:05 +0000)]
KeyMap is now switched (if necessary) only just before it is actually used
for translating keystrokes. Up until now, the switching was done in advance
in all kinds of situations, but not just before translating was actually done
--- which resulted in the KeyMap not always being switched on time...
This solves bug #3811 (http://bugzilla.lyx.org/show_bug.cgi?id=3811)
* Only enter inset which return true on isActive(). This is the behavior in the cursor code.
Only newly created inset were entered everytime.
* Derived classes of CommandInset do not draw all cells, so return false.
(fixes http://bugzilla.lyx.org/show_bug.cgi?id=3715)
* do not draw grey bars if another update strategy is active than fullscreen
(fixes http://bugzilla.lyx.org/show_bug.cgi?id=3231). See
http://thread.gmane.org/gmane.editors.lyx.devel/87296 for discussion.