* src/insets/insetcaption.C
(InsetCaption::latex): Copy back encoding to runparams_in
* src/insets/insetfoot.C
(InsetFoot::latex): ditto
* src/insets/insetnote.C
(InsetNote::latex): ditto
* src/exporter.C
(Exporter::Export): Create runparams with document encoding
* src/converter.C
(bool Converters::convert): ditto
* 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.
* All other files: Adjust to the changes above
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@17470 a592a061-630c-0410-9148-cb99ea01b6c8
(InsetBox::validate): Don't require the calc package anymore for
pure minipages (as it was done in 1.3.x)
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@17312 a592a061-630c-0410-9148-cb99ea01b6c8
Extend this to some other cases by me.
* src/insets/insetert.C
(void InsetERTMailer::string2params): Test for lex.isOK rather than
lex, since the latter is also true if there was nothing to read.
* src/insets/insetvspace.C
(InsetVSpace::read): ditto
(InsetVSpaceMailer::string2params): ditto
* src/insets/insetnote.C
(InsetNoteParams::read): ditto
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@17284 a592a061-630c-0410-9148-cb99ea01b6c8
* insetbase.h: introduce new enum PLAINTEXT_NEWLINE and use
it instead of runparams.linelen for plaintex() return values
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@17275 a592a061-630c-0410-9148-cb99ea01b6c8
* src/insets/insetoptarg.C: add comment that we do not output anything
for plaintext output INTENTIONALLY
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@17244 a592a061-630c-0410-9148-cb99ea01b6c8
* src/insets/ExternalSupport.C
(doSubstitution): redo the substitution with use_latex_path == false
for the filename argument of $$Contents, since the original
substitution might have been done with use_latex_path == true, and
that can lead to escaped filenames that are only valid for TeX.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@17242 a592a061-630c-0410-9148-cb99ea01b6c8
* src/insets/ExternalSupport.C
(updateExternal): Add new dryrun flag and only record updated files
for the exporter if that flag is false
(writeExternal): Call updateExternal also if dryrun is true and the
product contains the $$Contents placeholder. In this case we need to
run the conversion(s) even in dryrun mode, because we would not
output the right stuff to the .tex file otherwise.
* src/insets/ExternalSupport.[Ch]
(writeExternal): rename external_in_comment flag to dryrun
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@17204 a592a061-630c-0410-9148-cb99ea01b6c8
a word in front of an inset; make sensible use of plaintext()
return value (IMHO totally broken before)
* insets/insetfoot.[Ch]: add plaintext()
* insets/insethfill.[Ch]: adjust plaintext(); make the
number of characters determinitic; minor header cleanup
* insets/insetbase.h: add comment on return value
of plaintext() - before its meaning was unclear
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@17200 a592a061-630c-0410-9148-cb99ea01b6c8
* src/insets/ExternalSupport.C
(updateExternal): Avoid computing crc of a directory as this leads
to a crash on Cygwin.
* lib/configure.py:
Use a python script to get the current date in order to avoid
a stalling condition with the date command on Win32.
* lib/scripts/date.py:
New python script.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@17168 a592a061-630c-0410-9148-cb99ea01b6c8
(InsetExternal::latex): Handle the dryrun flag correctly: Only
create the LaTeX output, do not do any file conversions.
(InsetExternal::plaintext): ditto
(InsetExternal::docbook): ditto
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@17127 a592a061-630c-0410-9148-cb99ea01b6c8
(InsetGraphics::prepareFile): Use correct extension if it cannot be
stripped. I overlooked this when I did the
stripExtension -> stripExtensionIfPossible change in revision 10093.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@17117 a592a061-630c-0410-9148-cb99ea01b6c8
* insetpagebreak.h: use it
* insetcaption.C (insetAllowed): new method. Reduce the list of
forbidden insets
(dispatch): remove code handled above; re-allow some LFUNs.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@17026 a592a061-630c-0410-9148-cb99ea01b6c8
* src/CutAndPaste.h/C: add selectionBuffer to save selected text
* src/text3.C: proper handling of paste
* src/lyxfind.C: save selection
* src/BufferView.C: save selection
* src/text.C: save selection
* src/cursor.C: save selection
* src/insets/insettabular.C: save selection
* src/mathed/InsetMathGrid.C: save selection
* src/mathed/InsetMathHull.C: save selection
* src/mathed/InsetMathNest.C: save selection
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@17022 a592a061-630c-0410-9148-cb99ea01b6c8
http://bugzilla.lyx.org/show_bug.cgi?id=675
The former one also disabled cross-reference insertion.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@17008 a592a061-630c-0410-9148-cb99ea01b6c8
* buffer_funcs.C::setCaptionLabels(): set the type as well as the custom label.
* InsetCaption:
- setType(): new method to set the type of the caption
- setCustomLabel(): renamed from setLabel, translate if possible.
- addToToc(): implement.
- metrics(): use custom_label_ if defined.
* InsetFloat::addToToc(): don't do anything.
* InsetWrap::addToToc(): don't do anything.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@17001 a592a061-630c-0410-9148-cb99ea01b6c8
* buffer.C: increase LyX format to 257.
* lyxtextclass.C: increase FORMAT format to 3.
* buffer_funcs.C:
- setCaptionLabels(): new recursive function
- setCaptions(): new function
- updateLabels(): call setCaptions() for each paragraph.
* InsetCaption:
- add a virtual destructor
- overload InsetText' getStatus() and wide().
- setLabel(): only set the new private member label_.
- metrics(): don't set label here and correct for title metrics.
- draw(): don't set label here
- latex(): fix optional argument.
- plaintext(): implement!
* InsetText:
- add a virtual destructor
- add virtual to getStatus() and wide().
* output_latex.[Ch]: move latexOptArgInsets() out of anon namespace.
* text3.C: enable LFUN_CAPTION_INSERT
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@16948 a592a061-630c-0410-9148-cb99ea01b6c8
* src/text.C: rename acceptOrRejectChange() to acceptOrRejectChanges() because it can handle many changes within the given selection; add acceptChanges() and rejectChanges()
* src/text3.C:
* src/BufferView.C: adjust
* src/insets/insettext.C: accept/rejectChanges() become wrapper methods that call LyXText::acccept/rejectChanges
* src/text2.C: add assertion
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@16859 a592a061-630c-0410-9148-cb99ea01b6c8
* src/text.C:
* src/text3.C:
* src/BufferView.C: adjust
* src/insets/insettext.C: acceptChanges() / rejectChanges(): fix pars_size bug introduced in previous commit; call deleteEmptyParagraphMechanism()
* src/text2.C: track changes in DEPM (I am not sure about whether this is actually useful; time will tell..); add deleteEmptyParagraphMechanism(pit_type, pit_type, bool)
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@16858 a592a061-630c-0410-9148-cb99ea01b6c8
* src/BufferView.C:
* src/text3.C:
* src/text.C: merge methods acceptChange() and rejectChange() to acceptOrRejectChange() because they share a lot of tricky code
* src/text.C: yet another revision of acceptOrRejectChange()
* src/paragraph.C:
* src/paragraph.h:
* src/paragraph_pimpl.C:
* src/paragraph_pimpl.h:
* src/insets/insettabular.C:
* src/insets/insettabular.h:
* src/insets/insettext.C:
* src/insets/insettext.h:
* src/insets/insetbase.h: pass BufferParams to acceptChanges() and rejectChanges() (needed for paragraph merging)
* src/insets/insettext.C: handle end-of-par in acceptChanges() and rejectChanges()
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@16830 a592a061-630c-0410-9148-cb99ea01b6c8
* src/LaTeXFeatures.[Ch]
(LaTeXFeatures::addExternalPreamble): rename to addPreambleSnippet,
since this is not specialized for InsetExternal at all
* src/insets/insetexternal.C
(InsetExternal::validate): reflect name change above
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@16784 a592a061-630c-0410-9148-cb99ea01b6c8
* insetbase.C
- drawMarkers(): draw the decoration in any case (but visible only in editing mode). Fill-in the CoordCache in any case.
- drawMarkers2(): ditto.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@16773 a592a061-630c-0410-9148-cb99ea01b6c8
* InsetBase::drawDecoration(): new method.
* all other files: implement drawDecoration().
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@16772 a592a061-630c-0410-9148-cb99ea01b6c8
(forceDefaultParagraphs): Fix comment: Not all text classes have a
"Standard" layout. What was meant here is the default layout of the
text class.
* src/paragraph.C
(Paragraph::simpleTeXOnePar): ditto
* src/output_latex.C
(latexParagraphs): ditto
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@16738 a592a061-630c-0410-9148-cb99ea01b6c8
LyX instances. This re-enables copy/paste from the internal clipboard on
OS X (currently broken since Clipboard::isInternal() always returns false for
some reason).
* src/insets/insettabular.C
(InsetTabular::doDispatch): adjust to clipboard interface change
(InsetTabular::copySelection): ditto
* src/mathed/InsetMathGrid.C
(InsetMathGrid::doDispatch): ditto
* src/mathed/InsetMathNest.C
(InsetMathNest::doDispatch): ditto
* src/buffer.[Ch]
(Buffer::readString): New method: Read document from a string
(Buffer::readFile): Change return value from bool to enum (needed
for readString). Return wrongversion if we are reading from a string
and the version does not match.
(Buffer::do_writeFile): make public and rename to write
* src/CutAndPaste.C
(putClipboard): New helper, put stuff to the system clipboard
(void copySelectionHelper): Use putClipboard instead of
theClipboard().put()
(void copySelection): ditto
(void pasteClipboard): new method for pasting in text
(void pasteParagraphList):
* src/frontends/Clipboard.h
(Clipboard::get): Rename to getAsText
(Clipboard::getAsLyX): New method for getting the system clipboard
in LyX format
(Clipboard::hasLyXContents): New method telling whether there is LyX
contents in the clipboard
* src/frontends/qt4/GuiClipboard.[Ch]: Implement the new methods
* src/text3.C
(LyXText::dispatch): Use pasteClipboard for pasting the system
clipboard
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@16669 a592a061-630c-0410-9148-cb99ea01b6c8
a bug on Windows due to an unnecessary conversion to external style.
* src/insets/ExternalSupport.C
(subst_path): avoid a bug in the external material inset on Windows
by don't using external_path. The filename will be quoted and thus
there will be no problems with forward slashes.
* src/frontends/qt4/QGraphics.C
* src/frontends/qt4/QExternal.C
* src/frontends/qt4/QInclude.C:
(Qxxx::apply): On Windows, the user could input an absolute path in
native style by hand (without using the file dialog), so make sure
that no backslashes can slip in by this way.
* src/frontends/qt4/QPrefsDialog.C
(internal_path_list, external_path_list): new wrappers for the
corresponding functions in the os namespace.
(PrefPaths::apply): make sure that path_prefix is stored in the
internal style, i.e., without backslashes.
(PrefPaths::update): make sure that path_prefix is displayed to
the user in the native style.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@16659 a592a061-630c-0410-9148-cb99ea01b6c8
encodings) more fine grained: From paragraph level to individual character
level. The inputenc package supports that since at least 2000.
* src/insets/insetbase.h
(latex): Document the differences between output to a string stream
and a file stream
* src/buffer.h
(writeLaTeXSource): ditto
* src/output_latex.h
(latexParagraphs): ditto
(switchEncoding): new function to change the encoding of a stream
(and output \inputencoding commands)
* src/paragraph_pimpl.C
(Paragraph::Pimpl::simpleTeXSpecialC): Adjust to latexWriteEndChanges
changes
* src/support/docstream.[Ch]
(setEncoding, operator<<): New stream modifier that changes the
encoding of file streams
* src/lyxfont.[Ch]
(LyXFont::latexWriteStartChanges): Change stream encoding if needed
(LyXFont::latexWriteEndChanges): Change stream encoding if needed
* src/lyxfont.h
(public:):
* src/paragraph.C
(Paragraph::simpleTeXOnePar): Adjust to latexWriteStartChanges and latexWriteEndChanges changes
(bool Paragraph::simpleTeXOnePar):
(bool Paragraph::simpleTeXOnePar):
(bool Paragraph::simpleTeXOnePar):
(bool Paragraph::simpleTeXOnePar):
(bool Paragraph::simpleTeXOnePar):
* src/output_latex.C
(TeXOnePar): Remove the ugly hack to for wencoding changes and use
switchEncoding instead. A nice side effect is that the old hack would
not work if the main language encoding is latin1 and a character
would be mapped to a cedilla in the "fake ucs4" encoding, because
iconv refuses to convert such a character to latin1, although it
exists in latin1 (it wants to attach it to a base character).
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@16633 a592a061-630c-0410-9148-cb99ea01b6c8
* InsetFloat::addToToc(): avoid a string copy, a map lookup and a TocItem construction. Don't complete the loop if item found.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@16600 a592a061-630c-0410-9148-cb99ea01b6c8
we got a consensus on this on the list.
Some calls of haveSelection are still missing, but we need to decide the
"persistent selection" question before those can be implemented properly.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@16572 a592a061-630c-0410-9148-cb99ea01b6c8
after selecting something with the mouse
* src/insets/insettabular.C
(InsetTabular::doDispatch): Set the X selection if there is a
selection after release of the left mouse button
* src/mathed/InsetMathNest.C
(InsetMathNest::doDispatch): Set the X selection after double and
triple click of the left mouse button
(InsetMathNest::lfunMouseRelease): Set the X selection if there is a
selection after release of the left mouse button
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@16530 a592a061-630c-0410-9148-cb99ea01b6c8
* src/insets/insettabular.C
(InsetTabular::doDispatch): Only paste the tabular clipboard if the
system clipboard is not newer, else let the current cell paste the
system clipboard
(InsetTabular::getStatus): Only decide whether to enable LFUN_PASTE
if the tabular clipboard is not empty and the system clipboard is
not newer, else let the current cell decide.
* src/mathed/InsetMathGrid.C
(InsetMathGrid::doDispatch): Use the system clipboard for LFUN_PASTE
if it is newer.
* src/mathed/InsetMathNest.C
(InsetMathNest::doDispatch): Use the system clipboard for LFUN_PASTE
if it is newer.
* src/text3.C
(doInsertInset): Add a "0" argument to LFUN_PASTE, because we always
want to use the internal clipboard here
(LyXText::dispatch): ditto (when handling mouse button 2 press)
(LyXText::dispatch): Use the system clipboard for LFUN_PASTE if it
is newer.
(LyXText::getStatus): Also enable LFUN_PASTE if the system clipboard
is owned by another application
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@16498 a592a061-630c-0410-9148-cb99ea01b6c8
(InsetTabular::getStatus): Correctly enable LFUN_PASTE when the
special tabular clipboard is empty by removing an errornous
fall-through to LFUN_INSET_MODIFY
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@16495 a592a061-630c-0410-9148-cb99ea01b6c8
(InsetTabular::doDispatch): Don't reset the table paste buffer
when pasting from the external clipboard or selection, since no
paste operation should ever change any clipboard.
At the same time make the code more readable by removing the
fall-through.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@16492 a592a061-630c-0410-9148-cb99ea01b6c8
false by default.
(metrics): do not set to openinlined if
hasFixedWidth is true.
* insetbox.C (hasFixedWidth): returns true if the box has a fixed
width.
(metrics): use hasFixedWidth.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@16426 a592a061-630c-0410-9148-cb99ea01b6c8
* src/insets/insetcollapsable.C: test if inset is open before editing
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@16406 a592a061-630c-0410-9148-cb99ea01b6c8
instead of std::string
* src/support/lyxlib.h
* src/support/getcwd.C
(getcwd): return a FileName, not a std::string in filesystem encoding
* src/support/filetools.[Ch]
(makeAbsPath): return a FileName, not a std::string in undefined encoding
* src/support/lyxlib.h
* src/support/tempName.C
(makeAbsPath): return a FileName, not a std::string in undefined encoding
* many other files: Adjust to the changes above
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@16399 a592a061-630c-0410-9148-cb99ea01b6c8
mouse_hover_ is copied with copied collapsable insets. Should be false for
newly copied insets.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@16182 a592a061-630c-0410-9148-cb99ea01b6c8
file names, and DocFileName contains the special extensions for documents,
included figures etc.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@15965 a592a061-630c-0410-9148-cb99ea01b6c8
* BufferView:
- update(): returns a pair of bools in order to inform for singlePar cases.
- workAreaDispatch(): ditto and simplify the logic by using cursor update flags.
* text.C
- breakParagraph(): change the cursor update flag as needed.
- insertChar(): ditto.
- erase(): ditto
- redoParagraph(): now returns true if there is a height change.
* text3.C: dispatch():
- initialize the cursor flag at the beginning
- LFUN_MOUSE_PRESS: no need to update.
- LFUN_MOUSE_RELEASE: ditto.
- add some FIXMEs and comments.
* LyXFunc::dispatch(): simplify the BufferView update.
* insets/insetcollapsable.C: clarify and simplify the logic in doDispatch().
* WorkArea::dispatch(): redraw only if needed.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@15958 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
- 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