Changeset 8234:1e7ec1393a20 in orange


Ignore:
Timestamp:
08/19/11 11:39:11 (3 years ago)
Author:
Noughmad <Noughmad@…>
Branch:
default
Convert:
d26ff505ac29a61e8310ae262ff221b57e631c51
Message:

Update legend before the layout; removes extra space when the plot is first created

Location:
orange/OrangeWidgets
Files:
3 edited

Legend:

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

    r8215 r8234  
    7575        self.value_line_curves = [] 
    7676        self.potentialsCurve = None 
     77 
     78        self.warn_unused_attributes = True 
    7779 
    7880    def setData(self, data, subsetData = None, **args): 
  • orange/OrangeWidgets/plot/owlegend.py

    r8222 r8234  
    109109        self.orientation = orientation 
    110110         
    111         if orientation == Qt.Vertical: 
     111        if orientation == Qt.Vertical or True: ## TODO: Implement a horizontal version 
    112112            height = self.label_items[0].boundingRect().height() 
    113113            total_height = height * max(5, len(self.label_items)) 
     
    128128            return QRectF(10, 0, self.gradient_width + max([item.boundingRect().width() for item in self.label_items]), self.label_items[0].boundingRect().height() * max(5, len(self.label_items))) 
    129129        else: 
    130             return QRectF(0, 0, ) 
     130            return QRectF() 
    131131         
    132132    def paint(self, painter, option, widget): 
  • orange/OrangeWidgets/plot/owplot.py

    r8228 r8234  
    352352        self.disable_animations_threshold = 5000 
    353353     #   self.setInteractive(False) 
     354 
     355        self.warn_unused_attributes = False 
    354356         
    355357        self._bounds_cache = {} 
     
    886888            graph_rect.setTop(graph_rect.top() + self.title_margin) 
    887889         
    888         self._legend_outside_area = QRectF(graph_rect) 
    889         self._legend.max_size = self._legend_outside_area.size() 
    890          
    891890        if self.show_legend: 
    892             self._legend.show() 
    893             if not self._legend_moved: 
    894                 ## If the legend hasn't been moved it, we set it outside, in the top right corner 
    895                 w = self._legend.boundingRect().width() 
    896                 self._legend_margin = QRectF(0, 0, w, 0) 
    897                 self._legend.setPos(graph_rect.topRight() + QPointF(-w, 0)) 
    898                 self._legend.set_floating(False) 
    899                 self._legend.set_orientation(Qt.Vertical) 
    900              
    901             ## Adjust for possible external legend: 
     891            self._legend_outside_area = QRectF(graph_rect) 
     892            self._legend.max_size = self._legend_outside_area.size() 
    902893            r = self._legend_margin 
    903894            graph_rect.adjust(r.left(), r.top(), -r.right(), -r.bottom()) 
    904         else: 
    905             self._legend.hide() 
    906              
    907         self._legend.update() 
     895             
     896        self._legend.update_items() 
    908897             
    909898        axis_rects = dict() 
     
    974963            Otherwise, all their labels are updated.  
    975964        """ 
    976         if not zoom_only: 
     965        if self.warn_unused_attributes and not zoom_only: 
    977966            self._legend.remove_category(UNUSED_ATTRIBUTES_STR) 
    978967             
     
    1006995                else: 
    1007996                    item.hide() 
    1008                     self._legend.add_item(UNUSED_ATTRIBUTES_STR, item.title, None) 
     997                    if self.warn_unused_attributes: 
     998                        self._legend.add_item(UNUSED_ATTRIBUTES_STR, item.title, None) 
    1009999            item.zoom_transform = self._zoom_transform 
    10101000            item.update(zoom_only) 
     
    10301020         
    10311021    def update_legend(self): 
     1022        if self.show_legend and not self._legend_moved: 
     1023            ## If the legend hasn't been moved it, we set it outside, in the top right corner 
     1024            m = self.graph_margin 
     1025            r = QRectF(self.contentsRect()) 
     1026            r.adjust(m, m, -m, -m) 
     1027            self._legend.max_size = r.size() 
     1028            self._legend.update_items() 
     1029            w = self._legend.boundingRect().width() 
     1030            self._legend_margin = QRectF(0, 0, w, 0) 
     1031            self._legend.set_floating(False) 
     1032            self._legend.set_orientation(Qt.Vertical) 
     1033            self._legend.setPos(QRectF(self.contentsRect()).topRight() + QPointF(-w, 0)) 
     1034             
     1035         
    10321036        if (self._legend.isVisible() == self.show_legend): 
    10331037            return 
     
    10981102    def resizeEvent(self, event): 
    10991103        self.replot() 
    1100          
     1104 
    11011105    def mousePressEvent(self, event): 
    11021106        self.static_click = True 
     
    15401544                self.animate_plot = True 
    15411545                self.antialias_lines = True 
    1542             qDebug(repr(self.animate_points)) 
    15431546         
    15441547    def animate(self, target, prop_name, end_val, duration = None, start_val = None): 
     
    15511554            if start_val is not None: 
    15521555                a.setStartValue(start_val) 
    1553             qDebug('Animating %s from %s to %s' % (prop_name, repr(a.startValue()), repr(a.endValue()))) 
    15541556            if duration: 
    15551557                a.setDuration(duration) 
     
    16221624         
    16231625    def set_zoom_rect(self, rect): 
    1624     qDebug('Set zoom rect to ' + repr(rect)) 
    16251626        self._zoom_rect = rect 
    16261627        self._zoom_transform = self.transform_from_rects(rect, self.graph_area) 
Note: See TracChangeset for help on using the changeset viewer.