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

List:       kde-commits
Subject:    KDE/kdeedu/kmplot/kmplot
From:       David Saxton <david () bluehaze ! org>
Date:       2006-03-31 19:57:16
Message-ID: 1143835036.172847.16578.nullmailer () svn ! kde ! org
[Download RAW message or body]

SVN commit 525099 by saxton:

Adjust drawing position of axis labels at edge of view if they would otherwise
get cut off.


 M  +21 -77    diagr.cpp  


--- trunk/KDE/kdeedu/kmplot/kmplot/diagr.cpp #525098:525099
@@ -439,25 +439,6 @@
 					s+=QChar(960);
 				}
 			}
-			else
-				continue;
-			swidth = test.width(s);
-			if (  TransxToPixel(d)-x<swidth && TransxToPixel(d)-x>-swidth && draw_next==0)
-			{
-				draw_next=1;
-				continue;
-			}
-			if (draw_next>0)
-			{
-				if (draw_next==1)
-				{
-					draw_next++;
-					continue;
-				}
-				else
-					draw_next=0;
-			}
-			pDC->drawText( QRectF( TransxToPixel(d), y+dy, 0, 0 ), Qt::AlignCenter|Qt::TextDontClip, s);
 		}
 		else if(fabs(ex-M_PI/3.)<1e-3)
 		{
@@ -473,25 +454,6 @@
 					s+=QChar(960);
 				}
 			}
-			else
-				continue;
-			swidth = test.width(s);
-			if (  TransxToPixel(d)-x<swidth && TransxToPixel(d)-x>-swidth && draw_next==0)
-			{
-				draw_next=1;
-				continue;
-			}
-			if (draw_next>0)
-			{
-				if (draw_next==1)
-				{
-					draw_next++;
-					continue;
-				}
-				else
-					draw_next=0;
-			}
-			pDC->drawText( QRectF( TransxToPixel(d), y+dy, 0, 0 ), Qt::AlignCenter|Qt::TextDontClip, s);
 		}
 		else if(fabs(ex-M_PI/4.)<1e-3)
 		{
@@ -507,29 +469,13 @@
 					s+=QChar(960);
 				}
 			}
-			else
-				continue;
-			swidth = test.width(s);
-			if (  TransxToPixel(d)-x<swidth && TransxToPixel(d)-x>-swidth && draw_next==0)
-			{
-				draw_next=1;
-				continue;
-			}
-			if (draw_next>0)
-			{
-				if (draw_next==1)
-				{
-					draw_next++;
-					continue;
-				}
-				else
-					draw_next=0;
-			}
-			pDC->drawText( QRectF( TransxToPixel(d), y+dy, 0, 0 ), Qt::AlignCenter|Qt::TextDontClip, s);
 		}
 		else if((n%5==0 || n==1 || n==-1 || draw_next))
 		{
 			s=QString().sprintf("%+0.3g", n*ex);
+		}
+		if ( (s != "-") && (s != "+") )
+		{
 			swidth = test.width(s);
 			if (  TransxToPixel(d)-x<swidth && TransxToPixel(d)-x>-swidth && draw_next==0)
 			{
@@ -579,12 +525,6 @@
 					s+=QChar(960);
 				}
 			}
-			else
-				continue;
-			if (xmin>=0)
-				pDC->drawText( QRectF( x+dx, TransyToPixel(d), 0, 0 ), Qt::AlignVCenter|Qt::AlignLeft|Qt::TextDontClip, s);
-			else
-				pDC->drawText( QRectF( x-dx, TransyToPixel(d), 0, 0 ), Qt::AlignVCenter|Qt::AlignRight|Qt::TextDontClip, s);
 		}
 		else if(fabs(ey-M_PI/3.)<1e-3)
 		{
@@ -600,12 +540,6 @@
 					s+=QChar(960);
 				}
 			}
-			else
-				continue;
-			if (xmin>=0)
-				pDC->drawText( QRectF( x+dx, TransyToPixel(d), 0, 0 ), Qt::AlignVCenter|Qt::AlignLeft|Qt::TextDontClip, s);
-			else
-				pDC->drawText( QRectF( x-dx, TransyToPixel(d), 0, 0 ), Qt::AlignVCenter|Qt::AlignRight|Qt::TextDontClip, s);
 		}
 		else if(fabs(ey-M_PI/4.)<1e-3)
 		{
@@ -621,20 +555,30 @@
 					s+=QChar(960);
 				}
 			}
-			else
-				continue;
-			if (xmin>=0)
-				pDC->drawText( QRectF( x+dx, TransyToPixel(d), 0, 0 ), Qt::AlignVCenter|Qt::AlignLeft|Qt::TextDontClip, s);
-			else
-				pDC->drawText( QRectF( x-dx, TransyToPixel(d), 0, 0 ), Qt::AlignVCenter|Qt::AlignRight|Qt::TextDontClip, s);
 		}
 		else if((n%5==0 || n==1 || n==-1))
 		{
 			s=QString().sprintf("%+0.3g", n*ey);
+		}
+		if ( (s != "-") && (s != "+") )
+		{
 			if (xmin>=0)
-				pDC->drawText( QRectF( x+dx, TransyToPixel(d), 0, 0 ), Qt::AlignVCenter|Qt::AlignLeft|Qt::TextDontClip, s);
+			{
+				QRectF drawRect( x+dx, TransyToPixel(d), 0, 0 );
+				pDC->drawText( drawRect, Qt::AlignVCenter|Qt::AlignLeft|Qt::TextDontClip, s);
+			}
 			else
-				pDC->drawText( QRectF( x-dx, TransyToPixel(d), 0, 0 ), Qt::AlignVCenter|Qt::AlignRight|Qt::TextDontClip, s);
+			{
+				QRectF drawRect( x-dx, TransyToPixel(d), 0, 0 );
+				QRectF br = pDC->boundingRect( drawRect, Qt::AlignVCenter|Qt::AlignRight|Qt::TextDontClip, s);
+				if ( br.left() < 0 )
+				{
+					// have to adjust drawRect so that we don't draw off the edge of the view
+					drawRect.translate( -br.left(), 0 );
+				}
+				
+				pDC->drawText( drawRect, Qt::AlignVCenter|Qt::AlignRight|Qt::TextDontClip, s);
+			}
 		}
 	}
 
[prev in list] [next in list] [prev in thread] [next in thread] 

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