Commit Graph

33 Commits

Author SHA1 Message Date
Guillaume Munch
6a662cbb27 TocModel: clean-up 2016-05-31 00:14:13 +01:00
Guillaume Munch
e3540f33e1 Simplify class structure in TocBackend
Deriving from std::vector to provide helper functions appears a touch
excessive. Use typedef instead and move helper functions to the base class. New
header Toc.h provided to replace forward-declarations.

Remove TocIterator which is useless.
2016-05-29 17:55:42 -04:00
Georg Baum
1ad4d9e657 Forbid wrong compiler generated copy constructors
This fixes cppcheck warnings (style) 'class x' does not have a copy constructor
which is recommended since the class contains a pointer to allocated memory.
2015-09-20 19:43:06 +02:00
Guillaume Munch
9b7ccbfc80 New class InsetCaptionable
This generalises the new use of TocBuilder (97e8101) to listings and wraps and
removes some duplicate code.

Make sure that we will never write an empty float type again in the future
(#9760)
2015-09-15 15:25:33 +01:00
Pavel Sanda
de9d8cc0ba Header cleanup cont. 2013-05-22 19:58:58 -07:00
Richard Heck
bb36296275 Remove unused code. 2013-03-08 16:22:01 -05:00
Vincent van Ravesteijn
28b167bfff Make sure the Table of Contents is always on top in the model combobox of the TocWidget.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@34290 a592a061-630c-0410-9148-cb99ea01b6c8
2010-04-26 01:36:24 +00:00
Abdelrazak Younes
2a3f27a80c Code simplification.
TocTypeModel is not needed outside TocModel.


git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@33707 a592a061-630c-0410-9148-cb99ea01b6c8
2010-03-10 21:00:34 +00:00
Richard Heck
0bddd759d7 Another try at #6522. This works here, for the most part, with no ill
effects that I can see. That said, I believe there is still a crash you
could get. I'll explain in a moment.

Since we may run into this kind of thing again, let me explain why this
is necessary. The problem was that resetting the model was causing a
signal to be emitted that the current index had changed, which was
triggering an update of the Buffer, eventually. I'm not sure why this
did not happen in Qt 4.5, but in Qt 4.6, you have to call
beginResetModel() before doing anything, so that the combo box will
remember its previous setting. Then you can change the data; then you
can call endResetModel(). This will attempt to restore the previous
setting. Only if it cannot do so will currentIndexChanged() be emitted.

You can see, therefore, that if whatever the user did caused the current
setting to become invalid---e.g., she deleted the only footnote---then
the signal will be emitted and LyX will still crash. Still, that is a
fair bit better than presently.


git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@33702 a592a061-630c-0410-9148-cb99ea01b6c8
2010-03-10 18:41:28 +00:00
Uwe Stöhr
83b1c48846 replace links to bugzilla with links to trac
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@32469 a592a061-630c-0410-9148-cb99ea01b6c8
2009-12-11 00:59:10 +00:00
Vincent van Ravesteijn
695870771f Add "Copy label as reference" to context menu of the TOC.
(Note: it is not perfect yet for references in the same model as the labels).

git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@29156 a592a061-630c-0410-9148-cb99ea01b6c8
2009-04-08 21:40:42 +00:00
Abdelrazak Younes
7bd33462a0 Avoid a complete Toc reset in case when only a toc item update is needed.
* Buffer: new updateTocItem() signal (with Delegates and GuiView associates).
* TocBackend: take care of the signal emission instead of the Cursor::checkBufferStructure()
* TocModel: new updateTocItem() method.


git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@26636 a592a061-630c-0410-9148-cb99ea01b6c8
2008-09-30 09:50:54 +00:00
Abdelrazak Younes
6bd9b43ce5 cosmetics and doxygen.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@26634 a592a061-630c-0410-9148-cb99ea01b6c8
2008-09-30 07:38:34 +00:00
André Pönitz
0985bab38e cosmetics
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@26629 a592a061-630c-0410-9148-cb99ea01b6c8
2008-09-29 21:53:24 +00:00
Abdelrazak Younes
4b8f0d359c Add a new 'Sort' box to the Navigator so that each list can be optionally sorted.
* TocModel: redesign so that sorted list are available.
* TocWidget/TocUi: handle the new Sort check box.


git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@26602 a592a061-630c-0410-9148-cb99ea01b6c8
2008-09-28 17:14:29 +00:00
Abdelrazak Younes
bd569ada80 Local aware sorting of the toc type.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@25304 a592a061-630c-0410-9148-cb99ea01b6c8
2008-06-18 11:35:24 +00:00
André Pönitz
61aa683425 compile fix
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@25294 a592a061-630c-0410-9148-cb99ea01b6c8
2008-06-17 16:26:43 +00:00
Abdelrazak Younes
56f7a70e48 delete unused interface.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@25291 a592a061-630c-0410-9148-cb99ea01b6c8
2008-06-17 15:18:34 +00:00
Abdelrazak Younes
6ad1b1cd09 General cleanup of the Outline/Navigator:
- Make use the Qt Model/View separation concept, TocWidget is now really just a view of the current toc model.
- the toc type combo now use a model defined in TocModels.
- the models are not deleted at each reset, they are now just cleared out.



git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@25289 a592a061-630c-0410-9148-cb99ea01b6c8
2008-06-17 15:10:03 +00:00
Abdelrazak Younes
d353a6f899 Mac compile fix.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@25241 a592a061-630c-0410-9148-cb99ea01b6c8
2008-06-12 17:34:01 +00:00
Abdelrazak Younes
edd117f27a remove unneeded TocModel::clear() method.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@25236 a592a061-630c-0410-9148-cb99ea01b6c8
2008-06-12 15:34:12 +00:00
Abdelrazak Younes
6876ffa65b Simplify TocModel by using UserRole data.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@25235 a592a061-630c-0410-9148-cb99ea01b6c8
2008-06-12 15:31:10 +00:00
Abdelrazak Younes
fb212b9112 Factorize out some code between TocModel.cpp and Menus.cpp.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@24801 a592a061-630c-0410-9148-cb99ea01b6c8
2008-05-16 13:49:49 +00:00
Jürgen Spitzmüller
f89c7710b7 * TocModel.h: compile fix.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@24584 a592a061-630c-0410-9148-cb99ea01b6c8
2008-05-02 15:54:41 +00:00
Abdelrazak Younes
ffa722e0b7 Cleanup Toc dialog and GuiView interaction. The toc models are now part of GuiView. The TocWidget is just a view of this model.
* GuiView::tocModel(): new method to access the toc models.
* TocModels: new class with code transferred from GuiToc.
* TocWidget: only needs a TocModels reference.

Thoughts:
- We should find a way to get rid of GuiToc.{c,h}
- tocModels() should perhaps be transferred to GuiWorkArea instead of GuiView in order to have Buffer dependent navigators.



git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@24578 a592a061-630c-0410-9148-cb99ea01b6c8
2008-05-02 12:09:51 +00:00
André Pönitz
d9a3ca2033 cosmetics
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@23988 a592a061-630c-0410-9148-cb99ea01b6c8
2008-03-26 22:25:43 +00:00
André Pönitz
d93679c1db cosmetics
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@21596 a592a061-630c-0410-9148-cb99ea01b6c8
2007-11-14 00:21:31 +00:00
Abdelrazak Younes
10dd2cbdcb Toc Slider fixes from Ugras Baran.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@16045 a592a061-630c-0410-9148-cb99ea01b6c8
2006-11-25 22:16:22 +00:00
Georg Baum
2734cc1548 Extend the navigate menu to child docs
* 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
2006-11-13 16:53:49 +00:00
Abdelrazak Younes
c0f6f79cb0 Fix for bug 2975 (http://bugzilla.lyx.org/show_bug.cgi?id=2975) from Ozgur Ugras BARAN. Looks like a gcc bug with STL map.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@15821 a592a061-630c-0410-9148-cb99ea01b6c8
2006-11-09 13:13:28 +00:00
Abdelrazak Younes
ff83a99e94 * QToc.[Ch], QTocDialog.[Ch]: adaptation to ControlToc changes in r13772
* TocModel.[Ch]: small cleanup + eol-style set to native


git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@13774 a592a061-630c-0410-9148-cb99ea01b6c8
2006-04-28 09:16:48 +00:00
Abdelrazak Younes
8c0bd3a77b * TocBackend.[Ch]: new files defining class TocBackend. This class contains adapted code from former toc.C
* toc.[Ch]:
    - rewritten to take advantage of new TocBackend class. The toc
    cache is implemented as a static variable:
    static map<Buffer const *, lyx::TocBackend> toc_backend_;

* buffer_funcs.C:
    updateLabels(Buffer const & buf) now calls
    "lyx::toc::updateToc(buf);"

* pariterator.h: added default constructor
    ParConstIterator(): DocIterator() {}

* insetfloat.C: added pit parameter to TocItem construction

* insetwrap.C: added pit parameter to TocItem construction

* MenuBackend.C: use a const ref instead of a copy of TocList

* ControlToc.[Ch]: optimisation of the API by using const reference instead of copy.

* qt4/TocPanel.[Ch]:
    - optimisation of the API by using const reference instead of
    copy
    - directly use of TocBackend::TocIterator instead of identification by paragraph contents.

* qt4/QToc.C:
    - optimisation of the API by using const reference instead of
    copy
    - makes use of TocBackend::Item::uid()

* qt2/QToc.C:
    - use TocItem::depth() and TocItem::str() instead of public member access.


git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@13713 a592a061-630c-0410-9148-cb99ea01b6c8
2006-04-22 18:48:28 +00:00
Abdelrazak Younes
9db70c5346 * ControlToc.[Ch]
- bool ControlToc::canOutline(): new method to test if outline is possible.
* TocModel: new class
* QToc is now the controller (inheriting ControlToc directly) and the model (using TocModel)
* QTocDialog is now only the view (inheriting Dialogs::View directly)
* Dialogs.C: updated toc controller and view correspondingly



git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@13692 a592a061-630c-0410-9148-cb99ea01b6c8
2006-04-18 09:57:47 +00:00