def __init__ (self, parent = None): QtGui.QDialog.__init__ (self, parent) self.ui = Ui_AdminDialog () self.ui.setupUi (self) self.ui.infoLabel.hide() self.ui.pwdEdit.setFocus() vkb = VirtualKeyboard(self,self.ui.pwdEdit) vkb.setMinimumSize(600,300) self.layout().addWidget(vkb) # update playPauseBtn if QtGui.qApp.server.connected: self.onServerConnected() else: self.onServerDisconnected() try: self.onServerStatusChanged(['state'], QtGui.qApp.server.status()) except ServerInterfaceError: pass QtGui.qApp.server.sigStatusChanged.connect( \ self.onServerStatusChanged) QtGui.qApp.server.sigConnected.connect( \ self.onServerConnected) QtGui.qApp.server.sigDisconnected.connect( \ self.onServerDisconnected) self.resize(-1, -1)
class AdminDialog(QtGui.QDialog): def __init__ (self, parent = None): QtGui.QDialog.__init__ (self, parent) self.ui = Ui_AdminDialog () self.ui.setupUi (self) self.ui.infoLabel.hide() self.ui.pwdEdit.setFocus() vkb = VirtualKeyboard(self,self.ui.pwdEdit) vkb.setMinimumSize(600,300) self.layout().addWidget(vkb) # update playPauseBtn if QtGui.qApp.server.connected: self.onServerConnected() else: self.onServerDisconnected() try: self.onServerStatusChanged(['state'], QtGui.qApp.server.status()) except ServerInterfaceError: pass QtGui.qApp.server.sigStatusChanged.connect( \ self.onServerStatusChanged) QtGui.qApp.server.sigConnected.connect( \ self.onServerConnected) QtGui.qApp.server.sigDisconnected.connect( \ self.onServerDisconnected) self.resize(-1, -1) def checkPwd(self): settings = Settings() if self.ui.pwdEdit.text() == settings.value("adminPassword"): return True else: self.ui.pwdEdit.clear() self.ui.infoLabel.setText("Invalid password - please try again:") self.ui.infoLabel.show() self.ui.pwdEdit.setFocus() return False def leaveFullscreen(self): if self.checkPwd(): self.parent().parent().leaveFullscreen() self.close() def playPause(self): if self.checkPwd(): try: QtGui.qApp.server.playPause() except ServerInterfaceError: return def onServerStatusChanged(self, changeList, status): if 'state' in changeList: if status['state'] == 'play': self.ui.playPauseBtn.setText("Pause &playback") else: self.ui.playPauseBtn.setText("Start &playback") if 'volume' in changeList: self.ui.volumeSlider.setValue(int(status['volume'])) def onServerConnected(self): self.ui.playPauseBtn.setEnabled(True) self.ui.nextBtn.setEnabled(True) self.ui.clearBtn.setEnabled(True) self.ui.volumeSlider.setEnabled(True) volume = int(QtGui.qApp.server.status()['volume']) self.ui.volumeSlider.setValue(volume) def onServerDisconnected(self): self.ui.playPauseBtn.setEnabled(False) self.ui.nextBtn.setEnabled(False) self.ui.clearBtn.setEnabled(False) self.ui.volumeSlider.setEnabled(False) def changeVolume(self, value): if self.checkPwd(): try: volume = int(self.ui.volumeSlider.sliderPosition()) QtGui.qApp.server.setvol(volume) except ServerInterfaceError: return else: oldVolume = int(QtGui.qApp.server.status()['volume']) self.ui.volumeSlider.setValue(oldVolume) def nextTrack(self): if self.checkPwd(): try: QtGui.qApp.server.next() except ServerInterfaceError: return def clearPlaylist(self): # Clears playlist, except currently playing track if self.checkPwd(): try: QtGui.qApp.server.clearExceptCurrent() except ServerInterfaceError: return def settings (self): if self.checkPwd(): dialog = settingsDialog.SettingsDialog(self) dialog.exec_() def quitApp(self): if self.checkPwd(): QtGui.qApp.quit() self.close() def cancelDialog(self): self.close()