Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(56)

Side by Side Diff: third_party/twisted_8_1/twisted/words/im/gtkaccount.py

Issue 12261012: Remove third_party/twisted_8_1 (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/tools/build
Patch Set: Created 7 years, 10 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
OLDNEW
(Empty)
1 # Copyright (c) 2001-2004 Twisted Matrix Laboratories.
2 # See LICENSE for details.
3
4
5 try:
6 import cPickle as pickle
7 except ImportError:
8 import pickle
9
10 import gtk
11
12 from twisted.words.im.gtkcommon import GLADE_FILE, SETTINGS_FILE, autoConnectMet hods,\
13 openGlade
14
15 from twisted.words.im import gtkchat
16
17 ### This generic stuff uses the word "account" in a very different way -- chat
18 ### accounts are potential sources of messages, InstanceMessenger accounts are
19 ### individual network connections.
20
21 class AccountManager:
22 def __init__(self):
23 self.xml = openGlade(GLADE_FILE, root="MainIMWindow")
24 self.chatui = gtkchat.GtkChatClientUI(self.xml)
25 self.chatui._accountmanager = self # TODO: clean this up... it's used in gtkchat
26 print self.xml._o
27 autoConnectMethods(self, self.chatui.theContactsList)
28 self.widget = self.xml.get_widget("AccountManWidget")
29 self.widget.show_all()
30 try:
31 f = open(SETTINGS_FILE)
32 self.accounts = pickle.load(f)
33 print 'loaded!'
34 self.refreshAccounts()
35 except IOError:
36 self.accounts = []
37 print 'initialized!'
38
39 def on_ConsoleButton_clicked(self, b):
40 #### For debugging purposes...
41 from twisted.manhole.ui.pywidgets import LocalInteraction
42 l = LocalInteraction()
43 l.localNS['chat'] = self.chatui
44 l.show_all()
45
46 def created(self, acct):
47 self.accounts.append(acct)
48 self.refreshAccounts()
49
50 def refreshAccounts(self):
51 w = self.xml.get_widget("accountsList")
52 w.clear()
53 for acct in self.accounts:
54 l = [acct.accountName, acct.isOnline() and 'yes' or 'no',
55 acct.autoLogin and 'yes' or 'no', acct.gatewayType]
56 w.append(l)
57
58 def lockNewAccount(self, b):
59 self.xml.get_widget("NewAccountButton").set_sensitive(not b)
60
61 def on_NewAccountButton_clicked(self, b):
62 NewAccount(self)
63
64 def on_MainIMWindow_destroy(self, w):
65 print 'Saving...'
66 pickle.dump(self.accounts, open(SETTINGS_FILE,'wb'))
67 print 'Saved.'
68 gtk.mainquit()
69
70
71 def on_DeleteAccountButton_clicked(self, b):
72 lw = self.xml.get_widget("accountsList")
73 if lw.selection:
74 del self.accounts[lw.selection[0]]
75 self.refreshAccounts()
76
77 def on_LogOnButton_clicked(self, b):
78 lw = self.xml.get_widget("accountsList")
79 if lw.selection:
80 self.accounts[lw.selection[0]].logOn(self.chatui)
81
82
83 class DummyAccountForm:
84 def __init__(self, manager):
85 self.widget = gtk.GtkButton("HELLO")
86
87 def create(self, sname, autoLogin):
88 return None
89
90
91 class NewAccount:
92 def __init__(self, manager):
93 self.manager = manager
94 self.manager.lockNewAccount(1)
95 self.xml = openGlade(GLADE_FILE, root="NewAccountWindow")
96 autoConnectMethods(self)
97 self.widget = self.xml.get_widget("NewAccountWindow")
98 self.frame = self.xml.get_widget("GatewayFrame")
99 # Making up for a deficiency in glade.
100 widgetMenu = self.xml.get_widget("GatewayOptionMenu")
101 m = gtk.GtkMenu()
102 activ = 0
103 self.currentGateway = None
104 for name, klas in registeredTypes:
105 i = gtk.GtkMenuItem(name)
106 m.append(i)
107 k = klas(self.manager)
108 i.connect("activate", self.gatewaySelected, k)
109 if not activ:
110 activ = 1
111 self.gatewaySelected(None, k)
112 widgetMenu.set_menu(m)
113 self.widget.show_all()
114
115 def gatewaySelected(self, ig, k):
116 if self.currentGateway:
117 self.frame.remove(self.currentGateway.widget)
118 self.currentGateway = k
119 self.frame.add(k.widget)
120 k.widget.show_all()
121
122 def createAccount(self, b):
123 autoLogin = self.xml.get_widget("AutoLogin").get_active()
124 accountName = self.xml.get_widget("accountName").get_text()
125 x = self.currentGateway.create(accountName, autoLogin)
126 if x:
127 self.manager.created(x)
128 self.destroyMe()
129
130 def destroyMe(self, b=None):
131 self.widget.destroy()
132
133 def on_NewAccountWindow_destroy(self, w):
134 self.manager.lockNewAccount(0)
135
136 from twisted.words.im.pbsupport import PBAccount
137 from twisted.words.im.tocsupport import TOCAccount
138 from twisted.words.im.ircsupport import IRCAccount
139
140
141 class PBAccountForm:
142 def __init__(self, manager):
143 self.manager = manager
144 self.xml = openGlade(GLADE_FILE, root="PBAccountWidget")
145 autoConnectMethods(self)
146 self.widget = self.xml.get_widget("PBAccountWidget")
147 self.on_serviceType_changed()
148 self.selectedRow = None
149
150 def addPerspective(self, b):
151 stype = self.xml.get_widget("serviceType").get_text()
152 sname = self.xml.get_widget("serviceName").get_text()
153 pname = self.xml.get_widget("perspectiveName").get_text()
154 self.xml.get_widget("serviceList").append([stype, sname, pname])
155
156 def removePerspective(self, b):
157 if self.selectedRow is not None:
158 self.xml.get_widget("serviceList").remove(self.selectedRow)
159
160 def on_serviceType_changed(self, w=None):
161 self.xml.get_widget("serviceName").set_text(self.xml.get_widget("service Type").get_text())
162 self.xml.get_widget("perspectiveName").set_text(self.xml.get_widget("ide ntity").get_text())
163
164 on_identity_changed = on_serviceType_changed
165
166 def on_serviceList_select_row(self, slist, row, column, event):
167 self.selectedRow = row
168
169 def create(self, accName, autoLogin):
170 host = self.xml.get_widget("hostname").get_text()
171 port = self.xml.get_widget("portno").get_text()
172 user = self.xml.get_widget("identity").get_text()
173 pasw = self.xml.get_widget("password").get_text()
174 serviceList = self.xml.get_widget("serviceList")
175 services = []
176 for r in xrange(0, serviceList.rows):
177 row = []
178 for c in xrange(0, serviceList.columns):
179 row.append(serviceList.get_text(r, c))
180 services.append(row)
181 if not services:
182 services.append([
183 self.xml.get_widget("serviceType").get_text(),
184 self.xml.get_widget("serviceName").get_text(),
185 self.xml.get_widget("perspectiveName").get_text()])
186 return PBAccount(accName, autoLogin, user, pasw, host, int(port),
187 services)
188
189
190 class TOCAccountForm:
191 def __init__(self, maanger):
192 self.xml = openGlade(GLADE_FILE, root="TOCAccountWidget")
193 self.widget = self.xml.get_widget("TOCAccountWidget")
194
195 def create(self, accountName, autoLogin):
196 return TOCAccount(
197 accountName, autoLogin,
198 self.xml.get_widget("TOCName").get_text(),
199 self.xml.get_widget("TOCPass").get_text(),
200 self.xml.get_widget("TOCHost").get_text(),
201 int(self.xml.get_widget("TOCPort").get_text()) )
202
203
204 class IRCAccountForm:
205 def __init__(self, maanger):
206 self.xml = openGlade(GLADE_FILE, root="IRCAccountWidget")
207 self.widget = self.xml.get_widget("IRCAccountWidget")
208
209 def create(self, accountName, autoLogin):
210 return IRCAccount(
211 accountName, autoLogin,
212 self.xml.get_widget("ircNick").get_text(),
213 self.xml.get_widget("ircPassword").get_text(),
214 self.xml.get_widget("ircServer").get_text(),
215 int(self.xml.get_widget("ircPort").get_text()),
216 self.xml.get_widget("ircChannels").get_text(),
217 )
218
219
220
221 registeredTypes = [ ("Twisted", PBAccountForm),
222 ("AOL Instant Messenger", TOCAccountForm),
223 ["IRC", IRCAccountForm],
224 ("Dummy", DummyAccountForm) ]
OLDNEW
« no previous file with comments | « third_party/twisted_8_1/twisted/words/im/basesupport.py ('k') | third_party/twisted_8_1/twisted/words/im/gtkchat.py » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698