<!DOCTYPE glade-interface SYSTEM "glade-2.0.dtd">
<!--Generated with glade3 3.4.5 on Wed Mar 4 20:08:42 2009 -->
<glade-interface>
- <widget class="GtkWindow" id="Dialpad">
+ <widget class="GtkWindow" id="mainWindow">
<property name="default_width">800</property>
<property name="default_height">480</property>
<property name="title" translatable="yes">Dialer</property>
</widget>
</child>
</widget>
- <widget class="GtkDialog" id="login_dialog">
+ <widget class="GtkDialog" id="loginDialog">
<property name="border_width">5</property>
<property name="title" translatable="yes">Grandcentral Login</property>
<property name="resizable">False</property>
<property name="skip_taskbar_hint">True</property>
<property name="skip_pager_hint">True</property>
<property name="deletable">False</property>
- <property name="transient_for">Dialpad</property>
+ <property name="transient_for">mainWindow</property>
<property name="has_separator">False</property>
<child internal-child="vbox">
<widget class="GtkVBox" id="dialog-vbox1">
<property name="visible">True</property>
<property name="layout_style">GTK_BUTTONBOX_END</property>
<child>
- <widget class="GtkButton" id="loginbutton">
+ <widget class="GtkButton" id="logins_close_button">
<property name="visible">True</property>
<property name="can_focus">True</property>
- <property name="can_default">True</property>
- <property name="has_default">True</property>
<property name="receives_default">True</property>
- <property name="label" translatable="yes">Login</property>
+ <property name="label" translatable="yes">gtk-close</property>
+ <property name="use_stock">True</property>
<property name="response_id">0</property>
- <signal name="clicked" handler="on_loginbutton_clicked"/>
+ <signal name="clicked" handler="on_loginclose_clicked"/>
</widget>
</child>
<child>
- <widget class="GtkButton" id="closebutton">
+ <widget class="GtkButton" id="loginbutton">
<property name="visible">True</property>
<property name="can_focus">True</property>
+ <property name="can_default">True</property>
+ <property name="has_default">True</property>
<property name="receives_default">True</property>
- <property name="label" translatable="yes">Close</property>
+ <property name="label" translatable="yes">gtk-ok</property>
+ <property name="use_stock">True</property>
<property name="response_id">0</property>
- <signal name="clicked" handler="on_loginclose_clicked"/>
+ <signal name="clicked" handler="on_loginbutton_clicked"/>
</widget>
<packing>
<property name="position">1</property>
gtk.main_quit()
return
- self._window = self._widgetTree.get_widget("Dialpad")
+ self._window = self._widgetTree.get_widget("mainWindow")
self._notebook = self._widgetTree.get_widget("notebook")
self._errorDisplay = gtk_toolbox.ErrorDisplay(self._widgetTree)
+ self._credentials = gtk_toolbox.LoginWindow(self._widgetTree)
self._app = None
self._isFullScreen = False
self._window.set_title("%s - Keypad" % self.__pretty_app_name__)
callbackMapping = {
- "on_loginbutton_clicked": self._on_loginbutton_clicked,
- "on_loginclose_clicked": self._on_loginclose_clicked,
"on_dialpad_quit": self._on_close,
}
self._widgetTree.signal_autoconnect(callbackMapping)
for x in xrange(numOfAttempts):
gtk.gdk.threads_enter()
try:
- dialog = self._widgetTree.get_widget("login_dialog")
- dialog.set_transient_for(self._window)
- dialog.set_default_response(gtk.RESPONSE_CLOSE)
- dialog.run()
-
- username = self._widgetTree.get_widget("usernameentry").get_text()
- password = self._widgetTree.get_widget("passwordentry").get_text()
- self._widgetTree.get_widget("passwordentry").set_text("")
- dialog.hide()
+ username, password = self._credentials.request_credentials()
finally:
gtk.gdk.threads_leave()
else:
self._window.fullscreen()
- def _on_loginbutton_clicked(self, *args):
- self._widgetTree.get_widget("login_dialog").response(gtk.RESPONSE_OK)
-
- def _on_loginclose_clicked(self, *args):
- self._on_close()
-
def _on_clearcookies_clicked(self, *args):
self._gcBackend.logout()
self._accountViews[True].clear()
"""
if parentWindow is None:
parentWindow = self._parentWindow
- self._dialog.set_transient_for(parentWindow)
- self._dialog.set_default_response(gtk.RESPONSE_OK)
- response = self._dialog.run()
- if response != gtk.RESPONSE_OK:
- raise StandardError("Login Cancelled")
-
- username = self._usernameEntry.get_text()
- password = self._passwordEntry.get_text()
- self._usernameEntry.set_text("")
- self._dialog.hide()
+ try:
+ self._dialog.set_transient_for(parentWindow)
+ self._dialog.set_default_response(gtk.RESPONSE_OK)
+ response = self._dialog.run()
+ if response != gtk.RESPONSE_OK:
+ raise RuntimeError("Login Cancelled")
+
+ username = self._usernameEntry.get_text()
+ password = self._passwordEntry.get_text()
+ self._passwordEntry.set_text("")
+ finally:
+ self._dialog.hide()
return username, password
def _on_loginbutton_clicked(self, *args):