Beispiel #1
0
    def _save(self):
        """
        Create the save dialog and handle saving/sending the settings.
        """

        flat_settings = {}
        disallowed = []
        for i, widget in enumerate(self._widgets):
            if widget is not None:
                values, allowed = widget.get_values()
                flat_settings.update(values)
                disallowed.extend([(i, key)
                                   for key, value in allowed.iteritems()
                                   if not value])

        # Create the save dialog.
        dialog, groundCheckBox, vehicleCheckBoxes = self._create_save_dialog(
            flat_settings, disallowed)

        # Show the dialog and handle the input.
        result = dialog.exec_()
        if result != QtGui.QDialog.Accepted:
            return

        # Set up the saving or settings sender.
        self._new_settings = flat_settings

        vehicle_settings = {}
        keys = sorted(self._new_settings.keys())
        count = 0
        for vehicle in xrange(1, self._controller.rf_sensor.number_of_sensors +
                              1):
            if vehicleCheckBoxes[vehicle].isChecked():
                vehicle_settings[vehicle] = keys
                count += len(keys)

        if not vehicle_settings:
            if groundCheckBox.isChecked():
                self._set_ground_station_settings()

            return

        configuration = {
            "name": "setting",
            "clear_message": "setting_clear",
            "add_callback": self._make_add_setting_packet,
            "done_message": "setting_done",
            "ack_message": "setting_ack",
            "max_retries": self._settings.get("settings_max_retries"),
            "retry_interval": self._settings.get("settings_retry_interval")
        }
        sender = Control_Panel_RF_Sensor_Sender(self._controller,
                                                vehicle_settings, count,
                                                configuration)

        if groundCheckBox.isChecked():
            sender.connect_accepted(self._set_ground_station_settings)

        sender.start()
    def _save(self):
        """
        Create the save dialog and handle saving/sending the settings.
        """

        flat_settings = {}
        disallowed = []
        for i, widget in enumerate(self._widgets):
            if widget is not None:
                values, allowed = widget.get_values()
                flat_settings.update(values)
                disallowed.extend([(i, key) for key, value in allowed.iteritems() if not value])

        # Create the save dialog.
        dialog, groundCheckBox, vehicleCheckBoxes = self._create_save_dialog(flat_settings, disallowed)

        # Show the dialog and handle the input.
        result = dialog.exec_()
        if result != QtGui.QDialog.Accepted:
            return

        # Set up the saving or settings sender.
        self._new_settings = flat_settings

        vehicle_settings = {}
        keys = sorted(self._new_settings.keys())
        count = 0
        for vehicle in xrange(1, self._controller.rf_sensor.number_of_sensors + 1):
            if vehicleCheckBoxes[vehicle].isChecked():
                vehicle_settings[vehicle] = keys
                count += len(keys)

        if not vehicle_settings:
            if groundCheckBox.isChecked():
                self._set_ground_station_settings()

            return

        configuration = {
            "name": "setting",
            "clear_message": "setting_clear",
            "add_callback": self._make_add_setting_packet,
            "done_message": "setting_done",
            "ack_message": "setting_ack",
            "max_retries": self._settings.get("settings_max_retries"),
            "retry_interval": self._settings.get("settings_retry_interval")
        }
        sender = Control_Panel_RF_Sensor_Sender(self._controller, vehicle_settings,
                                                count, configuration)

        if groundCheckBox.isChecked():
            sender.connect_accepted(self._set_ground_station_settings)

        sender.start()