Georg Baum [Sat, 24 Mar 2007 21:12:29 +0000 (21:12 +0000)]
Update special arabic support to UCS4
* src/encoding.C
(arabic_table): Delete (this was used for fonts in iso8859-6 encoding)
(arabic_table2): Rename to arabic_table and update code points to UCS4.
The old code points in this table where a custom encoding:
Some ASCII positions and some unused positions of the iso8859-6
encoding where used to encode the shaped forms. Example:
The character hamza was encoded with 0x41. The iso8859-6 encoding in
lib/encodings contained ithe value 0xfe80 at position 0x41 before
the transition to unicode => Change the value 0x41 to 0xfe80 in the
table.
This old custom encoding was needed because the transformed characters
needed to be transported through 8bit characters.
(Encodings::is_arabic_special): Change code points from iso8859-6 to UCS4
(Encodings::isComposeChar_arabic): Ditto
(Encodings::is_arabic): Ditto
(Encodings::transformChar): Always use arabic_table
Georg Baum [Fri, 23 Mar 2007 15:09:21 +0000 (15:09 +0000)]
Fix bug 440
* src/frontends/controllers/ControlCharacter.[Ch]
(reset_lang_) New flag (needed because the language is never
inherited)
* src/frontends/controllers/ControlCharacter.C
(ControlCharacter::getLanguage): Use reset_lang_
(ControlCharacter::setLanguage): Set reset_lang_ if needed
Correctly implement rule 18a in appendix G of the TeXbook
* src/mathed/InsetMathScript.C
(isAlphaSymbol): New. Return true if nucleus is a letter or a
symbol whose type is mathord or mathalpha.
(InsetMathScript::dy01): Apply rule 18a accounting for nucleus type.
* src/mathed/MathData.C
(MathArray::metrics): Account for the fact that some fonts (eg.
mathcal) do not have a lower case x glyph.
* src/mathed/InsetMathSymbol.[Ch]
(InsetMathSymbol::isOrdAlpha): New. Return true if type of symbol
is mathord or mathalpha.
Martin Vermeer [Thu, 22 Mar 2007 07:22:16 +0000 (07:22 +0000)]
Get ProvidesNatbib working correctly, esp. for egs.layout.
* insetcite: call getEngine()
* bufferparams: move getEngine() here, and let it sense the
provides(natbib)
flag
* ControlBibtex, ControlCitation: correct getEngine() call
* biblio: remove old getEngine()
Account for real width of nucleus when positioning superscripts in mathed
* src/mathed/MathSupport.[Ch]
(mathed_char_kerning): New. Compute right kerning for the given
font and character as the difference between right bearing and
logical width.
* src/mathed/InsetMathScript.[Ch]
(InsetMathScript::dx1, InsetMathScript::metrics): Account for
nucleus right kerning.
(InsetMathScript::nker): New. Return the nucleus right kerning
if positive, zero otherwise.
* src/mathed/MathData.[Ch]
(MathArray::metrics): Cache the nucleus right kerning value.
(MathArray::kerning): New. Return cached right kerning.
* src/mathed/InsetMathChar.[Ch]
(InsetMathChar::metrics): Cache the character right kerning.
(InsetMathChar::kerning): New. Return cached right kerning.
* src/mathed/InsetMath.h
(InsetMath::kerning): New virtual method.
* src/mathed/InsetMathSymbol.[Ch]
(InsetMathSymbol::metrics): Cache the symbol right kerning.
(InsetMathSymbol::kerning): New. Return cached right kerning.
* src/mathed/InsetMathFont.[Ch]
(InsetMathFont::kerning): New. Return cached right kerning.
Peter Kümmel [Tue, 20 Mar 2007 22:13:21 +0000 (22:13 +0000)]
cmake build system:
Add "merge" option which minimizes the number of files to build.
only the qt4 and boost files will not merged into one file.
This really speeds up the compilation.
Usage:
cmake ../trunk/development/cmake -Dmerge=1
Georg Baum [Mon, 19 Mar 2007 16:15:34 +0000 (16:15 +0000)]
Fix bug 3348
* src/LaTeX.C
(exists): New helper: test for existance of file with possibly
invalid filename
(insertIfExists): Use exists() instead of fs::native and fs::exists()
(handleFoundFile): Ditto
* src/mathed/InsetMathScript.[Ch]
(InsetMathScript::dy01): new, jointly account for both superscript
and subscript according to the rules in Appendix G of the TeXbook.
(InsetMathScript::dy0, InsetMathScript::dy1): set ascent and descent
values using dy01 for non-limits super/subscripts.
(InsetMathScript::metrics): account for the new super/subscript
placement rules when setting ascent and descent values.
* src/mathed/MathData.[Ch]
(MathArray::metrics): cache parameters needed for super/subscript
placement. When nucleus is not empty, set its ascent value to zero
such that it is correctly computed later, otherwise ascent values
less than that of an 'I' are not reported.
* src/buffer.C
(Buffer::writeLaTeXSource): Copy back encoding to runparams_in
(Buffer::runChktex): Create runparams with document encoding
(Buffer::changeRefsIfUnique): ditto
* src/outputparams.[Ch]
(encoding): New member
* src/lyxfont.C
(LyXFont::latexWriteStartChanges): Don't switch the encoding anymore.
This is now done in Paragraph::simpleTeXOnePar.
(LyXFont::latexWriteEndChanges): Ditto
* src/output_latex.C
(TeXOnePar): Ditto
* src/paragraph.C
(Paragraph::simpleTeXOnePar): Switch the encoding between font
changes if needed.
Georg Baum [Sun, 18 Mar 2007 10:44:26 +0000 (10:44 +0000)]
Fix TOC generation for build dir != src dir
* lib/doc/depend.py
(documents): Add dir_prefix argument
(all_documents): Ditto
(main): Create document list with empty prefix, since the prefix will
be addded by a Makefile variable
(main): Don't use isdir to detect english language, since that does
not work for build dir != src dir
* lib/doc/doc_toc.py
(main): Don't use isdir to detect english language, since that does
not work for build dir != src dir, rather create the dir if it does
not exists.
Cleanup of the Toc model and controller: The objective is to let the View (TocWidget) decide which kind of list it want to show. The type given by InsetCommandParam() (as read by the controller (ControlToc) then just becomes a hint to the View. Most of the commit is about getting rid of the controller maintained list of types.
* ControlToc
- tocs(): new
- selectedType(): access to selected_type_
- initialiseParams(): transfer code from QToc::update() and look for selected type.
- getTypes(), getContents(): deleted
* QToc: do not maintain current type. Get the info from the View.
- setTocModel(): deleted
* TocWidget: always pass the currently selected type to the model/controller.
- setTocModel(): new slot.
- updateGui(): transfer code to setTocModel().
steps to reproduce:
- create a new document
- change the document class to article (AMS)
- change the current layout to theorem, definition, proposition, ....
- try to write something -> boom
Georg Baum [Tue, 13 Mar 2007 19:46:56 +0000 (19:46 +0000)]
* src/paragraph_pimpl.[Ch]
(Paragraph::Pimpl::simpleTeXSpecialChars): Get rid of the 'font'
argument, since the caller ensures that it is equal to 'running_font'.
* src/paragraph.C
(Paragraph::simpleTeXOnePar): Adjust to change above
Georg Baum [Mon, 12 Mar 2007 19:38:20 +0000 (19:38 +0000)]
Improve fix for bug 3305
* src/LaTeX.C
(insertIfExists): Instead of catching all fs exceptions, test for a
valid filename before constructing a fs::path. This gets rid of the
exceptions because of invalid names, but does still allow other
expcetions to be thrown (e.g. because of file system problems).
(handleFoundFile): ditto
Georg Baum [Mon, 12 Mar 2007 17:19:08 +0000 (17:19 +0000)]
Prepare for fixing bug 3235
* src/output_latex.C
(TeXEnvironment): Rename language variables to make it very clear
that they denote the paragraph language, not the character language.
(TeXOnePar): ditto
* ControlToc:
- initialiseParams(): overload ControlCommand::initialiseParams() so that we can update the model at this point (QToc is the controller _and_ the model).
- update(): new
- updateBackend(): new protected method to update the TocBackend (called for the "Update" button).
* QToc:
- is now a QObject
- modelReset: new Qt signal to indicate a model reset to associated dialog(s).
- QToc(): avoid the duplicate update() call that will be done in the show command anyway.
* Dialogs.C
- use new TocWidget in a DockView.
* TocWidget.[Ch]: renamed from QTocDialog. This striped down widget is only a widget that connects to the 'QToc' model/controller.
* DockView.h: new template class that encapsulates a given Widget inside a DockWidget and presents a Dialog::View interface.
* QTocUi.ui:
- now is a simple Widget.
- rearrange the buttons a bit
- get rid of the unneeded close button.
- modify the shortcut to "Promote" to 'r' because of a clash with "Alt-p" number (we really need real, always valid, shortcuts for all outline action!)