[prev in list] [next in list] [prev in thread] [next in thread] 

List:       koffice
Subject:    kpresenter Patch
From:       Thorsten Zachmann <t.zachmann () zagge ! de>
Date:       2002-08-12 20:23:53
[Download RAW message or body]

Hello all

I have made a patch for bug 

#45989: lines jump around when changing ends (arrow)

Is it ok to commit?

Thorsten

PS. How is it possible to use linebegin/lineend in autoformobjects as it is 
used there but I did't not find a way to do it?
["line.patch" (text/x-diff)]

? .kplineobject.cc.swp
? .kpresenter_utils.cc.swp
? .kpresenter_utils.h.swp
Index: kpcubicbeziercurveobject.cc
===================================================================
RCS file: /home/kde/koffice/kpresenter/kpcubicbeziercurveobject.cc,v
retrieving revision 1.32
diff -u -3 -p -r1.32 kpcubicbeziercurveobject.cc
--- kpcubicbeziercurveobject.cc	2002/07/01 19:56:36	1.32
+++ kpcubicbeziercurveobject.cc	2002/08/12 20:11:49
@@ -180,7 +180,10 @@ void KPCubicBezierCurveObject::paint( QP
             QPoint point = (*it1);
             if ( startPoint != point ) {
                 float angle = KoPoint::getAngle( startPoint, point );
-                drawFigure( lineBegin, _painter, _zoomHandler->unzoomPoint( \
startPoint ), pen.color(), _w, angle,_zoomHandler ); +                KoSize diff = \
getOffset( lineBegin, _w, angle ); +                KoPoint tmpPoint(diff.width(), \
diff.height()); +                tmpPoint += _zoomHandler->unzoomPoint( startPoint );
+                drawFigure( lineBegin, _painter, tmpPoint, pen2.color(), _w, \
angle,_zoomHandler );  
                 break;
             }
@@ -200,7 +203,10 @@ void KPCubicBezierCurveObject::paint( QP
             QPoint point = (*it2);
             if ( endPoint != point ) {
                 float angle = KoPoint::getAngle( endPoint, point );
-                drawFigure( lineEnd, _painter, _zoomHandler->unzoomPoint( endPoint \
), pen.color(), _w, angle, _zoomHandler); +                KoSize diff = getOffset( \
lineEnd, _w, angle ); +                KoPoint tmpPoint(diff.width(), diff.height());
+                tmpPoint += _zoomHandler->unzoomPoint( endPoint );
+                drawFigure( lineEnd, _painter, tmpPoint, pen2.color(), _w, \
angle,_zoomHandler );  
                 break;
             }
Index: kpfreehandobject.cc
===================================================================
RCS file: /home/kde/koffice/kpresenter/kpfreehandobject.cc,v
retrieving revision 1.33
diff -u -3 -p -r1.33 kpfreehandobject.cc
--- kpfreehandobject.cc	2002/07/01 19:56:36	1.33
+++ kpfreehandobject.cc	2002/08/12 20:11:49
@@ -173,7 +173,10 @@ void KPFreehandObject::paint( QPainter* 
             QPoint point = (*it1);
             if ( startPoint != point ) {
                 float angle = KoPoint::getAngle( startPoint, point );
-                drawFigure( lineBegin, _painter, _zoomHandler->unzoomPoint( \
startPoint ), pen2.color(), _w, angle,_zoomHandler ); +                KoSize diff = \
getOffset( lineBegin, _w, angle ); +                KoPoint tmpPoint(diff.width(), \
diff.height()); +                tmpPoint += _zoomHandler->unzoomPoint( startPoint );
+                drawFigure( lineBegin, _painter, tmpPoint, pen2.color(), _w, \
angle,_zoomHandler );  
                 break;
             }
@@ -193,7 +196,10 @@ void KPFreehandObject::paint( QPainter* 
             QPoint point = (*it2);
             if ( endPoint != point ) {
                 float angle = KoPoint::getAngle( endPoint, point );
-                drawFigure( lineEnd, _painter, _zoomHandler->unzoomPoint( endPoint \
), pen2.color(), _w, angle,_zoomHandler ); +                KoSize diff = getOffset( \
lineEnd, _w, angle ); +                KoPoint tmpPoint(diff.width(), diff.height());
+                tmpPoint += _zoomHandler->unzoomPoint( endPoint );
+                drawFigure( lineEnd, _painter, tmpPoint, pen2.color(), _w, \
angle,_zoomHandler );  
                 break;
             }
Index: kplineobject.cc
===================================================================
RCS file: /home/kde/koffice/kpresenter/kplineobject.cc,v
retrieving revision 1.51
diff -u -3 -p -r1.51 kplineobject.cc
--- kplineobject.cc	2002/07/12 16:50:57	1.51
+++ kplineobject.cc	2002/08/12 20:11:49
@@ -127,111 +127,117 @@ void KPLineObject::paint( QPainter* _pai
 
     KoSize diff1( 0, 0 ), diff2( 0, 0 );
 
+    float _angle = 0;
+    switch ( lineType )
+    {
+    case LT_HORZ: {
+        _angle = 0;
+    } break;
+    case LT_VERT: {
+        _angle = 90 ;
+    } break;
+    case LT_LU_RD: {
+        KoRect _rect = KoRect( orig, ext );
+        KoPoint pnt1 = _rect.topLeft();
+        KoPoint pnt2 = _rect.bottomRight();
+
+        _angle = KoPoint::getAngle( pnt1, pnt2 ) - 180.0;
+    } break;
+    case LT_LD_RU: {
+        KoRect _rect = KoRect( orig, ext );
+        KoPoint pnt1 = _rect.bottomLeft();
+        KoPoint pnt2 = _rect.topRight();
+
+        _angle = KoPoint::getAngle( pnt1, pnt2 ) - 180.0;
+    } break;
+    }
+    
     if ( lineBegin != L_NORMAL )
-        diff1 = getBoundingSize( lineBegin, _w, _zoomHandler );
+        diff1 = getOffset( lineBegin, _w, _angle + 180.0);
 
     if ( lineEnd != L_NORMAL )
-        diff2 = getBoundingSize( lineEnd, _w, _zoomHandler );
+        diff2 = getOffset( lineEnd, _w, _angle );
 
-    double unzoom_diff1_width = _zoomHandler->unzoomItX( (int)diff1.width() );
-    double unzoom_diff1_height = _zoomHandler->unzoomItX( (int)diff1.height() );
-    double unzoom_diff2_width = _zoomHandler->unzoomItX( (int)diff2.width() );
-    double unzoom_diff2_height = _zoomHandler->unzoomItX( (int)diff2.height() );
-
     switch ( lineType )
     {
     case LT_HORZ: {
         if ( lineBegin != L_NORMAL && !drawContour )
             drawFigure( lineBegin, _painter,
-                        KoPoint( unzoom_diff1_width / 2.0, oh / 2.0 ),
+                        KoPoint( 0, oh / 2.0 ),
                         pen2.color(), _w, 180.0, _zoomHandler );
 
         if ( lineEnd != L_NORMAL && !drawContour )
             drawFigure( lineEnd, _painter,
-                        KoPoint( ow - unzoom_diff2_width / 2.0, oh / 2.0 ),
+                        KoPoint( ow , oh / 2.0),
                         pen2.color(), _w, 0.0, _zoomHandler );
 
-        _painter->drawLine( (int)diff1.width() / 2,
+        _painter->drawLine( _zoomHandler->zoomItX( - diff1.width() ),
                             _zoomHandler->zoomItY( oh / 2 ),
-                            _zoomHandler->zoomItX( ow - unzoom_diff2_width / 2 ),
+                            _zoomHandler->zoomItX( ow - diff2.width() ),
                             _zoomHandler->zoomItY( oh / 2) );
     } break;
     case LT_VERT: {
         if ( lineBegin != L_NORMAL && !drawContour )
             drawFigure( lineBegin, _painter,
-                        KoPoint( ow / 2.0, unzoom_diff1_width / 2.0 ),
+                        KoPoint( ow / 2.0, 0 ),
                         pen2.color(), _w, 270.0, _zoomHandler );
 
         if ( lineEnd != L_NORMAL && !drawContour )
             drawFigure( lineEnd, _painter,
-                        KoPoint( ow / 2.0, oh - unzoom_diff2_width / 2.0 ),
+                        KoPoint( ow / 2.0, oh ),
                         pen2.color(), _w, 90.0, _zoomHandler );
 
         _painter->drawLine( _zoomHandler->zoomItX( ow / 2 ),
-                            (int)diff1.width() / 2,
+                            _zoomHandler->zoomItX( - diff1.height() ),
                             _zoomHandler->zoomItX( ow / 2 ),
-                            _zoomHandler->zoomItY( oh - unzoom_diff2_width / 2 ) );
+                            _zoomHandler->zoomItY( oh - diff2.height() ) );
     } break;
     case LT_LU_RD: {
-        KoRect _rect = KoRect( orig, ext );
-        KoPoint pnt1 = _rect.topLeft();
-        KoPoint pnt2 = _rect.bottomRight();
-
-        float _angle = KoPoint::getAngle( pnt1, pnt2 );
-
         if ( lineBegin != L_NORMAL && !drawContour ) {
             _painter->save();
-            _painter->translate( _zoomHandler->zoomItX( unzoom_diff1_height / 2 ),
-                                 _zoomHandler->zoomItY( unzoom_diff1_width / 2 ) );
             drawFigure( lineBegin, _painter,
                         KoPoint( 0, 0 ), pen2.color(),
-                        _w, _angle, _zoomHandler );
+                        _w, _angle + 180, _zoomHandler );
             _painter->restore();
         }
         if ( lineEnd != L_NORMAL && !drawContour ) {
             _painter->save();
-            _painter->translate( _zoomHandler->zoomItX( ow - unzoom_diff2_height / 2 \
                ),
-                                 _zoomHandler->zoomItY( oh - unzoom_diff2_width / 2 \
) ); +            _painter->translate( _zoomHandler->zoomItX( ow ),
+                                 _zoomHandler->zoomItY( oh ) );
             drawFigure( lineEnd, _painter,
                         KoPoint( 0, 0 ), pen2.color(),
-                        _w, _angle - 180, _zoomHandler );
+                        _w, _angle, _zoomHandler );
             _painter->restore();
 
         }
-        _painter->drawLine( _zoomHandler->zoomItX( unzoom_diff1_height / 2 + _w / 2 \
                ),
-                            _zoomHandler->zoomItY( unzoom_diff1_width / 2 + _w / 2 \
                ),
-                            _zoomHandler->zoomItX( ow - unzoom_diff2_height / 2 - _w \
                / 2 ),
-                            _zoomHandler->zoomItY( oh - unzoom_diff2_width / 2 - _w \
/ 2 ) ); +        _painter->drawLine( _zoomHandler->zoomItX( - diff1.width() ),
+                            _zoomHandler->zoomItY( - diff1.height() ),
+                            _zoomHandler->zoomItX( ow - diff2.width() ),
+                            _zoomHandler->zoomItY( oh - diff2.height() ) );
     } break;
     case LT_LD_RU: {
-        KoRect _rect = KoRect( orig, ext );
-        KoPoint pnt1 = _rect.topRight();
-        KoPoint pnt2 = _rect.bottomLeft();
-
-        float _angle = KoPoint::getAngle( pnt1, pnt2 );
-
         if ( lineBegin != L_NORMAL && !drawContour ) {
             _painter->save();
-            _painter->translate( _zoomHandler->zoomItX( unzoom_diff1_height / 2),
-                                 _zoomHandler->zoomItY( oh - unzoom_diff1_width / 2 \
) ); +            _painter->translate( _zoomHandler->zoomItX( 0 ),
+                                 _zoomHandler->zoomItY( oh ) );
             drawFigure( lineBegin, _painter,
                         KoPoint( 0, 0 ), pen2.color(),
-                        _w, _angle - 180,_zoomHandler );
+                        _w, _angle + 180,_zoomHandler );
             _painter->restore();
         }
         if ( lineEnd != L_NORMAL && !drawContour ) {
             _painter->save();
-            _painter->translate( _zoomHandler->zoomItX( ow - unzoom_diff2_height / 2 \
                ),
-                                 _zoomHandler->zoomItY( unzoom_diff2_width / 2) );
+            _painter->translate( _zoomHandler->zoomItX( ow ),
+                                 _zoomHandler->zoomItY( 0 ) );
             drawFigure( lineEnd, _painter,
                         KoPoint( 0, 0 ), pen2.color(),
                         _w, _angle,_zoomHandler );
             _painter->restore();
         }
-        _painter->drawLine( _zoomHandler->zoomItX( unzoom_diff1_height / 2 + _w / 2 \
                ),
-                            _zoomHandler->zoomItY( oh - unzoom_diff1_width / 2 - _w \
                / 2 ),
-                            _zoomHandler->zoomItX( ow - unzoom_diff2_height / 2 - _w \
                / 2 ),
-                            _zoomHandler->zoomItY( unzoom_diff2_width / 2 + _w / 2 ) \
); +        _painter->drawLine( _zoomHandler->zoomItX( - diff1.width() ),
+                            _zoomHandler->zoomItY( oh - diff1.height() ),
+                            _zoomHandler->zoomItX( ow - diff2.width() ),
+                            _zoomHandler->zoomItY( - diff2.height() ));
     } break;
     }
 }
Index: kppolylineobject.cc
===================================================================
RCS file: /home/kde/koffice/kpresenter/kppolylineobject.cc,v
retrieving revision 1.30
diff -u -3 -p -r1.30 kppolylineobject.cc
--- kppolylineobject.cc	2002/07/01 19:56:36	1.30
+++ kppolylineobject.cc	2002/08/12 20:11:50
@@ -173,7 +173,10 @@ void KPPolylineObject::paint( QPainter* 
             QPoint point = (*it1);
             if ( startPoint != point ) {
                 float angle = KoPoint::getAngle( startPoint, point );
-                drawFigure( lineBegin, _painter, _zoomHandler->unzoomPoint( \
startPoint ), pen2.color(), _w, angle,_zoomHandler ); +                KoSize diff = \
getOffset( lineBegin, _w, angle ); +                KoPoint tmpPoint(diff.width(), \
diff.height()); +                tmpPoint += _zoomHandler->unzoomPoint( startPoint );
+                drawFigure( lineBegin, _painter, tmpPoint, pen2.color(), _w, \
angle,_zoomHandler );  
                 break;
             }
@@ -193,7 +196,10 @@ void KPPolylineObject::paint( QPainter* 
             QPoint point = (*it2);
             if ( endPoint != point ) {
                 float angle = KoPoint::getAngle( endPoint, point );
-                drawFigure( lineEnd, _painter, _zoomHandler->unzoomPoint( endPoint \
), pen2.color(), _w, angle,_zoomHandler ); +                KoSize diff = getOffset( \
lineEnd, _w, angle ); +                KoPoint tmpPoint(diff.width(), diff.height());
+                tmpPoint += _zoomHandler->unzoomPoint( endPoint );
+                drawFigure( lineEnd, _painter, tmpPoint, pen2.color(), _w, \
angle,_zoomHandler );  
                 break;
             }
Index: kpquadricbeziercurveobject.cc
===================================================================
RCS file: /home/kde/koffice/kpresenter/kpquadricbeziercurveobject.cc,v
retrieving revision 1.32
diff -u -3 -p -r1.32 kpquadricbeziercurveobject.cc
--- kpquadricbeziercurveobject.cc	2002/07/01 19:56:36	1.32
+++ kpquadricbeziercurveobject.cc	2002/08/12 20:11:50
@@ -180,7 +180,10 @@ void KPQuadricBezierCurveObject::paint( 
             QPoint point = (*it1);
             if ( startPoint != point ) {
                 float angle = KoPoint::getAngle( startPoint, point );
-                drawFigure( lineBegin, _painter, _zoomHandler->unzoomPoint( \
startPoint ), pen.color(), _w, angle,_zoomHandler ); +                KoSize diff = \
getOffset( lineBegin, _w, angle ); +                KoPoint tmpPoint(diff.width(), \
diff.height()); +                tmpPoint += _zoomHandler->unzoomPoint( startPoint );
+                drawFigure( lineBegin, _painter, tmpPoint, pen2.color(), _w, \
angle,_zoomHandler );  
                 break;
             }
@@ -200,7 +203,10 @@ void KPQuadricBezierCurveObject::paint( 
             QPoint point = (*it2);
             if ( endPoint != point ) {
                 float angle = KoPoint::getAngle( endPoint, point );
-                drawFigure( lineEnd, _painter, _zoomHandler->unzoomPoint( endPoint \
), pen.color(), _w, angle, _zoomHandler ); +                KoSize diff = getOffset( \
lineEnd, _w, angle ); +                KoPoint tmpPoint(diff.width(), diff.height());
+                tmpPoint += _zoomHandler->unzoomPoint( endPoint );
+                drawFigure( lineEnd, _painter, tmpPoint, pen2.color(), _w, \
angle,_zoomHandler );  
                 break;
             }
Index: kpresenter_utils.cc
===================================================================
RCS file: /home/kde/koffice/kpresenter/kpresenter_utils.cc,v
retrieving revision 1.29
diff -u -3 -p -r1.29 kpresenter_utils.cc
--- kpresenter_utils.cc	2002/07/16 05:57:42	1.29
+++ kpresenter_utils.cc	2002/08/12 20:11:51
@@ -44,19 +44,20 @@ void drawFigure( LineEnd figure, QPainte
         painter->translate( _zoomHandler->zoomItX(coord.x()), _zoomHandler->zoomItY( \
coord.y()) );  painter->rotate( angle );
         painter->scale( 1, 1 );
-        painter->fillRect( _zoomHandler->zoomItX(-3 - _w / 2),_zoomHandler->zoomItY( \
-3 - _h / 2),_zoomHandler->zoomItX( 6 + _w),_zoomHandler->zoomItY( 6 + _h), color ); \
+        painter->fillRect( _zoomHandler->zoomItX( -6 - _w ),_zoomHandler->zoomItY( \
-3 - _h / 2),_zoomHandler->zoomItX( 6 + _w),_zoomHandler->zoomItY( 6 + _h), color );  \
} break;  case L_CIRCLE:
     {
         painter->translate( _zoomHandler->zoomItX(coord.x()), \
_zoomHandler->zoomItY(coord.y()) ); +        painter->rotate( angle );
         painter->setBrush( color );
-        painter->drawEllipse( _zoomHandler->zoomItX(-3 - _w / 2), \
_zoomHandler->zoomItY(-3 - _w / 2),_zoomHandler->zoomItX( 6 + _w), \
_zoomHandler->zoomItY(6 + _w) ); +        painter->drawEllipse( \
_zoomHandler->zoomItX( -6 - _w ), _zoomHandler->zoomItY( -3 - _w / 2 \
),_zoomHandler->zoomItX( 6 + _w), _zoomHandler->zoomItY(6 + _w) );  } break;
     case L_ARROW:
     {
-        QPoint p1( -5 - _w / 2, -3 - _w / 2 );
-        QPoint p2( 5 + _w / 2, 0 );
-        QPoint p3( -5 - _w / 2, 3 + _w / 2 );
+        QPoint p1( -10 - _w, -3 - _w / 2 );
+        QPoint p2( 0 , 0 );
+        QPoint p3( -10 - _w, 3 + _w / 2 );
         QPointArray pArray( 3 );
         pArray.setPoint( 0, _zoomHandler->zoomPoint(p1) );
         pArray.setPoint( 1, _zoomHandler->zoomPoint(p2) );
@@ -74,9 +75,9 @@ void drawFigure( LineEnd figure, QPainte
         painter->setPen( QPen(color , _zoomHandler->zoomItX( _w )) );
         painter->rotate( angle );
         painter->scale( 1, 1 );
-        QPoint p1( _zoomHandler->zoomItX(-5 - _w / 2), _zoomHandler->zoomItY(-3 - _w \
                / 2) );
-        QPoint p2( _zoomHandler->zoomItX(5 + _w / 2), _zoomHandler->zoomItY(0) );
-        QPoint p3( _zoomHandler->zoomItX(-5 - _w / 2), _zoomHandler->zoomItY(3 + _w \
/ 2) ); +        QPoint p1( _zoomHandler->zoomItX(-10 - _w), _zoomHandler->zoomItY(-3 \
- _w / 2) ); +        QPoint p2( _zoomHandler->zoomItX(0), _zoomHandler->zoomItY(0) \
); +        QPoint p3( _zoomHandler->zoomItX(-10 - _w), _zoomHandler->zoomItY(3 + _w \
/ 2) );  painter->drawLine( p2, p1);
         painter->drawLine( p2, p3);
     }break;
@@ -86,8 +87,8 @@ void drawFigure( LineEnd figure, QPainte
         painter->setPen( QPen(color , _zoomHandler->zoomItX( _w )) );
         painter->rotate( angle );
         painter->scale( 1, 1 );
-        QPoint p1( _zoomHandler->zoomItX(0), _zoomHandler->zoomItY(-5 - _w / 2) );
-        QPoint p2( _zoomHandler->zoomItX(0), _zoomHandler->zoomItY(5 + _w / 2 ) );
+        QPoint p1( _zoomHandler->zoomItX(- _w / 2), _zoomHandler->zoomItY(-5 - _w / \
2) ); +        QPoint p2( _zoomHandler->zoomItX(- _w / 2), _zoomHandler->zoomItY(5 + \
_w / 2 ) );  painter->drawLine( p1, p2);
     }break;
     case L_DOUBLE_ARROW:
@@ -97,13 +98,13 @@ void drawFigure( LineEnd figure, QPainte
         painter->scale( 1, 1 );
         painter->setBrush( color );
 
-        QPoint p1( -5 - _w / 2, -3 - _w / 2 );
-        QPoint p2( 5 + _w / 2, 0 );
-        QPoint p3( -5 - _w / 2, 3 + _w / 2 );
-
-        QPoint p4( -15 - _w / 2, -3 - _w / 2 );
-        QPoint p5( -5 + _w / 2, 0 );
-        QPoint p6( -15 - _w / 2, 3 + _w / 2 );
+        QPoint p1( -10 - _w , -3 - _w / 2 );
+        QPoint p2( 0, 0 );
+        QPoint p3( -10 - _w, 3 + _w / 2 );
+
+        QPoint p4( -20 - _w, -3 - _w / 2 );
+        QPoint p5( -10, 0 );
+        QPoint p6( -20 - _w, 3 + _w / 2 );
 
         QPointArray pArray( 3 );
         pArray.setPoint( 0, _zoomHandler->zoomPoint(p1) );
@@ -122,15 +123,15 @@ void drawFigure( LineEnd figure, QPainte
         painter->setPen( QPen(color , _zoomHandler->zoomItX( _w )) );
         painter->rotate( angle );
         painter->scale( 1, 1 );
-        QPoint p1( _zoomHandler->zoomItX(-5 - _w / 2), _zoomHandler->zoomItY(-3 - _w \
                / 2) );
-        QPoint p2( _zoomHandler->zoomItX(5 + _w / 2), _zoomHandler->zoomItY(0) );
-        QPoint p3( _zoomHandler->zoomItX(-5 - _w / 2), _zoomHandler->zoomItY(3 + _w \
/ 2) ); +        QPoint p1( _zoomHandler->zoomItX(-10 - _w), _zoomHandler->zoomItY(-3 \
- _w / 2) ); +        QPoint p2( _zoomHandler->zoomItX(0), _zoomHandler->zoomItY(0) \
); +        QPoint p3( _zoomHandler->zoomItX(-10 - _w), _zoomHandler->zoomItY(3 + _w \
/ 2) );  painter->drawLine( p2, p1);
         painter->drawLine( p2, p3);
 
-        p1.setX( _zoomHandler->zoomItX(-15 - _w / 2));
-        p2.setX( _zoomHandler->zoomItX(-5 + _w / 2));
-        p3.setX( _zoomHandler->zoomItX(-15 - _w / 2));
+        p1.setX( _zoomHandler->zoomItX(-20 - _w));
+        p2.setX( _zoomHandler->zoomItX(-10));
+        p3.setX( _zoomHandler->zoomItX(-20 - _w));
         painter->drawLine( p2, p1);
         painter->drawLine( p2, p3);
     }break;
@@ -172,6 +173,45 @@ KoSize getBoundingSize( LineEnd figure, 
     }
 
     return KoSize( 0, 0 );
+}
+
+KoSize getOffset( LineEnd figure, int _w, float angle )
+{
+    double x = 0;
+    double y = 0;
+    switch ( figure )
+    {
+    case L_ARROW:
+    case L_DOUBLE_ARROW:
+    {
+        x = _w * 2;
+        y = _w * 2;
+        break;
+    }
+    case L_SQUARE:
+    case L_CIRCLE:
+    {
+        x = _w + 3;
+        y = _w + 3;
+        break;
+    }   
+    case L_LINE_ARROW:
+    case L_DOUBLE_LINE_ARROW:
+    {
+        x = _w + 1;
+        y = _w + 1;
+        break;
+    }
+    case L_DIMENSION_LINE:
+    {
+        x = _w / 2;
+        y = _w / 2;
+        break;
+    }
+    default: break;
+    }
+
+    return KoSize( x * cos( angle * M_PI / 180.0 ), y * sin( angle * M_PI / 180 ) );
 }
 
 QString lineEndBeginName( LineEnd type )
Index: kpresenter_utils.h
===================================================================
RCS file: /home/kde/koffice/kpresenter/kpresenter_utils.h,v
retrieving revision 1.19
diff -u -3 -p -r1.19 kpresenter_utils.h
--- kpresenter_utils.h	2002/07/16 05:57:42	1.19
+++ kpresenter_utils.h	2002/08/12 20:11:51
@@ -32,6 +32,7 @@ class KoPoint;
 
 void drawFigure( LineEnd figure, QPainter* painter, const KoPoint &coord, const \
QColor & color, int _w, float angle, KoZoomHandler*_zoomHandler );  KoSize \
getBoundingSize( LineEnd figure, int _w, const KoZoomHandler*_zoomHandler ); +KoSize \
getOffset( LineEnd figure, int _w, float angle );  QString lineEndBeginName( LineEnd \
type );  LineEnd lineEndBeginFromString( const QString & name );
 KoPointArray getCloseObject( KoPointArray points, bool close, bool objClosed );
Index: styledia.cc
===================================================================
RCS file: /home/kde/koffice/kpresenter/styledia.cc,v
retrieving revision 1.94
diff -u -3 -p -r1.94 styledia.cc
--- styledia.cc	2002/08/04 14:32:05	1.94
+++ styledia.cc	2002/08/12 20:11:53
@@ -97,27 +97,24 @@ void PBPreview::drawContents( QPainter *
         int _w = pen.width();
 
 	if ( lineBegin != L_NORMAL )
-	    diff1 = getBoundingSize( lineBegin, _w, _zoomHandler );
+	    diff1 = getOffset( lineBegin, _w, + 180.0 );
 
 	if ( lineEnd != L_NORMAL )
-	    diff2 = getBoundingSize( lineEnd, _w, _zoomHandler );
+	    diff2 = getOffset( lineEnd, _w, 0 );
 
-        double unzoom_diff1_width = _zoomHandler->unzoomItX( (int)diff1.width() );
-        double unzoom_diff2_width = _zoomHandler->unzoomItX( (int)diff2.width() );
-
 	if ( lineBegin != L_NORMAL )
-	    drawFigure( lineBegin, painter, KoPoint( unzoom_diff1_width / 2, \
_zoomHandler->unzoomItY( contentsRect().height() ) / 2 ), +	    drawFigure( \
lineBegin, painter, KoPoint( 5, _zoomHandler->unzoomItY( contentsRect().height() ) / \
2 ),  pen.color(), _w, 180.0, _zoomHandler );
 
 	if ( lineEnd != L_NORMAL )
-	    drawFigure( lineEnd, painter, KoPoint( _zoomHandler->unzoomItX( \
contentsRect().width() ) - unzoom_diff2_width / 2, +	    drawFigure( lineEnd, \
                painter, KoPoint( _zoomHandler->unzoomItX( contentsRect().width() - 7 \
                ) ,
                                                _zoomHandler->unzoomItY( \
contentsRect().height() ) / 2 ),  pen.color(), _w, 0.0, _zoomHandler );
 
 	painter->setPen( pen );
-	painter->drawLine( (int)unzoom_diff1_width / 2,
+	painter->drawLine( - (int)diff1.width() + 8,
                        contentsRect().height() / 2,
-                       contentsRect().width() - (int)unzoom_diff2_width / 2,
+                       contentsRect().width() - (int)diff2.width() - 7,
                        contentsRect().height() / 2 );
 
     } else if ( paintType == Brush ) {


____________________________________
koffice mailing list
koffice@mail.kde.org
To unsubscribe please visit:
http://mail.kde.org/mailman/listinfo/koffice

[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic