online-desktop r7278 - in trunk/weblogindriver: . weblogindriver
- From: marinaz svn gnome org
- To: svn-commits-list gnome org
- Subject: online-desktop r7278 - in trunk/weblogindriver: . weblogindriver
- Date: Mon, 27 Oct 2008 02:18:31 +0000 (UTC)
Author: marinaz
Date: Mon Oct 27 02:18:31 2008
New Revision: 7278
URL: http://svn.gnome.org/viewvc/online-desktop?rev=7278&view=rev
Log:
Provide a description about what information the user needs to enter for a particular account type when the user is adding new accounts.
Add text wrapping for that description.
Constrain the default width of the dialog so that it doesn't become super-wide when the user info for some account is a url.
Modified:
trunk/weblogindriver/web-login-driver
trunk/weblogindriver/weblogindriver/accounts_dialog.py
Modified: trunk/weblogindriver/web-login-driver
==============================================================================
--- trunk/weblogindriver/web-login-driver (original)
+++ trunk/weblogindriver/web-login-driver Mon Oct 27 02:18:31 2008
@@ -309,7 +309,7 @@
TYPE_GOOGLE = "google"
-ONLINE_ACCOUNT_TYPES = {TYPE_GOOGLE : "Google"}
+ONLINE_ACCOUNT_TYPES = {TYPE_GOOGLE : ("Google", "Gmail or Google Apps for Your Domain email")}
class OnlineAccount(dbus.service.Object):
def __init__(self, account_id, bus_name, account_type, username, password='', enabled=True, gconf_dir=None, resource_id=None):
@@ -673,8 +673,9 @@
continue
name = node.getAttribute("name")
full_name = node.getAttribute("fullName")
+ user_info_type = node.getAttribute("userInfoType")
_logger.debug("parsing online account type name=%s full_name=%s" % (name, full_name))
- ONLINE_ACCOUNT_TYPES[name]= full_name
+ ONLINE_ACCOUNT_TYPES[name]= (full_name, user_info_type)
except urllib2.HTTPError, e:
_logger.error("Failed to load %s : %s" % (url, e))
@@ -1279,7 +1280,7 @@
return object_paths_list
@dbus.service.method(OA_BUS_IFACE_STR,
- out_signature="a{ss}")
+ out_signature="a{s(ss)}")
def GetAllAccountTypes(self):
_logger.debug("in GetAllAccountTypes")
return ONLINE_ACCOUNT_TYPES
Modified: trunk/weblogindriver/weblogindriver/accounts_dialog.py
==============================================================================
--- trunk/weblogindriver/weblogindriver/accounts_dialog.py (original)
+++ trunk/weblogindriver/weblogindriver/accounts_dialog.py Mon Oct 27 02:18:31 2008
@@ -1,11 +1,13 @@
import sys, logging, urlparse, gnome
-import gobject, gtk, dbus
+import gobject, gtk, dbus, pango
import gutil, ddm_util
_logger = logging.getLogger("weblogindriver.AccountsDialog")
+DIALOG_WIDTH = 320
+
class Dialog(gtk.Window):
def __init__(self, account_types, online_accounts_service, *args, **kwargs):
super(Dialog, self).__init__(*args, **kwargs)
@@ -24,6 +26,7 @@
self.set_position(gtk.WIN_POS_CENTER)
self.__notebook = gtk.Notebook()
+ self.__notebook.set_size_request(DIALOG_WIDTH, -1)
self.__notebook.set_border_width(5)
self.__outer_existing_accounts_vbox = gtk.VBox()
@@ -60,6 +63,12 @@
self.__accounts_combo = gtk.ComboBox(self.__model)
self.__existing_accounts_vbox.pack_start(self.__accounts_combo, True, False)
textrender = gtk.CellRendererText()
+ # If we set ellipsize mode, the text gets ellipsized both in the selection pop-out and
+ # and in the selected item view. It would be ideal to have it be full length in the
+ # first case, but not in the second case. Otherwise, having it show up full length in
+ # the selection pop-out, and having it truncated instead of ellipsized in the selected
+ # item view doesn't look so bad.
+ # textrender.set_property("ellipsize", pango.ELLIPSIZE_MIDDLE)
self.__accounts_combo.pack_start(textrender, True)
self.__accounts_combo.add_attribute(textrender, 'text', 0)
self.__accounts_combo.connect('notify::active', self.__on_edited_account_changed)
@@ -139,21 +148,22 @@
account_types_textrender = gtk.CellRendererText()
self.__account_types_combo.pack_start(account_types_textrender, True)
self.__account_types_combo.add_attribute(account_types_textrender, 'text', 0)
-
+
_logger.debug("will get accounts types")
self.__all_account_types = self.__online_accounts_service.GetAllAccountTypes()
_logger.debug("will get accounts types 2")
+ self.__user_info_types_by_full_name = {}
- for (account_type, type_full_name) in self.__all_account_types.items():
+ for (account_type, (type_full_name, user_info_type)) in self.__all_account_types.items():
if (not self.__account_types) or account_type in self.__account_types:
self.__account_types_model.append([type_full_name])
+ self.__user_info_types_by_full_name[type_full_name] = user_info_type
# Setting padding to 1 here is a hack to get the content of both tabs to be aligned,
# we'll need to change this when it will become possible to add new account types to
# the existing dialog, for example, by adding stocks that require these account types
padding = 1
if len(self.__account_types_model) > 0:
- self.__account_types_combo.set_active(0)
padding = 5
self.__username_entry = gtk.Entry()
@@ -164,7 +174,9 @@
username_vbox = gtk.VBox(spacing=2)
self.__username_label = gtk.Label("Username:")
+ self.__username_label.set_size_request(DIALOG_WIDTH - 20, -1)
self.__username_label.set_alignment(0.0, 0.5)
+ self.__username_label.set_line_wrap(True)
username_vbox.pack_start(self.__username_label, False, False)
username_vbox.pack_end(self.__username_entry, False, False)
self.__new_account_vbox.pack_start(username_vbox, padding=padding)
@@ -180,6 +192,10 @@
self.__add_button_box.pack_end(self.__add_button, expand=False, fill=False)
self.__new_account_vbox.pack_start(self.__add_button_box, False, False, padding=padding)
+ self.__account_types_combo.connect('notify::active', self.__on_edited_account_type_changed)
+ if len(self.__account_types_model) > 0:
+ self.__account_types_combo.set_active(0)
+
online_options_hbox_2 = gtk.HBox(spacing=2)
self.__save_online_check_box_2 = gtk.CheckButton(label="Save Accounts Online")
self.__save_online_check_box_2.set_active(self.__online_accounts_service.GetSaveOnlineFlag())
@@ -294,7 +310,7 @@
return
_logger.debug("account added %s" % a)
- tree_iter = self.__model.append([self.__all_account_types[a.GetType()] + ': ' + a.GetUsername()])
+ tree_iter = self.__model.append([self.__all_account_types[a.GetType()][0] + ': ' + a.GetUsername()])
self.__model_tree_iter_by_account[a_path] = tree_iter
@@ -342,6 +358,11 @@
self.__existing_accounts_label.set_text("Password:")
self.__existing_accounts_label.set_alignment(0.0, 0.5)
+ def __on_edited_account_type_changed(self, *args):
+ new_iter = self.__account_types_combo.get_active_iter()
+ _logger.debug("account type changed to %s" % self.__account_types_model.get_value(new_iter, 0))
+ self.__username_label.set_text(self.__user_info_types_by_full_name[self.__account_types_model.get_value(new_iter, 0)] + ":")
+
def __on_edited_account_changed(self, *args):
new_iter = self.__accounts_combo.get_active_iter()
_logger.debug("account changed to %s" % self.__model.get_value(new_iter, 0))
@@ -456,7 +477,7 @@
return
current_iter = self.__account_types_combo.get_active_iter()
- for (account_type, type_full_name) in self.__all_account_types.items():
+ for (account_type, (type_full_name, user_info_type)) in self.__all_account_types.items():
if self.__account_types_model.get_value(current_iter, 0) == type_full_name:
self.__online_accounts_service.GetOrCreateAccount(account_type, text, self.account_add_return_cb, self.account_add_error_cb)
return
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]