The crash was being caused by the fact that when moving back from the
beginning of the line to the previous line (by pressing RIGHT in an
RTL paragraph, or LEFT in an LTR one), Bidi metrics for the new line
do not yet exist, but an attempt is made to access them.
Basically, this patch was created by trying to "symmetrically" copy
cursorRight (which seems to work well) to cursorLeft (which was
problematic).
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@18389 a592a061-630c-0410-9148-cb99ea01b6c8
1) Open EmbeddedObject.lyx
2) Open Toc
3) Click on section 7.2.2 which is in the second child document
4) assertion.
This commit adds proper support for multi-part documents. With this each child document has access to the _full_ TOC tree (including LOT and LOF). This enables to switch between master and child document using the TOC.
* buffer_funcs.cpp:
- updateLabels(): do not emit Buffer::structureChanged() signal for child document
- checkBufferStructure(): update the structure of the master document.
* ControlToc.cpp: always use the TocBackend of the master document.
* LyXView::connectBuffer(): connect structureChanged() of master document.
* TocBackend:
- TocItem: get rid of child_ member.
- TocBackend::item(): only compare items from the same document.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@18386 a592a061-630c-0410-9148-cb99ea01b6c8
Delete cached conversions if the converter changes.
* src/frontends/qt4/QPrefs.cpp
(PrefConverters::update_converter): delete cached files since the
new converter might create different ones
(PrefConverters::remove_converter): ditto
* src/support/convert.cpp
(unsigned long convert<unsigned long>): New template specialization
* src/ConverterCache.h
(ConverterCache::remove_all): New method, removes all cached
conversions of a particular converter
* src/ConverterCache.cpp
(CacheType): Also store source file format
(ConverterCache::Impl::readIndex): Handle files with spaces correctly
(ConverterCache::Impl::writeIndex): ditto
(various): adapt to changed CacheType
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@18378 a592a061-630c-0410-9148-cb99ea01b6c8
Use case solved by this patch:
1) open EmbeddedObject.lyx
2) open the TOC widget (Uwe says it crashes there but I can't reproduce)
3) try to select an item previous to 6.2.2: crash because of an assertion:
Assertion triggered in bool __cdecl lyx::operator <(const class lyx::CursorSlice
&,const class lyx::CursorSlice &) by failing check "false" in file D:\LyXSVN\ly
x-devel\src\CursorSlice.cpp:106
I think this patch will also solve bug 3616:
http://bugzilla.lyx.org/show_bug.cgi?id=3616
* TocItem::child_: new member for child document; default to false.
* TocBackend::item(): skip DocIterator comparison if item is in child docuemt.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@18370 a592a061-630c-0410-9148-cb99ea01b6c8
* Bidi.{h,cpp}:
- isWithinRtlParagraph(): new helper function.
* Text2.cpp: use function above for cursor up and down instead of needReverseDirection() which is about cursor left and right.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@18364 a592a061-630c-0410-9148-cb99ea01b6c8
- infrastructures: merge the InstallActions file as requested by Christian
- updated documentation and structure graphic
- some more changes due to update to MiKTeX 2.6
- updates
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@18357 a592a061-630c-0410-9148-cb99ea01b6c8
* TocWidget::select()
- Do not allow select ModelItem from the code for non-TOC types
- add a FIXME explaining the situation.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@18348 a592a061-630c-0410-9148-cb99ea01b6c8