~ubuntuone-control-tower/ubuntu-sso-client/trunk

« back to all changes in this revision

Viewing changes to ubuntu_sso/gui.py

Every form can be submitted by activating the buttons and/or the entries (LP: #616421).

Show diffs side-by-side

added added

removed removed

Lines of Context:
255
255
        builder.add_from_file(ui_filename)
256
256
        builder.connect_signals(self)
257
257
 
258
 
        # XXX: every button should have tests for 'activate' signal
259
 
        # see LP: #616421
260
 
 
261
258
        self.widgets = []
262
259
        self.warnings = []
263
260
        self.cancels = []
278
275
                if 'cancel_button' in name:
279
276
                    obj.connect('clicked', self.on_close_clicked)
280
277
                    self.cancels.append(obj)
 
278
                if '_button' in name:
 
279
                    obj.connect('activate', lambda w: w.clicked())
281
280
                if 'label' in name:
282
281
                    self.labels.append(obj)
283
282
 
525
524
            self.tc_hbox.hide_all()
526
525
        self.login_button.set_label(self.LOGIN_BUTTON_LABEL)
527
526
 
 
527
        for entry in (self.name_entry, self.email1_entry, self.email2_entry,
 
528
                      self.password1_entry, self.password2_entry,
 
529
                      self.captcha_solution_entry):
 
530
            entry.connect('activate', lambda w: self.join_ok_button.clicked())
 
531
 
528
532
        return self.enter_details_vbox
529
533
 
530
534
    def _build_tc_page(self):
540
544
 
541
545
    def _build_verify_email_page(self):
542
546
        """Build the verify email page."""
 
547
        cb = lambda w: self.verify_token_button.clicked()
 
548
        self.email_token_entry.connect('activate', cb)
543
549
        self.verify_email_vbox.pack_start(self.email_token_entry, expand=False)
544
550
        self.verify_email_vbox.reorder_child(self.email_token_entry, 0)
545
551
 
566
572
        self.forgotten_password_button.set_label(msg)
567
573
        self.login_ok_button.grab_focus()
568
574
 
 
575
        for entry in (self.login_email_entry, self.login_password_entry):
 
576
            entry.connect('activate', lambda w: self.login_ok_button.clicked())
 
577
 
569
578
        return self.login_vbox
570
579
 
571
580
    def _build_request_password_token_page(self):
581
590
        self.request_password_token_ok_button.set_label(self.NEXT)
582
591
        self.request_password_token_ok_button.set_sensitive(False)
583
592
 
 
593
        cb = lambda w: self.request_password_token_ok_button.clicked()
 
594
        self.reset_email_entry.connect('activate', cb)
 
595
 
584
596
        return self.request_password_token_vbox
585
597
 
586
598
    def _build_set_new_password_page(self):
588
600
        self.set_new_password_vbox.header = self.RESET_PASSWORD
589
601
        self.set_new_password_vbox.help_text = self.SET_NEW_PASSWORD_LABEL
590
602
 
 
603
        cb = lambda w: self.set_new_password_ok_button.clicked()
591
604
        for entry in (self.reset_code_entry,
592
605
                      self.reset_password1_entry,
593
606
                      self.reset_password2_entry):
594
607
            self.set_new_password_details_vbox.pack_start(entry)
 
608
            entry.connect('activate', cb)
595
609
 
596
610
        cb = self.on_set_new_password_entries_changed
597
611
        self.reset_code_entry.connect('changed', cb)
649
663
 
650
664
    def on_join_ok_button_clicked(self, *args, **kwargs):
651
665
        """Submit info for processing, present the processing vbox."""
 
666
        if not self.join_ok_button.is_sensitive():
 
667
            return
 
668
 
652
669
        self._clear_warnings()
653
670
 
654
671
        error = False
725
742
 
726
743
    def on_verify_token_button_clicked(self, *args, **kwargs):
727
744
        """The user entered the email token, let's verify!"""
 
745
        if not self.verify_token_button.is_sensitive():
 
746
            return
 
747
 
728
748
        email = self.email1_entry.get_text()
729
749
        password = self.password1_entry.get_text()
730
750
        email_token = self.email_token_entry.get_text()
740
760
 
741
761
    def on_login_connect_button_clicked(self, *args, **kwargs):
742
762
        """User wants to connect!"""
 
763
        if not self.login_ok_button.is_sensitive():
 
764
            return
 
765
 
743
766
        self._clear_warnings()
744
767
 
745
768
        error = False
780
803
 
781
804
    def on_request_password_token_ok_button_clicked(self, *args, **kwargs):
782
805
        """User entered the email address to reset the password."""
 
806
        if not self.request_password_token_ok_button.is_sensitive():
 
807
            return
 
808
 
783
809
        email = self.reset_email_entry.get_text()
784
810
 
785
811
        logger.info('Calling request_password_reset_token with %r.', email)
808
834
 
809
835
    def on_set_new_password_ok_button_clicked(self, *args, **kwargs):
810
836
        """User entered reset code and new passwords."""
 
837
        if not self.set_new_password_ok_button.is_sensitive():
 
838
            return
 
839
 
811
840
        email = self.reset_email_entry.get_text()
812
841
        token = self.reset_code_entry.get_text()
813
842
        # XXX: validate passwords!