human-readable feature negotiation dialogs
This commit is contained in:
parent
6fe668d863
commit
c3b81346d9
20
src/gajim.py
20
src/gajim.py
|
@ -1659,7 +1659,7 @@ class Interface:
|
||||||
jid, session, form = data
|
jid, session, form = data
|
||||||
|
|
||||||
if form.getField('accept') and not form['accept'] in ('1', 'true'):
|
if form.getField('accept') and not form['accept'] in ('1', 'true'):
|
||||||
dialogs.InformationDialog(_('Session negotiation cancelled.'),
|
dialogs.InformationDialog(_('Session negotiation cancelled'),
|
||||||
_('The client at %s cancelled the session negotiation.') % (jid))
|
_('The client at %s cancelled the session negotiation.') % (jid))
|
||||||
session.cancelled_negotiation()
|
session.cancelled_negotiation()
|
||||||
return
|
return
|
||||||
|
@ -1679,15 +1679,15 @@ class Interface:
|
||||||
|
|
||||||
def reject_nondefault_options(widget):
|
def reject_nondefault_options(widget):
|
||||||
for key in ask_user.keys():
|
for key in ask_user.keys():
|
||||||
not_acceptable.append(key) # XXX for some reason I can't concatenate using += here?
|
not_acceptable.append(key)
|
||||||
session.respond_e2e_bob(form, negotiated, not_acceptable)
|
session.respond_e2e_bob(form, negotiated, not_acceptable)
|
||||||
|
|
||||||
dialog.destroy()
|
dialog.destroy()
|
||||||
|
|
||||||
dialog = dialogs.ConfirmationDialog(_('confirm these negotiation options'),
|
dialog = dialogs.YesNoDialog(_('Confirm these session options'),
|
||||||
_('are the following options acceptable? %s') % (ask_user),
|
_('The remote client wants to negotiate an session with these features:\n\n%s\n\nAre these options acceptable?') % (negotiation.describe_features(ask_user)),
|
||||||
on_response_ok = accept_nondefault_options,
|
on_response_yes = accept_nondefault_options,
|
||||||
on_response_cancel = reject_nondefault_options)
|
on_response_no = reject_nondefault_options)
|
||||||
else:
|
else:
|
||||||
session.respond_e2e_bob(form, negotiated, not_acceptable)
|
session.respond_e2e_bob(form, negotiated, not_acceptable)
|
||||||
|
|
||||||
|
@ -1708,10 +1708,10 @@ class Interface:
|
||||||
session.reject_negotiation()
|
session.reject_negotiation()
|
||||||
dialog.destroy()
|
dialog.destroy()
|
||||||
|
|
||||||
dialog = dialogs.ConfirmationDialog(_('confirm these negotiation options'),
|
dialog = dialogs.YesNoDialog(_('Confirm these session options'),
|
||||||
_('are the following options acceptable? %s') % (ask_user),
|
_('The remote client selected these options:\n\n%s\n\nContinue with the session?') % (negotiation.describe_features(ask_user)),
|
||||||
on_response_ok = accept_nondefault_options,
|
on_response_yes = accept_nondefault_options,
|
||||||
on_response_cancel = reject_nondefault_options)
|
on_response_no = reject_nondefault_options)
|
||||||
else:
|
else:
|
||||||
session.accept_e2e_alice(form, negotiated)
|
session.accept_e2e_alice(form, negotiated)
|
||||||
|
|
||||||
|
|
|
@ -5,6 +5,13 @@ from common import dataforms
|
||||||
from common import gajim
|
from common import gajim
|
||||||
from common import xmpp
|
from common import xmpp
|
||||||
|
|
||||||
|
def describe_features(features):
|
||||||
|
'''a human-readable description of the features that have been negotiated'''
|
||||||
|
if features['logging'] == 'may':
|
||||||
|
return '- messages will be logged'
|
||||||
|
elif features['logging'] == 'mustnot':
|
||||||
|
return '- messages will not be logged'
|
||||||
|
|
||||||
class FeatureNegotiationWindow:
|
class FeatureNegotiationWindow:
|
||||||
'''FeatureNegotiotionWindow class'''
|
'''FeatureNegotiotionWindow class'''
|
||||||
def __init__(self, account, jid, session, form):
|
def __init__(self, account, jid, session, form):
|
||||||
|
|
Loading…
Reference in New Issue