Esempio n. 1
0
 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)
Esempio n. 2
0
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()