* src/support/unicode.[Ch]
(IconvProcessor): Rework the implementation to fix two bugs:
- iconv_close was called even if the conversion descriptor was
invalid
- The compiler generated copy constructor did simply copy the pimpl_
pointer. Therefore pimpl_ was deleted twice for all IconvProcessor
instances created by eightbit_to_ucs4() and ucs4_to_eightbit().
This is solved by using a scoped_ptr for pimpl_.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@15937 a592a061-630c-0410-9148-cb99ea01b6c8
* development/cmake/config.h.cmake:
there is no mode_t
* src/support/copy.C
chmod is declared in io.h
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@15913 a592a061-630c-0410-9148-cb99ea01b6c8
* src/buffer_funcs.h
(updateLabels): Add bool childonly argument
* src/insets/insetbase.h
(addToToc): New virtual method
* src/insets/insetinclude.[Ch]
(addToToc): New virtual method
(updateLabels): New method
* src/TocBackend.h: reorganize classes so that we can forward
declare TocList
* src/insets/insetfloat.[Ch]
* src/insets/insetwrap.[Ch]
(addToToc): Adjust to type changes in TocBackend.h
* src/frontends/qt4/TocModel.[Ch]: ditto
* src/frontends/controllers/ControlToc.[Ch]: ditto
* src/TocBackend.C: ditto
(TocBackend::update) Remove test for float and wrap inset,
call virtual method instead
* src/BufferView.C
(BufferView::dispatch): make LFUN_PARAGRAPH_GOTO work even if the
target paragraph is in a different buffer
* src/MenuBackend.C: Adjust to type changes in TocBackend.h
(expandToc): Add an entry for the master doc in child docs
* src/buffer_funcs.C
(setLabel): Add text class parameter
(updateLabels): handle included docs if requested by the caller
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@15904 a592a061-630c-0410-9148-cb99ea01b6c8
preferences file with \use_converter_cache true. It is disabled by default,
and no GUI support for changing the preferences is yet implemented.
* src/insets/insetgraphics.C
(InsetGraphics::prepareFile): Use image file cache
* src/insets/ExternalSupport.C
(updateExternal): Use image file cache
* src/exporter.C
(Exporter::Export): Do not use image file cache
* src/graphics/GraphicsCacheItem.C
(CacheItem::Impl::imageConverted): Add the converted file to the
image file cache
(CacheItem::Impl::convertToDisplayFo): Use image file cache
* src/converter.C
(Converters::convert): Use image file cache if the caller allowed that
* src/converter.h
(Converters::convert): Adjust arguments
* src/Makefile.am: Add new files
* src/support/lyxlib.h
(chmod): new function
(copy): add mode argument
* src/support/copy.C
(chmod): new function
(copy): implement mode argument
* src/support/mkdir.C
(lyx::support::mkdir): Add warning if permissions are ignored
* src/lyxrc.[Ch]: Add new settings \converter_cache_maxage and
\use_converter_cache
* src/ConverterCache.[Ch]: New image file cache
* src/importer.C
(Importer::Import): Do nut use the image file cache
* src/lyx_main.C
(LyX::init): Initialize the image file cache
* src/mover.[Ch]
(Mover::do_copy): Add mode argument
(SpecialisedMover::do_copy): ditto
* configure.ac: Check for chmod
* development/cmake/ConfigureChecks.cmake: ditto
* development/cmake/config.h.cmake: ditto
* development/scons/SConstruct: ditto
* development/scons/scons_manifest.py: Add new files
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@15897 a592a061-630c-0410-9148-cb99ea01b6c8
* src/buffer.C
(Buffer::insertStringAsLines): Uncomment isPrintable test
* src/support/lstrings.C
(compare_no_case): Use char_type and not int for the docstring version
(ascii_tolower): Convert to a template
(compare_ascii_no_case): Do not use a template anymore, because we
need int for the string version and char_type for the docstring
version as intermediate type
(lowercase): Use towlower if possible
(uppercase): Use towupper if possible
* src/support/textutils.h
(isLetterChar): Use iswalpha if possible
(isPrintable): Use iswprint if possible
(isPrintableNonspace): Use iswprint and iswspace if possible
(isDigit): Use iswdigit if possible
* src/paragraph.C
(Paragraph::asString): remove obsolete FIXME
(Paragraph::transformChar): add FIXME
* configure.ac: Add definition of LIBC_WCTYPE_USES_UCS4 to config.h
* development/cmake/config.h.cmake: ditto
* development/scons/SConstruct: ditto
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@15893 a592a061-630c-0410-9148-cb99ea01b6c8
* src/paragraph.C
(Paragraph::changeLanguage): Don't forget the dummy font change at
the end of the paragraph when changing the language. This does not
affect the other place where this code is used:
Buffer::changeLanguage.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@15890 a592a061-630c-0410-9148-cb99ea01b6c8
* src/text.C
(LyXText::dissolveInset): Reset language to buffer language if the
dissolved inset is an ERT inset.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@15888 a592a061-630c-0410-9148-cb99ea01b6c8
* src/CutAndPaste.C
(pasteParagraphList): Don't record undo info here...
* src/BufferView.C
(BufferView::menuInsertLyXFile): ... but here instead
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@15886 a592a061-630c-0410-9148-cb99ea01b6c8
- LyXText::breakParagraph(): Redo paragraphs before setCursor()
- LyXText::insertChar(): ditto
* lyxfunc.C: take into account BufferView::update() returned value for WorkArea redrawing.
* BufferView::update(): we also need a second step in singlePar mode.
* WorkArea.C
- startBlinkingCursor(): also show the cursor
- stopBlinkingCursor(): also remove the visible cursor
- processKeySym(): stop and start the cursor blinking instead of merely hide and show it.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@15884 a592a061-630c-0410-9148-cb99ea01b6c8
codepoint > 255.
I decided that this is no file format change: We already had the change to
format 249 that allowed unicode in .lyx files. The output to .tex of
non-ascii characters is now different than before (even for those that were
supported previously, e.g. german umlauts in latin1), but this is only
relevant if people referenced a label in ERT. Since we cannot detect this
anyway we don't need a file format change.
* src/support/lstrings.C
(escape): Extend the escaping algorithm from 8 bit to 24 bit.
* src/support/lstrings.h
(escape): Update comment
* lib/lyx2lyx/lyx_1_4.py
(lyx_support_escape): Update comment
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@15883 a592a061-630c-0410-9148-cb99ea01b6c8
in, because we don't know the encoding of external files.
* src/LaTeX.C
(LaTeX::scanLogFile): Convert error strings to docstring and add
a comment that this could be wrong
* src/Chktex.C
(Chktex::scanLogFile): Ditto
* src/LaTeX.h
(TeXErrors::error_desc): Convert to docstring
(TeXErrors::error_text): Convert to docstring
* src/buffer_funcs.C
(bufferErrors): no from_utf8 needed anymore
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@15875 a592a061-630c-0410-9148-cb99ea01b6c8
* src/frontends/qt4/ui/QPrefConvertersUi.ui: Readd translation hint
to label and remove broken tooltip that somebody created instead
* src/messages.C
(Messages::Pimpl::get): reenable stripping of [[..]] from
untranslated messages
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@15872 a592a061-630c-0410-9148-cb99ea01b6c8
* src/mathed/InsetMathScript.C
(InsetMathScript::write): Do not add braces to the nucleus
* src/mathed/MathParser.C
(Parser::parse1): Do not remove brace insets from the nucleus of
script insets
* src/mathed/InsetMathNest.C
(InsetMathNest::script): ditto
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@15859 a592a061-630c-0410-9148-cb99ea01b6c8
rather than "end > start"; eraseChars is invoked
in cases in which no character is to be deleted
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@15856 a592a061-630c-0410-9148-cb99ea01b6c8
labelstring_appendix in layout files
* src/text2.C
(LyXText::setLayout): Translate labelwidthstring for paragraph
(LyXText::getStringToIndex): labelwidthstring is now a docstring
* src/buffer.[Ch]
(Buffer::translateLabel): New method for translating a label if it
is not already translated by the user in the layout file
* src/lyxtext.h
(setParagraph): labelwidthstring is now a docstring
* src/support/lstrings.[Ch]
(bool isAscii): New utility function: Determine whether a docstring
contains only pure ascii
* src/text3.C
(LyXText::dispatch): setParagraph() now takes a docstring
* src/lyxlayout.C
(LyXLayout::read): Don't use from_ascii when reading labelstring_,
endlabelstring_ and labelstring_appendix_
* src/buffer_funcs.C
(setLabel): labelwidthstring is now a docstring
(setLabel): Use Buffer::translateLabel instead of Buffer::B_ to
translate labels
(expandLabel): ditto
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@15855 a592a061-630c-0410-9148-cb99ea01b6c8
- new pimpled TocBackend member and associated accessors.
* toc.[Ch]: delete all toc related methods except outline.
* TocBackend:
- goTo(): deleted, this gets rid of the LyXView dependency
- made all accessors const.
* ControlToc:
- rework the controller to work exclusively with TocBackend.
- goTo(): now call LyXView::dispatch() directly
all other files: update with the TocBackend or ControlToc API changes.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@15852 a592a061-630c-0410-9148-cb99ea01b6c8
where sizeof(wchar_t) == 2
* src/support/docstring.C:
- New class num_put_failure for warning about non-ascii characters.
- New class ascii_num_put_facet for outputting numbers to odocstreams.
- Add the ascii_num_put_facet facet to the locale initializer.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@15849 a592a061-630c-0410-9148-cb99ea01b6c8
(expandToolbar): remove unneeded variables buf and i; use
the toolbar's gui_name.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@15846 a592a061-630c-0410-9148-cb99ea01b6c8
the syntax of InsetInclude did not change when the syntax of InsetCommand
changed. Therefore we need to implement our own read method.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@15833 a592a061-630c-0410-9148-cb99ea01b6c8
* src/funcrequest.h: split UI enum into MENU and TOOLBAR
* src/lyxfunc.C (getStatus): disable menu entries that need a
buffer when window does not have focus (bug 1720)
(dispatch, sendDispatchMessage): properly redraw toolbar after each
action (bug 2877).
* src/frontends/Toolbars.C (layoutSelected):
* src/MenuBackend.C (MenuItem):
* src/ToolbarBackend.C (add): adapt to FuncRequest change.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@15825 a592a061-630c-0410-9148-cb99ea01b6c8
* have the modify/new functions in the formats and converter modules share most of their code
* get rid of the pointer to PrefConverters in the
formats module
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@15820 a592a061-630c-0410-9148-cb99ea01b6c8
deleting empty paragraphs even when keepempty is true. Do not rely
on dEPM, since this was silly (bugs 2587 and 2882)
(Delete): simplify also and avoid calling backspace.
(backspace): small tweak.
(patch by Jean-Marc)
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@15801 a592a061-630c-0410-9148-cb99ea01b6c8
(InsetMathSymbol::draw): Remove obsolete FIXME
(InsetMathSymbol::draw): Microoptimization: Do not copy the string
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@15789 a592a061-630c-0410-9148-cb99ea01b6c8
copySelection; fix change tracking in
pasteSelectionHelper; remove a few CT-related FIXMEs
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@15788 a592a061-630c-0410-9148-cb99ea01b6c8
- setBufferView(): deleted
- currentView(), setCurrentView(): new method to set the current LyXView
* GuiApplication::x11EventFilter(): use currentView().view() to get the current BufferView. This should solves the X11 selection bug.
* WorkArea:
- dispatch(): redraw only if needRedraw in preparation for the painting optimization patch. Show the cursor immediately on mouse click.
- setBufferView(): remove call to Application::setBufferView()
* GuiWorkArea:
- focusInEvent(): update only if we changed LyXView
- focusInEvent(): stop the cursor only if we changed LyXView.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@15783 a592a061-630c-0410-9148-cb99ea01b6c8
* src/frontends/qt4/QDocumentDialog.C:
* src/frontends/qt4/QPrefsDialog.C:
- force updateGeometry() for Qt >= 4.2 after the panel stack
has been built. This is a workaround for a Qt bug. See FIXMEs.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@15781 a592a061-630c-0410-9148-cb99ea01b6c8
- wide_inset_ is not mutable any more
- Wide(): split up in Wide() and setWide()
* rowpainter.C:
- paintPar(): use a const_cast instead of the mutable InsetText::Wide()
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@15779 a592a061-630c-0410-9148-cb99ea01b6c8
* src/frontends/qt4/panelstack.C:
- fix the preferences and document dialog resizing problem (well, at least
for me -- please verify).
This didn't fix the problem. I'm pretty sure now that this is a bug in Qt 4.2(.1?)
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@15770 a592a061-630c-0410-9148-cb99ea01b6c8
- fix the preferences and document dialog resizing problem (well, at least
for me -- please verify).
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@15769 a592a061-630c-0410-9148-cb99ea01b6c8
* src/encoding.[Ch]
(symbol_encoding, symbol_encoding_): remove (unused)
* src/frontends/qt4/QLPainter.C
(QLPainter::text): Remove commented code. It was used in pre
unicode times to get unicode values of the symbol fonts if
USE_UNICODE_FOR_SYMBOLS was defined, but this was never defined
anyway, since the code points of the symbol fonts (as written in
lib/symbols) are directly used.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@15758 a592a061-630c-0410-9148-cb99ea01b6c8
* paragraph_funcs.C: moveItem(): rename and
reorder parameters to make the function better understandable;
do not pass a Change parameter, because the function is able to
retrieve the right change by itself; adjust all function calls;
simplify the CT code and remove 3 FIXMEs at the same time
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@15756 a592a061-630c-0410-9148-cb99ea01b6c8
math delimiter size values
* Status.15x: kill one bug & add a new one
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@15753 a592a061-630c-0410-9148-cb99ea01b6c8
headers and converting the gettext stuff in tex2lyx and client to use
docstring.
The interface must be defined by src/gettext.h anyway, so better use that.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@15740 a592a061-630c-0410-9148-cb99ea01b6c8
InsetHFill. This is possible because InsetHFill is the only inset so
far without parameters.
* src/insets/insetcommandparams.C
(InsetCommandParams::getCommand): Add {} to commands without
parameters.
* src/insets/insethfill.[Ch]
(InsetHFill::latex): Remove
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@15736 a592a061-630c-0410-9148-cb99ea01b6c8
- hasFocus(): new pure virtual method
- redraw(): update singlePar only if the Widget has the focusInEvent
* GuiWorkArea.h: implement hasFocus().
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@15724 a592a061-630c-0410-9148-cb99ea01b6c8
(Parser::parse1): Fix special handling of {}-bases to not destroy
\xxx{\vec{H}}_0 where \xxx is an unknown command
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@15712 a592a061-630c-0410-9148-cb99ea01b6c8
* src/encoding.[Ch]
(getEncoding): rename to getFromLyXName
(getFromLaTeXName): new, it does what the name says
* src/buffer.C
(Buffer::makeLaTeXFile): Fix crash by using getFromLaTeXName instead
of getFromLyXName.
Avoid crash for unknown encodings.
* src/language.C
(Languages::read): Adjust to name change above
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@15703 a592a061-630c-0410-9148-cb99ea01b6c8
* buffer.h: changed() signal now emit a singlePar boolean.
* WorkArea::redraw(): acknowledge singlePar changed() boolean
* LyXView.C: adapt signal connection to changed() signal change.
* lyxfunc.C: transmit the singlePar flag with the Buffer::changed() signal.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@15702 a592a061-630c-0410-9148-cb99ea01b6c8
- Get rid of setRenderHint for anti-aliasing, because we should respect user windows setting
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@15699 a592a061-630c-0410-9148-cb99ea01b6c8
Use case: Two window share the same buffer. The first window is resize. This modify the inner Buffer structure because Paragraph has a notion of line break and thus line width. When switching to the other window which does not have the same size, LyX crashes because the line break is not adapted the this BufferView width.
This commit fix the crash by resizing the BufferView on a focusInEvent(). That is not a good fix but it is a fix nevertheless. The bad side effect is that when the two BufferView shows the same portion of the Buffer, the second BufferView will show the same line breaks as the first one even though those line breaks are not adapted to the second BufferView width... such is life!
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@15697 a592a061-630c-0410-9148-cb99ea01b6c8
- the cursor is still a widget, the width is 2-pixel on Windows and 1-pixel on other platforms. The full screen refresh on blinking cursor bug is now gone.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@15695 a592a061-630c-0410-9148-cb99ea01b6c8
Qt doc for QMouseEvent::button():
Note that the returned value is always Qt::NoButton for mouse move events.
so we must use buttons() instead because later on
the code checks for the left button.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@15693 a592a061-630c-0410-9148-cb99ea01b6c8