1 from gpg
import BadSignature
2 from policy
import Policy
11 class GUIPolicy(Policy
):
16 def __init__(self
, interface
, prog
, prog_args
):
17 Policy
.__init
__(self
, interface
)
23 self
.window
= mainwindow
.MainWindow(prog
, prog_args
)
24 self
.window
.browser
.set_root(policy
.get_interface(policy
.root
))
26 def monitor_download(self
, dl
):
27 error_stream
= dl
.start()
28 def error_ready(src
, cond
):
30 got
= os
.read(src
.fileno(), 100)
34 if self
.n_downloads
== 0:
35 self
.window
.progress
.hide()
36 gtk
.timeout_remove(self
.pulse
)
39 data
= dl
.error_stream_closed()
40 self
.check_signed_data(dl
, data
)
41 except download
.DownloadError
, ex
:
42 dialog
.alert(self
.window
,
43 "Error downloading interface '%s':\n%s" %
44 (dl
.interface
.uri
, ex
))
45 except BadSignature
, ex
:
46 dialog
.alert(self
.window
,
47 "Error verifying downloaded interface '%s':\n%s" %
48 (dl
.interface
.uri
, ex
))
50 dl
.error_stream_data(got
)
53 gtk
.input_add(error_stream
, gtk
.gdk
.INPUT_READ
, error_ready
)
56 if self
.pulse
is None:
57 progress
= self
.window
.progress
58 self
.pulse
= gtk
.timeout_add(50, lambda: progress
.pulse() or True)