mirror of
https://gitlab.freedesktop.org/pulseaudio/pulseaudio.git
synced 2025-10-31 22:25:33 -04:00
qpaeq: port to PyQt5
This commit is contained in:
parent
922f08b787
commit
480e0e74f4
1 changed files with 34 additions and 34 deletions
|
|
@ -18,13 +18,13 @@
|
||||||
|
|
||||||
import os,math,sys
|
import os,math,sys
|
||||||
try:
|
try:
|
||||||
import PyQt4,sip
|
import PyQt5,sip
|
||||||
from PyQt4 import QtGui,QtCore
|
from PyQt5 import QtWidgets,QtCore
|
||||||
import dbus.mainloop.qt
|
import dbus.mainloop.qt
|
||||||
import dbus
|
import dbus
|
||||||
except ImportError as e:
|
except ImportError as e:
|
||||||
sys.stderr.write('There was an error importing needed libraries\n'
|
sys.stderr.write('There was an error importing needed libraries\n'
|
||||||
'Make sure you have qt4 and dbus-python installed\n'
|
'Make sure you have qt5 and dbus-python installed\n'
|
||||||
'The error that occured was:\n'
|
'The error that occured was:\n'
|
||||||
'\t%s\n' % (str(e)))
|
'\t%s\n' % (str(e)))
|
||||||
sys.exit(-1)
|
sys.exit(-1)
|
||||||
|
|
@ -62,7 +62,7 @@ def connect():
|
||||||
prop_iface='org.freedesktop.DBus.Properties'
|
prop_iface='org.freedesktop.DBus.Properties'
|
||||||
eq_iface='org.PulseAudio.Ext.Equalizing1.Equalizer'
|
eq_iface='org.PulseAudio.Ext.Equalizing1.Equalizer'
|
||||||
device_iface='org.PulseAudio.Core1.Device'
|
device_iface='org.PulseAudio.Core1.Device'
|
||||||
class QPaeq(QtGui.QWidget):
|
class QPaeq(QtWidgets.QWidget):
|
||||||
manager_path='/org/pulseaudio/equalizing1'
|
manager_path='/org/pulseaudio/equalizing1'
|
||||||
manager_iface='org.PulseAudio.Ext.Equalizing1.Manager'
|
manager_iface='org.PulseAudio.Ext.Equalizing1.Manager'
|
||||||
core_iface='org.PulseAudio.Core1'
|
core_iface='org.PulseAudio.Core1'
|
||||||
|
|
@ -70,7 +70,7 @@ class QPaeq(QtGui.QWidget):
|
||||||
module_name='module-equalizer-sink'
|
module_name='module-equalizer-sink'
|
||||||
|
|
||||||
def __init__(self):
|
def __init__(self):
|
||||||
QtGui.QWidget.__init__(self)
|
QtWidgets.QWidget.__init__(self)
|
||||||
self.setWindowTitle('qpaeq')
|
self.setWindowTitle('qpaeq')
|
||||||
self.slider_widget=None
|
self.slider_widget=None
|
||||||
self.sink_name=None
|
self.sink_name=None
|
||||||
|
|
@ -84,50 +84,50 @@ class QPaeq(QtGui.QWidget):
|
||||||
self.setMinimumSize(self.sizeHint())
|
self.setMinimumSize(self.sizeHint())
|
||||||
|
|
||||||
def create_layout(self):
|
def create_layout(self):
|
||||||
self.main_layout=QtGui.QVBoxLayout()
|
self.main_layout=QtWidgets.QVBoxLayout()
|
||||||
self.setLayout(self.main_layout)
|
self.setLayout(self.main_layout)
|
||||||
toprow_layout=QtGui.QHBoxLayout()
|
toprow_layout=QtWidgets.QHBoxLayout()
|
||||||
sizePolicy = QtGui.QSizePolicy(QtGui.QSizePolicy.Preferred, QtGui.QSizePolicy.Fixed)
|
sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Preferred, QtWidgets.QSizePolicy.Fixed)
|
||||||
sizePolicy.setHorizontalStretch(0)
|
sizePolicy.setHorizontalStretch(0)
|
||||||
sizePolicy.setVerticalStretch(0)
|
sizePolicy.setVerticalStretch(0)
|
||||||
#sizePolicy.setHeightForWidth(self.profile_box.sizePolicy().hasHeightForWidth())
|
#sizePolicy.setHeightForWidth(self.profile_box.sizePolicy().hasHeightForWidth())
|
||||||
|
|
||||||
toprow_layout.addWidget(QtGui.QLabel('Sink'))
|
toprow_layout.addWidget(QtWidgets.QLabel('Sink'))
|
||||||
self.sink_box = QtGui.QComboBox()
|
self.sink_box = QtWidgets.QComboBox()
|
||||||
self.sink_box.setSizePolicy(sizePolicy)
|
self.sink_box.setSizePolicy(sizePolicy)
|
||||||
self.sink_box.setDuplicatesEnabled(False)
|
self.sink_box.setDuplicatesEnabled(False)
|
||||||
self.sink_box.setInsertPolicy(QtGui.QComboBox.InsertAlphabetically)
|
self.sink_box.setInsertPolicy(QtWidgets.QComboBox.InsertAlphabetically)
|
||||||
#self.sink_box.setSizeAdjustPolicy(QtGui.QComboBox.AdjustToContents)
|
#self.sink_box.setSizeAdjustPolicy(QtWidgets.QComboBox.AdjustToContents)
|
||||||
toprow_layout.addWidget(self.sink_box)
|
toprow_layout.addWidget(self.sink_box)
|
||||||
|
|
||||||
toprow_layout.addWidget(QtGui.QLabel('Channel'))
|
toprow_layout.addWidget(QtWidgets.QLabel('Channel'))
|
||||||
self.channel_box = QtGui.QComboBox()
|
self.channel_box = QtWidgets.QComboBox()
|
||||||
self.channel_box.setSizePolicy(sizePolicy)
|
self.channel_box.setSizePolicy(sizePolicy)
|
||||||
toprow_layout.addWidget(self.channel_box)
|
toprow_layout.addWidget(self.channel_box)
|
||||||
|
|
||||||
toprow_layout.addWidget(QtGui.QLabel('Preset'))
|
toprow_layout.addWidget(QtWidgets.QLabel('Preset'))
|
||||||
self.profile_box = QtGui.QComboBox()
|
self.profile_box = QtWidgets.QComboBox()
|
||||||
self.profile_box.setSizePolicy(sizePolicy)
|
self.profile_box.setSizePolicy(sizePolicy)
|
||||||
self.profile_box.setInsertPolicy(QtGui.QComboBox.InsertAlphabetically)
|
self.profile_box.setInsertPolicy(QtWidgets.QComboBox.InsertAlphabetically)
|
||||||
#self.profile_box.setSizeAdjustPolicy(QtGui.QComboBox.AdjustToContents)
|
#self.profile_box.setSizeAdjustPolicy(QtWidgets.QComboBox.AdjustToContents)
|
||||||
toprow_layout.addWidget(self.profile_box)
|
toprow_layout.addWidget(self.profile_box)
|
||||||
|
|
||||||
large_icon_size=self.style().pixelMetric(QtGui.QStyle.PM_LargeIconSize)
|
large_icon_size=self.style().pixelMetric(QtWidgets.QStyle.PM_LargeIconSize)
|
||||||
large_icon_size=QtCore.QSize(large_icon_size,large_icon_size)
|
large_icon_size=QtCore.QSize(large_icon_size,large_icon_size)
|
||||||
save_profile=QtGui.QToolButton()
|
save_profile=QtWidgets.QToolButton()
|
||||||
save_profile.setIcon(self.style().standardIcon(QtGui.QStyle.SP_DriveFDIcon))
|
save_profile.setIcon(self.style().standardIcon(QtWidgets.QStyle.SP_DriveFDIcon))
|
||||||
save_profile.setIconSize(large_icon_size)
|
save_profile.setIconSize(large_icon_size)
|
||||||
save_profile.setToolButtonStyle(QtCore.Qt.ToolButtonIconOnly)
|
save_profile.setToolButtonStyle(QtCore.Qt.ToolButtonIconOnly)
|
||||||
save_profile.clicked.connect(self.save_profile)
|
save_profile.clicked.connect(self.save_profile)
|
||||||
remove_profile=QtGui.QToolButton()
|
remove_profile=QtWidgets.QToolButton()
|
||||||
remove_profile.setIcon(self.style().standardIcon(QtGui.QStyle.SP_TrashIcon))
|
remove_profile.setIcon(self.style().standardIcon(QtWidgets.QStyle.SP_TrashIcon))
|
||||||
remove_profile.setIconSize(large_icon_size)
|
remove_profile.setIconSize(large_icon_size)
|
||||||
remove_profile.setToolButtonStyle(QtCore.Qt.ToolButtonIconOnly)
|
remove_profile.setToolButtonStyle(QtCore.Qt.ToolButtonIconOnly)
|
||||||
remove_profile.clicked.connect(self.remove_profile)
|
remove_profile.clicked.connect(self.remove_profile)
|
||||||
toprow_layout.addWidget(save_profile)
|
toprow_layout.addWidget(save_profile)
|
||||||
toprow_layout.addWidget(remove_profile)
|
toprow_layout.addWidget(remove_profile)
|
||||||
|
|
||||||
reset_button = QtGui.QPushButton('Reset')
|
reset_button = QtWidgets.QPushButton('Reset')
|
||||||
reset_button.clicked.connect(self.reset)
|
reset_button.clicked.connect(self.reset)
|
||||||
toprow_layout.addStretch()
|
toprow_layout.addStretch()
|
||||||
toprow_layout.addWidget(reset_button)
|
toprow_layout.addWidget(reset_button)
|
||||||
|
|
@ -192,11 +192,11 @@ class QPaeq(QtGui.QWidget):
|
||||||
def save_profile(self):
|
def save_profile(self):
|
||||||
#popup dialog box for name
|
#popup dialog box for name
|
||||||
current=self.profile_box.currentIndex()
|
current=self.profile_box.currentIndex()
|
||||||
profile,ok=QtGui.QInputDialog.getItem(self,'Preset Name','Preset',self.profiles,current)
|
profile,ok=QtWidgets.QInputDialog.getItem(self,'Preset Name','Preset',self.profiles,current)
|
||||||
if not ok or profile=='':
|
if not ok or profile=='':
|
||||||
return
|
return
|
||||||
if profile in self.profiles:
|
if profile in self.profiles:
|
||||||
mbox=QtGui.QMessageBox(self)
|
mbox=QtWidgets.QMessageBox(self)
|
||||||
mbox.setText('%s preset already exists'%(profile,))
|
mbox.setText('%s preset already exists'%(profile,))
|
||||||
mbox.setInformativeText('Do you want to save over it?')
|
mbox.setInformativeText('Do you want to save over it?')
|
||||||
mbox.setStandardButtons(mbox.Save|mbox.Discard|mbox.Cancel)
|
mbox.setStandardButtons(mbox.Save|mbox.Discard|mbox.Cancel)
|
||||||
|
|
@ -217,7 +217,7 @@ class QPaeq(QtGui.QWidget):
|
||||||
profile=self.profile_box.itemText(x)
|
profile=self.profile_box.itemText(x)
|
||||||
self.filter_state.load_profile(profile)
|
self.filter_state.load_profile(profile)
|
||||||
def select_channel(self,x):
|
def select_channel(self,x):
|
||||||
self.filter_state.channel = self.channel_box.itemData(x).toPyObject()
|
self.filter_state.channel = self.channel_box.itemData(x)
|
||||||
self._set_profile_name()
|
self._set_profile_name()
|
||||||
self.filter_state.readback()
|
self.filter_state.readback()
|
||||||
|
|
||||||
|
|
@ -295,13 +295,13 @@ class QPaeq(QtGui.QWidget):
|
||||||
self.profile_box.blockSignals(False)
|
self.profile_box.blockSignals(False)
|
||||||
|
|
||||||
|
|
||||||
class SliderArray(QtGui.QWidget):
|
class SliderArray(QtWidgets.QWidget):
|
||||||
def __init__(self,filter_state,parent=None):
|
def __init__(self,filter_state,parent=None):
|
||||||
super(SliderArray,self).__init__(parent)
|
super(SliderArray,self).__init__(parent)
|
||||||
#self.setStyleSheet('padding: 0px; border-width: 0px; margin: 0px;')
|
#self.setStyleSheet('padding: 0px; border-width: 0px; margin: 0px;')
|
||||||
#self.setStyleSheet('font-family: monospace;'+outline%('blue'))
|
#self.setStyleSheet('font-family: monospace;'+outline%('blue'))
|
||||||
self.filter_state=filter_state
|
self.filter_state=filter_state
|
||||||
self.setLayout(QtGui.QHBoxLayout())
|
self.setLayout(QtWidgets.QHBoxLayout())
|
||||||
self.sub_array=None
|
self.sub_array=None
|
||||||
self.set_sub_array(SliderArraySub(self.filter_state))
|
self.set_sub_array(SliderArraySub(self.filter_state))
|
||||||
self.inhibit_resize=0
|
self.inhibit_resize=0
|
||||||
|
|
@ -359,11 +359,11 @@ class SliderArray(QtGui.QWidget):
|
||||||
self.set_sub_array(SliderArraySub(self.filter_state))
|
self.set_sub_array(SliderArraySub(self.filter_state))
|
||||||
self.inhibit_resize-=1
|
self.inhibit_resize-=1
|
||||||
|
|
||||||
class SliderArraySub(QtGui.QWidget):
|
class SliderArraySub(QtWidgets.QWidget):
|
||||||
def __init__(self,filter_state,parent=None):
|
def __init__(self,filter_state,parent=None):
|
||||||
super(SliderArraySub,self).__init__(parent)
|
super(SliderArraySub,self).__init__(parent)
|
||||||
self.filter_state=filter_state
|
self.filter_state=filter_state
|
||||||
self.setLayout(QtGui.QGridLayout())
|
self.setLayout(QtWidgets.QGridLayout())
|
||||||
self.slider=[None]*len(self.filter_state.frequencies)
|
self.slider=[None]*len(self.filter_state.frequencies)
|
||||||
self.label=[None]*len(self.slider)
|
self.label=[None]*len(self.slider)
|
||||||
#self.setStyleSheet('padding: 0px; border-width: 0px; margin: 0px;')
|
#self.setStyleSheet('padding: 0px; border-width: 0px; margin: 0px;')
|
||||||
|
|
@ -375,7 +375,7 @@ class SliderArraySub(QtGui.QWidget):
|
||||||
self.layout().addWidget(label,1,c,qt.AlignHCenter)
|
self.layout().addWidget(label,1,c,qt.AlignHCenter)
|
||||||
self.layout().setColumnMinimumWidth(c,max(label.sizeHint().width(),slider.sizeHint().width()))
|
self.layout().setColumnMinimumWidth(c,max(label.sizeHint().width(),slider.sizeHint().width()))
|
||||||
def create_slider(slider_label):
|
def create_slider(slider_label):
|
||||||
slider=QtGui.QSlider(QtCore.Qt.Vertical,self)
|
slider=QtWidgets.QSlider(QtCore.Qt.Vertical,self)
|
||||||
label=SliderLabel(slider_label,filter_state,self)
|
label=SliderLabel(slider_label,filter_state,self)
|
||||||
slider.setRange(-1000,2000)
|
slider.setRange(-1000,2000)
|
||||||
slider.setSingleStep(1)
|
slider.setSingleStep(1)
|
||||||
|
|
@ -461,7 +461,7 @@ class SliderArraySub(QtGui.QWidget):
|
||||||
return int((x-1.0)*1000)
|
return int((x-1.0)*1000)
|
||||||
outline='border-width: 1px; border-style: solid; border-color: %s;'
|
outline='border-width: 1px; border-style: solid; border-color: %s;'
|
||||||
|
|
||||||
class SliderLabel(QtGui.QLabel):
|
class SliderLabel(QtWidgets.QLabel):
|
||||||
clicked=QtCore.pyqtSignal()
|
clicked=QtCore.pyqtSignal()
|
||||||
def __init__(self,label_text,filter_state,parent=None):
|
def __init__(self,label_text,filter_state,parent=None):
|
||||||
super(SliderLabel,self).__init__(parent)
|
super(SliderLabel,self).__init__(parent)
|
||||||
|
|
@ -566,7 +566,7 @@ def subdivide(xs, t_points):
|
||||||
|
|
||||||
def main():
|
def main():
|
||||||
dbus.mainloop.qt.DBusQtMainLoop(set_as_default=True)
|
dbus.mainloop.qt.DBusQtMainLoop(set_as_default=True)
|
||||||
app=QtGui.QApplication(sys.argv)
|
app=QtWidgets.QApplication(sys.argv)
|
||||||
qpaeq_main=QPaeq()
|
qpaeq_main=QPaeq()
|
||||||
qpaeq_main.show()
|
qpaeq_main.show()
|
||||||
sys.exit(app.exec_())
|
sys.exit(app.exec_())
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue