Commit Graph

125 Commits

Author SHA1 Message Date
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
Abdelrazak Younes
eb96d94ce7 Code simplification. We don't need to memorize the current Row hfill anymore.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@21987 a592a061-630c-0410-9148-cb99ea01b6c8
2007-12-06 08:39:42 +00:00
Abdelrazak Younes
920c3c3e36 InsetHFill drawing: some other tweaks. There's still a problem with cursor positionning and selection when the hfill is not expanded.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@21985 a592a061-630c-0410-9148-cb99ea01b6c8
2007-12-05 23:10:11 +00:00
Abdelrazak Younes
9536a8a651 InsetHFill drawing: some tweaks.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@21984 a592a061-630c-0410-9148-cb99ea01b6c8
2007-12-05 22:47:14 +00:00
Abdelrazak Younes
55a9524e99 Cleanup Hfill metrics and painting. InsetHFill is now treated almost like any other inset.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@21980 a592a061-630c-0410-9148-cb99ea01b6c8
2007-12-05 22:25:07 +00:00
André Pönitz
2506e0d643 assimilate BOOST_CURRENT_FUNCTION
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@21867 a592a061-630c-0410-9148-cb99ea01b6c8
2007-11-29 21:10:35 +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
Abdelrazak Younes
de8ce17784 * TextMetrics::getPitNearY(): Fix crash when navigating with up and down arrow keys. The problem was that the passed y coordinates was not necessarily out of screen. Also the paragraph position was not correctly updated.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@21798 a592a061-630c-0410-9148-cb99ea01b6c8
2007-11-26 15:29:54 +00:00
Abdelrazak Younes
14dbb6ca3d correct comment. Thanks Martin.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@21678 a592a061-630c-0410-9148-cb99ea01b6c8
2007-11-19 14:13:06 +00:00
Abdelrazak Younes
926abae753 Simplify single par drawing:
* ParagraphMetrics::computeRowSignature(): Integrate row's dimensions and selection status in the row signature.
* TextMetrics::drawParagraph(): compute the row signature here and rely on that to decide if a redraw is needed or not.
* BufferView::Private: get rid of the ViewMetricsInfo member. Just keep the ScreenUpdateStrategy.
* BufferView::draw(): full screen update even for singlePar case because the row signature will detect if something needs to be redrawn.
* Text3.cpp: get rid of hack following architecture update.


git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@21650 a592a061-630c-0410-9148-cb99ea01b6c8
2007-11-17 11:27:03 +00:00
Abdelrazak Younes
fd34bd3914 Cosmetics and cleanup.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@21649 a592a061-630c-0410-9148-cb99ea01b6c8
2007-11-16 23:00:57 +00:00
Abdelrazak Younes
7a4c9a258e row selection tweaks.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@21648 a592a061-630c-0410-9148-cb99ea01b6c8
2007-11-16 22:52:15 +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
Abdelrazak Younes
8c1f803b83 simplify text selection drawing.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@21628 a592a061-630c-0410-9148-cb99ea01b6c8
2007-11-15 17:01:38 +00:00
Abdelrazak Younes
cdf1378200 Introducing TextClassPtr.h to minimize header dependencies.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@21506 a592a061-630c-0410-9148-cb99ea01b6c8
2007-11-07 23:25:08 +00:00
Abdelrazak Younes
0b0c27ef59 * BufferView: Make use of ScreenUpdateStrategy::NoScreenUpdate, avoid a screen redraw when it is not really needed.
* Painter.h: move isDrawingEnabled() to public Area.

* TextMetrics::drawParagraph(): backup and restore original drawing state of the Painter.

* InsetTabular::draw(): ditto.

* InsetMathNest::drawSelection(): ditto.


git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@21471 a592a061-630c-0410-9148-cb99ea01b6c8
2007-11-06 14:07:49 +00:00
André Pönitz
9cca7a0c1a remove unneeded Cursor.h include;
use strfwd 


git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@21456 a592a061-630c-0410-9148-cb99ea01b6c8
2007-11-05 22:54:53 +00:00
Dov Feldstern
ddd82f7aa4 Getting rid of LTR bias --- part 3/4
This is a continuation of r21128, r21244


git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@21448 a592a061-630c-0410-9148-cb99ea01b6c8
2007-11-05 19:41:16 +00:00
André Pönitz
f8f78fe59d de-tuple-fication; cosmetics
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@21389 a592a061-630c-0410-9148-cb99ea01b6c8
2007-11-02 20:41:04 +00:00
Stefan Schimanski
1231489798 * dynamic macros as described in http://1stein.org/download/dynmacro.pdf
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@21328 a592a061-630c-0410-9148-cb99ea01b6c8
2007-11-01 11:13:07 +00:00
Abdelrazak Younes
c3452835a8 * MetricsInfo::background_color: int -> ColorCode
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@21255 a592a061-630c-0410-9148-cb99ea01b6c8
2007-10-29 10:36:20 +00:00
Abdelrazak Younes
d2bfe05827 Forbid implicit conversion from FontInfo to Font.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@21250 a592a061-630c-0410-9148-cb99ea01b6c8
2007-10-28 23:32:18 +00:00
Abdelrazak Younes
5ddc612b73 Splitup Font in saner bits:
* Font::FontBits -> FontInfo
* Font::FONT_XXX -> all enums transfered to FontEnums.h and renamed to FontXxx

I've replaced Font uses with FontInfo were the language() member was not needed, basically all draw() and metrics methods. There's one problematic cases with InsetQuotes which I solved by taking the Buffer main language.




git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@21240 a592a061-630c-0410-9148-cb99ea01b6c8
2007-10-28 18:51:54 +00:00
Abdelrazak Younes
eea79637c7 Move Color::color enum to ColorCode.h
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@21198 a592a061-630c-0410-9148-cb99ea01b6c8
2007-10-25 12:41:02 +00:00
Dov Feldstern
662b58497e Getting rid of LTR bias --- part 1/?
This is the first patch in a series meant to remove LTR bias from the code.
Currently, there are many places in the code where "right" and "left" are used,
but where we actually mean "forward" and "backwards" --- which is the same 
thing in LTR text, but not in RTL/Bidi text.

See full details in http://permalink.gmane.org/gmane.editors.lyx.devel/97550.



git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@21128 a592a061-630c-0410-9148-cb99ea01b6c8
2007-10-22 22:18:52 +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
55beda376a Refactor Undo/Redo framework into an Undo class owned by a Buffer. This reduces header dependencies from Undo.h which was including lots of stuff previously. This also solves the bug where undo/redo were reset upon buffer switching. Now, each buffer has a truly independant undo/redo architecture.
In the future, when Cursor has been fixed to work correctly with multiple views of the same Buffer, we could transfer the Undo owner from Buffer to Cursor.


git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@21031 a592a061-630c-0410-9148-cb99ea01b6c8
2007-10-18 11:51:17 +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
André Pönitz
b847b8c7df the delegate patch
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@20667 a592a061-630c-0410-9148-cb99ea01b6c8
2007-10-02 18:27:20 +00:00
André Pönitz
cd72af583f cosmetics
(maily move layout related enums into a header of there own to remov
include dependencies, alos rename a few things)


git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@20598 a592a061-630c-0410-9148-cb99ea01b6c8
2007-09-29 20:02:32 +00:00
André Pönitz
5aaf4dce20 move font related stuff from bufferview_funcs to Font
delete bufferview_funcs, since it's now empty


git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@20579 a592a061-630c-0410-9148-cb99ea01b6c8
2007-09-29 11:00:18 +00:00
André Pönitz
122f32ea29 cosmetics
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@20578 a592a061-630c-0410-9148-cb99ea01b6c8
2007-09-29 09:22:17 +00:00
André Pönitz
f1687373b1 cosmetics
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@20577 a592a061-630c-0410-9148-cb99ea01b6c8
2007-09-29 08:02:37 +00:00
Abdelrazak Younes
aff5bdbc34 * TextMetrics::drawParagraph(): add 'inside' information to '-dbg painting'.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@20561 a592a061-630c-0410-9148-cb99ea01b6c8
2007-09-28 07:44:02 +00:00
Abdelrazak Younes
5e8d4df0a5 Temporarily fix jumpy cursor.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@20526 a592a061-630c-0410-9148-cb99ea01b6c8
2007-09-26 21:27:17 +00:00