From 7fd8d0a29b93ed4ad17992911303ee856a72820c Mon Sep 17 00:00:00 2001 From: Yann Leboulanger Date: Fri, 8 Sep 2006 22:13:48 +0000 Subject: [PATCH] add a "open gmail inbox" menuitem for account context menu. Fixes #1673 --- data/glade/account_context_menu.glade | 21 ++++++++++++++------ src/roster_window.py | 28 ++++++++++++++++++++++----- 2 files changed, 38 insertions(+), 11 deletions(-) diff --git a/data/glade/account_context_menu.glade b/data/glade/account_context_menu.glade index 9e14bcbf3..3dbeaff0f 100644 --- a/data/glade/account_context_menu.glade +++ b/data/glade/account_context_menu.glade @@ -12,7 +12,7 @@ True - + True gtk-network 1 @@ -25,6 +25,14 @@ + + + True + _Open Gmail Inbox + True + + + True @@ -32,7 +40,7 @@ True - + True gtk-connect 1 @@ -52,7 +60,7 @@ True - + True gtk-new 1 @@ -72,7 +80,7 @@ True - + True gtk-add 1 @@ -92,7 +100,7 @@ True - + True gtk-find 1 @@ -112,7 +120,7 @@ True - + True gtk-preferences 1 @@ -125,4 +133,5 @@ + diff --git a/src/roster_window.py b/src/roster_window.py index 29e5f4353..8cc0c9f4a 100644 --- a/src/roster_window.py +++ b/src/roster_window.py @@ -18,6 +18,7 @@ import gtk import gobject import os import time +import urllib import common.sleepy import history_window @@ -1737,6 +1738,15 @@ class RosterWindow: gajim.interface.instances[account]['account_modification'] = \ config.AccountModificationWindow(account) + def on_open_gmail_inbox(self, widget, account): + if gajim.config.get_per('accounts', account, 'savepass'): + url = ('http://www.google.com/accounts/ServiceLoginAuth?service=mail&Email=%s&Passwd=%s&continue=https://mail.google.com/mail') %\ + (urllib.quote(gajim.config.get_per('accounts', account, 'name')), + urllib.quote(gajim.config.get_per('accounts', account, 'password'))) + else: + url = ('http://mail.google.com/') + helpers.launch_browser_mailer('url', url) + def on_change_status_message_activate(self, widget, account): show = gajim.SHOW_LIST[gajim.connections[account].connected] dlg = dialogs.ChangeStatusMessageDialog(show) @@ -1758,11 +1768,12 @@ class RosterWindow: childs = account_context_menu.get_children() status_menuitem = childs[0] - join_group_chat_menuitem = childs[1] - new_message_menuitem = childs[2] - add_contact_menuitem = childs[3] - service_discovery_menuitem = childs[4] - edit_account_menuitem = childs[5] + open_gmail_inbox_menuitem = childs[1] + join_group_chat_menuitem = childs[2] + new_message_menuitem = childs[3] + add_contact_menuitem = childs[4] + service_discovery_menuitem = childs[5] + edit_account_menuitem = childs[6] sub_menu = gtk.Menu() status_menuitem.set_submenu(sub_menu) @@ -1794,6 +1805,13 @@ class RosterWindow: sub_menu.append(item) item.connect('activate', self.change_status, account, 'offline') + if gajim.config.get_per('accounts', account, 'hostname') not in gajim.gmail_domains: + open_gmail_inbox_menuitem.set_no_show_all(True) + open_gmail_inbox_menuitem.hide() + else: + open_gmail_inbox_menuitem.connect('activate', self.on_open_gmail_inbox, + account) + edit_account_menuitem.connect('activate', self.on_edit_account, account) add_contact_menuitem.connect('activate', self.on_add_new_contact, account) service_discovery_menuitem.connect('activate',