From 3eb1b551e5cdc03542f7802b59f1510ee6e67a8f Mon Sep 17 00:00:00 2001 From: Julien Pivotto Date: Wed, 13 Aug 2008 21:25:26 +0000 Subject: [PATCH] Nicer E2E dialog --- data/glade/esession_info_window.glade | 291 ++++++++++++++++++-------- data/pixmaps/security-high-big.png | Bin 0 -> 2431 bytes data/pixmaps/security-low-big.png | Bin 0 -> 1885 bytes src/dialogs.py | 19 +- 4 files changed, 212 insertions(+), 98 deletions(-) create mode 100644 data/pixmaps/security-high-big.png create mode 100644 data/pixmaps/security-low-big.png diff --git a/data/glade/esession_info_window.glade b/data/glade/esession_info_window.glade index dce553c16..3438fe2c0 100644 --- a/data/glade/esession_info_window.glade +++ b/data/glade/esession_info_window.glade @@ -1,94 +1,201 @@ - - - + + + - - GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK - 5 - GTK_WIN_POS_CENTER_ON_PARENT - GDK_WINDOW_TYPE_HINT_DIALOG - False - - - True - GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK - 2 - - - True - GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK - (ESession info) - True - - - 1 - - - - - True - GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK - - - True - GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK - gtk-dialog-warning - - - - - True - GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK - To be certain that only the expected person can read your messages or send you messages, you need to verify their identity. - True - 0 - - - 1 - - - - - True - True - True - GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK - Verify remote identity - 0 - - - - 2 - - - - - 2 - - - - - True - GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK - GTK_BUTTONBOX_END - - - True - True - True - GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK - Close - 0 - - - - - - False - GTK_PACK_END - - - - - + + + 5 + GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK + + GTK_WINDOW_TOPLEVEL + GTK_WIN_POS_CENTER_ON_PARENT + False + True + False + True + False + False + GDK_WINDOW_TYPE_HINT_DIALOG + GDK_GRAVITY_NORTH_WEST + True + False + False + + + + True + False + 2 + + + + True + False + 0 + + + + True + False + 0 + + + + 32 + 32 + True + 0.5 + 0.5 + 0 + 0 + + + 0 + False + True + + + + + 0 + False + True + + + + + + True + (<b>ESession</b> info) + False + True + GTK_JUSTIFY_LEFT + True + False + 0.5 + 0.5 + 0 + 0 + PANGO_ELLIPSIZE_NONE + -1 + False + 0 + + + 10 + False + False + + + + + 0 + False + False + + + + + + True + GTK_BUTTONBOX_END + + + + True + True + GTK_RELIEF_NORMAL + True + -10 + + + + + True + 0.5 + 0.5 + 0 + 0 + 0 + 0 + 0 + 0 + + + + True + False + 2 + + + + True + gtk-apply + 4 + 0.5 + 0.5 + 0 + 0 + + + 0 + False + False + + + + + + True + _Verify + True + False + GTK_JUSTIFY_LEFT + False + False + 0.5 + 0.5 + 0 + 0 + PANGO_ELLIPSIZE_NONE + -1 + False + 0 + + + 0 + False + False + + + + + + + + + + + + True + True + gtk-close + True + GTK_RELIEF_NORMAL + True + -7 + + + + + + 0 + False + True + + + + + + diff --git a/data/pixmaps/security-high-big.png b/data/pixmaps/security-high-big.png new file mode 100644 index 0000000000000000000000000000000000000000..beedf016c6be270175c7cc267668a5e80e95adf6 GIT binary patch literal 2431 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 XF24@pr*A2}00000NkvXXu0mjfbbyzt literal 0 HcmV?d00001 diff --git a/src/dialogs.py b/src/dialogs.py index 4b1c1dd5b..24f93d126 100644 --- a/src/dialogs.py +++ b/src/dialogs.py @@ -3809,23 +3809,30 @@ class ESessionInfoWindow: self.xml = gtkgui_helpers.get_glade('esession_info_window.glade') self.xml.signal_autoconnect(self) + self.security_image = self.xml.get_widget('security_image') self.update_info() self.window = self.xml.get_widget('esession_info_window') + self.window.show_all() def update_info(self): - labeltext = _('''Your chat session with %(jid)s is encrypted.\n\nThis session's Short Authentication String is: %(sas)s''') % {'jid': self.session.jid, 'sas': self.session.sas} + labeltext = _('''Your chat session with %(jid)s is encrypted.\n\nThis session's Short Authentication String is %(sas)s.''') % {'jid': self.session.jid, 'sas': self.session.sas} + dir = os.path.join(gajim.DATA_DIR, 'pixmaps') if self.session.verified_identity: labeltext += '\n\n' + _('''You have already verified this contact's identity.''') - w = self.xml.get_widget('verification_info') - w.set_no_show_all(True) - w.hide() - + security_image = 'security-high-big.png' if self.session.control: self.session.control._show_lock_image(True, 'E2E', True, self.session.is_loggable(), True) + else: + labeltext += '\n\n' + _('''To be certain that only the expected person can read your messages or send you messages, you need to verify their identity.''') + security_image = 'security-low-big.png' + + path = os.path.join(dir, security_image) + filename = os.path.abspath(path) + self.security_image.set_from_file(filename) self.xml.get_widget('info_display').set_text(labeltext) @@ -3834,7 +3841,7 @@ class ESessionInfoWindow: def on_verify_now_button_clicked(self, widget): pritext = _('''Have you verified the remote contact's identity?''') - sectext = _('''To prevent a man-in-the-middle attack, you should speak to %(jid)s directly (in person or on the phone) and verify that they see the same Short Authentication String (SAS) as you.\n\nThis session's Short Authentication String: %(sas)s''') % {'jid': self.session.jid, 'sas': self.session.sas} + sectext = _('''To prevent a man-in-the-middle attack, you should speak to %(jid)s directly (in person or on the phone) and verify that they see the same Short Authentication String (SAS) as you.\n\nThis session's Short Authentication String is %(sas)s.''') % {'jid': self.session.jid, 'sas': self.session.sas} sectext += '\n\n' + _('Did you talk to the remote contact and verify the SAS?') def on_yes(checked):