gajim: merge

2012-08-24 Thread Fomin Denis
changeset 24193ae70518 in /home/hg/repos/gajim

details:http://hg.gajim.org/gajim?cmd=changeset;node=24193ae70518
description: merge
___
Commits mailing list
Commits@gajim.org
http://lists.gajim.org/cgi-bin/listinfo/commits


gajim: fix var name

2012-08-24 Thread Yann Leboulanger
changeset a80a9012088f in /home/hg/repos/gajim

details:http://hg.gajim.org/gajim?cmd=changeset;node=a80a9012088f
description: fix var name

diffstat:

 src/dialogs.py |  2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)

diffs (12 lines):

diff -r 59e1207ca9eb -r a80a9012088f src/dialogs.py
--- a/src/dialogs.pyFri Aug 24 09:37:40 2012 +0200
+++ b/src/dialogs.pyFri Aug 24 09:50:50 2012 +0200
@@ -4482,7 +4482,7 @@
 sectext = _('$Contact has invited you to group chat %(room_jid)s')\
 % {'room_jid': room_jid}
 contact = gajim.contacts.get_first_contact_from_jid(account, jid)
-contact_text = contact and contact.name or contact_jid
+contact_text = contact and contact.name or jid
 sectext = sectext.replace('$Contact', contact_text)
 
 if comment: # only if not None and not ''
___
Commits mailing list
Commits@gajim.org
http://lists.gajim.org/cgi-bin/listinfo/commits


gajim: missing commit

2012-08-24 Thread Yann Leboulanger
changeset 59be13833475 in /home/hg/repos/gajim

details:http://hg.gajim.org/gajim?cmd=changeset;node=59be13833475
description: missing commit

diffstat:

 src/common/connection_handlers.py |  4 
 src/gui_interface.py  |  1 -
 2 files changed, 4 insertions(+), 1 deletions(-)

diffs (25 lines):

diff -r a80a9012088f -r 59be13833475 src/common/connection_handlers.py
--- a/src/common/connection_handlers.py Fri Aug 24 09:50:50 2012 +0200
+++ b/src/common/connection_handlers.py Fri Aug 24 10:13:55 2012 +0200
@@ -1043,6 +1043,10 @@
 gajim.nec.push_incoming_event(GcInvitationReceivedEvent(None,
 conn=self, msg_obj=obj))
 return True
+elif obj.decline_tag is not None:
+gajim.nec.push_incoming_event(GcDeclineReceivedEvent(None,
+conn=self, msg_obj=obj))
+return True
 
 # process and dispatch an error message
 def dispatch_error_message(self, msg, msgtxt, session, frm, tim):
diff -r a80a9012088f -r 59be13833475 src/gui_interface.py
--- a/src/gui_interface.py  Fri Aug 24 09:50:50 2012 +0200
+++ b/src/gui_interface.py  Fri Aug 24 10:13:55 2012 +0200
@@ -625,7 +625,6 @@
 
 def handle_event_gc_invitation(self, obj):
 #('GC_INVITATION', (room_jid, jid_from, reason, password, 
is_continued))
-jid = gajim.get_jid_without_resource(obj.jid_from)
 account = obj.conn.name
 if helpers.allow_popup_window(account) or not self.systray_enabled:
 dialogs.InvitationReceivedDialog(account, obj.room_jid,
___
Commits mailing list
Commits@gajim.org
http://lists.gajim.org/cgi-bin/listinfo/commits


gajim: store full from jid in gc-invite event.

2012-08-24 Thread Yann Leboulanger
changeset 797ac319baa9 in /home/hg/repos/gajim

details:http://hg.gajim.org/gajim?cmd=changeset;node=797ac319baa9
description: store full from jid in gc-invite event.
fix receiving decline tag

diffstat:

 src/common/connection_handlers_events.py |  3 ++-
 src/gui_interface.py |  2 +-
 src/roster_window.py |  4 ++--
 3 files changed, 5 insertions(+), 4 deletions(-)

diffs (46 lines):

diff -r 59be13833475 -r 797ac319baa9 src/common/connection_handlers_events.py
--- a/src/common/connection_handlers_events.py  Fri Aug 24 10:13:55 2012 +0200
+++ b/src/common/connection_handlers_events.py  Fri Aug 24 10:27:51 2012 +0200
@@ -1207,7 +1207,7 @@
 def generate(self):
 self.room_jid = self.msg_obj.fjid
 
-item = self.msg_obj.invite_tag.getTag('decline')
+item = self.msg_obj.decline_tag.getTag('decline')
 try:
 self.jid_from = helpers.parse_jid(item.getAttr('from'))
 except helpers.InvalidFormat:
@@ -1234,6 +1234,7 @@
 self.resource = self.msg_obj.resource
 self.mtype = self.msg_obj.mtype
 self.invite_tag = self.msg_obj.invite_tag
+self.decline_tag = self.msg_obj.decline_tag
 self.thread_id = self.msg_obj.thread_id
 self.msgtxt = self.msg_obj.msgtxt
 self.gc_control = self.msg_obj.gc_control
diff -r 59be13833475 -r 797ac319baa9 src/gui_interface.py
--- a/src/gui_interface.py  Fri Aug 24 10:13:55 2012 +0200
+++ b/src/gui_interface.py  Fri Aug 24 10:27:51 2012 +0200
@@ -633,7 +633,7 @@
 return
 
 self.add_event(account, obj.jid_from, 'gc-invitation', (obj.room_jid,
-obj.reason, obj.password, obj.is_continued))
+obj.reason, obj.password, obj.is_continued, obj.jid_from))
 
 if helpers.allow_showing_notification(account):
 path = gtkgui_helpers.get_icon_path('gajim-gc_invitation', 48)
diff -r 59be13833475 -r 797ac319baa9 src/roster_window.py
--- a/src/roster_window.py  Fri Aug 24 10:13:55 2012 +0200
+++ b/src/roster_window.py  Fri Aug 24 10:27:51 2012 +0200
@@ -1985,8 +1985,8 @@
 gajim.events.remove_events(account, jid, event)
 return True
 elif event.type_ == 'gc-invitation':
-dialogs.InvitationReceivedDialog(account, data[0], jid, data[2],
-data[1])
+dialogs.InvitationReceivedDialog(account, data[0], data[4], 
data[2],
+data[1], is_continued=data[3])
 gajim.events.remove_events(account, jid, event)
 return True
 elif event.type_ == 'subscription_request':
___
Commits mailing list
Commits@gajim.org
http://lists.gajim.org/cgi-bin/listinfo/commits


gajim: improve decline implementation

2012-08-24 Thread Yann Leboulanger
changeset e9d7e4a394ea in /home/hg/repos/gajim

details:http://hg.gajim.org/gajim?cmd=changeset;node=e9d7e4a394ea
description: improve decline implementation

diffstat:

 src/common/connection_handlers.py |  8 
 src/gui_interface.py  |  2 +-
 2 files changed, 5 insertions(+), 5 deletions(-)

diffs (37 lines):

diff -r cb290fb85f36 -r e9d7e4a394ea src/common/connection_handlers.py
--- a/src/common/connection_handlers.py Fri Aug 24 10:37:24 2012 +0200
+++ b/src/common/connection_handlers.py Fri Aug 24 12:54:27 2012 +0200
@@ -1035,10 +1035,6 @@
 self.dispatch_error_message(obj.stanza, obj.msgtxt,
 obj.session, obj.fjid, obj.timestamp)
 return True
-elif obj.mtype == 'groupchat':
-gajim.nec.push_incoming_event(GcMessageReceivedEvent(None,
-conn=self, msg_obj=obj))
-return True
 elif obj.invite_tag is not None:
 gajim.nec.push_incoming_event(GcInvitationReceivedEvent(None,
 conn=self, msg_obj=obj))
@@ -1047,6 +1043,10 @@
 gajim.nec.push_incoming_event(GcDeclineReceivedEvent(None,
 conn=self, msg_obj=obj))
 return True
+elif obj.mtype == 'groupchat':
+gajim.nec.push_incoming_event(GcMessageReceivedEvent(None,
+conn=self, msg_obj=obj))
+return True
 
 # process and dispatch an error message
 def dispatch_error_message(self, msg, msgtxt, session, frm, tim):
diff -r cb290fb85f36 -r e9d7e4a394ea src/gui_interface.py
--- a/src/gui_interface.py  Fri Aug 24 10:37:24 2012 +0200
+++ b/src/gui_interface.py  Fri Aug 24 12:54:27 2012 +0200
@@ -621,7 +621,7 @@
 if gc_control:
 gc_control.print_conversation(
 _('%(jid)s declined the invitation: %(reason)s') % {
-'jid': obj.room_jid, 'reason': obj.reason}, graphics=False)
+'jid': obj.jid_from, 'reason': obj.reason}, graphics=False)
 
 def handle_event_gc_invitation(self, obj):
 #('GC_INVITATION', (room_jid, jid_from, reason, password, 
is_continued))
___
Commits mailing list
Commits@gajim.org
http://lists.gajim.org/cgi-bin/listinfo/commits


gajim: add ctrl+s shortcut to change status message.

2012-08-24 Thread Yann Leboulanger
changeset 7719b4c17326 in /home/hg/repos/gajim

details:http://hg.gajim.org/gajim?cmd=changeset;node=7719b4c17326
description: add ctrl+s shortcut to change status message.

diffstat:

 src/roster_window.py |  32 ++--
 1 files changed, 30 insertions(+), 2 deletions(-)

diffs (56 lines):

diff -r e9d7e4a394ea -r 7719b4c17326 src/roster_window.py
--- a/src/roster_window.py  Fri Aug 24 12:54:27 2012 +0200
+++ b/src/roster_window.py  Fri Aug 24 13:33:27 2012 +0200
@@ -3540,6 +3540,27 @@
 self.on_row_activated(widget, path)
 self.clicked_path = None
 
+def accel_group_func(self, accel_group, acceleratable, keyval, modifier):
+# CTRL mask
+if modifier  gtk.gdk.CONTROL_MASK:
+if keyval == gtk.keysyms.s: # CTRL + s
+model = self.status_combobox.get_model()
+accounts = gajim.connections.keys()
+status = model[self.previous_status_combobox_active][2].decode(
+'utf-8')
+def on_response(message, pep_dict):
+if message is not None: # None if user pressed Cancel
+for account in accounts:
+if not gajim.config.get_per('accounts', account,
+'sync_with_global_status'):
+continue
+current_show = gajim.SHOW_LIST[
+gajim.connections[account].connected]
+self.send_status(account, current_show, message)
+self.send_pep(account, pep_dict)
+dialogs.ChangeStatusMessageDialog(on_response, status)
+return
+
 def on_roster_treeview_button_press_event(self, widget, event):
 # hide tooltip, no matter the button is pressed
 self.tooltip.hide_tooltip()
@@ -6359,8 +6380,8 @@
 # activity_pixbuf, tune_pixbuf, location_pixbuf, avatar_pixbuf,
 # padlock_pixbuf]
 self.columns = [gtk.Image, str, str, str, str,
-gtk.gdk.Pixbuf, gtk.gdk.Pixbuf, gtk.gdk.Pixbuf,
-gtk.gdk.Pixbuf, gtk.gdk.Pixbuf, gtk.gdk.Pixbuf]
+gtk.gdk.Pixbuf, gtk.gdk.Pixbuf, gtk.gdk.Pixbuf, gtk.gdk.Pixbuf,
+gtk.gdk.Pixbuf, gtk.gdk.Pixbuf]
 self.xml = gtkgui_helpers.get_gtk_builder('roster_window.ui')
 self.window = self.xml.get_object('roster_window')
 self.hpaned = self.xml.get_object('roster_hpaned')
@@ -6630,6 +6651,13 @@
 new_chat_menuitem.add_accelerator('activate', accel_group,
 gtk.keysyms.n, gtk.gdk.CONTROL_MASK, gtk.ACCEL_VISIBLE)
 
+# Setting CTRL+S to be the shortcut to change status message
+accel_group = gtk.AccelGroup()
+keyval, mod = gtk.accelerator_parse('Controls')
+accel_group.connect_group(keyval, mod, gtk.ACCEL_VISIBLE,
+self.accel_group_func)
+self.window.add_accel_group(accel_group)
+
 # Setting the search stuff
 self.rfilter_entry = self.xml.get_object('rfilter_entry')
 self.rfilter_string = ''
___
Commits mailing list
Commits@gajim.org
http://lists.gajim.org/cgi-bin/listinfo/commits


gajim: Add Keyboard Shortcuts menuitem to Help menu

2012-08-24 Thread Fomin Denis
changeset 0e4f8195b061 in /home/hg/repos/gajim

details:http://hg.gajim.org/gajim?cmd=changeset;node=0e4f8195b061
description: Add Keyboard Shortcuts menuitem to Help menu

diffstat:

 data/gui/roster_window.ui |  17 -
 src/roster_window.py  |   4 
 2 files changed, 20 insertions(+), 1 deletions(-)

diffs (55 lines):

diff -r 7719b4c17326 -r 0e4f8195b061 data/gui/roster_window.ui
--- a/data/gui/roster_window.ui Fri Aug 24 13:33:27 2012 +0200
+++ b/data/gui/roster_window.ui Fri Aug 24 17:26:00 2012 +0400
@@ -12,9 +12,9 @@
 accel-groups
   group name=accelgroup1/
 /accel-groups
-signal name=focus_in_event handler=on_roster_window_focus_in_event/
 signal name=key_press_event handler=on_roster_window_key_press_event/
 signal name=delete_event handler=on_roster_window_delete_event/
+signal name=focus_in_event handler=on_roster_window_focus_in_event/
 signal name=focus_out_event handler=on_roster_window_focus_out_event/
 signal name=popup_menu handler=on_roster_window_popup_menu/
 child
@@ -283,6 +283,16 @@
   /object
 /child
 child
+  object class=GtkImageMenuItem 
id=keyboard_shortcuts_menuitem
+property name=label translatable=yesKeyboard 
Shortcuts/property
+property name=visibleTrue/property
+property name=use_underlineTrue/property
+property name=imageimage14/property
+property name=use_stockFalse/property
+signal name=activate 
handler=on_keyboard_shortcuts_menuitem_activate/
+  /object
+/child
+child
   object class=GtkSeparatorMenuItem id=menuitem1
 property name=visibleTrue/property
   /object
@@ -467,4 +477,9 @@
 property name=stockgtk-disconnect/property
 property name=icon-size1/property
   /object
+  object class=GtkImage id=image14
+property name=visibleTrue/property
+property name=stockgtk-info/property
+property name=icon-size1/property
+  /object
 /interface
diff -r 7719b4c17326 -r 0e4f8195b061 src/roster_window.py
--- a/src/roster_window.py  Fri Aug 24 13:33:27 2012 +0200
+++ b/src/roster_window.py  Fri Aug 24 17:26:00 2012 +0400
@@ -3978,6 +3978,10 @@
 helpers.launch_browser_mailer('url',
 'http://trac.gajim.org/wiki/GajimFaq')
 
+def on_keyboard_shortcuts_menuitem_activate(self, widget):
+helpers.launch_browser_mailer('url',
+'http://trac.gajim.org/wiki/KeyboardShortcuts')
+
 def on_features_menuitem_activate(self, widget):
 features_window.FeaturesWindow()
 
___
Commits mailing list
Commits@gajim.org
http://lists.gajim.org/cgi-bin/listinfo/commits


gajim: set the focus when the first tab is opened

2012-08-24 Thread Fomin Denis
changeset df0845a7b449 in /home/hg/repos/gajim

details:http://hg.gajim.org/gajim?cmd=changeset;node=df0845a7b449
description: set the focus when the first tab is opened

diffstat:

 data/gui/message_window.ui |  1 -
 src/message_window.py  |  3 +--
 2 files changed, 1 insertions(+), 3 deletions(-)

diffs (31 lines):

diff -r 0e4f8195b061 -r df0845a7b449 data/gui/message_window.ui
--- a/data/gui/message_window.uiFri Aug 24 17:26:00 2012 +0400
+++ b/data/gui/message_window.uiFri Aug 24 18:21:38 2012 +0400
@@ -12,7 +12,6 @@
 child
   object class=GtkNotebook id=notebook
 property name=visibleTrue/property
-property name=can_focusTrue/property
 property name=scrollableTrue/property
 property name=tab_border0/property
   /object
diff -r 0e4f8195b061 -r df0845a7b449 src/message_window.py
--- a/src/message_window.py Fri Aug 24 17:26:00 2012 +0400
+++ b/src/message_window.py Fri Aug 24 18:21:38 2012 +0400
@@ -144,8 +144,6 @@
 self.notebook.set_show_border(gajim.config.get('tabs_border'))
 self.show_icon()
 
-gobject.idle_add(self.notebook.grab_focus)
-
 def change_account_name(self, old_name, new_name):
 if old_name in self._controls:
 self._controls[new_name] = self._controls[old_name]
@@ -307,6 +305,7 @@
 # NOTE: we do not call set_control_active(True) since we don't know
 # whether the tab is the active one.
 self.show_title()
+gobject.timeout_add(500, control.msg_textview.grab_focus)
 
 def on_tab_eventbox_button_press_event(self, widget, event, child):
 if event.button == 3: # right click
___
Commits mailing list
Commits@gajim.org
http://lists.gajim.org/cgi-bin/listinfo/commits


gajim: refactoring

2012-08-24 Thread Jefry Lagrange
changeset ea8a9217a662 in /home/hg/repos/gajim

details:http://hg.gajim.org/gajim?cmd=changeset;node=ea8a9217a662
description: refactoring

diffstat:

 src/common/jingle.py |   2 +-
 src/common/jingle_ft.py  |  11 +++--
 src/common/jingle_session.py |  49 +++
 src/gui_interface.py |   6 ++--
 4 files changed, 34 insertions(+), 34 deletions(-)

diffs (182 lines):

diff -r df0845a7b449 -r ea8a9217a662 src/common/jingle.py
--- a/src/common/jingle.py  Fri Aug 24 18:21:38 2012 +0400
+++ b/src/common/jingle.py  Fri Aug 24 20:13:25 2012 -0400
@@ -163,7 +163,7 @@
 transport = JingleTransportIBB()
 c = JingleFileTransfer(jingle, transport=transport,
 file_props=file_props, use_security=use_security)
-jingle.hash_algo = self.__hash_support(contact) 
+file_props.algo = self.__hash_support(contact) 
 jingle.add_content('file' + helpers.get_random_string_16(), c)
 jingle.start_session()
 return c.transport.sid
diff -r df0845a7b449 -r ea8a9217a662 src/common/jingle_ft.py
--- a/src/common/jingle_ft.py   Fri Aug 24 18:21:38 2012 +0400
+++ b/src/common/jingle_ft.py   Fri Aug 24 20:13:25 2012 -0400
@@ -117,12 +117,9 @@
 conn=self.session.connection, stanza=stanza, 
jingle_content=content,
 FT_content=self))
 self._listen_host()
-# Delete this after file_props refactoring this shouldn't be necesary
-self.session.file_hash = self.file_props.hash_
-self.session.hash_algo = self.file_props.algo
 
 def __on_session_initiate_sent(self, stanza, content, error, action):
-# Calculate file_hash in a new thread
+# Calculate file hash in a new thread
 # if we haven't sent the hash already.
 if self.file_props.hash_ is None:
 self.hashThread = threading.Thread(target=self.__send_hash)
@@ -137,7 +134,7 @@
 
 def _calcHash(self):
 # Caculates the hash and returns a xep-300 hash stanza
-if self.session.hash_algo == None:
+if self.file_props.algo == None:
 return
 try:
 file_ = open(self.file_props.file_name, 'r')
@@ -145,14 +142,14 @@
 # can't open file
 return
 h = xmpp.Hashes()
-hash_ = h.calculateHash(self.session.hash_algo, file_)
+hash_ = h.calculateHash(self.file_props.algo, file_)
 # DEBUG
 #hash_ = '1294809248109223'
 if not hash_:
 # Hash alogrithm not supported
 return
 self.file_props.hash_ = hash_
-h.addHash(hash_, self.session.hash_algo)
+h.addHash(hash_, self.file_props.algo)
 return h
 
 def __on_session_accept(self, stanza, content, error, action):
diff -r df0845a7b449 -r ea8a9217a662 src/common/jingle_session.py
--- a/src/common/jingle_session.py  Fri Aug 24 18:21:38 2012 +0400
+++ b/src/common/jingle_session.py  Fri Aug 24 20:13:25 2012 -0400
@@ -98,34 +98,33 @@
 else:
 self.iq_ids = []
 self.accepted = True # is this session accepted by user
-# Hash algorithm that we are using to calculate the integrity of the 
-# file. Could be 'md5', 'sha-1', etc...
-self.hash_algo = None
-self.file_hash = None
 # Tells whether this session is a file transfer or not
 self.session_type_FT = False
 # callbacks to call on proper contents
 # use .prepend() to add new callbacks, especially when you're going
 # to send error instead of ack
 self.callbacks = {
-'content-accept':   [self.__on_content_accept, 
self.__broadcast,
-self.__ack],
+'content-accept':   [self.__on_content_accept, 
+ self.__broadcast, self.__ack],
 'content-add':  [self.__on_content_add, 
self.__broadcast,
-self.__ack], #TODO
+ self.__ack], #TODO
 'content-modify':   [self.__ack], #TODO
-'content-reject':   [self.__ack, 
self.__on_content_remove], #TODO
+'content-reject':   [self.__ack, self.__on_content_remove],
 'content-remove':   [self.__ack, self.__on_content_remove],
 'description-info': [self.__broadcast, self.__ack], #TODO
 'security-info':[self.__ack], #TODO
-'session-accept':   [self.__on_session_accept, 
self.__on_content_accept,
-self.__broadcast],
-'session-info': [self.__broadcast, 
self.__on_session_info, self.__ack],
-'session-initiate': [self.__on_session_initiate, 
self.__broadcast,
-self.__ack],
-'session-terminate':[self.__on_session_terminate,