Refactored aperture priority page

This commit is contained in:
Daniele Verducci 2024-05-04 07:59:30 +02:00
parent b2c70d5c80
commit fcff374b54

View File

@ -26,7 +26,7 @@ class AperturePriorityPage(Gtk.Box):
__gtype_name__ = 'AperturePriorityPage' __gtype_name__ = 'AperturePriorityPage'
# Values of aperture dropdown entries defined in the .ui file # Values of aperture dropdown entries defined in the .ui file
aperture_priority_speed_dropdown_values = [ __aperture_priority_speed_dropdown_values = [
1/32, 1/32,
1/22, 1/22,
1/16, 1/16,
@ -43,23 +43,26 @@ class AperturePriorityPage(Gtk.Box):
aperture_priority_aperture_dropdown = Gtk.Template.Child() aperture_priority_aperture_dropdown = Gtk.Template.Child()
aperture_priority_time_label = Gtk.Template.Child() aperture_priority_time_label = Gtk.Template.Child()
lastSensorValue = None __sensorValue = None
__isoSpeed = 100
def onValuesChanged(self, isoSpeed: int, sensorValue: float, sensorUnit: str): def onValuesChanged(self, isoSpeed: int, sensorValue: float, sensorUnit: str):
# Check the unit is absolute ("lux") # Check the unit is absolute ("lux")
if sensorUnit != "lux": if sensorUnit != "lux":
return return
self.lastSensorValue = sensorValue self.__sensorValue = sensorValue
self.updateView(isoSpeed, sensorValue) self.__isoSpeed = isoSpeed
self.updateView()
def onIsoSpeedChanged(self, isoSpeed: int): def onIsoSpeedChanged(self, isoSpeed: int):
if self.lastSensorValue: self.__isoSpeed = isoSpeed
self.updateView(isoSpeed, self.lastSensorValue) if self.__sensorValue:
self.updateView()
def updateView(self, isoSpeed: int, sensorValue: float): def updateView(self):
apertureValue = self.aperture_priority_speed_dropdown_values[self.aperture_priority_aperture_dropdown.get_selected()] apertureValue = self.__aperture_priority_speed_dropdown_values[self.aperture_priority_aperture_dropdown.get_selected()]
shutterSpeed = EVCalculator.calcShutterSpeed(isoSpeed, sensorValue, apertureValue) shutterSpeed = EVCalculator.calcShutterSpeed(self.__isoSpeed, self.__sensorValue, apertureValue)
# TODO: Round shutter speed value to nearest existing value and set label color to red if outside 1 stop range # TODO: Round shutter speed value to nearest existing value and set label color to red if outside 1 stop range
self.aperture_priority_time_label.set_label("f/ {:.2f}".format(shutterSpeed)) self.aperture_priority_time_label.set_label("1/ {:.5f}".format(shutterSpeed))