Beispiel #1
0
class Qt4_LogBarBrick(BlissWidget):
    """
    Descript. :
    """
    COLORS = {logging.NOTSET: 'lightgrey', logging.DEBUG: 'darkgreen', 
              logging.INFO: 'darkblue', logging.WARNING: 'orange', 
              logging.ERROR: 'red', logging.CRITICAL: 'black' }

    def __init__(self, *args):
        """
        Descript. :
        """
        BlissWidget.__init__(self, *args)

        self.addProperty('fixedHeight', 'integer', '-1')

        self._status_bar_widget = LogBarWidget(self)
        _main_hlayout = QtGui.QHBoxLayout(self)
        _main_hlayout.addWidget(self._status_bar_widget)
        _main_hlayout.setSpacing(0)
        _main_hlayout.setContentsMargins(0, 0, 0, 0)
        self.setLayout(_main_hlayout)

        self.setSizePolicy(QtGui.QSizePolicy.MinimumExpanding, 
                           QtGui.QSizePolicy.Fixed)

        Qt4_GUILogHandler.GUILogHandler().register(self)

    def propertyChanged(self, property_name, old_value, new_value):
        """
        Descript. :
        Args.     :
        Return.   : 
        """
        if property_name == 'fixedHeight':
            if new_value > -1:
                self._status_bar_widget.set_fixed_height(new_value)

    def customEvent(self, event):
        """
        Descript. :
        """
        if self.isRunning():
            self.append_log_record(event.record)

    def append_log_record(self, record):
        """
        Descript. :
        """
        if record.name == 'user_level_log':
            msg = record.getMessage()#.replace('\n',' ').strip()
            level = record.getLevel()
            color = Qt4_LogBarBrick.COLORS[level]
            date_time = "%s %s" % (record.getDate(), record.getTime())

            self._status_bar_widget.text_edit.\
                append("<font color=%s>[%s]" % (color, date_time) + \
                           " "*5 + "<b>%s</b></font>" % msg)

            if level == logging.WARNING or level == logging.ERROR:
                self._status_bar_widget.toggle_background_color()

    appendLogRecord = append_log_record