diff --git a/gajim/data/gui/passphrase_dialog.ui b/gajim/data/gui/passphrase_dialog.ui index 2d6b9e36e..993020e78 100644 --- a/gajim/data/gui/passphrase_dialog.ui +++ b/gajim/data/gui/passphrase_dialog.ui @@ -1,112 +1,150 @@ - + - + False - 12 + 18 Passphrase + False dialog + + + - + True False vertical 6 - + True False + 12 end - gtk-cancel + _Cancel True True True False - True + True False - False + True 0 - gtk-ok + _OK True True True True False - True + True + False - False + True 1 False - False + True end 1 - + True False - 6 - vertical - 6 + 18 - + True False - True + dialog-password-symbolic + 6 False - False - 5 + True 0 - + True - True - True - False - True + False + vertical + 6 + + + True + False + 6 + True + 40 + 0 + + + + False + True + 0 + + + + + True + True + True + False + True + password + GTK_INPUT_HINT_NO_SPELLCHECK | GTK_INPUT_HINT_NONE + + + False + True + 1 + + + + + True + True + False + True + True + + + False + True + 2 + + - False - False + True + True 1 - - - True - True - False - True - 0.5 - True - - - False - False - 2 - - False diff --git a/gajim/dialogs.py b/gajim/dialogs.py index 1ef7ffeab..1407a81cc 100644 --- a/gajim/dialogs.py +++ b/gajim/dialogs.py @@ -217,68 +217,6 @@ class EditGroupsDialog: column.add_attribute(renderer, 'active', 1) column.add_attribute(renderer, 'inconsistent', 2) -class PassphraseDialog: - """ - Class for Passphrase dialog - """ - def __init__(self, titletext, labeltext, checkbuttontext=None, - ok_handler=None, cancel_handler=None, transient_for=None): - self.xml = get_builder('passphrase_dialog.ui') - self.window = self.xml.get_object('passphrase_dialog') - self.passphrase_entry = self.xml.get_object('passphrase_entry') - self.passphrase = -1 - self.window.set_title(titletext) - self.xml.get_object('message_label').set_text(labeltext) - - self.ok = False - - self.cancel_handler = cancel_handler - self.ok_handler = ok_handler - okbutton = self.xml.get_object('ok_button') - okbutton.connect('clicked', self.on_okbutton_clicked) - cancelbutton = self.xml.get_object('cancel_button') - cancelbutton.connect('clicked', self.on_cancelbutton_clicked) - - self.xml.connect_signals(self) - if transient_for is None: - transient_for = app.app.get_active_window() - self.window.set_transient_for(transient_for) - self.window.show_all() - - self.check = bool(checkbuttontext) - checkbutton = self.xml.get_object('save_passphrase_checkbutton') - if self.check: - checkbutton.set_label(checkbuttontext) - else: - checkbutton.hide() - - def on_okbutton_clicked(self, widget): - if not self.ok_handler: - return - - passph = self.passphrase_entry.get_text() - - if self.check: - checked = self.xml.get_object('save_passphrase_checkbutton').\ - get_active() - else: - checked = False - - self.ok = True - - self.window.destroy() - - if isinstance(self.ok_handler, tuple): - self.ok_handler[0](passph, checked, *self.ok_handler[1:]) - else: - self.ok_handler(passph, checked) - - def on_cancelbutton_clicked(self, widget): - self.window.destroy() - - def on_passphrase_dialog_destroy(self, widget): - if self.cancel_handler and not self.ok: - self.cancel_handler() class ChangeActivityDialog: PAGELIST = [ diff --git a/gajim/gtk/accounts.py b/gajim/gtk/accounts.py index 83c96bd8d..fc22f27d2 100644 --- a/gajim/gtk/accounts.py +++ b/gajim/gtk/accounts.py @@ -31,13 +31,13 @@ from gajim.common.connection import Connection from gajim.common.zeroconf.connection_zeroconf import ConnectionZeroconf from gajim import gui_menu_builder -from gajim.dialogs import PassphraseDialog from gajim.gtk.settings import SettingsDialog from gajim.gtk.settings import SettingsBox from gajim.gtk.dialogs import ConfirmationDialog from gajim.gtk.dialogs import ConfirmationDialogDoubleRadio from gajim.gtk.dialogs import ErrorDialog +from gajim.gtk.dialogs import PassphraseDialog from gajim.gtk.dialogs import YesNoDialog from gajim.gtk.dialogs import DialogButton from gajim.gtk.dialogs import NewConfirmationDialog diff --git a/gajim/gtk/dialogs.py b/gajim/gtk/dialogs.py index 8c40f158d..a14f57532 100644 --- a/gajim/gtk/dialogs.py +++ b/gajim/gtk/dialogs.py @@ -1071,6 +1071,65 @@ class InvitationReceivedDialog(Gtk.ApplicationWindow): self.destroy() +class PassphraseDialog: + """ + Class for Passphrase dialog + """ + def __init__(self, titletext, labeltext, checkbuttontext=None, + ok_handler=None, cancel_handler=None, transient_for=None): + self._ui = get_builder('passphrase_dialog.ui') + self.window = self._ui.get_object('passphrase_dialog') + self.passphrase = -1 + self.window.set_title(titletext) + self._ui.message_label.set_text(labeltext) + + self.ok = False + + self.cancel_handler = cancel_handler + self.ok_handler = ok_handler + self._ui.ok_button.connect('clicked', self.on_okbutton_clicked) + self._ui.cancel_button.connect('clicked', self.on_cancelbutton_clicked) + + self._ui.connect_signals(self) + if transient_for is None: + transient_for = app.app.get_active_window() + self.window.set_transient_for(transient_for) + self.window.show_all() + + self.check = bool(checkbuttontext) + if self._ui.save_passphrase_checkbutton: + self._ui.save_passphrase_checkbutton.set_label(checkbuttontext) + else: + self._ui.save_passphrase_checkbutton.hide() + + def on_okbutton_clicked(self, widget): + if not self.ok_handler: + return + + passph = self._ui.passphrase_entry.get_text() + + if self.check: + checked = self._ui.save_passphrase_checkbutton.get_active() + else: + checked = False + + self.ok = True + + self.window.destroy() + + if isinstance(self.ok_handler, tuple): + self.ok_handler[0](passph, checked, *self.ok_handler[1:]) + else: + self.ok_handler(passph, checked) + + def on_cancelbutton_clicked(self, widget): + self.window.destroy() + + def on_passphrase_dialog_destroy(self, widget): + if self.cancel_handler and not self.ok: + self.cancel_handler() + + class NewConfirmationDialog(Gtk.MessageDialog): def __init__(self, title, text, sec_text, buttons, modal=True, transient_for=None): diff --git a/gajim/gui_interface.py b/gajim/gui_interface.py index 300316f62..208d50a70 100644 --- a/gajim/gui_interface.py +++ b/gajim/gui_interface.py @@ -109,6 +109,7 @@ from gajim.gtk.dialogs import WarningDialog from gajim.gtk.dialogs import InformationDialog from gajim.gtk.dialogs import InputDialog from gajim.gtk.dialogs import YesNoDialog +from gajim.gtk.dialogs import PassphraseDialog from gajim.gtk.dialogs import PlainConnectionDialog from gajim.gtk.dialogs import SSLErrorDialog from gajim.gtk.dialogs import ChangeNickDialog @@ -574,9 +575,10 @@ class Interface: obj.conn.on_client_cert_passphrase('', obj.con, obj.port, obj.secure_tuple) - dialogs.PassphraseDialog(_('Certificate Passphrase Required'), - _('Enter the certificate passphrase for account %s') % \ - obj.conn.name, ok_handler=on_ok, cancel_handler=on_cancel) + PassphraseDialog(_('Certificate Passphrase Required'), + _('Enter the certificate passphrase for account %s') % \ + obj.conn.name, ok_handler=on_ok, + cancel_handler=on_cancel) def handle_event_password_required(self, obj): #('PASSWORD_REQUIRED', account, None) @@ -595,7 +597,7 @@ class Interface: obj.conn.disconnect(reconnect=False, immediately=True) del self.pass_dialog[account] - self.pass_dialog[account] = dialogs.PassphraseDialog( + self.pass_dialog[account] = PassphraseDialog( _('Password Required'), text, _('Save password'), ok_handler=on_ok, cancel_handler=on_cancel)