changeset b0303720e4f8 in /home/hg/repos/gajim
details:http://hg.gajim.org/gajim?cmd=changeset;node=b0303720e4f8 description: no need of IF NOT EXISTS when creating the database X-Hg-Repo: gajim Subject: gajim: set iconset to DEFAULT_ICONSET when configured one doesn't exist. Fixes #5083 From: Yann Leboulanger asterix@lagaule.org
changeset 34447e04adef in /home/hg/repos/gajim
details:http://hg.gajim.org/gajim?cmd=changeset;node=34447e04adef description: set iconset to DEFAULT_ICONSET when configured one doesn't exist. Fixes #5083
diffstat:
Makefile.am | 9 +-------- README.html | 3 +-- configure.ac | 22 ---------------------- data/Makefile.am | 8 +------- po/POTFILES.skip | 1 + src/adhoc_commands.py | 12 ++++++++---- src/chat_control.py | 9 +++++++-- src/common/GnuPG.py | 5 ++++- src/common/check_paths.py | 2 +- src/common/connection_handlers.py | 2 ++ src/common/zeroconf/client_zeroconf.py | 3 ++- src/disco.py | 8 +++++--- src/filetransfers_window.py | 2 +- src/gajim.py | 20 ++++++++++++++++---- src/groupchat_control.py | 8 ++++++++ src/gtkgui_helpers.py | 10 ++++++++-- src/history_manager.py | 29 +++++++++++++++++++++++++++-- src/vcard.py | 15 +++++++-------- 18 files changed, 100 insertions(+), 68 deletions(-)
diffs (truncated from 454 to 300 lines):
diff -r 6f6c0ac4236d -r 34447e04adef Makefile.am --- a/Makefile.am Wed May 20 10:58:46 2009 +0200 +++ b/Makefile.am Wed Jun 10 11:44:58 2009 +0200 @@ -2,14 +2,7 @@
ACLOCAL_AMFLAGS = -I m4
-if BUILD_REMOTE_CONTROL -OPTIONAL_BIN = scripts/gajim-remote -else -OPTIONAL_BIN = -endif - -bin_SCRIPTS = scripts/gajim scripts/gajim-history-manager $(OPTIONAL_BIN) - +bin_SCRIPTS = scripts/gajim scripts/gajim-history-manager scripts/gajim-remote
docfilesdir = $(docdir) docfiles_DATA = README \ diff -r 6f6c0ac4236d -r 34447e04adef README.html --- a/README.html Wed May 20 10:58:46 2009 +0200 +++ b/README.html Wed Jun 10 11:44:58 2009 +0200 @@ -37,7 +37,7 @@ <li>GnomePythonExtras 2.10 or above (aka gnome-python-desktop) so you can avoid compiling trayicon and gtkspell</li> <li>gnome-python-desktop (for GnomeKeyring support)</li> <li>notification-daemon or notify-python (and D-Bus) to get cooler popups</li> -<li>D-Bus running to have gajim-remote working. Some distributions split dbus-x11, which is needed for dbus to work with Gajim.</li> +<li>D-Bus running to have gajim-remote working. Some distributions split dbus-x11, which is needed for dbus to work with Gajim. Version >= 0.60 is required.</li> <li>python-dbus bindings</li> <li>python-sexy to have clickable URLs in chat windows</li> <li>python-kerberos to use GSSAPI authentification. Note: version1.1 or higher is required</li> @@ -55,7 +55,6 @@ <li>python-gtk2-dev</li> <li>libgtk2.0-dev aka. gtk2-devel</li> <li>libgtkspell-dev (for the gtkspell module)</li> -<li>libdbus-1-dev (for the remote control module)</li> <li>intltool (>= 0.40.1)</li> </ul>
diff -r 6f6c0ac4236d -r 34447e04adef configure.ac --- a/configure.ac Wed May 20 10:58:46 2009 +0200 +++ b/configure.ac Wed Jun 10 11:44:58 2009 +0200 @@ -45,27 +45,6 @@ PYGTK_DEFS=`$PKG_CONFIG --variable=defsdir pygtk-2.0` AC_SUBST(PYGTK_DEFS)
-dnl ***** -dnl dbus -dnl ***** -AC_ARG_ENABLE([remote], - [ --disable-remote disable remote control via DBus [default auto]], - enable_remote=$enableval, enable_remote=auto) - -if test "x$enable_remote" = "xauto"; then - PKG_CHECK_EXISTS([dbus-1],enable_remote=yes,enable_remote=no) -fi - -if test "x$enable_remote" = "xyes";then - PKG_CHECK_MODULES([DBUS], [dbus-1 >= 0.60]) - AC_SUBST(DBUS_CFLAGS) - AC_SUBST(DBUS_LIBS) - have_remote=true -else - have_remote=false -fi -AM_CONDITIONAL(BUILD_REMOTE_CONTROL, $have_remote) - AM_PATH_PYTHON([2.5]) if test "x$PYTHON" = "x:"; then AC_MSG_ERROR([Python not found]) @@ -184,7 +163,6 @@ echo " ***************************** Build features: - remote control ... ${have_remote} trayicon ......... ${have_trayicon} idle module OSX .. ${have_idle_osx} cocoa (OSX)....... ${have_cocoa} diff -r 6f6c0ac4236d -r 34447e04adef data/Makefile.am --- a/data/Makefile.am Wed May 20 10:58:46 2009 +0200 +++ b/data/Makefile.am Wed Jun 10 11:44:58 2009 +0200 @@ -14,13 +14,7 @@ otherdir = $(pkgdatadir)/data/other other_DATA = other/servers.xml other/cacerts.pem
-if BUILD_REMOTE_CONTROL -OPTIONAL_MAN = gajim-remote.1 -else -OPTIONAL_MAN = -endif - -man_MANS = gajim.1 $(OPTIONAL_MAN) +man_MANS = gajim.1 gajim-remote.1
EXTRA_DIST = $(desktop_in_files) \ diff -r 6f6c0ac4236d -r 34447e04adef po/POTFILES.skip --- a/po/POTFILES.skip Wed May 20 10:58:46 2009 +0200 +++ b/po/POTFILES.skip Wed Jun 10 11:44:58 2009 +0200 @@ -1,2 +1,3 @@ data/gajim.desktop.in src/eggtrayicon.c +src/ipython_view.py diff -r 6f6c0ac4236d -r 34447e04adef src/adhoc_commands.py --- a/src/adhoc_commands.py Wed May 20 10:58:46 2009 +0200 +++ b/src/adhoc_commands.py Wed Jun 10 11:44:58 2009 +0200 @@ -44,7 +44,7 @@
TODO: gtk 2.10 has a special wizard-widget, consider using it...'''
- def __init__(self, account, jid): + def __init__(self, account, jid, commandnode=None): '''Create new window.'''
# an account object @@ -55,7 +55,7 @@ self.commandlist=None # a list of (commandname, commanddescription)
# command's data - self.commandnode = None + self.commandnode = commandnode self.sessionid = None self.dataform = None self.allow_stage3_close = False @@ -78,8 +78,12 @@ self.data_form_widget.show() self.sending_form_stage_vbox.pack_start(self.data_form_widget)
- # setting initial stage - self.stage1() + if self.commandnode: + # Execute command + self.stage3() + else: + # setting initial stage + self.stage1()
# displaying the window self.xml.signal_autoconnect(self) diff -r 6f6c0ac4236d -r 34447e04adef src/chat_control.py --- a/src/chat_control.py Wed May 20 10:58:46 2009 +0200 +++ b/src/chat_control.py Wed Jun 10 11:44:58 2009 +0200 @@ -1022,7 +1022,11 @@ self.parent_win.get_active_control() == self and \ self.parent_win.window.is_active(): # we are at the end - if self.session and self.session.remove_events(types_list): + if self.type_id == message_control.TYPE_GC: + if not gajim.events.remove_events(self.account, jid, + types=types_list): + self.redraw_after_event_removed(jid) + elif self.session and self.session.remove_events(types_list): # There were events to remove self.redraw_after_event_removed(jid)
@@ -2497,8 +2501,9 @@ rows = gajim.logger.get_last_conversation_lines(jid, restore_how_many, pending_how_many, timeout, self.account) except exceptions.DatabaseMalformed: + import common.logger dialogs.ErrorDialog(_('Database Error'), - _('The database file (%s) cannot be read. Try to repair it or remove it (all history will be lost).') % constants.LOG_DB_PATH) + _('The database file (%s) cannot be read. Try to repair it or remove it (all history will be lost).') % common.logger.LOG_DB_PATH) rows = [] local_old_kind = None for row in rows: # row[0] time, row[1] has kind, row[2] the message diff -r 6f6c0ac4236d -r 34447e04adef src/common/GnuPG.py --- a/src/common/GnuPG.py Wed May 20 10:58:46 2009 +0200 +++ b/src/common/GnuPG.py Wed Jun 10 11:44:58 2009 +0200 @@ -194,6 +194,9 @@ output = proc.handles['stdout'].read() proc.handles['stdout'].close()
+ try: proc.wait() + except IOError: pass + keys = {} lines = output.split('\n') for line in lines: @@ -234,4 +237,4 @@ out = out + "-----END PGP %s-----\n" % type_ return out
-# vim: se ts=3: +# vim: set ts=3: diff -r 6f6c0ac4236d -r 34447e04adef src/common/check_paths.py --- a/src/common/check_paths.py Wed May 20 10:58:46 2009 +0200 +++ b/src/common/check_paths.py Wed Jun 10 11:44:58 2009 +0200 @@ -92,7 +92,7 @@ hash TEXT, data BLOB);
- CREATE TABLE IF NOT EXISTS rooms_last_message_time( + CREATE TABLE rooms_last_message_time( jid_id INTEGER PRIMARY KEY UNIQUE, time INTEGER ); diff -r 6f6c0ac4236d -r 34447e04adef src/common/connection_handlers.py --- a/src/common/connection_handlers.py Wed May 20 10:58:46 2009 +0200 +++ b/src/common/connection_handlers.py Wed Jun 10 11:44:58 2009 +0200 @@ -829,6 +829,8 @@
def _DiscoverInfoCB(self, con, iq_obj): log.debug('DiscoverInfoCB') + if not self.connection or self.connected < 2: + return # According to XEP-0030: # For identity: category, type is mandatory, name is optional. # For feature: var is mandatory diff -r 6f6c0ac4236d -r 34447e04adef src/common/zeroconf/client_zeroconf.py --- a/src/common/zeroconf/client_zeroconf.py Wed May 20 10:58:46 2009 +0200 +++ b/src/common/zeroconf/client_zeroconf.py Wed Jun 10 11:44:58 2009 +0200 @@ -96,8 +96,9 @@ break P2PClient(sock[0], ipaddr, sock[1][1], self.conn_holder, [], from_jid)
- def disconnect(self): + def disconnect(self, message=''): ''' free all resources, we are not listening anymore ''' + log.info('Disconnecting ZeroconfListener: %s' % message) gajim.idlequeue.remove_timeout(self.fd) gajim.idlequeue.unplug_idle(self.fd) self.fd = -1 diff -r 6f6c0ac4236d -r 34447e04adef src/disco.py --- a/src/disco.py Wed May 20 10:58:46 2009 +0200 +++ b/src/disco.py Wed Jun 10 11:44:58 2009 +0200 @@ -1241,7 +1241,8 @@ return service = model[iter_][0].decode('utf-8') if service in gajim.interface.instances[self.account]['search']: - gajim.interface.instances[self.account]['search'][service].present() + gajim.interface.instances[self.account]['search'][service].window.\ + present() else: gajim.interface.instances[self.account]['search'][service] = \ search_window.SearchWindow(self.account, service) @@ -1257,14 +1258,15 @@ self._renderer.set_property('cell-background', bgcolor) self.window.services_treeview.queue_draw()
- def on_execute_button_clicked(self, widget = None): + def on_execute_button_clicked(self, widget=None): '''When we want to execute a command: open adhoc command window''' model, iter_ = self.window.services_treeview.get_selection().get_selected() if not iter_: return service = model[iter_][0].decode('utf-8') - adhoc_commands.CommandWindow(self.account, service) + node = model[iter_][1].decode('utf-8') + adhoc_commands.CommandWindow(self.account, service, commandnode=node)
def on_register_button_clicked(self, widget = None): '''When we want to register an agent: diff -r 6f6c0ac4236d -r 34447e04adef src/filetransfers_window.py --- a/src/filetransfers_window.py Wed May 20 10:58:46 2009 +0200 +++ b/src/filetransfers_window.py Wed Jun 10 11:44:58 2009 +0200 @@ -589,7 +589,7 @@ return file_props['elapsed-time'] = 0 self.files_props[file_props['type']][file_props['sid']] = file_props - iter_ = self.model.append() + iter_ = self.model.prepend() text_labels = '<b>' + _('Name: ') + '</b>\n' if file_props['type'] == 'r': text_labels += '<b>' + _('Sender: ') + '</b>' diff -r 6f6c0ac4236d -r 34447e04adef src/gajim.py --- a/src/gajim.py Wed May 20 10:58:46 2009 +0200 +++ b/src/gajim.py Wed Jun 10 11:44:58 2009 +0200 @@ -3091,18 +3091,30 @@ typ = 'png' extension = '.png' path_to_original_file = path_to_file + extension - pixbuf.save(path_to_original_file, typ) + try: + pixbuf.save(path_to_original_file, typ) + except Exception, e: + log.error('Error writing avatar file %s: %s' % (path_to_original_file, + str(e))) # Generate and save the resized, color avatar pixbuf = gtkgui_helpers.get_scaled_pixbuf(pixbuf, 'notification') if pixbuf: path_to_normal_file = path_to_file + '_notif_size_colored' + extension - pixbuf.save(path_to_normal_file, 'png') + try: + pixbuf.save(path_to_normal_file, 'png') + except Exception, e: + log.error('Error writing avatar file %s: %s' % \ + (path_to_original_file, str(e))) # Generate and save the resized, black and white avatar bwbuf = gtkgui_helpers.get_scaled_pixbuf( gtkgui_helpers.make_pixbuf_grayscale(pixbuf), 'notification') if bwbuf: path_to_bw_file = path_to_file + '_notif_size_bw' + extension - bwbuf.save(path_to_bw_file, 'png') + try: + bwbuf.save(path_to_bw_file, 'png') + except Exception, e: + log.error('Error writing avatar file %s: %s' % \ + (path_to_original_file, str(e)))