Commit Graph

160 Commits

Author SHA1 Message Date
Abdelrazak Younes
de94db1bcb Attenuate bug 4346 impact: crash -> assertion.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@27079 a592a061-630c-0410-9148-cb99ea01b6c8
2008-10-24 08:49:31 +00:00
Pavel Sanda
b2bb5e5090 Selection painting in Insets (courtesy of fishing industry)
http://bugzilla.lyx.org/show_bug.cgi?id=5270
http://www.mail-archive.com/lyx-devel@lists.lyx.org/msg144726.html

Patch by Vincent.


git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@26887 a592a061-630c-0410-9148-cb99ea01b6c8
2008-10-13 23:19:06 +00:00
André Pönitz
4c7fdddd74 streamlining setter syntax. using mutable references seems a bit
outlandish compared to the rest of LyX


git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@26527 a592a061-630c-0410-9148-cb99ea01b6c8
2008-09-24 21:27:41 +00:00
André Pönitz
b35d3bfc5c Abdel can't seee anythin wrong with that
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@26472 a592a061-630c-0410-9148-cb99ea01b6c8
2008-09-21 01:39:00 +00:00
Abdelrazak Younes
3461169526 Patch by Vincent that solves a number of problems related to the painting of a selection:
1. When a listing is inserted in a bit of text, the line above the listing is not drawn over the full width like it is done for lines above other insets. This is because InsetListing has a AlignLeft alignment. Now, if you start selecting downwards with the mouse in this empty area, strange selection drawings appear (see attachment).
This is caused by the fact that starting your selection at such a place, causes beg.boundary() to be true in TextMetrics::drawRowSelection(..). This is correct, but this value is true for _all_ selected lines. Now, the selection acts as if it is RTL text. Therefore, just like for end.boundary, this value needs to be reset for every line.
2. Starting your selection in an end margin often causes the selection in this end margin to be painted later. This is because when starting your selection in an end margin, you may have set a (possible empty) selection before really selecting the end margin. The problem is that the checksum (computed later) is the same for this empty selection and for the end margin selection. Therfore, we need a call to cur.setSelection() before evaluating cur.selection().
 
3. In the following two lines, it is assumed that there is only an end margin to be painted if the selection extends to the next paragraph. This is not true for the above described case of an AlignLeft Inset. Then, the margin has also be drawn within a paragraph
 
4. The end and begin margins are only painted when the selection extends into the following or previous paragraph. This difference is not resembled in the checksum if you first select a row completely and then procede to the next or previous paragraph as the selection remains at the end of a row. This also holds for the AlignLeft case. Therefore I added a term to the checksum to monitor whether the end and begin margins need to be drawn.


git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@26399 a592a061-630c-0410-9148-cb99ea01b6c8
2008-09-14 14:32:40 +00:00
Abdelrazak Younes
d81071086f rev26385: don't know why but some file were not committed...
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@26387 a592a061-630c-0410-9148-cb99ea01b6c8
2008-09-13 20:19:32 +00:00
Jürgen Spitzmüller
a942cf9e86 * Fix display of horizontal alignment in fixed width tabular cells (bug 3484)
* src/Inset.h:
	- new member content Alignment that indicates whether the content
	  of text insets should be displayed with a specific alignment
* src/TextMetrics.cpp:
	- handle inset's contentAlignment
* src/insets/InsetTabular.{cpp,h}:
	- set contentAlignment for tabular cells.

git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@26380 a592a061-630c-0410-9148-cb99ea01b6c8
2008-09-13 10:10:01 +00:00
Richard Heck
780bce0f96 Rename empty layout stuff to plain layout stuff.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@25541 a592a061-630c-0410-9148-cb99ea01b6c8
2008-07-10 17:41:52 +00:00
Abdelrazak Younes
80a3256114 Fix http://bugzilla.lyx.org/show_bug.cgi?id=4585
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@24772 a592a061-630c-0410-9148-cb99ea01b6c8
2008-05-14 16:38:15 +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
Richard Heck
1626b6e60c Fix bug 4754. The old missing negation problem....
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@24392 a592a061-630c-0410-9148-cb99ea01b6c8
2008-04-20 17:02:00 +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
Edwin Leuven
94699b5865 don't draw selection too wide (esp visible in full screen mode)
there is still one issue which is related (or so i think) to the pit is not being updated when extending a selection to a new row with cursor right/left. i left a FIXME in the code

i put this in since it is a uniform improvement on the current situation...

git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@24089 a592a061-630c-0410-9148-cb99ea01b6c8
2008-04-01 17:53:26 +00:00
Abdelrazak Younes
2530fdb9ab FontIterator is only used in TextMetrics.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@24013 a592a061-630c-0410-9148-cb99ea01b6c8
2008-03-28 08:45:33 +00:00
José Matox
45d42022f7 Add headers necessary to compile with g++ 4.3 (I am not sure about the typeinfo, the others are clearly correct).
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@23862 a592a061-630c-0410-9148-cb99ea01b6c8
2008-03-21 11:26:20 +00:00
Jürgen Spitzmüller
f2e8cd3cd9 *** File Format Change: UI and enhancement for InsetSpace ***
* src/insets/InsetSpace.{cpp,h}:
	- merge in HFill inset, add support for dotfill, hrulefill,
	  hspace and hspace*
* src/insets/InsetHFill.{cpp,h}:
	- remove

* src/frontends/qt4/GuiHSpace.{cpp,h}:
* src/frontends/qt4/ui/HSpaceUi.ui:
* src/frontends/qt4/GuiView:
	- new GUI for Space insets.

* src/insets/Inset.{cpp,h}:
* src/insets/InsetCode.h:
* src/insets/InsetCollapsable.cpp:
* src/insets/InsetCommandParams.cpp:
	- remove HFILL_CODE and LFUN_HFILL_INSERT, add SPACE_CODE where necessary,
	  new Inset member isStretchableSpace() to indicate HFill and friends.

* Buffer.cpp: 
	- increase format to 319
* lib/lyx2lyx/LyX.py:
* lib/lyx2lyx/lyx_1_6.py:
	- conversion/reversion routines
* development/FORMAT:
	- document file format change

* src/Makefile.am:
* src/frontends/qt4/Makefile.am:
* development/scons/scons_manifest.py:
	- deal with UI changes.

* src/LyXAction.cpp:
	- remove LFUN_HFILL_INSERT

* src/LyXFunc.cpp:
	- handle space dialog.

* src/factory.cpp:
* src/Paragraph.cpp (isHFill):
* src/Text.cpp:
* src/Text3.cpp:
* src/TextMetrics.cpp:
	- adapt to changes

* lib/ui/classic.ui:
* lib/ui/stdmenus.ui:
	- add HSpace dialog, remove HFill.

git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@23787 a592a061-630c-0410-9148-cb99ea01b6c8
2008-03-17 09:23:43 +00:00
Stefan Schimanski
cdbebdf093 * moved text completion logic into Text class
* added completion support to InsetTabular


git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@23763 a592a061-630c-0410-9148-cb99ea01b6c8
2008-03-15 12:22:28 +00:00
André Pönitz
f2c9b56fb4 cosmetics/#include cleanup
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@23747 a592a061-630c-0410-9148-cb99ea01b6c8
2008-03-15 00:22:54 +00:00
Richard Heck
a01cb111a0 Change the interface to a paragraph's layout. We still store a LayoutPtr, but now privately, and make a Layout const & available to clients.
The need for a LayoutPtr arises from the fact that (a) we do not want to give our clients a Layout &, since we do not want them to be able to change our Layout; but (b) we also need to be able to change which layout is ours. So we cannot store a Layout const &. Or so it seems to the compiler.



git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@23522 a592a061-630c-0410-9148-cb99ea01b6c8
2008-03-06 21:31:27 +00:00
Richard Heck
f401ce5d29 Changes LayoutList from a vector<LayoutPtr> to a vector<Layout>.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@23519 a592a061-630c-0410-9148-cb99ea01b6c8
2008-03-06 20:01:30 +00:00
Abdelrazak Younes
a4d5b78430 Transfer and bug fix LFUN_BUFFER_BEGIN/END_SELECT to BufferView.cpp
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@23512 a592a061-630c-0410-9148-cb99ea01b6c8
2008-03-06 15:39:30 +00:00
Abdelrazak Younes
5a9653203f Fix PageUp/Down select when at the top/bottom of a document.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@23510 a592a061-630c-0410-9148-cb99ea01b6c8
2008-03-06 12:41:38 +00:00
Abdelrazak Younes
3ba3389ede Fix http://bugzilla.lyx.org/show_bug.cgi?id=4494
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@23509 a592a061-630c-0410-9148-cb99ea01b6c8
2008-03-06 10:14:36 +00:00
Abdelrazak Younes
a837d22ab9 Fix multipar selection drawing. The problem was that the row selection status was only updated for full metrics update. A simple transfer of the relevant code from TextMetrics::redoParagraph() to TextMetrics::drawParagraph() solved the problem.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@23408 a592a061-630c-0410-9148-cb99ea01b6c8
2008-03-03 11:03:47 +00:00
Stefan Schimanski
0cdf6c006b * corner cases for RTL completions: RTL<->LTR boundaries
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@23318 a592a061-630c-0410-9148-cb99ea01b6c8
2008-02-28 12:44:42 +00:00
Richard Heck
d8a6b5bfd0 Remove TextClassPtr without losing the type safety it provided.
See these threads:
http://www.mail-archive.com/lyx-devel@lists.lyx.org/msg136112.html
http://www.mail-archive.com/lyx-devel@lists.lyx.org/msg136062.html
http://www.mail-archive.com/lyx-devel@lists.lyx.org/msg135997.html
for some background.



git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@23299 a592a061-630c-0410-9148-cb99ea01b6c8
2008-02-28 01:42:02 +00:00
André Pönitz
1cca0a86bd API cosmetics
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@23295 a592a061-630c-0410-9148-cb99ea01b6c8
2008-02-27 23:03:26 +00:00
André Pönitz
db8c16d554 progress on buffer-reference-in-insets. beware of instabilities...
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@23289 a592a061-630c-0410-9148-cb99ea01b6c8
2008-02-27 20:43:16 +00:00
Richard Heck
0362c6aae7 Andre's s/getTextClass/textClass/ cleanup.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@23190 a592a061-630c-0410-9148-cb99ea01b6c8
2008-02-24 15:06:35 +00:00
Richard Heck
2e7d1199df Revert 23154.
Sorry, Andre, but this broke not only the modules stuff but the general handling of TextClasses. I'm not opposed to doing this sort of thing, but it's going to be a little more complicated. I'll do it when I get a bit of time, or I can explain what the issue is here if you want to do it.

I'll separately re-commit some of the cleanup here.


git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@23189 a592a061-630c-0410-9148-cb99ea01b6c8
2008-02-24 14:59:23 +00:00
André Pönitz
0fb8f3fba1 mostly s/Paragraph::layout(...)/Paragraph::setLayout(...)/
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@23159 a592a061-630c-0410-9148-cb99ea01b6c8
2008-02-23 16:45:38 +00:00
André Pönitz
b306e9a2e1 Replace the text class shared ptr by good old index-into-global-list.
Also a few cosmetical changes where I xould not resist.

Would be nice if the 'modules people' could verify that their baby 
is strill alive... 



git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@23154 a592a061-630c-0410-9148-cb99ea01b6c8
2008-02-23 11:36:15 +00:00
Stefan Schimanski
919e9a80eb * proper cursor position RTL text with inline completion
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@23150 a592a061-630c-0410-9148-cb99ea01b6c8
2008-02-23 03:14:33 +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
Richard Heck
040f3431e7 Fix bug 4037 and related problems. The patch has been cleaned up a bit
from the one posted to the list.

The basic idea has two parts. First, we hard code an "empty layout"
(called PlainLayout, for want of a better name) in TextClass and read it
before doing anything else. It can therefore be customized by classes,
if they want---say, to make it left-aligned. Second, InsetText's are
divided into three types: (i) normal ones, that use the "default" layout
defined by the text class; (ii) highly restrictive ones, such as ERT and
(not quite an inset) table cells, which demand the empty layout; (iii)
middling ones, which default to an empty layout and use the empty layout
in place of the default. (This is so we don't get the same problem we
had with ERT in e.g. footnotes.) The type of inset is signaled by new
methods InsetText::forceEmptyLayout() and InsetText::useEmptyLayout().
(The latter might better be called: useEmptyLayoutInsteadOfDefault(),
but that's silly.) The old InsetText::forceDefaultParagraphs() has been
split into these, plus a new method InsetText::allowParagraphCustomization(). 
A lot of the changes just adapt to this change.

The other big change is in GuiToolbar: We want to show LyXDefault and
the "default" layout only when they're active.

There are a handful of places where I'm not entirely sure whether we
should be using forceEmptyLayout or !allowParagraphCustomization() or
both. The InsetCaption is one of these. These places, and some others,
are marked with FIXMEs, so I'd appreciate it if people would search
through the patch and let me know whether these need changing. If they
don't, the FIXMEs can be deleted.

git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@22966 a592a061-630c-0410-9148-cb99ea01b6c8
2008-02-12 17:31:07 +00:00
Abdelrazak Younes
6cdf6bd6ab Support full screen in BufferView
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@22899 a592a061-630c-0410-9148-cb99ea01b6c8
2008-02-09 17:20:23 +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
Stefan Schimanski
fae0a30802 * first check if empty, then set the pit. Otherwise we have a segfault before the assert
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@22808 a592a061-630c-0410-9148-cb99ea01b6c8
2008-02-06 11:26:46 +00:00
Stefan Schimanski
08d9375572 * There are cases where updateLabels is not called because no
paragraph relayout happens (e.g. when inserting a InsetBranch, the
InsetText inside was not processed by any updateLabels call), and
hence the macrocontext is not always set. This should not happen often
in fact. So we update the labels in that case explicitely when we see
an empty macrocontext.


git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@22807 a592a061-630c-0410-9148-cb99ea01b6c8
2008-02-06 11:21:42 +00:00
Bo Peng
4f16565f2e Improve cursor movement around lines ending with break-lines
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@22742 a592a061-630c-0410-9148-cb99ea01b6c8
2008-02-01 17:29:31 +00:00
Abdelrazak Younes
f643441cf2 Better fix than revision 22553. Transfer the backup to RowPainter::paintInset().
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@22554 a592a061-630c-0410-9148-cb99ea01b6c8
2008-01-14 16:24:01 +00:00
Abdelrazak Younes
cb83883583 TextMetrics::drawParagraph(): Fix drawing bug reported by Richard by backing up the full repaint flag.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@22553 a592a061-630c-0410-9148-cb99ea01b6c8
2008-01-14 16:15:40 +00:00
André Pönitz
e69b723bf9 There was a bit too much copying of dociterators gpoing on leading to an
avoidable ~5% overhead when loading the UserGuide. This is an attempt on
rectifying the situation.


git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@22532 a592a061-630c-0410-9148-cb99ea01b6c8
2008-01-12 21:38:51 +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
cb2538a52e correctly position new paragraph on up and down movement.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@22220 a592a061-630c-0410-9148-cb99ea01b6c8
2007-12-21 07:16:50 +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
Abdelrazak Younes
9383f4c3c6 'using namespace std' instead of 'using std::xxx'
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@22097 a592a061-630c-0410-9148-cb99ea01b6c8
2007-12-12 10:16:00 +00:00
Abdelrazak Younes
2356bc13ee Partly revert r21987 which caused alignment problems.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@22004 a592a061-630c-0410-9148-cb99ea01b6c8
2007-12-07 21:57:56 +00:00
Abdelrazak Younes
6fef639091 * InsetHFill: small drawing tweaks and fix the cursor positionning and selection of the inset.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@21988 a592a061-630c-0410-9148-cb99ea01b6c8
2007-12-06 08:51:56 +00:00