def serverInitialized(self,started,server_id=None):
        if started:
            #BlissWidget.setInstanceUserId(BlissWidget.INSTANCE_USERID_UNKNOWN)
            BlissWidget.setInstanceRole(BlissWidget.INSTANCE_ROLE_SERVER)
            BlissWidget.setInstanceMode(BlissWidget.INSTANCE_MODE_MASTER)

            self.initName(server_id[0])
            self.haveControl(True,gui_only=True)
            #self.giveControl.setChecked(False)
            #self.allowTimeoutControl.setChecked(False)
        else:
            #BlissWidget.setInstanceRole(BlissWidget.INSTANCE_ROLE_SERVERSTARTING)
            #BlissWidget.setInstanceMode(BlissWidget.INSTANCE_MODE_MASTER)
            msg_dialog=QMessageBox("mxCuBE",\
                "Couldn't start the multiple instances server!",\
                QMessageBox.Critical,QMessageBox.Ok,QMessageBox.NoButton,\
                QMessageBox.NoButton,self) # Application name (mxCuBE) is hardwired!!!
            msg_dialog.setButtonText(QMessageBox.Ok,"Quit")
            s=self.font().pointSize()
            f=msg_dialog.font()
            f.setPointSize(s)
            msg_dialog.setFont(f)
            msg_dialog.updateGeometry()
            msg_dialog.exec_loop()
            os._exit(1)
Exemple #2
0
    def serverInitialized(self, started, server_id=None):
        if started:
            #BlissWidget.setInstanceUserId(BlissWidget.INSTANCE_USERID_UNKNOWN)
            BlissWidget.setInstanceRole(BlissWidget.INSTANCE_ROLE_SERVER)
            BlissWidget.setInstanceMode(BlissWidget.INSTANCE_MODE_MASTER)

            self.initName(server_id[0])
            self.haveControl(True, gui_only=True)
            #self.giveControl.setChecked(False)
            #self.allowTimeoutControl.setChecked(False)
        else:
            #BlissWidget.setInstanceRole(BlissWidget.INSTANCE_ROLE_SERVERSTARTING)
            #BlissWidget.setInstanceMode(BlissWidget.INSTANCE_MODE_MASTER)
            msg_dialog=QMessageBox("mxCuBE",\
                "Couldn't start the multiple instances server!",\
                QMessageBox.Critical,QMessageBox.Ok,QMessageBox.NoButton,\
                QMessageBox.NoButton,self) # Application name (mxCuBE) is hardwired!!!
            msg_dialog.setButtonText(QMessageBox.Ok, "Quit")
            s = self.font().pointSize()
            f = msg_dialog.font()
            f.setPointSize(s)
            msg_dialog.setFont(f)
            msg_dialog.updateGeometry()
            msg_dialog.exec_loop()
            os._exit(1)
 def serverClosed(self,server_id):
     self.listBox.clear()
     self.connections={}
     BlissWidget.setInstanceRole(BlissWidget.INSTANCE_ROLE_CLIENTCONNECTING)
     BlissWidget.setInstanceMode(BlissWidget.INSTANCE_MODE_SLAVE)
     msg_event=MsgDialogEvent(QMessageBox.Warning,\
         "The server application closed the connection!",\
         self.font().pointSize())
     qApp.postEvent(self,msg_event)
     QTimer.singleShot(InstanceListBrick.RECONNECT_TIME,self.reconnectToServer)
    def clientInitialized(self,connected,server_id=None,my_nickname=None,quiet=False):
        if connected is None:
            BlissWidget.setInstanceRole(BlissWidget.INSTANCE_ROLE_CLIENTCONNECTING)
            BlissWidget.setInstanceMode(BlissWidget.INSTANCE_MODE_SLAVE)
        elif not connected:
            if not quiet:
                msg_event=MsgDialogEvent(QMessageBox.Warning,\
                    "Couldn't connect to the server application!",\
                    self.font().pointSize())
                qApp.postEvent(self,msg_event)
                
            QTimer.singleShot(InstanceListBrick.RECONNECT_TIME,self.reconnectToServer)
        else:
            BlissWidget.setInstanceRole(BlissWidget.INSTANCE_ROLE_CLIENT)
            BlissWidget.setInstanceMode(BlissWidget.INSTANCE_MODE_SLAVE)

            server_print=self.instanceServer.idPrettyPrint(server_id)

            if self.clientIcon is None:
                item=QListBoxText(self.listBox,server_print)
            else:
                item=QListBoxPixmap(self.listBox,self.serverIcon,server_print)
            self.nickname.setText(my_nickname)
            self.connections[server_id[0]]=(item,server_id[1])
            item.setSelectable(False)
            self.haveControl(False,gui_only=True)
            self.initName(my_nickname)
            #self.giveControl.setChecked(False)

            # workaround for the remote access problem
            # (have to disable video display when DC is running)
            camera_brick = None

            for w in qt.QApplication.allWidgets():
                if isinstance(w, BaseComponents.BlissWidget):
                    if "CameraBrick" in str(w.__class__):
                        camera_brick = w
                        camera_brick.installEventFilter(self)
                        break

            # find the video brick, make sure it is hidden when collecting data
            # and that it is shown again when DC is finished
            def disable_video(w=camera_brick):
                w.disable_update()
            self.__disable_video=disable_video
            def enable_video(w=camera_brick):
                w.enable_update()
            self.__enable_video=enable_video
            dispatcher.connect(self.__disable_video, "collect_started")
            dispatcher.connect(self.__enable_video, "collect_finished")

            msg_event=MsgDialogEvent(QMessageBox.Information,\
                "Successfully connected to the server application.",\
                self.font().pointSize())
            qApp.postEvent(self,msg_event)
Exemple #5
0
 def serverClosed(self, server_id):
     self.listBox.clear()
     self.connections = {}
     BlissWidget.setInstanceRole(BlissWidget.INSTANCE_ROLE_CLIENTCONNECTING)
     BlissWidget.setInstanceMode(BlissWidget.INSTANCE_MODE_SLAVE)
     msg_event=MsgDialogEvent(QMessageBox.Warning,\
         "The server application closed the connection!",\
         self.font().pointSize())
     qApp.postEvent(self, msg_event)
     QTimer.singleShot(InstanceListBrick.RECONNECT_TIME,
                       self.reconnectToServer)
Exemple #6
0
    def clientInitialized(self,
                          connected,
                          server_id=None,
                          my_nickname=None,
                          quiet=False):
        if connected is None:
            BlissWidget.setInstanceRole(
                BlissWidget.INSTANCE_ROLE_CLIENTCONNECTING)
            BlissWidget.setInstanceMode(BlissWidget.INSTANCE_MODE_SLAVE)
        elif not connected:
            if not quiet:
                msg_event=MsgDialogEvent(QMessageBox.Warning,\
                    "Couldn't connect to the server application!",\
                    self.font().pointSize())
                qApp.postEvent(self, msg_event)

            QTimer.singleShot(InstanceListBrick.RECONNECT_TIME,
                              self.reconnectToServer)
        else:
            BlissWidget.setInstanceRole(BlissWidget.INSTANCE_ROLE_CLIENT)
            BlissWidget.setInstanceMode(BlissWidget.INSTANCE_MODE_SLAVE)

            server_print = self.instanceServer.idPrettyPrint(server_id)

            if self.clientIcon is None:
                item = QListBoxText(self.listBox, server_print)
            else:
                item = QListBoxPixmap(self.listBox, self.serverIcon,
                                      server_print)
            self.nickname.setText(my_nickname)
            self.connections[server_id[0]] = (item, server_id[1])
            item.setSelectable(False)
            self.haveControl(False, gui_only=True)
            self.initName(my_nickname)
            #self.giveControl.setChecked(False)

            # workaround for the remote access problem
            # (have to disable video display when DC is running)
            camera_brick = None

            for w in qt.QApplication.allWidgets():
                if isinstance(w, BaseComponents.BlissWidget):
                    if "CameraBrick" in str(w.__class__):
                        camera_brick = w
                        camera_brick.installEventFilter(self)
                        break

            # find the video brick, make sure it is hidden when collecting data
            # and that it is shown again when DC is finished
            def disable_video(w=camera_brick):
                w.disable_update()

            self.__disable_video = disable_video

            def enable_video(w=camera_brick):
                w.enable_update()

            self.__enable_video = enable_video
            dispatcher.connect(self.__disable_video, "collect_started")
            dispatcher.connect(self.__enable_video, "collect_finished")

            msg_event=MsgDialogEvent(QMessageBox.Information,\
                "Successfully connected to the server application.",\
                self.font().pointSize())
            qApp.postEvent(self, msg_event)