36 lines
1.7 KiB
Python
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
|
|
) |