Ignore:
Timestamp:
11/07/12 18:30:30 (18 months ago)
Author:
Ales Erjavec <ales.erjavec@…>
Branch:
default
Message:

Cleanup of the ToolGrid code and interface.

Moved the add/remove action code to actionEvent handler, also added
more tests.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • Orange/OrangeCanvas/application/widgettoolbox.py

    r11133 r11177  
    9494        return self.__actionRole 
    9595 
    96     def insertAction(self, index, action): 
    97         rval = ToolGrid.insertAction(self, index, action) 
    98         button = self.buttonForAction(action) 
    99         button.installEventFilter(self.__dragListener) 
    100         return rval 
    101  
    102     def removeAction(self, action): 
    103         button = self.buttonForAction(action) 
    104         button.removeEventFilter(self.__dragListener) 
    105         ToolGrid.removeAction(self, action) 
     96    def actionEvent(self, event): 
     97        if event.type() == QEvent.ActionAdded: 
     98            # Creates and inserts the button instance. 
     99            ToolGrid.actionEvent(self, event) 
     100 
     101            button = self.buttonForAction(event.action()) 
     102            button.installEventFilter(self.__dragListener) 
     103            return 
     104        elif event.type() == QEvent.ActionRemoved: 
     105            button = self.buttonForAction(event.action()) 
     106            button.removeEventFilter(self.__dragListener) 
     107 
     108            # Removes the button 
     109            ToolGrid.actionEvent(self, event) 
     110            return 
     111        else: 
     112            ToolGrid.actionEvent(self, event) 
    106113 
    107114    def __initFromModel(self, model, rootIndex): 
     
    148155        item = self.__model.itemForIndex(parent) 
    149156        if item == self.__rootItem: 
    150             for i in range(start - 1, end): 
    151                 action = self._gridSlots[i].action 
     157            for i in reversed(range(start - 1, end)): 
     158                action = self.actions()[i] 
    152159                self.removeAction(action) 
    153160 
     
    164171        ) 
    165172        drag = QDrag(button) 
    166         drag.setPixmap(icon.pixmap(self.iconSize)) 
     173        drag.setPixmap(icon.pixmap(self.iconSize())) 
    167174        drag.setMimeData(drag_data) 
    168175        drag.exec_(Qt.CopyAction) 
Note: See TracChangeset for help on using the changeset viewer.