/mandos/trunk

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

« back to all changes in this revision

Viewing changes to mandos-monitor

  • Committer: Teddy Hogeborn
  • Date: 2024-11-22 20:30:34 UTC
  • Revision ID: teddy@recompile.se-20241122203034-92q7483wxv29tqev
mandos-monitor: avoid deprecation warnings from urwid

The urwid.FlowWidget class is deprecated.  Replace it with inheriting
from urwid.Widget, and setting the appropriate class attribute.

* mandos-monitor: Replace any mentions of urwid.FlowWidget with
  urwid.Widget.
  (MandosClientWidget): Inherit from "urwid.Widget" instead of
  "urwid.FlowWidget".  Also, move MandosClientPropertyCache to first
  in inheritance list so that its __init__ method can absorb the
  "proxy_object" and "properties" keyword arguments.
  (MandosClientWidget._sizing): New class attribute; set to
  "frozenset(["flow"])".

(Thanks to an anonymous contributor for reporting this.)

Show diffs side-by-side

added added

removed removed

Lines of Context:
23
23
#
24
24
# Contact the authors at <mandos@recompile.se>.
25
25
#
26
 
 
27
26
from __future__ import (division, absolute_import, print_function,
28
27
                        unicode_literals)
 
28
 
29
29
try:
30
30
    from future_builtins import *
31
31
except ImportError:
32
32
    pass
33
33
 
34
34
import sys
 
35
import logging
35
36
import os
36
37
import warnings
37
38
import datetime
38
39
import locale
39
 
import logging
40
40
 
41
41
import urwid.curses_display
42
42
import urwid
49
49
if sys.version_info.major == 2:
50
50
    __metaclass__ = type
51
51
    str = unicode
 
52
    input = raw_input
 
53
 
 
54
# Show warnings by default
 
55
if not sys.warnoptions:
 
56
    warnings.simplefilter("default")
52
57
 
53
58
log = logging.getLogger(os.path.basename(sys.argv[0]))
54
59
logging.basicConfig(level="NOTSET", # Show all messages
59
64
locale.setlocale(locale.LC_ALL, "")
60
65
 
61
66
logging.getLogger("dbus.proxies").setLevel(logging.CRITICAL)
 
67
logging.getLogger("urwid").setLevel(logging.INFO)
62
68
 
63
69
# Some useful constants
64
70
domain = "se.recompile"
65
71
server_interface = domain + ".Mandos"
66
72
client_interface = domain + ".Mandos.Client"
67
 
version = "1.8.9"
 
73
version = "1.8.17"
68
74
 
69
75
try:
70
76
    dbus.OBJECT_MANAGER_IFACE
122
128
        self.property_changed_match.remove()
123
129
 
124
130
 
125
 
class MandosClientWidget(urwid.FlowWidget, MandosClientPropertyCache):
 
131
class MandosClientWidget(MandosClientPropertyCache, urwid.Widget):
126
132
    """A Mandos Client which is visible on the screen.
127
133
    """
128
134
 
 
135
    _sizing = frozenset(["flow"])
 
136
 
129
137
    def __init__(self, server_proxy_object=None, update_hook=None,
130
138
                 delete_hook=None, **kwargs):
131
139
        # Called on update
220
228
 
221
229
    def selectable(self):
222
230
        """Make this a "selectable" widget.
223
 
        This overrides the method from urwid.FlowWidget."""
 
231
        This overrides the method from urwid.Widget."""
224
232
        return True
225
233
 
226
234
    def rows(self, maxcolrow, focus=False):
227
235
        """How many rows this widget will occupy might depend on
228
236
        whether we have focus or not.
229
 
        This overrides the method from urwid.FlowWidget"""
 
237
        This overrides the method from urwid.Widget"""
230
238
        return self.current_widget(focus).rows(maxcolrow, focus=focus)
231
239
 
232
240
    def current_widget(self, focus=False):
324
332
 
325
333
    def render(self, maxcolrow, focus=False):
326
334
        """Render differently if we have focus.
327
 
        This overrides the method from urwid.FlowWidget"""
 
335
        This overrides the method from urwid.Widget"""
328
336
        return self.current_widget(focus).render(maxcolrow,
329
337
                                                 focus=focus)
330
338
 
331
339
    def keypress(self, maxcolrow, key):
332
340
        """Handle keys.
333
 
        This overrides the method from urwid.FlowWidget"""
 
341
        This overrides the method from urwid.Widget"""
334
342
        if key == "+":
335
343
            self.proxy.Set(client_interface, "Enabled",
336
344
                           dbus.Boolean(True), ignore_reply=True,