def data(self, index, role): """ Set data """ result = None if index.isValid(): if role == Qt.DisplayRole: if index.column() == COL_NUM: if int(self.stored_data[index.row()]["ihm_id"]) > 1: result = str( (int(self.stored_data[index.row()]["ihm_id"]) - 1)) else: result = self.stored_data[index.row()]['row-pos'] if index.column() == COL_TIMESTAMP: result = self.stored_data[index.row()]['timestamp'] if index.column() == COL_EVENT: result = self.stored_data[index.row()]['level'].upper() if index.column() == COL_FROM: result = self.stored_data[index.row()]['from-component'] if index.column() == COL_TEXT: short_msg = self.stored_data[index.row()]['short-msg'] if sys.version_info > (3, ): # python 3 support try: result = short_msg.splitlines()[0] except Exception as e: print( 'error, resume view: unable to split result: %s' % e) result = '' else: try: if len(short_msg): result = short_msg.decode( 'utf8').splitlines()[0] else: result = '' except UnicodeDecodeError as e: result = short_msg.splitlines()[0] except Exception as e: print( 'error, resume view: failed to split result: %s' % str(e)) result = '' elif role == Qt.ForegroundRole: if not 'color-text' in self.stored_data[index.row()]: return None data_col = self.stored_data[index.row()]['color-text'] result = QColor(0, 0, 0) result.setNamedColor(data_col) elif role == Qt.BackgroundColorRole: if not 'color' in self.stored_data[index.row()]: return None data_col = self.stored_data[index.row()]['color'] result = QColor(0, 0, 0) result.setNamedColor(data_col) elif role == Qt.FontRole: if index.column() == COL_TEXT: result = QFont() if 'bold' in self.stored_data[index.row()]: data_col = self.stored_data[index.row()]['bold'] result.setBold(data_col) if 'italic' in self.stored_data[index.row()]: data_col = self.stored_data[index.row()]['italic'] result.setItalic(data_col) elif role == Qt.DecorationRole: if index.column() == COL_TEXT: if not 'level' in self.stored_data[index.row()]: return None data_col = self.stored_data[index.row()]['level'] if data_col == 'timer-started': result = QIcon(":/timer.png") if data_col == 'timer-stopped': result = QIcon(":/timer_ok.png") if data_col == 'timer-exceeded': result = QIcon(":/timer_ko.png") if data_col == 'received': result = QIcon(":/arrow_left.png") if data_col == 'send': result = QIcon(":/arrow_right.png") if data_col == 'step-failed': result = QIcon(":/steps.png") return result
def data(self, index, role): """ Handle data """ result = None if index.isValid(): if role == Qt.DisplayRole: if index.column() == COL_NUM: if self.stored_data[index.row()]['ihm_id'] > 0: result = str(self.stored_data[index.row()]['ihm_id'] - 1) else: result = str(index.row()) if index.column() == COL_TIMESTAMP: result = self.stored_data[index.row()]['timestamp'] if index.column() == COL_EVENT: result = self.stored_data[index.row()]['level'].upper() if index.column() == COL_FROM: result = self.stored_data[index.row()]['from-component'] if index.column() == COL_FROM_LEVEL: result = self.stored_data[index.row()]['from-level'] if index.column() == COL_TO_LEVEL: result = self.stored_data[index.row()]['to-level'] if index.column() == COL_TEXT: short_msg = self.stored_data[index.row()]['short-msg'] multiline = False if 'multiline' in self.stored_data[index.row()]: multiline = self.stored_data[index.row()]['multiline'] if multiline: if sys.version_info > (3, ): # py3 support result = short_msg else: try: result = short_msg.decode('utf8') except Exception as e: result = short_msg else: if not len(short_msg): result = '' else: if sys.version_info > (3, ): # py3 support result = short_msg.splitlines()[0] else: try: result = short_msg.decode( 'utf8').splitlines()[0] except Exception as e: result = short_msg.splitlines()[0] elif role == Qt.ForegroundRole: if not 'color-text' in self.stored_data[index.row()]: return None data_col = self.stored_data[index.row()]['color-text'] result = QColor(0, 0, 0) result.setNamedColor(data_col) elif role == Qt.BackgroundColorRole: if not 'color' in self.stored_data[index.row()]: return None data_col = self.stored_data[index.row()]['color'] result = QColor(0, 0, 0) result.setNamedColor(data_col) elif role == Qt.FontRole: if index.column() == COL_TEXT: result = QFont() if 'bold' in self.stored_data[index.row()]: data_col = self.stored_data[index.row()]['bold'] if isinstance(data_col, bool): result.setBold(data_col) if 'italic' in self.stored_data[index.row()]: data_col = self.stored_data[index.row()]['italic'] if isinstance(data_col, bool): result.setItalic(data_col) elif role == Qt.DecorationRole: if index.column() == COL_TEXT: if not 'level' in self.stored_data[index.row()]: return None data_col = self.stored_data[index.row()]['level'] if data_col == 'timer-started': result = QIcon(":/timer.png") if data_col == 'timer-stopped': result = QIcon(":/timer_ok.png") if data_col == 'timer-exceeded': result = QIcon(":/timer_ko.png") if data_col == 'received': result = QIcon(":/arrow_left.png") if data_col == 'send': result = QIcon(":/arrow_right.png") if data_col == 'step-failed': result = QIcon(":/steps.png") return result