controller: Emit signal when stopped

This commit is contained in:
Jon Lund Steffensen
2017-07-30 20:21:52 -07:00
parent f3a8ef54c4
commit 7e9886cd68
2 changed files with 9 additions and 2 deletions
+4 -2
View File
@@ -37,8 +37,9 @@ class RedshiftController(GObject.GObject):
'temperature-changed': (GObject.SIGNAL_RUN_FIRST, None, (int,)),
'period-changed': (GObject.SIGNAL_RUN_FIRST, None, (str,)),
'location-changed': (GObject.SIGNAL_RUN_FIRST, None, (float, float)),
'error-occured': (GObject.SIGNAL_RUN_FIRST, None, (str,))
}
'error-occured': (GObject.SIGNAL_RUN_FIRST, None, (str,)),
'stopped': (GObject.SIGNAL_RUN_FIRST, None, ()),
}
def __init__(self, args):
"""Initialize controller and start child process.
@@ -159,6 +160,7 @@ class RedshiftController(GObject.GObject):
self.emit('error-occured', self._errors)
GLib.spawn_close_pid(self._process[0])
self.emit('stopped')
def _child_key_change_cb(self, key, value):
"""Called when the child process reports a change of internal state."""
+5
View File
@@ -152,6 +152,7 @@ class RedshiftStatusIcon(object):
'temperature-changed', self.temperature_change_cb)
self._controller.connect('location-changed', self.location_change_cb)
self._controller.connect('error-occured', self.error_occured_cb)
self._controller.connect('stopped', self.controller_stopped_cb)
# Set info box text
self.change_inhibited(self._controller.inhibited)
@@ -278,6 +279,10 @@ class RedshiftStatusIcon(object):
# Quit when the model dialog is closed
sys.exit(-1)
def controller_stopped_cb(self, controller):
"""Callback when controlled is stopped successfully."""
Gtk.main_quit()
# Update interface
def change_inhibited(self, inhibited):
"""Change interface to new inhibition status."""