From ffb97dfaeb19f9db1c14bef8a92d9ce83adb13fb Mon Sep 17 00:00:00 2001 From: Anton Khirnov Date: Fri, 28 Aug 2009 10:38:30 +0200 Subject: mpclient: encapsulate audio outputs in a class. --- nephilim/settings_wg.py | 30 ++++++++++-------------------- 1 file changed, 10 insertions(+), 20 deletions(-) (limited to 'nephilim/settings_wg.py') diff --git a/nephilim/settings_wg.py b/nephilim/settings_wg.py index 145114a..f1c07d1 100644 --- a/nephilim/settings_wg.py +++ b/nephilim/settings_wg.py @@ -41,7 +41,6 @@ class SettingsWidget(QtGui.QWidget): pass_txt = None lib_txt = None update = None - outputs = None xfade = None def __init__(self, mpclient): @@ -59,27 +58,18 @@ class SettingsWidget(QtGui.QWidget): self.update = QtGui.QPushButton('Update MPD database') self.update.clicked.connect(self.update_db) - self.outputs = QtGui.QGroupBox('Audio outputs') - self.outputs.setLayout(QtGui.QVBoxLayout()) - class Output(QtGui.QCheckBox): - id = None - mpclient = None - def __init__(self, text, mpclient, id): - QtGui.QCheckBox.__init__(self, text) - self.mpclient = mpclient - self.id = id - self.stateChanged.connect(self.change_state) - - def change_state(self, state): - self.mpclient.set_output(self.id, state) - - for output in self.mpclient.outputs(): - box = Output(output['outputname'], self.mpclient, output['outputid']) - if output['outputenabled'] == '1': + outputs = QtGui.QGroupBox('Audio outputs') + outputs.setLayout(QtGui.QVBoxLayout()) + + for output in self.mpclient.outputs: + box = QtGui.QCheckBox(output.name, self) + if output.state: box.setChecked(True) else: box.setChecked(False) - self.outputs.layout().addWidget(box) + box.clicked.connect(output.set_state) + output.state_changed.connect(box.setChecked) + outputs.layout().addWidget(box) self.xfade = QtGui.QSpinBox() self.xfade.setValue(int(self.mpclient.status()['xfade'])) @@ -91,7 +81,7 @@ class SettingsWidget(QtGui.QWidget): self._add_widget(self.pass_txt, 'Password', 'Password') self._add_widget(self.lib_txt, 'Music library', 'Path to music library') self.layout().addWidget(self.update) - self.layout().addWidget(self.outputs) + self.layout().addWidget(outputs) self._add_widget(self.xfade, 'Crossfade', 'Set crossfade between songs (in seconds).') def save_settings(self): -- cgit v1.2.3