def show_settings(window) -> None: """Shows the settings dialog and allows the user the change deck specific settings. Settings are not saved until OK is clicked.""" ui = window.ui main_window = window deck_id = _deck_id(ui) settings = SettingsDialog(window) dimmers[deck_id].stop() settings.ui.buttonfeedback.addItem("Disabled") settings.ui.buttonfeedback.addItem("Enabled") if api.get_feedback_enabled(deck_id) == "Enabled": settings.ui.buttonfeedback.setCurrentIndex(1) else: settings.ui.buttonfeedback.setCurrentIndex(0) settings.ui.buttonfeedback.currentTextChanged.connect( partial(update_feedback_enabled, ui)) location = os.path.join(os.path.dirname(os.path.abspath(__file__)), "ok.png") settings.ui.removeButton.clicked.connect( api.set_default_custom_image_for_feedback(deck_id)) settings.ui.imageButton.clicked.connect( partial(select_image_for_custom_feedback, main_window)) for label, value in dimmer_options.items(): settings.ui.dim.addItem(f"{label}", userData=value) existing_timeout = api.get_display_timeout(deck_id) existing_index = next((i for i, (k, v) in enumerate(dimmer_options.items()) if v == existing_timeout), None) if existing_index is None: settings.ui.dim.addItem(f"Custom: {existing_timeout}s", userData=existing_timeout) existing_index = settings.ui.dim.count() - 1 settings.ui.dim.setCurrentIndex(existing_index) else: settings.ui.dim.setCurrentIndex(existing_index) settings.ui.label_streamdeck.setText(deck_id) settings.ui.brightness.setValue(api.get_brightness(deck_id)) settings.ui.brightness.valueChanged.connect( partial(change_brightness, deck_id)) if settings.exec_(): # Commit changes if existing_index != settings.ui.dim.currentIndex(): dimmers[deck_id].timeout = settings.ui.dim.currentData() api.set_display_timeout(deck_id, settings.ui.dim.currentData()) set_brightness(window.ui, settings.ui.brightness.value()) else: # User cancelled, reset to original brightness change_brightness(deck_id, api.get_brightness(deck_id)) dimmers[deck_id].reset()
def show_settings(window) -> None: """Shows the settings dialog and allows the user the change deck specific settings. Settings are not saved until OK is clicked.""" ui = window.ui deck_id = _deck_id(ui) settings = SettingsDialog(window) dimmers[deck_id].stop() for label, value in dimmer_options.items(): settings.ui.dim.addItem(f"{label}", userData=value) existing_timeout = api.get_display_timeout(deck_id) existing_index = next((i for i, (k, v) in enumerate(dimmer_options.items()) if v == existing_timeout), None) if existing_index is None: settings.ui.dim.addItem(f"Custom: {existing_timeout}s", userData=existing_timeout) existing_index = settings.ui.dim.count() - 1 settings.ui.dim.setCurrentIndex(existing_index) else: settings.ui.dim.setCurrentIndex(existing_index) existing_brightness_dimmed = api.get_brightness_dimmed(deck_id) settings.ui.brightness_dimmed.setValue(existing_brightness_dimmed) settings.ui.label_streamdeck.setText(deck_id) settings.ui.brightness.setValue(api.get_brightness(deck_id)) settings.ui.brightness.valueChanged.connect( partial(change_brightness, deck_id)) settings.ui.dim.currentIndexChanged.connect( partial(disable_dim_settings, settings)) if settings.exec_(): # Commit changes if existing_index != settings.ui.dim.currentIndex(): dimmers[deck_id].timeout = settings.ui.dim.currentData() api.set_display_timeout(deck_id, settings.ui.dim.currentData()) set_brightness(window.ui, settings.ui.brightness.value()) set_brightness_dimmed(window.ui, settings.ui.brightness_dimmed.value(), settings.ui.brightness.value()) else: # User cancelled, reset to original brightness change_brightness(deck_id, api.get_brightness(deck_id)) dimmers[deck_id].reset()