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/gui/tests/test_toolgrid.py

    r11142 r11177  
    1 from PyQt4.QtGui import QAction 
     1from PyQt4.QtGui import QAction, QToolButton 
    22 
    33from .. import test 
     
    88    def test_tool_grid(self): 
    99        w = ToolGrid() 
     10 
     11        w.show() 
     12        self.app.processEvents() 
     13 
     14        def buttonsOrderedVisual(): 
     15            # Process layout events so the buttons have right positions 
     16            self.app.processEvents() 
     17            buttons = w.findChildren(QToolButton) 
     18            return sorted(buttons, key=lambda b: (b.y(), b.x())) 
     19 
     20        def buttonsOrderedLogical(): 
     21            return map(w.buttonForAction, w.actions()) 
     22 
     23        def assertOrdered(): 
     24            self.assertSequenceEqual(buttonsOrderedLogical(), 
     25                                     buttonsOrderedVisual()) 
     26 
    1027        action_a = QAction("A", w) 
    1128        action_b = QAction("B", w) 
    1229        action_c = QAction("C", w) 
    1330        action_d = QAction("D", w) 
     31 
    1432        w.addAction(action_b) 
    1533        w.insertAction(0, action_a) 
    16         w.addAction(action_c) 
     34        self.assertSequenceEqual(w.actions(), 
     35                                 [action_a, action_b]) 
     36        assertOrdered() 
     37 
    1738        w.addAction(action_d) 
     39        w.insertAction(action_d, action_c) 
     40 
     41        self.assertSequenceEqual(w.actions(), 
     42                                 [action_a, action_b, action_c, action_d]) 
     43        assertOrdered() 
     44 
    1845        w.removeAction(action_c) 
     46        self.assertSequenceEqual(w.actions(), 
     47                                 [action_a, action_b, action_d]) 
     48 
     49        assertOrdered() 
     50 
    1951        w.removeAction(action_a) 
     52        self.assertSequenceEqual(w.actions(), 
     53                                 [action_b, action_d]) 
     54 
     55        assertOrdered() 
     56 
    2057        w.insertAction(0, action_a) 
     58        self.assertSequenceEqual(w.actions(), 
     59                                 [action_a, action_b, action_d]) 
     60 
     61        assertOrdered() 
     62 
    2163        w.setColumnCount(2) 
     64        self.assertSequenceEqual(w.actions(), 
     65                                 [action_a, action_b, action_d]) 
     66 
     67        assertOrdered() 
     68 
    2269        w.insertAction(2, action_c) 
     70        self.assertSequenceEqual(w.actions(), 
     71                                 [action_a, action_b, action_c, action_d]) 
     72        assertOrdered() 
     73 
     74        w.clear() 
     75        # test no 'before' action edge case 
     76        w.insertAction(0, action_a) 
     77        self.assertIs(action_a, w.actions()[0]) 
     78        w.insertAction(1, action_b) 
     79        self.assertSequenceEqual(w.actions(), 
     80                                 [action_a, action_b]) 
     81 
     82        w.clear() 
     83        w.setActions([action_a, action_b, action_c, action_d]) 
     84        self.assertSequenceEqual(w.actions(), 
     85                                 [action_a, action_b, action_c, action_d]) 
     86        assertOrdered() 
    2387 
    2488        triggered_actions = [] 
Note: See TracChangeset for help on using the changeset viewer.