def __init__(self, fetcher, parent=None): NulogBaseFragmentView.__init__(self, fetcher) self.info_area = InfoArea(self.parent()) self.colsort_actions = [] self.colsort_menu = QMenu(self) self.hide_count = False self.ready = False
def __init__(self, fetcher, parent): TableView.__init__(self, parent) NulogBaseFragmentView.__init__(self, fetcher) # Disable edition self.setEditTriggers(QAbstractItemView.NoEditTriggers) # Define the callback when headers are clicked (sorting function) self.connect(self.header, SIGNAL('sectionPressed(int)'), self.sortView) self.header.setSortIndicatorShown(True)
def updateData(self, result): if not NulogBaseFragmentView.updateData(self, result): return False for row in xrange(len(self.data)): if self.result['args'].has_key('start'): self.my_model.setHeaderData(row, Qt.Vertical, QVariant('%d' % (self.result['args']['start'] + row + 1))) # TODO: this function si buggy, please debug it and use it! #self.setPaddings() stretch_index = None # shows a symbol to know if this is the sorted column if self.result['args'].has_key('sortby') and self.result['args'].has_key('sort'): col_no = 0 for col, name in enumerate(self.columns): if name in self.stretch_list: stretch_index = col_no if self.result['args']['sortby'] == name: if self.result['args']['sort'] == 'ASC': self.header.setSortIndicator(col_no, Qt.AscendingOrder) else: self.header.setSortIndicator(col_no, Qt.DescendingOrder) col_no += 1 self.header.setResizeMode(QHeaderView.ResizeToContents) # Resize sections to contents self.header.resizeSections(QHeaderView.ResizeToContents) # Resize automaticaly if stretch_index != None: self.header.setResizeMode(stretch_index, QHeaderView.Stretch) # Give the control of the size back to the user #self.header.setResizeMode(QHeaderView.Interactive) # Update the context menu of headers self.updateHeadersActions() self.emit(SIGNAL("showButtons"))
def updateData(self, result): if self.is_closed: return if not NulogBaseFragmentView.updateData(self, result): return False if len(self.columns) != len(self.colsort_actions): self.setColsortActions() if self.result['args'].has_key('sortby'): for i, col in enumerate(self.columns): self.colsort_actions[i].setChecked(self.result['args']['sortby'] == col) self.ready = False if self.result['args'].has_key('start') and self.result['args']['start'] == 0 and \ self.chart_type == PIECHART: self.fetcher.count(self.updateData_bis) return True else: self.ready = True return True