Files
NegStation/widgets/raw_settings_widget.py
2025-07-28 19:40:32 +02:00

36 lines
1.7 KiB
Python

# in widgets/raw_settings_widget.py
import dearpygui.dearpygui as dpg
from .base_widget import BaseWidget
class RawSettingsWidget(BaseWidget):
"""A widget to control the rawpy processing parameters stored in GlobalState."""
def create(self):
if dpg.does_item_exist(self.window_tag): return
with dpg.window(label="RAW Development", tag=self.window_tag, on_close=self._on_window_close):
dpg.add_text("rawpy Postprocessing Settings")
dpg.add_separator()
# Create UI elements that directly modify the shared state dictionary
dpg.add_checkbox(
label="Auto White Balance",
default_value=self.global_state.raw_params["use_auto_wb"],
callback=lambda s, a, u: self.global_state.raw_params.update({"use_auto_wb": a})
)
dpg.add_checkbox(
label="Use Camera White Balance",
default_value=self.global_state.raw_params["use_camera_wb"],
callback=lambda s, a, u: self.global_state.raw_params.update({"use_camera_wb": a})
)
dpg.add_checkbox(
label="Disable Auto-Brightness",
default_value=self.global_state.raw_params["no_auto_bright"],
callback=lambda s, a, u: self.global_state.raw_params.update({"no_auto_bright": a})
)
dpg.add_radio_button(
label="Output BPS",
items=["8", "16"],
default_value=str(self.global_state.raw_params["output_bps"]),
callback=lambda s, a, u: self.global_state.raw_params.update({"output_bps": int(a)}),
horizontal=True
)