Ignore:
Timestamp:
10/23/13 14:48:34 (6 months ago)
Author:
Ales Erjavec <ales.erjavec@…>
Branch:
default
Message:

Fixed 'Show meta attributes' save/restore when switching tabs.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • Orange/OrangeWidgets/Data/OWDataTable.py

    r11743 r11744  
    420420        self.id2table = {}  # key: widget id, value: table 
    421421        self.table2id = {}  # key: table, value: widget id 
    422         self.connect(self.tabs, SIGNAL("currentChanged(QWidget*)"), self.tabClicked) 
    423          
     422        self.connect(self.tabs, SIGNAL("currentChanged(int)"), 
     423                     self.onCurrentTabChanged) 
     424 
    424425        self.selectionChangedFlag = False 
    425          
    426426 
    427427    def createColorDialog(self): 
     
    691691        #header.setSortIndicator(index, order) 
    692692 
    693     def tabClicked(self, qTableInstance): 
    694         """Updates the info box and showMetas checkbox when a tab is clicked. 
     693    def onCurrentTabChanged(self, index): 
    695694        """ 
    696         id = self.table2id.get(qTableInstance,None) 
    697         self.setInfo(self.data.get(id,None)) 
    698         show_col = self.showMetas.get(id,None) 
    699         if show_col: 
     695        Updates the info box and showMetas checkbox when a tab is clicked. 
     696        """ 
     697        if index == -1: 
     698            self.setInfo(None) 
     699            return 
     700 
     701        tableview = self.tabs.widget(index) 
     702        id = self.table2id.get(tableview, None) 
     703        self.setInfo(self.data.get(id, None)) 
     704        show_col = self.showMetas.get(id, None) 
     705        if show_col is not None: 
    700706            self.cbShowMeta.setChecked(show_col[0]) 
    701             self.cbShowMeta.setEnabled(len(show_col[1])>0) 
     707            self.cbShowMeta.setEnabled(len(show_col[1]) > 0) 
    702708        self.updateSelection() 
    703709 
     
    705711        table = self.tabs.currentWidget() 
    706712        id = self.table2id.get(table, None) 
    707         if self.showMetas.has_key(id): 
    708             show,col = self.showMetas[id] 
    709             self.showMetas[id] = (not show,col) 
    710         if show: 
    711             for c in col: 
    712                 table.hideColumn(c) 
    713         else: 
    714             for c in col: 
    715                 table.showColumn(c) 
    716                 table.resizeColumnToContents(c) 
     713        if id in self.showMetas: 
     714            _, meta_cols = self.showMetas[id] 
     715            self.showMetas[id] = (self.showMeta, meta_cols) 
     716            for c in meta_cols: 
     717                table.setColumnHidden(c, not self.showMeta) 
    717718 
    718719    def drawAttributeLabels(self, table): 
Note: See TracChangeset for help on using the changeset viewer.