Ejemplo n.º 1
0
    def _configurarGui(self):
        layout = QVBoxLayout()
        
        self._lblUsuario = QLabel()
        self._editReceber = EditReceber()
        self._lblSituacao = LabelSituacao(None)
        self._editEnviar = EditEnviar()

        layout.addWidget(self._lblUsuario)
        layout.addWidget(self._editReceber)
        layout.addWidget(self._lblSituacao)
        layout.addWidget(self._editEnviar)
        self.setLayout(layout)
Ejemplo n.º 2
0
class BarraConversaUsuario(QWidget):
    def __init__(self, servico, usuario, parent=None):
        super().__init__(parent)
        self._configurarGui()
        
        self._numConversasNaoVisualizadas = 0
        self._servico = servico
        self._usuario = None

        self.setUsuario(usuario)

        self._editEnviar.situacaoModificada.connect(self._enviarSituacao)
        self._editEnviar.textoDigitado.connect(self._enviarConversa)

    def _configurarGui(self):
        layout = QVBoxLayout()
        
        self._lblUsuario = QLabel()
        self._editReceber = EditReceber()
        self._lblSituacao = LabelSituacao(None)
        self._editEnviar = EditEnviar()

        layout.addWidget(self._lblUsuario)
        layout.addWidget(self._editReceber)
        layout.addWidget(self._lblSituacao)
        layout.addWidget(self._editEnviar)
        self.setLayout(layout)
        
    def _enviarSituacao(self, sit):
        self._servico.enviarInformacaoConversa(sit)

    def _enviarConversa(self, conv):
        self._servico.enviarConversa(conv)
        self._editReceber.receberTexto(self._servico.getNome(), conv)

    def atualizarSituacao(self, sit):
        self._lblSituacao.setSituacao(sit)

    def setUsuario(self, usuario):
        """Se o usuário for diferente do atual atualiza o nome do usuário nas 
        conversas recebidas anteriormente."""
        if not self._usuario or self._usuario.getNome() != usuario.getNome():
            nomeAntigo = self._usuario and self._usuario.getNome() or NOME_DEFAULT
            self._editReceber.renomearUsuario(nomeAntigo, usuario.getNome())
            
        self._usuario = usuario
        self._servico.setPara(self._usuario.getIP())
        
        self._lblSituacao.setUsuario(usuario)
        self._lblUsuario.setText(str(usuario))

    def getUsuario(self):
        return self._usuario
    
    def setNumConversasNaoVisualizadas(self, num):
        self._numConversasNaoVisualizadas = num

    def getNumConversasNaoVisualizadas(self):
        return self._numConversasNaoVisualizadas
    
    def receberTexto(self, texto):
        self._editReceber.receberTexto(self._usuario.getNome(), texto)