Changeset 3776:bdc36525732c in orange


Ignore:
Timestamp:
07/13/07 01:41:25 (7 years ago)
Author:
janezd <janez.demsar@…>
Branch:
default
Convert:
2ec6c3e460e3ba9506c8184c68eb2af77c6beca3
Message:

* empty log message *

File:
1 edited

Legend:

Unmodified
Added
Removed
  • orange/OrangeWidgets/OWGraph.py

    r3724 r3776  
    1919SELECT_RECTANGLE = 2 
    2020SELECT_POLYGON = 3 
    21  
     21PANNING = 4 
     22SELECT = 5 
    2223 
    2324class OWGraph(QwtPlot): 
     
    8485        self.connect(self, SIGNAL("plotMouseMoved(const QMouseEvent &)"), self.onMouseMoved) 
    8586        self.zoomStack = [] 
     87        self.panPosition = None 
    8688        self.connect(self, SIGNAL('plotMousePressed(const QMouseEvent&)'), self.onMousePressed) 
    8789        self.connect(self, SIGNAL('plotMouseReleased(const QMouseEvent&)'),self.onMouseReleased) 
     
    419421        if self.tempSelectionCurve: self.removeLastSelection() 
    420422 
     423    def activatePanning(self): 
     424        self.state = PANNING 
     425        if self.tempSelectionCurve: self.removeLastSelection() 
     426         
     427    def activateSelection(self): 
     428        self.state = SELECT 
     429 
    421430    def removeDrawingCurves(self, removeLegendItems = 1): 
    422431        for key in self.curveKeys(): 
     
    482491        self.ypos = e.y() 
    483492 
     493         
     494        xs = self.axisScale(QwtPlot.xBottom) 
     495        x = self.invTransform(QwtPlot.xBottom, e.x()) 
     496        print "omp", xs.lBound(), xs.hBound(), x 
     497 
    484498        # #### 
    485499        # ZOOM 
     
    487501            self.tempSelectionCurve = SelectionCurve(self, pen = Qt.DashLine) 
    488502            self.zoomKey = self.insertCurve(self.tempSelectionCurve) 
     503 
     504        # #### 
     505        # PANNING 
     506        if e.button() == Qt.LeftButton and self.state == PANNING: 
     507            self.panPosition = e.globalX(), e.globalY() 
     508            self.paniniX = self.axisScale(QwtPlot.xBottom).lBound(), self.axisScale(QwtPlot.xBottom).hBound() 
     509            self.paniniY = self.axisScale(QwtPlot.yLeft).lBound(), self.axisScale(QwtPlot.yLeft).hBound() 
    489510 
    490511        # #### 
     
    540561            self.repaint() 
    541562 
     563        elif self.state == PANNING and self.panPosition: 
     564            dx = self.invTransform(QwtPlot.xBottom, e.globalX()) - self.invTransform(QwtPlot.xBottom, self.panPosition[0]) 
     565            dy = self.invTransform(QwtPlot.yLeft, e.globalY()) - self.invTransform(QwtPlot.yLeft, self.panPosition[1]) 
     566            self.setAxisScale(QwtPlot.xBottom, self.paniniX[0] - dx, self.paniniX[1] - dx) 
     567            self.setAxisScale(QwtPlot.yLeft, self.paniniY[0] - dy, self.paniniY[1] - dy) 
     568            self.replot() 
     569             
    542570        self.event(e) 
    543571 
     
    548576        self.mouseCurrentButton = 0 
    549577        staticClick = 0 
     578        self.panPosition = None 
    550579 
    551580        if e.button() != Qt.RightButton: 
     
    607636        self.event(e) 
    608637 
     638    def wheelEvent(self, e): 
     639        d = -e.delta()/120. 
     640        ro, rn = .9**d, 1-.9**d 
     641         
     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 
     650         
     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) 
     654         
     655        self.replot() 
     656 
     657         
    609658    # does a point (x,y) lie inside one of the selection rectangles (polygons) 
    610659    def isPointSelected(self, x,y): 
Note: See TracChangeset for help on using the changeset viewer.