Changeset 8455:c80ecd309fc3 in orange


Ignore:
Timestamp:
07/25/11 20:26:13 (3 years ago)
Author:
Noughmad <Noughmad@…>
Branch:
default
Convert:
01db6c5453a51b409bfa6f0c3b9d3448719ea178
Message:

Arrange legend items into multiple rows the legend would be too wide for the graph

Location:
orange/OrangeWidgets/plot
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • orange/OrangeWidgets/plot/owlegend.py

    r8453 r8455  
    5454        self.animated = True         
    5555        self._center_point = None 
     56        self.max_width = 0 
    5657 
    5758    def clear(self): 
     
    7475        elif self._orientation == Qt.Horizontal: 
    7576            x = 0 
     77            y = 0 
    7678            for item in self.items: 
    77                 self.box_rect = self.box_rect | item.boundingRect().translated(x, 0) 
     79                if self.max_width and x and x + item.boundingRect().width() > self.max_width: 
     80                    x = 0 
     81                    y = y + item.boundingRect().height() 
     82                self.box_rect = self.box_rect | item.boundingRect().translated(x, y) 
    7883                x = x + item.boundingRect().width() 
    7984         
     
    8691                y = y + item.boundingRect().height() 
    8792        elif self._orientation == Qt.Horizontal: 
     93            x = 0 
     94            y = 0 
    8895            for item in self.items: 
     96                if self.max_width and x and x + item.boundingRect().width() > self.max_width: 
     97                    x = 0 
     98                    y = y + item.boundingRect().height() 
    8999                self.move_item(item, x, y) 
    90100                x = x + item.boundingRect().width() 
  • orange/OrangeWidgets/plot/owplot.py

    r8446 r8455  
    959959            rect.setBottom(l.height()) 
    960960        if rect != self._legend_margin: 
    961             self._legend.set_orientation(Qt.Horizontal if rect.top() or rect.bottom() else Qt.Vertical, pos) 
     961            orientation = Qt.Horizontal if rect.top() or rect.bottom() else Qt.Vertical 
     962            if orientation == Qt.Horizontal: 
     963                self._legend.max_width = g.width() 
     964            self._legend.set_orientation(orientation, pos) 
    962965            self._legend_animation = QPropertyAnimation(self, 'legend_margin') 
    963966            self._legend_animation.setStartValue(self._legend_margin) 
Note: See TracChangeset for help on using the changeset viewer.