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

List:       kde-commits
Subject:    koffice/kspread
From:       Robert Knight <robertknight () gmail ! com>
Date:       2005-09-27 19:11:36
Message-ID: 1127848296.898202.6392.nullmailer () svn ! kde ! org
[Download RAW message or body]

SVN commit 464554 by knight:

BUG: 112376

 M  +27 -2     kspread_canvas.cc  
 M  +9 -0      kspread_canvas.h  
 M  +8 -2      kspread_sheet.cc  


--- trunk/koffice/kspread/kspread_canvas.cc #464553:464554
@@ -1069,8 +1069,13 @@
 	  return;
   }
   
+ /* kdDebug() << "ev_PosX " << ev_PosX << endl;
+  kdDebug() << "ev_PosY " << ev_PosY << endl;
+  kdDebug() << "xOffset " << xOffset() << endl;
+  kdDebug() << "yOffset " << yOffset() << endl;*/
+  
   //Check for a highlight range size grip and show the user a visual cue if found.
-  if (highlightRangeSizeGripAt(ev_PosX,ev_PosY - ypos))
+  if (highlightRangeSizeGripAt(ev_PosX,ev_PosY))
   { 
 	  setCursor(Qt::CrossCursor);
 	  return;	  
@@ -1329,7 +1334,7 @@
 			highlight->getRange(rg);
 	  
 			KoRect visibleRect;
-			sheetAreaToVisibleRect(QRect(rg.startCol(),rg.startRow(),
+			sheetAreaToRect(QRect(rg.startCol(),rg.startRow(),
 					       rg.endCol()-rg.startCol()+1,rg.endRow()-rg.startRow()+1),visibleRect);
 
 			double distFromSizeGripCorner=( sqrt( (visibleRect.right()-x) +
@@ -4148,6 +4153,26 @@
   }
 }
 
+void KSpreadCanvas::sheetAreaToRect(const QRect& sheetArea, KoRect& rect) 
+{ 
+	KSpreadSheet* sheet=activeSheet();
+		
+	if ( sheet->layoutDirection()==KSpreadSheet::RightToLeft )
+	{ 
+		rect.setLeft(sheet->dblColumnPos( sheetArea.right()+1 ) );
+		rect.setRight(sheet->dblColumnPos( sheetArea.left() ));
+	} 
+	else
+	{ 
+		rect.setLeft(sheet->dblColumnPos( sheetArea.left() ));
+		rect.setRight(sheet->dblColumnPos( sheetArea.right()+1 ));
+	}
+
+	rect.setTop(sheet->dblRowPos(sheetArea.top()));
+	rect.setBottom(sheet->dblRowPos(sheetArea.bottom()+1));
+	
+}
+
 void KSpreadCanvas::sheetAreaToVisibleRect( const QRect& sheetArea,
 					    KoRect& visibleRect ) 
 {
--- trunk/koffice/kspread/kspread_canvas.h #464553:464554
@@ -478,6 +478,15 @@
   void sheetAreaToVisibleRect( const QRect& sheetArea,
 			       KoRect& visibleRect ); 
   
+  /** 
+  * Calculates the physical region on the canvas widget occupied by a range of cells on
+  * the currently active sheet.
+  * Unlike @see sheetAreaToVisibleRect , scrolling the view does not affect sheetAreaToRect.
+  *
+  * @param sheetArea The range of cells on the current sheet
+  * @param visibleRect This is set to the physical region occupied by the given range of cells
+  */
+  void sheetAreaToRect( const QRect& sheetArea, KoRect& rect );
   
 
   void retrieveMarkerInfo( const QRect &marker, const KoRect &viewRect,
--- trunk/koffice/kspread/kspread_sheet.cc #464553:464554
@@ -8054,8 +8054,11 @@
             ChartChild *ch = new ChartChild( doc(), this );
             if ( ch->load( e ) )
                 insertChild( ch );
-            else
+            else 
+	    {
+		ch->setDeleted(true);
                 delete ch;
+	    }
         }
 
         n = n.nextSibling();
@@ -8251,8 +8254,11 @@
 
     if ( wiz && wiz->show())
         insertChild( ch );
-    else
+    else 
+    {
+	    ch->setDeleted(true);
         delete ch;
+    }
 }
 
 void KSpreadSheet::insertChild( const QRect& _rect, KoDocumentEntry& _e )
[prev in list] [next in list] [prev in thread] [next in thread] 

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