From 4ed6830870be47fc55e24cac044a17c2bc2a5ac0 Mon Sep 17 00:00:00 2001 From: Brendan Taylor Date: Wed, 26 Sep 2007 22:31:20 +0000 Subject: [PATCH] made PassphraseDialog's checkbutton and modality optional --- data/glade/passphrase_dialog.glade | 1 + src/dialogs.py | 60 ++++++++++++++++++++++++++---- 2 files changed, 54 insertions(+), 7 deletions(-) diff --git a/data/glade/passphrase_dialog.glade b/data/glade/passphrase_dialog.glade index 6d42454b0..bc49f3475 100644 --- a/data/glade/passphrase_dialog.glade +++ b/data/glade/passphrase_dialog.glade @@ -19,6 +19,7 @@ True False True + diff --git a/src/dialogs.py b/src/dialogs.py index c3de819f2..bfe258417 100644 --- a/src/dialogs.py +++ b/src/dialogs.py @@ -238,22 +238,68 @@ class PassphraseDialog: passphrase = self.passphrase_entry.get_text().decode('utf-8') else: passphrase = -1 - save_passphrase_checkbutton = self.xml.\ - get_widget('save_passphrase_checkbutton') - self.window.destroy() - return passphrase, save_passphrase_checkbutton.get_active() - def __init__(self, titletext, labeltext, checkbuttontext): + if self.check: + save_passphrase_checkbutton = self.xml.\ + get_widget('save_passphrase_checkbutton') + checked = save_passphrase_checkbutton.get_active() + else: + checked = False + + self.window.destroy() + return passphrase, checked + + def __init__(self, titletext, labeltext, checkbuttontext=None, is_modal = True, + ok_handler = None, cancel_handler = None): self.xml = gtkgui_helpers.get_glade('passphrase_dialog.glade') self.window = self.xml.get_widget('passphrase_dialog') self.passphrase_entry = self.xml.get_widget('passphrase_entry') self.passphrase = -1 self.window.set_title(titletext) self.xml.get_widget('message_label').set_text(labeltext) - self.xml.get_widget('save_passphrase_checkbutton').set_label( - checkbuttontext) + + self.ok = False + + self.cancel_handler = cancel_handler + self.is_modal = is_modal + if not is_modal and ok_handler is not None: + self.ok_handler = ok_handler + okbutton = self.xml.get_widget('ok_button') + okbutton.connect('clicked', self.on_okbutton_clicked) + cancelbutton = self.xml.get_widget('cancel_button') + cancelbutton.connect('clicked', self.on_cancelbutton_clicked) + self.xml.signal_autoconnect(self) self.window.show_all() + + self.check = bool(checkbuttontext) + checkbutton = self.xml.get_widget('save_passphrase_checkbutton') + if self.check: + checkbutton.set_label(checkbuttontext) + else: + checkbutton.hide() + + def on_okbutton_clicked(self, widget): + passph = self.passphrase_entry.get_text().decode('utf-8') + + if self.check: + checked = self.xml.get_widget('save_passphrase_checkbutton').\ + get_active() + else: + checked = False + + self.ok = True + + self.window.destroy() + + 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 ChooseGPGKeyDialog: '''Class for GPG key dialog'''