mirror of
https://github.com/lutris/lutris
synced 2024-09-15 22:09:55 +00:00
Allow controlling login dialog with enter key
This commit is contained in:
parent
1095da73b5
commit
8e6a0ab173
|
@ -15,20 +15,20 @@
|
|||
<property name="can_focus">False</property>
|
||||
<property name="layout_style">end</property>
|
||||
<child>
|
||||
<object class="GtkLinkButton" id="linkbutton1">
|
||||
<property name="label" translatable="yes">Forgot password?</property>
|
||||
<property name="visible">True</property>
|
||||
<property name="can_focus">False</property>
|
||||
<property name="receives_default">False</property>
|
||||
<property name="has_tooltip">True</property>
|
||||
<property name="relief">none</property>
|
||||
<property name="uri">http://lutris.net/user/password/reset/</property>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="expand">False</property>
|
||||
<property name="fill">True</property>
|
||||
<property name="position">0</property>
|
||||
</packing>
|
||||
<object class="GtkLinkButton" id="linkbutton1">
|
||||
<property name="label" translatable="yes">Forgot password?</property>
|
||||
<property name="visible">True</property>
|
||||
<property name="can_focus">False</property>
|
||||
<property name="receives_default">False</property>
|
||||
<property name="has_tooltip">True</property>
|
||||
<property name="relief">none</property>
|
||||
<property name="uri">http://lutris.net/user/password/reset/</property>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="expand">False</property>
|
||||
<property name="fill">True</property>
|
||||
<property name="position">0</property>
|
||||
</packing>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkButton" id="cancel_button">
|
||||
|
@ -124,6 +124,7 @@
|
|||
<property name="invisible_char">•</property>
|
||||
<property name="width_chars">32</property>
|
||||
<property name="shadow_type">none</property>
|
||||
<signal name="activate" handler="on_username_entry_activate" swapped="no"/>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="left_attach">1</property>
|
||||
|
@ -141,6 +142,7 @@
|
|||
<property name="visibility">False</property>
|
||||
<property name="invisible_char">•</property>
|
||||
<property name="invisible_char_set">True</property>
|
||||
<signal name="activate" handler="on_password_entry_activate" swapped="no"/>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="left_attach">1</property>
|
||||
|
@ -171,6 +173,7 @@
|
|||
</object>
|
||||
</child>
|
||||
<action-widgets>
|
||||
<action-widget response="0">linkbutton1</action-widget>
|
||||
<action-widget response="0">cancel_button</action-widget>
|
||||
<action-widget response="4">connect_button</action-widget>
|
||||
</action-widgets>
|
||||
|
|
|
@ -203,17 +203,36 @@ class ClientLoginDialog(GtkBuilderDialog):
|
|||
def __init__(self):
|
||||
super(ClientLoginDialog, self).__init__()
|
||||
|
||||
self.username_entry = self.builder.get_object('username_entry')
|
||||
self.password_entry = self.builder.get_object('password_entry')
|
||||
|
||||
cancel_button = self.builder.get_object('cancel_button')
|
||||
cancel_button.connect('clicked', self.on_cancel)
|
||||
connect_button = self.builder.get_object('connect_button')
|
||||
connect_button.connect('clicked', self.on_connect)
|
||||
|
||||
def get_credentials(self):
|
||||
username = self.username_entry.get_text()
|
||||
password = self.password_entry.get_text()
|
||||
return (username, password)
|
||||
|
||||
def on_username_entry_activate(self, widget):
|
||||
if all(self.get_credentials()):
|
||||
self.on_connect(None)
|
||||
else:
|
||||
self.password_entry.grab_focus()
|
||||
|
||||
def on_password_entry_activate(self, widget):
|
||||
if all(self.get_credentials()):
|
||||
self.on_connect(None)
|
||||
else:
|
||||
self.username_entry.grab_focus()
|
||||
|
||||
def on_cancel(self, widget):
|
||||
self.dialog.destroy()
|
||||
|
||||
def on_connect(self, widget):
|
||||
username = self.builder.get_object('username_entry').get_text()
|
||||
password = self.builder.get_object('password_entry').get_text()
|
||||
username, password = self.get_credentials()
|
||||
token = api.connect(username, password)
|
||||
if not token:
|
||||
NoticeDialog("Login failed")
|
||||
|
|
Loading…
Reference in a new issue