def _configurarGui(self): self._stackedLayout = StackedWidgetConsole() self.addTela(self._stackedLayout) #Tela inicial self._mostrarTelaInicial()
class TelaConversa(PainelConsole): conversasNaoVisualizadas = pyqtSignal(Usuario, int) def __init__(self, servico, parent=None): super().__init__(parent) self._configurarGui() self._servico = servico self._servico.dadosUsuarioAtualizado.connect(self.atualizarUsuario) self._servico.conversaRecebida.connect(self._receberConversa) def _receberConversa(self, de, inf): usuario = Usuario(nome=NOME_DEFAULT, ip=de) if not self.temConversaUsuario(usuario): telaConversaUsuario = TelaConversaUsuario(self._servico, usuario) telaConversaUsuario.conversasNaoVisualizadas.connect(self._emitirConversasNaoVisualizadas) telaConversaUsuario.receberTexto(inf) self._stackedLayout.addTela(telaConversaUsuario) def _configurarGui(self): self._stackedLayout = StackedWidgetConsole() self.addTela(self._stackedLayout) #Tela inicial self._mostrarTelaInicial() def _mostrarTelaInicial(self): painel = PainelConsole() painel.addTela(SpacerConsole(2)) painel.addTela(LabelConsole("<- Selecione o Usuário")) self._stackedLayout.addTela(painel) @pyqtSlot(Usuario, int) def _emitirConversasNaoVisualizadas(self, usuario, num): self.conversasNaoVisualizadas.emit(usuario, num) def atualizarUsuario(self, usuario): ind = self.indexTelaConversa(usuario) if ind != -1: self._stackedLayout.getChild(ind).atualizarUsuario(usuario) def setUsuario(self, usuario): ind = self.indexTelaConversa(usuario) if ind == -1: t = TelaConversaUsuario(self._servico, usuario) t.conversasNaoVisualizadas.connect(self._emitirConversasNaoVisualizadas) self._stackedLayout.addTela(t) ind = self._stackedLayout.numTelas()-1 else: self.atualizarUsuario(usuario) self._stackedLayout.setVisivel(ind) self._stackedLayout.getChild(ind).atualizarNumConversasNaoVisualizadas(0) def indexTelaConversa(self, usuario): for i in range(1, self._stackedLayout.numTelas()): if self._stackedLayout.getChild(i).getUsuario().getIP() == usuario.getIP(): return i return -1 def temConversaUsuario(self, usuario): return self.indexTelaConversa(usuario) != -1