예제 #1
0
 def update_portraits_t_run(self):
     if self.update_all_portraits_t and not self.update_all_portraits_t.isFinished(
     ):
         return
     self.update_all_portraits_t = IThread(i_update_all_portraits,
                                           user=self.user)
     self.update_all_portraits_t.start()
예제 #2
0
 def listen_main_sock_t_run(self):
     """ TODO: offline-handler
     socket.error: [Errno 32] Broken pipe
     """
     # listen the socket (main sock) used in SIPC auth
     self.listen_main_sock_t = IThread(self.listen_sock,
                                       sock=self.user.get_sock(),
                                       data_list=self.server_push_data_list,
                                       signal='recved_server_push_datas()',
                                       debug=True)
     self.listen_main_sock_t.start()
예제 #3
0
    def add_listener_for_conversation_sock(self, conv):
        assert conv.sock != self.user.get_sock()
        conv.listen_thread = IThread(
            self.listen_sock,
            sock=conv.sock,
            data_list=self.conversation_server_push_data_list,
            signal='recved_conversation_server_push_datas()',
            debug=True)
        conv.listen_thread.start()

        conv.keep_conn_busy_thread = PeriodicExecutor(30,
                                                      i_keep_connection_busy,
                                                      user=self.user,
                                                      sock=conv.sock)
        conv.keep_conn_busy_thread.start()
예제 #4
0
 def set_portrait(self, path=None):
     if not path:
         path = self.user.get_portrait_path() or DEFAULT_PORTRAIT_PATH
     elif path and not os.path.exists(path):
         self.download_portrait_t = IThread(i_download_portrait_by_uri,
                                            user=self.user,
                                            uri=self.user.uri,
                                            debug=True)
         self.connect(self.download_portrait_t,
                      QtCore.SIGNAL("thread_finished()"),
                      self.download_portrait_t_finished)
         self.download_portrait_t.start()
     pixmap = QtGui.QPixmap(path)
     width, height = 60, 60
     pixmap = pixmap.scaled(QtCore.QSize(width, height))
     self.portraitLabel.setPixmap(pixmap)
예제 #5
0
    def sipc_auth_t_run(self):
        kill_qthread(self.sipc_auth_t)
        kill_qthread(self.sipc_auth_t_killer)

        self.sipc_auth_t = IThread(i_sipc_auth,
                                   user=self.user,
                                   verification=self.verification,
                                   debug=True)
        self.sipc_auth_t_killer = IThreadKiller(self.sipc_auth_t, timeout=10)

        self.connect(self.sipc_auth_t, QtCore.SIGNAL("thread_finished()"),
                     self.sipc_auth_t_finished)
        self.connect(self.sipc_auth_t_killer, QtCore.SIGNAL('kill_qthread()'),
                     self.kill_sipc_auth_t)

        self.sipc_auth_t.start()
        self.sipc_auth_t_killer.start()
예제 #6
0
    def download_sys_config_t_run(self):
        kill_qthread(self.download_sys_config_t)
        kill_qthread(self.download_sys_config_t_killer)

        self.download_sys_config_t = IThread(i_download_sys_config,
                                             user=self.user,
                                             debug=True)
        self.download_sys_config_t_killer = IThreadKiller(
            self.download_sys_config_t, timeout=20)

        self.connect(self.download_sys_config_t,
                     QtCore.SIGNAL("thread_finished()"),
                     self.download_sys_config_t_finished)
        self.connect(self.download_sys_config_t_killer,
                     QtCore.SIGNAL("kill_qthread()"),
                     self.kill_download_sys_config_t)

        self.download_sys_config_t.start()
        self.download_sys_config_t_killer.start()
예제 #7
0
    def _consume_invitation(self, res_obj, sock):
        assert (sock is not None)
        """ TODO: ignore invitation will prevent from hide detecting. """
        i_send_ack(res_obj, sock)

        attr = res_obj.headers.get_field_value
        from_uri = attr("F")

        conv = Conversation(from_uri)
        convs = self.user.get_conversations()
        convs[from_uri] = conv
        get_sock_for_recv_msg_thread = IThread(get_sock_for_recv_msg,
                                               user=self.user,
                                               res_obj=res_obj,
                                               debug=True)
        conv.get_sock_for_recv_msg_thread = get_sock_for_recv_msg_thread
        self.connect(conv.get_sock_for_recv_msg_thread,
                     QtCore.SIGNAL("thread_finished()"),
                     self.recv_msg_t_finished)
        conv.get_sock_for_recv_msg_thread.start()
예제 #8
0
    def send_msg(self, msg):
        my_name = self.user.get_display_name()

        cur_idx = self.convTab.currentIndex()
        to_uri = str(self.convTab.tabBar().tabData(cur_idx).toString())
        assert to_uri not in (None, "")

        convs = self.user.get_conversations()
        if to_uri not in convs:
            conv = Conversation(to_uri)
            convs[to_uri] = conv
        else:
            conv = convs[to_uri]

        send_msg_thread = IThread(i_send_msg, user = self.user, to_uri = to_uri, msg = msg)
        conv.send_msg_thread = send_msg_thread
        self.connect(send_msg_thread, QtCore.SIGNAL("thread_finished()"), self.send_msg_t_finished)
        send_msg_thread.start()

        chat_history_model = self.blah.contact_list_win.chat_history[to_uri]
        self.append_to_chat_history(chat_history_model, my_name, msg, MYSELF_LOG_TPL)