diff --git a/src/adhoc_commands.py b/src/adhoc_commands.py index 0cce701ff..925a7043e 100644 --- a/src/adhoc_commands.py +++ b/src/adhoc_commands.py @@ -25,7 +25,7 @@ # FIXME: think if we need caching command list. it may be wrong if there will # be entities that often change the list, it may be slow to fetch it every time -from gi.repository import GObject +from gi.repository import GLib from gi.repository import Gtk import nbxmpp @@ -555,14 +555,14 @@ class CommandWindow: return True # important to keep callback be called back! # 12 times per second (80 miliseconds) - self.pulse_id = GObject.timeout_add(80, callback) + self.pulse_id = GLib.timeout_add(80, callback) def remove_pulsing(self): """ Stop pulsing, useful when especially when removing widget """ if self.pulse_id: - GObject.source_remove(self.pulse_id) + GLib.source_remove(self.pulse_id) self.pulse_id = None # handling xml stanzas diff --git a/src/advanced_configuration_window.py b/src/advanced_configuration_window.py index f8397d047..c78e6ca03 100644 --- a/src/advanced_configuration_window.py +++ b/src/advanced_configuration_window.py @@ -25,7 +25,7 @@ from gi.repository import Gtk import gtkgui_helpers -from gi.repository import GObject +from gi.repository import GLib from common import gajim from common import helpers @@ -51,12 +51,12 @@ def rate_limit(rate): timeout = [None] def f(*args, **kwargs): if timeout[0] is not None: - GObject.source_remove(timeout[0]) + GLib.source_remove(timeout[0]) timeout[0] = None def timeout_func(): func(*args, **kwargs) timeout[0] = None - timeout[0] = GObject.timeout_add(int(1000.0 / rate), timeout_func) + timeout[0] = GLib.timeout_add(int(1000.0 / rate), timeout_func) return f return decorator diff --git a/src/cell_renderer_image.py b/src/cell_renderer_image.py index 0d5c7abe6..f6c6f622d 100644 --- a/src/cell_renderer_image.py +++ b/src/cell_renderer_image.py @@ -77,7 +77,7 @@ class CellRendererImage(Gtk.CellRendererPixbuf): if model: model.foreach(self.func, (image, tree)) if self.redraw: - GObject.timeout_add(iter_.get_delay_time(), + GLib.timeout_add(iter_.get_delay_time(), self.animation_timeout, tree, image) elif image in self.iters: del self.iters[image] @@ -95,8 +95,8 @@ class CellRendererImage(Gtk.CellRendererPixbuf): timeval.tv_sec = GLib.get_current_time() iter_ = animation.get_iter(timeval) self.iters[self.image] = iter_ - GObject.timeout_add(iter_.get_delay_time(), - self.animation_timeout, widget, self.image) + GLib.timeout_add(iter_.get_delay_time(), self.animation_timeout, + widget, self.image) pix = self.iters[self.image].get_pixbuf() elif self.image.get_storage_type() == Gtk.ImageType.PIXBUF: diff --git a/src/chat_control.py b/src/chat_control.py index f09e3cedc..36952ea06 100644 --- a/src/chat_control.py +++ b/src/chat_control.py @@ -34,6 +34,7 @@ from gi.repository import Gdk from gi.repository import GdkPixbuf from gi.repository import Pango from gi.repository import GObject +from gi.repository import GLib import gtkgui_helpers import gui_menu_builder import message_control @@ -1286,7 +1287,7 @@ class ChatControlBase(MessageControl, ChatCommandProcessor, CommandTools): visible_rect = textview.get_visible_rect() # scroll only if expected end is not visible if end_rect.y >= (visible_rect.y + visible_rect.height + diff_y): - self.scroll_to_end_id = GObject.idle_add(self.scroll_to_end_iter, + self.scroll_to_end_id = GLib.idle_add(self.scroll_to_end_iter, textview) def scroll_to_end_iter(self, textview): @@ -1482,7 +1483,7 @@ class ChatControlBase(MessageControl, ChatCommandProcessor, CommandTools): """ # make the last message visible, when changing to "full view" if not state: - GObject.idle_add(self.conv_textview.scroll_to_end_iter) + GLib.idle_add(self.conv_textview.scroll_to_end_iter) widget.set_no_show_all(state) if state: @@ -2048,8 +2049,8 @@ class ChatControl(ChatControlBase): if avatar_w > scaled_buf_w or avatar_h > scaled_buf_h: # wait for 0.5 sec in case we leave earlier if self.show_bigger_avatar_timeout_id is not None: - GObject.source_remove(self.show_bigger_avatar_timeout_id) - self.show_bigger_avatar_timeout_id = GObject.timeout_add(500, + GLib.source_remove(self.show_bigger_avatar_timeout_id) + self.show_bigger_avatar_timeout_id = GLib.timeout_add(500, self.show_bigger_avatar, widget) def on_avatar_eventbox_leave_notify_event(self, widget, event): @@ -2058,7 +2059,7 @@ class ChatControl(ChatControlBase): """ # did we add a timeout? if yes remove it if self.show_bigger_avatar_timeout_id is not None: - GObject.source_remove(self.show_bigger_avatar_timeout_id) + GLib.source_remove(self.show_bigger_avatar_timeout_id) self.show_bigger_avatar_timeout_id = None def on_avatar_eventbox_button_press_event(self, widget, event): @@ -2100,9 +2101,9 @@ class ChatControl(ChatControlBase): self.mouse_over_in_last_30_secs = True def _schedule_activity_timers(self): - self.possible_paused_timeout_id = GObject.timeout_add_seconds(5, + self.possible_paused_timeout_id = GLib.timeout_add_seconds(5, self.check_for_possible_paused_chatstate, None) - self.possible_inactive_timeout_id = GObject.timeout_add_seconds(30, + self.possible_inactive_timeout_id = GLib.timeout_add_seconds(30, self.check_for_possible_inactive_chatstate, None) def update_ui(self): @@ -2162,7 +2163,7 @@ class ChatControl(ChatControlBase): name = i18n.direction_mark + _( '%(nickname)s from group chat %(room_name)s') % \ {'nickname': name, 'room_name': self.room_name} - name = i18n.direction_mark + GObject.markup_escape_text(name) + name = i18n.direction_mark + GLib.markup_escape_text(name) # We know our contacts nick, but if another contact has the same nick # in another account we need to also display the account. @@ -2179,7 +2180,7 @@ class ChatControl(ChatControlBase): if other_contact_.get_shown_name() == \ self.contact.get_shown_name(): acct_info = i18n.direction_mark + ' (%s)' % \ - GObject.markup_escape_text(self.account) + GLib.markup_escape_text(self.account) break status = contact.status @@ -2189,7 +2190,7 @@ class ChatControl(ChatControlBase): status_reduced = helpers.reduce_chars_newlines(status, max_lines=1) else: status_reduced = '' - status_escaped = GObject.markup_escape_text(status_reduced) + status_escaped = GLib.markup_escape_text(status_reduced) font_attrs, font_attrs_small = self.get_font_attrs() st = gajim.config.get('displayed_chat_state_notifications') @@ -2407,8 +2408,8 @@ class ChatControl(ChatControlBase): chatstate_to_send = 'active' contact.our_chatstate = 'active' - GObject.source_remove(self.possible_paused_timeout_id) - GObject.source_remove(self.possible_inactive_timeout_id) + GLib.source_remove(self.possible_paused_timeout_id) + GLib.source_remove(self.possible_inactive_timeout_id) self._schedule_activity_timers() def _on_sent(msg_stanza, message, encrypted, xhtml, label, old_txt): @@ -2671,7 +2672,7 @@ class ChatControl(ChatControlBase): name = self.contact.get_shown_name() if self.resource: name += '/' + self.resource - label_str = GObject.markup_escape_text(name) + label_str = GLib.markup_escape_text(name) if num_unread: # if unread, text in the label becomes bold label_str = '' + unread + label_str + '' return (label_str, color) @@ -2809,8 +2810,8 @@ class ChatControl(ChatControlBase): self.session.control = None # Disconnect timer callbacks - GObject.source_remove(self.possible_paused_timeout_id) - GObject.source_remove(self.possible_inactive_timeout_id) + GLib.source_remove(self.possible_paused_timeout_id) + GLib.source_remove(self.possible_inactive_timeout_id) # Remove bigger avatar window if self.bigger_avatar_window: self.bigger_avatar_window.destroy() @@ -2893,8 +2894,8 @@ class ChatControl(ChatControlBase): else: self.send_chatstate('active', self.contact) self.reset_kbd_mouse_timeout_vars() - GObject.source_remove(self.possible_paused_timeout_id) - GObject.source_remove(self.possible_inactive_timeout_id) + GLib.source_remove(self.possible_paused_timeout_id) + GLib.source_remove(self.possible_inactive_timeout_id) self._schedule_activity_timers() else: self.send_chatstate('inactive', self.contact) @@ -3479,6 +3480,6 @@ class ChatControl(ChatControlBase): self.info_bar.set_no_show_all(True) self.info_bar.hide() # show next one? - GObject.idle_add(self._info_bar_show_message) + GLib.idle_add(self._info_bar_show_message) break i += 1 diff --git a/src/common/config.py b/src/common/config.py index 3d5370493..588dc44ce 100644 --- a/src/common/config.py +++ b/src/common/config.py @@ -36,7 +36,7 @@ import sys import re import copy from common import defs -from gi.repository import GObject +from gi.repository import GLib ( OPT_TYPE, @@ -802,7 +802,7 @@ class Config: def _timeout_save(self): if self.save_timeout_id: return - self.save_timeout_id = GObject.timeout_add(1000, self._really_save) + self.save_timeout_id = GLib.timeout_add(1000, self._really_save) def __init__(self): #init default values diff --git a/src/common/connection_handlers.py b/src/common/connection_handlers.py index cbca7b147..1e7d05c6a 100644 --- a/src/common/connection_handlers.py +++ b/src/common/connection_handlers.py @@ -33,7 +33,7 @@ import base64 import sys import operator import hashlib -from gi.repository import GObject +from gi.repository import GLib from time import (altzone, daylight, gmtime, localtime, mktime, strftime, time as time_time, timezone, tzname) @@ -560,7 +560,7 @@ class ConnectionVcard: self.discover_ft_proxies() gajim.nec.push_incoming_event(RosterReceivedEvent(None, conn=self)) - GObject.timeout_add_seconds(10, self.discover_servers) + GLib.timeout_add_seconds(10, self.discover_servers) elif self.awaiting_answers[id_][0] == PRIVACY_ARRIVED: if iq_obj.getType() != 'error': self.privacy_rules_supported = True diff --git a/src/common/jingle_rtp.py b/src/common/jingle_rtp.py index 207c090f4..79a0d4ad8 100644 --- a/src/common/jingle_rtp.py +++ b/src/common/jingle_rtp.py @@ -17,7 +17,7 @@ Handles Jingle RTP sessions (XEP 0167) from collections import deque -from gi.repository import GObject +from gi.repository import GLib import socket import nbxmpp @@ -130,13 +130,13 @@ class JingleRTPContent(JingleContent): events = deque(events) self._dtmf_running = True self._start_dtmf(events.popleft()) - GObject.timeout_add(500, self._next_dtmf, events) + GLib.timeout_add(500, self._next_dtmf, events) def _next_dtmf(self, events): self._stop_dtmf() if events: self._start_dtmf(events.popleft()) - GObject.timeout_add(500, self._next_dtmf, events) + GLib.timeout_add(500, self._next_dtmf, events) else: self._dtmf_running = False diff --git a/src/common/logger.py b/src/common/logger.py index 9868f7407..de288f5b5 100644 --- a/src/common/logger.py +++ b/src/common/logger.py @@ -34,7 +34,7 @@ import time import datetime from gzip import GzipFile from io import BytesIO -from gi.repository import GObject +from gi.repository import GLib from common import exceptions from common import gajim @@ -177,7 +177,7 @@ class Logger: def _timeout_commit(self): if self.commit_timout_id: return - self.commit_timout_id = GObject.timeout_add(500, self._really_commit) + self.commit_timout_id = GLib.timeout_add(500, self._really_commit) def simple_commit(self, sql_to_commit): """ diff --git a/src/common/resolver.py b/src/common/resolver.py index 6f1200d54..d790fa5d3 100644 --- a/src/common/resolver.py +++ b/src/common/resolver.py @@ -317,7 +317,7 @@ class NsLookup(IdleCommand): # below lines is on how to use API and assist in testing if __name__ == '__main__': - from gi.repository import GObject + from gi.repository import GLib from gi.repository import Gtk from nbxmpp import idlequeue @@ -342,7 +342,7 @@ if __name__ == '__main__': but.connect('clicked', clicked) win.add(hbox) win.show_all() - GObject.timeout_add(200, idlequeue.process) + GLib.timeout_add(200, idlequeue.process) if USE_LIBASYNCNS: - GObject.timeout_add(200, resolver.process) + GLib.timeout_add(200, resolver.process) Gtk.main() diff --git a/src/config.py b/src/config.py index 31387ed1d..c432aab42 100644 --- a/src/config.py +++ b/src/config.py @@ -35,6 +35,7 @@ from gi.repository import Gtk from gi.repository import Gdk from gi.repository import Pango from gi.repository import GObject +from gi.repository import GLib import os, sys import common.config import common.sleepy @@ -588,7 +589,7 @@ class PreferencesWindow: gtkgui_helpers.possibly_move_window_in_current_desktop(self.window) def on_preferences_notebook_switch_page(self, widget, page, page_num): - GObject.idle_add(self.xml.get_object('close_button').grab_focus) + GLib.idle_add(self.xml.get_object('close_button').grab_focus) def on_preferences_window_key_press_event(self, widget, event): if event.keyval == Gdk.KEY_Escape: @@ -1661,7 +1662,7 @@ class AccountsWindow: status_before = gajim.connections[account].status gajim.interface.roster.send_status(account, 'offline', _('Be right back.')) - GObject.timeout_add(500, login, account, show_before, status_before) + GLib.timeout_add(500, login, account, show_before, status_before) def on_yes(checked, account): relog(account) @@ -2162,7 +2163,7 @@ class AccountsWindow: if not widget.is_focus(): pritext = _('Invalid Jabber ID') dialogs.ErrorDialog(pritext, str(s)) - GObject.idle_add(lambda: widget.grab_focus()) + GLib.idle_add(lambda: widget.grab_focus()) return True jid_splited = jid.split('@', 1) @@ -2172,7 +2173,7 @@ class AccountsWindow: pritext = _('Invalid Jabber ID') sectext = _('A Jabber ID must be in the form "user@servername".') dialogs.ErrorDialog(pritext, sectext) - GObject.idle_add(lambda: widget.grab_focus()) + GLib.idle_add(lambda: widget.grab_focus()) return True @@ -2237,7 +2238,7 @@ class AccountsWindow: if not widget.is_focus(): pritext = _('Invalid Jabber ID') dialogs.ErrorDialog(pritext, str(s)) - GObject.idle_add(lambda: widget.grab_focus()) + GLib.idle_add(lambda: widget.grab_focus()) return True if self.option_changed('resource', resource): @@ -2393,7 +2394,7 @@ class AccountsWindow: if not widget.is_focus(): dialogs.ErrorDialog(_('Invalid entry'), _('Custom port must be a port number.')) - GObject.idle_add(lambda: widget.grab_focus()) + GLib.idle_add(lambda: widget.grab_focus()) return True if self.option_changed('custom_port', custom_port): self.need_relogin = True @@ -3701,7 +3702,7 @@ class AccountCreationWizardWindow: self.notebook.set_current_page(5) # show creating page self.back_button.hide() self.forward_button.hide() - self.update_progressbar_timeout_id = GObject.timeout_add(100, + self.update_progressbar_timeout_id = GLib.timeout_add(100, self.update_progressbar) # Get form from serveur con = connection.Connection(self.account) @@ -3743,7 +3744,7 @@ class AccountCreationWizardWindow: self.notebook.set_current_page(5) # show creating page self.back_button.hide() self.forward_button.hide() - self.update_progressbar_timeout_id = GObject.timeout_add(100, + self.update_progressbar_timeout_id = GLib.timeout_add(100, self.update_progressbar) def update_proxy_list(self): @@ -3779,7 +3780,7 @@ class AccountCreationWizardWindow: if obj.conn.name != self.account: return if self.update_progressbar_timeout_id is not None: - GObject.source_remove(self.update_progressbar_timeout_id) + GLib.source_remove(self.update_progressbar_timeout_id) self.back_button.show() self.forward_button.show() self.is_form = obj.is_form @@ -3837,7 +3838,7 @@ class AccountCreationWizardWindow: if self.account not in gajim.connections: return if self.update_progressbar_timeout_id is not None: - GObject.source_remove(self.update_progressbar_timeout_id) + GLib.source_remove(self.update_progressbar_timeout_id) del gajim.connections[self.account] if self.account in gajim.config.get_per('accounts'): gajim.config.del_per('accounts', self.account) @@ -3863,7 +3864,7 @@ class AccountCreationWizardWindow: self.show_finish_page() if self.update_progressbar_timeout_id is not None: - GObject.source_remove(self.update_progressbar_timeout_id) + GLib.source_remove(self.update_progressbar_timeout_id) def _nec_acc_is_not_ok(self, obj): """ @@ -3887,7 +3888,7 @@ class AccountCreationWizardWindow: self.notebook.set_current_page(6) # show finish page if self.update_progressbar_timeout_id is not None: - GObject.source_remove(self.update_progressbar_timeout_id) + GLib.source_remove(self.update_progressbar_timeout_id) def on_advanced_button_clicked(self, widget): if 'accounts' in gajim.interface.instances: diff --git a/src/conversation_textview.py b/src/conversation_textview.py index f371ca308..bb28728ae 100644 --- a/src/conversation_textview.py +++ b/src/conversation_textview.py @@ -34,6 +34,7 @@ from gi.repository import Gdk from gi.repository import GdkPixbuf from gi.repository import Pango from gi.repository import GObject +from gi.repository import GLib import time import os import tooltips @@ -404,14 +405,14 @@ class ConversationTextview(GObject.GObject): return True def smooth_scroll_timeout(self): - GObject.idle_add(self.do_smooth_scroll_timeout) + GLib.idle_add(self.do_smooth_scroll_timeout) return def do_smooth_scroll_timeout(self): if not self.smooth_id: # we finished scrolling return - GObject.source_remove(self.smooth_id) + GLib.source_remove(self.smooth_id) self.smooth_id = None parent = self.tv.get_parent() if parent: @@ -423,7 +424,7 @@ class ConversationTextview(GObject.GObject): def smooth_scroll_to_end(self): if None != self.smooth_id: # already scrolling return False - self.smooth_id = GObject.timeout_add(self.SCROLL_DELAY, + self.smooth_id = GLib.timeout_add(self.SCROLL_DELAY, self.smooth_scroll) self.smooth_scroll_timer = Timer(self.MAX_SCROLL_TIME, self.smooth_scroll_timeout) @@ -453,9 +454,9 @@ class ConversationTextview(GObject.GObject): # scroll only if expected end is not visible if end_rect.y >= (visible_rect.y + visible_rect.height + diff_y): if use_smooth: - GObject.idle_add(self.smooth_scroll_to_end) + GLib.idle_add(self.smooth_scroll_to_end) else: - GObject.idle_add(self.scroll_to_end_iter) + GLib.idle_add(self.scroll_to_end_iter) def scroll_to_end_iter(self): buffer_ = self.tv.get_buffer() @@ -467,7 +468,7 @@ class ConversationTextview(GObject.GObject): def stop_scrolling(self): if self.smooth_id: - GObject.source_remove(self.smooth_id) + GLib.source_remove(self.smooth_id) self.smooth_id = None self.smooth_scroll_timer.cancel() @@ -548,7 +549,7 @@ class ConversationTextview(GObject.GObject): self.xep0184_shown[id_] = SHOWN return False - GObject.timeout_add_seconds(3, show_it) + GLib.timeout_add_seconds(3, show_it) buffer_.end_user_action() @@ -647,7 +648,7 @@ class ConversationTextview(GObject.GObject): if scroll: # scroll to the end (via idle in case the scrollbar has # appeared) - GObject.idle_add(self.scroll_to_end) + GLib.idle_add(self.scroll_to_end) def show_xep0184_warning_tooltip(self): pointer = self.tv.get_pointer() @@ -751,13 +752,13 @@ class ConversationTextview(GObject.GObject): if not xep0184_warning: self.xep0184_warning_tooltip.hide_tooltip() if over_line and not self.line_tooltip.win: - self.line_tooltip.timeout = GObject.timeout_add(500, + self.line_tooltip.timeout = GLib.timeout_add(500, self.show_line_tooltip) self.tv.get_window(Gtk.TextWindowType.TEXT).set_cursor( Gdk.Cursor.new(Gdk.CursorType.LEFT_PTR)) self.change_cursor = True if xep0184_warning and not self.xep0184_warning_tooltip.win: - self.xep0184_warning_tooltip.timeout = GObject.timeout_add(500, + self.xep0184_warning_tooltip.timeout = GLib.timeout_add(500, self.show_xep0184_warning_tooltip) self.tv.get_window(Gtk.TextWindowType.TEXT).set_cursor( Gdk.Cursor.new(Gdk.CursorType.LEFT_PTR)) @@ -1384,9 +1385,9 @@ class ConversationTextview(GObject.GObject): # we are at the end or we are sending something # scroll to the end (via idle in case the scrollbar has appeared) if gajim.config.get('use_smooth_scrolling'): - GObject.idle_add(self.smooth_scroll_to_end) + GLib.idle_add(self.smooth_scroll_to_end) else: - GObject.idle_add(self.scroll_to_end) + GLib.idle_add(self.scroll_to_end) self.just_cleared = False buffer_.end_user_action() diff --git a/src/dialogs.py b/src/dialogs.py index ea82676da..3b930f07c 100644 --- a/src/dialogs.py +++ b/src/dialogs.py @@ -33,6 +33,7 @@ from gi.repository import Gtk from gi.repository import Gdk from gi.repository import GdkPixbuf from gi.repository import GObject +from gi.repository import GLib import cairo import os @@ -566,7 +567,7 @@ class TimeoutDialog: def run_timeout(self): if self.countdown_left > 0: self.countdown() - GObject.timeout_add_seconds(1, self.countdown) + GLib.timeout_add_seconds(1, self.countdown) def on_timeout(): """ @@ -2871,7 +2872,7 @@ class PopupNotificationWindow: event_type_label.set_markup( '%s' % - GObject.markup_escape_text(title)) + GLib.markup_escape_text(title)) # set colors [ http://www.pitt.edu/~nisg/cis/web/cgi/rgb.html ] self.window.modify_bg(Gtk.StateType.NORMAL, Gdk.color_parse('black')) @@ -2904,7 +2905,7 @@ class PopupNotificationWindow: close_button.modify_bg(Gtk.StateType.NORMAL, popup_bg_color) eventbox.modify_bg(Gtk.StateType.NORMAL, popup_bg_color) event_description_label.set_markup('%s' % - GObject.markup_escape_text(text)) + GLib.markup_escape_text(text)) # set the image image.set_from_file(path_to_image) @@ -2924,7 +2925,7 @@ class PopupNotificationWindow: xml.connect_signals(self) self.window.show_all() if timeout > 0: - GObject.timeout_add_seconds(timeout, self.on_timeout) + GLib.timeout_add_seconds(timeout, self.on_timeout) def on_close_button_clicked(self, widget): self.adjust_height_and_move_popup_notification_windows() @@ -3122,7 +3123,7 @@ class SingleMessageWindow: self.cancel_button.hide() self.close_button.show() self.message_tv_buffer.set_text(self.message) - GObject.idle_add(self.set_cursor_to_end) + GLib.idle_add(self.set_cursor_to_end) else: # we write a new message (not from reply) self.close_button.hide() if self.to: # do we already have jid? @@ -3400,7 +3401,7 @@ class XMLConsoleWindow: buffer.insert_with_tags_by_name(end_iter, stanza.replace('><', '>\n<') \ + '\n\n', type_) if at_the_end: - GObject.idle_add(self.scroll_to_end) + GLib.idle_add(self.scroll_to_end) def _nec_stanza_received(self, obj): if obj.conn.name != self.account: @@ -3782,8 +3783,8 @@ class ItemArchivingPreferencesWindow: def launch_progressbar(self): self.progressbar.show() - self.update_progressbar_timeout_id = GObject.timeout_add( - 100, self.update_progressbar) + self.update_progressbar_timeout_id = GLib.timeout_add(100, + self.update_progressbar) def response_arrived(self, data): if self.waiting: @@ -4082,7 +4083,7 @@ class PrivacyListWindow: self.privacy_lists_title_label.set_label( _('Privacy List %s') % \ - GObject.markup_escape_text(self.privacy_list_name)) + GLib.markup_escape_text(self.privacy_list_name)) if len(gajim.connections) > 1: title = _('Privacy List for %s') % self.account @@ -4566,7 +4567,7 @@ class InvitationReceivedDialog: sectext = sectext.replace('$Contact', contact_text) if comment: # only if not None and not '' - comment = GObject.markup_escape_text(comment) + comment = GLib.markup_escape_text(comment) comment = _('Comment: %s') % comment sectext += '\n\n%s' % comment sectext += '\n\n' + _('Do you want to accept the invitation?') @@ -4605,7 +4606,7 @@ class ProgressDialog: self.dialog.show_all() self.xml.connect_signals(self) - self.update_progressbar_timeout_id = GObject.timeout_add(100, + self.update_progressbar_timeout_id = GLib.timeout_add(100, self.update_progressbar) def update_progressbar(self): diff --git a/src/disco.py b/src/disco.py index 7bc207dea..68c445ba4 100644 --- a/src/disco.py +++ b/src/disco.py @@ -47,7 +47,7 @@ import os import types import weakref -from gi.repository import GObject +from gi.repository import GLib from gi.repository import Gtk from gi.repository import Gdk from gi.repository import GdkPixbuf @@ -153,7 +153,7 @@ class CacheDictionary: for key in list(self.cache.keys()): item = self.cache[key] if item.source: - GObject.source_remove(item.source) + GLib.source_remove(item.source) del self.cache[key] def _expire_timeout(self, key): @@ -170,9 +170,9 @@ class CacheDictionary: """ item = self.cache[key] if item.source: - GObject.source_remove(item.source) + GLib.source_remove(item.source) if self.lifetime: - source = GObject.timeout_add_seconds(int(self.lifetime/1000), self._expire_timeout, key) + source = GLib.timeout_add_seconds(int(self.lifetime/1000), self._expire_timeout, key) item.source = source def __getitem__(self, key): @@ -189,7 +189,7 @@ class CacheDictionary: def __delitem__(self, key): item = self.cache[key] if item.source: - GObject.source_remove(item.source) + GLib.source_remove(item.source) del self.cache[key] def __contains__(self, key): @@ -1059,7 +1059,7 @@ class AgentBrowser: self.model.clear() self._total_items = self._progress = 0 self.window.progressbar.show() - self._pulse_timeout = GObject.timeout_add(250, self._pulse_timeout_cb) + self._pulse_timeout = GLib.timeout_add(250, self._pulse_timeout_cb) self.cache.get_items(self.jid, self.node, self._agent_items, force=force, args=(force,)) @@ -1098,7 +1098,7 @@ class AgentBrowser: self.model.clear() self.add_self_line() self._total_items = 0 - GObject.source_remove(self._pulse_timeout) + GLib.source_remove(self._pulse_timeout) self.window.progressbar.hide() # The server returned an error if items == 0: @@ -1311,8 +1311,8 @@ class ToplevelAgentBrowser(AgentBrowser): if jid and state > 0 and \ (self.tooltip.timeout == 0 or self.tooltip.id != props[0]): self.tooltip.id = row - self.tooltip.timeout = GObject.timeout_add(500, - self._show_tooltip, state) + self.tooltip.timeout = GLib.timeout_add(500, self._show_tooltip, + state) def on_treeview_event_hide_tooltip(self, widget, event): """ @@ -1586,7 +1586,7 @@ class ToplevelAgentBrowser(AgentBrowser): # self.expanding = False # return False #self.expanding = True - #GObject.idle_add(expand_all) + #GLib.idle_add(expand_all) self.window.services_treeview.expand_all() def _update_progressbar(self): @@ -1595,7 +1595,7 @@ class ToplevelAgentBrowser(AgentBrowser): """ # Refresh this every update if self._progressbar_sourceid: - GObject.source_remove(self._progressbar_sourceid) + GLib.source_remove(self._progressbar_sourceid) fraction = 0 if self._total_items: @@ -1604,12 +1604,12 @@ class ToplevelAgentBrowser(AgentBrowser): fraction = float(self._progress) / float(self._total_items) if self._progress >= self._total_items: # We show the progressbar for just a bit before hiding it. - id_ = GObject.timeout_add_seconds(2, self._hide_progressbar_cb) + id_ = GLib.timeout_add_seconds(2, self._hide_progressbar_cb) self._progressbar_sourceid = id_ else: self.window.progressbar.show() # Hide the progressbar if we're timing out anyways. (20 secs) - id_ = GObject.timeout_add_seconds(20, self._hide_progressbar_cb) + id_ = GLib.timeout_add_seconds(20, self._hide_progressbar_cb) self._progressbar_sourceid = id_ self.window.progressbar.set_fraction(fraction) @@ -1706,7 +1706,7 @@ class ToplevelAgentBrowser(AgentBrowser): if not cat: cat = self._create_category(*cat_args) self.model.append(cat, (jid, node, pix, descr, 1)) - GObject.idle_add(self._expand_all) + GLib.idle_add(self._expand_all) # Grab info on the service self.cache.get_info(jid, node, self._agent_info, force=force) self._update_progressbar() @@ -1943,7 +1943,7 @@ class MucBrowser(AgentBrowser): view = self.window.services_treeview if not view.get_realized(): # Prevent a silly warning, try again in a bit. - self._fetch_source = GObject.timeout_add(100, self._start_info_query) + self._fetch_source = GLib.timeout_add(100, self._start_info_query) return range_ = view.get_visible_range() if not range_: @@ -1994,7 +1994,7 @@ class MucBrowser(AgentBrowser): def _add_item(self, jid, node, parent_node, item, force): self.model.append((jid, node, item.get('name', ''), -1, '', '', False)) if not self._fetch_source: - self._fetch_source = GObject.idle_add(self._start_info_query) + self._fetch_source = GLib.idle_add(self._start_info_query) def _update_info(self, iter_, jid, node, identities, features, data): name = identities[0].get('name', '') @@ -2125,7 +2125,7 @@ class DiscussionGroupsBrowser(AgentBrowser): dunno = True subscribed = False - name = GObject.markup_escape_text(name) + name = GLib.markup_escape_text(name) name = '%s' % name if parent_node: diff --git a/src/filetransfers_window.py b/src/filetransfers_window.py index 1e5d9eafc..847aacb16 100644 --- a/src/filetransfers_window.py +++ b/src/filetransfers_window.py @@ -23,7 +23,7 @@ from gi.repository import Gtk from gi.repository import GdkPixbuf -from gi.repository import GObject +from gi.repository import GLib from gi.repository import Pango import os import time @@ -183,8 +183,7 @@ class FileTransfersWindow: (file_path, file_name) = os.path.split(file_props.file_name) else: file_name = file_props.name - sectext = '\t' + _('Filename: %s') % GObject.markup_escape_text( - file_name) + sectext = '\t' + _('Filename: %s') % GLib.markup_escape_text(file_name) sectext += '\n\t' + _('Size: %s') % \ helpers.convert_bytes(file_props.size) if file_props.type_ == 'r': @@ -240,8 +239,7 @@ class FileTransfersWindow: file_name = os.path.basename(file_props.file_name) else: file_name = file_props.name - sectext = '\t' + _('Filename: %s') % GObject.markup_escape_text( - file_name) + sectext = '\t' + _('Filename: %s') % GLib.markup_escape_text(file_name) sectext += '\n\t' + _('Recipient: %s') % jid if error_msg: sectext += '\n\t' + _('Error message: %s') % error_msg @@ -384,7 +382,7 @@ class FileTransfersWindow: if os.path.exists(file_path): # check if we have write permissions if not os.access(file_path, os.W_OK): - file_name = GObject.markup_escape_text(os.path.basename( + file_name = GLib.markup_escape_text(os.path.basename( file_path)) dialogs.ErrorDialog( _('Cannot overwrite existing file "%s"' % file_name), @@ -448,8 +446,8 @@ class FileTransfersWindow: """ if not file_props or not file_props.name: return - sec_text = '\t' + _('File: %s') % GObject.markup_escape_text( - file_props.name) + sec_text = '\t' + _('File: %s') % GLib.markup_escape_text( + file_props.name) if file_props.size: sec_text += '\n\t' + _('Size: %s') % \ helpers.convert_bytes(file_props.size) @@ -495,7 +493,7 @@ class FileTransfersWindow: text += helpers.convert_bytes(received_size) + '/' + \ helpers.convert_bytes(full_size) self.model.set(iter_, C_PROGRESS, text) - self.model.set(iter_, C_PULSE, GObject.constants.G_MAXINT) + self.model.set(iter_, C_PULSE, GLib.MAXINT32) elif status == 'computing': self.model.set(iter_, C_PULSE, 1) text = _('Checking file...') + '\n' @@ -506,11 +504,11 @@ class FileTransfersWindow: self.model.set(iter_, C_PROGRESS, text) def pulse(): p = self.model.get(iter_, C_PULSE)[0] - if p == GObject.constants.G_MAXINT: + if p == GLib.MAXINT32: return False self.model.set(iter_, C_PULSE, p + 1) return True - GObject.timeout_add(100, pulse) + GLib.timeout_add(100, pulse) elif status == 'hash_error': text = _('File error') + '\n' received_size = int(file_props.received_len) @@ -518,7 +516,7 @@ class FileTransfersWindow: text += helpers.convert_bytes(received_size) + '/' + \ helpers.convert_bytes(full_size) self.model.set(iter_, C_PROGRESS, text) - self.model.set(iter_, C_PULSE, GObject.constants.G_MAXINT) + self.model.set(iter_, C_PULSE, GLib.MAXINT32) self.model.set(iter_, C_IMAGE, self.get_icon(status)) path = self.model.get_path(iter_) self.select_func(path) @@ -738,7 +736,7 @@ class FileTransfersWindow: file_name = os.path.split(file_props.file_name)[1] else: file_name = file_props.name - text_props = GObject.markup_escape_text(file_name) + '\n' + text_props = GLib.markup_escape_text(file_name) + '\n' text_props += contact.get_shown_name() self.model.set(iter_, 1, text_labels, 2, text_props, C_PULSE, -1, C_SID, file_props.type_ + file_props.sid) @@ -774,7 +772,7 @@ class FileTransfersWindow: if file_props is not None: if self.tooltip.timeout == 0 or self.tooltip.id != props[0]: self.tooltip.id = row - self.tooltip.timeout = GObject.timeout_add(500, + self.tooltip.timeout = GLib.timeout_add(500, self.show_tooltip, widget) def on_transfers_list_leave_notify_event(self, widget=None, event=None): diff --git a/src/groupchat_control.py b/src/groupchat_control.py index 1abe5a4e6..323ae39f3 100644 --- a/src/groupchat_control.py +++ b/src/groupchat_control.py @@ -34,7 +34,7 @@ from gi.repository import Gtk from gi.repository import Gdk from gi.repository import GdkPixbuf from gi.repository import Pango -from gi.repository import GObject +from gi.repository import GLib import gtkgui_helpers import gui_menu_builder import message_control @@ -606,7 +606,7 @@ class GroupchatControl(ChatControlBase): self.resize_from_another_muc = False # Reset the flag when everything will be redrawn, and in particular when # on_treeview_size_allocate will have been called. - GObject.idle_add(reset_flag) + GLib.idle_add(reset_flag) def on_hpaned_notify(self, pane, gparamspec): """ @@ -795,7 +795,7 @@ class GroupchatControl(ChatControlBase): if self.subject: subject = helpers.reduce_chars_newlines(self.subject, max_lines=2) - subject = GObject.markup_escape_text(subject) + subject = GLib.markup_escape_text(subject) subject_text = self.urlfinder.sub(self.make_href, subject) subject_text = '%s' % (font_attrs_small, subject_text) @@ -1348,7 +1348,7 @@ class GroupchatControl(ChatControlBase): def got_connected(self): # Make autorejoin stop. if self.autorejoin: - GObject.source_remove(self.autorejoin) + GLib.source_remove(self.autorejoin) self.autorejoin = None gajim.gc_connected[self.account][self.room_jid] = True @@ -1415,8 +1415,7 @@ class GroupchatControl(ChatControlBase): if self.autorejoin is None and gajim.account_is_connected(self.account): ar_to = gajim.config.get('muc_autorejoin_timeout') if ar_to: - self.autorejoin = GObject.timeout_add_seconds(ar_to, - self.rejoin) + self.autorejoin = GLib.timeout_add_seconds(ar_to, self.rejoin) def rejoin(self): if not self.autorejoin: @@ -1469,7 +1468,7 @@ class GroupchatControl(ChatControlBase): else: image = state_images[gc_contact.show] - name = GObject.markup_escape_text(gc_contact.name) + name = GLib.markup_escape_text(gc_contact.name) # Strike name if blocked fjid = self.room_jid + '/' + nick @@ -1488,7 +1487,7 @@ class GroupchatControl(ChatControlBase): colorstring = "#%04x%04x%04x" % (color.red, color.green, color.blue) name += ('\n' - '%s') % (colorstring, GObject.markup_escape_text( + '%s') % (colorstring, GLib.markup_escape_text( status)) if image.get_storage_type() == Gtk.ImageType.PIXBUF and \ @@ -2671,7 +2670,7 @@ class GroupchatControl(ChatControlBase): if self.tooltip.timeout == 0 or self.tooltip.id != props[0]: self.tooltip.id = row nick = self.model[iter_][C_NICK] - self.tooltip.timeout = GObject.timeout_add(500, + self.tooltip.timeout = GLib.timeout_add(500, self.show_tooltip, gajim.contacts.get_gc_contact( account, self.room_jid, nick)) diff --git a/src/gui_interface.py b/src/gui_interface.py index 34a97b806..5175f6996 100644 --- a/src/gui_interface.py +++ b/src/gui_interface.py @@ -43,7 +43,7 @@ from subprocess import Popen from gi.repository import Gtk from gi.repository import GdkPixbuf -from gi.repository import GObject +from gi.repository import GLib from common import i18n from common import gajim @@ -229,8 +229,8 @@ class Interface: # we stop blocking notifications of any kind # this prevents from getting the roster items as 'just signed in' # contacts. 30 seconds should be enough time - GObject.timeout_add_seconds(30, - self.unblock_signed_in_notifications, account) + GLib.timeout_add_seconds(30, self.unblock_signed_in_notifications, + account) if account in self.show_vcard_when_connect and obj.show not in ( 'offline', 'error'): @@ -370,8 +370,8 @@ class Interface: # popup notifications for 30s account_jid = account + '/' + jid gajim.block_signed_in_notifications[account_jid] = True - GObject.timeout_add_seconds(30, - self.unblock_signed_in_notifications, account_jid) + GLib.timeout_add_seconds(30, self.unblock_signed_in_notifications, + account_jid) highest = gajim.contacts.get_contact_with_highest_priority(account, jid) is_highest = (highest and highest.resource == resource) @@ -974,13 +974,13 @@ class Interface: # then the file is not corrupt jid = file_props.sender if file_props.hash_ == hash_: - GObject.idle_add(self.popup_ft_result, account, jid, file_props) - GObject.idle_add(ft_win.set_status, file_props, 'ok') + GLib.idle_add(self.popup_ft_result, account, jid, file_props) + GLib.idle_add(ft_win.set_status, file_props, 'ok') else: # wrong hash, we need to get the file again! file_props.error = -10 - GObject.idle_add(self.popup_ft_result, account, jid, file_props) - GObject.idle_add(ft_win.set_status, file_props, 'hash_error') + GLib.idle_add(self.popup_ft_result, account, jid, file_props) + GLib.idle_add(ft_win.set_status, file_props, 'hash_error') # End jingle session if session: session.end_session() @@ -1119,7 +1119,7 @@ class Interface: if gajim.config.get('ask_offline_status_on_connection'): # Ask offline status in 1 minute so w'are sure we got all online # presences - GObject.timeout_add_seconds(60, self.ask_offline_status, account) + GLib.timeout_add_seconds(60, self.ask_offline_status, account) if state != sleepy.STATE_UNKNOWN and connected in (2, 3): # we go online or free for chat, so we activate auto status gajim.sleeper_state[account] = 'online' @@ -2189,7 +2189,7 @@ class Interface: # For JEP-0172 if added_to_roster: ctrl.user_nick = gajim.nicks[account] - GObject.idle_add(mw.window.grab_focus) + GLib.idle_add(mw.window.grab_focus) return ctrl @@ -2405,9 +2405,9 @@ class Interface: # Otherwise, an exception will stop our loop timeout, in_seconds = gajim.idlequeue.PROCESS_TIMEOUT if in_seconds: - GObject.timeout_add_seconds(timeout, self.process_connections) + GLib.timeout_add_seconds(timeout, self.process_connections) else: - GObject.timeout_add(timeout, self.process_connections) + GLib.timeout_add(timeout, self.process_connections) raise return True # renew timeout (loop for ever) @@ -2620,18 +2620,18 @@ class Interface: # get instances for windows/dialogs that will show_all()/hide() self.instances['file_transfers'] = dialogs.FileTransfersWindow() - GObject.timeout_add(100, self.autoconnect) + GLib.timeout_add(100, self.autoconnect) timeout, in_seconds = gajim.idlequeue.PROCESS_TIMEOUT if in_seconds: - GObject.timeout_add_seconds(timeout, self.process_connections) + GLib.timeout_add_seconds(timeout, self.process_connections) else: - GObject.timeout_add(timeout, self.process_connections) - GObject.timeout_add_seconds(gajim.config.get( + GLib.timeout_add(timeout, self.process_connections) + GLib.timeout_add_seconds(gajim.config.get( 'check_idle_every_foo_seconds'), self.read_sleepy) # when using libasyncns we need to process resolver in regular intervals if resolver.USE_LIBASYNCNS: - GObject.timeout_add(200, gajim.resolver.process) + GLib.timeout_add(200, gajim.resolver.process) def remote_init(): if gajim.config.get('remote_control'): @@ -2640,7 +2640,7 @@ class Interface: self.remote_ctrl = remote_control.Remote() except Exception: pass - GObject.timeout_add_seconds(5, remote_init) + GLib.timeout_add_seconds(5, remote_init) def __init__(self): gajim.interface = self @@ -2969,8 +2969,8 @@ class PassphraseRequest: self.passphrase = passphrase self.completed = True if passphrase is not None: - GObject.timeout_add_seconds(30, - gajim.interface.forget_gpg_passphrase, self.keyid) + GLib.timeout_add_seconds(30, gajim.interface.forget_gpg_passphrase, + self.keyid) for (account, cb) in self.callbacks: self.run_callback(account, cb) self.callbacks = [] @@ -3021,7 +3021,7 @@ class ThreadInterface: def thread_function(func, func_args, callback, callback_args): output = func(*func_args) if callback: - GObject.idle_add(callback, output, *callback_args) + GLib.idle_add(callback, output, *callback_args) Thread(target=thread_function, args=(func, func_args, callback, callback_args)).start() diff --git a/src/htmltextview.py b/src/htmltextview.py index 2f6c7aaaf..fa405dfe1 100644 --- a/src/htmltextview.py +++ b/src/htmltextview.py @@ -36,6 +36,7 @@ modular. """ from gi.repository import GObject +from gi.repository import GLib from gi.repository import Pango from gi.repository import Gtk from gi.repository import Gdk @@ -895,7 +896,7 @@ class HtmlTextView(Gtk.TextView): window = widget.get_window(Gtk.TextWindowType.TEXT) window.set_cursor(Gdk.Cursor.new(Gdk.CursorType.HAND2)) self._changed_cursor = True - self.tooltip.timeout = GObject.timeout_add(500, self.show_tooltip, + self.tooltip.timeout = GLib.timeout_add(500, self.show_tooltip, anchor_tags[0]) elif self._changed_cursor and not anchor_tags: window = widget.get_window(Gtk.TextWindowType.TEXT) @@ -1020,7 +1021,7 @@ if __name__ == '__main__': # if not over_line: # line_tooltip.hide_tooltip() #if over_line and not line_tooltip.win: - # line_tooltip.timeout = GObject.timeout_add(500, + # line_tooltip.timeout = GLib.timeout_add(500, # show_line_tooltip) # htmlview.tv.get_window(Gtk.TextWindowType.TEXT).set_cursor( # Gdk.Cursor.new(Gdk.CursorType.LEFT_PTR)) diff --git a/src/message_window.py b/src/message_window.py index 29c7a47b0..d1d136d64 100644 --- a/src/message_window.py +++ b/src/message_window.py @@ -30,6 +30,7 @@ from gi.repository import Gtk from gi.repository import Gdk from gi.repository import GObject +from gi.repository import GLib import time import common @@ -276,7 +277,7 @@ class MessageWindow(object): scrolled = True self.notebook.set_show_tabs(True) if scrolled: - GObject.idle_add(conv_textview.scroll_to_end_iter) + GLib.idle_add(conv_textview.scroll_to_end_iter) # Add notebook page and connect up to the tab's close button xml = gtkgui_helpers.get_gtk_builder('message_window.ui', 'chat_tab_ebox') @@ -306,7 +307,7 @@ class MessageWindow(object): # 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) + GLib.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 @@ -318,7 +319,7 @@ class MessageWindow(object): self.remove_tab(ctrl, self.CLOSE_TAB_MIDDLE_CLICK) else: ctrl = self._widget_to_control(child) - GObject.idle_add(ctrl.msg_textview.grab_focus) + GLib.idle_add(ctrl.msg_textview.grab_focus) def _on_message_textview_mykeypress_event(self, widget, event_keyval, event_keymod): @@ -546,7 +547,7 @@ class MessageWindow(object): ctrl_page = self.notebook.page_num(ctrl.widget) self.notebook.set_current_page(ctrl_page) self.window.present() - GObject.idle_add(ctrl.msg_textview.grab_focus) + GLib.idle_add(ctrl.msg_textview.grab_focus) def remove_tab(self, ctrl, method, reason = None, force = False): """ diff --git a/src/profile_window.py b/src/profile_window.py index afa90f500..e466d0b48 100644 --- a/src/profile_window.py +++ b/src/profile_window.py @@ -26,6 +26,7 @@ from gi.repository import Gtk from gi.repository import Gdk from gi.repository import GdkPixbuf from gi.repository import GObject +from gi.repository import GLib import base64 import mimetypes import os @@ -60,7 +61,7 @@ class ProfileWindow: self.avatar_encoded = None self.message_id = self.statusbar.push(self.context_id, _('Retrieving profile...')) - self.update_progressbar_timeout_id = GObject.timeout_add(100, + self.update_progressbar_timeout_id = GLib.timeout_add(100, self.update_progressbar) self.remove_statusbar_timeout_id = None @@ -78,7 +79,7 @@ class ProfileWindow: self.xml.get_object('ok_button').grab_focus() def on_information_notebook_switch_page(self, widget, page, page_num): - GObject.idle_add(self.xml.get_object('ok_button').grab_focus) + GLib.idle_add(self.xml.get_object('ok_button').grab_focus) def update_progressbar(self): self.progressbar.pulse() @@ -90,9 +91,9 @@ class ProfileWindow: def on_profile_window_destroy(self, widget): if self.update_progressbar_timeout_id is not None: - GObject.source_remove(self.update_progressbar_timeout_id) + GLib.source_remove(self.update_progressbar_timeout_id) if self.remove_statusbar_timeout_id is not None: - GObject.source_remove(self.remove_statusbar_timeout_id) + GLib.source_remove(self.remove_statusbar_timeout_id) gajim.ged.remove_event_handler('vcard-published', ged.GUI1, self._nec_vcard_published) gajim.ged.remove_event_handler('vcard-not-published', ged.GUI1, @@ -237,7 +238,7 @@ class ProfileWindow: pritext = _('Wrong date format') dialogs.ErrorDialog(pritext, _('Format of the date must be ' 'YYYY-MM-DD')) - GObject.idle_add(lambda: widget.grab_focus()) + GLib.idle_add(lambda: widget.grab_focus()) return True def set_value(self, entry_name, value): @@ -294,9 +295,9 @@ class ProfileWindow: self.statusbar.remove(self.context_id, self.message_id) self.message_id = self.statusbar.push(self.context_id, _('Information received')) - self.remove_statusbar_timeout_id = GObject.timeout_add_seconds(3, - self.remove_statusbar, self.message_id) - GObject.source_remove(self.update_progressbar_timeout_id) + self.remove_statusbar_timeout_id = GLib.timeout_add_seconds(3, + self.remove_statusbar, self.message_id) + GLib.source_remove(self.update_progressbar_timeout_id) self.progressbar.hide() self.progressbar.set_fraction(0) self.update_progressbar_timeout_id = None @@ -386,14 +387,14 @@ class ProfileWindow: self.message_id = self.statusbar.push(self.context_id, _('Sending profile...')) self.progressbar.show() - self.update_progressbar_timeout_id = GObject.timeout_add(100, - self.update_progressbar) + self.update_progressbar_timeout_id = GLib.timeout_add(100, + self.update_progressbar) def _nec_vcard_published(self, obj): if obj.conn.name != self.account: return if self.update_progressbar_timeout_id is not None: - GObject.source_remove(self.update_progressbar_timeout_id) + GLib.source_remove(self.update_progressbar_timeout_id) self.update_progressbar_timeout_id = None self.window.destroy() @@ -404,10 +405,10 @@ class ProfileWindow: self.statusbar.remove(self.context_id, self.message_id) self.message_id = self.statusbar.push(self.context_id, _('Information NOT published')) - self.remove_statusbar_timeout_id = GObject.timeout_add_seconds(3, + self.remove_statusbar_timeout_id = GLib.timeout_add_seconds(3, self.remove_statusbar, self.message_id) if self.update_progressbar_timeout_id is not None: - GObject.source_remove(self.update_progressbar_timeout_id) + GLib.source_remove(self.update_progressbar_timeout_id) self.progressbar.set_fraction(0) self.update_progressbar_timeout_id = None dialogs.InformationDialog(_('vCard publication failed'), diff --git a/src/roster_window.py b/src/roster_window.py index 0a351a664..e1bf37d91 100644 --- a/src/roster_window.py +++ b/src/roster_window.py @@ -37,6 +37,7 @@ from gi.repository import Gdk from gi.repository import GdkPixbuf from gi.repository import Pango from gi.repository import GObject +from gi.repository import GLib import os import sys import time @@ -267,7 +268,7 @@ class RosterWindow: it = self.model.append(None, [ gajim.interface.jabber_state_images['16'][show], - GObject.markup_escape_text(account), 'account', our_jid, + GLib.markup_escape_text(account), 'account', our_jid, account, None, None, None, None, None, tls_pixbuf] + [None] * self.nb_ext_renderers) self._iters[account]['account'] = it @@ -327,7 +328,7 @@ class RosterWindow: iter_parent = self._get_account_iter(account, self.model) iter_group = self.model.append(iter_parent, [gajim.interface.jabber_state_images['16']['closed'], - GObject.markup_escape_text(group), 'group', group, account, None, + GLib.markup_escape_text(group), 'group', group, account, None, None, None, None, None, None] + [None] * self.nb_ext_renderers) self.draw_group(group, account) self._iters[account_group]['groups'][group] = iter_group @@ -1103,7 +1104,7 @@ class RosterWindow: return self.accounts_to_draw.append(account) if len(self.accounts_to_draw) == 1: - GObject.timeout_add(200, self._really_draw_accounts) + GLib.timeout_add(200, self._really_draw_accounts) def _really_draw_group(self, group, account): child_iter = self._get_group_iter(group, account, model=self.model) @@ -1115,7 +1116,7 @@ class RosterWindow: accounts = [] else: accounts = [account] - text = GObject.markup_escape_text(group) + text = GLib.markup_escape_text(group) if helpers.group_is_blocked(account, group): text = '%s' % text if gajim.config.get('show_contacts_number'): @@ -1139,7 +1140,7 @@ class RosterWindow: return self.groups_to_draw[ag] = {'group': group, 'account': account} if len(self.groups_to_draw) == 1: - GObject.timeout_add(200, self._really_draw_groups) + GLib.timeout_add(200, self._really_draw_groups) def draw_parent_contact(self, jid, account): child_iters = self._get_contact_iter(jid, account, model=self.model) @@ -1173,7 +1174,7 @@ class RosterWindow: if not child_iters: return False - name = GObject.markup_escape_text(contact.get_shown_name()) + name = GLib.markup_escape_text(contact.get_shown_name()) # gets number of unread gc marked messages if jid in gajim.interface.minimized_controls[account] and \ @@ -1226,7 +1227,7 @@ class RosterWindow: color.blue) name += '\n%s' % (colorstring, - GObject.markup_escape_text(status)) + GLib.markup_escape_text(status)) icon_name = helpers.get_icon_name_to_show(contact, account) # look if another resource has awaiting events @@ -1419,7 +1420,7 @@ class RosterWindow: yield False task = _draw_all_contacts(jids, account) - GObject.idle_add(next, task) + GLib.idle_add(next, task) def _before_fill(self): self.tree.freeze_child_notify() @@ -2586,11 +2587,11 @@ class RosterWindow: if jid in jid_list or jid == gajim.get_jid_from_account(account): if not gajim.jid_is_transport(jid) and len(obj.contact_list) == 1: if obj.old_show == 0 and obj.new_show > 1: - GObject.timeout_add_seconds(5, self.remove_newly_added, jid, + GLib.timeout_add_seconds(5, self.remove_newly_added, jid, account) elif obj.old_show > 1 and obj.new_show == 0 and \ obj.conn.connected > 1: - GObject.timeout_add_seconds(5, self.remove_to_be_removed, + GLib.timeout_add_seconds(5, self.remove_to_be_removed, jid, account) if obj.need_redraw: @@ -2613,7 +2614,7 @@ class RosterWindow: if obj.popup: ctrl = gajim.interface.msg_win_mgr.search_control(jid, account) if ctrl: - GObject.idle_add(ctrl.parent_win.set_active_tab, ctrl) + GLib.idle_add(ctrl.parent_win.set_active_tab, ctrl) else: ctrl = gajim.interface.new_chat(obj.contact, account) if len(gajim.events.get_events(account, obj.jid)): @@ -2655,7 +2656,7 @@ class RosterWindow: account) gajim.config.set_per('accounts', account, 'opened_chat_controls', '') - GObject.idle_add(self.refilter_shown_roster_items) + GLib.idle_add(self.refilter_shown_roster_items) def _nec_anonymous_auth(self, obj): """ @@ -2885,7 +2886,7 @@ class RosterWindow: # no connected contacts, show the ofline one connected_contacts = contacts self.tooltip.account = account - self.tooltip.timeout = GObject.timeout_add(500, + self.tooltip.timeout = GLib.timeout_add(500, self.show_tooltip, connected_contacts) elif model[titer][C_TYPE] == 'groupchat': if self.tooltip.timeout == 0 or self.tooltip.id != props[0]: @@ -2894,7 +2895,7 @@ class RosterWindow: self.tooltip.id = row contact = gajim.contacts.get_contacts(account, jid) self.tooltip.account = account - self.tooltip.timeout = GObject.timeout_add(500, + self.tooltip.timeout = GLib.timeout_add(500, self.show_tooltip, contact) elif model[titer][C_TYPE] == 'account': # we're on an account entry in the roster @@ -2903,7 +2904,7 @@ class RosterWindow: if account == 'all': self.tooltip.id = row self.tooltip.account = None - self.tooltip.timeout = GObject.timeout_add(500, + self.tooltip.timeout = GLib.timeout_add(500, self.show_tooltip, []) return jid = gajim.get_jid_from_account(account) @@ -2957,7 +2958,7 @@ class RosterWindow: contacts.append(contact) self.tooltip.id = row self.tooltip.account = None - self.tooltip.timeout = GObject.timeout_add(500, + self.tooltip.timeout = GLib.timeout_add(500, self.show_tooltip, contacts) def on_agent_logging(self, widget, jid, state, account): @@ -3108,7 +3109,7 @@ class RosterWindow: old_text = jid title = _('Rename Group') message = _('Enter a new name for group %s') % \ - GObject.markup_escape_text(jid) + GLib.markup_escape_text(jid) def on_renamed(new_text, account, row_type, jid, old_text): if 'rename' in gajim.interface.instances: @@ -4270,7 +4271,7 @@ class RosterWindow: if self.filtering: # Prevent endless loops jid = model[titer][C_JID] - GObject.idle_add(self.draw_contact, jid, account) + GLib.idle_add(self.draw_contact, jid, account) elif type_ == 'group': group = model[titer][C_JID] self._adjust_group_expand_collapse_state(group, account) @@ -4292,7 +4293,7 @@ class RosterWindow: # if len(self._last_selected_contact): # # update unselected rows # for (jid, account) in self._last_selected_contact: -# GObject.idle_add(self.draw_contact, jid, +# GLib.idle_add(self.draw_contact, jid, # account) # self._last_selected_contact = [] # if len(list_of_paths) == 0: @@ -4305,7 +4306,7 @@ class RosterWindow: # jid = row[C_JID] # account = row[C_ACCOUNT] # self._last_selected_contact.append((jid, account)) -# GObject.idle_add(self.draw_contact, jid, account, True) +# GLib.idle_add(self.draw_contact, jid, account, True) def on_service_disco_menuitem_activate(self, widget, account): server_jid = gajim.config.get_per('accounts', account, 'hostname') @@ -6651,7 +6652,7 @@ class RosterWindow: config.AccountCreationWizardWindow() # Open wizard only after roster is created, so we can make it # transient for the roster window - GObject.idle_add(_open_wizard) + GLib.idle_add(_open_wizard) if not gajim.ZEROCONF_ACC_NAME in gajim.config.get_per('accounts'): # Create zeroconf in config file from common.zeroconf import connection_zeroconf diff --git a/src/search_window.py b/src/search_window.py index 7dbddc3bf..9a9ea1a31 100644 --- a/src/search_window.py +++ b/src/search_window.py @@ -19,7 +19,7 @@ ## along with Gajim. If not, see . ## -from gi.repository import GObject +from gi.repository import GLib from gi.repository import Gtk from common import gajim @@ -52,7 +52,7 @@ class SearchWindow: self.xml.connect_signals(self) self.window.show_all() self.request_form() - self.pulse_id = GObject.timeout_add(80, self.pulse_callback) + self.pulse_id = GLib.timeout_add(80, self.pulse_callback) self.is_form = None @@ -77,7 +77,7 @@ class SearchWindow: def on_search_window_destroy(self, widget): if self.pulse_id: - GObject.source_remove(self.pulse_id) + GLib.source_remove(self.pulse_id) del gajim.interface.instances[self.account]['search'][self.jid] gajim.ged.remove_event_handler('search-form-received', ged.GUI1, self._nec_search_form_received) @@ -104,7 +104,7 @@ class SearchWindow: self.progressbar.show() self.label.set_text(_('Waiting for results')) self.label.show() - self.pulse_id = GObject.timeout_add(80, self.pulse_callback) + self.pulse_id = GLib.timeout_add(80, self.pulse_callback) self.search_button.hide() def on_add_contact_button_clicked(self, widget): @@ -128,7 +128,7 @@ class SearchWindow: def _nec_search_form_received(self, obj): if self.pulse_id: - GObject.source_remove(self.pulse_id) + GLib.source_remove(self.pulse_id) self.progressbar.hide() self.label.hide() @@ -168,7 +168,7 @@ class SearchWindow: def _nec_search_result_received(self, obj): if self.pulse_id: - GObject.source_remove(self.pulse_id) + GLib.source_remove(self.pulse_id) self.progressbar.hide() self.label.hide() diff --git a/src/tooltips.py b/src/tooltips.py index a9623cc75..cc5454c11 100644 --- a/src/tooltips.py +++ b/src/tooltips.py @@ -30,7 +30,7 @@ from gi.repository import Gtk from gi.repository import Gdk -from gi.repository import GObject +from gi.repository import GLib import os import time import locale @@ -155,7 +155,7 @@ class BaseTooltip: def hide_tooltip(self): if self.timeout > 0: - GObject.source_remove(self.timeout) + GLib.source_remove(self.timeout) self.timeout = 0 if self.win: self.win.destroy() @@ -241,8 +241,8 @@ class StatusTable: if status != '': # reduce to 100 chars, 1 line status = helpers.reduce_chars_newlines(status, 100, 1) - str_status = GObject.markup_escape_text(str_status) - status = GObject.markup_escape_text(status) + str_status = GLib.markup_escape_text(str_status) + status = GLib.markup_escape_text(status) str_status += ' - ' + status + '' return str_status @@ -299,7 +299,7 @@ class NotificationAreaTooltip(BaseTooltip, StatusTable): for acct in accounts: message = acct['message'] message = helpers.reduce_chars_newlines(message, 100, 1) - message = GObject.markup_escape_text(message) + message = GLib.markup_escape_text(message) if acct['name'] in gajim.con_types and \ gajim.con_types[acct['name']] in ('tls', 'ssl'): show_lock = True @@ -307,12 +307,12 @@ class NotificationAreaTooltip(BaseTooltip, StatusTable): show_lock = False if message: self.add_status_row(file_path, acct['show'], - GObject.markup_escape_text(acct['name']) + \ - ' - ' + message, show_lock=show_lock, indent=False) + GLib.markup_escape_text(acct['name']) + ' - ' + message, + show_lock=show_lock, indent=False) else: self.add_status_row(file_path, acct['show'], - GObject.markup_escape_text(acct['name']) - , show_lock=show_lock, indent=False) + GLib.markup_escape_text(acct['name']), show_lock=show_lock, + indent=False) for line in acct['event_lines']: self.add_text_row(' ' + line, 1) @@ -354,9 +354,8 @@ class GCTooltip(BaseTooltip): vcard_current_row = 1 properties = [] - nick_markup = '' + \ - GObject.markup_escape_text(contact.get_shown_name()) \ - + '' + nick_markup = '' + GLib.markup_escape_text(contact.get_shown_name())\ + + '' properties.append((nick_markup, None)) if contact.status: # status message @@ -364,8 +363,7 @@ class GCTooltip(BaseTooltip): if status != '': # escape markup entities status = helpers.reduce_chars_newlines(status, 300, 5) - status = '' +\ - GObject.markup_escape_text(status) + '' + status = '' + GLib.markup_escape_text(status) + '' properties.append((status, None)) show = helpers.get_uf_show(contact.show) @@ -376,8 +374,8 @@ class GCTooltip(BaseTooltip): properties.append((_('Jabber ID: '), "%s" % contact.jid)) if hasattr(contact, 'resource') and contact.resource.strip(): - properties.append((_('Resource: '), - GObject.markup_escape_text(contact.resource))) + properties.append((_('Resource: '), GLib.markup_escape_text( + contact.resource))) if contact.affiliation != 'none': uf_affiliation = helpers.get_uf_affiliation(contact.affiliation) @@ -480,13 +478,12 @@ class RosterTooltip(NotificationAreaTooltip): vcard_current_row = 1 properties = [] - name_markup = '' + \ - GObject.markup_escape_text(prim_contact.get_shown_name())\ - + '' + name_markup = '' + GLib.markup_escape_text( + prim_contact.get_shown_name()) + '' if gajim.config.get('mergeaccounts'): name_markup += " (%s)" % ( gajim.config.get('tooltip_account_name_color'), - GObject.markup_escape_text(prim_contact.account.name)) + GLib.markup_escape_text(prim_contact.account.name)) if self.account and helpers.jid_is_blocked(self.account, prim_contact.jid): @@ -586,7 +583,7 @@ class RosterTooltip(NotificationAreaTooltip): # status is wrapped status = helpers.reduce_chars_newlines(status, 300, 5) # escape markup entities. - status = GObject.markup_escape_text(status) + status = GLib.markup_escape_text(status) properties.append(('%s' % status, None)) properties.append((show, None)) @@ -596,15 +593,14 @@ class RosterTooltip(NotificationAreaTooltip): # contact has only one ressource if num_resources == 1 and contact.resource: - properties.append((_('Resource: '), - GObject.markup_escape_text(contact.resource) +\ - ' (' + str(contact.priority) + ')')) + properties.append((_('Resource: '), GLib.markup_escape_text( + contact.resource) + ' (' + str(contact.priority) + ')')) if self.account and prim_contact.sub and prim_contact.sub != 'both' and\ prim_contact.jid not in gajim.gc_connected[self.account]: # ('both' is the normal sub so we don't show it) - properties.append(( _('Subscription: '), - GObject.markup_escape_text(helpers.get_uf_sub(prim_contact.sub)))) + properties.append(( _('Subscription: '), GLib.markup_escape_text( + helpers.get_uf_sub(prim_contact.sub)))) if prim_contact.keyID: keyID = None @@ -613,8 +609,8 @@ class RosterTooltip(NotificationAreaTooltip): elif len(prim_contact.keyID) == 16: keyID = prim_contact.keyID[8:] if keyID: - properties.append((_('OpenPGP: '), - GObject.markup_escape_text(keyID))) + properties.append((_('OpenPGP: '), GLib.markup_escape_text( + keyID))) if contact.last_activity_time: last_active = datetime(*contact.last_activity_time[:6]) @@ -730,8 +726,7 @@ class FileTransfersTooltip(BaseTooltip): file_name = os.path.split(file_props.file_name)[1] else: file_name = file_props.name - properties.append((_('Name: '), - GObject.markup_escape_text(file_name))) + properties.append((_('Name: '), GLib.markup_escape_text(file_name))) if file_props.type_ == 'r': type_ = _('Download') actor = _('Sender: ') @@ -747,7 +742,7 @@ class FileTransfersTooltip(BaseTooltip): else: name = receiver.split('/')[0] properties.append((_('Type: '), type_)) - properties.append((actor, GObject.markup_escape_text(name))) + properties.append((actor, GLib.markup_escape_text(name))) transfered_len = file_props.received_len if not transfered_len: @@ -775,8 +770,8 @@ class FileTransfersTooltip(BaseTooltip): status = _('Not started') properties.append((_('Status: '), status)) file_desc = file_props.desc - properties.append((_('Description: '), GObject.markup_escape_text( - file_desc))) + properties.append((_('Description: '), GLib.markup_escape_text( + file_desc))) while properties: property_ = properties.pop(0) current_row += 1