- 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
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
- 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
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
* LyXText
- bv(), bv_owner, : deleted.
- These methods now need a (Buffer const &) argument: getFont(), applyOuterFont(), getLayoutFont(), getLabelFont(), setCharFont(), setLayout(), singleWidth(), leftMargin(), rightMargin(), computeRowMetrics(), isMainText(), spacing(), isRTL(), cursorX(), rowBreakPoint(), setRowWidth(), labelFill(), labelEnd().
- These methods now need a (BufferView const &) argument and are propably candidates for future removal when 1.6 is opened for development: redoParagraph(), x2pos(), getRowNearY(), getColumnNearX(), checkInsetHit(), setHeightOfRow().
- recUndo(): now need a LCursor argument.
* CoordCache::get(LyXText const *, pit_type):
- now const.
- use const_iterator instead of iterator.
* FontIterator:
- add (Buffer const &) argument to ctor
- buffer_: new const reference to applicable BufferView.
* InsetBase
- xo(), yo(), covers() and neverIndent() are now const.
* InsetText::setViewCache(): deleted
All other changes are due to the LyXText and InsetBase API changes.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@15618 a592a061-630c-0410-9148-cb99ea01b6c8
* Painter: new ctor that sets drawing_enabled_ to true.
* setDrawingEnabled(), isDrawingEnabled(): new methods.
* QLPainter.C: only draw if drawing is enabled.
* nullpainter.h: deleted.
* rawpainter.C::paintPar(): only draw if we are inside the Paragraph.
* InsetTabular::draw(): use new Painter method instead of a NullPainter.
* InsetMathNest::drawSelection(): ditto.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@15613 a592a061-630c-0410-9148-cb99ea01b6c8
* src/*.C:
* src/insets/*.C: implement rejectChanges() in analogy to
acceptChanges();
* src/paragraph_pimpl.C: add assertions for pos, start, and
end parameters
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@15542 a592a061-630c-0410-9148-cb99ea01b6c8
correctly.
The floatlist type is now stored in the InsetCommand parameter "type".
Formerly it was stored in the command name, which is not possible anymore
because all command names need to be known.
The file format of .lyx files is still the same.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@15489 a592a061-630c-0410-9148-cb99ea01b6c8
seems. ChangeTracking responsible please verify all
erase/eraseChar where we added false or where it is
called without changetracking bool (jug).
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@15456 a592a061-630c-0410-9148-cb99ea01b6c8
- Do not use the nullpainter for the rows outside the screen, because the nullpainter does not calculate the width of text, and thus the metric entries in the inset cache are completely wrong, causing assertions when using for instance page up or page down into an inset. This fixes the dreading assertion on navigation in the user guide, and elsewhere
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@15455 a592a061-630c-0410-9148-cb99ea01b6c8
I believe that it is for horizontal
"scrolling": If you have a table that is wider than the screen and you go
to a cell that is at the right edge then, if you are lucky, the table is
shifted to the left so that you can edit the cell and even go further
right. This does however not work reliably.
If I am right then the variable name scx_ would make some sense: sc for
scrolling. The ChangeLog comments also seem to point in this direction. And
most of them were done by Jürgen Vigna who is AFAIK in Denmark.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@15414 a592a061-630c-0410-9148-cb99ea01b6c8
* insettext.[Ch]
(InsetText::covers): added to allow the click-sensitive area to grow
with the Wide() condition.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@15384 a592a061-630c-0410-9148-cb99ea01b6c8
getCommand does not include the {} anymore, because \hfill has no arguments.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@15379 a592a061-630c-0410-9148-cb99ea01b6c8
Known problems:
- No space is output after a \hfill. I probably broke this with the
InsetCommand patch. I'll have a look later.
- Although the encoding is now UTF8 the arguments of the inputenc package
are still the old ones, so LaTeX will not run.
- Labels and references with non-ASCII characters are broken. This needs to
be fixed in lyx::support::escape(), but this is a file format change.
- Something seems to be wrong with index entries, but this is probably also
due to the InsetCommand changes.
Have fun!
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@15378 a592a061-630c-0410-9148-cb99ea01b6c8
* src/insets/insetcommandparams.[Ch]:
(operator[]): New, access a parameter
(clear): New, clear all parameters
(info_): New, stire info about this command
(cmdname): Rename to name_
(contents, options, sec_options): Replace with params_. Parameters
are now stored as docstring.
(findInfo): New factor for command info for all commands
(read, write): Use new syntax
(parameter set and get methods): reimplemenmt for new parameter storage
* src/insets/insetcommand.h
(getParam): New, get a parameter
(setParam): New, set a parameter
(parameter set and get methods): Adjust to InsetCommandParams changes
* src/insets/insetbibitem.[Ch]
(write): Remove, not needed anymore
(directWrite): ditto
* src/insets/insetbibitem.C
(InsetBibitem::read): Use InsetCommand::read
* src/insets/insetref.C
(InsetRef::latex): Use new InsetCommandParams interface
* src/mathed/InsetMathHull.C
(InsetMathHull::doDispatch): ditto
* src/text3.C
(LyXText::dispatch): ditto
* src/factory.C
(createInset): Create InsetCommandParams with command name
(readInset): ditto
(readInset): Remove error message for bibitem, since bibitem is
now a normal command inset
* src/buffer.C: Bump file format number
* src/frontends/controllers/ControlCommand.[Ch]
(ControlCommand): take an additional command name parameter
* src/text.C
(readParToken): Remove code for \bibitem
* lib/lyx2lyx/LyX.py: Bump latest file format number
* lib/lyx2lyx/lyx_1_5.py
(convert_bibitem, convert_commandparams): new, convert to new format
(revert_commandparams): new, convert to old format
* development/FORMAT: document new format
* many other files: Adjust to the changes above
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@15357 a592a061-630c-0410-9148-cb99ea01b6c8
CoordCache & coord_cache = sl.text()->bv()->coordCache();
As you can see, I used this indirection to access the BufferView::CoordCache(). Bad luck, the passed CursorSlice was not completely valid inside a mathed inset, hence the crash. My solution is to pass BufferView to InsetBase::cursorPos() and all its derivative.
* InsetBase::cursorPos(): pass BufferView const &
* bufferview_funcs::coordOffset(): ditto.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@15356 a592a061-630c-0410-9148-cb99ea01b6c8
* src/buffer:
file format incrementation to 251
* src/insets/insetcharstyle.[Ch]:
- make show_label a param and save its state
- let all-insets-toggle togle the label in charstyles
* development/FORMAT:
document file format change
* lib/lyx2lyx/LyX.py:
add new file format
* lib/lyx2lyx/lyx_1_5.py:
remove char style label param on reversion to 250.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@15345 a592a061-630c-0410-9148-cb99ea01b6c8
* lyx_main.h: define "extern bool lyx::use_gui" here.
* NoGuiFontMetrics.h: new class for command-line LyX
* NoGuiFontLoader.h: new class for command-line LyX
* Application.C:
- theFontMetrics(): returns the above dummy FontMetrics when use_gui is false.
- theFontLoader(): returns the above dummy FontLoader when use_gui is false.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@15339 a592a061-630c-0410-9148-cb99ea01b6c8
theCoords is now a thing of the past and all CoordCache accesses are done via BufferView::coordCache() now. I had to modify a number of methods to pass BufferView.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@15324 a592a061-630c-0410-9148-cb99ea01b6c8
Only qt4 is guaranted to compile and work. I did not remove gtk and qt3 lyx_gui.C because they might be needed for reference to complete the header declarations in "GuiApplication.C".
- lyx_gui::use_gui transfered to lyx::use_gui in lyx_main.C
- all remaining lyx_gui functions transfered to Application and corresponding GuiApplication implementations.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@15306 a592a061-630c-0410-9148-cb99ea01b6c8
export (e.g. the ToC) and the navigate menu.
* src/insets/insetbase.h
(InsetBase::plaintext): output to a docstream
(InsetBase::textString): ditto
* src/mathed/TextPainter.h
(TextPainter::show): ditto
* src/support/docstream.[Ch] New file and string streams for
docstring. The file streams convert to UTF8 on the fly.
* many more files: Adjust to the changes above
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@15301 a592a061-630c-0410-9148-cb99ea01b6c8
* lyxfunc.h:
- theLyXFunc(): new function in the global namespace.
- lyx::dispatch(): new function in the lyx namespace.
- lyx::getStatus(): new function in the lyx namespace.
* bufferlist.h:
- theBufferList(): new function in the global namespace.
* Clipboard.h:
- theClipboard(): new function in the global namespace.
* Selection.h:
- theSelection(): new function in the global namespace.
* FontLoader.h:
- theFontLoader(): new function in the global namespace.
* FontMetrics.h:
- theFontMetrics(LyXFont const &): new function in the global namespace.
* Application.C: implements the functions defined above.
* LyXView.h:
- getLyXFunc(): deleted.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@15298 a592a061-630c-0410-9148-cb99ea01b6c8
* buffer.[Ch] (changeRefsIfUnique): extend to handle bibitems
as well (the function takes a InsetCode argument now);
clean up by using InsetIterator.
* InsetMathHull.C (doDispatch): changeRefsIfUnique needs a
InsetCode argument now (bug 2744).
* insetlabel (doDispatch): changeRefsIfUnique needs a
InsetCode argument now.
* insetbibitem (doDispatch): use changeRefsIfUnique
(actual fix for bug 2744).
* insetcommand.[Ch]:
* insetcite.[Ch]: implement replaceContents, which is
used by changeRefsIfUnique.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@15289 a592a061-630c-0410-9148-cb99ea01b6c8
Basically, I replaced all methods in the font_metrics namespace by a proper virtual interface FontMetrics. The FontLoader is _the_ container for FontMetrics.
This patch should also bring some optimizations in a number of place in the code. This is because we do not need any more to search for the LyXFont at each font_metrics call. In effect, the speed advantage is not as sensible and this is a bit deceiving considering that this was my primary motivation behind the patch. But I like the patch anyway as it cleans up the relation and interfacing between fonts, metrics and frontends.
* frontends/FontMetrics.h: new virtual interface. Renamed from font_metrics.h
* qt4/GuiFontMetrics: corresponding qt4 implememtation. Renamed from qfont_metrics.C. The smallCaps particular case treatment has been transfered here as well as the width cache for MacOSX and Windows.
* qt4/QLPainter.C: the smallCapsText has been reworked to return the width of the drawn text.C
all other files: replace font_metric helper function call with corresponding FontMetrics method calls.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@15265 a592a061-630c-0410-9148-cb99ea01b6c8
* rename output_changes to outputChanges
* rename tracking_changes to trackChanges
* add FIXMEs for later revision
* remove trackChanges(); the CT data structure will always be set up
* decouple LFUNs changes-output/change-accept/change-reject/
all-changes-accept/all-changes-reject from LFUN changes-track
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@15261 a592a061-630c-0410-9148-cb99ea01b6c8
* src/insets/insetgraphics.C
(findTargetFormat): return pdf for vector graphics
* src/format.h
(Flags): new enum describing format flags
(flags_): new member variable for format flags
(vectorFormat): new, tell whether a format can contain vector graphics
* src/format.C: adjust to flags changes
* src/frontends/qt[34]/QPrefsDialog.C
(QPrefsDialog::QPrefsDialog): handle new vector flag
(QPrefsDialog::switch_format): ditto
(QPrefsDialog::updateFormatsButtons): ditto
(QPrefsDialog::new_format): ditto
(QPrefsDialog::modify_format): ditto
* src/frontends/qt3/ui/QPrefFileformatsModule.ui
* src/frontends/qt4/ui/QPrefFileformatsUi.ui
(vectorCB): new checkbox for vector flag
* src/lyxrc.C
(LyXRC::read): read vector flag
(LyXRC::write): write vector flag
* lib/doc/Customization.lyx: document format flags
* lib/configure.py
(checkFormatEntries): Add vector flag to some formats
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@15205 a592a061-630c-0410-9148-cb99ea01b6c8
* src/insets/insettabular.C
(InsetTabular::getStatus): enable COPY_ROW and COPY_COLUMN features
(InsetTabular::tabularFeatures): handle COPY_ROW and COPY_COLUMN
* src/tabular.h
(TabularFeature): add COPY_ROW and COPY_COLUMN
* src/tabular.[Ch]
(LyXTabular::copyRow): new method, copy a row
(LyXTabular::copyColumn): new method, copy a column
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@15173 a592a061-630c-0410-9148-cb99ea01b6c8
* BufferView
- layoutChanged: new boost signal.
- LyXView owner(), owner_: deleted
* text3.C
- emit BufferView::layoutChanged instead of calling LyXView::setLayout directly
- LFUN_MOUSE_RELEASE: delete LyXView updateMenubar() and updateToolbars() direct calls.
The update is of both bars is done in WorkArea::dispatch().
* WorkArea.C
- dispatch(): add LyXView updateMenubar() call.
* LyXView
- connects to BufferView::layoutChanged directly to Toolbars::setLayout()
- setLayout(): deleted.
* qt4/GuiImplementation: modify BufferView construction (without LyXView).
All other files: cleanup header declaration of LyXView.h
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@15153 a592a061-630c-0410-9148-cb99ea01b6c8
The associated WorkArea is then responsible to connect these signals to its LyXView parent.
* BufferView:
- showDialog, showDialogWithData, showInsetDialog: new boost signals
* LyXView:
- connectBufferView(), disconnectBufferView(): new method in charge of the connection/disconnection of the above signal to associate private methods (showDialog(), etc).
* WorkArea
- setBufferView(): will connect/disconnect the BufferView to its LyXView parent.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@15068 a592a061-630c-0410-9148-cb99ea01b6c8
* src/CutAndPaste.C (pasteSelectionHelper): pass Cursor
as argument, remove cursor-dependent arguments,
implement method to reset layout in insets which
forceParagraphsToDefault.
* src/CutAndPaste.C (pasteParagraphList): adapt call of
pasteSelectionHelper.
* insets/insetbox.C (doDispatch):
* insets/insetert.C (doDispatch):
* insets/insetcharstyle.C (doDispatch):
* insettext.[Ch] (forceParagraphsToDefault):
remove ad-hoc-Code to
reset paragraph layout.
This is now done generally in CutAndPaste.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@15062 a592a061-630c-0410-9148-cb99ea01b6c8
* src/insets/insettabular.C (getStatus):
* src/insets/insettext.C (doDispatch,getStatus): remove special code
for LFUN_INSET_DISSOLVE.
* src/text.C (dissolveInset): new method.
(erase, backspace): use dissolveInset.
* src/text3.C (dispatch): use dissolveInset for LFUN_INSET_DISSOLVE.
(getStatus): disable LFUN_INSET_DISSOLVE if the inset has more than one cell.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@14940 a592a061-630c-0410-9148-cb99ea01b6c8
* src/frontends/qt[34]/qt_helpers.[Ch]
(toqstr): add variant for docstring
(qstring_to_ucs4): Use docstring and port from qt4 to qt3
* Many other files: Many std::string -> lyx::docstring conversions
* src/support/lstrings.[Ch]
(subst): Add variant for docstring and char_type
(externalLineEnding): std::string -> lyx::docstring
(internalLineEnding): std::string -> lyx::docstring
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@14871 a592a061-630c-0410-9148-cb99ea01b6c8
* src/support/docstring.[Ch]
(from_ascii): new conversion function
(from_utf8): new conversion function
(to_utf8): new conversion function
(operator==) new, compare docstring and ASCII C string
(operator!=) new, compare docstring and ASCII C string
* src/support/Makefile.am: add new file docstring.C
* development/scons/scons_manifest.py: ditto
* src/funcrequest.[Ch]
(argument): change name to argument_ and type to docstring,
add an accessor
(FuncRequest): Add two new constructors taking a docstring argument
* all other files: adjust to the FuncRequest changes above
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@14861 a592a061-630c-0410-9148-cb99ea01b6c8
if the bib file is in a non-readable directory (bug 2782).
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@14807 a592a061-630c-0410-9148-cb99ea01b6c8