On Tue, May 15, 2007 at 01:07:43AM +0300, Dov Feldstern wrote:
> Andre Poenitz wrote:
> >>Index: src/Bidi.cpp
> >>===================================================================
> >>--- src/Bidi.cpp    (revision 18314)
> >>+++ src/Bidi.cpp    (working copy)
> >>@@ -12,6 +12,7 @@
> >> 
> >> #include "Bidi.h"
> >> #include "Buffer.h"
> >>+#include "BufferView.h"
> >> #include "Font.h"
> >> #include "Row.h"
> >> #include "LyXRC.h"
> >>@@ -209,4 +210,18 @@
> >> }
> >> 
> >> 
> >>+bool Bidi::reverseDirections(Cursor const & cur) 
> >>+{
> >>+   /*
> >>+    * We determine the directions based on the direction of the
> >>+    * bottom() --- i.e., outermost --- paragraph, because that is
> >>+    * the only way to achieve consistency of the arrow's movements
> >>+    * within a paragraph, and thus avoid situations in which the
> >>+    * cursor gets stuck.
> >>+    */
> >>+   return cur.bottom().paragraph().isRightToLeftPar(
> >>+                   cur.bv().buffer()->params());
> >>+}
> >
> >The fact that you need an extra header for a static function (which does
> >not use the class at all) is a good sign that it doesn't really
> >belong there.
> >
> >If it were in Cursor, it'd look like:
> >
> > bool Cursor::reverseDirections() const
> > {
> >     /*
> >      * We determine the directions based on the direction of the
> >      * bottom() --- i.e., outermost --- paragraph, because that is
> >      * the only way to achieve consistency of the arrow's movements
> >      * within a paragraph, and thus avoid situations in which the
> >      * cursor gets stuck.
> >      */
> >     return 
> >     bottom().paragraph().isRightToLeftPar(bv().buffer()->params());
> > }
> >
> >The only reason not to do this is that Cursor is already too fat, but I
> >don't think it is outweighed in this case.
> >
> >Could be a Paragraph method, too...
> >
> >Andre'
> 
> I hear you. But what about the fact that logically it belongs in Bidi? 
> How do we take that into account?

If it is really only useful in this setting it might go to Bidi.

However, there's already Paragraph::isRightToLeftPar(), so paragraph
already knows _something_ about RTL.

I admit that the core is a loadm of rubbish when it comes to what
belongs where...

Andre'

Reply via email to