Browse Source

Fix meter resize causing unwanted green/blue bars to be seen

tags/v0.9.0
falkTX 13 years ago
parent
commit
225f6aab73
2 changed files with 32 additions and 30 deletions
  1. +30
    -28
      src/digitalpeakmeter.py
  2. +2
    -2
      src/jackmeter.py

+ 30
- 28
src/digitalpeakmeter.py View File

@@ -52,6 +52,35 @@ class DigitalPeakMeter(QWidget):
def sizeHint(self):
return QSize(self.m_width, self.m_height)

def checkSizes(self):
self.m_width = self.width()
self.m_height = self.height()
self.m_sizeMeter = 0

if (self.m_orientation == self.HORIZONTAL):
self.m_gradientMeter.setFinalStop(self.m_width, 0)
if (self.m_channels > 0):
self.m_sizeMeter = self.m_height/self.m_channels

elif (self.m_orientation == self.VERTICAL):
self.m_gradientMeter.setFinalStop(0, self.m_height)
if (self.m_channels > 0):
self.m_sizeMeter = self.m_width/self.m_channels

self.update()

def displayMeter(self, meter_n, level):
if (meter_n < 0 or meter_n > self.m_channels):
qCritical("DigitalPeakMeter::displayMeter(%i, %f) - Invalid meter number", meter_n, level)
return

if (level < 0.0):
level = -level
if (level > 1.0):
level = 1.0

self.m_channels_data[meter_n-1] = level

def setChannels(self, channels):
self.m_channels = channels
self.m_channels_data = []
@@ -106,33 +135,6 @@ class DigitalPeakMeter(QWidget):
value = 5
self.m_smoothMultiplier = value

def displayMeter(self, meter_n, level):
if (meter_n < 0 or meter_n > self.m_channels):
qCritical("DigitalPeakMeter::displayMeter(%i, %f) - Invalid meter number", meter_n, level)
return

if (level < 0.0):
level = -level
if (level > 1.0):
level = 1.0

self.m_channels_data[meter_n-1] = level

def checkSizes(self):
self.m_width = self.width()
self.m_height = self.height()
self.m_sizeMeter = 0

if (self.m_orientation == self.HORIZONTAL):
self.m_gradientMeter.setFinalStop(self.m_width, 0)
if (self.m_channels > 0):
self.m_sizeMeter = self.m_height/self.m_channels

elif (self.m_orientation == self.VERTICAL):
self.m_gradientMeter.setFinalStop(0, self.m_height)
if (self.m_channels > 0):
self.m_sizeMeter = self.m_width/self.m_channels

def paintEvent(self, event):
painter = QPainter(self)

@@ -222,5 +224,5 @@ class DigitalPeakMeter(QWidget):
painter.drawLine(1, lsmall-(lsmall/1.04), lfull, lsmall-(lsmall/1.04))

def resizeEvent(self, event):
QTimer.singleShot(0, self.checkSizes)
self.checkSizes()
QWidget.resizeEvent(self, event)

+ 2
- 2
src/jackmeter.py View File

@@ -83,8 +83,8 @@ class MeterW(DigitalPeakMeter):
self.setOrientation(self.VERTICAL)
self.setSmoothRelease(1)

self.displayMeter(1, x_port1)
self.displayMeter(2, x_port2)
self.displayMeter(1, 0.0)
self.displayMeter(2, 0.0)

self.setRefreshRate(25)
self.m_peakTimerId = self.startTimer(50)


Loading…
Cancel
Save