Exemple #1
0
class ControlPanel(QtGui.QGroupBox):
    def __init__(self, parent, event_handler=DummyEventHandler()):
        # super(ControlPanel, self).__init__(parent)
        QtGui.QGroupBox.__init__(self, parent)
        self.parent = parent
        self.setTitle("Control")
        control_frame_FrameGrid = QtGui.QGridLayout()
        control_frame_FrameGrid.setSpacing(1)
        self.control_panel_widget = QtGui.QWidget(self)
        self.control_panel_widget.setGeometry(QtCore.QRect(10, 30, 151, 74))
        self.connect_button = PushButton("Connect", tip_msg=CONNECT_BTN_HELP)
        self.reflash_button = PushButton("Reflash", tip_msg=REFLASH_BTN_HELP)
        self.discover_button = PushButton("Discover",
                                          tip_msg=DISCOVER_BTN_HELP)
        self.config_button = PushButton("Config", tip_msg=CONFIG_BTN_HELP)
        self.resp_time_button = PushButton(
            "RespTime", tip_msg=CHECK_RESPONSE_TIME_BTN_HELP)
        self.set_pin_button = PushButton("Set PIN", tip_msg=SET_PIN_BTN_HELP)
        self.setLayout(control_frame_FrameGrid)
        self.autoconnect_checkbox = CheckBox("Autoconnect",
                                             tip_msg=AUTOCONNECT_CHECKBOX_HELP)

        control_frame_FrameGrid.addWidget(self.connect_button, 0, 0)
        control_frame_FrameGrid.addWidget(self.reflash_button, 0, 1)
        control_frame_FrameGrid.addWidget(self.discover_button, 1, 0)
        control_frame_FrameGrid.addWidget(self.config_button, 1, 1)
        control_frame_FrameGrid.addWidget(self.set_pin_button, 2, 0)
        control_frame_FrameGrid.addWidget(self.resp_time_button, 2, 1)
        control_frame_FrameGrid.addWidget(self.autoconnect_checkbox, 3, 0, 1,
                                          2)

        # connect buttons
        self.connect_button.clicked.connect(event_handler.connect_button_slot)
        self.discover_button.clicked.connect(
            event_handler.discover_emu_bt_slot)
        self.reflash_button.clicked.connect(event_handler.reflash_button_slot)
        self.config_button.clicked.connect(event_handler.config_button_slot)
        self.resp_time_button.clicked.connect(
            event_handler.estimate_response_time_slot)
        self.set_pin_button.clicked.connect(event_handler.set_pin_button_slot)
        self.event_handler = event_handler
        self.event_handler.add_event(self.set_connected)
        self.event_handler.add_event(self.set_disconnected)

    def set_connected(self):
        self.connect_button.setText("disconnect")
        self.connect_button.set_green_style_sheet()

    def set_disconnected(self):
        self.connect_button.setText("Connect")
        self.connect_button.set_default_style_sheet()
Exemple #2
0
class BanksPanel(QtGui.QGroupBox):
    def __init__(self, parent, event_handler=DummyEventHandler()):
        super(BanksPanel, self).__init__(parent)
        frame_grid = QtGui.QGridLayout()
        frame_grid.setSpacing(1)

        self.event_handler = event_handler
        self.bank_name_max_len = 25

        self.setTitle("Banks")
        # self.bank1_wear_lcd = LcdDisplay(tip_msg=LCD_WEAR_DISPLAY_TIP)
        # self.bank2_wear_lcd = LcdDisplay(tip_msg=LCD_WEAR_DISPLAY_TIP)
        # self.bank3_wear_lcd = LcdDisplay(tip_msg=LCD_WEAR_DISPLAY_TIP)
        settings_icon = QtGui.QIcon(SETTINGS_ICON)

        self.bank1_settings_btn = PushButton(tip_msg=BANK_SETTINGS_TIP)
        self.bank1_settings_btn.setIcon(settings_icon)

        self.bank2_settings_btn = PushButton(tip_msg=BANK_SETTINGS_TIP)
        self.bank2_settings_btn.setIcon(settings_icon)

        self.bank3_settings_btn = PushButton(tip_msg=BANK_SETTINGS_TIP)
        self.bank3_settings_btn.setIcon(settings_icon)

        self.auto_download_checkbox = CheckBox(
            "auto download", tip_msg=AUTO_DOWNLOAD_CHECKBOX_TIP)

        self.bank1pushButton = PushButton("bank 1", tip_msg=BANK_TIP)
        self.bank2pushButton = PushButton("bank 2", tip_msg=BANK_TIP)
        self.bank3pushButton = PushButton("bank 3", tip_msg=BANK_TIP)

        self.bank_name_line_edit = LineEdit(
            tip_msg="Provide new bank name. ENTER accepts",
            focus_event=event_handler.bank_name_line_edit_event,
            focus_out_event=event_handler.bank_name_line_focus_out_event)

        frame_grid.addWidget(self.bank1pushButton, 0, 0)
        frame_grid.addWidget(self.bank2pushButton, 1, 0)
        frame_grid.addWidget(self.bank3pushButton, 2, 0)
        frame_grid.addWidget(self.bank1_settings_btn, 0, 2)
        frame_grid.addWidget(self.bank2_settings_btn, 1, 2)
        frame_grid.addWidget(self.bank3_settings_btn, 2, 2)
        frame_grid.addWidget(self.bank_name_line_edit, 3, 0, 1, 3)
        frame_grid.addWidget(self.auto_download_checkbox, 4, 0)
        self.setLayout(frame_grid)

        self.bank1pushButton.clicked.connect(event_handler.bank1set_slot)
        self.bank2pushButton.clicked.connect(event_handler.bank2set_slot)
        self.bank3pushButton.clicked.connect(event_handler.bank3set_slot)

        self.bank_name_line_edit.returnPressed.connect(
            self.bank_name_line_edit_slot)

    def update_tip_msg_for_bank(self, bank_button_no, bank_name, msg):
        """
        Update tip message for button {1, 2, 3}
        :param bank_button_no:
        :param msg:
        :return:
        """
        bank_button = [
            self.bank1pushButton, self.bank2pushButton, self.bank3pushButton
        ][bank_button_no]
        bank_button.update_tip_msg(msg, wrap=False)
        if len(bank_name) > 14:
            bank_name = bank_name[0:11] + '...'
        bank_button.setText(bank_name)

    def put_bank_name(self, name):
        self.bank_name_line_edit.setText(name[0:self.bank_name_max_len])

    def get_bank_name_text(self):
        bank_name = str(self.bank_name_line_edit.text())
        return bank_name[0:self.bank_name_max_len]

    def set_default_style_sheet_for_buttons(self):
        self.bank1pushButton.set_default_style_sheet()
        self.bank2pushButton.set_default_style_sheet()
        self.bank3pushButton.set_default_style_sheet()

    def bank_name_line_edit_slot(self):
        bank_name = self.bank_name_line_edit.text()[0:self.bank_name_max_len]
        self.bank_name_line_edit.setText(bank_name)
        self.event_handler.set_bank_name()
        self.bank_name_line_edit.clearFocus()

    def disable_active_button(self):
        to_signal(self.bank1pushButton.set_default_style_sheet)()
        to_signal(self.bank2pushButton.set_default_style_sheet)()
        to_signal(self.bank3pushButton.set_default_style_sheet)()

    def set_active_button(self, bank_no):
        to_signal(self.bank1pushButton.set_default_style_sheet)()
        to_signal(self.bank2pushButton.set_default_style_sheet)()
        to_signal(self.bank3pushButton.set_default_style_sheet)()
        set_green_style = \
            [
                self.bank1pushButton.set_green_style_sheet,
                self.bank2pushButton.set_green_style_sheet,
                self.bank3pushButton.set_green_style_sheet,
            ][bank_no]
        to_signal(set_green_style).emit()