Changeset 7888 for branches/gajim_0.11/src
- Timestamp:
- 01/23/07 21:32:43 (19 months ago)
- Location:
- branches/gajim_0.11/src
- Files:
-
- 12 modified
-
adhoc_commands.py (modified) (1 diff)
-
common/connection_handlers.py (modified) (2 diffs)
-
common/connection.py (modified) (1 diff)
-
common/helpers.py (modified) (2 diffs)
-
common/optparser.py (modified) (1 diff)
-
common/passwords.py (modified) (2 diffs)
-
config.py (modified) (7 diffs)
-
conversation_textview.py (modified) (1 diff)
-
disco.py (modified) (7 diffs)
-
gtkgui_helpers.py (modified) (1 diff)
-
profile_window.py (modified) (4 diffs)
-
remote_control.py (modified) (1 diff)
Legend:
- Unmodified
- Added
- Removed
-
branches/gajim_0.11/src/adhoc_commands.py
r7829 r7888 443 443 # no commands => no commands stage 444 444 # commands => command selection stage 445 items = response.getTag('query').getTags('item') 445 query = response.getTag('query') 446 if query: 447 items = query.getTags('item') 448 else: 449 items = [] 446 450 if len(items)==0: 447 451 self.commandlist = [] -
branches/gajim_0.11/src/common/connection_handlers.py
r7829 r7888 1325 1325 qp = iq_obj.setTag('time') 1326 1326 qp.setTagData('utc', strftime("%Y-%m-%dT%TZ", gmtime())) 1327 qp.setTagData('tzo', "%+03d:00"% ( time.timezone/(60*60)))1327 qp.setTagData('tzo', "%+03d:00"% (-time.timezone/(60*60))) 1328 1328 self.connection.send(iq_obj) 1329 1329 raise common.xmpp.NodeProcessed … … 1387 1387 jid = helpers.get_jid_from_iq(msg) 1388 1388 no_log_for = gajim.config.get_per('accounts', self.name, 1389 'no_log_for').split() 1389 'no_log_for') 1390 if not no_log_for: 1391 no_log_for = '' 1392 no_log_for = no_log_for.split() 1390 1393 encrypted = False 1391 1394 chatstate = None -
branches/gajim_0.11/src/common/connection.py
r7829 r7888 343 343 self._hostname = hostname 344 344 if use_srv: 345 # add request for srv query to the resolve, on result '_on_resolve' will be called 346 gajim.resolver.resolve('_xmpp-client._tcp.' + h.encode('utf-8'), self._on_resolve) 345 # add request for srv query to the resolve, on result '_on_resolve' 346 # will be called 347 gajim.resolver.resolve('_xmpp-client._tcp.' + helpers.idn_to_ascii(h), 348 self._on_resolve) 347 349 else: 348 350 self._on_resolve('', []) -
branches/gajim_0.11/src/common/helpers.py
r7787 r7888 26 26 import sha 27 27 from encodings.punycode import punycode_encode 28 from encodings import idna 28 29 29 30 import gajim … … 85 86 86 87 return prep(*decompose_jid(jidstring)) 88 89 def idn_to_ascii(host): 90 '''convert IDN (Internationalized Domain Names) to ACE (ASCII-compatible encoding)''' 91 labels = idna.dots.split(host) 92 converted_labels = [] 93 for label in labels: 94 converted_labels.append(idna.ToASCII(label)) 95 return ".".join(converted_labels) 87 96 88 97 def parse_resource(resource): -
branches/gajim_0.11/src/common/optparser.py
r7829 r7888 373 373 '''fill time_stamp from before_time and after_time''' 374 374 if self.old_values.has_key('before_time'): 375 gajim.config.set('time_stamp', '%s%% H:%%M%s ' % (375 gajim.config.set('time_stamp', '%s%%X%s ' % ( 376 376 self.old_values['before_time'], self.old_values['after_time'])) 377 377 gajim.config.set('version', '0.11.0.1') -
branches/gajim_0.11/src/common/passwords.py
r7829 r7888 19 19 USER_HAS_GNOMEKEYRING = False 20 20 USER_USES_GNOMEKEYRING = False 21 if gajim.config.get('use_gnomekeyring'): 22 try: 23 import gnomekeyring 24 except ImportError: 25 pass 26 else: 27 USER_HAS_GNOMEKEYRING = True 28 if gnomekeyring.is_available(): 29 USER_USES_GNOMEKEYRING = True 30 else: 31 USER_USES_GNOMEKEYRING = False 21 gnomekeyring = None 32 22 33 23 class PasswordStorage(object): … … 103 93 global storage 104 94 if storage is None: # None is only in first time get_storage is called 95 if gajim.config.get('use_gnomekeyring'): 96 global gnomekeyring 97 try: 98 import gnomekeyring 99 except ImportError: 100 pass 101 else: 102 global USER_HAS_GNOMEKEYRING 103 global USER_USES_GNOMEKEYRING 104 USER_HAS_GNOMEKEYRING = True 105 if gnomekeyring.is_available(): 106 USER_USES_GNOMEKEYRING = True 107 else: 108 USER_USES_GNOMEKEYRING = False 105 109 if USER_USES_GNOMEKEYRING: 106 110 try: -
branches/gajim_0.11/src/config.py
r7841 r7888 234 234 if gajim.config.get('print_time') == 'never': 235 235 self.xml.get_widget('time_never_radiobutton').set_active(True) 236 self._set_sensitivity_for_before_after_time_widgets(False)237 236 elif gajim.config.get('print_time') == 'sometimes': 238 237 self.xml.get_widget('time_sometimes_radiobutton').set_active(True) 239 self._set_sensitivity_for_before_after_time_widgets(False)240 238 else: 241 239 self.xml.get_widget('time_always_radiobutton').set_active(True) … … 697 695 self.on_checkbutton_toggled(widget, 'ignore_incoming_xhtml') 698 696 699 def _set_sensitivity_for_before_after_time_widgets(self, sensitive):700 self.xml.get_widget('time_stamp_label').set_sensitive(sensitive)701 self.xml.get_widget('time_stamp_textview').set_sensitive(sensitive)702 703 697 def on_time_never_radiobutton_toggled(self, widget): 704 698 if widget.get_active(): 705 699 gajim.config.set('print_time', 'never') 706 self._set_sensitivity_for_before_after_time_widgets(False)707 700 gajim.interface.save_config() 708 701 … … 710 703 if widget.get_active(): 711 704 gajim.config.set('print_time', 'sometimes') 712 self._set_sensitivity_for_before_after_time_widgets(False)713 705 gajim.interface.save_config() 714 706 … … 716 708 if widget.get_active(): 717 709 gajim.config.set('print_time', 'always') 718 self._set_sensitivity_for_before_after_time_widgets(True)719 710 gajim.interface.save_config() 720 711 … … 2279 2270 if self.infos.has_key('registered'): 2280 2271 del self.infos['registered'] 2281 else:2282 gajim.interface.roster.add_transport_to_roster(self.account,2283 self.service)2284 2272 gajim.connections[self.account].register_agent(self.service, 2285 2273 self.infos, True) # True is for is_form … … 2293 2281 if self.infos.has_key('registered'): 2294 2282 del self.infos['registered'] 2295 else:2296 gajim.interface.roster.add_transport_to_roster(self.account,2297 self.service)2298 2283 gajim.connections[self.account].register_agent(self.service, 2299 2284 self.infos) … … 2991 2976 dialogs.ErrorDialog(pritext, sectext) 2992 2977 return 2993 server = widgets['server_comboboxentry'].child.get_text() 2978 server = widgets['server_comboboxentry'].child.get_text().decode('utf-8') 2994 2979 savepass = widgets['save_password_checkbutton'].get_active() 2995 password = widgets['pass1_entry'].get_text() 2980 password = widgets['pass1_entry'].get_text().decode('utf-8') 2996 2981 2997 2982 if not self.modify: -
branches/gajim_0.11/src/conversation_textview.py
r7841 r7888 246 246 before_img_iter.backward_char() # one char back (an image also takes one char) 247 247 buffer.apply_tag_by_name('focus-out-line', before_img_iter, end_iter) 248 249 self.allow_focus_out_line = False 248 250 249 251 # update the iter we hold to make comparison the next time -
branches/gajim_0.11/src/disco.py
r7635 r7888 48 48 import gtkgui_helpers 49 49 import groups 50 import adhoc_commands 50 51 51 52 from common import gajim … … 987 988 self.register_button = None 988 989 self.join_button = None 990 self.execute_button = None 989 991 # Keep track of our treeview signals 990 992 self._view_signals = [] … … 1141 1143 def _add_actions(self): 1142 1144 AgentBrowser._add_actions(self) 1145 self.execute_button = gtk.Button() 1146 image = gtk.image_new_from_stock(gtk.STOCK_EXECUTE, gtk.ICON_SIZE_BUTTON) 1147 label = gtk.Label(_('_Execute Command...')) 1148 label.set_use_underline(True) 1149 hbox = gtk.HBox() 1150 hbox.pack_start(image, False, True, 6) 1151 hbox.pack_end(label, True, True) 1152 self.execute_button.add(hbox) 1153 self.execute_button.connect('clicked', self.on_execute_button_clicked) 1154 self.window.action_buttonbox.add(self.execute_button) 1155 self.execute_button.show_all() 1156 1143 1157 self.register_button = gtk.Button(label=_("Re_gister"), 1144 1158 use_underline=True) … … 1160 1174 1161 1175 def _clean_actions(self): 1176 if self.execute_button: 1177 self.execute_button.destroy() 1178 self.execute_button = None 1162 1179 if self.register_button: 1163 1180 self.register_button.destroy() … … 1179 1196 self.window.services_treeview.queue_draw() 1180 1197 1198 def on_execute_button_clicked(self, widget = None): 1199 '''When we want to execute a command: 1200 open adhoc command window''' 1201 model, iter = self.window.services_treeview.get_selection().get_selected() 1202 if not iter: 1203 return 1204 service = model[iter][0].decode('utf-8') 1205 adhoc_commands.CommandWindow(self.account, service) 1206 1181 1207 def on_register_button_clicked(self, widget = None): 1182 1208 '''When we want to register an agent: … … 1208 1234 1209 1235 def update_actions(self): 1236 if self.execute_button: 1237 self.execute_button.set_sensitive(False) 1210 1238 if self.register_button: 1211 1239 self.register_button.set_sensitive(False) … … 1244 1272 def _update_actions(self, jid, node, identities, features, data): 1245 1273 AgentBrowser._update_actions(self, jid, node, identities, features, data) 1274 if self.execute_button and xmpp.NS_COMMANDS in features: 1275 self.execute_button.set_sensitive(True) 1246 1276 if self.register_button and xmpp.NS_REGISTER in features: 1247 1277 # We can register this agent -
branches/gajim_0.11/src/gtkgui_helpers.py
r7829 r7888 355 355 pixbuf = pixbufloader.get_pixbuf() 356 356 except gobject.GError: # 'unknown image format' 357 pixbufloader.close() 357 358 pixbuf = None 358 359 if want_type: -
branches/gajim_0.11/src/profile_window.py
r7829 r7888 78 78 image = gtk.Image() 79 79 self.xml.get_widget('PHOTO_button').set_image(image) 80 text_button = self.xml.get_widget('NOPHOTO_button') 81 # We use 2 buttons because some GTK theme don't show images in buttons 82 text_button.set_no_show_all(True) 83 text_button.hide() 80 84 self.xml.signal_autoconnect(self) 81 85 self.window.show_all() … … 105 109 image = button.get_image() 106 110 image.set_from_pixbuf(None) 107 button.set_label(_('Click to set your avatar')) 111 button.hide() 112 text_button = self.xml.get_widget('NOPHOTO_button') 113 text_button.show() 108 114 self.avatar_encoded = None 109 115 self.avatar_mime_type = None … … 153 159 image = button.get_image() 154 160 image.set_from_pixbuf(pixbuf) 155 button.set_label('') 161 button.show() 162 text_button = self.xml.get_widget('NOPHOTO_button') 163 text_button.hide() 156 164 self.avatar_encoded = base64.encodestring(data) 157 165 # returns None if unknown type … … 203 211 204 212 def set_values(self, vcard): 213 button = self.xml.get_widget('PHOTO_button') 214 image = button.get_image() 215 text_button = self.xml.get_widget('NOPHOTO_button') 205 216 if not 'PHOTO' in vcard: 206 217 # set default image 207 button = self.xml.get_widget('PHOTO_button')208 image = button.get_image()209 218 image.set_from_pixbuf(None) 210 button.set_label(_('Click to set your avatar')) 219 button.hide() 220 text_button.show() 211 221 for i in vcard.keys(): 212 222 if i == 'PHOTO': 213 223 pixbuf, self.avatar_encoded, self.avatar_mime_type = \ 214 224 get_avatar_pixbuf_encoded_mime(vcard[i]) 215 button = self.xml.get_widget('PHOTO_button')216 image = button.get_image()217 225 if not pixbuf: 218 226 image.set_from_pixbuf(None) 219 button.set_label(_('Click to set your avatar')) 227 button.hide() 228 text_button.show() 220 229 continue 221 230 pixbuf = gtkgui_helpers.get_scaled_pixbuf(pixbuf, 'vcard') 222 231 image.set_from_pixbuf(pixbuf) 223 button.set_label('') 232 button.show() 233 text_button.hide() 224 234 continue 225 235 if i == 'ADR' or i == 'TEL' or i == 'EMAIL': -
branches/gajim_0.11/src/remote_control.py
r7829 r7888 395 395 return result 396 396 397 @dbus.service.method(INTERFACE, in_signature='s', out_signature='a {ss}')397 @dbus.service.method(INTERFACE, in_signature='s', out_signature='av') 398 398 def list_contacts(self, account): 399 399 '''list all contacts in the roster. If the first argument is specified, 400 400 then return the contacts for the specified account''' 401 result = dbus.Array([], signature=' s')401 result = dbus.Array([], signature='a{sv}') 402 402 accounts = gajim.contacts.get_accounts() 403 403 if len(accounts) == 0:
