Changeset 8754:90129b0afaf7 in orange


Ignore:
Timestamp:
08/24/11 10:21:07 (3 years ago)
Author:
matejd <matejd@…>
Branch:
default
Convert:
7e1fd40c22370c62323fc4fbfc18b2a61fe7ec4a
Message:

Disabled panning and scaling for sphereviz/linproj3d

Location:
orange/OrangeWidgets
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • orange/OrangeWidgets/Visualize Qt/OWLinProj3DPlot.py

    r8751 r8754  
    301301    def replot(self): 
    302302        pass 
     303 
     304    # Mouse events overrides 
     305 
     306    def mousePressEvent(self, event): 
     307        pos = self.mouse_pos = event.pos() 
     308        buttons = event.buttons() 
     309 
     310        if buttons & Qt.LeftButton: 
     311            if self.show_legend and self.legend.contains(pos.x(), pos.y()): 
     312                self.state = PlotState.DRAGGING_LEGEND 
     313                self.new_selection = None 
     314            else: 
     315                if self.state == PlotState.SELECTING: 
     316                    return 
     317                for selection in self.selections: 
     318                    if selection.contains(pos.x(), pos.y()): 
     319                        self.state = PlotState.PANNING 
     320                        self.dragged_selection = selection 
     321                        return 
     322                self.state = PlotState.SELECTING 
     323                if self.selection_type == SelectionType.RECTANGLE or\ 
     324                   self.selection_type == SelectionType.ZOOM: 
     325                    self.new_selection = RectangleSelection(self, [pos.x(), pos.y()]) 
     326        elif buttons & Qt.RightButton: 
     327            self.zoom_out() 
     328            self.updateGL() 
     329        elif buttons & Qt.MiddleButton: 
     330            self.state = PlotState.ROTATING 
     331            self.selections = [] 
     332            self.new_selection = None 
     333 
     334    def mouseMoveEvent(self, event): 
     335        pos = event.pos() 
     336 
     337        self._check_mouseover(pos) 
     338 
     339        if self.state == PlotState.IDLE: 
     340            if any(sel.contains(pos.x(), pos.y()) for sel in self.selections) or\ 
     341               (self.show_legend and self.legend.contains(pos.x(), pos.y())): 
     342                self.setCursor(Qt.OpenHandCursor) 
     343            else: 
     344                self.setCursor(Qt.ArrowCursor) 
     345            self.mouse_pos = pos 
     346            return 
     347 
     348        dx = pos.x() - self.mouse_pos.x() 
     349        dy = pos.y() - self.mouse_pos.y() 
     350 
     351        if self.invert_mouse_x: 
     352            dx = -dx 
     353 
     354        if self.state == PlotState.SELECTING and self.new_selection != None: 
     355            self.new_selection.current_vertex = [pos.x(), pos.y()] 
     356        elif self.state == PlotState.DRAGGING_LEGEND: 
     357            self.legend.move(dx, dy) 
     358        elif self.state == PlotState.ROTATING: 
     359            self.yaw += dx / (self.rotation_factor*self.width()) 
     360            self.pitch += dy / (self.rotation_factor*self.height()) 
     361            self.update_camera() 
     362        elif self.state == PlotState.PANNING: 
     363            self.dragged_selection.move(dx, dy) 
     364 
     365        self.mouse_pos = pos 
     366        self.updateGL() 
     367 
     368    def mouseReleaseEvent(self, event): 
     369        if self.state == PlotState.SELECTING and self.new_selection == None: 
     370            self.new_selection = PolygonSelection(self, [event.pos().x(), event.pos().y()]) 
     371            return 
     372 
     373        if self.state == PlotState.SELECTING: 
     374            if self.selection_type == SelectionType.POLYGON: 
     375                last = self.new_selection.add_current_vertex() 
     376                if last: 
     377                    self.selections.append(self.new_selection) 
     378                    self.selection_changed_callback() if self.selection_changed_callback else None 
     379                    self.state = PlotState.IDLE 
     380                    self.new_selection = None 
     381            else: 
     382                if self.new_selection.valid(): 
     383                    self.selections.append(self.new_selection) 
     384                    self.updateGL() 
     385                    self.selection_changed_callback() if self.selection_changed_callback else None 
     386        elif self.state == PlotState.PANNING: 
     387            self.selection_updated_callback() if self.selection_updated_callback else None 
     388 
     389        if not (self.state == PlotState.SELECTING and self.selection_type == SelectionType.POLYGON): 
     390            self.state = PlotState.IDLE 
     391            self.tooltip_fbo_dirty = True 
     392            self.new_selection = None 
     393 
     394        self.updateGL() 
  • orange/OrangeWidgets/plot/owplot3d.py

    r8748 r8754  
    12221222            self.new_selection = None 
    12231223 
    1224     def mouseMoveEvent(self, event): 
    1225         pos = event.pos() 
    1226  
     1224    def _check_mouseover(self, pos): 
    12271225        if self.mouseover_callback != None and self.state == PlotState.IDLE and\ 
    12281226            (not self.show_legend or not self.legend.contains(pos.x(), pos.y())): 
     
    12451243            if value < 4294967295: 
    12461244                self.mouseover_callback(value) 
     1245 
     1246    def mouseMoveEvent(self, event): 
     1247        pos = event.pos() 
     1248 
     1249        self._check_mouseover(pos) 
    12471250 
    12481251        if self.state == PlotState.IDLE: 
Note: See TracChangeset for help on using the changeset viewer.