Commit Graph

51 Commits

Author SHA1 Message Date
Vincent van Ravesteijn
49beed7437 Fix bug #6989: Be somewhat more secure with the homebrew dynamic asserts that were changed in r35855.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@35863 a592a061-630c-0410-9148-cb99ea01b6c8
2010-10-27 07:04:58 +00:00
Vincent van Ravesteijn
07924ac300 Remove some unnecessary static_casts and add two FIXMEs about casts that don't look safe.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@35856 a592a061-630c-0410-9148-cb99ea01b6c8
2010-10-26 16:45:21 +00:00
Vincent van Ravesteijn
573500dd04 Remove unneccessary uses of dynamic_cast from the code.
A dynamic_cast is necessary when:

- the object to be casted is from an external library because we can't add Qxxx::asXxxx() to Qt e.g.:
    * QAbstractListModel to GuiIdListModel,
    * QValidator to PathValidator,
    * QWidget to TabWorkArea,
    * QWidget to GuiWorkArea;

- the object is to be casted from an interface to the implementing class, because the Interface does not know by whom it is implemented:
    * ProgressInterface to GuiProgress,
    * Application to GuiApplication.

A dynamic_cast can be replaced by:
  - already existing as***Inset() functions, e.g.:
    * asHullInset(),
    * asInsetMath()->asMacro(),
    * asInsetText();

  - a static_cast when we are sure this can't go wrong, e.g.:
    * we are sure that CellData::inset->clone() is an InsetTableCell,
    * in cases where we explicitly check it->lyxCode().


git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@35855 a592a061-630c-0410-9148-cb99ea01b6c8
2010-10-26 15:03:51 +00:00
Abdelrazak Younes
62d11f1f3b Fix previous commit DocIterator::clone() was completely bogus, I wonder how it even worked...
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@32911 a592a061-630c-0410-9148-cb99ea01b6c8
2010-01-09 15:41:07 +00:00
Abdelrazak Younes
cda980db51 Fix multipart document background compilation. I am not fully satisfied with this solution (see FIXME in Buffer::clone()). There might be some memory leaks...
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@32910 a592a061-630c-0410-9148-cb99ea01b6c8
2010-01-09 14:47:47 +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
Jürgen Spitzmüller
6b6567a538 enhance debug message.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@31120 a592a061-630c-0410-9148-cb99ea01b6c8
2009-08-18 16:03:44 +00:00
Abdelrazak Younes
de38a9ed5f DocIterator::innerText(): reuse innerTextSlice()
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@30944 a592a061-630c-0410-9148-cb99ea01b6c8
2009-08-09 15:47:50 +00:00
Abdelrazak Younes
694399b16c Simplify Buffer::spellCheck() by using Paragraph::spellCheck().
Paragrah::isMisspelled() is split in two.



git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@30222 a592a061-630c-0410-9148-cb99ea01b6c8
2009-06-22 16:38:11 +00:00
Abdelrazak Younes
5387379c24 Introduce Paragraph::isWordSeparator() and use it instead of Paragraph::isLetter(). Note here a change in behavior WRT to word selection: a deleted character is not considered a word separator. This new behavior will impact word finding and spellchecking.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@30211 a592a061-630c-0410-9148-cb99ea01b6c8
2009-06-21 14:30:57 +00:00
Abdelrazak Younes
c18baee469 Move isLetter() logic to Paragraph::isLetter().
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@29468 a592a061-630c-0410-9148-cb99ea01b6c8
2009-05-01 10:54:32 +00:00
Vincent van Ravesteijn
4c9fe33c83 * Move handling of LFUN_INSET_SETTINGS to Inset,
* Remove the EDITABLE enum,
* add functions hasSettings() for all insets.

git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@29375 a592a061-630c-0410-9148-cb99ea01b6c8
2009-04-22 20:55:13 +00:00
Abdelrazak Younes
1ec0b390f5 Transfer some general code from GuiSpellchecker to Buffer and DocIterator.
* Buffer::nextWord(): new method to search for next word.
* DocIterator.cpp: new function isLetter() moved from GuiSpellchecker.


git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@28963 a592a061-630c-0410-9148-cb99ea01b6c8
2009-03-28 19:02:49 +00:00
André Pönitz
6192345f60 add Buffer * member to DocIterator
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@27603 a592a061-630c-0410-9148-cb99ea01b6c8
2008-11-17 11:46:07 +00:00
Abdelrazak Younes
4209cbc631 Tommaso patch, part 5, lots of thing to cleanup still but I'll do that afterwards.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@27521 a592a061-630c-0410-9148-cb99ea01b6c8
2008-11-16 00:12:21 +00:00
André Pönitz
f1cba8ff64 more latin1..utf8 schanges. all of src/* should be utf8 now
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@27425 a592a061-630c-0410-9148-cb99ea01b6c8
2008-11-14 15:58:50 +00:00
Jean-Marc Lasgouttes
9b4a26a252 rename assert.h to lassert.h
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@24559 a592a061-630c-0410-9148-cb99ea01b6c8
2008-04-30 08:26:40 +00:00
André Pönitz
7f461f4392 infrastructure for 'graceful asserts'
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@24216 a592a061-630c-0410-9148-cb99ea01b6c8
2008-04-10 21:49:34 +00:00
Stefan Schimanski
a74871baa8 * when going backwards and entering a cell/paragraph, there is no
inset yet. The lastpos() position is only virtual to place the cursor
  at a cell/paragraph end
* cleanups, documentation


git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@23354 a592a061-630c-0410-9148-cb99ea01b6c8
2008-02-29 15:29:58 +00:00
Stefan Schimanski
5622f4b560 * make DocIterator::find(Inset(Math) * inset) do what it is supposed to do according to the documentation.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@23259 a592a061-630c-0410-9148-cb99ea01b6c8
2008-02-26 19:19:59 +00:00
Stefan Schimanski
1bf7b59d60 * completion infrastructure
* completion support for mathed
* experimental completion support for text


git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@23104 a592a061-630c-0410-9148-cb99ea01b6c8
2008-02-21 19:42:34 +00:00
Abdelrazak Younes
2bf1c09376 header cleanup
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@23049 a592a061-630c-0410-9148-cb99ea01b6c8
2008-02-18 07:14:42 +00:00
Stefan Schimanski
036f97a02e * slice numbers are of type size_t, but here we have to allow -1. idx_type
in any case does not make sense. It's not an index in the sense of DocIterator.
* cosmetics


git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@22908 a592a061-630c-0410-9148-cb99ea01b6c8
2008-02-09 22:05:24 +00:00
André Pönitz
225bf49cf9 some refactoring.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@22890 a592a061-630c-0410-9148-cb99ea01b6c8
2008-02-09 10:41:49 +00:00
André Pönitz
57d2f9c0ad Five more percent.
I'd really prefer if people would not add unused code to critical
paths..


git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@22534 a592a061-630c-0410-9148-cb99ea01b6c8
2008-01-12 23:08:21 +00:00
Stefan Schimanski
36dbec4506 * Lazy MathData to avoid unneeded interpretation of macro definitions
* DocIterator as MacroPosition
* Iterative search for macro in scope until a visible one is found.
This include the ability to resolve macro inside nested text insets.
* Speed up macro lookups by factor 2: only getMacro(name) call, no
further hasMacro(name) call before
* Both way child/master support
* Correct macro scope for multi-paragraph environments
* Correct macro scope for multi-depth-paragraphs
* Buffer::updateMacros made const
* Update macros when loaded (of master and child)
* Do not remove too many braces when unfolding a macro. This could
lead to a data loss because the relationship between arguments of
macros can be mixed up if nested macros are unfold at once.
* Reduce dependencies to MetricsInfo in MathMacro   
* Update macros when needed. Normally it's done just before doing
metrics. But in cases without a brace around some constructs (like
\left(bla\right)) there is some help needed.


git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@22241 a592a061-630c-0410-9148-cb99ea01b6c8
2007-12-21 20:42:46 +00:00
Abdelrazak Younes
9abb7db468 getting rid of superfluous std:: statements.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@22104 a592a061-630c-0410-9148-cb99ea01b6c8
2007-12-12 19:28:07 +00:00
André Pönitz
9d0ea8aeff Move debug.{cpp,h}, Messages.{cpp,h} and gettext.{cpp,h} to support/.
Now support/* should have no dependencies on src/* anymore.



git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@21851 a592a061-630c-0410-9148-cb99ea01b6c8
2007-11-29 07:04:28 +00:00
André Pönitz
150cf11651 hand-crafted LyXErr
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@21849 a592a061-630c-0410-9148-cb99ea01b6c8
2007-11-28 22:12:03 +00:00
André Pönitz
e1ce2f92db reduce line noise
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@21631 a592a061-630c-0410-9148-cb99ea01b6c8
2007-11-15 20:04:51 +00:00
Stefan Schimanski
6fa7710506 * methods to cut off DocIterators and to append vectors of CursorSlices. This is used to keep the visual cursor position when folding/unfolding macros with the cursor in a parameter.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@21323 a592a061-630c-0410-9148-cb99ea01b6c8
2007-11-01 10:56:18 +00:00
Abdelrazak Younes
6725b2db59 Reduce header dependencies in Paragraph.h
- Move Changes.h out of Paragraph.h
- pimpl the inset list.



git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@21033 a592a061-630c-0410-9148-cb99ea01b6c8
2007-10-18 15:29:51 +00:00
Abdelrazak Younes
f7b1c86393 Move Inset::Code to InsetCode.h
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@20936 a592a061-630c-0410-9148-cb99ea01b6c8
2007-10-13 09:04:52 +00:00
Lars Gullik Bjønnes
26f336769a Remove warnings reported with gcc 4.3:
- Modifier on return type ignored
	- Ambigous else
	- Ambigous logical operators
	- Semi-colon instead of empty block
	- Missing header files
	- Missing using std::XX
	- Initialization out of order


git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@20304 a592a061-630c-0410-9148-cb99ea01b6c8
2007-09-16 10:36:57 +00:00
Abdelrazak Younes
97811b4116 Fix Cursor::setCurrentFont() within mathed.
* DocIterator::innerTextSlice(): new method.
* Cursor::setCurrentFont(): use that.


git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@20277 a592a061-630c-0410-9148-cb99ea01b6c8
2007-09-14 12:52:39 +00:00
Alfredo Braunstein
09b0a337ca move forwardIdx to CursorSlice from DocIterator, as it was the only one able to travel into an invalid cursor position
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@19763 a592a061-630c-0410-9148-cb99ea01b6c8
2007-08-23 21:35:40 +00:00
Alfredo Braunstein
ebab4e7033 remove fake constness in DocIterator
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@19761 a592a061-630c-0410-9148-cb99ea01b6c8
2007-08-23 21:13:01 +00:00
Abdelrazak Younes
4080450341 Fix crash with updateLabels(). I changed the the test in the assertion but endless loops should be equally prevented with this version.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@19560 a592a061-630c-0410-9148-cb99ea01b6c8
2007-08-14 14:31:41 +00:00
Alfredo Braunstein
bc0a64efc3 * DocIterator.h (forwardPosNoDescend): remove method
* DocIterator.cpp (forwardPos, backwardPos): move the 'flat' part to...
* CursorSlice.{h,cpp} (forwardPos, backwardPos, at_end, at_begin): new methods, the first two are part of their DocIterator homonym
* Text2.cpp (setFont): receive CursorSlice arguments as the function is not recursive, adapt
* Text.cpp:
* lyxfind.cpp (findNextChange):
* insets/InsetCollapsable.cpp: adapt



git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@19500 a592a061-630c-0410-9148-cb99ea01b6c8
2007-08-13 13:36:19 +00:00
Abdelrazak Younes
3e3955c4f3 more std declaration fixes.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@19104 a592a061-630c-0410-9148-cb99ea01b6c8
2007-07-17 17:46:54 +00:00
Stefan Schimanski
c3363f110d * reverting r18516, so no signals anymore in CursorSlices
* Alfredo Braunstein's patch to fix cursors properly
* CursorSlice::lastpit() added


git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@18723 a592a061-630c-0410-9148-cb99ea01b6c8
2007-06-09 12:39:46 +00:00
Lars Gullik Bjønnes
897436efbb Whitespace cleanup
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@18550 a592a061-630c-0410-9148-cb99ea01b6c8
2007-05-28 22:27:45 +00:00
Abdelrazak Younes
3fdbf5b9c4 Sanitize cursor saving/restoring in a multi-view context.
* Inset: new destroyed signal (copy ctor and operator= needed because of a signal is not copiable)

* CursorSlice:
 - connect to inset destructor wherever possible
 - invalidate(), isValid(): new method.
 - inset_: now private

* DocIterator::fixIfBroken(): new method for properly fixing cursors.

* StableDocIterator::asDocIterator(): verify cursor sanity before creating it.

* Cursor::fixIfBroken(): now a simple wrapper around DocIterator::fixIfBroken()

* BufferView::setBuffer(): verify cursor sanity before restoring it.

* WorkArea::redraw(): verify cursor sanity of concurrent BufferView display.


 

git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@18516 a592a061-630c-0410-9148-cb99ea01b6c8
2007-05-25 23:17:24 +00:00
Georg Baum
7930b9e5b6 fix bug 1973 (hopefully)
* src/Text2.cpp
	(Text::setCharFont): Assert
	(Text::setInsetFont): New, set the font recursively in insets
	(Text::setFont): Call setInsetFont instead of setCharFont if needed

	* src/DocIterator.cpp
	(DocIterator::forwardIdx): Implement

	* src/Text.h
	(Text::setInsetFont): New, set the font recursively in insets
	(Text::setCharFont): Document



git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@18452 a592a061-630c-0410-9148-cb99ea01b6c8
2007-05-22 10:51:38 +00:00
Abdelrazak Younes
6277ba63ab Properly search for relevant TocItem. Now works fine with sections inside insets.
* DocIterator
  - new comparison operators: <, > and <= (Courtesy of JMarc)

* TocBackend::item() use above <= operator instead of crude pit() comparison.


git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@18349 a592a061-630c-0410-9148-cb99ea01b6c8
2007-05-15 17:07:55 +00:00
Jean-Marc Lasgouttes
a67a27e6de * src/Cursor.cpp (isRTL): simplify
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@18185 a592a061-630c-0410-9148-cb99ea01b6c8
2007-05-03 13:31:16 +00:00
Abdelrazak Younes
7b06307cc6 * Cursor::isRTL(): correctly deal with the inner paragraph when within mathed.
* DocIterator::innerParagraph(): new method giving the inner paragraph.


git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@18114 a592a061-630c-0410-9148-cb99ea01b6c8
2007-04-30 11:46:02 +00:00
André Pönitz
e0d54dd3b4 LyXText -> Text
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@18103 a592a061-630c-0410-9148-cb99ea01b6c8
2007-04-29 23:33:02 +00:00
André Pönitz
32871c1284 rename InsetBase to Inset
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@18089 a592a061-630c-0410-9148-cb99ea01b6c8
2007-04-29 13:39:47 +00:00
André Pönitz
76dec26fec rename MathArray into MathData
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@18044 a592a061-630c-0410-9148-cb99ea01b6c8
2007-04-26 16:06:39 +00:00