/mandos/release

To get this branch, use:
bzr branch http://bzr.recompile.se/loggerhead/mandos/release

« back to all changes in this revision

Viewing changes to mandos-monitor

* mandos: White space and other misc. format fixes only.

Show diffs side-by-side

added added

removed removed

Lines of Context:
26
26
from __future__ import (division, absolute_import, print_function,
27
27
                        unicode_literals)
28
28
 
29
 
from future_builtins import *
30
 
 
31
29
import sys
32
30
import os
33
31
import signal
86
84
    properties and calls a hook function when any of them are
87
85
    changed.
88
86
    """
89
 
    def __init__(self, proxy_object=None, properties=None, **kwargs):
 
87
    def __init__(self, proxy_object=None, *args, **kwargs):
90
88
        self.proxy = proxy_object # Mandos Client proxy object
91
 
        self.properties = dict() if properties is None else properties
 
89
        
 
90
        self.properties = dict()
92
91
        self.property_changed_match = (
93
92
            self.proxy.connect_to_signal("PropertyChanged",
94
 
                                         self._property_changed,
 
93
                                         self.property_changed,
95
94
                                         client_interface,
96
95
                                         byte_arrays=True))
97
96
        
98
 
        if properties is None:
99
 
            self.properties.update(
100
 
                self.proxy.GetAll(client_interface,
101
 
                                  dbus_interface
102
 
                                  = dbus.PROPERTIES_IFACE))
103
 
        
104
 
        super(MandosClientPropertyCache, self).__init__(**kwargs)
105
 
    
106
 
    def _property_changed(self, property, value):
107
 
        """Helper which takes positional arguments"""
108
 
        return self.property_changed(property=property, value=value)
 
97
        self.properties.update(
 
98
            self.proxy.GetAll(client_interface,
 
99
                              dbus_interface = dbus.PROPERTIES_IFACE))
 
100
 
 
101
        #XXX This breaks good super behaviour
 
102
#        super(MandosClientPropertyCache, self).__init__(
 
103
#            *args, **kwargs)
109
104
    
110
105
    def property_changed(self, property=None, value=None):
111
106
        """This is called whenever we get a PropertyChanged signal
114
109
        # Update properties dict with new value
115
110
        self.properties[property] = value
116
111
    
117
 
    def delete(self):
 
112
    def delete(self, *args, **kwargs):
118
113
        self.property_changed_match.remove()
 
114
        super(MandosClientPropertyCache, self).__init__(
 
115
            *args, **kwargs)
119
116
 
120
117
 
121
118
class MandosClientWidget(urwid.FlowWidget, MandosClientPropertyCache):
123
120
    """
124
121
    
125
122
    def __init__(self, server_proxy_object=None, update_hook=None,
126
 
                 delete_hook=None, logger=None, **kwargs):
 
123
                 delete_hook=None, logger=None, *args, **kwargs):
127
124
        # Called on update
128
125
        self.update_hook = update_hook
129
126
        # Called on delete
140
137
        self._text_widget = urwid.Text("")
141
138
        # The widget shown when we have focus
142
139
        self._focus_text_widget = urwid.Text("")
143
 
        super(MandosClientWidget, self).__init__(**kwargs)
 
140
        super(MandosClientWidget, self).__init__(
 
141
            update_hook=update_hook, delete_hook=delete_hook,
 
142
            *args, **kwargs)
144
143
        self.update()
145
144
        self.opened = False
146
145
        
343
342
        self.update()
344
343
        return True             # Keep calling this
345
344
    
346
 
    def delete(self, **kwargs):
 
345
    def delete(self, *args, **kwargs):
347
346
        if self._update_timer_callback_tag is not None:
348
347
            gobject.source_remove(self._update_timer_callback_tag)
349
348
            self._update_timer_callback_tag = None
352
351
        self.match_objects = ()
353
352
        if self.delete_hook is not None:
354
353
            self.delete_hook(self)
355
 
        return super(MandosClientWidget, self).delete(**kwargs)
 
354
        return super(MandosClientWidget, self).delete(*args, **kwargs)
356
355
    
357
356
    def render(self, maxcolrow, focus=False):
358
357
        """Render differently if we have focus.
400
399
        else:
401
400
            return key
402
401
    
403
 
    def property_changed(self, property=None, **kwargs):
 
402
    def property_changed(self, property=None, value=None,
 
403
                         *args, **kwargs):
404
404
        """Call self.update() if old value is not new value.
405
405
        This overrides the method from MandosClientPropertyCache"""
406
406
        property_name = unicode(property)
407
407
        old_value = self.properties.get(property_name)
408
408
        super(MandosClientWidget, self).property_changed(
409
 
            property=property, **kwargs)
 
409
            property=property, value=value, *args, **kwargs)
410
410
        if self.properties.get(property_name) != old_value:
411
411
            self.update()
412
412
 
416
416
    "down" key presses, thus not allowing any containing widgets to
417
417
    use them as an excuse to shift focus away from this widget.
418
418
    """
419
 
    def keypress(self, *args, **kwargs):
420
 
        ret = super(ConstrainedListBox, self).keypress(*args, **kwargs)
 
419
    def keypress(self, maxcolrow, key):
 
420
        ret = super(ConstrainedListBox, self).keypress(maxcolrow, key)
421
421
        if ret in ("up", "down"):
422
422
            return
423
423
        return ret
638
638
                                               logger
639
639
                                               =self.log_message),
640
640
                            path=path)
641
 
        
 
641
 
642
642
        self.refresh()
643
643
        self._input_callback_tag = (gobject.io_add_watch
644
644
                                    (sys.stdin.fileno(),