mirror of
https://github.com/markqvist/NomadNet.git
synced 2025-01-11 15:19:26 -05:00
Dialog on missing announce key
This commit is contained in:
parent
9e9dd2a481
commit
fea602bbcb
@ -239,7 +239,7 @@ class AnnounceInfo(urwid.WidgetWrap):
|
|||||||
|
|
||||||
|
|
||||||
class AnnounceStreamEntry(urwid.WidgetWrap):
|
class AnnounceStreamEntry(urwid.WidgetWrap):
|
||||||
def __init__(self, app, announce):
|
def __init__(self, app, announce, delegate):
|
||||||
full_time_format = "%Y-%m-%d %H:%M:%S"
|
full_time_format = "%Y-%m-%d %H:%M:%S"
|
||||||
date_time_format = "%Y-%m-%d"
|
date_time_format = "%Y-%m-%d"
|
||||||
time_time_format = "%H:%M:%S"
|
time_time_format = "%H:%M:%S"
|
||||||
@ -250,6 +250,7 @@ class AnnounceStreamEntry(urwid.WidgetWrap):
|
|||||||
source_hash = announce[1]
|
source_hash = announce[1]
|
||||||
announce_type = announce[3]
|
announce_type = announce[3]
|
||||||
self.app = app
|
self.app = app
|
||||||
|
self.delegate = delegate
|
||||||
self.timestamp = timestamp
|
self.timestamp = timestamp
|
||||||
time_format = app.time_format
|
time_format = app.time_format
|
||||||
dt = datetime.fromtimestamp(self.timestamp)
|
dt = datetime.fromtimestamp(self.timestamp)
|
||||||
@ -299,11 +300,38 @@ class AnnounceStreamEntry(urwid.WidgetWrap):
|
|||||||
urwid.WidgetWrap.__init__(self, self.display_widget)
|
urwid.WidgetWrap.__init__(self, self.display_widget)
|
||||||
|
|
||||||
def display_announce(self, event, announce):
|
def display_announce(self, event, announce):
|
||||||
|
try:
|
||||||
parent = self.app.ui.main_display.sub_displays.network_display
|
parent = self.app.ui.main_display.sub_displays.network_display
|
||||||
info_widget = AnnounceInfo(announce, parent, self.app)
|
info_widget = AnnounceInfo(announce, parent, self.app)
|
||||||
options = parent.left_pile.options(height_type="weight", height_amount=1)
|
options = parent.left_pile.options(height_type="weight", height_amount=1)
|
||||||
parent.left_pile.contents[0] = (info_widget, options)
|
parent.left_pile.contents[0] = (info_widget, options)
|
||||||
|
|
||||||
|
except KeyError as e:
|
||||||
|
def dismiss_dialog(sender):
|
||||||
|
self.delegate.parent.close_list_dialogs()
|
||||||
|
|
||||||
|
def confirmed(sender):
|
||||||
|
self.delegate.parent.close_list_dialogs()
|
||||||
|
|
||||||
|
dialog = ListDialogLineBox(
|
||||||
|
urwid.Pile([
|
||||||
|
urwid.Text("The keys for the announced destination could not be recalled. You can wait for an announce to arrive, or request the keys from the network.\n", align="center"),
|
||||||
|
urwid.Columns([
|
||||||
|
("weight", 0.45, urwid.Button("Request keys", on_press=confirmed)),
|
||||||
|
("weight", 0.1, urwid.Text("")),
|
||||||
|
("weight", 0.45, urwid.Button("Cancel", on_press=dismiss_dialog)),
|
||||||
|
])
|
||||||
|
]),
|
||||||
|
title="Keys Unknown"
|
||||||
|
)
|
||||||
|
dialog.delegate = self.delegate.parent
|
||||||
|
bottom = self.delegate
|
||||||
|
|
||||||
|
overlay = urwid.Overlay(dialog, bottom, align="center", width=("relative", 100), valign="middle", height="pack", left=2, right=2)
|
||||||
|
|
||||||
|
options = self.delegate.parent.left_pile.options("weight", 1)
|
||||||
|
self.delegate.parent.left_pile.contents[0] = (overlay, options)
|
||||||
|
|
||||||
def timestamp(self):
|
def timestamp(self):
|
||||||
return self.timestamp
|
return self.timestamp
|
||||||
|
|
||||||
@ -358,7 +386,7 @@ class AnnounceStream(urwid.WidgetWrap):
|
|||||||
new_entries.insert(0, e)
|
new_entries.insert(0, e)
|
||||||
|
|
||||||
for e in new_entries:
|
for e in new_entries:
|
||||||
nw = AnnounceStreamEntry(self.app, e)
|
nw = AnnounceStreamEntry(self.app, e, self)
|
||||||
nw.timestamp = e[0]
|
nw.timestamp = e[0]
|
||||||
self.widget_list.insert(0, nw)
|
self.widget_list.insert(0, nw)
|
||||||
|
|
||||||
@ -1498,10 +1526,6 @@ class NetworkDisplay():
|
|||||||
self.local_peer_display.start()
|
self.local_peer_display.start()
|
||||||
self.node_info_display.start()
|
self.node_info_display.start()
|
||||||
self.network_stats_display.start()
|
self.network_stats_display.start()
|
||||||
# There seems to be an intermittent memory leak somewhere
|
|
||||||
# in the periodic updating here. The periodic updater should
|
|
||||||
# not be needed anymore, so dis
|
|
||||||
#self.announce_stream_display.start()
|
|
||||||
|
|
||||||
def shortcuts(self):
|
def shortcuts(self):
|
||||||
return self.shortcuts_display
|
return self.shortcuts_display
|
||||||
|
Loading…
Reference in New Issue
Block a user