Show
Ignore:
Timestamp:
11/15/09 11:02:29 (14 years ago)
Author:
arnonym
Message:

Some more gui-niceness.

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • trunk/libffado/support/mixer-qt4/ffado/widgets/matrixmixer.py

    r1708 r1709  
     1#!/usr/bin/env python 
     2# coding=utf8 
    13# 
    24# Copyright (C) 2009 by Arnold Krille 
     
    6668        self.connect(self, QtCore.SIGNAL("valueChanged(int)"), self.internalValueChanged) 
    6769 
     70        self.setSmall(False) 
     71 
    6872        self.bgcolors = ColorForNumber() 
    6973        self.bgcolors.addColor(             0.0, QtGui.QColor(  0,   0,   0)) 
     
    129133        color = self.bgcolors.getColor(v) 
    130134        p.fillRect(rect, color) 
     135 
     136        if self.small: 
     137            return 
     138 
    131139        if color.valueF() < 0.6: 
    132140            p.setPen(QtGui.QColor(255, 255, 255)) 
     
    137145            lv = 20 * math.log10(v * 1.0 / math.pow(2,14)) 
    138146            #log.debug("new value is %g dB" % lv) 
    139         p.drawText(rect, Qt.Qt.AlignCenter, "%.2g dB" % lv) 
     147        text = "%.2g dB" % lv 
     148        if v == 0: 
     149            text = "-ꝏ dB" 
     150        p.drawText(rect, Qt.Qt.AlignCenter, QtCore.QString.fromUtf8(text)) 
    140151 
    141152    def internalValueChanged(self, value): 
     
    148159        self.update() 
    149160 
     161    def setSmall(self, small): 
     162        self.small = small 
     163        if small: 
     164            self.setMinimumSize(10, 10) 
     165        else: 
     166            fontmetrics = self.fontMetrics() 
     167            self.setMinimumSize(fontmetrics.boundingRect("-0.0 dB").size()*1.1) 
     168        self.update() 
    150169 
    151170 
     
    156175        self.number = number 
    157176        if name is not "": 
    158             name = " (%s)" % name 
    159         self.lbl = QtGui.QLabel("Ch. %i\n%s" % (self.number, name), self) 
     177            name = "\n(%s)" % name 
     178        self.name = name 
     179        self.lbl = QtGui.QLabel(self) 
    160180        layout.addWidget(self.lbl, 0, 0, 1, 2) 
    161  
    162         #self.btnHide = QtGui.QToolButton(self) 
    163         #self.btnHide.setText("Hide") 
    164         #self.btnHide.setCheckable(True) 
    165         #self.connect(self.btnHide, QtCore.SIGNAL("clicked(bool)"), self.hideChannel) 
    166         #layout.addWidget(self.btnHide, 1, 0) 
     181        self.hideChannel(False) 
     182 
     183        self.setContextMenuPolicy(Qt.Qt.ActionsContextMenu) 
     184 
     185        action = QtGui.QAction("Make this channel small", self) 
     186        action.setCheckable(True) 
     187        self.connect(action, QtCore.SIGNAL("triggered(bool)"), self.hideChannel) 
     188        self.addAction(action) 
    167189 
    168190    def hideChannel(self, hide): 
     191        if hide: 
     192            self.lbl.setText("Ch. %i" % self.number); 
     193        else: 
     194            self.lbl.setText("Ch. %i%s" % (self.number, self.name)) 
    169195        self.emit(QtCore.SIGNAL("hide"), self.number, hide) 
     196        self.update() 
    170197 
    171198 
     
    221248        for x in range(len(self.items)): 
    222249            for y in range(len(self.items[x])): 
    223                 self.items[x][y].setHidden
     250                self.items[x][y].setSmall
    224251                        (x in self.hiddenRows) 
    225252                        | (y in self.hiddenCols) 
     
    246273 
    247274# 
    248 # vim: et ts=4 sw=4 
     275# vim: et ts=4 sw=4 fileencoding=utf8