Changeset 3789:c8efb5c19d54 in orange


Ignore:
Timestamp:
07/18/07 14:39:22 (7 years ago)
Author:
janezd <janez.demsar@…>
Branch:
default
Children:
3790:366542fe0a5f, 3994:57a844903455
Convert:
32164d158df9b7c25f84848e9675bfee0d867b22
Message:
  • added scrolling at wheel events if alt or control are pressed
File:
1 edited

Legend:

Unmodified
Added
Removed
  • orange/OrangeWidgets/OWGraph.py

    r3776 r3789  
    7777        self.mouseCurrentlyPressed = 0 
    7878        self.mouseCurrentButton = 0 
     79        self.enableWheelZoom = 0 
    7980        self.blankClick = 0 
    8081        self.noneSymbol = QwtSymbol() 
     
    636637        self.event(e) 
    637638 
     639             
    638640    def wheelEvent(self, e): 
     641        if not self.enableWheelZoom: 
     642            return 
     643         
    639644        d = -e.delta()/120. 
    640         ro, rn = .9**d, 1-.9**d 
     645 
     646        if getattr(self, "controlPressed", False): 
     647            ys = self.axisScale(QwtPlot.yLeft) 
     648            yoff = d * (ys.hBound() - ys.lBound()) / 100. 
     649            self.setAxisScale(QwtPlot.yLeft, ys.lBound() + yoff, ys.hBound() + yoff) 
    641650         
    642         pos = self.mapFromGlobal(e.pos()) 
    643         ex, ey = pos.x(), pos.y() 
    644  
    645         xs = self.axisScale(QwtPlot.xBottom) 
    646         x = self.invTransform(QwtPlot.xBottom, ex) 
    647 #        print xs.lBound(), xs.hBound(), x 
    648         self.setAxisScale(QwtPlot.xBottom, ro*xs.lBound() + rn*x, ro*xs.hBound() + rn*x) 
    649         print xs.lBound(), xs.hBound() + rn*x, ro*xs.lBound() + rn*x, ro*xs.hBound() + rn*x 
     651        elif getattr(self, "altPressed", False): 
     652            xs = self.axisScale(QwtPlot.xBottom) 
     653            xoff = d * (xs.hBound() - xs.lBound()) / 100. 
     654            self.setAxisScale(QwtPlot.xBottom, xs.lBound() - xoff, xs.hBound() - xoff) 
    650655         
    651         ys = self.axisScale(QwtPlot.yLeft) 
    652         y = self.invTransform(QwtPlot.yLeft, ey) 
    653         self.setAxisScale(QwtPlot.yLeft, ro*ys.lBound() + rn*y, ro*ys.hBound() + rn*y) 
     656        else: 
     657            ro, rn = .9**d, 1-.9**d 
     658             
     659            pos = self.mapFromGlobal(e.pos()) 
     660            ex, ey = pos.x(), pos.y() 
     661     
     662            xs = self.axisScale(QwtPlot.xBottom) 
     663            x = self.invTransform(QwtPlot.xBottom, ex) 
     664    #        print xs.lBound(), xs.hBound(), x 
     665            self.setAxisScale(QwtPlot.xBottom, ro*xs.lBound() + rn*x, ro*xs.hBound() + rn*x) 
     666             
     667            ys = self.axisScale(QwtPlot.yLeft) 
     668            y = self.invTransform(QwtPlot.yLeft, ey) 
     669            self.setAxisScale(QwtPlot.yLeft, ro*ys.lBound() + rn*y, ro*ys.hBound() + rn*y) 
    654670         
    655671        self.replot() 
Note: See TracChangeset for help on using the changeset viewer.