Sensor readings callbacks in all pages

This commit is contained in:
Daniele Verducci 2024-04-30 08:56:28 +02:00
parent 6f7134d6fb
commit 6ef5ad15f7
5 changed files with 34 additions and 6 deletions

View File

@ -24,3 +24,8 @@ from gi.repository import Gtk
class AperturePriorityPage(Gtk.Box):
__gtype_name__ = 'AperturePriorityPage'
def onValuesChanged(self, isoSpeed: int, sensorValue: float, sensorUnit: str):
# Check the unit is absolute ("lux")
if sensorUnit != "lux":
return

View File

@ -24,3 +24,9 @@ from gi.repository import Gtk
class ManualExposurePage(Gtk.Box):
__gtype_name__ = 'ManualExposurePage'
def onValuesChanged(self, isoSpeed: int, sensorValue: float, sensorUnit: str):
# Check the unit is absolute ("lux")
if sensorUnit != "lux":
return

View File

@ -23,4 +23,9 @@ from gi.repository import Gtk
@Gtk.Template(resource_path='/eu/ichibi/Lumos/widgets/time_priority_page.ui')
class TimePriorityPage(Gtk.Box):
__gtype_name__ = 'TimePriorityPage'
def onValuesChanged(self, isoSpeed: int, sensorValue: float, sensorUnit: str):
# Check the unit is absolute ("lux")
if sensorUnit != "lux":
return

View File

@ -28,7 +28,12 @@ class LumosWindow(Adw.ApplicationWindow):
error_banner = Gtk.Template.Child()
sensor_unit_error_banner = Gtk.Template.Child()
# Pages
aperture_priority_page_widget = Gtk.Template.Child()
time_priority_page_widget = Gtk.Template.Child()
manual_page_widget = Gtk.Template.Child()
sensor_readings_page_widget = Gtk.Template.Child()
# ISO selector in title bar
iso_dropdown = Gtk.Template.Child()
def __init__(self, **kwargs):
super().__init__(**kwargs)
@ -49,8 +54,15 @@ class LumosWindow(Adw.ApplicationWindow):
def onSensorRead(self, value: float, unit: str):
# Called when the light value changed: notify all pages
isoSpeed = int(self.iso_dropdown.get_selected_item().get_string()[4:])
if self.aperture_priority_page_widget:
self.aperture_priority_page_widget.onValuesChanged(isoSpeed, value, unit)
if self.time_priority_page_widget:
self.time_priority_page_widget.onValuesChanged(isoSpeed, value, unit)
if self.manual_page_widget:
self.manual_page_widget.onValuesChanged(isoSpeed, value, unit)
if self.sensor_readings_page_widget:
self.sensor_readings_page_widget.onValuesChanged(100, value, unit)
self.sensor_readings_page_widget.onValuesChanged(isoSpeed, value, unit)
# Check the unit is absolute ("lux"), otherwise there's no way to convert to an absolute EV value
if unit != "lux":

View File

@ -11,7 +11,7 @@
<object class="AdwHeaderBar" id="header_bar">
<child type="start">
<!-- ISO Selector in header bar (left) -->
<object class="GtkDropDown" id="iso-dropdown">
<object class="GtkDropDown" id="iso_dropdown">
<property name="model">
<object class="GtkStringList">
<items>
@ -70,7 +70,7 @@
<property name="icon-name">camera-shutter-symbolic</property>
<property name="use-underline">true</property>
<property name="child">
<object class="AperturePriorityPage" id="aperture-priority-page-widget">
<object class="AperturePriorityPage" id="aperture_priority_page_widget">
</object>
</property>
</object>
@ -84,7 +84,7 @@
<property name="icon-name">camera-timer-symbolic</property>
<property name="use-underline">true</property>
<property name="child">
<object class="TimePriorityPage" id="time-priority-page-widget">
<object class="TimePriorityPage" id="time_priority_page_widget">
</object>
</property>
</object>
@ -98,7 +98,7 @@
<property name="icon-name">encoder-knob-symbolic</property>
<property name="use-underline">true</property>
<property name="child">
<object class="ManualExposurePage" id="manual-page">
<object class="ManualExposurePage" id="manual_page_widget">
</object>
</property>
</object>