diff --git a/Makefile.am b/Makefile.am
index a5beeff56..8c8395042 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -11,15 +11,17 @@ EXTRA_DIST = \
intltool-merge.in \
intltool-update.in \
win \
- scripts/gajim.in
-
+ scripts/gajim.in \
+ scripts/gajim-history-manager.in \
+ scripts/gajim-remote.in
+
DISTCLEANFILES = \
intltool-extract \
intltool-merge \
intltool-update \
scripts/gajim \
scripts/gajim-remote \
- scripts/gajim-histrory-manager
+ scripts/gajim-history-manager
MAINTAINERCLEANFILES = \
configure \
diff --git a/configure.ac b/configure.ac
index 857357e1a..528da7752 100644
--- a/configure.ac
+++ b/configure.ac
@@ -38,21 +38,10 @@ AC_SUBST(ACLOCAL_AMFLAGS)
AM_PATH_PYTHON([3.5])
-dnl ****
-dnl enable installation in python-2.x/site-packages/gajim
-dnl ****
-AC_ARG_ENABLE(site-packages,
- [AS_HELP_STRING([--enable-site-packages],
- [install gajim sources in PYTHONDIR/site-packages/gajim
-instead of DATADIR/gajim/src.])]
-,
AC_SUBST([gajim_srcdir], [\${pkgpythondir}])
-,
-AC_SUBST([gajim_srcdir], [\${datadir}/\${PACKAGE}/gajim])
-)
-
AC_SUBST([gajim_pluginsdir], [\${datadir}/\${PACKAGE}/plugins])
+AS_AC_EXPAND(PY_SITEDIR, "${pythondir}")
AS_AC_EXPAND(GAJIM_SRCDIR, "${gajim_srcdir}")
AS_AC_EXPAND(PKGDATADIR, "${datadir}/${PACKAGE}")
AS_AC_EXPAND(DOCDIR, "${docdir}")
@@ -78,8 +67,8 @@ AC_CONFIG_FILES([
data/defs.py
gajim/Makefile
scripts/gajim
- scripts/gajim-remote:scripts/gajim.in
- scripts/gajim-history-manager:scripts/gajim.in
+ scripts/gajim-history-manager
+ scripts/gajim-remote
po/Makefile.in
plugins/Makefile
])
diff --git a/gajim/__init__.py b/gajim/__init__.py
new file mode 100644
index 000000000..e69de29bb
diff --git a/gajim/adhoc_commands.py b/gajim/adhoc_commands.py
index 1e427ddd0..a8ffd9bb2 100644
--- a/gajim/adhoc_commands.py
+++ b/gajim/adhoc_commands.py
@@ -29,12 +29,12 @@ from gi.repository import GLib
from gi.repository import Gtk
import nbxmpp
-from common import gajim
-from common import dataforms
+from gajim.common import app
+from gajim.common import dataforms
-import gtkgui_helpers
-import dialogs
-import dataforms_widget
+from gajim import gtkgui_helpers
+from gajim import dialogs
+from gajim import dataforms_widget
class CommandWindow:
"""
@@ -55,7 +55,7 @@ class CommandWindow:
"""
# an account object
- self.account = gajim.connections[account]
+ self.account = app.connections[account]
self.jid = jid
self.commandnode = commandnode
self.data_form_widget = None
diff --git a/gajim/advanced_configuration_window.py b/gajim/advanced_configuration_window.py
index fce0119d1..cc56b37db 100644
--- a/gajim/advanced_configuration_window.py
+++ b/gajim/advanced_configuration_window.py
@@ -26,11 +26,11 @@
from enum import IntEnum, unique
from gi.repository import Gtk
-import gtkgui_helpers
+from gajim import gtkgui_helpers
from gi.repository import GLib
from gi.repository import Pango
-from common import gajim
+from gajim.common import app
@unique
class Column(IntEnum):
@@ -73,7 +73,7 @@ class AdvancedConfigurationWindow(object):
self.xml = gtkgui_helpers.get_gtk_builder('advanced_configuration_window.ui')
self.window = self.xml.get_object('advanced_configuration_window')
self.window.set_transient_for(
- gajim.interface.instances['preferences'].window)
+ app.interface.instances['preferences'].window)
self.entry = self.xml.get_object('advanced_entry')
self.desc_label = self.xml.get_object('advanced_desc_label')
self.restart_box = self.xml.get_object('restart_box')
@@ -130,7 +130,7 @@ class AdvancedConfigurationWindow(object):
self.xml.connect_signals(self)
self.restart_box.set_no_show_all(True)
self.window.show_all()
- gajim.interface.instances['advanced_config'] = self
+ app.interface.instances['advanced_config'] = self
def cb_value_column_data(self, col, cell, model, iter_, data):
"""
@@ -166,9 +166,9 @@ class AdvancedConfigurationWindow(object):
# Get text from first column in this row
desc = None
if len(opt_path) == 3:
- desc = gajim.config.get_desc_per(opt_path[2], opt_path[0])
+ desc = app.config.get_desc_per(opt_path[2], opt_path[0])
elif len(opt_path) == 1:
- desc = gajim.config.get_desc(opt_path[0])
+ desc = app.config.get_desc(opt_path[0])
if desc:
self.desc_label.set_text(desc)
else:
@@ -205,10 +205,10 @@ class AdvancedConfigurationWindow(object):
key = keyrow[0]
self.remember_option(option + '\n' + key + '\n' + optname,
modelrow[1], newval)
- gajim.config.set_per(optname, key, option, newval)
+ app.config.set_per(optname, key, option, newval)
else:
self.remember_option(option, modelrow[1], newval)
- gajim.config.set(option, newval)
+ app.config.set(option, newval)
modelrow[1] = self.right_true_dict[newval]
self.check_for_restart()
@@ -217,10 +217,10 @@ class AdvancedConfigurationWindow(object):
for opt in self.changed_opts:
opt_path = opt.split('\n')
if len(opt_path)==3:
- restart = gajim.config.get_restart_per(opt_path[2], opt_path[1],
+ restart = app.config.get_restart_per(opt_path[2], opt_path[1],
opt_path[0])
else:
- restart = gajim.config.get_restart(opt_path[0])
+ restart = app.config.get_restart(opt_path[0])
if restart:
if self.changed_opts[opt][0] != self.changed_opts[opt][1]:
self.restart_box.set_no_show_all(False)
@@ -242,16 +242,16 @@ class AdvancedConfigurationWindow(object):
optname = optnamerow[0]
self.remember_option(option + '\n' + key + '\n' + optname, modelrow[1],
text)
- gajim.config.set_per(optname, key, option, text)
+ app.config.set_per(optname, key, option, text)
else:
self.remember_option(option, modelrow[1], text)
- gajim.config.set(option, text)
+ app.config.set(option, text)
modelrow[1] = text
self.check_for_restart()
@staticmethod
def on_advanced_configuration_window_destroy(widget):
- del gajim.interface.instances['advanced_config']
+ del app.interface.instances['advanced_config']
def on_reset_button_clicked(self, widget):
model, iter_ = self.treeview.get_selection().get_selected()
@@ -260,9 +260,9 @@ class AdvancedConfigurationWindow(object):
path = model.get_path(iter_)
opt_path = self.get_option_path(model, iter_)
if len(opt_path) == 1:
- default = gajim.config.get_default(opt_path[0])
+ default = app.config.get_default(opt_path[0])
elif len(opt_path) == 3:
- default = gajim.config.get_default_per(opt_path[2], opt_path[0])
+ default = app.config.get_default_per(opt_path[2], opt_path[0])
if model[iter_][Column.TYPE] == self.types['boolean']:
if self.right_true_dict[default] == model[iter_][Column.VALUE]:
@@ -277,10 +277,10 @@ class AdvancedConfigurationWindow(object):
key = keyrow[0]
self.remember_option(option + '\n' + key + '\n' + optname,
modelrow[Column.VALUE], default)
- gajim.config.set_per(optname, key, option, default)
+ app.config.set_per(optname, key, option, default)
else:
self.remember_option(option, modelrow[Column.VALUE], default)
- gajim.config.set(option, default)
+ app.config.set(option, default)
modelrow[Column.VALUE] = self.right_true_dict[default]
self.check_for_restart()
else:
@@ -292,16 +292,16 @@ class AdvancedConfigurationWindow(object):
self.window.destroy()
def fill_model(self, node=None, parent=None):
- for item, option in gajim.config.get_children(node):
+ for item, option in app.config.get_children(node):
name = item[-1]
if option is None: # Node
newparent = self.model.append(parent, [name, '', ''])
self.fill_model(item, newparent)
else: # Leaf
if len(item) == 1:
- type_ = self.types[gajim.config.get_type(name)]
+ type_ = self.types[app.config.get_type(name)]
elif len(item) == 3:
- type_ = self.types[gajim.config.get_type_per(item[0],
+ type_ = self.types[app.config.get_type_per(item[0],
item[2])]
if name == 'password':
value = _('Hidden')
@@ -321,9 +321,9 @@ class AdvancedConfigurationWindow(object):
if model[it][Column.TYPE] != '':
opt_path = self.get_option_path(model, it)
if len(opt_path) == 3:
- desc = gajim.config.get_desc_per(opt_path[2], opt_path[0])
+ desc = app.config.get_desc_per(opt_path[2], opt_path[0])
elif len(opt_path) == 1:
- desc = gajim.config.get_desc(opt_path[0])
+ desc = app.config.get_desc(opt_path[0])
if search_string in model[it][Column.PREFERENCE_NAME] or (desc and \
search_string in desc.lower()):
return True
diff --git a/gajim/app_actions.py b/gajim/app_actions.py
index 5e2c947c9..a88a75bb7 100644
--- a/gajim/app_actions.py
+++ b/gajim/app_actions.py
@@ -18,70 +18,64 @@
## along with Gajim. If not, see .
##
-from common import helpers
-from common import gajim
-from common.exceptions import GajimGeneralException
+from gajim.common import app
+from gajim.common import helpers
+from gajim.common.app import interface
+from gajim.common.exceptions import GajimGeneralException
from gi.repository import Gtk
import sys
import os
-import config
-import dialogs
-import features_window
-import shortcuts_window
-import plugins.gui
-import history_window
-import disco
-from history_sync import HistorySyncAssistant
-from server_info import ServerInfoDialog
+from gajim import config
+from gajim import dialogs
+from gajim import features_window
+from gajim import shortcuts_window
+import gajim.plugins.gui
+from gajim import history_window
+from gajim import disco
+from gajim.history_sync import HistorySyncAssistant
+from gajim.server_info import ServerInfoDialog
class AppActions():
''' Action Callbacks '''
- def __init__(self, app: Gtk.Application):
- self.application = app
+ def __init__(self, application: Gtk.Application):
+ self.application = application
# Application Menu Actions
def on_preferences(self, action, param):
- if 'preferences' in gajim.interface.instances:
- gajim.interface.instances['preferences'].window.present()
+ if 'preferences' in interface.instances:
+ interface.instances['preferences'].window.present()
else:
- gajim.interface.instances['preferences'] = \
+ interface.instances['preferences'] = \
config.PreferencesWindow()
def on_plugins(self, action, param):
- if 'plugins' in gajim.interface.instances:
- gajim.interface.instances['plugins'].window.present()
+ if 'plugins' in interface.instances:
+ interface.instances['plugins'].window.present()
else:
- gajim.interface.instances['plugins'] = plugins.gui.PluginsWindow()
+ interface.instances['plugins'] = gajim.plugins.gui.PluginsWindow()
def on_accounts(self, action, param):
- if 'accounts' in gajim.interface.instances:
- gajim.interface.instances['accounts'].window.present()
+ if 'accounts' in interface.instances:
+ interface.instances['accounts'].window.present()
else:
- gajim.interface.instances['accounts'] = config.AccountsWindow()
+ interface.instances['accounts'] = config.AccountsWindow()
def on_history_manager(self, action, param):
- config_path = '-c %s' % gajim.gajimpaths.data_root
- posix = os.name != 'nt'
- if os.path.exists('history_manager.exe'): # Windows
- helpers.exec_command('history_manager.exe %s' % config_path,
- posix=posix)
- else: # Linux or running from Git
- helpers.exec_command(
- '%s history_manager.py %s' % (sys.executable, config_path),
- posix=posix)
+ from gajim.history_manager import HistoryManager
+ HistoryManager()
def on_manage_bookmarks(self, action, param):
config.ManageBookmarksWindow()
def on_quit(self, action, param):
- gajim.interface.roster.on_quit_request()
+ interface.roster.on_quit_request()
# Accounts Actions
def on_profile(self, action, param):
- gajim.interface.edit_own_details(param.get_string())
+ interface.edit_own_details(param.get_string())
def on_activate_bookmark(self, action, param):
dict_ = param.unpack()
@@ -91,19 +85,19 @@ class AppActions():
nick = dict_['nick']
if 'password' in dict_:
password = dict_['password']
- gajim.interface.join_gc_room(account, jid, nick, password)
+ interface.join_gc_room(account, jid, nick, password)
def on_send_server_message(self, action, param):
account = param.get_string()
- server = gajim.config.get_per('accounts', account, 'hostname')
+ server = app.config.get_per('accounts', account, 'hostname')
server += '/announce/online'
dialogs.SingleMessageWindow(account, server, 'send')
def on_service_disco(self, action, param):
account = param.get_string()
- server_jid = gajim.config.get_per('accounts', account, 'hostname')
- if server_jid in gajim.interface.instances[account]['disco']:
- gajim.interface.instances[account]['disco'][server_jid].\
+ server_jid = app.config.get_per('accounts', account, 'hostname')
+ if server_jid in interface.instances[account]['disco']:
+ interface.instances[account]['disco'][server_jid].\
window.present()
else:
try:
@@ -114,16 +108,16 @@ class AppActions():
def on_join_gc(self, action, param):
account = param.get_string()
- invisible_show = gajim.SHOW_LIST.index('invisible')
- if gajim.connections[account].connected == invisible_show:
+ invisible_show = app.SHOW_LIST.index('invisible')
+ if app.connections[account].connected == invisible_show:
dialogs.ErrorDialog(_(
'You cannot join a group chat while you are invisible'))
return
- if 'join_gc' in gajim.interface.instances[account]:
- gajim.interface.instances[account]['join_gc'].window.present()
+ if 'join_gc' in interface.instances[account]:
+ interface.instances[account]['join_gc'].window.present()
else:
try:
- gajim.interface.instances[account]['join_gc'] = \
+ interface.instances[account]['join_gc'] = \
dialogs.JoinGroupchatWindow(account)
except GajimGeneralException:
pass
@@ -141,64 +135,64 @@ class AppActions():
def on_archiving_preferences(self, action, param):
account = param.get_string()
- if 'archiving_preferences' in gajim.interface.instances[account]:
- gajim.interface.instances[account]['archiving_preferences'].window.\
+ if 'archiving_preferences' in interface.instances[account]:
+ interface.instances[account]['archiving_preferences'].window.\
present()
else:
- gajim.interface.instances[account]['archiving_preferences'] = \
+ interface.instances[account]['archiving_preferences'] = \
dialogs.Archiving313PreferencesWindow(account)
def on_history_sync(self, action, param):
account = param.get_string()
- if 'history_sync' in gajim.interface.instances[account]:
- gajim.interface.instances[account]['history_sync'].present()
+ if 'history_sync' in interface.instances[account]:
+ interface.instances[account]['history_sync'].present()
else:
- gajim.interface.instances[account]['history_sync'] = \
- HistorySyncAssistant(account, gajim.interface.roster.window)
+ interface.instances[account]['history_sync'] = \
+ HistorySyncAssistant(account, interface.roster.window)
def on_privacy_lists(self, action, param):
account = param.get_string()
- if 'privacy_lists' in gajim.interface.instances[account]:
- gajim.interface.instances[account]['privacy_lists'].window.present()
+ if 'privacy_lists' in interface.instances[account]:
+ interface.instances[account]['privacy_lists'].window.present()
else:
- gajim.interface.instances[account]['privacy_lists'] = \
+ interface.instances[account]['privacy_lists'] = \
dialogs.PrivacyListsWindow(account)
def on_server_info(self, action, param):
account = param.get_string()
- if 'server_info' in gajim.interface.instances[account]:
- gajim.interface.instances[account]['server_info'].present()
+ if 'server_info' in interface.instances[account]:
+ interface.instances[account]['server_info'].present()
else:
- gajim.interface.instances[account]['server_info'] = \
+ interface.instances[account]['server_info'] = \
ServerInfoDialog(account)
def on_xml_console(self, action, param):
account = param.get_string()
- if 'xml_console' in gajim.interface.instances[account]:
- gajim.interface.instances[account]['xml_console'].present()
+ if 'xml_console' in interface.instances[account]:
+ interface.instances[account]['xml_console'].present()
else:
- gajim.interface.instances[account]['xml_console'] = \
+ interface.instances[account]['xml_console'] = \
dialogs.XMLConsoleWindow(account)
# Admin Actions
def on_set_motd(self, action, param):
account = param.get_string()
- server = gajim.config.get_per('accounts', account, 'hostname')
+ server = app.config.get_per('accounts', account, 'hostname')
server += '/announce/motd'
dialogs.SingleMessageWindow(account, server, 'send')
def on_update_motd(self, action, param):
account = param.get_string()
- server = gajim.config.get_per('accounts', account, 'hostname')
+ server = app.config.get_per('accounts', account, 'hostname')
server += '/announce/motd/update'
dialogs.SingleMessageWindow(account, server, 'send')
def on_delete_motd(self, action, param):
account = param.get_string()
- server = gajim.config.get_per('accounts', account, 'hostname')
+ server = app.config.get_per('accounts', account, 'hostname')
server += '/announce/motd/delete'
- gajim.connections[account].send_motd(server)
+ app.connections[account].send_motd(server)
# Help Actions
@@ -222,15 +216,15 @@ class AppActions():
# View Actions
def on_file_transfers(self, action, param):
- if gajim.interface.instances['file_transfers']. \
+ if interface.instances['file_transfers']. \
window.get_property('visible'):
- gajim.interface.instances['file_transfers'].window.present()
+ interface.instances['file_transfers'].window.present()
else:
- gajim.interface.instances['file_transfers'].window.show_all()
+ interface.instances['file_transfers'].window.show_all()
def on_history(self, action, param):
- if 'logs' in gajim.interface.instances:
- gajim.interface.instances['logs'].window.present()
+ if 'logs' in interface.instances:
+ interface.instances['logs'].window.present()
else:
- gajim.interface.instances['logs'] = history_window.\
+ interface.instances['logs'] = history_window.\
HistoryWindow()
diff --git a/gajim/atom_window.py b/gajim/atom_window.py
index 88a0b5030..a37c8048e 100644
--- a/gajim/atom_window.py
+++ b/gajim/atom_window.py
@@ -25,9 +25,9 @@
from gi.repository import Gdk
from gi.repository import GLib
-import gtkgui_helpers
-from common import helpers
-from common import i18n
+from gajim import gtkgui_helpers
+from gajim.common import helpers
+from gajim.common import i18n
class AtomWindow:
window = None
diff --git a/gajim/chat_control.py b/gajim/chat_control.py
index 1e2573b7e..d2bbb59d0 100644
--- a/gajim/chat_control.py
+++ b/gajim/chat_control.py
@@ -34,29 +34,29 @@ from gi.repository import Gdk
from gi.repository import GdkPixbuf
from gi.repository import Pango
from gi.repository import GLib
-import gtkgui_helpers
-import gui_menu_builder
-import message_control
-import dialogs
+from gajim import gtkgui_helpers
+from gajim import gui_menu_builder
+from gajim import message_control
+from gajim import dialogs
-from common import logger
-from common import gajim
-from common import helpers
-from common import exceptions
-from common import ged
-from common import i18n
-from common.stanza_session import EncryptedStanzaSession, ArchivingStanzaSession
-from common.contacts import GC_Contact
-from common.logger import KindConstant
+from gajim.common import logger
+from gajim.common import app
+from gajim.common import helpers
+from gajim.common import exceptions
+from gajim.common import ged
+from gajim.common import i18n
+from gajim.common.stanza_session import EncryptedStanzaSession, ArchivingStanzaSession
+from gajim.common.contacts import GC_Contact
+from gajim.common.logger import KindConstant
from nbxmpp.protocol import NS_XHTML, NS_XHTML_IM, NS_FILE, NS_MUC
from nbxmpp.protocol import NS_ESESSION
from nbxmpp.protocol import NS_JINGLE_RTP_AUDIO, NS_JINGLE_RTP_VIDEO
from nbxmpp.protocol import NS_JINGLE_ICE_UDP, NS_JINGLE_FILE_TRANSFER_5
from nbxmpp.protocol import NS_CHATSTATES
-from common.connection_handlers_events import MessageOutgoingEvent
-from common.exceptions import GajimGeneralException
+from gajim.common.connection_handlers_events import MessageOutgoingEvent
+from gajim.common.exceptions import GajimGeneralException
-from command_system.implementation.hosts import ChatCommands
+from gajim.command_system.implementation.hosts import ChatCommands
try:
import gtkspell
@@ -64,7 +64,7 @@ try:
except (ImportError, ValueError):
HAS_GTK_SPELL = False
-from chat_control_base import ChatControlBase
+from gajim.chat_control_base import ChatControlBase
################################################################################
class ChatControl(ChatControlBase):
@@ -146,10 +146,10 @@ class ChatControl(ChatControlBase):
self._on_contact_information_menuitem_activate)
self.handlers[id_] = self._contact_information_button
- compact_view = gajim.config.get('compact_view')
+ compact_view = app.config.get('compact_view')
self.chat_buttons_set_visible(compact_view)
self.widget_set_visible(self.xml.get_object('banner_eventbox'),
- gajim.config.get('hide_chat_banner'))
+ app.config.get('hide_chat_banner'))
self.authentication_button = self.xml.get_object(
'authentication_button')
@@ -197,7 +197,7 @@ class ChatControl(ChatControlBase):
self.handlers[id_] = message_tv_buffer
widget = self.xml.get_object('avatar_eventbox')
- widget.set_property('height-request', gajim.config.get(
+ widget.set_property('height-request', app.config.get(
'chat_avatar_height'))
id_ = widget.connect('enter-notify-event',
self.on_avatar_eventbox_enter_notify_event)
@@ -269,7 +269,7 @@ class ChatControl(ChatControlBase):
# and it's not the same
if not resource:
resource = contact.resource
- session = gajim.connections[self.account].find_controlless_session(
+ session = app.connections[self.account].find_controlless_session(
self.contact.jid, resource)
self.setup_seclabel(self.xml.get_object('label_selector'))
@@ -294,37 +294,37 @@ class ChatControl(ChatControlBase):
self.restore_conversation()
self.msg_textview.grab_focus()
- gajim.ged.register_event_handler('pep-received', ged.GUI1,
+ app.ged.register_event_handler('pep-received', ged.GUI1,
self._nec_pep_received)
- gajim.ged.register_event_handler('vcard-received', ged.GUI1,
+ app.ged.register_event_handler('vcard-received', ged.GUI1,
self._nec_vcard_received)
- gajim.ged.register_event_handler('failed-decrypt', ged.GUI1,
+ app.ged.register_event_handler('failed-decrypt', ged.GUI1,
self._nec_failed_decrypt)
- gajim.ged.register_event_handler('chatstate-received', ged.GUI1,
+ app.ged.register_event_handler('chatstate-received', ged.GUI1,
self._nec_chatstate_received)
- gajim.ged.register_event_handler('caps-received', ged.GUI1,
+ app.ged.register_event_handler('caps-received', ged.GUI1,
self._nec_caps_received)
# PluginSystem: adding GUI extension point for this ChatControl
# instance object
- gajim.plugin_manager.gui_extension_point('chat_control', self)
+ app.plugin_manager.gui_extension_point('chat_control', self)
def subscribe_events(self):
"""
Register listeners to the events class
"""
- gajim.events.event_added_subscribe(self.on_event_added)
- gajim.events.event_removed_subscribe(self.on_event_removed)
+ app.events.event_added_subscribe(self.on_event_added)
+ app.events.event_removed_subscribe(self.on_event_removed)
def unsubscribe_events(self):
"""
Unregister listeners to the events class
"""
- gajim.events.event_added_unsubscribe(self.on_event_added)
- gajim.events.event_removed_unsubscribe(self.on_event_removed)
+ app.events.event_added_unsubscribe(self.on_event_added)
+ app.events.event_removed_unsubscribe(self.on_event_removed)
def _update_toolbar(self):
- if (gajim.connections[self.account].connected > 1 and not \
+ if (app.connections[self.account].connected > 1 and not \
self.TYPE_ID == 'pm') or (self.contact.show != 'offline' and \
self.TYPE_ID == 'pm'):
send_button = self.xml.get_object('send_button')
@@ -347,14 +347,14 @@ class ChatControl(ChatControlBase):
# Add to roster
if not isinstance(self.contact, GC_Contact) \
and _('Not in Roster') in self.contact.groups and \
- gajim.connections[self.account].roster_supported:
+ app.connections[self.account].roster_supported:
self._add_to_roster_button.show()
else:
self._add_to_roster_button.hide()
# Jingle detection
if self.contact.supports(NS_JINGLE_ICE_UDP) and \
- gajim.HAVE_FARSTREAM and self.contact.resource:
+ app.HAVE_FARSTREAM and self.contact.resource:
self.audio_available = self.contact.supports(NS_JINGLE_RTP_AUDIO)
self.video_available = self.contact.supports(NS_JINGLE_RTP_VIDEO)
else:
@@ -373,7 +373,7 @@ class ChatControl(ChatControlBase):
# not installed
audio_tooltip_text = _('Toggle audio session') + '\n'
video_tooltip_text = _('Toggle video session') + '\n'
- if not gajim.HAVE_FARSTREAM:
+ if not app.HAVE_FARSTREAM:
ext_text = _('Feature not available, see Help->Features')
self._audio_button.set_tooltip_text(audio_tooltip_text + ext_text)
self._video_button.set_tooltip_text(video_tooltip_text + ext_text)
@@ -404,7 +404,7 @@ class ChatControl(ChatControlBase):
"them a file."))
# Convert to GC
- if gajim.config.get_per('accounts', self.account, 'is_zeroconf'):
+ if app.config.get_per('accounts', self.account, 'is_zeroconf'):
self._convert_to_gc_button.set_no_show_all(True)
self._convert_to_gc_button.hide()
else:
@@ -414,7 +414,7 @@ class ChatControl(ChatControlBase):
self._convert_to_gc_button.set_sensitive(False)
# Information
- if gajim.account_is_disconnected(self.account):
+ if app.account_is_disconnected(self.account):
self._contact_information_button.set_sensitive(False)
else:
self._contact_information_button.set_sensitive(True)
@@ -479,8 +479,8 @@ class ChatControl(ChatControlBase):
hbox = self.xml.get_object('audio_buttons_hbox')
if self.audio_state == self.JINGLE_STATE_CONNECTED:
# Set volume from config
- input_vol = gajim.config.get('audio_input_volume')
- output_vol = gajim.config.get('audio_output_volume')
+ input_vol = app.config.get('audio_input_volume')
+ output_vol = app.config.get('audio_output_volume')
input_vol = max(min(input_vol, 100), 0)
output_vol = max(min(output_vol, 100), 0)
self.xml.get_object('mic_hscale').set_value(input_vol)
@@ -499,12 +499,12 @@ class ChatControl(ChatControlBase):
old_full_jid = self.get_full_jid()
self.resource = resource
new_full_jid = self.get_full_jid()
- # update gajim.last_message_time
- if old_full_jid in gajim.last_message_time[self.account]:
- gajim.last_message_time[self.account][new_full_jid] = \
- gajim.last_message_time[self.account][old_full_jid]
+ # update app.last_message_time
+ if old_full_jid in app.last_message_time[self.account]:
+ app.last_message_time[self.account][new_full_jid] = \
+ app.last_message_time[self.account][old_full_jid]
# update events
- gajim.events.change_jid(self.account, old_full_jid, new_full_jid)
+ app.events.change_jid(self.account, old_full_jid, new_full_jid)
# update MessageWindow._controls
self.parent_win.change_jid(self.account, old_full_jid, new_full_jid)
@@ -553,7 +553,7 @@ class ChatControl(ChatControlBase):
self._set_jingle_state('video', state, sid=sid, reason=reason)
def _get_audio_content(self):
- session = gajim.connections[self.account].get_jingle_session(
+ session = app.connections[self.account].get_jingle_session(
self.contact.get_full_jid(), self.audio_sid)
return session.get_content('audio')
@@ -572,12 +572,12 @@ class ChatControl(ChatControlBase):
def on_mic_hscale_value_changed(self, widget, value):
self._get_audio_content().set_mic_volume(value / 100)
# Save volume to config
- gajim.config.set('audio_input_volume', value)
+ app.config.set('audio_input_volume', value)
def on_sound_hscale_value_changed(self, widget, value):
self._get_audio_content().set_out_volume(value / 100)
# Save volume to config
- gajim.config.set('audio_output_volume', value)
+ app.config.set('audio_output_volume', value)
def on_avatar_eventbox_enter_notify_event(self, widget, event):
"""
@@ -658,7 +658,7 @@ class ChatControl(ChatControlBase):
self.update_toolbar()
def _update_banner_state_image(self):
- contact = gajim.contacts.get_contact_with_highest_priority(self.account,
+ contact = app.contacts.get_contact_with_highest_priority(self.account,
self.contact.jid)
if not contact or self.resource:
# For transient contacts
@@ -667,9 +667,9 @@ class ChatControl(ChatControlBase):
jid = contact.jid
# Set banner image
- img_32 = gajim.interface.roster.get_appropriate_state_images(jid,
+ img_32 = app.interface.roster.get_appropriate_state_images(jid,
size='32', icon_name=show)
- img_16 = gajim.interface.roster.get_appropriate_state_images(jid,
+ img_16 = app.interface.roster.get_appropriate_state_images(jid,
icon_name=show)
if show in img_32 and img_32[show].get_pixbuf():
# we have 32x32! use it!
@@ -715,14 +715,14 @@ class ChatControl(ChatControlBase):
# in another account we need to also display the account.
# except if we are talking to two different resources of the same contact
acct_info = ''
- for account in gajim.contacts.get_accounts():
+ for account in app.contacts.get_accounts():
if account == self.account:
continue
if acct_info: # We already found a contact with same nick
break
- for jid in gajim.contacts.get_jid_list(account):
+ for jid in app.contacts.get_jid_list(account):
other_contact_ = \
- gajim.contacts.get_first_contact_from_jid(account, jid)
+ app.contacts.get_first_contact_from_jid(account, jid)
if other_contact_.get_shown_name() == \
self.contact.get_shown_name():
acct_info = i18n.direction_mark + ' (%s)' % \
@@ -739,7 +739,7 @@ class ChatControl(ChatControlBase):
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')
+ st = app.config.get('displayed_chat_state_notifications')
cs = contact.chatstate
if cs and st in ('composing_only', 'all'):
if contact.show == 'offline':
@@ -784,7 +784,7 @@ class ChatControl(ChatControlBase):
return
setattr(self, jingle_type + '_sid', None)
setattr(self, jingle_type + '_state', self.JINGLE_STATE_NULL)
- session = gajim.connections[self.account].get_jingle_session(
+ session = app.connections[self.account].get_jingle_session(
self.contact.get_full_jid(), sid)
if session:
content = session.get_content(jingle_type)
@@ -804,7 +804,7 @@ class ChatControl(ChatControlBase):
if jingle_type == 'video':
video_hbox = self.xml.get_object('video_hbox')
video_hbox.set_no_show_all(False)
- if gajim.config.get('video_see_self'):
+ if app.config.get('video_see_self'):
fixed = self.xml.get_object('outgoing_fixed')
fixed.set_no_show_all(False)
video_hbox.show_all()
@@ -820,10 +820,10 @@ class ChatControl(ChatControlBase):
in_da = self.xml.get_object('incoming_drawingarea')
in_da.realize()
in_xid = in_da.get_window().get_xid()
- sid = gajim.connections[self.account].start_video(
+ sid = app.connections[self.account].start_video(
self.contact.get_full_jid(), in_xid, out_xid)
else:
- sid = getattr(gajim.connections[self.account],
+ sid = getattr(app.connections[self.account],
'start_' + jingle_type)(self.contact.get_full_jid())
getattr(self, 'set_' + jingle_type + '_state')('connecting', sid)
else:
@@ -851,7 +851,7 @@ class ChatControl(ChatControlBase):
'authenticated': False}
if self.encryption:
- gajim.plugin_manager.extension_point(
+ app.plugin_manager.extension_point(
'encryption_state' + self.encryption, self, encryption_state)
self._show_lock_image(**encryption_state)
@@ -877,7 +877,7 @@ class ChatControl(ChatControlBase):
def _on_authentication_button_clicked(self, widget):
if self.encryption:
- gajim.plugin_manager.extension_point(
+ app.plugin_manager.extension_point(
'encryption_dialog' + self.encryption, self)
def send_message(self, message, keyID='', chatstate=None, xhtml=None,
@@ -888,7 +888,7 @@ class ChatControl(ChatControlBase):
if self.encryption:
self.sendmessage = True
- gajim.plugin_manager.extension_point(
+ app.plugin_manager.extension_point(
'send_message' + self.encryption, self)
if not self.sendmessage:
return
@@ -900,7 +900,7 @@ class ChatControl(ChatControlBase):
contact = self.contact
keyID = contact.keyID
- chatstates_on = gajim.config.get('outgoing_chat_state_notifications') != \
+ chatstates_on = app.config.get('outgoing_chat_state_notifications') != \
'disabled'
chatstate_to_send = None
@@ -915,8 +915,8 @@ class ChatControl(ChatControlBase):
def _on_sent(obj, msg_stanza, message, encrypted, xhtml, label):
id_ = msg_stanza.getID()
xep0184_id = None
- if self.contact.jid != gajim.get_jid_from_account(self.account):
- if gajim.config.get_per('accounts', self.account, 'request_receipt'):
+ if self.contact.jid != app.get_jid_from_account(self.account):
+ if app.config.get_per('accounts', self.account, 'request_receipt'):
xep0184_id = id_
if label:
displaymarking = label.getTag('displaymarking')
@@ -987,7 +987,7 @@ class ChatControl(ChatControlBase):
self.print_archiving_session_details()
def get_our_nick(self):
- return gajim.nicks[self.account]
+ return app.nicks[self.account]
def print_conversation(self, text, frm='', tim=None, encrypted=None,
subject=None, xhtml=None, simple=False, xep0184_id=None,
@@ -1011,7 +1011,7 @@ class ChatControl(ChatControlBase):
additional_data = {}
if frm == 'status':
- if not gajim.config.get('print_status_in_chats'):
+ if not app.config.get('print_status_in_chats'):
return
kind = 'status'
name = ''
@@ -1032,8 +1032,8 @@ class ChatControl(ChatControlBase):
kind = 'outgoing'
name = self.get_our_nick()
if not xhtml and not encrypted and \
- gajim.config.get('rst_formatting_outgoing_messages'):
- from common.rst_xhtml_generator import create_xhtml
+ app.config.get('rst_formatting_outgoing_messages'):
+ from gajim.common.rst_xhtml_generator import create_xhtml
xhtml = create_xhtml(text)
if xhtml:
xhtml = '
%s' % (NS_XHTML, xhtml)
@@ -1054,9 +1054,9 @@ class ChatControl(ChatControlBase):
jid = self.contact.get_full_jid()
else:
jid = self.contact.jid
- num_unread = len(gajim.events.get_events(self.account, jid,
+ num_unread = len(app.events.get_events(self.account, jid,
['printed_' + self.type_id, self.type_id]))
- if num_unread == 1 and not gajim.config.get('show_unread_tab_icon'):
+ if num_unread == 1 and not app.config.get('show_unread_tab_icon'):
unread = '*'
elif num_unread > 1:
unread = '[' + str(num_unread) + ']'
@@ -1075,7 +1075,7 @@ class ChatControl(ChatControlBase):
else:
jid = self.contact.jid
- if gajim.config.get('show_avatar_in_tabs'):
+ if app.config.get('show_avatar_in_tabs'):
avatar_pixbuf = gtkgui_helpers.get_avatar_pixbuf_from_cache(jid)
if avatar_pixbuf not in ('ask', None):
avatar_pixbuf = gtkgui_helpers.get_scaled_pixbuf_by_size(
@@ -1083,24 +1083,24 @@ class ChatControl(ChatControlBase):
return avatar_pixbuf
if count_unread:
- num_unread = len(gajim.events.get_events(self.account, jid,
+ num_unread = len(app.events.get_events(self.account, jid,
['printed_' + self.type_id, self.type_id]))
else:
num_unread = 0
# Set tab image (always 16x16); unread messages show the 'event' image
tab_img = None
- if num_unread and gajim.config.get('show_unread_tab_icon'):
- img_16 = gajim.interface.roster.get_appropriate_state_images(
+ if num_unread and app.config.get('show_unread_tab_icon'):
+ img_16 = app.interface.roster.get_appropriate_state_images(
self.contact.jid, icon_name='event')
tab_img = img_16['event']
else:
- contact = gajim.contacts.get_contact_with_highest_priority(
+ contact = app.contacts.get_contact_with_highest_priority(
self.account, self.contact.jid)
if not contact or self.resource:
# For transient contacts
contact = self.contact
- img_16 = gajim.interface.roster.get_appropriate_state_images(
+ img_16 = app.interface.roster.get_appropriate_state_images(
self.contact.jid, icon_name=contact.show)
tab_img = img_16[contact.show]
@@ -1112,7 +1112,7 @@ class ChatControl(ChatControlBase):
for history_menuitem (False for tranasports) and file_transfer_menuitem
and hide()/show() for add_to_roster_menuitem
"""
- if gajim.jid_is_transport(self.contact.jid):
+ if app.jid_is_transport(self.contact.jid):
menu = gui_menu_builder.get_transport_menu(self.contact,
self.account)
else:
@@ -1139,7 +1139,7 @@ class ChatControl(ChatControlBase):
# do not send if we have chat state notifications disabled
# that means we won't reply to the from other peer
# so we do not broadcast jep85 capabalities
- chatstate_setting = gajim.config.get('outgoing_chat_state_notifications')
+ chatstate_setting = app.config.get('outgoing_chat_state_notifications')
if chatstate_setting == 'disabled':
return
@@ -1148,7 +1148,7 @@ class ChatControl(ChatControlBase):
if contact and contact.sub in ('to', 'none'):
return
- if self.contact.jid == gajim.get_jid_from_account(self.account):
+ if self.contact.jid == app.get_jid_from_account(self.account):
return
elif chatstate_setting == 'composing_only' and state != 'active' and\
@@ -1179,13 +1179,13 @@ class ChatControl(ChatControlBase):
# if wel're inactive prevent composing (XEP violation)
if contact.our_chatstate == 'inactive' and state == 'composing':
# go active before
- gajim.nec.push_outgoing_event(MessageOutgoingEvent(None,
+ app.nec.push_outgoing_event(MessageOutgoingEvent(None,
account=self.account, jid=self.contact.jid, chatstate='active',
control=self))
contact.our_chatstate = 'active'
self.reset_kbd_mouse_timeout_vars()
- gajim.nec.push_outgoing_event(MessageOutgoingEvent(None,
+ app.nec.push_outgoing_event(MessageOutgoingEvent(None,
account=self.account, jid=self.contact.jid, chatstate=state,
control=self))
@@ -1196,17 +1196,17 @@ class ChatControl(ChatControlBase):
def shutdown(self):
# PluginSystem: removing GUI extension points connected with ChatControl
# instance object
- gajim.plugin_manager.remove_gui_extension_point('chat_control', self)
+ app.plugin_manager.remove_gui_extension_point('chat_control', self)
- gajim.ged.remove_event_handler('pep-received', ged.GUI1,
+ app.ged.remove_event_handler('pep-received', ged.GUI1,
self._nec_pep_received)
- gajim.ged.remove_event_handler('vcard-received', ged.GUI1,
+ app.ged.remove_event_handler('vcard-received', ged.GUI1,
self._nec_vcard_received)
- gajim.ged.remove_event_handler('failed-decrypt', ged.GUI1,
+ app.ged.remove_event_handler('failed-decrypt', ged.GUI1,
self._nec_failed_decrypt)
- gajim.ged.remove_event_handler('chatstate-received', ged.GUI1,
+ app.ged.remove_event_handler('chatstate-received', ged.GUI1,
self._nec_chatstate_received)
- gajim.ged.remove_event_handler('caps-received', ged.GUI1,
+ app.ged.remove_event_handler('caps-received', ged.GUI1,
self._nec_caps_received)
self.unsubscribe_events()
@@ -1227,11 +1227,11 @@ class ChatControl(ChatControlBase):
if self.bigger_avatar_window:
self.bigger_avatar_window.destroy()
# Clean events
- gajim.events.remove_events(self.account, self.get_full_jid(),
+ app.events.remove_events(self.account, self.get_full_jid(),
types=['printed_' + self.type_id, self.type_id])
# Remove contact instance if contact has been removed
key = (self.contact.jid, self.account)
- roster = gajim.interface.roster
+ roster = app.interface.roster
if key in roster.contacts_to_be_removed.keys() and \
not roster.contact_has_pending_roster_events(self.contact,
self.account):
@@ -1246,7 +1246,7 @@ class ChatControl(ChatControlBase):
self.handlers[i].disconnect(i)
del self.handlers[i]
self.conv_textview.del_handlers()
- if gajim.config.get('use_speller') and HAS_GTK_SPELL:
+ if app.config.get('use_speller') and HAS_GTK_SPELL:
spell_obj = gtkspell.get_from_text_view(self.msg_textview)
if spell_obj:
spell_obj.detach()
@@ -1262,7 +1262,7 @@ class ChatControl(ChatControlBase):
return False
def allow_shutdown(self, method, on_yes, on_no, on_minimize):
- if time.time() - gajim.last_message_time[self.account]\
+ if time.time() - app.last_message_time[self.account]\
[self.get_full_jid()] < 2:
# 2 seconds
@@ -1319,7 +1319,7 @@ class ChatControl(ChatControlBase):
self.show_avatar()
def show_avatar(self):
- if not gajim.config.get('show_avatar_in_chat'):
+ if not app.config.get('show_avatar_in_chat'):
return
jid_with_resource = self.contact.get_full_jid()
@@ -1334,10 +1334,10 @@ class ChatControl(ChatControlBase):
real_jid += '/' + self.gc_contact.resource
else:
real_jid = jid_with_resource
- gajim.connections[self.account].request_vcard(real_jid,
+ app.connections[self.account].request_vcard(real_jid,
jid_with_resource)
else:
- gajim.connections[self.account].request_vcard(jid_with_resource)
+ app.connections[self.account].request_vcard(jid_with_resource)
return
elif pixbuf:
scaled_pixbuf = gtkgui_helpers.get_scaled_pixbuf(pixbuf, 'chat')
@@ -1351,7 +1351,7 @@ class ChatControl(ChatControlBase):
def _nec_vcard_received(self, obj):
if obj.conn.name != self.account:
return
- j = gajim.get_jid_without_resource(self.contact.jid)
+ j = app.get_jid_without_resource(self.contact.jid)
if obj.jid != j:
return
self.show_avatar()
@@ -1372,12 +1372,12 @@ class ChatControl(ChatControlBase):
for uri in uri_splitted:
path = helpers.get_file_path_from_dnd_dropped_uri(uri)
if os.path.isfile(path): # is it file?
- ft = gajim.interface.instances['file_transfers']
+ ft = app.interface.instances['file_transfers']
ft.send_file(self.account, c, path)
return
# chat2muc
- treeview = gajim.interface.roster.tree
+ treeview = app.interface.roster.tree
model = treeview.get_model()
data = selection.get_data()
path = treeview.get_selection().get_selected_rows()[1][0]
@@ -1387,8 +1387,8 @@ class ChatControl(ChatControlBase):
return
dropped_jid = data
- dropped_transport = gajim.get_transport_name_from_jid(dropped_jid)
- c_transport = gajim.get_transport_name_from_jid(c.jid)
+ dropped_transport = app.get_transport_name_from_jid(dropped_jid)
+ c_transport = app.get_transport_name_from_jid(c.jid)
if dropped_transport or c_transport:
return # transport contacts cannot be invited
@@ -1397,24 +1397,24 @@ class ChatControl(ChatControlBase):
def _on_message_tv_buffer_changed(self, textbuffer):
super()._on_message_tv_buffer_changed(textbuffer)
if textbuffer.get_char_count() and self.encryption:
- gajim.plugin_manager.extension_point(
+ app.plugin_manager.extension_point(
'typing' + self.encryption, self)
def restore_conversation(self):
jid = self.contact.jid
# don't restore lines if it's a transport
- if gajim.jid_is_transport(jid):
+ if app.jid_is_transport(jid):
return
# number of messages that are in queue and are already logged, we want
# to avoid duplication
- pending = len(gajim.events.get_events(self.account, jid,
+ pending = len(app.events.get_events(self.account, jid,
['chat', 'pm']))
if self.resource:
- pending += len(gajim.events.get_events(self.account,
+ pending += len(app.events.get_events(self.account,
self.contact.get_full_jid(), ['chat', 'pm']))
- rows = gajim.logger.get_last_conversation_lines(
+ rows = app.logger.get_last_conversation_lines(
self.account, jid, pending)
local_old_kind = None
@@ -1438,7 +1438,7 @@ class ChatControl(ChatControlBase):
tim = float(row.time)
- if gajim.config.get('restored_messages_small'):
+ if app.config.get('restored_messages_small'):
small_attr = ['small']
else:
small_attr = []
@@ -1467,7 +1467,7 @@ class ChatControl(ChatControlBase):
jid_with_resource = jid
if self.resource:
jid_with_resource += '/' + self.resource
- events = gajim.events.get_events(self.account, jid_with_resource)
+ events = app.events.get_events(self.account, jid_with_resource)
# list of message ids which should be marked as read
message_ids = []
@@ -1490,16 +1490,16 @@ class ChatControl(ChatControlBase):
if event.session and not self.session:
self.set_session(event.session)
if message_ids:
- gajim.logger.set_read_messages(message_ids)
- gajim.events.remove_events(self.account, jid_with_resource,
+ app.logger.set_read_messages(message_ids)
+ app.events.remove_events(self.account, jid_with_resource,
types=[self.type_id])
typ = 'chat' # Is it a normal chat or a pm ?
# reset to status image in gc if it is a pm
# Is it a pm ?
- room_jid, nick = gajim.get_room_and_nick_from_fjid(jid)
- control = gajim.interface.msg_win_mgr.get_gc_control(room_jid,
+ room_jid, nick = app.get_room_and_nick_from_fjid(jid)
+ control = app.interface.msg_win_mgr.get_gc_control(room_jid,
self.account)
if control and control.type_id == message_control.TYPE_GC:
control.update_ui()
@@ -1508,12 +1508,12 @@ class ChatControl(ChatControlBase):
self.redraw_after_event_removed(jid)
if (self.contact.show in ('offline', 'error')):
- show_offline = gajim.config.get('showoffline')
- show_transports = gajim.config.get('show_transports_group')
- if (not show_transports and gajim.jid_is_transport(jid)) or \
+ show_offline = app.config.get('showoffline')
+ show_transports = app.config.get('show_transports_group')
+ if (not show_transports and app.jid_is_transport(jid)) or \
(not show_offline and typ == 'chat' and \
- len(gajim.contacts.get_contacts(self.account, jid)) < 2):
- gajim.interface.roster.remove_to_be_removed(self.contact.jid,
+ len(app.contacts.get_contacts(self.account, jid)) < 2):
+ app.interface.roster.remove_to_be_removed(self.contact.jid,
self.account)
elif typ == 'pm':
control.remove_contact(nick)
@@ -1559,7 +1559,7 @@ class ChatControl(ChatControlBase):
# make the bigger avatar window show up centered
small_avatar_x, small_avatar_y = alloc.x, alloc.y
translated_coordinates = small_avatar.translate_coordinates(
- gajim.interface.roster.window, 0, 0)
+ app.interface.roster.window, 0, 0)
if translated_coordinates:
small_avatar_x, small_avatar_y = translated_coordinates
roster_x, roster_y = self.parent_win.window.get_window().get_origin()[1:]
@@ -1579,7 +1579,7 @@ class ChatControl(ChatControlBase):
dialogs.AddNewContactWindow(self.account, self.contact.jid)
def _on_contact_information_menuitem_activate(self, widget):
- gajim.interface.roster.on_info(widget, self.contact, self.account)
+ app.interface.roster.on_info(widget, self.contact, self.account)
def _on_convert_to_gc_menuitem_activate(self, widget):
"""
@@ -1600,7 +1600,7 @@ class ChatControl(ChatControlBase):
self.session.terminate_e2e()
- gajim.connections[self.account].delete_session(jid, thread_id)
+ app.connections[self.account].delete_session(jid, thread_id)
# presumably the user had a good reason to shut it off, so
# disable autonegotiation too
@@ -1611,7 +1611,7 @@ class ChatControl(ChatControlBase):
if not self.session:
fjid = self.contact.get_full_jid()
- new_sess = gajim.connections[self.account].make_new_session(fjid, type_=self.type_id)
+ new_sess = app.connections[self.account].make_new_session(fjid, type_=self.type_id)
self.set_session(new_sess)
def begin_e2e_negotiation(self):
@@ -1641,7 +1641,7 @@ class ChatControl(ChatControlBase):
def got_connected(self):
ChatControlBase.got_connected(self)
# Refreshing contact
- contact = gajim.contacts.get_contact_with_highest_priority(
+ contact = app.contacts.get_contact_with_highest_priority(
self.account, self.contact.jid)
if isinstance(contact, GC_Contact):
contact = contact.as_contact()
@@ -1712,24 +1712,24 @@ class ChatControl(ChatControlBase):
self._info_bar_show_message()
def _get_file_props_event(self, file_props, type_):
- evs = gajim.events.get_events(self.account, self.contact.jid, [type_])
+ evs = app.events.get_events(self.account, self.contact.jid, [type_])
for ev in evs:
if ev.file_props == file_props:
return ev
return None
def _on_accept_file_request(self, widget, file_props):
- gajim.interface.instances['file_transfers'].on_file_request_accepted(
+ app.interface.instances['file_transfers'].on_file_request_accepted(
self.account, self.contact, file_props)
ev = self._get_file_props_event(file_props, 'file-request')
if ev:
- gajim.events.remove_events(self.account, self.contact.jid, event=ev)
+ app.events.remove_events(self.account, self.contact.jid, event=ev)
def _on_cancel_file_request(self, widget, file_props):
- gajim.connections[self.account].send_file_rejection(file_props)
+ app.connections[self.account].send_file_rejection(file_props)
ev = self._get_file_props_event(file_props, 'file-request')
if ev:
- gajim.events.remove_events(self.account, self.contact.jid, event=ev)
+ app.events.remove_events(self.account, self.contact.jid, event=ev)
def _got_file_request(self, file_props):
"""
@@ -1753,12 +1753,12 @@ class ChatControl(ChatControlBase):
helpers.launch_file_manager(path)
ev = self._get_file_props_event(file_props, 'file-completed')
if ev:
- gajim.events.remove_events(self.account, self.contact.jid, event=ev)
+ app.events.remove_events(self.account, self.contact.jid, event=ev)
def _on_ok(self, widget, file_props, type_):
ev = self._get_file_props_event(file_props, type_)
if ev:
- gajim.events.remove_events(self.account, self.contact.jid, event=ev)
+ app.events.remove_events(self.account, self.contact.jid, event=ev)
def _got_file_completed(self, file_props):
markup = '%s: %s' % (_('File transfer completed'),
@@ -1780,17 +1780,17 @@ class ChatControl(ChatControlBase):
def _on_accept_gc_invitation(self, widget, event):
try:
if event.is_continued:
- gajim.interface.join_gc_room(self.account, event.room_jid,
- gajim.nicks[self.account], event.password,
+ app.interface.join_gc_room(self.account, event.room_jid,
+ app.nicks[self.account], event.password,
is_continued=True)
else:
dialogs.JoinGroupchatWindow(self.account, event.room_jid)
except GajimGeneralException:
pass
- gajim.events.remove_events(self.account, self.contact.jid, event=event)
+ app.events.remove_events(self.account, self.contact.jid, event=event)
def _on_cancel_gc_invitation(self, widget, event):
- gajim.events.remove_events(self.account, self.contact.jid, event=event)
+ app.events.remove_events(self.account, self.contact.jid, event=event)
def _get_gc_invitation(self, event):
markup = '%s: %s' % (_('Groupchat Invitation'), event.room_jid)
diff --git a/gajim/chat_control_base.py b/gajim/chat_control_base.py
index 541248af2..a5e05a16a 100644
--- a/gajim/chat_control_base.py
+++ b/gajim/chat_control_base.py
@@ -35,35 +35,35 @@ from gi.repository import Pango
from gi.repository import GObject
from gi.repository import GLib
from gi.repository import Gio
-import gtkgui_helpers
-from gtkgui_helpers import Color
-import message_control
-import dialogs
-import history_window
-import notify
+from gajim import gtkgui_helpers
+from gajim.gtkgui_helpers import Color
+from gajim import message_control
+from gajim import dialogs
+from gajim import history_window
+from gajim import notify
import re
-import emoticons
-from scrolled_window import ScrolledWindow
-from common import events
-from common import gajim
-from common import helpers
-from common import ged
-from message_control import MessageControl
-from conversation_textview import ConversationTextview
-from message_textview import MessageTextView
-from common.contacts import GC_Contact
-from common.connection_handlers_events import MessageOutgoingEvent
+from gajim import emoticons
+from gajim.scrolled_window import ScrolledWindow
+from gajim.common import events
+from gajim.common import app
+from gajim.common import helpers
+from gajim.common import ged
+from gajim.message_control import MessageControl
+from gajim.conversation_textview import ConversationTextview
+from gajim.message_textview import MessageTextView
+from gajim.common.contacts import GC_Contact
+from gajim.common.connection_handlers_events import MessageOutgoingEvent
-from command_system.implementation.middleware import ChatCommandProcessor
-from command_system.implementation.middleware import CommandTools
+from gajim.command_system.implementation.middleware import ChatCommandProcessor
+from gajim.command_system.implementation.middleware import CommandTools
# The members of these modules are not referenced directly anywhere in this
# module, but still they need to be kept around. Importing them automatically
# registers the contained CommandContainers with the command system, thereby
# populating the list of available commands.
-import command_system.implementation.standard
-import command_system.implementation.execute
+from gajim.command_system.implementation import standard
+from gajim.command_system.implementation import execute
try:
import gtkspell
@@ -91,7 +91,7 @@ class ChatControlBase(MessageControl, ChatCommandProcessor, CommandTools):
keycode_ins = None
def make_href(self, match):
- url_color = gajim.config.get('urlmsgcolor')
+ url_color = app.config.get('urlmsgcolor')
url = match.group()
if not '://' in url:
url = 'http://' + url
@@ -102,9 +102,9 @@ class ChatControlBase(MessageControl, ChatCommandProcessor, CommandTools):
"""
Get pango font attributes for banner from theme settings
"""
- theme = gajim.config.get('roster_theme')
- bannerfont = gajim.config.get_per('themes', theme, 'bannerfont')
- bannerfontattrs = gajim.config.get_per('themes', theme, 'bannerfontattrs')
+ theme = app.config.get('roster_theme')
+ bannerfont = app.config.get_per('themes', theme, 'bannerfont')
+ bannerfontattrs = app.config.get_per('themes', theme, 'bannerfontattrs')
if bannerfont:
font = Pango.FontDescription(bannerfont)
@@ -131,7 +131,7 @@ class ChatControlBase(MessageControl, ChatCommandProcessor, CommandTools):
if self.resource:
jid += '/' + self.resource
type_ = self.type_id
- return len(gajim.events.get_events(self.account, jid, ['printed_' + type_,
+ return len(app.events.get_events(self.account, jid, ['printed_' + type_,
type_]))
def draw_banner(self):
@@ -142,7 +142,7 @@ class ChatControlBase(MessageControl, ChatCommandProcessor, CommandTools):
"""
self.draw_banner_text()
self._update_banner_state_image()
- gajim.plugin_manager.gui_extension_point('chat_control_base_draw_banner',
+ app.plugin_manager.gui_extension_point('chat_control_base_draw_banner',
self)
def update_toolbar(self):
@@ -150,7 +150,7 @@ class ChatControlBase(MessageControl, ChatCommandProcessor, CommandTools):
update state of buttons in toolbar
"""
self._update_toolbar()
- gajim.plugin_manager.gui_extension_point(
+ app.plugin_manager.gui_extension_point(
'chat_control_base_update_toolbar', self)
def draw_banner_text(self):
@@ -220,15 +220,15 @@ class ChatControlBase(MessageControl, ChatCommandProcessor, CommandTools):
self.seclabel_combo.pack_start(cell, True)
# text to show is in in first column of liststore
self.seclabel_combo.add_attribute(cell, 'text', 0)
- if gajim.connections[self.account].seclabel_supported:
- gajim.connections[self.account].seclabel_catalogue(self.contact.jid, self.on_seclabels_ready)
+ if app.connections[self.account].seclabel_supported:
+ app.connections[self.account].seclabel_catalogue(self.contact.jid, self.on_seclabels_ready)
def on_seclabels_ready(self):
lb = self.seclabel_combo.get_model()
lb.clear()
i = 0
sel = 0
- catalogue = gajim.connections[self.account].seclabel_catalogues[
+ catalogue = app.connections[self.account].seclabel_catalogues[
self.contact.jid]
for label in catalogue[2]:
lb.append([label])
@@ -248,7 +248,7 @@ class ChatControlBase(MessageControl, ChatCommandProcessor, CommandTools):
if resource is None:
# We very likely got a contact with a random resource.
# This is bad, we need the highest for caps etc.
- c = gajim.contacts.get_contact_with_highest_priority(acct,
+ c = app.contacts.get_contact_with_highest_priority(acct,
contact.jid)
if c and not isinstance(c, GC_Contact):
contact = c
@@ -369,7 +369,7 @@ class ChatControlBase(MessageControl, ChatCommandProcessor, CommandTools):
self.set_emoticon_popover()
# Attach speller
- if gajim.config.get('use_speller') and HAS_GTK_SPELL:
+ if app.config.get('use_speller') and HAS_GTK_SPELL:
self.set_speller()
self.conv_textview.tv.show()
@@ -399,15 +399,15 @@ class ChatControlBase(MessageControl, ChatCommandProcessor, CommandTools):
# PluginSystem: adding GUI extension point for ChatControlBase
# instance object (also subclasses, eg. ChatControl or GroupchatControl)
- gajim.plugin_manager.gui_extension_point('chat_control_base', self)
+ app.plugin_manager.gui_extension_point('chat_control_base', self)
- gajim.ged.register_event_handler('our-show', ged.GUI1,
+ app.ged.register_event_handler('our-show', ged.GUI1,
self._nec_our_status)
- gajim.ged.register_event_handler('ping-sent', ged.GUI1,
+ app.ged.register_event_handler('ping-sent', ged.GUI1,
self._nec_ping_sent)
- gajim.ged.register_event_handler('ping-reply', ged.GUI1,
+ app.ged.register_event_handler('ping-reply', ged.GUI1,
self._nec_ping_reply)
- gajim.ged.register_event_handler('ping-error', ged.GUI1,
+ app.ged.register_event_handler('ping-error', ged.GUI1,
self._nec_ping_error)
# This is bascially a very nasty hack to surpass the inability
@@ -431,7 +431,7 @@ class ChatControlBase(MessageControl, ChatCommandProcessor, CommandTools):
return
if encryption:
- plugin = gajim.plugin_manager.encryption_plugins[encryption]
+ plugin = app.plugin_manager.encryption_plugins[encryption]
if not plugin.activate_encryption(self):
return
else:
@@ -445,15 +445,15 @@ class ChatControlBase(MessageControl, ChatCommandProcessor, CommandTools):
def set_encryption_state(self, encryption):
config_key = '%s-%s' % (self.account, self.contact.jid)
self.encryption = encryption
- gajim.config.set_per('encryption', config_key,
+ app.config.set_per('encryption', config_key,
'encryption', self.encryption or '')
def get_encryption_state(self):
config_key = '%s-%s' % (self.account, self.contact.jid)
- state = gajim.config.get_per('encryption', config_key, 'encryption')
+ state = app.config.get_per('encryption', config_key, 'encryption')
if not state:
return None
- if state not in gajim.plugin_manager.encryption_plugins:
+ if state not in app.plugin_manager.encryption_plugins:
self.set_encryption_state(None)
return None
return state
@@ -476,13 +476,13 @@ class ChatControlBase(MessageControl, ChatCommandProcessor, CommandTools):
per_type = 'contacts'
if self.type_id == message_control.TYPE_GC:
per_type = 'rooms'
- lang = gajim.config.get_per(per_type, self.contact.jid,
+ lang = app.config.get_per(per_type, self.contact.jid,
'speller_language')
if not lang:
# use the default one
- lang = gajim.config.get('speller_language')
+ lang = app.config.get('speller_language')
if not lang:
- lang = gajim.LANG
+ lang = app.LANG
if lang:
try:
self.spell = gtkspell.Spell(self.msg_textview, lang)
@@ -495,9 +495,9 @@ class ChatControlBase(MessageControl, ChatCommandProcessor, CommandTools):
per_type = 'contacts'
if self.type_id == message_control.TYPE_GC:
per_type = 'rooms'
- if not gajim.config.get_per(per_type, self.contact.jid):
- gajim.config.add_per(per_type, self.contact.jid)
- gajim.config.set_per(per_type, self.contact.jid, 'speller_language',
+ if not app.config.get_per(per_type, self.contact.jid):
+ app.config.add_per(per_type, self.contact.jid)
+ app.config.set_per(per_type, self.contact.jid, 'speller_language',
lang)
self.msg_textview.lang = lang
@@ -526,11 +526,11 @@ class ChatControlBase(MessageControl, ChatCommandProcessor, CommandTools):
GLib.source_remove(self.possible_inactive_timeout_id)
# PluginSystem: removing GUI extension points connected with ChatControlBase
# instance object
- gajim.plugin_manager.remove_gui_extension_point('chat_control_base',
+ app.plugin_manager.remove_gui_extension_point('chat_control_base',
self)
- gajim.plugin_manager.remove_gui_extension_point(
+ app.plugin_manager.remove_gui_extension_point(
'chat_control_base_draw_banner', self)
- gajim.ged.remove_event_handler('our-show', ged.GUI1,
+ app.ged.remove_event_handler('our-show', ged.GUI1,
self._nec_our_status)
def on_msg_textview_populate_popup(self, textview, menu):
@@ -690,9 +690,9 @@ class ChatControlBase(MessageControl, ChatCommandProcessor, CommandTools):
send_message = False
else:
is_ctrl_enter = bool(event_state & Gdk.ModifierType.CONTROL_MASK)
- send_message = is_ctrl_enter == gajim.config.get('send_on_ctrl_enter')
+ send_message = is_ctrl_enter == app.config.get('send_on_ctrl_enter')
- if send_message and gajim.connections[self.account].connected < 2:
+ if send_message and app.connections[self.account].connected < 2:
# we are not connected
dialogs.ErrorDialog(_('A connection is not available'),
_('Your message can not be sent until you are connected.'))
@@ -737,7 +737,7 @@ class ChatControlBase(MessageControl, ChatCommandProcessor, CommandTools):
if self.seclabel_combo is not None:
idx = self.seclabel_combo.get_active()
if idx != -1:
- cat = gajim.connections[self.account].seclabel_catalogues[self.contact.jid]
+ cat = app.connections[self.account].seclabel_catalogues[self.contact.jid]
lname = cat[2][idx]
label = cat[1][lname]
return label
@@ -760,8 +760,8 @@ class ChatControlBase(MessageControl, ChatCommandProcessor, CommandTools):
# refresh timers
self.reset_kbd_mouse_timeout_vars()
- notifications = gajim.config.get('outgoing_chat_state_notifications')
- if (self.contact.jid == gajim.get_jid_from_account(self.account) or
+ notifications = app.config.get('outgoing_chat_state_notifications')
+ if (self.contact.jid == app.get_jid_from_account(self.account) or
notifications == 'disabled'):
chatstate = None
@@ -777,7 +777,7 @@ class ChatControlBase(MessageControl, ChatCommandProcessor, CommandTools):
else:
correct_id = None
- gajim.nec.push_outgoing_event(MessageOutgoingEvent(None,
+ app.nec.push_outgoing_event(MessageOutgoingEvent(None,
account=self.account, jid=self.contact.jid, message=message,
keyID=keyID, type_=type_, chatstate=chatstate,
resource=resource, user_nick=self.user_nick, xhtml=xhtml,
@@ -897,7 +897,7 @@ class ChatControlBase(MessageControl, ChatCommandProcessor, CommandTools):
size = len(history)
scroll = False if pos == size else True # are we scrolling?
# we don't want size of the buffer to grow indefinately
- max_size = gajim.config.get('key_up_lines')
+ max_size = app.config.get('key_up_lines')
for i in range(size - max_size + 1):
if pos == 0:
break
@@ -956,12 +956,12 @@ class ChatControlBase(MessageControl, ChatCommandProcessor, CommandTools):
self.last_received_id[name] = correct_id[0]
if kind == 'incoming':
if not self.type_id == message_control.TYPE_GC or \
- gajim.config.get('notify_on_all_muc_messages') or \
+ app.config.get('notify_on_all_muc_messages') or \
'marked' in other_tags_for_text:
# it's a normal message, or a muc message with want to be
# notified about if quitting just after
# other_tags_for_text == ['marked'] --> highlighted gc message
- gajim.last_message_time[self.account][full_jid] = time.time()
+ app.last_message_time[self.account][full_jid] = time.time()
if kind in ('incoming', 'incoming_queue'):
# Record the history of received messages
@@ -976,7 +976,7 @@ class ChatControlBase(MessageControl, ChatCommandProcessor, CommandTools):
self != self.parent_win.get_active_control() or \
not self.parent_win.is_active() or not end)) or \
(gc_message and \
- jid in gajim.interface.minimized_controls[self.account])) and \
+ jid in app.interface.minimized_controls[self.account])) and \
kind in ('incoming', 'incoming_queue', 'error'):
# we want to have save this message in events list
# other_tags_for_text == ['marked'] --> highlighted gc message
@@ -1000,10 +1000,10 @@ class ChatControlBase(MessageControl, ChatCommandProcessor, CommandTools):
event = event_type(text, subject, self, msg_log_id,
show_in_roster=show_in_roster,
show_in_systray=show_in_systray)
- gajim.events.add_event(self.account, full_jid, event)
+ app.events.add_event(self.account, full_jid, event)
# We need to redraw contact if we show in roster
if show_in_roster:
- gajim.interface.roster.draw_contact(self.contact.jid,
+ app.interface.roster.draw_contact(self.contact.jid,
self.account)
if not self.parent_win:
@@ -1023,7 +1023,7 @@ class ChatControlBase(MessageControl, ChatCommandProcessor, CommandTools):
"""
Hide show emoticons_button
"""
- if gajim.config.get('emoticons_theme'):
+ if app.config.get('emoticons_theme'):
self.emoticons_button.set_no_show_all(False)
self.emoticons_button.show()
else:
@@ -1031,7 +1031,7 @@ class ChatControlBase(MessageControl, ChatCommandProcessor, CommandTools):
self.emoticons_button.hide()
def set_emoticon_popover(self):
- if not gajim.config.get('emoticons_theme'):
+ if not app.config.get('emoticons_theme'):
return
if not self.parent_win:
@@ -1086,11 +1086,11 @@ class ChatControlBase(MessageControl, ChatCommandProcessor, CommandTools):
if not jid:
jid = self.contact.jid
- if 'logs' in gajim.interface.instances:
- gajim.interface.instances['logs'].window.present()
- gajim.interface.instances['logs'].open_history(jid, self.account)
+ if 'logs' in app.interface.instances:
+ app.interface.instances['logs'].window.present()
+ app.interface.instances['logs'].open_history(jid, self.account)
else:
- gajim.interface.instances['logs'] = \
+ app.interface.instances['logs'] = \
history_window.HistoryWindow(jid, self.account)
def _on_send_file(self, gc_contact=None):
@@ -1098,19 +1098,19 @@ class ChatControlBase(MessageControl, ChatCommandProcessor, CommandTools):
gc_contact can be set when we are in a groupchat control
"""
def _on_ok(c):
- gajim.interface.instances['file_transfers'].show_file_send_request(
+ app.interface.instances['file_transfers'].show_file_send_request(
self.account, c)
if self.TYPE_ID == message_control.TYPE_PM:
gc_contact = self.gc_contact
if gc_contact:
# gc or pm
- gc_control = gajim.interface.msg_win_mgr.get_gc_control(
+ gc_control = app.interface.msg_win_mgr.get_gc_control(
gc_contact.room_jid, self.account)
- self_contact = gajim.contacts.get_gc_contact(self.account,
+ self_contact = app.contacts.get_gc_contact(self.account,
gc_control.room_jid, gc_control.nick)
if gc_control.is_anonymous and gc_contact.affiliation not in ['admin',
'owner'] and self_contact.affiliation in ['admin', 'owner']:
- contact = gajim.contacts.get_contact(self.account, gc_contact.jid)
+ contact = app.contacts.get_contact(self.account, gc_contact.jid)
if not contact or contact.sub not in ('both', 'to'):
prim_text = _('Really send file?')
sec_text = _('If you send a file to %s, he/she will know your '
@@ -1128,7 +1128,7 @@ class ChatControlBase(MessageControl, ChatCommandProcessor, CommandTools):
When a grouchat is minimized, unparent the tab, put it in roster etc
"""
old_value = True
- non_minimized_gc = gajim.config.get_per('accounts', self.account,
+ non_minimized_gc = app.config.get_per('accounts', self.account,
'non_minimized_gc').split()
if self.contact.jid in non_minimized_gc:
old_value = False
@@ -1138,7 +1138,7 @@ class ChatControlBase(MessageControl, ChatCommandProcessor, CommandTools):
if minimize and self.contact.jid in non_minimized_gc:
non_minimized_gc.remove(self.contact.jid)
if old_value != minimize:
- gajim.config.set_per('accounts', self.account, 'non_minimized_gc',
+ app.config.set_per('accounts', self.account, 'non_minimized_gc',
' '.join(non_minimized_gc))
def set_control_active(self, state):
@@ -1150,7 +1150,7 @@ class ChatControlBase(MessageControl, ChatCommandProcessor, CommandTools):
type_ = ['printed_' + self.type_id]
if self.type_id == message_control.TYPE_GC:
type_ = ['printed_gc_msg', 'printed_marked_gc_msg']
- if not gajim.events.remove_events(self.account, self.get_full_jid(),
+ if not app.events.remove_events(self.account, self.get_full_jid(),
types=type_):
# There were events to remove
self.redraw_after_event_removed(jid)
@@ -1193,7 +1193,7 @@ class ChatControlBase(MessageControl, ChatCommandProcessor, CommandTools):
else: # Not a GC
types_list = ['printed_' + type_, type_]
- if not len(gajim.events.get_events(self.account, jid, types_list)):
+ if not len(app.events.get_events(self.account, jid, types_list)):
return
if not self.parent_win:
return
@@ -1202,7 +1202,7 @@ class ChatControlBase(MessageControl, ChatCommandProcessor, CommandTools):
self.parent_win.window.is_active():
# we are at the end
if self.type_id == message_control.TYPE_GC:
- if not gajim.events.remove_events(self.account, jid,
+ if not app.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):
@@ -1218,23 +1218,23 @@ class ChatControlBase(MessageControl, ChatCommandProcessor, CommandTools):
self.parent_win.show_title()
# TODO : get the contact and check notify.get_show_in_roster()
if self.type_id == message_control.TYPE_PM:
- room_jid, nick = gajim.get_room_and_nick_from_fjid(jid)
- groupchat_control = gajim.interface.msg_win_mgr.get_gc_control(
+ room_jid, nick = app.get_room_and_nick_from_fjid(jid)
+ groupchat_control = app.interface.msg_win_mgr.get_gc_control(
room_jid, self.account)
- if room_jid in gajim.interface.minimized_controls[self.account]:
+ if room_jid in app.interface.minimized_controls[self.account]:
groupchat_control = \
- gajim.interface.minimized_controls[self.account][room_jid]
- contact = gajim.contacts.get_contact_with_highest_priority(
+ app.interface.minimized_controls[self.account][room_jid]
+ contact = app.contacts.get_contact_with_highest_priority(
self.account, room_jid)
if contact:
- gajim.interface.roster.draw_contact(room_jid, self.account)
+ app.interface.roster.draw_contact(room_jid, self.account)
if groupchat_control:
groupchat_control.draw_contact(nick)
if groupchat_control.parent_win:
groupchat_control.parent_win.redraw_tab(groupchat_control)
else:
- gajim.interface.roster.draw_contact(jid, self.account)
- gajim.interface.roster.show_title()
+ app.interface.roster.draw_contact(jid, self.account)
+ app.interface.roster.show_title()
def scroll_messages(self, direction, msg_buf, msg_type):
if msg_type == 'sent':
diff --git a/gajim/command_system/dispatcher.py b/gajim/command_system/dispatcher.py
index 488dfa341..513db2a73 100644
--- a/gajim/command_system/dispatcher.py
+++ b/gajim/command_system/dispatcher.py
@@ -31,7 +31,7 @@ to automatic discovery and dispatching, also features manual control
over the process.
"""
-from .tools import remove
+from gajim.command_system.tools import remove
COMMANDS = {}
CONTAINERS = {}
@@ -66,7 +66,7 @@ def traverse_commands(container):
yield attribute
def is_command(attribute):
- from .framework import Command
+ from gajim.command_system.framework import Command
return isinstance(attribute, Command)
def is_root(namespace):
@@ -115,4 +115,4 @@ class Container(Dispatchable):
def disable(self):
remove_commands(self)
- remove_container(self)
\ No newline at end of file
+ remove_container(self)
diff --git a/gajim/command_system/framework.py b/gajim/command_system/framework.py
index 38d1436a6..fb7ce1c41 100644
--- a/gajim/command_system/framework.py
+++ b/gajim/command_system/framework.py
@@ -22,10 +22,10 @@ declarative way.
from types import FunctionType
from inspect import getargspec, getdoc
-from .dispatcher import Host, Container
-from .dispatcher import get_command, list_commands
-from .mapping import parse_arguments, adapt_arguments
-from .errors import DefinitionError, CommandError, NoCommandError
+from gajim.command_system.dispatcher import Host, Container
+from gajim.command_system.dispatcher import get_command, list_commands
+from gajim.command_system.mapping import parse_arguments, adapt_arguments
+from gajim.command_system.errors import DefinitionError, CommandError, NoCommandError
class CommandHost(metaclass=Host):
"""
diff --git a/gajim/command_system/implementation/custom.py b/gajim/command_system/implementation/custom.py
index 38cd2e2c3..4423f61cf 100644
--- a/gajim/command_system/implementation/custom.py
+++ b/gajim/command_system/implementation/custom.py
@@ -34,8 +34,8 @@ code in here will not be executed and commands defined here will not be
detected.
"""
-from ..framework import CommandContainer, command, doc
-from .hosts import ChatCommands, PrivateChatCommands, GroupChatCommands
+from gajim.command_system.framework import CommandContainer, command, doc
+from gajim.command_system.implementation.hosts import ChatCommands, PrivateChatCommands, GroupChatCommands
class CustomCommonCommands(CommandContainer):
"""
diff --git a/gajim/command_system/implementation/execute.py b/gajim/command_system/implementation/execute.py
index 0e8718be4..2766cbdbe 100644
--- a/gajim/command_system/implementation/execute.py
+++ b/gajim/command_system/implementation/execute.py
@@ -37,8 +37,8 @@ from os.path import expanduser
from gi.repository import GLib
-from ..framework import CommandContainer, command, doc
-from .hosts import ChatCommands, PrivateChatCommands, GroupChatCommands
+from gajim.command_system.framework import CommandContainer, command, doc
+from gajim.command_system.implementation.hosts import ChatCommands, PrivateChatCommands, GroupChatCommands
class Execute(CommandContainer):
AUTOMATIC = True
diff --git a/gajim/command_system/implementation/hosts.py b/gajim/command_system/implementation/hosts.py
index 285372e43..bb9d67ac6 100644
--- a/gajim/command_system/implementation/hosts.py
+++ b/gajim/command_system/implementation/hosts.py
@@ -18,7 +18,7 @@ The module defines a set of command hosts, which are bound to a
different command processors, which are the source of commands.
"""
-from ..framework import CommandHost
+from gajim.command_system.framework import CommandHost
class ChatCommands(CommandHost):
"""
diff --git a/gajim/command_system/implementation/middleware.py b/gajim/command_system/implementation/middleware.py
index 1ad925771..8efe527c8 100644
--- a/gajim/command_system/implementation/middleware.py
+++ b/gajim/command_system/implementation/middleware.py
@@ -34,10 +34,10 @@ don't need to dig up the code itself to write basic commands.
from traceback import print_exc
from gi.repository import Pango
-from common import gajim
+from gajim.common import app
-from ..framework import CommandProcessor
-from ..errors import CommandError, NoCommandError
+from gajim.command_system.framework import CommandProcessor
+from gajim.command_system.errors import CommandError, NoCommandError
class ChatCommandProcessor(CommandProcessor):
"""
@@ -179,7 +179,7 @@ class CommandTools:
"""
Get the current connection object.
"""
- return gajim.connections[self.account]
+ return app.connections[self.account]
@property
def full_jid(self):
diff --git a/gajim/command_system/implementation/standard.py b/gajim/command_system/implementation/standard.py
index 768d1906c..aeec4e7d5 100644
--- a/gajim/command_system/implementation/standard.py
+++ b/gajim/command_system/implementation/standard.py
@@ -20,17 +20,17 @@ Provides an actual implementation for the standard commands.
from time import localtime, strftime
from datetime import date
-import dialogs
-from common import gajim
-from common import helpers
-from common.exceptions import GajimGeneralException
-from common.logger import KindConstant
+from gajim import dialogs
+from gajim.common import app
+from gajim.common import helpers
+from gajim.common.exceptions import GajimGeneralException
+from gajim.common.logger import KindConstant
-from ..errors import CommandError
-from ..framework import CommandContainer, command, doc
-from ..mapping import generate_usage
+from gajim.command_system.errors import CommandError
+from gajim.command_system.framework import CommandContainer, command, doc
+from gajim.command_system.mapping import generate_usage
-from .hosts import ChatCommands, PrivateChatCommands, GroupChatCommands
+from gajim.command_system.implementation.hosts import ChatCommands, PrivateChatCommands, GroupChatCommands
class StandardCommonCommands(CommandContainer):
"""
@@ -87,7 +87,7 @@ class StandardCommonCommands(CommandContainer):
@command('lastlog', overlap=True)
@doc(_("Show logged messages which mention given text"))
def grep(self, text, limit=None):
- results = gajim.logger.search_log(self.account, self.contact.jid, text)
+ results = app.logger.search_log(self.account, self.contact.jid, text)
if not results:
raise CommandError(_("%s: Nothing found") % text)
@@ -102,7 +102,7 @@ class StandardCommonCommands(CommandContainer):
contact = row.contact_name
if not contact:
if row.kind == KindConstant.CHAT_MSG_SENT:
- contact = gajim.nicks[self.account]
+ contact = app.nicks[self.account]
else:
contact = self.contact.name
@@ -129,8 +129,8 @@ class StandardCommonCommands(CommandContainer):
def status(self, status, message):
if status not in ('online', 'away', 'chat', 'xa', 'dnd'):
raise CommandError("Invalid status given")
- for connection in gajim.connections.values():
- if not gajim.config.get_per('accounts', connection.name,
+ for connection in app.connections.values():
+ if not app.config.get_per('accounts', connection.name,
'sync_with_global_status'):
continue
if connection.connected < 2:
@@ -143,8 +143,8 @@ class StandardCommonCommands(CommandContainer):
if not message:
message = _("Away")
- for connection in gajim.connections.values():
- if not gajim.config.get_per('accounts', connection.name,
+ for connection in app.connections.values():
+ if not app.config.get_per('accounts', connection.name,
'sync_with_global_status'):
continue
if connection.connected < 2:
@@ -157,8 +157,8 @@ class StandardCommonCommands(CommandContainer):
if not message:
message = _("Available")
- for connection in gajim.connections.values():
- if not gajim.config.get_per('accounts', connection.name,
+ for connection in app.connections.values():
+ if not app.config.get_per('accounts', connection.name,
'sync_with_global_status'):
continue
if connection.connected < 2:
@@ -182,9 +182,9 @@ class StandardCommonChatCommands(CommandContainer):
@command
@doc(_("Send a ping to the contact"))
def ping(self):
- if self.account == gajim.ZEROCONF_ACC_NAME:
+ if self.account == app.ZEROCONF_ACC_NAME:
raise CommandError(_('Command is not supported for zeroconf accounts'))
- gajim.connections[self.account].sendPing(self.contact)
+ app.connections[self.account].sendPing(self.contact)
@command
@doc(_("Send DTMF sequence through an open audio session"))
@@ -271,7 +271,7 @@ class StandardGroupChatCommands(CommandContainer):
@command('query', raw=True)
@doc(_("Open a private chat window with a specified occupant"))
def chat(self, nick):
- nicks = gajim.contacts.get_nick_list(self.account, self.room_jid)
+ nicks = app.contacts.get_nick_list(self.account, self.room_jid)
if nick in nicks:
self.on_send_pm(nick=nick)
else:
@@ -280,7 +280,7 @@ class StandardGroupChatCommands(CommandContainer):
@command('msg', raw=True)
@doc(_("Open a private chat window with a specified occupant and send him a message"))
def message(self, nick, a_message):
- nicks = gajim.contacts.get_nick_list(self.account, self.room_jid)
+ nicks = app.contacts.get_nick_list(self.account, self.room_jid)
if nick in nicks:
self.on_send_pm(nick=nick, msg=a_message)
else:
@@ -307,10 +307,10 @@ class StandardGroupChatCommands(CommandContainer):
nick = self.nick
if '@' not in jid:
- jid = jid + '@' + gajim.get_server_from_jid(self.room_jid)
+ jid = jid + '@' + app.get_server_from_jid(self.room_jid)
try:
- gajim.interface.instances[self.account]['join_gc'].window.present()
+ app.interface.instances[self.account]['join_gc'].window.present()
except KeyError:
try:
dialogs.JoinGroupchatWindow(account=self.account, room_jid=jid, nick=nick)
@@ -329,15 +329,15 @@ class StandardGroupChatCommands(CommandContainer):
If given nickname is not found it will be treated as a jid.
"""))
def ban(self, who, reason):
- if who in gajim.contacts.get_nick_list(self.account, self.room_jid):
- contact = gajim.contacts.get_gc_contact(self.account, self.room_jid, who)
+ if who in app.contacts.get_nick_list(self.account, self.room_jid):
+ contact = app.contacts.get_gc_contact(self.account, self.room_jid, who)
who = contact.jid
self.connection.gc_set_affiliation(self.room_jid, who, 'outcast', reason or str())
@command(raw=True, empty=True)
@doc(_("Kick user by a nick from a groupchat"))
def kick(self, who, reason):
- if not who in gajim.contacts.get_nick_list(self.account, self.room_jid):
+ if not who in app.contacts.get_nick_list(self.account, self.room_jid):
raise CommandError(_("Nickname not found"))
self.connection.gc_set_role(self.room_jid, who, 'none', reason or str())
@@ -349,7 +349,7 @@ class StandardGroupChatCommands(CommandContainer):
def role(self, who, role):
if role not in ('moderator', 'participant', 'visitor', 'none'):
raise CommandError(_("Invalid role given"))
- if not who in gajim.contacts.get_nick_list(self.account, self.room_jid):
+ if not who in app.contacts.get_nick_list(self.account, self.room_jid):
raise CommandError(_("Nickname not found"))
self.connection.gc_set_role(self.room_jid, who, role)
@@ -361,17 +361,17 @@ class StandardGroupChatCommands(CommandContainer):
def affiliate(self, who, affiliation):
if affiliation not in ('owner', 'admin', 'member', 'outcast', 'none'):
raise CommandError(_("Invalid affiliation given"))
- if not who in gajim.contacts.get_nick_list(self.account, self.room_jid):
+ if not who in app.contacts.get_nick_list(self.account, self.room_jid):
raise CommandError(_("Nickname not found"))
- contact = gajim.contacts.get_gc_contact(self.account, self.room_jid, who)
+ contact = app.contacts.get_gc_contact(self.account, self.room_jid, who)
self.connection.gc_set_affiliation(self.room_jid, contact.jid,
affiliation)
@command
@doc(_("Display names of all group chat occupants"))
def names(self, verbose=False):
- ggc = gajim.contacts.get_gc_contact
- gnl = gajim.contacts.get_nick_list
+ ggc = app.contacts.get_gc_contact
+ gnl = app.contacts.get_nick_list
get_contact = lambda nick: ggc(self.account, self.room_jid, nick)
get_role = lambda nick: get_contact(nick).role
@@ -402,8 +402,8 @@ class StandardGroupChatCommands(CommandContainer):
@command
@doc(_("Send a ping to the contact"))
def ping(self, nick):
- if self.account == gajim.ZEROCONF_ACC_NAME:
+ if self.account == app.ZEROCONF_ACC_NAME:
raise CommandError(_('Command is not supported for zeroconf accounts'))
- gc_c = gajim.contacts.get_gc_contact(self.account, self.room_jid, nick)
- gajim.connections[self.account].sendPing(gc_c, self)
+ gc_c = app.contacts.get_gc_contact(self.account, self.room_jid, nick)
+ app.connections[self.account].sendPing(gc_c, self)
diff --git a/gajim/command_system/mapping.py b/gajim/command_system/mapping.py
index e2cd0c47b..1b4000ecd 100644
--- a/gajim/command_system/mapping.py
+++ b/gajim/command_system/mapping.py
@@ -25,7 +25,7 @@ according to the command properties.
import re
from operator import itemgetter
-from .errors import DefinitionError, CommandError
+from gajim.command_system.errors import DefinitionError, CommandError
# Quite complex piece of regular expression logic to parse options and
# arguments. Might need some tweaking along the way.
diff --git a/gajim/common/gajim.py b/gajim/common/app.py
similarity index 98%
rename from gajim/common/gajim.py
rename to gajim/common/app.py
index 970fefa47..6191cbfd0 100644
--- a/gajim/common/gajim.py
+++ b/gajim/common/app.py
@@ -1,5 +1,5 @@
# -*- coding:utf-8 -*-
-## src/common/gajim.py
+## gajim/common/app.py
##
## Copyright (C) 2003-2014 Yann Leboulanger
## Copyright (C) 2005-2006 Dimitur Kirov
@@ -34,9 +34,9 @@ import gi
import uuid
from distutils.version import LooseVersion as V
-from common import config
+from gajim.common import config
import nbxmpp
-from common import ged as ged_module
+from gajim.common import ged as ged_module
interface = None # The actual interface (the gtk one for the moment)
thread_interface = None # Interface to run a thread and then a callback
@@ -54,7 +54,7 @@ log = logging.getLogger('gajim')
logger = None
-from common import configpaths
+from gajim.common import configpaths
gajimpaths = configpaths.gajimpaths
VCARD_PATH = gajimpaths['VCARD']
@@ -86,8 +86,8 @@ else:
os_info = None # used to cache os information
-from common.contacts import LegacyContactsAPI
-from common.events import Events
+from gajim.common.contacts import LegacyContactsAPI
+from gajim.common.events import Events
gmail_domains = ['gmail.com', 'googlemail.com']
@@ -144,7 +144,7 @@ SHOW_LIST = ['offline', 'connecting', 'online', 'chat', 'away', 'xa', 'dnd',
# zeroconf account name
ZEROCONF_ACC_NAME = 'Local'
-# These will be set in gajim.gui_interface.
+# These will be set in app.gui_interface.
idlequeue = None
socks5queue = None
diff --git a/gajim/common/check_X509.py b/gajim/common/check_X509.py
index 4aec0a7e9..ef125e193 100644
--- a/gajim/common/check_X509.py
+++ b/gajim/common/check_X509.py
@@ -9,7 +9,7 @@ try:
raise ImportError
from pyasn1.type import univ, constraint, char, namedtype, tag
from pyasn1.codec.der.decoder import decode
- from common.helpers import prep, InvalidFormat
+ from gajim.common.helpers import prep, InvalidFormat
MAX = 64
oid_xmppaddr = '1.3.6.1.5.5.7.8.5'
diff --git a/gajim/common/check_paths.py b/gajim/common/check_paths.py
index 98d1a9cc1..d9f8f3311 100644
--- a/gajim/common/check_paths.py
+++ b/gajim/common/check_paths.py
@@ -27,8 +27,8 @@ import os
import shutil
import sys
-from common import gajim
-from common import logger
+from gajim.common import app
+from gajim.common import logger
# DO NOT MOVE ABOVE OF import gajim
import sqlite3 as sqlite
@@ -173,13 +173,13 @@ def check_and_possibly_move_config():
LOG_DB_PATH = logger.LOG_DB_PATH
CACHE_DB_PATH = logger.CACHE_DB_PATH
vars = {}
- vars['VCARD_PATH'] = gajim.VCARD_PATH
- vars['AVATAR_PATH'] = gajim.AVATAR_PATH
- vars['MY_EMOTS_PATH'] = gajim.MY_EMOTS_PATH
- vars['MY_ICONSETS_PATH'] = gajim.MY_ICONSETS_PATH
- vars['MY_MOOD_ICONSETS_PATH'] = gajim.MY_MOOD_ICONSETS_PATH
- vars['MY_ACTIVITY_ICONSETS_PATH'] = gajim.MY_ACTIVITY_ICONSETS_PATH
- from common import configpaths
+ vars['VCARD_PATH'] = app.VCARD_PATH
+ vars['AVATAR_PATH'] = app.AVATAR_PATH
+ vars['MY_EMOTS_PATH'] = app.MY_EMOTS_PATH
+ vars['MY_ICONSETS_PATH'] = app.MY_ICONSETS_PATH
+ vars['MY_MOOD_ICONSETS_PATH'] = app.MY_MOOD_ICONSETS_PATH
+ vars['MY_ACTIVITY_ICONSETS_PATH'] = app.MY_ACTIVITY_ICONSETS_PATH
+ from gajim.common import configpaths
MY_DATA = configpaths.gajimpaths['MY_DATA']
MY_CONFIG = configpaths.gajimpaths['MY_CONFIG']
MY_CACHE = configpaths.gajimpaths['MY_CACHE']
@@ -252,8 +252,8 @@ def check_and_possibly_move_config():
continue
print(_('moving %s to %s') % (src, dst))
shutil.move(src, dst)
- gajim.logger.init_vars()
- gajim.logger.attach_cache_database()
+ app.logger.init_vars()
+ app.logger.attach_cache_database()
def check_and_possibly_create_paths():
LOG_DB_PATH = logger.LOG_DB_PATH
@@ -262,16 +262,16 @@ def check_and_possibly_create_paths():
CACHE_DB_PATH = logger.CACHE_DB_PATH
CACHE_DB_FOLDER, CACHE_DB_FILE = os.path.split(CACHE_DB_PATH)
- VCARD_PATH = gajim.VCARD_PATH
- AVATAR_PATH = gajim.AVATAR_PATH
- from common import configpaths
+ VCARD_PATH = app.VCARD_PATH
+ AVATAR_PATH = app.AVATAR_PATH
+ from gajim.common import configpaths
MY_DATA = configpaths.gajimpaths['MY_DATA']
MY_CONFIG = configpaths.gajimpaths['MY_CONFIG']
MY_CACHE = configpaths.gajimpaths['MY_CACHE']
XTLS_CERTS = configpaths.gajimpaths['MY_PEER_CERTS']
LOCAL_XTLS_CERTS = configpaths.gajimpaths['MY_CERT']
- PLUGINS_CONFIG_PATH = gajim.PLUGINS_CONFIG_DIR
+ PLUGINS_CONFIG_PATH = app.PLUGINS_CONFIG_DIR
if not os.path.exists(MY_DATA):
create_path(MY_DATA)
@@ -335,7 +335,7 @@ def check_and_possibly_create_paths():
if os.path.exists(CACHE_DB_PATH):
os.remove(CACHE_DB_PATH)
create_log_db()
- gajim.logger.init_vars()
+ app.logger.init_vars()
elif os.path.isdir(LOG_DB_PATH):
print(_('%s is a directory but should be a file') % LOG_DB_PATH)
print(_('Gajim will now exit'))
@@ -343,7 +343,7 @@ def check_and_possibly_create_paths():
if not os.path.exists(CACHE_DB_PATH):
create_cache_db()
- gajim.logger.attach_cache_database()
+ app.logger.attach_cache_database()
elif os.path.isdir(CACHE_DB_PATH):
print(_('%s is a directory but should be a file') % CACHE_DB_PATH)
print(_('Gajim will now exit'))
diff --git a/gajim/common/commands.py b/gajim/common/commands.py
index 0eeb57c8e..a02c8956f 100644
--- a/gajim/common/commands.py
+++ b/gajim/common/commands.py
@@ -23,10 +23,10 @@
##
import nbxmpp
-from common import helpers
-from common import dataforms
-from common import gajim
-from common.connection_handlers_events import MessageOutgoingEvent
+from gajim.common import helpers
+from gajim.common import dataforms
+from gajim.common import app
+from gajim.common.connection_handlers_events import MessageOutgoingEvent
import logging
log = logging.getLogger('gajim.c.commands')
@@ -157,7 +157,7 @@ class ChangeStatusCommand(AdHocCommand):
self.connection.connection.send(response, now = presencetype == 'offline')
# send new status
- gajim.interface.roster.send_status(self.connection.name, presencetype,
+ app.interface.roster.send_status(self.connection.name, presencetype,
presencedesc)
return False # finish the session
@@ -165,8 +165,8 @@ class ChangeStatusCommand(AdHocCommand):
def find_current_groupchats(account):
import message_control
rooms = []
- for gc_control in gajim.interface.msg_win_mgr.get_controls(
- message_control.TYPE_GC) + gajim.interface.minimized_controls[account].\
+ for gc_control in app.interface.msg_win_mgr.get_controls(
+ message_control.TYPE_GC) + app.interface.minimized_controls[account].\
values():
acct = gc_control.account
# check if account is the good one
@@ -174,8 +174,8 @@ def find_current_groupchats(account):
continue
room_jid = gc_control.room_jid
nick = gc_control.nick
- if room_jid in gajim.gc_connected[acct] and \
- gajim.gc_connected[acct][room_jid]:
+ if room_jid in app.gc_connected[acct] and \
+ app.gc_connected[acct][room_jid]:
rooms.append((room_jid, nick,))
return rooms
@@ -241,13 +241,13 @@ class LeaveGroupchatsCommand(AdHocCommand):
account = self.connection.name
try:
for room_jid in gc:
- gc_control = gajim.interface.msg_win_mgr.get_gc_control(room_jid,
+ gc_control = app.interface.msg_win_mgr.get_gc_control(room_jid,
account)
if not gc_control:
- gc_control = gajim.interface.minimized_controls[account]\
+ gc_control = app.interface.minimized_controls[account]\
[room_jid]
gc_control.shutdown()
- gajim.interface.roster.remove_groupchat(room_jid, account)
+ app.interface.roster.remove_groupchat(room_jid, account)
continue
gc_control.parent_win.remove_tab(gc_control, None, force = True)
except Exception: # KeyError if there's no such room opened
@@ -278,15 +278,15 @@ class ForwardMessagesCommand(AdHocCommand):
def execute(self, request):
account = self.connection.name
# Forward messages
- events = gajim.events.get_events(account, types=['chat', 'normal',
+ events = app.events.get_events(account, types=['chat', 'normal',
'printed_chat'])
- j, resource = gajim.get_room_and_nick_from_fjid(self.jid)
+ j, resource = app.get_room_and_nick_from_fjid(self.jid)
for jid in events:
for event in events[jid]:
ev_typ = event.type_
if ev_typ == 'printed_chat':
ev_typ = 'chat'
- gajim.nec.push_outgoing_event(MessageOutgoingEvent(None,
+ app.nec.push_outgoing_event(MessageOutgoingEvent(None,
account=account, jid=j, message=event.message, type_=ev_typ,
subject=event.subject, resource=resource, forward_from=jid,
delayed=event.time_))
@@ -313,14 +313,14 @@ class FwdMsgThenDisconnectCommand(AdHocCommand):
def execute(self, request):
account = self.connection.name
# Forward messages
- events = gajim.events.get_events(account, types=['chat', 'normal'])
- j, resource = gajim.get_room_and_nick_from_fjid(self.jid)
+ events = app.events.get_events(account, types=['chat', 'normal'])
+ j, resource = app.get_room_and_nick_from_fjid(self.jid)
for jid in events:
for event in events[jid]:
ev_typ = event.type_
if ev_typ == 'printed_chat':
ev_typ = 'chat'
- gajim.nec.push_outgoing_event(MessageOutgoingEvent(None,
+ app.nec.push_outgoing_event(MessageOutgoingEvent(None,
account=account, jid=j, message=event.message, type_=ev_typ,
subject=event.subject, resource=resource, forward_from=jid,
delayed=event.time_, now=True))
@@ -333,7 +333,7 @@ class FwdMsgThenDisconnectCommand(AdHocCommand):
self.connection.connection.send(response, now = True)
# send new status
- gajim.interface.roster.send_status(self.connection.name, 'offline', '')
+ app.interface.roster.send_status(self.connection.name, 'offline', '')
# finish the session
return False
@@ -345,7 +345,7 @@ class ConnectionCommands:
def __init__(self):
# a list of all commands exposed: node -> command class
self.__commands = {}
- if gajim.config.get('remote_commands'):
+ if app.config.get('remote_commands'):
for cmdobj in (ChangeStatusCommand, ForwardMessagesCommand,
LeaveGroupchatsCommand, FwdMsgThenDisconnectCommand):
self.__commands[cmdobj.commandnode] = cmdobj
@@ -354,7 +354,7 @@ class ConnectionCommands:
self.__sessions = {}
def getOurBareJID(self):
- return gajim.get_jid_from_account(self.name)
+ return app.get_jid_from_account(self.name)
def isSameJID(self, jid):
"""
diff --git a/gajim/common/config.py b/gajim/common/config.py
index 687f60e6c..48047bc7c 100644
--- a/gajim/common/config.py
+++ b/gajim/common/config.py
@@ -33,7 +33,7 @@
import re
-from common import defs
+from gajim.common import defs
from gi.repository import GLib
from enum import IntEnum, unique
@@ -795,9 +795,9 @@ class Config:
self.__options[1][opt] = self.__options[0][opt][Option.VAL]
def _really_save(self):
- from common import gajim
- if gajim.interface:
- gajim.interface.save_config()
+ from gajim.common import app
+ if app.interface:
+ app.interface.save_config()
self.save_timeout_id = None
return False
diff --git a/gajim/common/configpaths.py b/gajim/common/configpaths.py
index 1edf3bbbf..dc40d0969 100644
--- a/gajim/common/configpaths.py
+++ b/gajim/common/configpaths.py
@@ -25,7 +25,7 @@
import os
import sys
import tempfile
-from common import defs
+from gajim.common import defs
from enum import Enum, unique
@unique
diff --git a/gajim/common/connection.py b/gajim/common/connection.py
index f9562ed05..e7880ff28 100644
--- a/gajim/common/connection.py
+++ b/gajim/common/connection.py
@@ -54,17 +54,18 @@ if os.name != 'nt':
signal.signal(signal.SIGPIPE, signal.SIG_DFL)
import nbxmpp
-from common import helpers
-from common import gajim
-from common import gpg
-from common import passwords
-from common import exceptions
-from common import check_X509
-from common.connection_handlers import *
+from gajim import common
+from gajim.common import helpers
+from gajim.common import app
+from gajim.common import gpg
+from gajim.common import passwords
+from gajim.common import exceptions
+from gajim.common import check_X509
+from gajim.common.connection_handlers import *
-from gtkgui_helpers import get_action
+from gajim.gtkgui_helpers import get_action
-if gajim.HAVE_PYOPENSSL:
+if app.HAVE_PYOPENSSL:
import OpenSSL.crypto
from nbxmpp import Smacks
@@ -130,12 +131,12 @@ class CommonConnection:
self.server_resource = self._compute_resource()
self.gpg = None
self.USE_GPG = False
- if gajim.HAVE_GPG:
+ if app.HAVE_GPG:
self.USE_GPG = True
self.gpg = gpg.GnuPG()
self.status = ''
self.old_show = ''
- self.priority = gajim.get_priority(name, 'offline')
+ self.priority = app.get_priority(name, 'offline')
self.time_to_reconnect = None
self.bookmarks = []
@@ -181,7 +182,7 @@ class CommonConnection:
self.get_config_values_or_default()
def _compute_resource(self):
- resource = gajim.config.get_per('accounts', self.name, 'resource')
+ resource = app.config.get_per('accounts', self.name, 'resource')
# All valid resource substitution strings should be added to this hash.
if resource:
rand = ''.join(random.choice(string.ascii_uppercase + string.digits) for _ in range(8))
@@ -195,7 +196,7 @@ class CommonConnection:
"""
Always passes account name as first param
"""
- gajim.ged.raise_event(event, self.name, data)
+ app.ged.raise_event(event, self.name, data)
def reconnect(self):
"""
@@ -204,7 +205,7 @@ class CommonConnection:
raise NotImplementedError
def quit(self, kill_core):
- if kill_core and gajim.account_is_connected(self.name):
+ if kill_core and app.account_is_connected(self.name):
self.disconnect(on_purpose=True)
def test_gpg_passphrase(self, password):
@@ -214,7 +215,7 @@ class CommonConnection:
if not self.gpg:
return False
self.gpg.passphrase = password
- keyID = gajim.config.get_per('accounts', self.name, 'keyid')
+ keyID = app.config.get_per('accounts', self.name, 'keyid')
signed = self.gpg.sign('test', keyID)
self.gpg.password = None
if signed == 'KEYEXPIRED':
@@ -231,7 +232,7 @@ class CommonConnection:
callback is the function to call when user give the passphrase
"""
signed = ''
- keyID = gajim.config.get_per('accounts', self.name, 'keyid')
+ keyID = app.config.get_per('accounts', self.name, 'keyid')
if keyID and self.USE_GPG:
if self.gpg.passphrase is None and not self.gpg.use_agent:
# We didn't set a passphrase
@@ -240,7 +241,7 @@ class CommonConnection:
if signed == 'BAD_PASSPHRASE':
self.USE_GPG = False
signed = ''
- gajim.nec.push_incoming_event(BadGPGPassphraseEvent(None,
+ app.nec.push_incoming_event(BadGPGPassphraseEvent(None,
conn=self))
return signed
@@ -249,11 +250,11 @@ class CommonConnection:
Called when a disconnect request has completed successfully
"""
self.disconnect(on_purpose=True)
- gajim.nec.push_incoming_event(OurShowEvent(None, conn=self,
+ app.nec.push_incoming_event(OurShowEvent(None, conn=self,
show='offline'))
def get_status(self):
- return gajim.SHOW_LIST[self.connected]
+ return app.SHOW_LIST[self.connected]
def check_jid(self, jid):
"""
@@ -272,7 +273,7 @@ class CommonConnection:
try:
self.check_jid(jid)
except helpers.InvalidFormat:
- gajim.nec.push_incoming_event(InformationEvent(None,
+ app.nec.push_incoming_event(InformationEvent(None,
conn=self, level='error', pri_txt=_('Invalid JID'),
sec_txt=_('It is not possible to send a message '
'to %s, this JID is not valid.') % jid))
@@ -281,15 +282,15 @@ class CommonConnection:
try:
self.check_jid(obj.jid)
except helpers.InvalidFormat:
- gajim.nec.push_incoming_event(InformationEvent(None, conn=self,
+ app.nec.push_incoming_event(InformationEvent(None, conn=self,
level='error', pri_txt=_('Invalid JID'), sec_txt=_(
'It is not possible to send a message to %s, this JID is not '
'valid.') % obj.jid))
return
- if obj.message and not obj.xhtml and gajim.config.get(
+ if obj.message and not obj.xhtml and app.config.get(
'rst_formatting_outgoing_messages'):
- from common.rst_xhtml_generator import create_xhtml
+ from gajim.common.rst_xhtml_generator import create_xhtml
obj.xhtml = create_xhtml(obj.message)
if not obj.message and obj.chatstate is None and obj.form_node is None:
return
@@ -297,7 +298,7 @@ class CommonConnection:
self._build_message_stanza(obj)
def _build_message_stanza(self, obj):
- if obj.jid == gajim.get_jid_from_account(self.name):
+ if obj.jid == app.get_jid_from_account(self.name):
fjid = obj.jid
else:
fjid = obj.get_full_jid()
@@ -335,7 +336,7 @@ class CommonConnection:
# XEP-0203
if obj.delayed:
- our_jid = gajim.get_jid_from_account(self.name) + '/' + \
+ our_jid = app.get_jid_from_account(self.name) + '/' + \
self.server_resource
timestamp = time.strftime('%Y-%m-%dT%H:%M:%SZ', time.gmtime(obj.delayed))
msg_iq.addChild('delay', namespace=nbxmpp.NS_DELAY2,
@@ -347,7 +348,7 @@ class CommonConnection:
if isinstance(obj.jid, list):
if self.addressing_supported:
- msg_iq.setTo(gajim.config.get_per('accounts', self.name, 'hostname'))
+ msg_iq.setTo(app.config.get_per('accounts', self.name, 'hostname'))
addresses = msg_iq.addChild('addresses',
namespace=nbxmpp.NS_ADDRESS)
for j in obj.jid:
@@ -364,11 +365,11 @@ class CommonConnection:
msg_iq.setTo(fjid)
r_ = obj.resource
if not r_ and obj.jid != fjid: # Only if we're not in a pm
- r_ = gajim.get_resource_from_jid(fjid)
+ r_ = app.get_resource_from_jid(fjid)
if r_:
- contact = gajim.contacts.get_contact(self.name, obj.jid, r_)
+ contact = app.contacts.get_contact(self.name, obj.jid, r_)
else:
- contact = gajim.contacts.get_contact_with_highest_priority(
+ contact = app.contacts.get_contact_with_highest_priority(
self.name, obj.jid)
# chatstates - if peer supports xep85, send chatstates
@@ -384,8 +385,8 @@ class CommonConnection:
namespace=nbxmpp.NS_MSG_HINTS)
# XEP-0184
- if obj.jid != gajim.get_jid_from_account(self.name):
- request = gajim.config.get_per('accounts', self.name,
+ if obj.jid != app.get_jid_from_account(self.name):
+ request = app.config.get_per('accounts', self.name,
'request_receipt')
if obj.message and request:
msg_iq.setTag('request', namespace=nbxmpp.NS_RECEIPTS)
@@ -408,11 +409,11 @@ class CommonConnection:
if isinstance(msg_iq, list):
for iq in msg_iq:
obj.msg_iq = iq
- gajim.nec.push_incoming_event(
+ app.nec.push_incoming_event(
StanzaMessageOutgoingEvent(None, **vars(obj)))
else:
obj.msg_iq = msg_iq
- gajim.nec.push_incoming_event(
+ app.nec.push_incoming_event(
StanzaMessageOutgoingEvent(None, **vars(obj)))
def log_message(self, obj, jid):
@@ -422,16 +423,16 @@ class CommonConnection:
if obj.forward_from or not obj.session or not obj.session.is_loggable():
return
- if not gajim.config.should_log(self.name, jid):
+ if not app.config.should_log(self.name, jid):
return
- if obj.xhtml and gajim.config.get('log_xhtml_messages'):
+ if obj.xhtml and app.config.get('log_xhtml_messages'):
obj.message = '%s' % (nbxmpp.NS_XHTML,
obj.xhtml)
if obj.message is None:
return
- gajim.logger.insert_into_logs(jid, obj.timestamp, obj.kind,
+ app.logger.insert_into_logs(jid, obj.timestamp, obj.kind,
message=obj.message,
subject=obj.subject,
additional_data=obj.additional_data,
@@ -568,10 +569,10 @@ class CommonConnection:
def _event_dispatcher(self, realm, event, data):
if realm == '':
if event == nbxmpp.transports_nb.DATA_RECEIVED:
- gajim.nec.push_incoming_event(StanzaReceivedEvent(None,
+ app.nec.push_incoming_event(StanzaReceivedEvent(None,
conn=self, stanza_str=data))
elif event == nbxmpp.transports_nb.DATA_SENT:
- gajim.nec.push_incoming_event(StanzaSentEvent(None, conn=self,
+ app.nec.push_incoming_event(StanzaSentEvent(None, conn=self,
stanza_str=data))
def change_status(self, show, msg, auto=False):
@@ -589,10 +590,10 @@ class CommonConnection:
self.old_show = show
self.on_purpose = False
self.server_resource = self._compute_resource()
- if gajim.HAVE_GPG:
+ if app.HAVE_GPG:
self.USE_GPG = True
self.gpg = gpg.GnuPG()
- gajim.nec.push_incoming_event(BeforeChangeShowEvent(None,
+ app.nec.push_incoming_event(BeforeChangeShowEvent(None,
conn=self, show=show, message=msg))
self.connect_and_init(show, msg, sign_msg)
return
@@ -600,7 +601,7 @@ class CommonConnection:
if show == 'offline':
self.connected = 0
if self.connection:
- gajim.nec.push_incoming_event(BeforeChangeShowEvent(None,
+ app.nec.push_incoming_event(BeforeChangeShowEvent(None,
conn=self, show=show, message=msg))
p = nbxmpp.Presence(typ = 'unavailable')
p = self.add_sha(p, False)
@@ -619,22 +620,22 @@ class CommonConnection:
if self.connected == 1:
return
if show == 'invisible':
- gajim.nec.push_incoming_event(BeforeChangeShowEvent(None,
+ app.nec.push_incoming_event(BeforeChangeShowEvent(None,
conn=self, show=show, message=msg))
self._change_to_invisible(msg)
return
if show not in ['offline', 'online', 'chat', 'away', 'xa', 'dnd']:
return -1
- was_invisible = self.connected == gajim.SHOW_LIST.index('invisible')
- self.connected = gajim.SHOW_LIST.index(show)
+ was_invisible = self.connected == app.SHOW_LIST.index('invisible')
+ self.connected = app.SHOW_LIST.index(show)
idle_time = None
if auto:
global HAS_IDLE
- if HAS_IDLE and gajim.config.get('autoaway'):
+ if HAS_IDLE and app.config.get('autoaway'):
idle_sec = int(self.sleeper.getIdleSec())
idle_time = time.strftime('%Y-%m-%dT%H:%M:%SZ',
time.gmtime(time.time() - idle_sec))
- gajim.nec.push_incoming_event(BeforeChangeShowEvent(None,
+ app.nec.push_incoming_event(BeforeChangeShowEvent(None,
conn=self, show=show, message=msg))
if was_invisible:
self._change_from_invisible()
@@ -663,7 +664,7 @@ class Connection(CommonConnection, ConnectionHandlers):
self.new_account_info = None
self.new_account_form = None
self.annotations = {}
- self.last_io = gajim.idlequeue.current_time()
+ self.last_io = app.idlequeue.current_time()
self.last_sent = []
self.last_history_time = {}
self.password = passwords.get_password(name)
@@ -690,51 +691,51 @@ class Connection(CommonConnection, ConnectionHandlers):
self.sm = Smacks(self) # Stream Management
- gajim.ged.register_event_handler('privacy-list-received', ged.CORE,
+ app.ged.register_event_handler('privacy-list-received', ged.CORE,
self._nec_privacy_list_received)
- gajim.ged.register_event_handler('agent-info-error-received', ged.CORE,
+ app.ged.register_event_handler('agent-info-error-received', ged.CORE,
self._nec_agent_info_error_received)
- gajim.ged.register_event_handler('agent-info-received', ged.CORE,
+ app.ged.register_event_handler('agent-info-received', ged.CORE,
self._nec_agent_info_received)
- gajim.ged.register_event_handler('message-outgoing', ged.OUT_CORE,
+ app.ged.register_event_handler('message-outgoing', ged.OUT_CORE,
self._nec_message_outgoing)
- gajim.ged.register_event_handler('gc-message-outgoing', ged.OUT_CORE,
+ app.ged.register_event_handler('gc-message-outgoing', ged.OUT_CORE,
self._nec_gc_message_outgoing)
- gajim.ged.register_event_handler('gc-stanza-message-outgoing', ged.OUT_CORE,
+ app.ged.register_event_handler('gc-stanza-message-outgoing', ged.OUT_CORE,
self._nec_gc_stanza_message_outgoing)
- gajim.ged.register_event_handler('stanza-message-outgoing',
+ app.ged.register_event_handler('stanza-message-outgoing',
ged.OUT_CORE, self._nec_stanza_message_outgoing)
# END __init__
def cleanup(self):
ConnectionHandlers.cleanup(self)
- gajim.ged.remove_event_handler('privacy-list-received', ged.CORE,
+ app.ged.remove_event_handler('privacy-list-received', ged.CORE,
self._nec_privacy_list_received)
- gajim.ged.remove_event_handler('agent-info-error-received', ged.CORE,
+ app.ged.remove_event_handler('agent-info-error-received', ged.CORE,
self._nec_agent_info_error_received)
- gajim.ged.remove_event_handler('agent-info-received', ged.CORE,
+ app.ged.remove_event_handler('agent-info-received', ged.CORE,
self._nec_agent_info_received)
- gajim.ged.remove_event_handler('message-outgoing', ged.OUT_CORE,
+ app.ged.remove_event_handler('message-outgoing', ged.OUT_CORE,
self._nec_message_outgoing)
- gajim.ged.remove_event_handler('gc-message-outgoing', ged.OUT_CORE,
+ app.ged.remove_event_handler('gc-message-outgoing', ged.OUT_CORE,
self._nec_gc_message_outgoing)
- gajim.ged.remove_event_handler('gc-stanza-message-outgoing', ged.OUT_CORE,
+ app.ged.remove_event_handler('gc-stanza-message-outgoing', ged.OUT_CORE,
self._nec_gc_stanza_message_outgoing)
- gajim.ged.remove_event_handler('stanza-message-outgoing', ged.OUT_CORE,
+ app.ged.remove_event_handler('stanza-message-outgoing', ged.OUT_CORE,
self._nec_stanza_message_outgoing)
def get_config_values_or_default(self):
- if gajim.config.get_per('accounts', self.name, 'keep_alives_enabled'):
- self.keepalives = gajim.config.get_per('accounts', self.name,
+ if app.config.get_per('accounts', self.name, 'keep_alives_enabled'):
+ self.keepalives = app.config.get_per('accounts', self.name,
'keep_alive_every_foo_secs')
else:
self.keepalives = 0
- if gajim.config.get_per('accounts', self.name, 'ping_alives_enabled'):
- self.pingalives = gajim.config.get_per('accounts', self.name,
+ if app.config.get_per('accounts', self.name, 'ping_alives_enabled'):
+ self.pingalives = app.config.get_per('accounts', self.name,
'ping_alive_every_foo_secs')
else:
self.pingalives = 0
- self.client_cert = gajim.config.get_per('accounts', self.name,
+ self.client_cert = app.config.get_per('accounts', self.name,
'client_cert')
self.client_cert_passphrase = ''
@@ -751,7 +752,7 @@ class Connection(CommonConnection, ConnectionHandlers):
return self.registered_name
else:
# This returns the bare jid
- return nbxmpp.JID(gajim.get_jid_from_account(self.name))
+ return nbxmpp.JID(app.get_jid_from_account(self.name))
def reconnect(self):
# Do not try to reco while we are already trying
@@ -759,7 +760,7 @@ class Connection(CommonConnection, ConnectionHandlers):
if self.connected < 2: # connection failed
log.debug('reconnect')
self.connected = 1
- gajim.nec.push_incoming_event(OurShowEvent(None, conn=self,
+ app.nec.push_incoming_event(OurShowEvent(None, conn=self,
show='connecting'))
self.retrycount += 1
self.on_connect_auth = self._discover_server_at_connection
@@ -771,7 +772,7 @@ class Connection(CommonConnection, ConnectionHandlers):
# We are doing disconnect at so many places, better use one function in all
def disconnect(self, on_purpose=False):
- gajim.interface.music_track_changed(None, None, self.name)
+ app.interface.music_track_changed(None, None, self.name)
self.reset_awaiting_pep()
self.on_purpose = on_purpose
self.connected = 0
@@ -781,7 +782,7 @@ class Connection(CommonConnection, ConnectionHandlers):
self.sm = Smacks(self)
if self.connection:
# make sure previous connection is completely closed
- gajim.proxy65_manager.disconnect(self.connection)
+ app.proxy65_manager.disconnect(self.connection)
self.terminate_sessions()
self.remove_all_transfers()
self.connection.disconnect()
@@ -790,44 +791,44 @@ class Connection(CommonConnection, ConnectionHandlers):
def set_oldst(self): # Set old state
if self.old_show:
- self.connected = gajim.SHOW_LIST.index(self.old_show)
- gajim.nec.push_incoming_event(OurShowEvent(None, conn=self,
+ self.connected = app.SHOW_LIST.index(self.old_show)
+ app.nec.push_incoming_event(OurShowEvent(None, conn=self,
show=self.connected))
else: # we default to online
self.connected = 2
- gajim.nec.push_incoming_event(OurShowEvent(None, conn=self,
- show=gajim.SHOW_LIST[self.connected]))
+ app.nec.push_incoming_event(OurShowEvent(None, conn=self,
+ show=app.SHOW_LIST[self.connected]))
def disconnectedReconnCB(self):
"""
Called when we are disconnected
"""
log.info('disconnectedReconnCB called')
- if gajim.account_is_connected(self.name):
+ if app.account_is_connected(self.name):
# we cannot change our status to offline or connecting
# after we auth to server
- self.old_show = gajim.SHOW_LIST[self.connected]
+ self.old_show = app.SHOW_LIST[self.connected]
self.connected = 0
if not self.on_purpose:
if not (self.sm and self.sm.resumption):
- gajim.nec.push_incoming_event(OurShowEvent(None, conn=self,
+ app.nec.push_incoming_event(OurShowEvent(None, conn=self,
show='offline'))
else:
self.sm.enabled = False
- gajim.nec.push_incoming_event(OurShowEvent(None, conn=self,
+ app.nec.push_incoming_event(OurShowEvent(None, conn=self,
show='error'))
if self.connection:
self.connection.UnregisterDisconnectHandler(
self.disconnectedReconnCB)
self.disconnect()
- if gajim.config.get_per('accounts', self.name, 'autoreconnect'):
+ if app.config.get_per('accounts', self.name, 'autoreconnect'):
self.connected = -1
- gajim.nec.push_incoming_event(OurShowEvent(None, conn=self,
+ app.nec.push_incoming_event(OurShowEvent(None, conn=self,
show='error'))
- if gajim.status_before_autoaway[self.name]:
+ if app.status_before_autoaway[self.name]:
# We were auto away. So go back online
- self.status = gajim.status_before_autoaway[self.name]
- gajim.status_before_autoaway[self.name] = ''
+ self.status = app.status_before_autoaway[self.name]
+ app.status_before_autoaway[self.name] = ''
self.old_show = 'online'
# this check has moved from reconnect method
# do exponential backoff until less than 5 minutes
@@ -838,7 +839,7 @@ class Connection(CommonConnection, ConnectionHandlers):
self.last_time_to_reconnect *= 1.5
self.time_to_reconnect = int(self.last_time_to_reconnect)
log.info("Reconnect to %s in %ss", self.name, self.time_to_reconnect)
- gajim.idlequeue.set_alarm(self._reconnect_alarm,
+ app.idlequeue.set_alarm(self._reconnect_alarm,
self.time_to_reconnect)
elif self.on_connect_failure:
self.on_connect_failure()
@@ -859,7 +860,7 @@ class Connection(CommonConnection, ConnectionHandlers):
def _connection_lost(self):
log.debug('_connection_lost')
self.disconnect(on_purpose = False)
- gajim.nec.push_incoming_event(ConnectionLostEvent(None, conn=self,
+ app.nec.push_incoming_event(ConnectionLostEvent(None, conn=self,
title=_('Connection with account "%s" has been lost') % self.name,
msg=_('Reconnect manually.')))
@@ -875,7 +876,7 @@ class Connection(CommonConnection, ConnectionHandlers):
reason = _('Server %(name)s answered wrongly to '
'register request: %(error)s') % {'name': data[0],
'error': data[3]}
- gajim.nec.push_incoming_event(AccountNotCreatedEvent(
+ app.nec.push_incoming_event(AccountNotCreatedEvent(
None, conn=self, reason=reason))
return
is_form = data[2]
@@ -885,13 +886,13 @@ class Connection(CommonConnection, ConnectionHandlers):
if self.new_account_form:
def _on_register_result(result):
if not nbxmpp.isResultNode(result):
- gajim.nec.push_incoming_event(AccountNotCreatedEvent(
+ app.nec.push_incoming_event(AccountNotCreatedEvent(
None, conn=self, reason=result.getError()))
return
- if gajim.HAVE_GPG:
+ if app.HAVE_GPG:
self.USE_GPG = True
self.gpg = gpg.GnuPG()
- gajim.nec.push_incoming_event(
+ app.nec.push_incoming_event(
AccountCreatedEvent(None, conn=self,
account_info = self.new_account_info))
self.new_account_info = None
@@ -915,21 +916,21 @@ class Connection(CommonConnection, ConnectionHandlers):
# requested config has changed since first connection
reason = _('Server %s provided a different '
'registration form') % data[0]
- gajim.nec.push_incoming_event(AccountNotCreatedEvent(
+ app.nec.push_incoming_event(AccountNotCreatedEvent(
None, conn=self, reason=reason))
return
nbxmpp.features_nb.register(self.connection,
self._hostname, self.new_account_form,
_on_register_result)
return
- gajim.nec.push_incoming_event(NewAccountConnectedEvent(None,
+ app.nec.push_incoming_event(NewAccountConnectedEvent(None,
conn=self, config=conf, is_form=is_form))
self.connection.UnregisterDisconnectHandler(
self._on_new_account)
self.disconnect(on_purpose=True)
return
if not data[1]: # wrong answer
- gajim.nec.push_incoming_event(InformationEvent(None,
+ app.nec.push_incoming_event(InformationEvent(None,
conn=self, level='error', pri_txt=_('Invalid answer'),
sec_txt=_('Transport %(name)s answered wrongly to '
'register request: %(error)s') % {'name': data[0],
@@ -937,13 +938,13 @@ class Connection(CommonConnection, ConnectionHandlers):
return
is_form = data[2]
conf = data[1]
- gajim.nec.push_incoming_event(RegisterAgentInfoReceivedEvent(
+ app.nec.push_incoming_event(RegisterAgentInfoReceivedEvent(
None, conn=self, agent=data[0], config=conf,
is_form=is_form))
elif realm == nbxmpp.NS_PRIVACY:
if event == nbxmpp.features_nb.PRIVACY_LISTS_RECEIVED:
# data is (list)
- gajim.nec.push_incoming_event(PrivacyListsReceivedEvent(None,
+ app.nec.push_incoming_event(PrivacyListsReceivedEvent(None,
conn=self, lists_list=data))
elif event == nbxmpp.features_nb.PRIVACY_LIST_RECEIVED:
# data is (resp)
@@ -965,11 +966,11 @@ class Connection(CommonConnection, ConnectionHandlers):
childs.append(scnd_child.getName())
rules.append({'action':dict_item['action'],
'order':dict_item['order'], 'child':childs})
- gajim.nec.push_incoming_event(PrivacyListReceivedEvent(None,
+ app.nec.push_incoming_event(PrivacyListReceivedEvent(None,
conn=self, list_name=name, rules=rules))
elif event == nbxmpp.features_nb.PRIVACY_LISTS_ACTIVE_DEFAULT:
# data is (dict)
- gajim.nec.push_incoming_event(PrivacyListActiveDefaultEvent(
+ app.nec.push_incoming_event(PrivacyListActiveDefaultEvent(
None, conn=self, active_list=data['active'],
default_list=data['default']))
@@ -1013,7 +1014,7 @@ class Connection(CommonConnection, ConnectionHandlers):
if self.sm.resuming and self.sm.location:
# If resuming and server gave a location, connect from there
hostname = self.sm.location
- self.try_connecting_for_foo_secs = gajim.config.get_per('accounts',
+ self.try_connecting_for_foo_secs = app.config.get_per('accounts',
self.name, 'try_connecting_for_foo_secs')
use_custom = False
proxy = helpers.get_proxy_info(self.name)
@@ -1022,9 +1023,9 @@ class Connection(CommonConnection, ConnectionHandlers):
hostname = data['hostname']
self.try_connecting_for_foo_secs = 45
p = data['proxy']
- if p and p in gajim.config.get_per('proxies'):
+ if p and p in app.config.get_per('proxies'):
proxy = {}
- proxyptr = gajim.config.get_per('proxies', p)
+ proxyptr = app.config.get_per('proxies', p)
for key in proxyptr.keys():
proxy[key] = proxyptr[key]
else:
@@ -1035,27 +1036,27 @@ class Connection(CommonConnection, ConnectionHandlers):
custom_h = data['custom_host']
custom_p = data['custom_port']
else:
- hostname = gajim.config.get_per('accounts', self.name, 'hostname')
- self.try_connecting_for_foo_secs = gajim.config.get_per('accounts',
+ hostname = app.config.get_per('accounts', self.name, 'hostname')
+ self.try_connecting_for_foo_secs = app.config.get_per('accounts',
self.name, 'try_connecting_for_foo_secs')
proxy = helpers.get_proxy_info(self.name)
- use_srv = gajim.config.get_per('accounts', self.name, 'use_srv')
+ use_srv = app.config.get_per('accounts', self.name, 'use_srv')
if self.redirected:
use_custom = True
custom_h = self.redirected['host']
custom_p = self.redirected['port']
else:
- use_custom = gajim.config.get_per('accounts', self.name,
+ use_custom = app.config.get_per('accounts', self.name,
'use_custom_host')
if use_custom:
- custom_h = gajim.config.get_per('accounts', self.name,
+ custom_h = app.config.get_per('accounts', self.name,
'custom_host')
- custom_p = gajim.config.get_per('accounts', self.name,
+ custom_p = app.config.get_per('accounts', self.name,
'custom_port')
try:
helpers.idn_to_ascii(custom_h)
except Exception:
- gajim.nec.push_incoming_event(InformationEvent(None,
+ app.nec.push_incoming_event(InformationEvent(None,
conn=self, level='error',
pri_txt=_('Wrong Custom Hostname'),
sec_txt='Wrong custom hostname "%s". Ignoring it.' \
@@ -1084,7 +1085,7 @@ class Connection(CommonConnection, ConnectionHandlers):
if use_srv:
# add request for srv query to the resolve, on result '_on_resolve'
# will be called
- gajim.resolver.resolve('_xmpp-client._tcp.' + helpers.idn_to_ascii(
+ app.resolver.resolve('_xmpp-client._tcp.' + helpers.idn_to_ascii(
h), self._on_resolve)
else:
self._on_resolve('', [])
@@ -1095,8 +1096,8 @@ class Connection(CommonConnection, ConnectionHandlers):
self._hosts = [i for i in result_array]
# Add ssl port
ssl_p = 5223
- if gajim.config.get_per('accounts', self.name, 'use_custom_host'):
- ssl_p = gajim.config.get_per('accounts', self.name,
+ if app.config.get_per('accounts', self.name, 'use_custom_host'):
+ ssl_p = app.config.get_per('accounts', self.name,
'custom_port')
for i in self._hosts:
i['ssl_port'] = ssl_p
@@ -1107,8 +1108,8 @@ class Connection(CommonConnection, ConnectionHandlers):
log.debug('Connection to next host')
if len(self._hosts):
# No config option exist when creating a new account
- if self.name in gajim.config.get_per('accounts'):
- self._connection_types = gajim.config.get_per('accounts', self.name,
+ if self.name in app.config.get_per('accounts'):
+ self._connection_types = app.config.get_per('accounts', self.name,
'connection_types').split()
else:
self._connection_types = ['tls', 'ssl']
@@ -1173,20 +1174,20 @@ class Connection(CommonConnection, ConnectionHandlers):
# plain connection on defined port
port = self._current_host['port']
- cacerts = os.path.join(common.gajim.DATA_DIR, 'other', 'cacerts.pem')
+ cacerts = os.path.join(common.app.DATA_DIR, 'other', 'cacerts.pem')
if not os.path.exists(cacerts):
cacerts = ''
- mycerts = common.gajim.MY_CACERTS
- tls_version = gajim.config.get_per('accounts', self.name,
+ mycerts = common.app.MY_CACERTS
+ tls_version = app.config.get_per('accounts', self.name,
'tls_version')
- cipher_list = gajim.config.get_per('accounts', self.name,
+ cipher_list = app.config.get_per('accounts', self.name,
'cipher_list')
secure_tuple = (self._current_type, cacerts, mycerts, tls_version, cipher_list)
con = nbxmpp.NonBlockingClient(
domain=self._hostname,
caller=self,
- idlequeue=gajim.idlequeue)
+ idlequeue=app.idlequeue)
self.last_connection = con
# increase default timeout for server responses
@@ -1196,9 +1197,9 @@ class Connection(CommonConnection, ConnectionHandlers):
if self.on_connect_success == self._on_new_account:
con.RegisterDisconnectHandler(self._on_new_account)
- if self.client_cert and gajim.config.get_per('accounts', self.name,
+ if self.client_cert and app.config.get_per('accounts', self.name,
'client_cert_encrypted'):
- gajim.nec.push_incoming_event(ClientCertPassphraseEvent(
+ app.nec.push_incoming_event(ClientCertPassphraseEvent(
None, conn=self, con=con, port=port,
secure_tuple=secure_tuple))
return
@@ -1250,12 +1251,12 @@ class Connection(CommonConnection, ConnectionHandlers):
key = nbxmpp.NS_XMPP_STREAMS + ' ' + self.streamError
if key in nbxmpp.ERRORS:
sectxt2 = _('Server replied: %s') % nbxmpp.ERRORS[key][2]
- gajim.nec.push_incoming_event(InformationEvent(None,
+ app.nec.push_incoming_event(InformationEvent(None,
conn=self, level='error', pri_txt=pritxt,
sec_txt='%s\n%s' % (sectxt2, sectxt)))
return
# show popup
- gajim.nec.push_incoming_event(ConnectionLostEvent(None,
+ app.nec.push_incoming_event(ConnectionLostEvent(None,
conn=self, title=pritxt, msg=sectxt))
def on_proxy_failure(self, reason):
@@ -1263,7 +1264,7 @@ class Connection(CommonConnection, ConnectionHandlers):
self.time_to_reconnect = None
self.on_connect_failure = None
self.disconnect(on_purpose = True)
- gajim.nec.push_incoming_event(ConnectionLostEvent(None, conn=self,
+ app.nec.push_incoming_event(ConnectionLostEvent(None, conn=self,
title=_('Connection to proxy failed'), msg=reason))
def _connect_success(self, con, con_type):
@@ -1277,23 +1278,23 @@ class Connection(CommonConnection, ConnectionHandlers):
self.connect_to_next_type()
return
con.RegisterDisconnectHandler(self._on_disconnected)
- if _con_type == 'plain' and gajim.config.get_per('accounts', self.name,
+ if _con_type == 'plain' and app.config.get_per('accounts', self.name,
'action_when_plaintext_connection') == 'warn':
- gajim.nec.push_incoming_event(PlainConnectionEvent(None, conn=self,
+ app.nec.push_incoming_event(PlainConnectionEvent(None, conn=self,
xmpp_client=con))
return True
- if _con_type == 'plain' and gajim.config.get_per('accounts', self.name,
+ if _con_type == 'plain' and app.config.get_per('accounts', self.name,
'action_when_plaintext_connection') == 'disconnect':
self.disconnect(on_purpose=True)
- gajim.nec.push_incoming_event(OurShowEvent(None, conn=self,
+ app.nec.push_incoming_event(OurShowEvent(None, conn=self,
show='offline'))
return False
if _con_type in ('tls', 'ssl') and con.Connection.ssl_lib != 'PYOPENSSL' \
- and gajim.config.get_per('accounts', self.name,
+ and app.config.get_per('accounts', self.name,
'warn_when_insecure_ssl_connection') and \
not self.connection_auto_accepted:
# Pyopenssl is not used
- gajim.nec.push_incoming_event(InsecureSSLConnectionEvent(None,
+ app.nec.push_incoming_event(InsecureSSLConnectionEvent(None,
conn=self, xmpp_client=con, conn_type=_con_type))
return True
return self.connection_accepted(con, con_type)
@@ -1301,7 +1302,7 @@ class Connection(CommonConnection, ConnectionHandlers):
def connection_accepted(self, con, con_type):
if not con or not con.Connection:
self.disconnect(on_purpose=True)
- gajim.nec.push_incoming_event(ConnectionLostEvent(None, conn=self,
+ app.nec.push_incoming_event(ConnectionLostEvent(None, conn=self,
title=_('Could not connect to account %s') % self.name,
msg=_('Connection with account %s has been lost. Retry '
'connecting.') % self.name))
@@ -1319,23 +1320,23 @@ class Connection(CommonConnection, ConnectionHandlers):
if con_type == 'tls' and 'ssl' in self._connection_types:
# we were about to try ssl after tls, but tls succeed, so
# definitively stop trying ssl
- con_types = gajim.config.get_per('accounts', self.name,
+ con_types = app.config.get_per('accounts', self.name,
'connection_types').split()
con_types.remove('ssl')
- gajim.config.set_per('accounts', self.name, 'connection_types',
+ app.config.set_per('accounts', self.name, 'connection_types',
' '.join(con_types))
- if gajim.config.get_per('accounts', self.name, 'anonymous_auth'):
+ if app.config.get_per('accounts', self.name, 'anonymous_auth'):
name = None
else:
- name = gajim.config.get_per('accounts', self.name, 'name')
- hostname = gajim.config.get_per('accounts', self.name, 'hostname')
+ name = app.config.get_per('accounts', self.name, 'name')
+ hostname = app.config.get_per('accounts', self.name, 'hostname')
self.connection = con
try:
errnum = con.Connection.ssl_errnum
except AttributeError:
errnum = 0
cert = con.Connection.ssl_certificate
- if errnum > 0 and str(errnum) not in gajim.config.get_per('accounts',
+ if errnum > 0 and str(errnum) not in app.config.get_per('accounts',
self.name, 'ignore_ssl_errors').split():
text = _('The authenticity of the %s certificate could be invalid'
) % hostname
@@ -1347,7 +1348,7 @@ class Connection(CommonConnection, ConnectionHandlers):
fingerprint_sha256 = cert.digest('sha256').decode('utf-8')
pem = OpenSSL.crypto.dump_certificate(OpenSSL.crypto.FILETYPE_PEM,
cert).decode('utf-8')
- gajim.nec.push_incoming_event(SSLErrorEvent(None, conn=self,
+ app.nec.push_incoming_event(SSLErrorEvent(None, conn=self,
error_text=text, error_num=errnum, cert=pem,
fingerprint_sha1=fingerprint_sha1,
fingerprint_sha256=fingerprint_sha256, certificate=cert))
@@ -1355,50 +1356,50 @@ class Connection(CommonConnection, ConnectionHandlers):
if cert:
fingerprint_sha1 = cert.digest('sha1').decode('utf-8')
fingerprint_sha256 = cert.digest('sha256').decode('utf-8')
- saved_fingerprint_sha1 = gajim.config.get_per('accounts', self.name,
+ saved_fingerprint_sha1 = app.config.get_per('accounts', self.name,
'ssl_fingerprint_sha1')
if saved_fingerprint_sha1:
# Check sha1 fingerprint
if fingerprint_sha1 != saved_fingerprint_sha1:
if not check_X509.check_certificate(cert, hostname):
- gajim.nec.push_incoming_event(FingerprintErrorEvent(
+ app.nec.push_incoming_event(FingerprintErrorEvent(
None, conn=self, certificate=cert,
new_fingerprint_sha1=fingerprint_sha1,
new_fingerprint_sha256=fingerprint_sha256))
return True
- gajim.config.set_per('accounts', self.name, 'ssl_fingerprint_sha1',
+ app.config.set_per('accounts', self.name, 'ssl_fingerprint_sha1',
fingerprint_sha1)
- saved_fingerprint_sha256 = gajim.config.get_per('accounts', self.name,
+ saved_fingerprint_sha256 = app.config.get_per('accounts', self.name,
'ssl_fingerprint_sha256')
if saved_fingerprint_sha256:
# Check sha256 fingerprint
if fingerprint_sha256 != saved_fingerprint_sha256:
if not check_X509.check_certificate(cert, hostname):
- gajim.nec.push_incoming_event(FingerprintErrorEvent(
+ app.nec.push_incoming_event(FingerprintErrorEvent(
None, conn=self, certificate=cert,
new_fingerprint_sha1=fingerprint_sha1,
new_fingerprint_sha256=fingerprint_sha256))
return True
- gajim.config.set_per('accounts', self.name,
+ app.config.set_per('accounts', self.name,
'ssl_fingerprint_sha256', fingerprint_sha256)
if not check_X509.check_certificate(cert, hostname) and \
- '100' not in gajim.config.get_per('accounts', self.name,
+ '100' not in app.config.get_per('accounts', self.name,
'ignore_ssl_errors').split():
pem = OpenSSL.crypto.dump_certificate(
OpenSSL.crypto.FILETYPE_PEM, cert).decode('utf-8')
txt = _('The authenticity of the %s certificate could be '
'invalid.\nThe certificate does not cover this domain.') %\
hostname
- gajim.nec.push_incoming_event(SSLErrorEvent(None, conn=self,
+ app.nec.push_incoming_event(SSLErrorEvent(None, conn=self,
error_text=txt, error_num=100, cert=pem,
fingerprint_sha1=fingerprint_sha1,
fingerprint_sha256=fingerprint_sha256, certificate=cert))
return True
self._register_handlers(con, con_type)
- auth_mechs = gajim.config.get_per('accounts', self.name, 'authentication_mechanisms')
+ auth_mechs = app.config.get_per('accounts', self.name, 'authentication_mechanisms')
auth_mechs = auth_mechs.split()
for mech in auth_mechs:
if mech not in nbxmpp.auth_nb.SASL_AUTHENTICATION_MECHANISMS | set(['XEP-0078']):
@@ -1411,31 +1412,31 @@ class Connection(CommonConnection, ConnectionHandlers):
def ssl_certificate_accepted(self):
if not self.connection:
self.disconnect(on_purpose=True)
- gajim.nec.push_incoming_event(ConnectionLostEvent(None, conn=self,
+ app.nec.push_incoming_event(ConnectionLostEvent(None, conn=self,
title=_('Could not connect to account %s') % self.name,
msg=_('Connection with account %s has been lost. Retry '
'connecting.') % self.name))
return
- if gajim.config.get_per('accounts', self.name, 'anonymous_auth'):
+ if app.config.get_per('accounts', self.name, 'anonymous_auth'):
name = None
else:
- name = gajim.config.get_per('accounts', self.name, 'name')
+ name = app.config.get_per('accounts', self.name, 'name')
self._register_handlers(self.connection, 'ssl')
self.connection.auth(name, self.password, self.server_resource, 1,
self.__on_auth)
def _register_handlers(self, con, con_type):
self.peerhost = con.get_peerhost()
- gajim.con_types[self.name] = con_type
+ app.con_types[self.name] = con_type
# notify the gui about con_type
- gajim.nec.push_incoming_event(ConnectionTypeEvent(None,
+ app.nec.push_incoming_event(ConnectionTypeEvent(None,
conn=self, connection_type=con_type))
ConnectionHandlers._register_handlers(self, con, con_type)
def __on_auth(self, con, auth):
if not con:
self.disconnect(on_purpose=True)
- gajim.nec.push_incoming_event(ConnectionLostEvent(None, conn=self,
+ app.nec.push_incoming_event(ConnectionLostEvent(None, conn=self,
title=_('Could not connect to "%s"') % self._hostname,
msg=_('Check your connection or try again later.')))
if self.on_connect_auth:
@@ -1450,29 +1451,29 @@ class Connection(CommonConnection, ConnectionHandlers):
if hasattr(con, 'Resource'):
self.server_resource = con.Resource
self.registered_name = con._registered_name
- if gajim.config.get_per('accounts', self.name, 'anonymous_auth'):
+ if app.config.get_per('accounts', self.name, 'anonymous_auth'):
# Get jid given by server
- old_jid = gajim.get_jid_from_account(self.name)
- gajim.config.set_per('accounts', self.name, 'name', con.User)
- new_jid = gajim.get_jid_from_account(self.name)
- gajim.nec.push_incoming_event(AnonymousAuthEvent(None,
+ old_jid = app.get_jid_from_account(self.name)
+ app.config.set_per('accounts', self.name, 'name', con.User)
+ new_jid = app.get_jid_from_account(self.name)
+ app.nec.push_incoming_event(AnonymousAuthEvent(None,
conn=self, old_jid=old_jid, new_jid=new_jid))
if auth:
- self.last_io = gajim.idlequeue.current_time()
+ self.last_io = app.idlequeue.current_time()
self.connected = 2
self.retrycount = 0
if self.on_connect_auth:
self.on_connect_auth(con)
self.on_connect_auth = None
else:
- if not gajim.config.get_per('accounts', self.name, 'savepass'):
+ if not app.config.get_per('accounts', self.name, 'savepass'):
# Forget password, it's wrong
self.password = None
- gajim.log.debug("Couldn't authenticate to %s" % self._hostname)
+ app.log.debug("Couldn't authenticate to %s" % self._hostname)
self.disconnect(on_purpose = True)
- gajim.nec.push_incoming_event(OurShowEvent(None, conn=self,
+ app.nec.push_incoming_event(OurShowEvent(None, conn=self,
show='offline'))
- gajim.nec.push_incoming_event(InformationEvent(None, conn=self,
+ app.nec.push_incoming_event(InformationEvent(None, conn=self,
level='error', pri_txt=_('Authentication failed with "%s"') % \
self._hostname, sec_txt=_('Please check your login and password'
' for correctness.')))
@@ -1486,7 +1487,7 @@ class Connection(CommonConnection, ConnectionHandlers):
stanza.setAttr('xml:lang', self.lang)
def get_privacy_lists(self):
- if not gajim.account_is_connected(self.name):
+ if not app.account_is_connected(self.name):
return
nbxmpp.features_nb.getPrivacyLists(self.connection)
@@ -1506,15 +1507,15 @@ class Connection(CommonConnection, ConnectionHandlers):
server to detect connection failure at application level
If control is set, display result there
"""
- if not gajim.account_is_connected(self.name):
+ if not app.account_is_connected(self.name):
return
id_ = self.connection.getAnID()
if pingTo:
to = pingTo.get_full_jid()
- gajim.nec.push_incoming_event(PingSentEvent(None, conn=self,
+ app.nec.push_incoming_event(PingSentEvent(None, conn=self,
contact=pingTo))
else:
- to = gajim.config.get_per('accounts', self.name, 'hostname')
+ to = app.config.get_per('accounts', self.name, 'hostname')
self.awaiting_xmpp_ping_id = id_
iq = nbxmpp.Iq('get', to=to)
iq.addChild(name='ping', namespace=nbxmpp.NS_PING)
@@ -1522,34 +1523,34 @@ class Connection(CommonConnection, ConnectionHandlers):
def _on_response(resp):
timePong = time.time()
if not nbxmpp.isResultNode(resp):
- gajim.nec.push_incoming_event(PingErrorEvent(None, conn=self,
+ app.nec.push_incoming_event(PingErrorEvent(None, conn=self,
contact=pingTo))
return
timeDiff = round(timePong - timePing, 2)
- gajim.nec.push_incoming_event(PingReplyEvent(None, conn=self,
+ app.nec.push_incoming_event(PingReplyEvent(None, conn=self,
contact=pingTo, seconds=timeDiff, control=control))
if pingTo:
timePing = time.time()
self.connection.SendAndCallForResponse(iq, _on_response)
else:
self.connection.SendAndCallForResponse(iq, self._on_xmpp_ping_answer)
- gajim.idlequeue.set_alarm(self.check_pingalive, gajim.config.get_per(
+ app.idlequeue.set_alarm(self.check_pingalive, app.config.get_per(
'accounts', self.name, 'time_for_ping_alive_answer'))
def get_active_default_lists(self):
- if not gajim.account_is_connected(self.name):
+ if not app.account_is_connected(self.name):
return
nbxmpp.features_nb.getActiveAndDefaultPrivacyLists(self.connection)
def del_privacy_list(self, privacy_list):
- if not gajim.account_is_connected(self.name):
+ if not app.account_is_connected(self.name):
return
def _on_del_privacy_list_result(result):
if result:
- gajim.nec.push_incoming_event(PrivacyListRemovedEvent(None,
+ app.nec.push_incoming_event(PrivacyListRemovedEvent(None,
conn=self, list_name=privacy_list))
else:
- gajim.nec.push_incoming_event(InformationEvent(None, conn=self,
+ app.nec.push_incoming_event(InformationEvent(None, conn=self,
level='error', pri_txt=_('Error while removing privacy '
'list'), sec_txt=_('Privacy list %s has not been removed. '
'It is maybe active in one of your connected resources. '
@@ -1558,23 +1559,23 @@ class Connection(CommonConnection, ConnectionHandlers):
_on_del_privacy_list_result)
def get_privacy_list(self, title):
- if not gajim.account_is_connected(self.name):
+ if not app.account_is_connected(self.name):
return
nbxmpp.features_nb.getPrivacyList(self.connection, title)
def set_privacy_list(self, listname, tags):
- if not gajim.account_is_connected(self.name):
+ if not app.account_is_connected(self.name):
return
nbxmpp.features_nb.setPrivacyList(self.connection, listname, tags)
def set_active_list(self, listname):
- if not gajim.account_is_connected(self.name):
+ if not app.account_is_connected(self.name):
return
nbxmpp.features_nb.setActivePrivacyList(self.connection, listname,
'active')
def set_default_list(self, listname):
- if not gajim.account_is_connected(self.name):
+ if not app.account_is_connected(self.name):
return
nbxmpp.features_nb.setDefaultPrivacyList(self.connection, listname)
@@ -1591,15 +1592,15 @@ class Connection(CommonConnection, ConnectionHandlers):
def build_invisible_rule(self):
iq = nbxmpp.Iq('set', nbxmpp.NS_PRIVACY, xmlns='')
l = iq.setQuery().setTag('list', {'name': 'invisible'})
- if self.name in gajim.interface.status_sent_to_groups and \
- len(gajim.interface.status_sent_to_groups[self.name]) > 0:
- for group in gajim.interface.status_sent_to_groups[self.name]:
+ if self.name in app.interface.status_sent_to_groups and \
+ len(app.interface.status_sent_to_groups[self.name]) > 0:
+ for group in app.interface.status_sent_to_groups[self.name]:
i = l.setTag('item', {'type': 'group', 'value': group,
'action': 'allow', 'order': '1'})
i.setTag('presence-out')
- if self.name in gajim.interface.status_sent_to_users and \
- len(gajim.interface.status_sent_to_users[self.name]) > 0:
- for jid in gajim.interface.status_sent_to_users[self.name]:
+ if self.name in app.interface.status_sent_to_users and \
+ len(app.interface.status_sent_to_users[self.name]) > 0:
+ for jid in app.interface.status_sent_to_users[self.name]:
i = l.setTag('item', {'type': 'jid', 'value': jid,
'action': 'allow', 'order': '2'})
i.setTag('presence-out')
@@ -1608,7 +1609,7 @@ class Connection(CommonConnection, ConnectionHandlers):
return iq
def set_invisible_rule(self):
- if not gajim.account_is_connected(self.name):
+ if not app.account_is_connected(self.name):
return
iq = self.build_invisible_rule()
self.connection.send(iq)
@@ -1674,8 +1675,8 @@ class Connection(CommonConnection, ConnectionHandlers):
self.del_privacy_list(self.privacy_default_list)
else:
self.set_privacy_list(self.privacy_default_list, self.new_blocked_list)
- if not gajim.interface.roster.regroup:
- show = gajim.SHOW_LIST[self.connected]
+ if not app.interface.roster.regroup:
+ show = app.SHOW_LIST[self.connected]
else: # accounts merged
show = helpers.get_global_show()
if show == 'invisible':
@@ -1717,8 +1718,8 @@ class Connection(CommonConnection, ConnectionHandlers):
self.del_privacy_list(self.privacy_default_list)
else:
self.set_privacy_list(self.privacy_default_list, self.new_blocked_list)
- if not gajim.interface.roster.regroup:
- show = gajim.SHOW_LIST[self.connected]
+ if not app.interface.roster.regroup:
+ show = app.SHOW_LIST[self.connected]
else: # accounts merged
show = helpers.get_global_show()
if show == 'invisible':
@@ -1727,12 +1728,12 @@ class Connection(CommonConnection, ConnectionHandlers):
self.send_custom_status(show, self.status, contact.jid)
def send_invisible_presence(self, msg, signed, initial = False):
- if not gajim.account_is_connected(self.name):
+ if not app.account_is_connected(self.name):
return
if not self.privacy_rules_supported:
- gajim.nec.push_incoming_event(OurShowEvent(None, conn=self,
- show=gajim.SHOW_LIST[self.connected]))
- gajim.nec.push_incoming_event(InformationEvent(None, conn=self,
+ app.nec.push_incoming_event(OurShowEvent(None, conn=self,
+ show=app.SHOW_LIST[self.connected]))
+ app.nec.push_incoming_event(InformationEvent(None, conn=self,
level='error', pri_txt=_('Invisibility not supported'),
sec_txt=_('Account %s doesn\'t support invisibility.') % \
self.name))
@@ -1758,9 +1759,9 @@ class Connection(CommonConnection, ConnectionHandlers):
return
# active the privacy rule
self.set_active_list('invisible')
- self.connected = gajim.SHOW_LIST.index('invisible')
+ self.connected = app.SHOW_LIST.index('invisible')
self.status = msg
- priority = gajim.get_priority(self.name, 'invisible')
+ priority = app.get_priority(self.name, 'invisible')
p = nbxmpp.Presence(priority=priority)
p = self.add_sha(p, True)
if msg:
@@ -1769,7 +1770,7 @@ class Connection(CommonConnection, ConnectionHandlers):
p.setTag(nbxmpp.NS_SIGNED + ' x').setData(signed)
self.connection.send(p)
self.priority = priority
- gajim.nec.push_incoming_event(OurShowEvent(None, conn=self,
+ app.nec.push_incoming_event(OurShowEvent(None, conn=self,
show='invisible'))
if initial:
# ask our VCard
@@ -1782,10 +1783,10 @@ class Connection(CommonConnection, ConnectionHandlers):
self.get_annotations()
# Inform GUI we just signed in
- gajim.nec.push_incoming_event(SignedInEvent(None, conn=self))
+ app.nec.push_incoming_event(SignedInEvent(None, conn=self))
def get_signed_presence(self, msg, callback = None):
- if gajim.config.get_per('accounts', self.name, 'gpg_sign_presence'):
+ if app.config.get_per('accounts', self.name, 'gpg_sign_presence'):
return self.get_signed_msg(msg, callback)
return ''
@@ -1801,7 +1802,7 @@ class Connection(CommonConnection, ConnectionHandlers):
def _discover_server_at_connection(self, con):
self.connection = con
- if not gajim.account_is_connected(self.name):
+ if not app.account_is_connected(self.name):
return
self.connection.set_send_timeout(self.keepalives, self.send_keepalive)
self.connection.set_send_timeout2(self.pingalives, self.sendPing)
@@ -1812,15 +1813,15 @@ class Connection(CommonConnection, ConnectionHandlers):
# If we are not resuming, we ask for discovery info
# and archiving preferences
if not self.sm.supports_sm or (not self.sm.resuming and self.sm.enabled):
- our_jid = gajim.get_jid_from_account(self.name)
- our_server = gajim.config.get_per('accounts', self.name, 'hostname')
+ our_jid = app.get_jid_from_account(self.name)
+ our_server = app.config.get_per('accounts', self.name, 'hostname')
self.discoverInfo(our_jid, id_prefix='Gajim_')
self.discoverInfo(our_server, id_prefix='Gajim_')
self.sm.resuming = False # back to previous state
# Discover Stun server(s)
- hostname = gajim.config.get_per('accounts', self.name, 'hostname')
- gajim.resolver.resolve('_stun._udp.' + helpers.idn_to_ascii(hostname),
+ hostname = app.config.get_per('accounts', self.name, 'hostname')
+ app.resolver.resolve('_stun._udp.' + helpers.idn_to_ascii(hostname),
self._on_stun_resolved)
def _on_stun_resolved(self, host, result_array):
@@ -1828,7 +1829,7 @@ class Connection(CommonConnection, ConnectionHandlers):
self._stun_servers = self._hosts = [i for i in result_array]
def _request_privacy(self):
- if not gajim.account_is_connected(self.name) or not self.connection:
+ if not app.account_is_connected(self.name) or not self.connection:
return
iq = nbxmpp.Iq('get', nbxmpp.NS_PRIVACY, xmlns='')
id_ = self.connection.getAnID()
@@ -1847,9 +1848,9 @@ class Connection(CommonConnection, ConnectionHandlers):
# Trying to login as invisible but privacy list not
# supported
self.disconnect(on_purpose=True)
- gajim.nec.push_incoming_event(OurShowEvent(None, conn=self,
+ app.nec.push_incoming_event(OurShowEvent(None, conn=self,
show='offline'))
- gajim.nec.push_incoming_event(InformationEvent(None,
+ app.nec.push_incoming_event(InformationEvent(None,
conn=self, level='error', pri_txt=_('Invisibility not '
'supported'), sec_txt=_('Account %s doesn\'t support '
'invisibility.') % self.name))
@@ -1868,7 +1869,7 @@ class Connection(CommonConnection, ConnectionHandlers):
def _nec_agent_info_error_received(self, obj):
if obj.conn.name != self.name:
return
- hostname = gajim.config.get_per('accounts', self.name, 'hostname')
+ hostname = app.config.get_per('accounts', self.name, 'hostname')
if obj.id_[:6] == 'Gajim_' and obj.fjid == hostname:
self._continue_connection_request_privacy()
@@ -1888,13 +1889,13 @@ class Connection(CommonConnection, ConnectionHandlers):
and 'type' in identity and identity['type'] == 'text':
is_muc = True
- if transport_type != '' and obj.fjid not in gajim.transport_type:
- gajim.transport_type[obj.fjid] = transport_type
- gajim.logger.save_transport_type(obj.fjid, transport_type)
+ if transport_type != '' and obj.fjid not in app.transport_type:
+ app.transport_type[obj.fjid] = transport_type
+ app.logger.save_transport_type(obj.fjid, transport_type)
if obj.id_[:6] == 'Gajim_':
- hostname = gajim.config.get_per('accounts', self.name, 'hostname')
- our_jid = gajim.get_jid_from_account(self.name)
+ hostname = app.config.get_per('accounts', self.name, 'hostname')
+ our_jid = app.get_jid_from_account(self.name)
if obj.fjid == our_jid:
if nbxmpp.NS_MAM_2 in obj.features:
@@ -1910,7 +1911,7 @@ class Connection(CommonConnection, ConnectionHandlers):
if obj.fjid == hostname:
if nbxmpp.NS_GMAILNOTIFY in obj.features:
- gajim.gmail_domains.append(obj.fjid)
+ app.gmail_domains.append(obj.fjid)
self.request_gmail_notifications()
if nbxmpp.NS_SECLABEL in obj.features:
self.seclabel_supported = True
@@ -1936,7 +1937,7 @@ class Connection(CommonConnection, ConnectionHandlers):
self.blocking_supported = True
if nbxmpp.NS_ADDRESS in obj.features:
self.addressing_supported = True
- if nbxmpp.NS_CARBONS in obj.features and gajim.config.get_per(
+ if nbxmpp.NS_CARBONS in obj.features and app.config.get_per(
'accounts', self.name, 'enable_message_carbons'):
self.carbons_enabled = True
# Server supports carbons, activate it
@@ -1952,12 +1953,12 @@ class Connection(CommonConnection, ConnectionHandlers):
if nbxmpp.NS_HTTPUPLOAD in obj.features:
self.httpupload = True
if nbxmpp.NS_BYTESTREAM in obj.features and \
- gajim.config.get_per('accounts', self.name, 'use_ft_proxies'):
+ app.config.get_per('accounts', self.name, 'use_ft_proxies'):
our_fjid = helpers.parse_jid(our_jid + '/' + \
self.server_resource)
- testit = gajim.config.get_per('accounts', self.name,
+ testit = app.config.get_per('accounts', self.name,
'test_ft_proxies_on_startup')
- gajim.proxy65_manager.resolve(obj.fjid, self.connection,
+ app.proxy65_manager.resolve(obj.fjid, self.connection,
our_fjid, default=self.name, testit=testit)
if nbxmpp.NS_MUC in obj.features and is_muc:
type_ = transport_type or 'jabber'
@@ -1969,9 +1970,9 @@ class Connection(CommonConnection, ConnectionHandlers):
self.available_transports[transport_type] = [obj.fjid]
def send_custom_status(self, show, msg, jid):
- if not show in gajim.SHOW_LIST:
+ if not show in app.SHOW_LIST:
return -1
- if not gajim.account_is_connected(self.name):
+ if not app.account_is_connected(self.name):
return
sshow = helpers.get_xmpp_show(show)
if not msg:
@@ -1983,7 +1984,7 @@ class Connection(CommonConnection, ConnectionHandlers):
p.setStatus(msg)
else:
signed = self.get_signed_presence(msg)
- priority = gajim.get_priority(self.name, sshow)
+ priority = app.get_priority(self.name, sshow)
p = nbxmpp.Presence(typ=None, priority=priority, show=sshow, to=jid)
p = self.add_sha(p)
if msg:
@@ -2002,7 +2003,7 @@ class Connection(CommonConnection, ConnectionHandlers):
def _update_status(self, show, msg, idle_time=None):
xmpp_show = helpers.get_xmpp_show(show)
- priority = gajim.get_priority(self.name, xmpp_show)
+ priority = app.get_priority(self.name, xmpp_show)
p = nbxmpp.Presence(typ=None, priority=priority, show=xmpp_show)
p = self.add_sha(p)
if msg:
@@ -2016,11 +2017,11 @@ class Connection(CommonConnection, ConnectionHandlers):
if self.connection:
self.connection.send(p)
self.priority = priority
- gajim.nec.push_incoming_event(OurShowEvent(None, conn=self,
+ app.nec.push_incoming_event(OurShowEvent(None, conn=self,
show=show))
def send_motd(self, jid, subject='', msg='', xhtml=None):
- if not gajim.account_is_connected(self.name):
+ if not app.account_is_connected(self.name):
return
msg_iq = nbxmpp.Message(to=jid, body=msg, subject=subject,
xhtml=xhtml)
@@ -2038,9 +2039,9 @@ class Connection(CommonConnection, ConnectionHandlers):
return
config_key = '%s-%s' % (self.name, obj.jid)
- encryption = gajim.config.get_per('encryption', config_key, 'encryption')
+ encryption = app.config.get_per('encryption', config_key, 'encryption')
if encryption:
- gajim.plugin_manager.extension_point(
+ app.plugin_manager.extension_point(
'encrypt' + encryption, self, obj, self.send_message)
else:
self.send_message(obj)
@@ -2049,7 +2050,7 @@ class Connection(CommonConnection, ConnectionHandlers):
obj.timestamp = time.time()
obj.stanza_id = self.connection.send(obj.msg_iq, now=obj.now)
- gajim.nec.push_incoming_event(MessageSentEvent(
+ app.nec.push_incoming_event(MessageSentEvent(
None, conn=self, jid=obj.jid, message=obj.message, keyID=obj.keyID,
chatstate=obj.chatstate, automatic_message=obj.automatic_message,
stanza_id=obj.stanza_id, additional_data=obj.additional_data))
@@ -2068,7 +2069,7 @@ class Connection(CommonConnection, ConnectionHandlers):
"""
Send contacts with RosterX (Xep-0144)
"""
- if not gajim.account_is_connected(self.name):
+ if not app.account_is_connected(self.name):
return
if type_ == 'message':
if len(contacts) == 1:
@@ -2079,7 +2080,7 @@ class Connection(CommonConnection, ConnectionHandlers):
for contact in contacts:
msg += '\n "%s" (%s)' % (contact.get_full_jid(),
contact.get_shown_name())
- stanza = nbxmpp.Message(to=gajim.get_jid_without_resource(fjid),
+ stanza = nbxmpp.Message(to=app.get_jid_without_resource(fjid),
body=msg)
elif type_ == 'iq':
stanza = nbxmpp.Iq(to=fjid, typ='set')
@@ -2098,14 +2099,14 @@ class Connection(CommonConnection, ConnectionHandlers):
self.connection.send(stanza)
def ack_subscribed(self, jid):
- if not gajim.account_is_connected(self.name):
+ if not app.account_is_connected(self.name):
return
log.debug('ack\'ing subscription complete for %s' % jid)
p = nbxmpp.Presence(jid, 'subscribe')
self.connection.send(p)
def ack_unsubscribed(self, jid):
- if not gajim.account_is_connected(self.name):
+ if not app.account_is_connected(self.name):
return
log.debug('ack\'ing unsubscription complete for %s' % jid)
p = nbxmpp.Presence(jid, 'unsubscribe')
@@ -2113,7 +2114,7 @@ class Connection(CommonConnection, ConnectionHandlers):
def request_subscription(self, jid, msg='', name='', groups=None,
auto_auth=False, user_nick=''):
- if not gajim.account_is_connected(self.name):
+ if not app.account_is_connected(self.name):
return
if groups is None:
groups = []
@@ -2140,34 +2141,34 @@ class Connection(CommonConnection, ConnectionHandlers):
self.connection.send(p)
def send_authorization(self, jid):
- if not gajim.account_is_connected(self.name):
+ if not app.account_is_connected(self.name):
return
p = nbxmpp.Presence(jid, 'subscribed')
p = self.add_sha(p)
self.connection.send(p)
def refuse_authorization(self, jid):
- if not gajim.account_is_connected(self.name):
+ if not app.account_is_connected(self.name):
return
p = nbxmpp.Presence(jid, 'unsubscribed')
p = self.add_sha(p)
self.connection.send(p)
def unsubscribe(self, jid, remove_auth = True):
- if not gajim.account_is_connected(self.name):
+ if not app.account_is_connected(self.name):
return
if remove_auth:
self.connection.getRoster().delItem(jid)
- jid_list = gajim.config.get_per('contacts')
+ jid_list = app.config.get_per('contacts')
for j in jid_list:
if j.startswith(jid):
- gajim.config.del_per('contacts', j)
+ app.config.del_per('contacts', j)
else:
self.connection.getRoster().Unsubscribe(jid)
self.update_contact(jid, '', [])
def unsubscribe_agent(self, agent):
- if not gajim.account_is_connected(self.name):
+ if not app.account_is_connected(self.name):
return
iq = nbxmpp.Iq('set', nbxmpp.NS_REGISTER, to=agent)
iq.setQuery().setTag('remove')
@@ -2211,7 +2212,7 @@ class Connection(CommonConnection, ConnectionHandlers):
# There are still other way to try to connect
return
reason = _('Could not connect to "%s"') % self._hostname
- gajim.nec.push_incoming_event(NewAccountNotConnectedEvent(None,
+ app.nec.push_incoming_event(NewAccountNotConnectedEvent(None,
conn=self, reason=reason))
return
self.on_connect_failure = None
@@ -2223,10 +2224,10 @@ class Connection(CommonConnection, ConnectionHandlers):
groupchat_jid is used when we want to send a request to a real jid and
act as if the answer comes from the groupchat_jid
"""
- if not gajim.account_is_connected(self.name):
+ if not app.account_is_connected(self.name):
return
# If we are invisible, do not request
- if self.connected == gajim.SHOW_LIST.index('invisible'):
+ if self.connected == app.SHOW_LIST.index('invisible'):
self.dispatch('OS_INFO', (jid, resource, _('Not fetched because of invisible status'), _('Not fetched because of invisible status')))
return
to_whom_jid = jid
@@ -2245,10 +2246,10 @@ class Connection(CommonConnection, ConnectionHandlers):
groupchat_jid is used when we want to send a request to a real jid and
act as if the answer comes from the groupchat_jid
"""
- if not gajim.account_is_connected(self.name):
+ if not app.account_is_connected(self.name):
return
# If we are invisible, do not request
- if self.connected == gajim.SHOW_LIST.index('invisible'):
+ if self.connected == app.SHOW_LIST.index('invisible'):
self.dispatch('ENTITY_TIME', (jid, resource, _('Not fetched because of invisible status')))
return
to_whom_jid = jid
@@ -2265,7 +2266,7 @@ class Connection(CommonConnection, ConnectionHandlers):
def request_gateway_prompt(self, jid, prompt=None):
def _on_prompt_result(resp):
- gajim.nec.push_incoming_event(GatewayPromptReceivedEvent(None,
+ app.nec.push_incoming_event(GatewayPromptReceivedEvent(None,
conn=self, stanza=resp))
if prompt:
typ_ = 'set'
@@ -2281,7 +2282,7 @@ class Connection(CommonConnection, ConnectionHandlers):
"""
Get Gajim settings as described in XEP 0049
"""
- if not gajim.account_is_connected(self.name):
+ if not app.account_is_connected(self.name):
return
iq = nbxmpp.Iq(typ='get')
iq2 = iq.addChild(name='query', namespace=nbxmpp.NS_PRIVATE)
@@ -2289,17 +2290,17 @@ class Connection(CommonConnection, ConnectionHandlers):
self.connection.send(iq)
def seclabel_catalogue(self, to, callback):
- if not gajim.account_is_connected(self.name):
+ if not app.account_is_connected(self.name):
return
self.seclabel_catalogue_request(to, callback)
- server = gajim.get_jid_from_account(self.name).split("@")[1] # Really, no better way?
+ server = app.get_jid_from_account(self.name).split("@")[1] # Really, no better way?
iq = nbxmpp.Iq(typ='get', to=server)
iq2 = iq.addChild(name='catalog', namespace=nbxmpp.NS_SECLABEL_CATALOG)
iq2.setAttr('to', to)
self.connection.send(iq)
def _nec_privacy_list_received(self, obj):
- roster = gajim.interface.roster
+ roster = app.interface.roster
if obj.conn.name != self.name:
return
if obj.list_name != self.privacy_default_list:
@@ -2336,7 +2337,7 @@ class Connection(CommonConnection, ConnectionHandlers):
roster.draw_group(rule['value'], self.name)
def _request_bookmarks_xml(self):
- if not gajim.account_is_connected(self.name):
+ if not app.account_is_connected(self.name):
return
iq = nbxmpp.Iq(typ='get')
iq2 = iq.addChild(name='query', namespace=nbxmpp.NS_PRIVATE)
@@ -2354,14 +2355,14 @@ class Connection(CommonConnection, ConnectionHandlers):
storage_type can be set to xml to force request to xml storage
"""
- if not gajim.account_is_connected(self.name):
+ if not app.account_is_connected(self.name):
return
if self.pubsub_supported and self.pubsub_publish_options_supported \
and storage_type != 'xml':
self.send_pb_retrieve('', 'storage:bookmarks')
# some server (ejabberd) are so slow to answer that we request via XML
# if we don't get answer in the next 30 seconds
- gajim.idlequeue.set_alarm(self._check_bookmarks_received, 30)
+ app.idlequeue.set_alarm(self._check_bookmarks_received, 30)
else:
self._request_bookmarks_xml()
@@ -2373,7 +2374,7 @@ class Connection(CommonConnection, ConnectionHandlers):
else it will be stored on both
"""
NS_GAJIM_BM = 'xmpp:gajim.org/bookmarks'
- if not gajim.account_is_connected(self.name):
+ if not app.account_is_connected(self.name):
return
iq = nbxmpp.Node(tag='storage', attrs={'xmlns': 'storage:bookmarks'})
for bm in self.bookmarks:
@@ -2419,7 +2420,7 @@ class Connection(CommonConnection, ConnectionHandlers):
Get Annonations from storage as described in XEP 0048, and XEP 0145
"""
self.annotations = {}
- if not gajim.account_is_connected(self.name):
+ if not app.account_is_connected(self.name):
return
iq = nbxmpp.Iq(typ='get')
iq2 = iq.addChild(name='query', namespace=nbxmpp.NS_PRIVATE)
@@ -2430,7 +2431,7 @@ class Connection(CommonConnection, ConnectionHandlers):
"""
Set Annonations in private storage as described in XEP 0048, and XEP 0145
"""
- if not gajim.account_is_connected(self.name):
+ if not app.account_is_connected(self.name):
return
iq = nbxmpp.Iq(typ='set')
iq2 = iq.addChild(name='query', namespace=nbxmpp.NS_PRIVATE)
@@ -2446,7 +2447,7 @@ class Connection(CommonConnection, ConnectionHandlers):
"""
Get roster group delimiter from storage as described in XEP 0083
"""
- if not gajim.account_is_connected(self.name):
+ if not app.account_is_connected(self.name):
return
iq = nbxmpp.Iq(typ='get')
iq2 = iq.addChild(name='query', namespace=nbxmpp.NS_PRIVATE)
@@ -2460,7 +2461,7 @@ class Connection(CommonConnection, ConnectionHandlers):
"""
Set roster group delimiter to the storage namespace
"""
- if not gajim.account_is_connected(self.name):
+ if not app.account_is_connected(self.name):
return
iq = nbxmpp.Iq(typ='set')
iq2 = iq.addChild(name='query', namespace=nbxmpp.NS_PRIVATE)
@@ -2473,7 +2474,7 @@ class Connection(CommonConnection, ConnectionHandlers):
"""
Get metacontacts list from storage as described in XEP 0049
"""
- if not gajim.account_is_connected(self.name):
+ if not app.account_is_connected(self.name):
return
iq = nbxmpp.Iq(typ='get')
iq2 = iq.addChild(name='query', namespace=nbxmpp.NS_PRIVATE)
@@ -2487,7 +2488,7 @@ class Connection(CommonConnection, ConnectionHandlers):
"""
Send meta contacts to the storage namespace
"""
- if not gajim.account_is_connected(self.name):
+ if not app.account_is_connected(self.name):
return
iq = nbxmpp.Iq(typ='set')
iq2 = iq.addChild(name='query', namespace=nbxmpp.NS_PRIVATE)
@@ -2506,22 +2507,22 @@ class Connection(CommonConnection, ConnectionHandlers):
features = self.connection.Dispatcher.Stream.features
if features and features.getTag('ver',
namespace=nbxmpp.NS_ROSTER_VER):
- version = gajim.config.get_per('accounts', self.name,
+ version = app.config.get_per('accounts', self.name,
'roster_version')
iq_id = self.connection.initRoster(version=version)
self.awaiting_answers[iq_id] = (ROSTER_ARRIVED, )
def send_agent_status(self, agent, ptype):
- if not gajim.account_is_connected(self.name):
+ if not app.account_is_connected(self.name):
return
- show = helpers.get_xmpp_show(gajim.SHOW_LIST[self.connected])
+ show = helpers.get_xmpp_show(app.SHOW_LIST[self.connected])
p = nbxmpp.Presence(to=agent, typ=ptype, show=show)
p = self.add_sha(p, ptype != 'unavailable')
self.connection.send(p)
def send_captcha(self, jid, form_node):
- if not gajim.account_is_connected(self.name):
+ if not app.account_is_connected(self.name):
return
iq = nbxmpp.Iq(typ='set', to=jid)
captcha = iq.addChild(name='captcha', namespace=nbxmpp.NS_CAPTCHA)
@@ -2529,17 +2530,17 @@ class Connection(CommonConnection, ConnectionHandlers):
self.connection.send(iq)
def check_unique_room_id_support(self, server, instance):
- if not gajim.account_is_connected(self.name):
+ if not app.account_is_connected(self.name):
return
iq = nbxmpp.Iq(typ='get', to=server)
iq.setAttr('id', 'unique1')
iq.addChild('unique', namespace=nbxmpp.NS_MUC_UNIQUE)
def _on_response(resp):
if not nbxmpp.isResultNode(resp):
- gajim.nec.push_incoming_event(UniqueRoomIdNotSupportedEvent(
+ app.nec.push_incoming_event(UniqueRoomIdNotSupportedEvent(
None, conn=self, instance=instance, server=server))
return
- gajim.nec.push_incoming_event(UniqueRoomIdSupportedEvent(None,
+ app.nec.push_incoming_event(UniqueRoomIdSupportedEvent(None,
conn=self, instance=instance, server=server,
room_id=resp.getTag('unique').getData()))
self.connection.SendAndCallForResponse(iq, _on_response)
@@ -2547,9 +2548,9 @@ class Connection(CommonConnection, ConnectionHandlers):
def join_gc(self, nick, room_jid, password, change_nick=False,
rejoin=False):
# FIXME: This room JID needs to be normalized; see #1364
- if not gajim.account_is_connected(self.name):
+ if not app.account_is_connected(self.name):
return
- show = helpers.get_xmpp_show(gajim.SHOW_LIST[self.connected])
+ show = helpers.get_xmpp_show(app.SHOW_LIST[self.connected])
if show == 'invisible':
# Never join a room when invisible
return
@@ -2558,9 +2559,9 @@ class Connection(CommonConnection, ConnectionHandlers):
if room_jid not in self.last_history_time:
# Not in memory, get it from DB
last_log = 0
- if gajim.config.should_log(self.name, room_jid):
+ if app.config.should_log(self.name, room_jid):
# Check time first in the FAST table
- last_log = gajim.logger.get_room_last_message_time(
+ last_log = app.logger.get_room_last_message_time(
self.name, room_jid)
if not last_log:
last_log = 0
@@ -2576,16 +2577,16 @@ class Connection(CommonConnection, ConnectionHandlers):
id_ = self.connection.getAnID()
id_ = 'gajim_muc_' + id_ + '_' + h
p.setID(id_)
- if gajim.config.get('send_sha_in_gc_presence'):
+ if app.config.get('send_sha_in_gc_presence'):
p = self.add_sha(p)
self.add_lang(p)
if not change_nick:
t = p.setTag(nbxmpp.NS_MUC + ' x')
tags = {}
- timeout = gajim.config.get_per('rooms', room_jid,
+ timeout = app.config.get_per('rooms', room_jid,
'muc_restore_timeout')
if timeout is None or timeout == -2:
- timeout = gajim.config.get('muc_restore_timeout')
+ timeout = app.config.get('muc_restore_timeout')
last_date = self.last_history_time[room_jid]
if last_date == 0 and timeout >= 0:
last_date = time.time() - timeout * 60
@@ -2595,9 +2596,9 @@ class Connection(CommonConnection, ConnectionHandlers):
last_date))
tags['since'] = last_date
- nb = gajim.config.get_per('rooms', room_jid, 'muc_restore_lines')
+ nb = app.config.get_per('rooms', room_jid, 'muc_restore_lines')
if nb is None or nb == -2:
- nb = gajim.config.get('muc_restore_lines')
+ nb = app.config.get('muc_restore_lines')
if nb >= 0:
tags['maxstanzas'] = nb
if tags:
@@ -2609,11 +2610,11 @@ class Connection(CommonConnection, ConnectionHandlers):
def _nec_gc_message_outgoing(self, obj):
if obj.account != self.name:
return
- if not gajim.account_is_connected(self.name):
+ if not app.account_is_connected(self.name):
return
- if not obj.xhtml and gajim.config.get('rst_formatting_outgoing_messages'):
- from common.rst_xhtml_generator import create_xhtml
+ if not obj.xhtml and app.config.get('rst_formatting_outgoing_messages'):
+ from gajim.common.rst_xhtml_generator import create_xhtml
obj.xhtml = create_xhtml(obj.message)
msg_iq = nbxmpp.Message(obj.jid, obj.message, typ='groupchat',
@@ -2635,23 +2636,23 @@ class Connection(CommonConnection, ConnectionHandlers):
obj.msg_iq = msg_iq
obj.conn = self
- gajim.nec.push_incoming_event(GcStanzaMessageOutgoingEvent(None, **vars(obj)))
+ app.nec.push_incoming_event(GcStanzaMessageOutgoingEvent(None, **vars(obj)))
def _nec_gc_stanza_message_outgoing(self, obj):
if obj.conn.name != self.name:
return
config_key = '%s-%s' % (self.name, obj.jid)
- encryption = gajim.config.get_per('encryption', config_key, 'encryption')
+ encryption = app.config.get_per('encryption', config_key, 'encryption')
if encryption:
- gajim.plugin_manager.extension_point(
+ app.plugin_manager.extension_point(
'gc_encrypt' + encryption, self, obj, self.send_gc_message)
else:
self.send_gc_message(obj)
def send_gc_message(self, obj):
obj.stanza_id = self.connection.send(obj.msg_iq)
- gajim.nec.push_incoming_event(MessageSentEvent(
+ app.nec.push_incoming_event(MessageSentEvent(
None, conn=self, jid=obj.jid, message=obj.message, keyID=None,
chatstate=None, automatic_message=obj.automatic_message,
stanza_id=obj.stanza_id, additional_data=obj.additional_data))
@@ -2659,13 +2660,13 @@ class Connection(CommonConnection, ConnectionHandlers):
obj.callback(obj)
def send_gc_subject(self, jid, subject):
- if not gajim.account_is_connected(self.name):
+ if not app.account_is_connected(self.name):
return
msg_iq = nbxmpp.Message(jid, typ='groupchat', subject=subject)
self.connection.send(msg_iq)
def request_gc_config(self, room_jid):
- if not gajim.account_is_connected(self.name):
+ if not app.account_is_connected(self.name):
return
iq = nbxmpp.Iq(typ='get', queryNS=nbxmpp.NS_MUC_OWNER,
to=room_jid)
@@ -2673,7 +2674,7 @@ class Connection(CommonConnection, ConnectionHandlers):
self.connection.send(iq)
def destroy_gc_room(self, room_jid, reason = '', jid = ''):
- if not gajim.account_is_connected(self.name):
+ if not app.account_is_connected(self.name):
return
iq = nbxmpp.Iq(typ='set', queryNS=nbxmpp.NS_MUC_OWNER,
to=room_jid)
@@ -2685,7 +2686,7 @@ class Connection(CommonConnection, ConnectionHandlers):
self.connection.send(iq)
def send_gc_status(self, nick, jid, show, status, auto=False):
- if not gajim.account_is_connected(self.name):
+ if not app.account_is_connected(self.name):
return
if show == 'invisible':
show = 'offline'
@@ -2700,12 +2701,12 @@ class Connection(CommonConnection, ConnectionHandlers):
id_ = self.connection.getAnID()
id_ = 'gajim_muc_' + id_ + '_' + h
p.setID(id_)
- if gajim.config.get('send_sha_in_gc_presence') and show != 'offline':
+ if app.config.get('send_sha_in_gc_presence') and show != 'offline':
p = self.add_sha(p, ptype != 'unavailable')
self.add_lang(p)
if auto:
global HAS_IDLE
- if HAS_IDLE and gajim.config.get('autoaway'):
+ if HAS_IDLE and app.config.get('autoaway'):
idle_sec = int(self.sleeper.getIdleSec())
idle_time = time.strftime('%Y-%m-%dT%H:%M:%SZ',
time.gmtime(time.time() - idle_sec))
@@ -2723,13 +2724,13 @@ class Connection(CommonConnection, ConnectionHandlers):
than get that date from DB. Save time that we have in mem in a small
table (with fast access)
"""
- gajim.logger.set_room_last_message_time(room_jid, self.last_history_time[room_jid])
+ app.logger.set_room_last_message_time(room_jid, self.last_history_time[room_jid])
def gc_set_role(self, room_jid, nick, role, reason=''):
"""
Role is for all the life of the room so it's based on nick
"""
- if not gajim.account_is_connected(self.name):
+ if not app.account_is_connected(self.name):
return
iq = nbxmpp.Iq(typ='set', to=room_jid, queryNS=nbxmpp.NS_MUC_ADMIN)
item = iq.setQuery().setTag('item')
@@ -2743,7 +2744,7 @@ class Connection(CommonConnection, ConnectionHandlers):
"""
Affiliation is for all the life of the room so it's based on jid
"""
- if not gajim.account_is_connected(self.name):
+ if not app.account_is_connected(self.name):
return
iq = nbxmpp.Iq(typ='set', to=room_jid, queryNS=nbxmpp.NS_MUC_ADMIN)
item = iq.setQuery().setTag('item')
@@ -2754,7 +2755,7 @@ class Connection(CommonConnection, ConnectionHandlers):
self.connection.send(iq)
def send_gc_affiliation_list(self, room_jid, users_dict):
- if not gajim.account_is_connected(self.name):
+ if not app.account_is_connected(self.name):
return
iq = nbxmpp.Iq(typ='set', to=room_jid, queryNS=nbxmpp.NS_MUC_ADMIN)
item = iq.setQuery()
@@ -2766,7 +2767,7 @@ class Connection(CommonConnection, ConnectionHandlers):
self.connection.send(iq)
def get_affiliation_list(self, room_jid, affiliation):
- if not gajim.account_is_connected(self.name):
+ if not app.account_is_connected(self.name):
return
iq = nbxmpp.Iq(typ='get', to=room_jid, queryNS=nbxmpp.NS_MUC_ADMIN)
item = iq.setQuery().setTag('item')
@@ -2774,7 +2775,7 @@ class Connection(CommonConnection, ConnectionHandlers):
self.connection.send(iq)
def send_gc_config(self, room_jid, form):
- if not gajim.account_is_connected(self.name):
+ if not app.account_is_connected(self.name):
return
iq = nbxmpp.Iq(typ='set', to=room_jid, queryNS=nbxmpp.NS_MUC_OWNER)
query = iq.setQuery()
@@ -2783,10 +2784,10 @@ class Connection(CommonConnection, ConnectionHandlers):
self.connection.send(iq)
def change_password(self, password):
- if not gajim.account_is_connected(self.name):
+ if not app.account_is_connected(self.name):
return
- hostname = gajim.config.get_per('accounts', self.name, 'hostname')
- username = gajim.config.get_per('accounts', self.name, 'name')
+ hostname = app.config.get_per('accounts', self.name, 'hostname')
+ username = app.config.get_per('accounts', self.name, 'name')
iq = nbxmpp.Iq(typ='set', to=hostname)
q = iq.setTag(nbxmpp.NS_REGISTER + ' query')
q.setTagData('username', username)
@@ -2794,17 +2795,17 @@ class Connection(CommonConnection, ConnectionHandlers):
self.connection.send(iq)
def get_password(self, callback, type_):
- if gajim.config.get_per('accounts', self.name, 'anonymous_auth') and \
+ if app.config.get_per('accounts', self.name, 'anonymous_auth') and \
type_ != 'ANONYMOUS':
- gajim.nec.push_incoming_event(NonAnonymousServerErrorEvent(None,
+ app.nec.push_incoming_event(NonAnonymousServerErrorEvent(None,
conn=self))
self._on_disconnected()
return
self.pasword_callback = (callback, type_)
if type_ == 'X-MESSENGER-OAUTH2':
- client_id = gajim.config.get_per('accounts', self.name,
+ client_id = app.config.get_per('accounts', self.name,
'oauth2_client_id')
- refresh_token = gajim.config.get_per('accounts', self.name,
+ refresh_token = app.config.get_per('accounts', self.name,
'oauth2_refresh_token')
if refresh_token:
renew_URL = 'https://oauth.live.com/token?client_id=' \
@@ -2817,29 +2818,29 @@ class Connection(CommonConnection, ConnectionHandlers):
if 'access_token' in dict_:
self.set_password(dict_['access_token'])
return
- script_url = gajim.config.get_per('accounts', self.name,
+ script_url = app.config.get_per('accounts', self.name,
'oauth2_redirect_url')
token_URL = 'https://oauth.live.com/authorize?client_id=' \
'%(client_id)s&scope=wl.messenger%%20wl.offline_access&' \
'response_type=code&redirect_uri=%(script_url)s' % locals()
helpers.launch_browser_mailer('url', token_URL)
self.disconnect(on_purpose=True)
- gajim.nec.push_incoming_event(Oauth2CredentialsRequiredEvent(None,
+ app.nec.push_incoming_event(Oauth2CredentialsRequiredEvent(None,
conn=self))
return
if self.password:
self.set_password(self.password)
return
- gajim.nec.push_incoming_event(PasswordRequiredEvent(None, conn=self))
+ app.nec.push_incoming_event(PasswordRequiredEvent(None, conn=self))
def set_password(self, password):
self.password = password
if self.pasword_callback:
callback, type_ = self.pasword_callback
if self._current_type == 'plain' and type_ == 'PLAIN' and \
- gajim.config.get_per('accounts', self.name,
+ app.config.get_per('accounts', self.name,
'warn_when_insecure_password'):
- gajim.nec.push_incoming_event(InsecurePasswordEvent(None,
+ app.nec.push_incoming_event(InsecurePasswordEvent(None,
conn=self))
return
callback(password)
@@ -2856,8 +2857,8 @@ class Connection(CommonConnection, ConnectionHandlers):
# on_remove_success as a class property as pass it as an argument
def _on_unregister_account_connect(con):
self.on_connect_auth = None
- if gajim.account_is_connected(self.name):
- hostname = gajim.config.get_per('accounts', self.name, 'hostname')
+ if app.account_is_connected(self.name):
+ hostname = app.config.get_per('accounts', self.name, 'hostname')
iq = nbxmpp.Iq(typ='set', to=hostname)
id_ = self.connection.getAnID()
iq.setID(id_)
@@ -2866,7 +2867,7 @@ class Connection(CommonConnection, ConnectionHandlers):
if result.getID() == id_:
on_remove_success(True)
return
- gajim.nec.push_incoming_event(InformationEvent(None,
+ app.nec.push_incoming_event(InformationEvent(None,
conn=self, level='error',
pri_txt=_('Unregister failed'),
sec_txt=_('Unregistration with server %(server)s '
@@ -2887,9 +2888,9 @@ class Connection(CommonConnection, ConnectionHandlers):
"""
Send invitation
"""
- if not gajim.account_is_connected(self.name):
+ if not app.account_is_connected(self.name):
return
- contact = gajim.contacts.get_contact_from_full_jid(self.name, to)
+ contact = app.contacts.get_contact_from_full_jid(self.name, to)
if contact and contact.supports(nbxmpp.NS_CONFERENCE):
# send direct invite
message=nbxmpp.Message(to=to)
@@ -2898,7 +2899,7 @@ class Connection(CommonConnection, ConnectionHandlers):
attrs['reason'] = reason
if continue_tag:
attrs['continue'] = 'true'
- password = gajim.gc_passwords.get(room, '')
+ password = app.gc_passwords.get(room, '')
if password:
attrs['password'] = password
c = message.addChild(name='x', attrs=attrs,
@@ -2918,7 +2919,7 @@ class Connection(CommonConnection, ConnectionHandlers):
"""
decline a groupchat invitation
"""
- if not gajim.account_is_connected(self.name):
+ if not app.account_is_connected(self.name):
return
message=nbxmpp.Message(to=room)
c = message.addChild(name='x', namespace=nbxmpp.NS_MUC_USER)
@@ -2931,7 +2932,7 @@ class Connection(CommonConnection, ConnectionHandlers):
"""
Request voice in a moderated room
"""
- if not gajim.account_is_connected(self.name):
+ if not app.account_is_connected(self.name):
return
message = nbxmpp.Message(to=room)
@@ -2946,7 +2947,7 @@ class Connection(CommonConnection, ConnectionHandlers):
self.connection.send(message)
def check_pingalive(self):
- if not gajim.config.get_per('accounts', self.name, 'active'):
+ if not app.config.get_per('accounts', self.name, 'active'):
# Account may have been disabled
return
if self.awaiting_xmpp_ping_id:
@@ -2955,7 +2956,7 @@ class Connection(CommonConnection, ConnectionHandlers):
self.disconnectedReconnCB()
def _reconnect_alarm(self):
- if not gajim.config.get_per('accounts', self.name, 'active'):
+ if not app.config.get_per('accounts', self.name, 'active'):
# Account may have been disabled
return
if self.time_to_reconnect:
@@ -2977,12 +2978,12 @@ class Connection(CommonConnection, ConnectionHandlers):
for i in form.keys():
item.setTagData(i, form[i])
def _on_response(resp):
- gajim.nec.push_incoming_event(SearchResultReceivedEvent(None,
+ app.nec.push_incoming_event(SearchResultReceivedEvent(None,
conn=self, stanza=resp))
self.connection.SendAndCallForResponse(iq, _on_response)
def load_roster_from_db(self):
- gajim.nec.push_incoming_event(RosterReceivedEvent(None, conn=self))
+ app.nec.push_incoming_event(RosterReceivedEvent(None, conn=self))
# END Connection
diff --git a/gajim/common/connection_handlers.py b/gajim/common/connection_handlers.py
index 612b1981c..3b1fe4b30 100644
--- a/gajim/common/connection_handlers.py
+++ b/gajim/common/connection_handlers.py
@@ -39,27 +39,27 @@ from time import (altzone, daylight, gmtime, localtime, strftime,
from gi.repository import GLib
import nbxmpp
-from common import caps_cache as capscache
+from gajim.common import caps_cache as capscache
-from common.pep import LOCATION_DATA
-from common import helpers
-from common import gajim
-from common import exceptions
-from common import dataforms
-from common import jingle_xtls
-from common.commands import ConnectionCommands
-from common.pubsub import ConnectionPubSub
-from common.protocol.caps import ConnectionCaps
-from common.protocol.bytestream import ConnectionSocks5Bytestream
-from common.protocol.bytestream import ConnectionIBBytestream
-from common.message_archiving import ConnectionArchive313
-from common.connection_handlers_events import *
+from gajim.common.pep import LOCATION_DATA
+from gajim.common import helpers
+from gajim.common import app
+from gajim.common import exceptions
+from gajim.common import dataforms
+from gajim.common import jingle_xtls
+from gajim.common.commands import ConnectionCommands
+from gajim.common.pubsub import ConnectionPubSub
+from gajim.common.protocol.caps import ConnectionCaps
+from gajim.common.protocol.bytestream import ConnectionSocks5Bytestream
+from gajim.common.protocol.bytestream import ConnectionIBBytestream
+from gajim.common.message_archiving import ConnectionArchive313
+from gajim.common.connection_handlers_events import *
-from common import ged
-from common import nec
-from common.nec import NetworkEvent
+from gajim.common import ged
+from gajim.common import nec
+from gajim.common.nec import NetworkEvent
-from common.jingle import ConnectionJingle
+from gajim.common.jingle import ConnectionJingle
import logging
log = logging.getLogger('gajim.c.connection_handlers')
@@ -77,7 +77,7 @@ PEP_CONFIG = 'pep_config'
HAS_IDLE = True
try:
# import idle
- import common.sleepy
+ from gajim.common import sleepy
except Exception:
log.debug(_('Unable to load idle module'))
HAS_IDLE = False
@@ -113,7 +113,7 @@ class ConnectionDisco:
id_ = self.connection.getAnID()
iq.setID(id_)
# Wait the answer during 30 secondes
- self.awaiting_timeouts[gajim.idlequeue.current_time() + 30] = (id_,
+ self.awaiting_timeouts[app.idlequeue.current_time() + 30] = (id_,
_('Registration information for transport %s has not arrived in '
'time') % agent)
self.connection.SendAndCallForResponse(iq, self._ReceivedRegInfo,
@@ -121,7 +121,7 @@ class ConnectionDisco:
def _agent_registered_cb(self, con, resp, agent):
if resp.getType() == 'result':
- gajim.nec.push_incoming_event(InformationEvent(None, conn=self,
+ app.nec.push_incoming_event(InformationEvent(None, conn=self,
level='info', pri_txt=_('Registration succeeded'), sec_txt=_(
'Registration with agent %s succeeded') % agent))
self.request_subscription(agent, auto_auth=True)
@@ -131,7 +131,7 @@ class ConnectionDisco:
p = self.add_sha(p)
self.connection.send(p)
if resp.getType() == 'error':
- gajim.nec.push_incoming_event(InformationEvent(None, conn=self,
+ app.nec.push_incoming_event(InformationEvent(None, conn=self,
level='error', pri_txt=_('Registration failed'), sec_txt=_(
'Registration with agent %(agent)s failed with error %(error)s:'
' %(error_msg)s') % {'agent': agent, 'error': resp.getError(),
@@ -183,7 +183,7 @@ class ConnectionDisco:
iq = nbxmpp.Iq(to=frm, typ='result', queryNS=nbxmpp.NS_DISCO, frm=to)
iq.setAttr('id', id_)
query = iq.setTag('query')
- query.setAttr('node', 'http://gajim.org#' + gajim.version.split('-', 1)[
+ query.setAttr('node', 'http://gajim.org#' + app.version.split('-', 1)[
0])
for f in (nbxmpp.NS_BYTESTREAM, nbxmpp.NS_SI, nbxmpp.NS_FILE,
nbxmpp.NS_COMMANDS, nbxmpp.NS_JINGLE_FILE_TRANSFER_5,
@@ -198,12 +198,12 @@ class ConnectionDisco:
def _DiscoverItemsErrorCB(self, con, iq_obj):
log.debug('DiscoverItemsErrorCB')
- gajim.nec.push_incoming_event(AgentItemsErrorReceivedEvent(None,
+ app.nec.push_incoming_event(AgentItemsErrorReceivedEvent(None,
conn=self, stanza=iq_obj))
def _DiscoverItemsCB(self, con, iq_obj):
log.debug('DiscoverItemsCB')
- gajim.nec.push_incoming_event(AgentItemsReceivedEvent(None, conn=self,
+ app.nec.push_incoming_event(AgentItemsReceivedEvent(None, conn=self,
stanza=iq_obj))
def _DiscoverItemsGetCB(self, con, iq_obj):
@@ -241,13 +241,13 @@ class ConnectionDisco:
q = iq.setQuery()
if node:
q.setAttr('node', node)
- q.addChild('identity', attrs=gajim.gajim_identity)
- client_version = 'http://gajim.org#' + gajim.caps_hash[self.name]
+ q.addChild('identity', attrs=app.gajim_identity)
+ client_version = 'http://gajim.org#' + app.caps_hash[self.name]
if node in (None, client_version):
- for f in gajim.gajim_common_features:
+ for f in app.gajim_common_features:
q.addChild('feature', attrs={'var': f})
- for f in gajim.gajim_optional_features[self.name]:
+ for f in app.gajim_optional_features[self.name]:
q.addChild('feature', attrs={'var': f})
if q.getChildren():
@@ -256,14 +256,14 @@ class ConnectionDisco:
def _DiscoverInfoErrorCB(self, con, iq_obj):
log.debug('DiscoverInfoErrorCB')
- gajim.nec.push_incoming_event(AgentInfoErrorReceivedEvent(None,
+ app.nec.push_incoming_event(AgentInfoErrorReceivedEvent(None,
conn=self, stanza=iq_obj))
def _DiscoverInfoCB(self, con, iq_obj):
log.debug('DiscoverInfoCB')
if not self.connection or self.connected < 2:
return
- gajim.nec.push_incoming_event(AgentInfoReceivedEvent(None, conn=self,
+ app.nec.push_incoming_event(AgentInfoReceivedEvent(None, conn=self,
stanza=iq_obj))
class ConnectionVcard:
@@ -286,7 +286,7 @@ class ConnectionVcard:
c = p.setTag('c', namespace=nbxmpp.NS_CAPS)
c.setAttr('hash', 'sha-1')
c.setAttr('node', 'http://gajim.org')
- c.setAttr('ver', gajim.caps_hash[self.name])
+ c.setAttr('ver', app.caps_hash[self.name])
return p
def _node_to_dict(self, node):
@@ -308,9 +308,9 @@ class ConnectionVcard:
return dict_
def _save_vcard_to_hd(self, full_jid, card):
- jid, nick = gajim.get_room_and_nick_from_fjid(full_jid)
+ jid, nick = app.get_room_and_nick_from_fjid(full_jid)
puny_jid = helpers.sanitize_filename(jid)
- path = os.path.join(gajim.VCARD_PATH, puny_jid)
+ path = os.path.join(app.VCARD_PATH, puny_jid)
if jid in self.room_jids or os.path.isdir(path):
if not nick:
return
@@ -321,7 +321,7 @@ class ConnectionVcard:
if not os.path.isdir(path):
os.mkdir(path, 0o700)
puny_nick = helpers.sanitize_filename(nick)
- path_to_file = os.path.join(gajim.VCARD_PATH, puny_jid, puny_nick)
+ path_to_file = os.path.join(app.VCARD_PATH, puny_jid, puny_nick)
else:
path_to_file = path
try:
@@ -329,7 +329,7 @@ class ConnectionVcard:
fil.write(str(card))
fil.close()
except IOError as e:
- gajim.nec.push_incoming_event(InformationEvent(None, conn=self,
+ app.nec.push_incoming_event(InformationEvent(None, conn=self,
level='error', pri_txt=_('Disk Write Error'), sec_txt=str(e)))
def get_cached_vcard(self, fjid, is_fake_jid=False):
@@ -338,13 +338,13 @@ class ConnectionVcard:
Return {} if vcard was too old.
Return None if we don't have cached vcard.
"""
- jid, nick = gajim.get_room_and_nick_from_fjid(fjid)
+ jid, nick = app.get_room_and_nick_from_fjid(fjid)
puny_jid = helpers.sanitize_filename(jid)
if is_fake_jid:
puny_nick = helpers.sanitize_filename(nick)
- path_to_file = os.path.join(gajim.VCARD_PATH, puny_jid, puny_nick)
+ path_to_file = os.path.join(app.VCARD_PATH, puny_jid, puny_nick)
else:
- path_to_file = os.path.join(gajim.VCARD_PATH, puny_jid)
+ path_to_file = os.path.join(app.VCARD_PATH, puny_jid)
if not os.path.isfile(path_to_file):
return None
# We have the vcard cached
@@ -368,7 +368,7 @@ class ConnectionVcard:
# user change his vcard so don't use the cached one
return {}
vcard['jid'] = jid
- vcard['resource'] = gajim.get_resource_from_jid(fjid)
+ vcard['resource'] = app.get_resource_from_jid(fjid)
return vcard
def request_vcard(self, jid=None, groupchat_jid=None):
@@ -390,10 +390,10 @@ class ConnectionVcard:
iq.setID(id_)
j = jid
if not j:
- j = gajim.get_jid_from_account(self.name)
+ j = app.get_jid_from_account(self.name)
self.awaiting_answers[id_] = (VCARD_ARRIVED, j, groupchat_jid)
if groupchat_jid:
- room_jid = gajim.get_room_and_nick_from_fjid(groupchat_jid)[0]
+ room_jid = app.get_room_and_nick_from_fjid(groupchat_jid)[0]
if not room_jid in self.room_jids:
self.room_jids.append(room_jid)
self.groupchat_jids[id_] = groupchat_jid
@@ -423,24 +423,24 @@ class ConnectionVcard:
iq.setID(id_)
self.connection.send(iq)
- our_jid = gajim.get_jid_from_account(self.name)
+ our_jid = app.get_jid_from_account(self.name)
# Add the sha of the avatar
if 'PHOTO' in vcard and isinstance(vcard['PHOTO'], dict) and \
'BINVAL' in vcard['PHOTO']:
photo = vcard['PHOTO']['BINVAL']
photo_decoded = base64.b64decode(photo.encode('utf-8'))
- gajim.interface.save_avatar_files(our_jid, photo_decoded)
+ app.interface.save_avatar_files(our_jid, photo_decoded)
avatar_sha = hashlib.sha1(photo_decoded).hexdigest()
iq2.getTag('PHOTO').setTagData('SHA', avatar_sha)
else:
- gajim.interface.remove_avatar_files(our_jid)
+ app.interface.remove_avatar_files(our_jid)
self.awaiting_answers[id_] = (VCARD_PUBLISHED, iq2)
def _IqCB(self, con, iq_obj):
id_ = iq_obj.getID()
- gajim.nec.push_incoming_event(NetworkEvent('raw-iq-received',
+ app.nec.push_incoming_event(NetworkEvent('raw-iq-received',
conn=self, stanza=iq_obj))
# Check if we were waiting a timeout for this id
@@ -466,26 +466,26 @@ class ConnectionVcard:
new_sha = ''
# Save it to file
- our_jid = gajim.get_jid_from_account(self.name)
+ our_jid = app.get_jid_from_account(self.name)
self._save_vcard_to_hd(our_jid, vcard_iq)
# Send new presence if sha changed and we are not invisible
- if self.vcard_sha != new_sha and gajim.SHOW_LIST[
+ if self.vcard_sha != new_sha and app.SHOW_LIST[
self.connected] != 'invisible':
if not self.connection or self.connected < 2:
del self.awaiting_answers[id_]
return
self.vcard_sha = new_sha
- sshow = helpers.get_xmpp_show(gajim.SHOW_LIST[
+ sshow = helpers.get_xmpp_show(app.SHOW_LIST[
self.connected])
p = nbxmpp.Presence(typ=None, priority=self.priority,
show=sshow, status=self.status)
p = self.add_sha(p)
self.connection.send(p)
- gajim.nec.push_incoming_event(VcardPublishedEvent(None,
+ app.nec.push_incoming_event(VcardPublishedEvent(None,
conn=self))
elif iq_obj.getType() == 'error':
- gajim.nec.push_incoming_event(VcardNotPublishedEvent(None,
+ app.nec.push_incoming_event(VcardNotPublishedEvent(None,
conn=self))
del self.awaiting_answers[id_]
elif self.awaiting_answers[id_][0] == VCARD_ARRIVED:
@@ -497,7 +497,7 @@ class ConnectionVcard:
if groupchat_jid:
# We do as if it comes from the fake_jid
frm = groupchat_jid
- our_jid = gajim.get_jid_from_account(self.name)
+ our_jid = app.get_jid_from_account(self.name)
if (not iq_obj.getTag('vCard') and iq_obj.getType() == 'result') or\
iq_obj.getType() == 'error':
if id_ in self.groupchat_jids:
@@ -506,21 +506,21 @@ class ConnectionVcard:
if frm:
# Write an empty file
self._save_vcard_to_hd(frm, '')
- jid, resource = gajim.get_room_and_nick_from_fjid(frm)
+ jid, resource = app.get_room_and_nick_from_fjid(frm)
vcard = {'jid': jid, 'resource': resource}
- gajim.nec.push_incoming_event(VcardReceivedEvent(None,
+ app.nec.push_incoming_event(VcardReceivedEvent(None,
conn=self, vcard_dict=vcard))
del self.awaiting_answers[id_]
elif self.awaiting_answers[id_][0] == AGENT_REMOVED:
jid = self.awaiting_answers[id_][1]
- gajim.nec.push_incoming_event(AgentRemovedEvent(None, conn=self,
+ app.nec.push_incoming_event(AgentRemovedEvent(None, conn=self,
agent=jid))
del self.awaiting_answers[id_]
elif self.awaiting_answers[id_][0] == METACONTACTS_ARRIVED:
if not self.connection:
return
if iq_obj.getType() == 'result':
- gajim.nec.push_incoming_event(MetacontactsReceivedEvent(None,
+ app.nec.push_incoming_event(MetacontactsReceivedEvent(None,
conn=self, stanza=iq_obj))
else:
if iq_obj.getErrorCode() not in ('403', '406', '404'):
@@ -548,19 +548,19 @@ class ConnectionVcard:
elif self.awaiting_answers[id_][0] == ROSTER_ARRIVED:
if iq_obj.getType() == 'result':
if not iq_obj.getTag('query'):
- account_jid = gajim.get_jid_from_account(self.name)
- roster_data = gajim.logger.get_roster(account_jid)
+ account_jid = app.get_jid_from_account(self.name)
+ roster_data = app.logger.get_roster(account_jid)
roster = self.connection.getRoster(force=True)
roster.setRaw(roster_data)
self._getRoster()
elif iq_obj.getType() == 'error':
self.roster_supported = False
- self.discoverItems(gajim.config.get_per('accounts', self.name,
+ self.discoverItems(app.config.get_per('accounts', self.name,
'hostname'), id_prefix='Gajim_')
- if gajim.config.get_per('accounts', self.name,
+ if app.config.get_per('accounts', self.name,
'use_ft_proxies'):
self.discover_ft_proxies()
- gajim.nec.push_incoming_event(RosterReceivedEvent(None,
+ app.nec.push_incoming_event(RosterReceivedEvent(None,
conn=self))
GLib.timeout_add_seconds(10, self.discover_servers)
del self.awaiting_answers[id_]
@@ -601,7 +601,7 @@ class ConnectionVcard:
form_tag = conf.getTag('x', namespace=nbxmpp.NS_DATA)
if form_tag:
form = dataforms.ExtendForm(node=form_tag)
- gajim.nec.push_incoming_event(PEPConfigReceivedEvent(None,
+ app.nec.push_incoming_event(PEPConfigReceivedEvent(None,
conn=self, node=node, form=form))
def _vCardCB(self, con, vc):
@@ -614,15 +614,15 @@ class ConnectionVcard:
return
id_ = vc.getID()
frm_iq = vc.getFrom()
- our_jid = gajim.get_jid_from_account(self.name)
+ our_jid = app.get_jid_from_account(self.name)
resource = ''
if id_ in self.groupchat_jids:
who = self.groupchat_jids[id_]
- frm, resource = gajim.get_room_and_nick_from_fjid(who)
+ frm, resource = app.get_room_and_nick_from_fjid(who)
del self.groupchat_jids[id_]
elif frm_iq:
who = helpers.get_full_jid_from_iq(vc)
- frm, resource = gajim.get_room_and_nick_from_fjid(who)
+ frm, resource = app.get_room_and_nick_from_fjid(who)
else:
who = frm = our_jid
card = vc.getChildren()[0]
@@ -648,7 +648,7 @@ class ConnectionVcard:
# for dbus notifications
puny_jid = helpers.sanitize_filename(frm)
puny_nick = None
- begin_path = os.path.join(gajim.AVATAR_PATH, puny_jid)
+ begin_path = os.path.join(app.AVATAR_PATH, puny_jid)
frm_jid = frm
if frm in self.room_jids:
puny_nick = helpers.sanitize_filename(resource)
@@ -660,11 +660,11 @@ class ConnectionVcard:
if photo_decoded:
avatar_file = begin_path + '_notif_size_colored.png'
if frm_jid == our_jid and avatar_sha != self.vcard_sha:
- gajim.interface.save_avatar_files(frm, photo_decoded, puny_nick)
+ app.interface.save_avatar_files(frm, photo_decoded, puny_nick)
elif frm_jid != our_jid and (not os.path.exists(avatar_file) or \
frm_jid not in self.vcard_shas or \
avatar_sha != self.vcard_shas[frm_jid]):
- gajim.interface.save_avatar_files(frm, photo_decoded, puny_nick)
+ app.interface.save_avatar_files(frm, photo_decoded, puny_nick)
if avatar_sha:
self.vcard_shas[frm_jid] = avatar_sha
elif frm in self.vcard_shas:
@@ -678,7 +678,7 @@ class ConnectionVcard:
vcard['jid'] = frm
vcard['resource'] = resource
- gajim.nec.push_incoming_event(VcardReceivedEvent(None, conn=self,
+ app.nec.push_incoming_event(VcardReceivedEvent(None, conn=self,
vcard_dict=vcard))
if frm_jid == our_jid:
# we re-send our presence with sha if has changed and if we are
@@ -686,11 +686,11 @@ class ConnectionVcard:
if self.vcard_sha == avatar_sha:
return
self.vcard_sha = avatar_sha
- if gajim.SHOW_LIST[self.connected] == 'invisible':
+ if app.SHOW_LIST[self.connected] == 'invisible':
return
if not self.connection:
return
- sshow = helpers.get_xmpp_show(gajim.SHOW_LIST[self.connected])
+ sshow = helpers.get_xmpp_show(app.SHOW_LIST[self.connected])
p = nbxmpp.Presence(typ=None, priority=self.priority,
show=sshow, status=self.status)
p = self.add_sha(p)
@@ -733,7 +733,7 @@ class ConnectionPEP(object):
def _pubsubEventCB(self, xmpp_dispatcher, msg):
''' Called when we receive with pubsub event. '''
- gajim.nec.push_incoming_event(PEPReceivedEvent(None, conn=self,
+ app.nec.push_incoming_event(PEPReceivedEvent(None, conn=self,
stanza=msg))
def send_activity(self, activity, subactivity=None, message=None):
@@ -884,35 +884,35 @@ class ConnectionHandlersBase:
# We decrypt GPG messages one after the other. Keep queue in mem
self.gpg_messages_to_decrypt = []
- gajim.ged.register_event_handler('iq-error-received', ged.CORE,
+ app.ged.register_event_handler('iq-error-received', ged.CORE,
self._nec_iq_error_received)
- gajim.ged.register_event_handler('presence-received', ged.CORE,
+ app.ged.register_event_handler('presence-received', ged.CORE,
self._nec_presence_received)
- gajim.ged.register_event_handler('gc-presence-received', ged.CORE,
+ app.ged.register_event_handler('gc-presence-received', ged.CORE,
self._nec_gc_presence_received)
- gajim.ged.register_event_handler('message-received', ged.CORE,
+ app.ged.register_event_handler('message-received', ged.CORE,
self._nec_message_received)
- gajim.ged.register_event_handler('mam-message-received', ged.CORE,
+ app.ged.register_event_handler('mam-message-received', ged.CORE,
self._nec_message_received)
- gajim.ged.register_event_handler('decrypted-message-received', ged.CORE,
+ app.ged.register_event_handler('decrypted-message-received', ged.CORE,
self._nec_decrypted_message_received)
- gajim.ged.register_event_handler('gc-message-received', ged.CORE,
+ app.ged.register_event_handler('gc-message-received', ged.CORE,
self._nec_gc_message_received)
def cleanup(self):
- gajim.ged.remove_event_handler('iq-error-received', ged.CORE,
+ app.ged.remove_event_handler('iq-error-received', ged.CORE,
self._nec_iq_error_received)
- gajim.ged.remove_event_handler('presence-received', ged.CORE,
+ app.ged.remove_event_handler('presence-received', ged.CORE,
self._nec_presence_received)
- gajim.ged.remove_event_handler('gc-presence-received', ged.CORE,
+ app.ged.remove_event_handler('gc-presence-received', ged.CORE,
self._nec_gc_presence_received)
- gajim.ged.remove_event_handler('message-received', ged.CORE,
+ app.ged.remove_event_handler('message-received', ged.CORE,
self._nec_message_received)
- gajim.ged.remove_event_handler('mam-message-received', ged.CORE,
+ app.ged.remove_event_handler('mam-message-received', ged.CORE,
self._nec_message_received)
- gajim.ged.remove_event_handler('decrypted-message-received', ged.CORE,
+ app.ged.remove_event_handler('decrypted-message-received', ged.CORE,
self._nec_decrypted_message_received)
- gajim.ged.remove_event_handler('gc-message-received', ged.CORE,
+ app.ged.remove_event_handler('gc-message-received', ged.CORE,
self._nec_gc_message_received)
def _nec_iq_error_received(self, obj):
@@ -933,11 +933,11 @@ class ConnectionHandlersBase:
obj.contact_list = []
- highest = gajim.contacts.get_contact_with_highest_priority(account, jid)
+ highest = app.contacts.get_contact_with_highest_priority(account, jid)
obj.was_highest = (highest and highest.resource == resource)
# Update contact
- obj.contact_list = gajim.contacts.get_contacts(account, jid)
+ obj.contact_list = app.contacts.get_contacts(account, jid)
obj.contact = None
resources = []
for c in obj.contact_list:
@@ -972,7 +972,7 @@ class ConnectionHandlersBase:
obj.contact.idle_time == obj.idle_time: # no change
return True
else:
- obj.contact = gajim.contacts.get_first_contact_from_jid(account,
+ obj.contact = app.contacts.get_first_contact_from_jid(account,
jid)
if not obj.contact:
# Presence of another resource of our jid
@@ -982,44 +982,44 @@ class ConnectionHandlersBase:
# Ignore offline presence of unknown self resource
if obj.new_show < 2:
return
- obj.contact = gajim.contacts.create_self_contact(jid=jid,
+ obj.contact = app.contacts.create_self_contact(jid=jid,
account=account, show=obj.show, status=obj.status,
priority=obj.prio, keyID=obj.keyID,
resource=obj.resource)
- gajim.contacts.add_contact(account, obj.contact)
+ app.contacts.add_contact(account, obj.contact)
obj.contact_list.append(obj.contact)
elif obj.contact.show in statuss:
obj.old_show = statuss.index(obj.contact.show)
if (resources != [''] and (len(obj.contact_list) != 1 or \
obj.contact_list[0].show not in ('not in roster', 'offline'))) and \
- not gajim.jid_is_transport(jid):
+ not app.jid_is_transport(jid):
# Another resource of an existing contact connected
obj.old_show = 0
- obj.contact = gajim.contacts.copy_contact(obj.contact)
+ obj.contact = app.contacts.copy_contact(obj.contact)
obj.contact_list.append(obj.contact)
obj.contact.resource = resource
obj.need_add_in_roster = True
- if not gajim.jid_is_transport(jid) and len(obj.contact_list) == 1:
+ if not app.jid_is_transport(jid) and len(obj.contact_list) == 1:
# It's not an agent
if obj.old_show == 0 and obj.new_show > 1:
- if not jid in gajim.newly_added[account]:
- gajim.newly_added[account].append(jid)
- if jid in gajim.to_be_removed[account]:
- gajim.to_be_removed[account].remove(jid)
+ if not jid in app.newly_added[account]:
+ app.newly_added[account].append(jid)
+ if jid in app.to_be_removed[account]:
+ app.to_be_removed[account].remove(jid)
elif obj.old_show > 1 and obj.new_show == 0 and \
obj.conn.connected > 1:
- if not jid in gajim.to_be_removed[account]:
- gajim.to_be_removed[account].append(jid)
- if jid in gajim.newly_added[account]:
- gajim.newly_added[account].remove(jid)
+ if not jid in app.to_be_removed[account]:
+ app.to_be_removed[account].append(jid)
+ if jid in app.newly_added[account]:
+ app.newly_added[account].remove(jid)
obj.need_redraw = True
obj.contact.show = obj.show
obj.contact.status = obj.status
obj.contact.priority = obj.prio
- attached_keys = gajim.config.get_per('accounts', account,
+ attached_keys = app.config.get_per('accounts', account,
'attached_gpg_keys').split()
if jid in attached_keys:
obj.contact.keyID = attached_keys[attached_keys.index(jid) + 1]
@@ -1029,7 +1029,7 @@ class ConnectionHandlersBase:
obj.contact.contact_nickname = obj.contact_nickname
obj.contact.idle_time = obj.idle_time
- if gajim.jid_is_transport(jid):
+ if app.jid_is_transport(jid):
return
# It isn't an agent
@@ -1060,11 +1060,11 @@ class ConnectionHandlersBase:
if sess.enable_encryption:
sess.terminate_e2e()
- if gajim.config.get('log_contact_status_changes') and \
- gajim.config.should_log(self.name, obj.jid):
- show = gajim.logger.convert_show_values_to_db_api_values(obj.show)
+ if app.config.get('log_contact_status_changes') and \
+ app.config.should_log(self.name, obj.jid):
+ show = app.logger.convert_show_values_to_db_api_values(obj.show)
if show is not None:
- gajim.logger.insert_into_logs(nbxmpp.JID(obj.jid).getStripped(),
+ app.logger.insert_into_logs(nbxmpp.JID(obj.jid).getStripped(),
time_time(),
KindConstant.STATUS,
message=obj.status,
@@ -1083,17 +1083,17 @@ class ConnectionHandlersBase:
if obj.conn.name != self.name:
return
- gajim.plugin_manager.extension_point(
+ app.plugin_manager.extension_point(
'decrypt', self, obj, self._on_message_received)
if not obj.encrypted:
self._on_message_received(obj)
def _on_message_received(self, obj):
if isinstance(obj, MessageReceivedEvent):
- gajim.nec.push_incoming_event(
+ app.nec.push_incoming_event(
DecryptedMessageReceivedEvent(None, conn=self, msg_obj=obj))
else:
- gajim.nec.push_incoming_event(
+ app.nec.push_incoming_event(
MamDecryptedMessageReceivedEvent(None, **vars(obj)))
def _nec_decrypted_message_received(self, obj):
@@ -1102,9 +1102,9 @@ class ConnectionHandlersBase:
# Receipt requested
# TODO: We shouldn't answer if we're invisible!
- contact = gajim.contacts.get_contact(self.name, obj.jid)
+ contact = app.contacts.get_contact(self.name, obj.jid)
nick = obj.resource
- gc_contact = gajim.contacts.get_gc_contact(self.name, obj.jid, nick)
+ gc_contact = app.contacts.get_gc_contact(self.name, obj.jid, nick)
if obj.sent:
jid_to = obj.stanza.getFrom()
else:
@@ -1114,12 +1114,12 @@ class ConnectionHandlersBase:
reply = True
else:
fjid_to = helpers.parse_jid(str(jid_to))
- jid_to = gajim.get_jid_without_resource(fjid_to)
- if jid_to == gajim.get_jid_from_account(self.name):
+ jid_to = app.get_jid_without_resource(fjid_to)
+ if jid_to == app.get_jid_from_account(self.name):
reply = True
- if obj.jid != gajim.get_jid_from_account(self.name):
- if obj.receipt_request_tag and gajim.config.get_per('accounts',
+ if obj.jid != app.get_jid_from_account(self.name):
+ if obj.receipt_request_tag and app.config.get_per('accounts',
self.name, 'answer_receipts') and ((contact and contact.sub \
not in ('to', 'none')) or gc_contact) and obj.mtype != 'error' and \
reply:
@@ -1132,14 +1132,14 @@ class ConnectionHandlersBase:
self.connection.send(receipt)
# We got our message's receipt
- if obj.receipt_received_tag and gajim.config.get_per('accounts',
+ if obj.receipt_received_tag and app.config.get_per('accounts',
self.name, 'request_receipt'):
ctrl = obj.session.control
if not ctrl:
# Received doesn't have the element
# or control is not bound to session?
# --> search for it
- ctrl = gajim.interface.msg_win_mgr.search_control(obj.jid,
+ ctrl = app.interface.msg_win_mgr.search_control(obj.jid,
obj.conn.name, obj.resource)
if ctrl:
@@ -1156,18 +1156,18 @@ class ConnectionHandlersBase:
obj.session, obj.fjid, obj.timestamp)
return True
elif obj.mtype == 'groupchat':
- gajim.nec.push_incoming_event(GcMessageReceivedEvent(None,
+ app.nec.push_incoming_event(GcMessageReceivedEvent(None,
conn=self, msg_obj=obj))
return True
def _nec_gc_message_received(self, obj):
- if gajim.config.should_log(obj.conn.name, obj.jid) and not \
+ if app.config.should_log(obj.conn.name, obj.jid) and not \
obj.timestamp < obj.conn.last_history_time[obj.jid] and obj.msgtxt and \
obj.nick:
# if not obj.nick, it means message comes from room itself
# usually it hold description and can be send at each connection
# so don't store it in logs
- gajim.logger.insert_into_logs(obj.jid,
+ app.logger.insert_into_logs(obj.jid,
obj.timestamp,
KindConstant.GC_MSG,
message=obj.msgtxt,
@@ -1189,13 +1189,13 @@ class ConnectionHandlersBase:
subject = msg.getSubject()
if session.is_loggable():
- gajim.logger.insert_into_logs(nbxmpp.JID(frm).getStripped(),
+ app.logger.insert_into_logs(nbxmpp.JID(frm).getStripped(),
tim,
KindConstant.ERROR,
message=error_msg,
subject=subject)
- gajim.nec.push_incoming_event(MessageErrorEvent(None, conn=self,
+ app.nec.push_incoming_event(MessageErrorEvent(None, conn=self,
fjid=frm, error_code=msg.getErrorCode(), error_msg=error_msg,
msg=msgtxt, time_=tim, session=session, stanza=msg))
@@ -1203,8 +1203,8 @@ class ConnectionHandlersBase:
"""
Get all sessions for the given full jid
"""
- if not gajim.interface.is_pm_contact(jid, self.name):
- jid = gajim.get_jid_without_resource(jid)
+ if not app.interface.is_pm_contact(jid, self.name):
+ jid = app.get_jid_without_resource(jid)
try:
return list(self.sessions[jid].values())
@@ -1219,9 +1219,9 @@ class ConnectionHandlersBase:
pm = True
jid = fjid
- if not gajim.interface.is_pm_contact(fjid, self.name):
+ if not app.interface.is_pm_contact(fjid, self.name):
pm = False
- jid = gajim.get_jid_without_resource(fjid)
+ jid = app.get_jid_without_resource(fjid)
session = self.find_session(jid, thread_id)
@@ -1254,7 +1254,7 @@ class ConnectionHandlersBase:
def delete_session(self, jid, thread_id):
if not jid in self.sessions:
- jid = gajim.get_jid_without_resource(jid)
+ jid = app.get_jid_without_resource(jid)
if not jid in self.sessions:
return
@@ -1276,7 +1276,7 @@ class ConnectionHandlersBase:
# filter out everything except the default session type
chat_sessions = [s for s in idless if isinstance(s,
- gajim.default_session_type)]
+ app.default_session_type)]
if chat_sessions:
# return the session that we last sent a message in
@@ -1305,7 +1305,7 @@ class ConnectionHandlersBase:
# filter out everything except the default session type
chat_sessions = [s for s in sessions if isinstance(s,
- gajim.default_session_type)]
+ app.default_session_type)]
orphaned = [s for s in chat_sessions if not s.control]
@@ -1324,14 +1324,14 @@ class ConnectionHandlersBase:
type_ should be 'chat' or 'pm'.
"""
if not cls:
- cls = gajim.default_session_type
+ cls = app.default_session_type
sess = cls(self, nbxmpp.JID(jid), thread_id, type_)
# determine if this session is a pm session
# if not, discard the resource so that all sessions are stored bare
if not type_ == 'pm':
- jid = gajim.get_jid_without_resource(jid)
+ jid = app.get_jid_without_resource(jid)
if not jid in self.sessions:
self.sessions[jid] = {}
@@ -1356,7 +1356,7 @@ ConnectionHandlersBase, ConnectionJingle, ConnectionIBBytestream):
pubsub_connection=self)
# Handle presences BEFORE caps
- gajim.nec.register_incoming_event(PresenceReceivedEvent)
+ app.nec.register_incoming_event(PresenceReceivedEvent)
ConnectionCaps.__init__(self, account=self.name,
capscache=capscache.capscache,
@@ -1391,62 +1391,62 @@ ConnectionHandlersBase, ConnectionJingle, ConnectionIBBytestream):
self.gmail_last_tid = None
self.gmail_last_time = None
- gajim.nec.register_incoming_event(PrivateStorageBookmarksReceivedEvent)
- gajim.nec.register_incoming_event(BookmarksReceivedEvent)
- gajim.nec.register_incoming_event(
+ app.nec.register_incoming_event(PrivateStorageBookmarksReceivedEvent)
+ app.nec.register_incoming_event(BookmarksReceivedEvent)
+ app.nec.register_incoming_event(
PrivateStorageRosternotesReceivedEvent)
- gajim.nec.register_incoming_event(RosternotesReceivedEvent)
- gajim.nec.register_incoming_event(StreamConflictReceivedEvent)
- gajim.nec.register_incoming_event(StreamOtherHostReceivedEvent)
- gajim.nec.register_incoming_event(MessageReceivedEvent)
- gajim.nec.register_incoming_event(ArchivingErrorReceivedEvent)
- gajim.nec.register_incoming_event(
+ app.nec.register_incoming_event(RosternotesReceivedEvent)
+ app.nec.register_incoming_event(StreamConflictReceivedEvent)
+ app.nec.register_incoming_event(StreamOtherHostReceivedEvent)
+ app.nec.register_incoming_event(MessageReceivedEvent)
+ app.nec.register_incoming_event(ArchivingErrorReceivedEvent)
+ app.nec.register_incoming_event(
Archiving313PreferencesChangedReceivedEvent)
- gajim.nec.register_incoming_event(
+ app.nec.register_incoming_event(
ArchivingFinishedLegacyReceivedEvent)
- gajim.nec.register_incoming_event(
+ app.nec.register_incoming_event(
ArchivingFinishedReceivedEvent)
- gajim.nec.register_incoming_event(NotificationEvent)
+ app.nec.register_incoming_event(NotificationEvent)
- gajim.ged.register_event_handler('http-auth-received', ged.CORE,
+ app.ged.register_event_handler('http-auth-received', ged.CORE,
self._nec_http_auth_received)
- gajim.ged.register_event_handler('version-request-received', ged.CORE,
+ app.ged.register_event_handler('version-request-received', ged.CORE,
self._nec_version_request_received)
- gajim.ged.register_event_handler('last-request-received', ged.CORE,
+ app.ged.register_event_handler('last-request-received', ged.CORE,
self._nec_last_request_received)
- gajim.ged.register_event_handler('time-request-received', ged.CORE,
+ app.ged.register_event_handler('time-request-received', ged.CORE,
self._nec_time_request_received)
- gajim.ged.register_event_handler('time-revised-request-received',
+ app.ged.register_event_handler('time-revised-request-received',
ged.CORE, self._nec_time_revised_request_received)
- gajim.ged.register_event_handler('roster-set-received',
+ app.ged.register_event_handler('roster-set-received',
ged.CORE, self._nec_roster_set_received)
- gajim.ged.register_event_handler('private-storage-bookmarks-received',
+ app.ged.register_event_handler('private-storage-bookmarks-received',
ged.CORE, self._nec_private_storate_bookmarks_received)
- gajim.ged.register_event_handler('private-storage-rosternotes-received',
+ app.ged.register_event_handler('private-storage-rosternotes-received',
ged.CORE, self._nec_private_storate_rosternotes_received)
- gajim.ged.register_event_handler('roster-received', ged.CORE,
+ app.ged.register_event_handler('roster-received', ged.CORE,
self._nec_roster_received)
- gajim.ged.register_event_handler('iq-error-received', ged.CORE,
+ app.ged.register_event_handler('iq-error-received', ged.CORE,
self._nec_iq_error_received)
- gajim.ged.register_event_handler('gmail-new-mail-received', ged.CORE,
+ app.ged.register_event_handler('gmail-new-mail-received', ged.CORE,
self._nec_gmail_new_mail_received)
- gajim.ged.register_event_handler('ping-received', ged.CORE,
+ app.ged.register_event_handler('ping-received', ged.CORE,
self._nec_ping_received)
- gajim.ged.register_event_handler('subscribe-presence-received',
+ app.ged.register_event_handler('subscribe-presence-received',
ged.CORE, self._nec_subscribe_presence_received)
- gajim.ged.register_event_handler('subscribed-presence-received',
+ app.ged.register_event_handler('subscribed-presence-received',
ged.CORE, self._nec_subscribed_presence_received)
- gajim.ged.register_event_handler('subscribed-presence-received',
+ app.ged.register_event_handler('subscribed-presence-received',
ged.POSTGUI, self._nec_subscribed_presence_received_end)
- gajim.ged.register_event_handler('unsubscribed-presence-received',
+ app.ged.register_event_handler('unsubscribed-presence-received',
ged.CORE, self._nec_unsubscribed_presence_received)
- gajim.ged.register_event_handler('unsubscribed-presence-received',
+ app.ged.register_event_handler('unsubscribed-presence-received',
ged.POSTGUI, self._nec_unsubscribed_presence_received_end)
- gajim.ged.register_event_handler('agent-removed', ged.CORE,
+ app.ged.register_event_handler('agent-removed', ged.CORE,
self._nec_agent_removed)
- gajim.ged.register_event_handler('stream-other-host-received', ged.CORE,
+ app.ged.register_event_handler('stream-other-host-received', ged.CORE,
self._nec_stream_other_host_received)
- gajim.ged.register_event_handler('blocking', ged.CORE,
+ app.ged.register_event_handler('blocking', ged.CORE,
self._nec_blocking)
def cleanup(self):
@@ -1454,45 +1454,45 @@ ConnectionHandlersBase, ConnectionJingle, ConnectionIBBytestream):
ConnectionCaps.cleanup(self)
ConnectionArchive313.cleanup(self)
ConnectionPubSub.cleanup(self)
- gajim.ged.remove_event_handler('http-auth-received', ged.CORE,
+ app.ged.remove_event_handler('http-auth-received', ged.CORE,
self._nec_http_auth_received)
- gajim.ged.remove_event_handler('version-request-received', ged.CORE,
+ app.ged.remove_event_handler('version-request-received', ged.CORE,
self._nec_version_request_received)
- gajim.ged.remove_event_handler('last-request-received', ged.CORE,
+ app.ged.remove_event_handler('last-request-received', ged.CORE,
self._nec_last_request_received)
- gajim.ged.remove_event_handler('time-request-received', ged.CORE,
+ app.ged.remove_event_handler('time-request-received', ged.CORE,
self._nec_time_request_received)
- gajim.ged.remove_event_handler('time-revised-request-received',
+ app.ged.remove_event_handler('time-revised-request-received',
ged.CORE, self._nec_time_revised_request_received)
- gajim.ged.remove_event_handler('roster-set-received',
+ app.ged.remove_event_handler('roster-set-received',
ged.CORE, self._nec_roster_set_received)
- gajim.ged.remove_event_handler('private-storage-bookmarks-received',
+ app.ged.remove_event_handler('private-storage-bookmarks-received',
ged.CORE, self._nec_private_storate_bookmarks_received)
- gajim.ged.remove_event_handler('private-storage-rosternotes-received',
+ app.ged.remove_event_handler('private-storage-rosternotes-received',
ged.CORE, self._nec_private_storate_rosternotes_received)
- gajim.ged.remove_event_handler('roster-received', ged.CORE,
+ app.ged.remove_event_handler('roster-received', ged.CORE,
self._nec_roster_received)
- gajim.ged.remove_event_handler('iq-error-received', ged.CORE,
+ app.ged.remove_event_handler('iq-error-received', ged.CORE,
self._nec_iq_error_received)
- gajim.ged.remove_event_handler('gmail-new-mail-received', ged.CORE,
+ app.ged.remove_event_handler('gmail-new-mail-received', ged.CORE,
self._nec_gmail_new_mail_received)
- gajim.ged.remove_event_handler('ping-received', ged.CORE,
+ app.ged.remove_event_handler('ping-received', ged.CORE,
self._nec_ping_received)
- gajim.ged.remove_event_handler('subscribe-presence-received',
+ app.ged.remove_event_handler('subscribe-presence-received',
ged.CORE, self._nec_subscribe_presence_received)
- gajim.ged.remove_event_handler('subscribed-presence-received',
+ app.ged.remove_event_handler('subscribed-presence-received',
ged.CORE, self._nec_subscribed_presence_received)
- gajim.ged.remove_event_handler('subscribed-presence-received',
+ app.ged.remove_event_handler('subscribed-presence-received',
ged.POSTGUI, self._nec_subscribed_presence_received_end)
- gajim.ged.remove_event_handler('unsubscribed-presence-received',
+ app.ged.remove_event_handler('unsubscribed-presence-received',
ged.CORE, self._nec_unsubscribed_presence_received)
- gajim.ged.remove_event_handler('unsubscribed-presence-received',
+ app.ged.remove_event_handler('unsubscribed-presence-received',
ged.POSTGUI, self._nec_unsubscribed_presence_received_end)
- gajim.ged.remove_event_handler('agent-removed', ged.CORE,
+ app.ged.remove_event_handler('agent-removed', ged.CORE,
self._nec_agent_removed)
- gajim.ged.remove_event_handler('stream-other-host-received', ged.CORE,
+ app.ged.remove_event_handler('stream-other-host-received', ged.CORE,
self._nec_stream_other_host_received)
- gajim.ged.remove_event_handler('blocking', ged.CORE, self._nec_blocking)
+ app.ged.remove_event_handler('blocking', ged.CORE, self._nec_blocking)
def build_http_auth_answer(self, iq_obj, answer):
if not self.connection or self.connected < 2:
@@ -1516,32 +1516,32 @@ ConnectionHandlersBase, ConnectionJingle, ConnectionIBBytestream):
def _HttpAuthCB(self, con, iq_obj):
log.debug('HttpAuthCB')
- gajim.nec.push_incoming_event(HttpAuthReceivedEvent(None, conn=self,
+ app.nec.push_incoming_event(HttpAuthReceivedEvent(None, conn=self,
stanza=iq_obj))
raise nbxmpp.NodeProcessed
def _ErrorCB(self, con, iq_obj):
log.debug('ErrorCB')
- gajim.nec.push_incoming_event(IqErrorReceivedEvent(None, conn=self,
+ app.nec.push_incoming_event(IqErrorReceivedEvent(None, conn=self,
stanza=iq_obj))
def _nec_iq_error_received(self, obj):
if obj.conn.name != self.name:
return
if obj.id_ in self.version_ids:
- gajim.nec.push_incoming_event(VersionResultReceivedEvent(None,
+ app.nec.push_incoming_event(VersionResultReceivedEvent(None,
conn=self, stanza=obj.stanza))
return True
if obj.id_ in self.entity_time_ids:
- gajim.nec.push_incoming_event(TimeResultReceivedEvent(None,
+ app.nec.push_incoming_event(TimeResultReceivedEvent(None,
conn=self, stanza=obj.stanza))
return True
if obj.id_ in self.disco_items_ids:
- gajim.nec.push_incoming_event(AgentItemsErrorReceivedEvent(None,
+ app.nec.push_incoming_event(AgentItemsErrorReceivedEvent(None,
conn=self, stanza=obj.stanza))
return True
if obj.id_ in self.disco_info_ids:
- gajim.nec.push_incoming_event(AgentInfoErrorReceivedEvent(None,
+ app.nec.push_incoming_event(AgentInfoErrorReceivedEvent(None,
conn=self, stanza=obj.stanza))
return True
@@ -1569,7 +1569,7 @@ ConnectionHandlersBase, ConnectionJingle, ConnectionIBBytestream):
Private Data (XEP 048 and 049)
"""
log.debug('PrivateCB')
- gajim.nec.push_incoming_event(PrivateStorageReceivedEvent(None,
+ app.nec.push_incoming_event(PrivateStorageReceivedEvent(None,
conn=self, stanza=iq_obj))
def _SecLabelCB(self, con, iq_obj):
@@ -1605,7 +1605,7 @@ ConnectionHandlersBase, ConnectionJingle, ConnectionIBBytestream):
def _rosterSetCB(self, con, iq_obj):
log.debug('rosterSetCB')
- gajim.nec.push_incoming_event(RosterSetReceivedEvent(None, conn=self,
+ app.nec.push_incoming_event(RosterSetReceivedEvent(None, conn=self,
stanza=iq_obj))
raise nbxmpp.NodeProcessed
@@ -1614,33 +1614,33 @@ ConnectionHandlersBase, ConnectionJingle, ConnectionIBBytestream):
return
for jid in obj.items:
item = obj.items[jid]
- gajim.nec.push_incoming_event(RosterInfoEvent(None, conn=self,
+ app.nec.push_incoming_event(RosterInfoEvent(None, conn=self,
jid=jid, nickname=item['name'], sub=item['sub'],
ask=item['ask'], groups=item['groups']))
- account_jid = gajim.get_jid_from_account(self.name)
- gajim.logger.add_or_update_contact(account_jid, jid, item['name'],
+ account_jid = app.get_jid_from_account(self.name)
+ app.logger.add_or_update_contact(account_jid, jid, item['name'],
item['sub'], item['ask'], item['groups'])
if obj.version:
- gajim.config.set_per('accounts', self.name, 'roster_version',
+ app.config.set_per('accounts', self.name, 'roster_version',
obj.version)
def _VersionCB(self, con, iq_obj):
log.debug('VersionCB')
if not self.connection or self.connected < 2:
return
- gajim.nec.push_incoming_event(VersionRequestEvent(None, conn=self,
+ app.nec.push_incoming_event(VersionRequestEvent(None, conn=self,
stanza=iq_obj))
raise nbxmpp.NodeProcessed
def _nec_version_request_received(self, obj):
if obj.conn.name != self.name:
return
- send_os = gajim.config.get_per('accounts', self.name, 'send_os_info')
+ send_os = app.config.get_per('accounts', self.name, 'send_os_info')
if send_os:
iq_obj = obj.stanza.buildReply('result')
qp = iq_obj.getQuery()
qp.setTagData('name', 'Gajim')
- qp.setTagData('version', gajim.version)
+ qp.setTagData('version', app.version)
qp.setTagData('os', helpers.get_os_info())
else:
iq_obj = obj.stanza.buildReply('error')
@@ -1653,7 +1653,7 @@ ConnectionHandlersBase, ConnectionJingle, ConnectionIBBytestream):
log.debug('LastCB')
if not self.connection or self.connected < 2:
return
- gajim.nec.push_incoming_event(LastRequestEvent(None, conn=self,
+ app.nec.push_incoming_event(LastRequestEvent(None, conn=self,
stanza=iq_obj))
raise nbxmpp.NodeProcessed
@@ -1661,7 +1661,7 @@ ConnectionHandlersBase, ConnectionJingle, ConnectionIBBytestream):
global HAS_IDLE
if obj.conn.name != self.name:
return
- if HAS_IDLE and gajim.config.get_per('accounts', self.name,
+ if HAS_IDLE and app.config.get_per('accounts', self.name,
'send_idle_time'):
iq_obj = obj.stanza.buildReply('result')
qp = iq_obj.setQuery()
@@ -1675,21 +1675,21 @@ ConnectionHandlersBase, ConnectionJingle, ConnectionIBBytestream):
def _VersionResultCB(self, con, iq_obj):
log.debug('VersionResultCB')
- gajim.nec.push_incoming_event(VersionResultReceivedEvent(None,
+ app.nec.push_incoming_event(VersionResultReceivedEvent(None,
conn=self, stanza=iq_obj))
def _TimeCB(self, con, iq_obj):
log.debug('TimeCB')
if not self.connection or self.connected < 2:
return
- gajim.nec.push_incoming_event(TimeRequestEvent(None, conn=self,
+ app.nec.push_incoming_event(TimeRequestEvent(None, conn=self,
stanza=iq_obj))
raise nbxmpp.NodeProcessed
def _nec_time_request_received(self, obj):
if obj.conn.name != self.name:
return
- if gajim.config.get_per('accounts', self.name, 'send_time_info'):
+ if app.config.get_per('accounts', self.name, 'send_time_info'):
iq_obj = obj.stanza.buildReply('result')
qp = iq_obj.setQuery()
qp.setTagData('utc', strftime('%Y%m%dT%H:%M:%S', gmtime()))
@@ -1706,14 +1706,14 @@ ConnectionHandlersBase, ConnectionJingle, ConnectionIBBytestream):
log.debug('TimeRevisedCB')
if not self.connection or self.connected < 2:
return
- gajim.nec.push_incoming_event(TimeRevisedRequestEvent(None, conn=self,
+ app.nec.push_incoming_event(TimeRevisedRequestEvent(None, conn=self,
stanza=iq_obj))
raise nbxmpp.NodeProcessed
def _nec_time_revised_request_received(self, obj):
if obj.conn.name != self.name:
return
- if gajim.config.get_per('accounts', self.name, 'send_time_info'):
+ if app.config.get_per('accounts', self.name, 'send_time_info'):
iq_obj = obj.stanza.buildReply('result')
qp = iq_obj.setTag('time', namespace=nbxmpp.NS_TIME_REVISED)
qp.setTagData('utc', strftime('%Y-%m-%dT%H:%M:%SZ', gmtime()))
@@ -1730,7 +1730,7 @@ ConnectionHandlersBase, ConnectionJingle, ConnectionIBBytestream):
def _TimeRevisedResultCB(self, con, iq_obj):
log.debug('TimeRevisedResultCB')
- gajim.nec.push_incoming_event(TimeResultReceivedEvent(None, conn=self,
+ app.nec.push_incoming_event(TimeResultReceivedEvent(None, conn=self,
stanza=iq_obj))
def _gMailNewMailCB(self, con, iq_obj):
@@ -1738,7 +1738,7 @@ ConnectionHandlersBase, ConnectionJingle, ConnectionIBBytestream):
Called when we get notified of new mail messages in gmail account
"""
log.debug('gMailNewMailCB')
- gajim.nec.push_incoming_event(GmailNewMailReceivedEvent(None, conn=self,
+ app.nec.push_incoming_event(GmailNewMailReceivedEvent(None, conn=self,
stanza=iq_obj))
raise nbxmpp.NodeProcessed
@@ -1748,7 +1748,7 @@ ConnectionHandlersBase, ConnectionJingle, ConnectionIBBytestream):
if not self.connection or self.connected < 2:
return
# we'll now ask the server for the exact number of new messages
- jid = gajim.get_jid_from_account(self.name)
+ jid = app.get_jid_from_account(self.name)
log.debug('Got notification of new gmail e-mail on %s. Asking the '
'server for more info.' % jid)
iq = nbxmpp.Iq(typ='get')
@@ -1767,7 +1767,7 @@ ConnectionHandlersBase, ConnectionJingle, ConnectionIBBytestream):
in gmail account
"""
log.debug('gMailQueryCB')
- gajim.nec.push_incoming_event(GMailQueryReceivedEvent(None, conn=self,
+ app.nec.push_incoming_event(GMailQueryReceivedEvent(None, conn=self,
stanza=iq_obj))
raise nbxmpp.NodeProcessed
@@ -1776,7 +1776,7 @@ ConnectionHandlersBase, ConnectionJingle, ConnectionIBBytestream):
XEP-0144 Roster Item Echange
"""
log.debug('rosterItemExchangeCB')
- gajim.nec.push_incoming_event(RosterItemExchangeEvent(None, conn=self,
+ app.nec.push_incoming_event(RosterItemExchangeEvent(None, conn=self,
stanza=msg))
raise nbxmpp.NodeProcessed
@@ -1786,12 +1786,12 @@ ConnectionHandlersBase, ConnectionJingle, ConnectionIBBytestream):
"""
log.debug('MessageCB')
- gajim.nec.push_incoming_event(NetworkEvent('raw-message-received',
+ app.nec.push_incoming_event(NetworkEvent('raw-message-received',
conn=self, stanza=msg, account=self.name))
def _dispatch_gc_msg_with_captcha(self, stanza, msg_obj):
msg_obj.stanza = stanza
- gajim.nec.push_incoming_event(GcMessageReceivedEvent(None,
+ app.nec.push_incoming_event(GcMessageReceivedEvent(None,
conn=self, msg_obj=msg_obj))
def _on_bob_received(self, conn, result, cid):
@@ -1848,27 +1848,27 @@ ConnectionHandlersBase, ConnectionJingle, ConnectionIBBytestream):
Called when we receive a presence
"""
log.debug('PresenceCB')
- gajim.nec.push_incoming_event(NetworkEvent('raw-pres-received',
+ app.nec.push_incoming_event(NetworkEvent('raw-pres-received',
conn=self, stanza=prs))
def _nec_subscribe_presence_received(self, obj):
account = obj.conn.name
if account != self.name:
return
- if gajim.jid_is_transport(obj.fjid) and obj.fjid in \
+ if app.jid_is_transport(obj.fjid) and obj.fjid in \
self.agent_registrations:
self.agent_registrations[obj.fjid]['sub_received'] = True
if not self.agent_registrations[obj.fjid]['roster_push']:
# We'll reply after roster push result
return True
- if gajim.config.get_per('accounts', self.name, 'autoauth') or \
- gajim.jid_is_transport(obj.fjid) or obj.jid in self.jids_for_auto_auth \
+ if app.config.get_per('accounts', self.name, 'autoauth') or \
+ app.jid_is_transport(obj.fjid) or obj.jid in self.jids_for_auto_auth \
or obj.transport_auto_auth:
if self.connection:
p = nbxmpp.Presence(obj.fjid, 'subscribed')
p = self.add_sha(p)
self.connection.send(p)
- if gajim.jid_is_transport(obj.fjid) or obj.transport_auto_auth:
+ if app.jid_is_transport(obj.fjid) or obj.transport_auto_auth:
#TODO!?!?
#self.show = 'offline'
#self.status = 'offline'
@@ -1900,7 +1900,7 @@ ConnectionHandlersBase, ConnectionJingle, ConnectionIBBytestream):
self.subscribed_events[obj.jid] = \
self.subscribed_events[obj.jid][1:]
if block:
- gajim.config.set_per('account', self.name, 'dont_ack_subscription',
+ app.config.set_per('account', self.name, 'dont_ack_subscription',
True)
return True
@@ -1908,7 +1908,7 @@ ConnectionHandlersBase, ConnectionJingle, ConnectionIBBytestream):
account = obj.conn.name
if account != self.name:
return
- if not gajim.config.get_per('accounts', account,
+ if not app.config.get_per('accounts', account,
'dont_ack_subscription'):
self.ack_subscribed(obj.jid)
@@ -1927,7 +1927,7 @@ ConnectionHandlersBase, ConnectionJingle, ConnectionIBBytestream):
self.subscribed_events[obj.jid] = \
self.subscribed_events[obj.jid][1:]
if block:
- gajim.config.set_per('account', self.name, 'dont_ack_subscription',
+ app.config.set_per('account', self.name, 'dont_ack_subscription',
True)
return True
@@ -1935,7 +1935,7 @@ ConnectionHandlersBase, ConnectionJingle, ConnectionIBBytestream):
account = obj.conn.name
if account != self.name:
return
- if not gajim.config.get_per('accounts', account,
+ if not app.config.get_per('accounts', account,
'dont_ack_subscription'):
self.ack_unsubscribed(obj.jid)
@@ -1947,26 +1947,26 @@ ConnectionHandlersBase, ConnectionJingle, ConnectionIBBytestream):
(jid, obj.agent))
self.unsubscribe(jid)
# Transport contacts can't have 2 resources
- if jid in gajim.to_be_removed[self.name]:
+ if jid in app.to_be_removed[self.name]:
# This way we'll really remove it
- gajim.to_be_removed[self.name].remove(jid)
+ app.to_be_removed[self.name].remove(jid)
def _StanzaArrivedCB(self, con, obj):
- self.last_io = gajim.idlequeue.current_time()
+ self.last_io = app.idlequeue.current_time()
def _MucOwnerCB(self, con, iq_obj):
log.debug('MucOwnerCB')
- gajim.nec.push_incoming_event(MucOwnerReceivedEvent(None, conn=self,
+ app.nec.push_incoming_event(MucOwnerReceivedEvent(None, conn=self,
stanza=iq_obj))
def _MucAdminCB(self, con, iq_obj):
log.debug('MucAdminCB')
- gajim.nec.push_incoming_event(MucAdminReceivedEvent(None, conn=self,
+ app.nec.push_incoming_event(MucAdminReceivedEvent(None, conn=self,
stanza=iq_obj))
def _IqPingCB(self, con, iq_obj):
log.debug('IqPingCB')
- gajim.nec.push_incoming_event(PingReceivedEvent(None, conn=self,
+ app.nec.push_incoming_event(PingReceivedEvent(None, conn=self,
stanza=iq_obj))
raise nbxmpp.NodeProcessed
@@ -2007,43 +2007,43 @@ ConnectionHandlersBase, ConnectionJingle, ConnectionIBBytestream):
if not self.connection:
return
self.connection.getRoster(self._on_roster_set)
- self.discoverItems(gajim.config.get_per('accounts', self.name,
+ self.discoverItems(app.config.get_per('accounts', self.name,
'hostname'), id_prefix='Gajim_')
- if gajim.config.get_per('accounts', self.name, 'use_ft_proxies'):
+ if app.config.get_per('accounts', self.name, 'use_ft_proxies'):
self.discover_ft_proxies()
def discover_ft_proxies(self):
- cfg_proxies = gajim.config.get_per('accounts', self.name,
+ cfg_proxies = app.config.get_per('accounts', self.name,
'file_transfer_proxies')
- our_jid = helpers.parse_jid(gajim.get_jid_from_account(self.name) + \
+ our_jid = helpers.parse_jid(app.get_jid_from_account(self.name) + \
'/' + self.server_resource)
- testit = gajim.config.get_per('accounts', self.name,
+ testit = app.config.get_per('accounts', self.name,
'test_ft_proxies_on_startup')
if cfg_proxies:
proxies = [e.strip() for e in cfg_proxies.split(',')]
for proxy in proxies:
- gajim.proxy65_manager.resolve(proxy, self.connection, our_jid,
+ app.proxy65_manager.resolve(proxy, self.connection, our_jid,
testit=testit)
def discover_servers(self):
if not self.connection:
return
servers = []
- for c in gajim.contacts.iter_contacts(self.name):
- s = gajim.get_server_from_jid(c.jid)
- if s not in servers and s not in gajim.transport_type:
+ for c in app.contacts.iter_contacts(self.name):
+ s = app.get_server_from_jid(c.jid)
+ if s not in servers and s not in app.transport_type:
servers.append(s)
for s in servers:
self.discoverInfo(s)
def _on_roster_set(self, roster):
- gajim.nec.push_incoming_event(RosterReceivedEvent(None, conn=self,
+ app.nec.push_incoming_event(RosterReceivedEvent(None, conn=self,
xmpp_roster=roster))
def _nec_roster_received(self, obj):
if obj.conn.name != self.name:
return
- our_jid = gajim.get_jid_from_account(self.name)
+ our_jid = app.get_jid_from_account(self.name)
if self.connected > 1 and self.continue_connect_info:
msg = self.continue_connect_info[1]
sign_msg = self.continue_connect_info[2]
@@ -2053,7 +2053,7 @@ ConnectionHandlersBase, ConnectionJingle, ConnectionIBBytestream):
signed = self.get_signed_presence(msg,
self._send_first_presence)
if signed is None:
- gajim.nec.push_incoming_event(GPGPasswordRequiredEvent(None,
+ app.nec.push_incoming_event(GPGPasswordRequiredEvent(None,
conn=self, callback=self._send_first_presence))
# _send_first_presence will be called when user enter
# passphrase
@@ -2063,21 +2063,21 @@ ConnectionHandlersBase, ConnectionJingle, ConnectionIBBytestream):
if obj.received_from_server:
for jid in obj.roster:
- if jid != our_jid and gajim.jid_is_transport(jid) and \
- not gajim.get_transport_name_from_jid(jid):
+ if jid != our_jid and app.jid_is_transport(jid) and \
+ not app.get_transport_name_from_jid(jid):
# we can't determine which iconset to use
self.discoverInfo(jid)
- gajim.logger.replace_roster(self.name, obj.version, obj.roster)
+ app.logger.replace_roster(self.name, obj.version, obj.roster)
- for contact in gajim.contacts.iter_contacts(self.name):
+ for contact in app.contacts.iter_contacts(self.name):
if not contact.is_groupchat() and contact.jid not in obj.roster\
and contact.jid != our_jid:
- gajim.nec.push_incoming_event(RosterInfoEvent(None,
+ app.nec.push_incoming_event(RosterInfoEvent(None,
conn=self, jid=contact.jid, nickname=None, sub=None,
ask=None, groups=()))
for jid, info in obj.roster.items():
- gajim.nec.push_incoming_event(RosterInfoEvent(None,
+ app.nec.push_incoming_event(RosterInfoEvent(None,
conn=self, jid=jid, nickname=info['name'],
sub=info['subscription'], ask=info['ask'],
groups=info['groups']))
@@ -2089,11 +2089,11 @@ ConnectionHandlersBase, ConnectionJingle, ConnectionIBBytestream):
if sign_msg and not signed:
signed = self.get_signed_presence(msg)
if signed is None:
- gajim.nec.push_incoming_event(BadGPGPassphraseEvent(None,
+ app.nec.push_incoming_event(BadGPGPassphraseEvent(None,
conn=self))
self.USE_GPG = False
signed = ''
- self.connected = gajim.SHOW_LIST.index(show)
+ self.connected = app.SHOW_LIST.index(show)
sshow = helpers.get_xmpp_show(show)
# send our presence
if show == 'invisible':
@@ -2101,8 +2101,8 @@ ConnectionHandlersBase, ConnectionJingle, ConnectionIBBytestream):
return
if show not in ['offline', 'online', 'chat', 'away', 'xa', 'dnd']:
return
- priority = gajim.get_priority(self.name, sshow)
- our_jid = helpers.parse_jid(gajim.get_jid_from_account(self.name))
+ priority = app.get_priority(self.name, sshow)
+ our_jid = helpers.parse_jid(app.get_jid_from_account(self.name))
vcard = self.get_cached_vcard(our_jid)
if vcard and 'PHOTO' in vcard and 'SHA' in vcard['PHOTO']:
self.vcard_sha = vcard['PHOTO']['SHA']
@@ -2116,7 +2116,7 @@ ConnectionHandlersBase, ConnectionJingle, ConnectionIBBytestream):
if self.connection:
self.connection.send(p)
self.priority = priority
- gajim.nec.push_incoming_event(OurShowEvent(None, conn=self,
+ app.nec.push_incoming_event(OurShowEvent(None, conn=self,
show=show))
if self.vcard_supported:
# ask our VCard
@@ -2129,7 +2129,7 @@ ConnectionHandlersBase, ConnectionJingle, ConnectionIBBytestream):
self.get_annotations()
# Inform GUI we just signed in
- gajim.nec.push_incoming_event(SignedInEvent(None, conn=self))
+ app.nec.push_incoming_event(SignedInEvent(None, conn=self))
self.send_awaiting_pep()
self.continue_connect_info = None
# hashes of already received messages
@@ -2140,7 +2140,7 @@ ConnectionHandlersBase, ConnectionJingle, ConnectionIBBytestream):
return
# It's a gmail account,
# inform the server that we want e-mail notifications
- our_jid = helpers.parse_jid(gajim.get_jid_from_account(self.name))
+ our_jid = helpers.parse_jid(app.get_jid_from_account(self.name))
log.debug(('%s is a gmail account. Setting option '
'to get e-mail notifications on the server.') % (our_jid))
iq = nbxmpp.Iq(typ='set', to=our_jid)
@@ -2159,7 +2159,7 @@ ConnectionHandlersBase, ConnectionJingle, ConnectionIBBytestream):
def _SearchCB(self, con, iq_obj):
log.debug('SearchCB')
- gajim.nec.push_incoming_event(SearchFormReceivedEvent(None,
+ app.nec.push_incoming_event(SearchFormReceivedEvent(None,
conn=self, stanza=iq_obj))
def _search_fields_received(self, con, iq_obj):
@@ -2191,7 +2191,7 @@ ConnectionHandlersBase, ConnectionJingle, ConnectionIBBytestream):
def _BlockingSetCB(self, con, iq_obj):
log.debug('_BlockingSetCB')
- gajim.nec.push_incoming_event(BlockingEvent(None, conn=self,
+ app.nec.push_incoming_event(BlockingEvent(None, conn=self,
stanza=iq_obj))
raise nbxmpp.NodeProcessed
@@ -2215,7 +2215,7 @@ ConnectionHandlersBase, ConnectionJingle, ConnectionIBBytestream):
def _StreamCB(self, con, obj):
log.debug('StreamCB')
- gajim.nec.push_incoming_event(StreamReceivedEvent(None,
+ app.nec.push_incoming_event(StreamReceivedEvent(None,
conn=self, stanza=obj))
def _register_handlers(self, con, con_type):
diff --git a/gajim/common/connection_handlers_events.py b/gajim/common/connection_handlers_events.py
index f94d2b826..58284f0c3 100644
--- a/gajim/common/connection_handlers_events.py
+++ b/gajim/common/connection_handlers_events.py
@@ -32,21 +32,21 @@ from time import time as time_time
import nbxmpp
from nbxmpp.protocol import NS_CHATSTATES
-from common import atom
-from common import nec
-from common import helpers
-from common import gajim
-from common import i18n
-from common import dataforms
-from common import exceptions
-from common.zeroconf.zeroconf import Constant
-from common.logger import LOG_DB_PATH, KindConstant
-from common.pep import SUPPORTED_PERSONAL_USER_EVENTS
-from common.jingle_transport import JingleTransportSocks5
-from common.file_props import FilesProp
-from common.nec import NetworkEvent
+from gajim.common import atom
+from gajim.common import nec
+from gajim.common import helpers
+from gajim.common import app
+from gajim.common import i18n
+from gajim.common import dataforms
+from gajim.common import exceptions
+from gajim.common.zeroconf.zeroconf import Constant
+from gajim.common.logger import LOG_DB_PATH, KindConstant
+from gajim.common.pep import SUPPORTED_PERSONAL_USER_EVENTS
+from gajim.common.jingle_transport import JingleTransportSocks5
+from gajim.common.file_props import FilesProp
+from gajim.common.nec import NetworkEvent
-if gajim.HAVE_PYOPENSSL:
+if app.HAVE_PYOPENSSL:
import OpenSSL.crypto
log = logging.getLogger('gajim.c.connection_handlers_events')
@@ -81,20 +81,20 @@ class HelperEvent:
del self.conn.groupchat_jids[self.id_]
else:
self.fjid = helpers.get_full_jid_from_iq(self.stanza)
- self.jid, self.resource = gajim.get_room_and_nick_from_fjid(self.fjid)
+ self.jid, self.resource = app.get_room_and_nick_from_fjid(self.fjid)
def get_id(self):
self.id_ = self.stanza.getID()
def get_gc_control(self):
- self.gc_control = gajim.interface.msg_win_mgr.get_gc_control(self.jid,
+ self.gc_control = app.interface.msg_win_mgr.get_gc_control(self.jid,
self.conn.name)
# If gc_control is missing - it may be minimized. Try to get it
# from there. If it's not there - then it's missing anyway and
# will remain set to None.
if not self.gc_control:
- minimized = gajim.interface.minimized_controls[self.conn.name]
+ minimized = app.interface.minimized_controls[self.conn.name]
self.gc_control = minimized.get(self.jid)
def _generate_timestamp(self, tag):
@@ -130,7 +130,7 @@ class HttpAuthReceivedEvent(nec.NetworkIncomingEvent):
base_network_events = []
def generate(self):
- self.opt = gajim.config.get_per('accounts', self.conn.name, 'http_auth')
+ self.opt = app.config.get_per('accounts', self.conn.name, 'http_auth')
self.iq_id = self.stanza.getTagAttr('confirm', 'id')
self.method = self.stanza.getTagAttr('confirm', 'method')
self.url = self.stanza.getTagAttr('confirm', 'url')
@@ -283,7 +283,7 @@ class GMailQueryReceivedEvent(nec.NetworkIncomingEvent):
'date': gmessage.getAttr('date')})
self.conn.gmail_last_time = int(mb.getAttr('result-time'))
- self.jid = gajim.get_jid_from_account(self.name)
+ self.jid = app.get_jid_from_account(self.name)
log.debug('You have %s new gmail e-mails on %s.', self.newmsgs, self.jid)
return True
@@ -309,7 +309,7 @@ class RosterItemExchangeEvent(nec.NetworkIncomingEvent, HelperEvent):
log.warning('Invalid JID: %s, ignoring it' % item.getAttr('jid'))
continue
name = item.getAttr('name')
- contact = gajim.contacts.get_contact(self.conn.name, jid)
+ contact = app.contacts.get_contact(self.conn.name, jid)
groups = []
same_groups = True
for group in item.getTags('group'):
@@ -358,7 +358,7 @@ class RosterReceivedEvent(nec.NetworkIncomingEvent):
self.received_from_server = self.xmpp_roster.received_from_server
self.roster = {}
raw_roster = self.xmpp_roster.getRaw()
- our_jid = gajim.get_jid_from_account(self.conn.name)
+ our_jid = app.get_jid_from_account(self.conn.name)
for jid in raw_roster:
try:
@@ -382,12 +382,12 @@ class RosterReceivedEvent(nec.NetworkIncomingEvent):
else:
# Roster comes from DB
self.received_from_server = False
- self.version = gajim.config.get_per('accounts', self.conn.name,
+ self.version = app.config.get_per('accounts', self.conn.name,
'roster_version')
- self.roster = gajim.logger.get_roster(gajim.get_jid_from_account(
+ self.roster = app.logger.get_roster(app.get_jid_from_account(
self.conn.name))
if not self.roster:
- gajim.config.set_per(
+ app.config.set_per(
'accounts', self.conn.name, 'roster_version', '')
return True
@@ -397,8 +397,8 @@ class RosterSetReceivedEvent(nec.NetworkIncomingEvent):
def generate(self):
frm = helpers.get_jid_from_iq(self.stanza)
- our_jid = gajim.get_jid_from_account(self.conn.name)
- if frm and frm != our_jid and frm != gajim.get_server_from_jid(our_jid):
+ our_jid = app.get_jid_from_account(self.conn.name)
+ if frm and frm != our_jid and frm != app.get_server_from_jid(our_jid):
return
self.version = self.stanza.getTagAttr('query', 'ver')
self.items = {}
@@ -783,7 +783,7 @@ PresenceHelperEvent):
except Exception:
log.warning('Invalid JID: %s, ignoring it' % self.stanza.getFrom())
return
- jid_list = gajim.contacts.get_jid_list(self.conn.name)
+ jid_list = app.contacts.get_jid_list(self.conn.name)
self.timestamp = None
self.get_id()
self.is_gc = False # is it a GC presence ?
@@ -819,7 +819,7 @@ PresenceHelperEvent):
self._generate_timestamp(self.stanza.getTimestamp())
elif namespace == 'http://delx.cjb.net/protocol/roster-subsync':
# see http://trac.gajim.org/ticket/326
- agent = gajim.get_server_from_jid(self.jid)
+ agent = app.get_server_from_jid(self.jid)
if self.conn.connection.getRoster().getItem(agent):
# to be sure it's a transport contact
self.transport_auto_auth = True
@@ -841,32 +841,32 @@ PresenceHelperEvent):
self.errmsg = self.stanza.getErrorMsg()
if self.is_gc:
- gajim.nec.push_incoming_event(
+ app.nec.push_incoming_event(
GcPresenceReceivedEvent(
None, conn=self.conn, stanza=self.stanza,
presence_obj=self))
return
if self.ptype == 'subscribe':
- gajim.nec.push_incoming_event(SubscribePresenceReceivedEvent(None,
+ app.nec.push_incoming_event(SubscribePresenceReceivedEvent(None,
conn=self.conn, stanza=self.stanza, presence_obj=self))
elif self.ptype == 'subscribed':
# BE CAREFUL: no con.updateRosterItem() in a callback
- gajim.nec.push_incoming_event(SubscribedPresenceReceivedEvent(None,
+ app.nec.push_incoming_event(SubscribedPresenceReceivedEvent(None,
conn=self.conn, stanza=self.stanza, presence_obj=self))
elif self.ptype == 'unsubscribe':
log.debug(_('unsubscribe request from %s') % self.jid)
elif self.ptype == 'unsubscribed':
- gajim.nec.push_incoming_event(UnsubscribedPresenceReceivedEvent(
+ app.nec.push_incoming_event(UnsubscribedPresenceReceivedEvent(
None, conn=self.conn, stanza=self.stanza, presence_obj=self))
elif self.ptype == 'error':
return
if not self.ptype or self.ptype == 'unavailable':
- our_jid = gajim.get_jid_from_account(self.conn.name)
+ our_jid = app.get_jid_from_account(self.conn.name)
if self.jid == our_jid and self.resource == self.conn.server_resource:
# We got our own presence
- gajim.nec.push_incoming_event(OurShowEvent(None, conn=self.conn,
+ app.nec.push_incoming_event(OurShowEvent(None, conn=self.conn,
show=self.show))
elif self.jid in jid_list or self.jid == our_jid:
return True
@@ -876,7 +876,7 @@ class ZeroconfPresenceReceivedEvent(nec.NetworkIncomingEvent):
base_network_events = []
def generate(self):
- self.jid, self.resource = gajim.get_room_and_nick_from_fjid(self.fjid)
+ self.jid, self.resource = app.get_room_and_nick_from_fjid(self.fjid)
self.resource = 'local'
self.prio = 0
self.keyID = None
@@ -914,7 +914,7 @@ class GcPresenceReceivedEvent(nec.NetworkIncomingEvent, HelperEvent):
self.errmsg = self.presence_obj.errmsg
self.errcon = self.stanza.getError()
self.get_gc_control()
- self.gc_contact = gajim.contacts.get_gc_contact(self.conn.name,
+ self.gc_contact = app.contacts.get_gc_contact(self.conn.name,
self.room_jid, self.nick)
if self.ptype == 'error':
@@ -922,8 +922,8 @@ class GcPresenceReceivedEvent(nec.NetworkIncomingEvent, HelperEvent):
if self.ptype and self.ptype != 'unavailable':
return
- if gajim.config.get('log_contact_status_changes') and \
- gajim.config.should_log(self.conn.name, self.room_jid):
+ if app.config.get('log_contact_status_changes') and \
+ app.config.should_log(self.conn.name, self.room_jid):
if self.gc_contact:
jid = self.gc_contact.jid
else:
@@ -932,10 +932,10 @@ class GcPresenceReceivedEvent(nec.NetworkIncomingEvent, HelperEvent):
if jid:
# we know real jid, save it in db
st += ' (%s)' % jid
- show = gajim.logger.convert_show_values_to_db_api_values(self.show)
+ show = app.logger.convert_show_values_to_db_api_values(self.show)
if show is not None:
fjid = nbxmpp.JID(self.fjid)
- gajim.logger.insert_into_logs(fjid.getStripped(),
+ app.logger.insert_into_logs(fjid.getStripped(),
time_time(),
KindConstant.GCSTATUS,
contact_name=fjid.getResource(),
@@ -944,7 +944,7 @@ class GcPresenceReceivedEvent(nec.NetworkIncomingEvent, HelperEvent):
if self.avatar_sha == '':
# contact has no avatar
puny_nick = helpers.sanitize_filename(self.nick)
- gajim.interface.remove_avatar_files(self.room_jid, puny_nick)
+ app.interface.remove_avatar_files(self.room_jid, puny_nick)
# NOTE: if it's a gc presence, don't ask vcard here.
# We may ask it to real jid in gui part.
self.status_code = []
@@ -1118,7 +1118,7 @@ class MamDecryptedMessageReceivedEvent(nec.NetworkIncomingEvent, HelperEvent):
# For example Chatstates, Receipts, Chatmarkers
log.debug('Received MAM message without text')
return
- self.is_pm = gajim.logger.jid_is_room_jid(self.with_.getStripped())
+ self.is_pm = app.logger.jid_is_room_jid(self.with_.getStripped())
if self.is_pm is None:
# Check if this event is triggered after a disco, so we dont
# run into an endless loop
@@ -1166,13 +1166,13 @@ class MessageReceivedEvent(nec.NetworkIncomingEvent, HelperEvent):
# check if the message is a roster item exchange (XEP-0144)
if self.stanza.getTag('x', namespace=nbxmpp.NS_ROSTERX):
- gajim.nec.push_incoming_event(RosterItemExchangeEvent(None,
+ app.nec.push_incoming_event(RosterItemExchangeEvent(None,
conn=self.conn, stanza=self.stanza))
return
# check if the message is a XEP-0070 confirmation request
if self.stanza.getTag('confirm', namespace=nbxmpp.NS_HTTP_AUTH):
- gajim.nec.push_incoming_event(HttpAuthReceivedEvent(None,
+ app.nec.push_incoming_event(HttpAuthReceivedEvent(None,
conn=self.conn, stanza=self.stanza))
return
@@ -1186,7 +1186,7 @@ class MessageReceivedEvent(nec.NetworkIncomingEvent, HelperEvent):
address_tag = self.stanza.getTag('addresses',
namespace=nbxmpp.NS_ADDRESS)
# Be sure it comes from one of our resource, else ignore address element
- if address_tag and self.jid == gajim.get_jid_from_account(account):
+ if address_tag and self.jid == app.get_jid_from_account(account):
address = address_tag.getTag('address', attrs={'type': 'ofrom'})
if address:
try:
@@ -1195,14 +1195,14 @@ class MessageReceivedEvent(nec.NetworkIncomingEvent, HelperEvent):
log.warning('Invalid JID: %s, ignoring it',
address.getAttr('jid'))
return
- self.jid = gajim.get_jid_without_resource(self.fjid)
+ self.jid = app.get_jid_without_resource(self.fjid)
carbon_marker = self.stanza.getTag('sent', namespace=nbxmpp.NS_CARBONS)
if not carbon_marker:
carbon_marker = self.stanza.getTag('received',
namespace=nbxmpp.NS_CARBONS)
# Be sure it comes from one of our resource, else ignore forward element
- if carbon_marker and self.jid == gajim.get_jid_from_account(account):
+ if carbon_marker and self.jid == app.get_jid_from_account(account):
forward_tag = carbon_marker.getTag('forwarded',
namespace=nbxmpp.NS_FORWARD)
if forward_tag:
@@ -1213,16 +1213,16 @@ class MessageReceivedEvent(nec.NetworkIncomingEvent, HelperEvent):
to = self.stanza.getTo()
frm = self.stanza.getFrom()
if not frm:
- frm = gajim.get_jid_from_account(account)
+ frm = app.get_jid_from_account(account)
self.stanza.setTo(frm)
if not to:
- to = gajim.get_jid_from_account(account)
+ to = app.get_jid_from_account(account)
self.stanza.setFrom(to)
self.sent = True
elif carbon_marker.getName() == 'received':
full_frm = str(self.stanza.getFrom())
- frm = gajim.get_jid_without_resource(full_frm)
- if frm == gajim.get_jid_from_account(account):
+ frm = app.get_jid_without_resource(full_frm)
+ if frm == app.get_jid_from_account(account):
# Drop 'received' Carbons from ourself, we already
# got the message with the 'sent' Carbon or via the
# message itself
@@ -1249,7 +1249,7 @@ class MessageReceivedEvent(nec.NetworkIncomingEvent, HelperEvent):
log.warning('Invalid MAM Message: no forwarded child')
return
- gajim.nec.push_incoming_event(
+ app.nec.push_incoming_event(
NetworkEvent('raw-mam-message-received',
conn=self.conn,
stanza=self.stanza,
@@ -1261,13 +1261,13 @@ class MessageReceivedEvent(nec.NetworkIncomingEvent, HelperEvent):
muc_user = self.stanza.getTag('x', namespace=nbxmpp.NS_MUC_USER)
if muc_user:
if muc_user.getTag('decline'):
- gajim.nec.push_incoming_event(
+ app.nec.push_incoming_event(
GcDeclineReceivedEvent(
None, conn=self.conn,
room_jid=self.fjid, stanza=muc_user))
return
if muc_user.getTag('invite'):
- gajim.nec.push_incoming_event(
+ app.nec.push_incoming_event(
GcInvitationReceivedEvent(
None, conn=self.conn, jid_from=self.fjid,
mediated=True, stanza=muc_user))
@@ -1277,7 +1277,7 @@ class MessageReceivedEvent(nec.NetworkIncomingEvent, HelperEvent):
direct = self.stanza.getTag(
'x', namespace=nbxmpp.NS_CONFERENCE)
if direct:
- gajim.nec.push_incoming_event(
+ app.nec.push_incoming_event(
GcInvitationReceivedEvent(
None, conn=self.conn, jid_from=self.fjid,
mediated=False, stanza=direct))
@@ -1304,7 +1304,7 @@ class MessageReceivedEvent(nec.NetworkIncomingEvent, HelperEvent):
self.session = None
if self.mtype != 'groupchat':
- if gajim.interface.is_pm_contact(self.fjid, account) and \
+ if app.interface.is_pm_contact(self.fjid, account) and \
self.mtype == 'error':
self.session = self.conn.find_session(self.fjid, self.thread_id)
if not self.session:
@@ -1340,7 +1340,7 @@ class ZeroconfMessageReceivedEvent(MessageReceivedEvent):
self.fjid = key
break
- self.jid, self.resource = gajim.get_room_and_nick_from_fjid(self.fjid)
+ self.jid, self.resource = app.get_room_and_nick_from_fjid(self.fjid)
def generate(self):
self.base_event = nec.NetworkIncomingEvent(None, conn=self.conn,
@@ -1379,15 +1379,15 @@ class GcInvitationReceivedEvent(nec.NetworkIncomingEvent):
self.password = self.stanza.getTagData('password')
self.is_continued = self.stanza.getTag('continue') is not None
- if self.room_jid in gajim.gc_connected[account] and \
- gajim.gc_connected[account][self.room_jid]:
+ if self.room_jid in app.gc_connected[account] and \
+ app.gc_connected[account][self.room_jid]:
# We are already in groupchat. Ignore invitation
return
- jid = gajim.get_jid_without_resource(self.jid_from)
+ jid = app.get_jid_without_resource(self.jid_from)
- ignore = gajim.config.get_per(
+ ignore = app.config.get_per(
'accounts', account, 'ignore_unknown_contacts')
- if ignore and not gajim.contacts.get_contacts(account, jid):
+ if ignore and not app.contacts.get_contacts(account, jid):
return
return True
@@ -1405,10 +1405,10 @@ class GcDeclineReceivedEvent(nec.NetworkIncomingEvent):
log.warning('Invalid JID: %s, ignoring it',
decline.getAttr('from'))
return
- jid = gajim.get_jid_without_resource(self.jid_from)
- ignore = gajim.config.get_per(
+ jid = app.get_jid_without_resource(self.jid_from)
+ ignore = app.config.get_per(
'accounts', account, 'ignore_unknown_contacts')
- if ignore and not gajim.contacts.get_contacts(account, jid):
+ if ignore and not app.contacts.get_contacts(account, jid):
return
self.reason = decline.getTagData('reason')
@@ -1463,7 +1463,7 @@ class DecryptedMessageReceivedEvent(nec.NetworkIncomingEvent, HelperEvent):
self.form_node = self.stanza.getTag('x', namespace=nbxmpp.NS_DATA)
- if gajim.config.get('ignore_incoming_xhtml'):
+ if app.config.get('ignore_incoming_xhtml'):
self.xhtml = None
else:
self.xhtml = self.stanza.getXHTML()
@@ -1540,7 +1540,7 @@ class GcMessageReceivedEvent(nec.NetworkIncomingEvent):
self.encrypted = self.msg_obj.encrypted
self.correct_id = None # XEP-0308
- if gajim.config.get('ignore_incoming_xhtml'):
+ if app.config.get('ignore_incoming_xhtml'):
self.xhtml_msgtxt = None
if self.msg_obj.resource:
@@ -1555,7 +1555,7 @@ class GcMessageReceivedEvent(nec.NetworkIncomingEvent):
self.subject = self.stanza.getSubject()
if self.subject is not None:
- gajim.nec.push_incoming_event(GcSubjectReceivedEvent(None,
+ app.nec.push_incoming_event(GcSubjectReceivedEvent(None,
conn=self.conn, msg_event=self))
return
@@ -1573,7 +1573,7 @@ class GcMessageReceivedEvent(nec.NetworkIncomingEvent):
# http://www.xmpp.org/extensions/xep-0045.html#roomconfig-notify
if self.stanza.getTag('x'):
if self.status_code != []:
- gajim.nec.push_incoming_event(GcConfigChangedReceivedEvent(
+ app.nec.push_incoming_event(GcConfigChangedReceivedEvent(
None, conn=self.conn, msg_event=self))
if self.msg_obj.form_node:
return True
@@ -1681,7 +1681,7 @@ class JingleRequestReceivedEvent(nec.NetworkIncomingEvent):
def generate(self):
self.fjid = self.jingle_session.peerjid
- self.jid, self.resource = gajim.get_room_and_nick_from_fjid(self.fjid)
+ self.jid, self.resource = app.get_room_and_nick_from_fjid(self.fjid)
self.sid = self.jingle_session.sid
return True
@@ -1691,7 +1691,7 @@ class JingleConnectedReceivedEvent(nec.NetworkIncomingEvent):
def generate(self):
self.fjid = self.jingle_session.peerjid
- self.jid, self.resource = gajim.get_room_and_nick_from_fjid(self.fjid)
+ self.jid, self.resource = app.get_room_and_nick_from_fjid(self.fjid)
self.sid = self.jingle_session.sid
return True
@@ -1701,7 +1701,7 @@ class JingleDisconnectedReceivedEvent(nec.NetworkIncomingEvent):
def generate(self):
self.fjid = self.jingle_session.peerjid
- self.jid, self.resource = gajim.get_room_and_nick_from_fjid(self.fjid)
+ self.jid, self.resource = app.get_room_and_nick_from_fjid(self.fjid)
self.sid = self.jingle_session.sid
return True
@@ -1711,7 +1711,7 @@ class JingleTransferCancelledEvent(nec.NetworkIncomingEvent):
def generate(self):
self.fjid = self.jingle_session.peerjid
- self.jid, self.resource = gajim.get_room_and_nick_from_fjid(self.fjid)
+ self.jid, self.resource = app.get_room_and_nick_from_fjid(self.fjid)
self.sid = self.jingle_session.sid
return True
@@ -1721,7 +1721,7 @@ class JingleErrorReceivedEvent(nec.NetworkIncomingEvent):
def generate(self):
self.fjid = self.jingle_session.peerjid
- self.jid, self.resource = gajim.get_room_and_nick_from_fjid(self.fjid)
+ self.jid, self.resource = app.get_room_and_nick_from_fjid(self.fjid)
self.sid = self.jingle_session.sid
return True
@@ -1831,7 +1831,7 @@ class NewAccountConnectedEvent(nec.NetworkIncomingEvent):
self.errnum = 0 # we don't have an errnum
self.ssl_msg = ''
if self.errnum > 0:
- from common.connection import ssl_error
+ from gajim.common.connection import ssl_error
self.ssl_msg = ssl_error.get(self.errnum,
_('Unknown SSL error: %d') % self.errnum)
self.ssl_cert = ''
@@ -1884,7 +1884,7 @@ class AgentRemovedEvent(nec.NetworkIncomingEvent):
def generate(self):
self.jid_list = []
- for jid in gajim.contacts.get_jid_list(self.conn.name):
+ for jid in app.contacts.get_jid_list(self.conn.name):
if jid.endswith('@' + self.agent):
self.jid_list.append(jid)
return True
@@ -1895,8 +1895,8 @@ class BadGPGPassphraseEvent(nec.NetworkIncomingEvent):
def generate(self):
self.account = self.conn.name
- self.use_gpg_agent = gajim.config.get('use_gpg_agent')
- self.keyID = gajim.config.get_per('accounts', self.conn.name, 'keyid')
+ self.use_gpg_agent = app.config.get('use_gpg_agent')
+ self.keyID = app.config.get_per('accounts', self.conn.name, 'keyid')
return True
class ConnectionLostEvent(nec.NetworkIncomingEvent):
@@ -1904,7 +1904,7 @@ class ConnectionLostEvent(nec.NetworkIncomingEvent):
base_network_events = []
def generate(self):
- gajim.nec.push_incoming_event(OurShowEvent(None, conn=self.conn,
+ app.nec.push_incoming_event(OurShowEvent(None, conn=self.conn,
show='offline'))
return True
@@ -1971,7 +1971,7 @@ class GPGPasswordRequiredEvent(nec.NetworkIncomingEvent):
base_network_events = []
def generate(self):
- self.keyid = gajim.config.get_per('accounts', self.conn.name, 'keyid')
+ self.keyid = app.config.get_per('accounts', self.conn.name, 'keyid')
return True
class PEPReceivedEvent(nec.NetworkIncomingEvent, HelperEvent):
@@ -2006,7 +2006,7 @@ class PEPReceivedEvent(nec.NetworkIncomingEvent, HelperEvent):
for item in items.getTags('item'):
entry = item.getTag('entry', namespace=nbxmpp.NS_ATOM)
if entry:
- gajim.nec.push_incoming_event(AtomEntryReceived(None,
+ app.nec.push_incoming_event(AtomEntryReceived(None,
conn=self.conn, node=entry))
raise nbxmpp.NodeProcessed
@@ -2178,7 +2178,7 @@ class AgentItemsReceivedEvent(nec.NetworkIncomingEvent, HelperEvent):
continue
self.items.append(attr)
self.get_jid_resource()
- hostname = gajim.config.get_per('accounts', self.conn.name, 'hostname')
+ hostname = app.config.get_per('accounts', self.conn.name, 'hostname')
self.get_id()
if self.id_ in self.conn.disco_items_ids:
self.conn.disco_items_ids.remove(self.id_)
@@ -2266,7 +2266,7 @@ class FileRequestReceivedEvent(nec.NetworkIncomingEvent, HelperEvent):
def generate(self):
self.get_id()
self.fjid = self.conn._ft_get_from(self.stanza)
- self.jid = gajim.get_jid_without_resource(self.fjid)
+ self.jid = app.get_jid_without_resource(self.fjid)
if self.jingle_content:
secu = self.jingle_content.getTag('security')
self.FT_content.use_security = bool(secu)
@@ -2303,7 +2303,7 @@ class FileRequestReceivedEvent(nec.NetworkIncomingEvent, HelperEvent):
h = h.getData() if h else None
n = file_tag.getTag('name')
n = n.getData() if n else None
- pjid = gajim.get_jid_without_resource(self.fjid)
+ pjid = app.get_jid_without_resource(self.fjid)
file_info = self.conn.get_file_info(pjid, hash_=h,
name=n,account=self.conn.name)
self.file_props.file_name = file_info['file-name']
@@ -2377,7 +2377,7 @@ class FileRequestErrorEvent(nec.NetworkIncomingEvent):
base_network_events = []
def generate(self):
- self.jid = gajim.get_jid_without_resource(self.jid)
+ self.jid = app.get_jid_without_resource(self.jid)
return True
class FileTransferCompletedEvent(nec.NetworkIncomingEvent):
@@ -2386,7 +2386,7 @@ class FileTransferCompletedEvent(nec.NetworkIncomingEvent):
def generate(self):
jid = str(self.file_props.receiver)
- self.jid = gajim.get_jid_without_resource(jid)
+ self.jid = app.get_jid_without_resource(jid)
return True
class GatewayPromptReceivedEvent(nec.NetworkIncomingEvent, HelperEvent):
@@ -2440,14 +2440,14 @@ class NotificationEvent(nec.NetworkIncomingEvent):
self.control = None
self.get_focused()
# This event has already been added to event list
- if not self.control and len(gajim.events.get_events(self.conn.name, \
+ if not self.control and len(app.events.get_events(self.conn.name, \
self.jid, [msg_obj.mtype])) <= 1:
self.first_unread = True
if msg_obj.mtype == 'pm':
nick = msg_obj.resource
else:
- nick = gajim.get_name_from_jid(self.conn.name, self.jid)
+ nick = app.get_name_from_jid(self.conn.name, self.jid)
if self.first_unread:
self.sound_event = 'first_message_received'
@@ -2456,7 +2456,7 @@ class NotificationEvent(nec.NetworkIncomingEvent):
else:
self.sound_event = 'next_message_received_unfocused'
- if gajim.config.get('notification_preview_message'):
+ if app.config.get('notification_preview_message'):
self.popup_text = msg_obj.msgtxt
if self.popup_text and (self.popup_text.startswith('/me ') or \
self.popup_text.startswith('/me\n')):
@@ -2490,25 +2490,25 @@ class NotificationEvent(nec.NetworkIncomingEvent):
{'nickname': nick}
- if gajim.config.get('notify_on_new_message'):
- if self.first_unread or (gajim.config.get('autopopup_chat_opened') \
+ if app.config.get('notify_on_new_message'):
+ if self.first_unread or (app.config.get('autopopup_chat_opened') \
and not self.control_focused):
- if gajim.config.get('autopopupaway'):
+ if app.config.get('autopopupaway'):
# always show notification
self.do_popup = True
- if gajim.connections[self.conn.name].connected in (2, 3):
+ if app.connections[self.conn.name].connected in (2, 3):
# we're online or chat
self.do_popup = True
- if msg_obj.attention and not gajim.config.get(
+ if msg_obj.attention and not app.config.get(
'ignore_incoming_attention'):
self.popup_timeout = 0
self.do_popup = True
else:
- self.popup_timeout = gajim.config.get('notification_timeout')
+ self.popup_timeout = app.config.get('notification_timeout')
- if msg_obj.attention and not gajim.config.get(
- 'ignore_incoming_attention') and gajim.config.get_per('soundevents',
+ if msg_obj.attention and not app.config.get(
+ 'ignore_incoming_attention') and app.config.get_per('soundevents',
'attention_received', 'enabled'):
self.sound_event = 'attention_received'
self.do_sound = True
@@ -2555,7 +2555,7 @@ class NotificationEvent(nec.NetworkIncomingEvent):
if jid:
# we want an avatar
puny_jid = helpers.sanitize_filename(jid)
- path_to_file = os.path.join(gajim.AVATAR_PATH, puny_jid) + suffix
+ path_to_file = os.path.join(app.AVATAR_PATH, puny_jid) + suffix
path_to_local_file = path_to_file + '_local'
for extension in ('.png', '.jpeg'):
path_to_local_file_full = path_to_local_file + extension
@@ -2568,7 +2568,7 @@ class NotificationEvent(nec.NetworkIncomingEvent):
return os.path.abspath(generic)
def handle_incoming_pres_event(self, pres_obj):
- if gajim.jid_is_transport(pres_obj.jid):
+ if app.jid_is_transport(pres_obj.jid):
return True
account = pres_obj.conn.name
self.jid = pres_obj.jid
@@ -2583,11 +2583,11 @@ class NotificationEvent(nec.NetworkIncomingEvent):
# no other resource is connected, let's look in metacontacts
- family = gajim.contacts.get_metacontacts_family(account, self.jid)
+ family = app.contacts.get_metacontacts_family(account, self.jid)
for info in family:
acct_ = info['account']
jid_ = info['jid']
- c_ = gajim.contacts.get_contact_with_highest_priority(acct_, jid_)
+ c_ = app.contacts.get_contact_with_highest_priority(acct_, jid_)
if not c_:
continue
if c_.jid == self.jid:
@@ -2599,18 +2599,18 @@ class NotificationEvent(nec.NetworkIncomingEvent):
event = 'contact_connected'
show_image = 'online.png'
suffix = '_notif_size_colored'
- server = gajim.get_server_from_jid(self.jid)
+ server = app.get_server_from_jid(self.jid)
account_server = account + '/' + server
block_transport = False
- if account_server in gajim.block_signed_in_notifications and \
- gajim.block_signed_in_notifications[account_server]:
+ if account_server in app.block_signed_in_notifications and \
+ app.block_signed_in_notifications[account_server]:
block_transport = True
if helpers.allow_showing_notification(account, 'notify_on_signin') \
- and not gajim.block_signed_in_notifications[account] and \
+ and not app.block_signed_in_notifications[account] and \
not block_transport:
self.do_popup = True
- if gajim.config.get_per('soundevents', 'contact_connected',
- 'enabled') and not gajim.block_signed_in_notifications[account] and\
+ if app.config.get_per('soundevents', 'contact_connected',
+ 'enabled') and not app.block_signed_in_notifications[account] and\
not block_transport and helpers.allow_sound_notification(account,
'contact_connected'):
self.sound_event = event
@@ -2622,7 +2622,7 @@ class NotificationEvent(nec.NetworkIncomingEvent):
suffix = '_notif_size_bw'
if helpers.allow_showing_notification(account, 'notify_on_signout'):
self.do_popup = True
- if gajim.config.get_per('soundevents', 'contact_disconnected',
+ if app.config.get_per('soundevents', 'contact_disconnected',
'enabled') and helpers.allow_sound_notification(account, event):
self.sound_event = event
self.do_sound = True
@@ -2636,21 +2636,21 @@ class NotificationEvent(nec.NetworkIncomingEvent):
else:
return True
- transport_name = gajim.get_transport_name_from_jid(self.jid)
+ transport_name = app.get_transport_name_from_jid(self.jid)
img_path = None
if transport_name:
img_path = os.path.join(helpers.get_transport_path(
transport_name), '48x48', show_image)
if not img_path or not os.path.isfile(img_path):
- iconset = gajim.config.get('iconset')
+ iconset = app.config.get('iconset')
img_path = os.path.join(helpers.get_iconset_path(iconset),
'48x48', show_image)
self.popup_image_path = self.get_path_to_generic_or_avatar(img_path,
jid=self.jid, suffix=suffix)
- self.popup_timeout = gajim.config.get('notification_timeout')
+ self.popup_timeout = app.config.get('notification_timeout')
- nick = i18n.direction_mark + gajim.get_name_from_jid(account, self.jid)
+ nick = i18n.direction_mark + app.get_name_from_jid(account, self.jid)
if event == 'status_change':
self.popup_title = _('%(nick)s Changed Status') % \
{'nick': nick}
diff --git a/gajim/common/contacts.py b/gajim/common/contacts.py
index c8e2132f0..e4a84315b 100644
--- a/gajim/common/contacts.py
+++ b/gajim/common/contacts.py
@@ -31,9 +31,9 @@
from functools import cmp_to_key
try:
- from common import caps_cache
- from common.account import Account
- import common.gajim
+ from gajim.common import caps_cache
+ from gajim.common.account import Account
+ from gajim import common
except ImportError as e:
if __name__ != "__main__":
raise ImportError(str(e))
@@ -165,8 +165,8 @@ class Contact(CommonContact):
return is_observer
def is_groupchat(self):
- for account in common.gajim.gc_connected:
- if self.jid in common.gajim.gc_connected[account]:
+ for account in common.app.gc_connected:
+ if self.jid in common.app.gc_connected[account]:
return True
return False
@@ -258,8 +258,8 @@ class LegacyContactsAPI:
def create_self_contact(self, jid, account, resource, show, status, priority,
name='', keyID=''):
- conn = common.gajim.connections[account]
- nick = name or common.gajim.nicks[account]
+ conn = common.app.connections[account]
+ nick = name or common.app.nicks[account]
account = self._accounts.get(account, account) # Use Account object if available
self_contact = self.create_contact(jid=jid, account=account,
name=nick, groups=['self_contact'], show=show, status=status,
@@ -357,11 +357,11 @@ class LegacyContactsAPI:
nbr_online = 0
nbr_total = 0
for account in accounts:
- our_jid = common.gajim.get_jid_from_account(account)
+ our_jid = common.app.get_jid_from_account(account)
for jid in self.get_jid_list(account):
if jid == our_jid:
continue
- if common.gajim.jid_is_transport(jid) and not \
+ if common.app.jid_is_transport(jid) and not \
_('Transports') in groups:
# do not count transports
continue
@@ -506,7 +506,7 @@ class Contacts():
"""
Get Contact object for specific resource of given jid
"""
- barejid, resource = common.gajim.get_room_and_nick_from_fjid(fjid)
+ barejid, resource = common.app.get_room_and_nick_from_fjid(fjid)
return self.get_contact(barejid, resource)
def get_first_contact_from_jid(self, jid):
@@ -655,7 +655,7 @@ class MetacontactManager():
self._metacontacts_tags[brother_account][tag] = [{'jid': brother_jid,
'tag': tag}]
if brother_account != account:
- common.gajim.connections[brother_account].store_metacontacts(
+ common.app.connections[brother_account].store_metacontacts(
self._metacontacts_tags[brother_account])
# be sure jid has no other tag
old_tag = self._get_metacontacts_tag(account, jid)
@@ -671,7 +671,7 @@ class MetacontactManager():
else:
self._metacontacts_tags[account][tag].append({'jid': jid,
'tag': tag})
- common.gajim.connections[account].store_metacontacts(
+ common.app.connections[account].store_metacontacts(
self._metacontacts_tags[account])
def remove_metacontact(self, account, jid):
@@ -686,7 +686,7 @@ class MetacontactManager():
break
if found:
self._metacontacts_tags[account][tag].remove(found)
- common.gajim.connections[account].store_metacontacts(
+ common.app.connections[account].store_metacontacts(
self._metacontacts_tags[account])
break
@@ -789,8 +789,8 @@ class MetacontactManager():
return 1
if 'order' in data2:
return -1
- transport1 = common.gajim.get_transport_name_from_jid(jid1)
- transport2 = common.gajim.get_transport_name_from_jid(jid2)
+ transport1 = common.app.get_transport_name_from_jid(jid1)
+ transport2 = common.app.get_transport_name_from_jid(jid2)
if transport2 and not transport1:
return 1
if transport1 and not transport2:
@@ -803,10 +803,10 @@ class MetacontactManager():
return 1
if priority2 > priority1:
return -1
- server1 = common.gajim.get_server_from_jid(jid1)
- server2 = common.gajim.get_server_from_jid(jid2)
- myserver1 = common.gajim.config.get_per('accounts', account1, 'hostname')
- myserver2 = common.gajim.config.get_per('accounts', account2, 'hostname')
+ server1 = common.app.get_server_from_jid(jid1)
+ server2 = common.app.get_server_from_jid(jid2)
+ myserver1 = common.app.config.get_per('accounts', account1, 'hostname')
+ myserver2 = common.app.config.get_per('accounts', account2, 'hostname')
if server1 == myserver1:
if server2 != myserver2:
return 1
@@ -833,7 +833,7 @@ class MetacontactManager():
(nearby_family, big_brother_jid, big_brother_account)
"""
- if common.gajim.config.get('mergeaccounts'):
+ if common.app.config.get('mergeaccounts'):
# group all together
nearby_family = family
else:
diff --git a/gajim/common/dataforms.py b/gajim/common/dataforms.py
index 6dd6b896c..547652efd 100644
--- a/gajim/common/dataforms.py
+++ b/gajim/common/dataforms.py
@@ -27,7 +27,7 @@ information how to use them, read documentation
"""
import nbxmpp
-from common import helpers
+from gajim.common import helpers
# exceptions used in this module
# base class
diff --git a/gajim/common/dbus_support.py b/gajim/common/dbus_support.py
index cd4611152..c8476551b 100644
--- a/gajim/common/dbus_support.py
+++ b/gajim/common/dbus_support.py
@@ -26,8 +26,8 @@
import os
-from common import gajim
-from common import exceptions
+from gajim.common import app
+from gajim.common import exceptions
_GAJIM_ERROR_IFACE = 'org.gajim.dbus.Error'
@@ -155,7 +155,7 @@ def get_interface(interface, path, start_service=True):
obj = bus.get_object(interface, path)
return dbus.Interface(obj, interface)
except Exception as e:
- gajim.log.debug(str(e))
+ app.log.debug(str(e))
return None
diff --git a/gajim/common/defs.py b/gajim/common/defs.py
index 57e3c7e6f..b9da9534e 100644
--- a/gajim/common/defs.py
+++ b/gajim/common/defs.py
@@ -28,9 +28,9 @@ import sys
import os.path
docdir = '../'
-basedir = '../'
+basedir = './'
localedir = '../po'
-version = '0.16.10.5'
+version = '0.16.11'
try:
node = subprocess.Popen('git rev-parse --short=12 HEAD', shell=True,
diff --git a/gajim/common/gpg.py b/gajim/common/gpg.py
index dc7f695cb..c271d2766 100644
--- a/gajim/common/gpg.py
+++ b/gajim/common/gpg.py
@@ -24,18 +24,17 @@
import os
import logging
-from common import gajim
-from common.gajim import HAVE_GPG, GPG_BINARY
+from gajim.common import app
-if HAVE_GPG:
+if app.HAVE_GPG:
import gnupg
gnupg.logger = logging.getLogger('gajim.c.gnupg')
class GnuPG(gnupg.GPG):
def __init__(self):
- use_agent = gajim.config.get('use_gpg_agent')
- gnupg.GPG.__init__(self, gpgbinary=GPG_BINARY, use_agent=use_agent)
- encoding = gajim.config.get('pgp_encoding')
+ use_agent = app.config.get('use_gpg_agent')
+ gnupg.GPG.__init__(self, gpgbinary=app.GPG_BINARY, use_agent=use_agent)
+ encoding = app.config.get('pgp_encoding')
if encoding:
self.encoding = encoding
self.decode_errors = 'replace'
diff --git a/gajim/common/helpers.py b/gajim/common/helpers.py
index bd6f9682b..26496d859 100644
--- a/gajim/common/helpers.py
+++ b/gajim/common/helpers.py
@@ -40,7 +40,7 @@ import select
import base64
import hashlib
import shlex
-from common import caps_cache
+from gajim.common import caps_cache
import socket
import time
from datetime import datetime, timedelta, timezone, tzinfo
@@ -50,8 +50,8 @@ from string import Template
import nbxmpp
-from common.i18n import Q_
-from common.i18n import ngettext
+from gajim.common.i18n import Q_
+from gajim.common.i18n import ngettext
try:
import precis_i18n.codec
@@ -545,7 +545,7 @@ def exec_command(command, use_shell=False, posix=True):
else:
args = shlex.split(command, posix=posix)
p = subprocess.Popen(args)
- gajim.thread_interface(p.wait)
+ app.thread_interface(p.wait)
def build_command(executable, parameter):
# we add to the parameter (can hold path with spaces)
@@ -750,8 +750,8 @@ def parse_datetime(timestring, check_utc=False, convert='utc', epoch=False):
return date_time
return None
-from common import gajim
-if gajim.HAVE_PYCURL:
+from gajim.common import app
+if app.HAVE_PYCURL:
import pycurl
from io import StringIO
@@ -759,7 +759,7 @@ def convert_bytes(string):
suffix = ''
# IEC standard says KiB = 1024 bytes KB = 1000 bytes
# but do we use the standard?
- use_kib_mib = gajim.config.get('use_kib_mib')
+ use_kib_mib = app.config.get('use_kib_mib')
align = 1024.
bytes_ = float(string)
if bytes_ >= align:
@@ -800,8 +800,8 @@ def get_contact_dict_for_account(account):
Can be used for completion lists
"""
contacts_dict = {}
- for jid in gajim.contacts.get_jid_list(account):
- contact = gajim.contacts.get_contact_with_highest_priority(account,
+ for jid in app.contacts.get_jid_list(account):
+ contact = app.contacts.get_contact_with_highest_priority(account,
jid)
contacts_dict[jid] = contact
name = contact.name
@@ -811,7 +811,7 @@ def get_contact_dict_for_account(account):
contacts_dict['%s (%s)' % (name, contact1.jid)] = contact1
contacts_dict['%s (%s)' % (name, jid)] = contact
elif contact.name:
- if contact.name == gajim.get_nick_from_jid(jid):
+ if contact.name == app.get_nick_from_jid(jid):
del contacts_dict[jid]
contacts_dict[name] = contact
return contacts_dict
@@ -827,11 +827,11 @@ def launch_browser_mailer(kind, uri):
if kind == 'url' and uri.startswith('www.'):
uri = 'http://' + uri
- if not gajim.config.get('autodetect_browser_mailer'):
+ if not app.config.get('autodetect_browser_mailer'):
if kind == 'url':
- command = gajim.config.get('custombrowser')
+ command = app.config.get('custombrowser')
elif kind in ('mail', 'sth_at_sth'):
- command = gajim.config.get('custommailapp')
+ command = app.config.get('custommailapp')
if command == '': # if no app is configured
return
@@ -854,8 +854,8 @@ def launch_file_manager(path_to_open):
except Exception:
pass
else:
- if not gajim.config.get('autodetect_browser_mailer'):
- command = gajim.config.get('custom_file_manager')
+ if not app.config.get('autodetect_browser_mailer'):
+ command = app.config.get('custom_file_manager')
if command == '': # if no app is configured
return
else:
@@ -867,13 +867,13 @@ def launch_file_manager(path_to_open):
pass
def play_sound(event):
- if not gajim.config.get('sounds_on'):
+ if not app.config.get('sounds_on'):
return
- path_to_soundfile = gajim.config.get_per('soundevents', event, 'path')
+ path_to_soundfile = app.config.get_per('soundevents', event, 'path')
play_sound_file(path_to_soundfile)
-def check_soundfile_path(file_, dirs=(gajim.gajimpaths.data_root,
-gajim.DATA_DIR)):
+def check_soundfile_path(file_, dirs=(app.gajimpaths.data_root,
+app.DATA_DIR)):
"""
Check if the sound file exists
@@ -893,8 +893,8 @@ gajim.DATA_DIR)):
return d
return None
-def strip_soundfile_path(file_, dirs=(gajim.gajimpaths.data_root,
-gajim.DATA_DIR), abs=True):
+def strip_soundfile_path(file_, dirs=(app.gajimpaths.data_root,
+app.DATA_DIR), abs=True):
"""
Remove knowns paths from a sound file
@@ -930,7 +930,7 @@ def play_sound_file(path_to_soundfile):
except Exception:
log.exception('Sound Playback Error')
elif sys.platform == 'linux':
- if gajim.config.get('soundplayer') == '':
+ if app.config.get('soundplayer') == '':
def _oss_play():
sndfile = wave.open(path_to_soundfile, 'rb')
(nc, sw, fr, nf, comptype, compname) = sndfile.getparams()
@@ -939,9 +939,9 @@ def play_sound_file(path_to_soundfile):
dev.write(sndfile.readframes(nf))
sndfile.close()
dev.close()
- gajim.thread_interface(_oss_play)
+ app.thread_interface(_oss_play)
return
- player = gajim.config.get('soundplayer')
+ player = app.config.get('soundplayer')
command = build_command(player, path_to_soundfile)
exec_command(command)
elif sys.platform == 'darwin' and HAS_SOUND:
@@ -951,25 +951,25 @@ def play_sound_file(path_to_soundfile):
def get_global_show():
maxi = 0
- for account in gajim.connections:
- if not gajim.config.get_per('accounts', account,
+ for account in app.connections:
+ if not app.config.get_per('accounts', account,
'sync_with_global_status'):
continue
- connected = gajim.connections[account].connected
+ connected = app.connections[account].connected
if connected > maxi:
maxi = connected
- return gajim.SHOW_LIST[maxi]
+ return app.SHOW_LIST[maxi]
def get_global_status():
maxi = 0
- for account in gajim.connections:
- if not gajim.config.get_per('accounts', account,
+ for account in app.connections:
+ if not app.config.get_per('accounts', account,
'sync_with_global_status'):
continue
- connected = gajim.connections[account].connected
+ connected = app.connections[account].connected
if connected > maxi:
maxi = connected
- status = gajim.connections[account].status
+ status = app.connections[account].status
return status
@@ -978,13 +978,13 @@ def statuses_unified():
Test if all statuses are the same
"""
reference = None
- for account in gajim.connections:
- if not gajim.config.get_per('accounts', account,
+ for account in app.connections:
+ if not app.config.get_per('accounts', account,
'sync_with_global_status'):
continue
if reference is None:
- reference = gajim.connections[account].connected
- elif reference != gajim.connections[account].connected:
+ reference = app.connections[account].connected
+ elif reference != app.connections[account].connected:
return False
return True
@@ -992,17 +992,17 @@ def get_icon_name_to_show(contact, account = None):
"""
Get the icon name to show in online, away, requested, etc
"""
- if account and gajim.events.get_nb_roster_events(account, contact.jid):
+ if account and app.events.get_nb_roster_events(account, contact.jid):
return 'event'
- if account and gajim.events.get_nb_roster_events(account,
+ if account and app.events.get_nb_roster_events(account,
contact.get_full_jid()):
return 'event'
- if account and account in gajim.interface.minimized_controls and \
- contact.jid in gajim.interface.minimized_controls[account] and gajim.interface.\
+ if account and account in app.interface.minimized_controls and \
+ contact.jid in app.interface.minimized_controls[account] and app.interface.\
minimized_controls[account][contact.jid].get_nb_unread_pm() > 0:
return 'event'
- if account and contact.jid in gajim.gc_connected[account]:
- if gajim.gc_connected[account][contact.jid]:
+ if account and contact.jid in app.gc_connected[account]:
+ if app.gc_connected[account][contact.jid]:
return 'muc_active'
else:
return 'muc_inactive'
@@ -1012,10 +1012,10 @@ def get_icon_name_to_show(contact, account = None):
return contact.show
if contact.ask == 'subscribe':
return 'requested'
- transport = gajim.get_transport_name_from_jid(contact.jid)
+ transport = app.get_transport_name_from_jid(contact.jid)
if transport:
return contact.show
- if contact.show in gajim.SHOW_LIST:
+ if contact.show in app.SHOW_LIST:
return contact.show
return 'not in roster'
@@ -1030,7 +1030,7 @@ def get_jid_from_iq(iq_obj):
Return the jid (without resource) from an iq
"""
jid = get_full_jid_from_iq(iq_obj)
- return gajim.get_jid_without_resource(jid)
+ return app.get_jid_without_resource(jid)
def get_auth_sha(sid, initiator, target):
"""
@@ -1041,7 +1041,7 @@ def get_auth_sha(sid, initiator, target):
def remove_invalid_xml_chars(string):
if string:
- string = re.sub(gajim.interface.invalid_XML_chars_re, '', string)
+ string = re.sub(app.interface.invalid_XML_chars_re, '', string)
return string
distro_info = {
@@ -1078,8 +1078,8 @@ def get_random_string_16():
return ''.join(sample(char_sequence, 16))
def get_os_info():
- if gajim.os_info:
- return gajim.os_info
+ if app.os_info:
+ return app.os_info
if os.name == 'nt':
# platform.release() seems to return the name of the windows
ver = sys.getwindowsversion()
@@ -1099,7 +1099,7 @@ def get_os_info():
os_info = 'Windows' + ' ' + win_version[ver_format]
else:
os_info = 'Windows'
- gajim.os_info = os_info
+ app.os_info = os_info
return os_info
elif os.name == 'posix':
executable = 'lsb_release'
@@ -1113,7 +1113,7 @@ def get_os_info():
output = temp_failure_retry(p.stdout.readline).strip()
# some distros put n/a in places, so remove those
output = output.decode('utf-8').replace('n/a', '').replace('N/A', '')
- gajim.os_info = output
+ app.os_info = output
p.stdout.close()
p.stdin.close()
return output
@@ -1145,17 +1145,17 @@ def get_os_info():
# file just has version
text = distro_name + ' ' + text
os_info = text.replace('\n', '')
- gajim.os_info = os_info
+ app.os_info = os_info
return os_info
# our last chance, ask uname and strip it
uname_output = get_output_of_command('uname -sr')
if uname_output is not None:
os_info = uname_output[0] # only first line
- gajim.os_info = os_info
+ app.os_info = os_info
return os_info
os_info = 'N/A'
- gajim.os_info = os_info
+ app.os_info = os_info
return os_info
@@ -1168,11 +1168,11 @@ is_first_message=True):
option that need to be True e.g.: notify_on_signing is_first_message: set it
to false when it's not the first message
"""
- if type_ and (not gajim.config.get(type_) or not is_first_message):
+ if type_ and (not app.config.get(type_) or not is_first_message):
return False
- if gajim.config.get('autopopupaway'): # always show notification
+ if app.config.get('autopopupaway'): # always show notification
return True
- if gajim.connections[account].connected in (2, 3): # we're online or chat
+ if app.connections[account].connected in (2, 3): # we're online or chat
return True
return False
@@ -1180,16 +1180,16 @@ def allow_popup_window(account):
"""
Is it allowed to popup windows?
"""
- autopopup = gajim.config.get('autopopup')
- autopopupaway = gajim.config.get('autopopupaway')
+ autopopup = app.config.get('autopopup')
+ autopopupaway = app.config.get('autopopupaway')
if autopopup and (autopopupaway or \
- gajim.connections[account].connected in (2, 3)): # we're online or chat
+ app.connections[account].connected in (2, 3)): # we're online or chat
return True
return False
def allow_sound_notification(account, sound_event):
- if gajim.config.get('sounddnd') or gajim.connections[account].connected != \
- gajim.SHOW_LIST.index('dnd') and gajim.config.get_per('soundevents',
+ if app.config.get('sounddnd') or app.connections[account].connected != \
+ app.SHOW_LIST.index('dnd') and app.config.get_per('soundevents',
sound_event, 'enabled'):
return True
return False
@@ -1198,12 +1198,12 @@ def get_chat_control(account, contact):
full_jid_with_resource = contact.jid
if contact.resource:
full_jid_with_resource += '/' + contact.resource
- highest_contact = gajim.contacts.get_contact_with_highest_priority(
+ highest_contact = app.contacts.get_contact_with_highest_priority(
account, contact.jid)
# Look for a chat control that has the given resource, or default to
# one without resource
- ctrl = gajim.interface.msg_win_mgr.get_control(full_jid_with_resource,
+ ctrl = app.interface.msg_win_mgr.get_control(full_jid_with_resource,
account)
if ctrl:
@@ -1213,7 +1213,7 @@ def get_chat_control(account, contact):
return None
else:
# unknown contact or offline message
- return gajim.interface.msg_win_mgr.get_control(contact.jid, account)
+ return app.interface.msg_win_mgr.get_control(contact.jid, account)
def get_notification_icon_tooltip_dict():
"""
@@ -1230,7 +1230,7 @@ def get_notification_icon_tooltip_dict():
account_name = account['name']
account['event_lines'] = []
# Gather events per-account
- pending_events = gajim.events.get_events(account = account_name)
+ pending_events = app.events.get_events(account = account_name)
messages, non_messages, total_messages, total_non_messages = {}, {}, 0, 0
for jid in pending_events:
for event in pending_events[jid]:
@@ -1256,10 +1256,10 @@ def get_notification_icon_tooltip_dict():
'%d message pending',
'%d messages pending',
messages[jid], messages[jid], messages[jid])
- contact = gajim.contacts.get_first_contact_from_jid(
+ contact = app.contacts.get_first_contact_from_jid(
account['name'], jid)
text += ' '
- if jid in gajim.gc_connected[account['name']]:
+ if jid in app.gc_connected[account['name']]:
text += _('from room %s') % (jid)
elif contact:
name = contact.get_shown_name()
@@ -1334,13 +1334,13 @@ def get_accounts_info():
Helper for notification icon tooltip
"""
accounts = []
- accounts_list = sorted(gajim.contacts.get_accounts())
+ accounts_list = sorted(app.contacts.get_accounts())
for account in accounts_list:
- status_idx = gajim.connections[account].connected
+ status_idx = app.connections[account].connected
# uncomment the following to hide offline accounts
# if status_idx == 0: continue
- status = gajim.SHOW_LIST[status_idx]
- message = gajim.connections[account].status
+ status = app.SHOW_LIST[status_idx]
+ message = app.connections[account].status
single_line = get_uf_show(status)
if message is None:
message = ''
@@ -1354,33 +1354,33 @@ def get_accounts_info():
def get_iconset_path(iconset):
- if os.path.isdir(os.path.join(gajim.DATA_DIR, 'iconsets', iconset)):
- return os.path.join(gajim.DATA_DIR, 'iconsets', iconset)
- elif os.path.isdir(os.path.join(gajim.MY_ICONSETS_PATH, iconset)):
- return os.path.join(gajim.MY_ICONSETS_PATH, iconset)
+ if os.path.isdir(os.path.join(app.DATA_DIR, 'iconsets', iconset)):
+ return os.path.join(app.DATA_DIR, 'iconsets', iconset)
+ elif os.path.isdir(os.path.join(app.MY_ICONSETS_PATH, iconset)):
+ return os.path.join(app.MY_ICONSETS_PATH, iconset)
def get_mood_iconset_path(iconset):
- if os.path.isdir(os.path.join(gajim.DATA_DIR, 'moods', iconset)):
- return os.path.join(gajim.DATA_DIR, 'moods', iconset)
- elif os.path.isdir(os.path.join(gajim.MY_MOOD_ICONSETS_PATH, iconset)):
- return os.path.join(gajim.MY_MOOD_ICONSETS_PATH, iconset)
+ if os.path.isdir(os.path.join(app.DATA_DIR, 'moods', iconset)):
+ return os.path.join(app.DATA_DIR, 'moods', iconset)
+ elif os.path.isdir(os.path.join(app.MY_MOOD_ICONSETS_PATH, iconset)):
+ return os.path.join(app.MY_MOOD_ICONSETS_PATH, iconset)
def get_activity_iconset_path(iconset):
- if os.path.isdir(os.path.join(gajim.DATA_DIR, 'activities', iconset)):
- return os.path.join(gajim.DATA_DIR, 'activities', iconset)
- elif os.path.isdir(os.path.join(gajim.MY_ACTIVITY_ICONSETS_PATH,
+ if os.path.isdir(os.path.join(app.DATA_DIR, 'activities', iconset)):
+ return os.path.join(app.DATA_DIR, 'activities', iconset)
+ elif os.path.isdir(os.path.join(app.MY_ACTIVITY_ICONSETS_PATH,
iconset)):
- return os.path.join(gajim.MY_ACTIVITY_ICONSETS_PATH, iconset)
+ return os.path.join(app.MY_ACTIVITY_ICONSETS_PATH, iconset)
def get_transport_path(transport):
- if os.path.isdir(os.path.join(gajim.DATA_DIR, 'iconsets', 'transports',
+ if os.path.isdir(os.path.join(app.DATA_DIR, 'iconsets', 'transports',
transport)):
- return os.path.join(gajim.DATA_DIR, 'iconsets', 'transports', transport)
- elif os.path.isdir(os.path.join(gajim.MY_ICONSETS_PATH, 'transports',
+ return os.path.join(app.DATA_DIR, 'iconsets', 'transports', transport)
+ elif os.path.isdir(os.path.join(app.MY_ICONSETS_PATH, 'transports',
transport)):
- return os.path.join(gajim.MY_ICONSETS_PATH, 'transports', transport)
+ return os.path.join(app.MY_ICONSETS_PATH, 'transports', transport)
# No transport folder found, use default jabber one
- return get_iconset_path(gajim.config.get('iconset'))
+ return get_iconset_path(app.config.get('iconset'))
def prepare_and_validate_gpg_keyID(account, jid, keyID):
"""
@@ -1391,11 +1391,11 @@ def prepare_and_validate_gpg_keyID(account, jid, keyID):
assigned key XXXXXXXXMISMATCH is returned. If the key is trusted and not yet
assigned, assign it.
"""
- if gajim.connections[account].USE_GPG:
+ if app.connections[account].USE_GPG:
if keyID and len(keyID) == 16:
keyID = keyID[8:]
- attached_keys = gajim.config.get_per('accounts', account,
+ attached_keys = app.config.get_per('accounts', account,
'attached_gpg_keys').split()
if jid in attached_keys and keyID:
@@ -1403,7 +1403,7 @@ def prepare_and_validate_gpg_keyID(account, jid, keyID):
if attachedkeyID != keyID:
# Get signing subkeys for the attached key
subkeys = []
- for key in gajim.connections[account].gpg.list_keys():
+ for key in app.connections[account].gpg.list_keys():
if key['keyid'][8:] == attachedkeyID:
subkeys = [subkey[0][8:] for subkey in key['subkeys'] \
if subkey[1] == 's']
@@ -1416,15 +1416,15 @@ def prepare_and_validate_gpg_keyID(account, jid, keyID):
# An unsigned presence, just use the assigned key
keyID = attached_keys[attached_keys.index(jid) + 1]
elif keyID:
- full_key = gajim.connections[account].ask_gpg_keys(keyID=keyID)
+ full_key = app.connections[account].ask_gpg_keys(keyID=keyID)
# Assign the corresponding key, if we have it in our keyring
if full_key:
- for u in gajim.contacts.get_contacts(account, jid):
+ for u in app.contacts.get_contacts(account, jid):
u.keyID = keyID
- keys_str = gajim.config.get_per('accounts', account,
+ keys_str = app.config.get_per('accounts', account,
'attached_gpg_keys')
keys_str += jid + ' ' + keyID + ' '
- gajim.config.set_per('accounts', account, 'attached_gpg_keys',
+ app.config.set_per('accounts', account, 'attached_gpg_keys',
keys_str)
elif keyID is None:
keyID = 'UNKNOWN'
@@ -1434,70 +1434,70 @@ def update_optional_features(account = None):
if account:
accounts = [account]
else:
- accounts = [a for a in gajim.connections]
+ accounts = [a for a in app.connections]
for a in accounts:
- gajim.gajim_optional_features[a] = []
- if gajim.config.get_per('accounts', a, 'subscribe_mood'):
- gajim.gajim_optional_features[a].append(nbxmpp.NS_MOOD + '+notify')
- if gajim.config.get_per('accounts', a, 'subscribe_activity'):
- gajim.gajim_optional_features[a].append(nbxmpp.NS_ACTIVITY + \
+ app.gajim_optional_features[a] = []
+ if app.config.get_per('accounts', a, 'subscribe_mood'):
+ app.gajim_optional_features[a].append(nbxmpp.NS_MOOD + '+notify')
+ if app.config.get_per('accounts', a, 'subscribe_activity'):
+ app.gajim_optional_features[a].append(nbxmpp.NS_ACTIVITY + \
'+notify')
- if gajim.config.get_per('accounts', a, 'publish_tune'):
- gajim.gajim_optional_features[a].append(nbxmpp.NS_TUNE)
- if gajim.config.get_per('accounts', a, 'publish_location'):
- gajim.gajim_optional_features[a].append(nbxmpp.NS_LOCATION)
- if gajim.config.get_per('accounts', a, 'subscribe_tune'):
- gajim.gajim_optional_features[a].append(nbxmpp.NS_TUNE + '+notify')
- if gajim.config.get_per('accounts', a, 'subscribe_nick'):
- gajim.gajim_optional_features[a].append(nbxmpp.NS_NICK + '+notify')
- if gajim.config.get_per('accounts', a, 'subscribe_location'):
- gajim.gajim_optional_features[a].append(nbxmpp.NS_LOCATION + \
+ if app.config.get_per('accounts', a, 'publish_tune'):
+ app.gajim_optional_features[a].append(nbxmpp.NS_TUNE)
+ if app.config.get_per('accounts', a, 'publish_location'):
+ app.gajim_optional_features[a].append(nbxmpp.NS_LOCATION)
+ if app.config.get_per('accounts', a, 'subscribe_tune'):
+ app.gajim_optional_features[a].append(nbxmpp.NS_TUNE + '+notify')
+ if app.config.get_per('accounts', a, 'subscribe_nick'):
+ app.gajim_optional_features[a].append(nbxmpp.NS_NICK + '+notify')
+ if app.config.get_per('accounts', a, 'subscribe_location'):
+ app.gajim_optional_features[a].append(nbxmpp.NS_LOCATION + \
'+notify')
- if gajim.config.get('outgoing_chat_state_notifactions') != 'disabled':
- gajim.gajim_optional_features[a].append(nbxmpp.NS_CHATSTATES)
- if not gajim.config.get('ignore_incoming_xhtml'):
- gajim.gajim_optional_features[a].append(nbxmpp.NS_XHTML_IM)
- if gajim.HAVE_PYCRYPTO \
- and gajim.config.get_per('accounts', a, 'enable_esessions'):
- gajim.gajim_optional_features[a].append(nbxmpp.NS_ESESSION)
- if gajim.config.get_per('accounts', a, 'answer_receipts'):
- gajim.gajim_optional_features[a].append(nbxmpp.NS_RECEIPTS)
- gajim.gajim_optional_features[a].append(nbxmpp.NS_JINGLE)
- if gajim.HAVE_FARSTREAM:
- gajim.gajim_optional_features[a].append(nbxmpp.NS_JINGLE_RTP)
- gajim.gajim_optional_features[a].append(nbxmpp.NS_JINGLE_RTP_AUDIO)
- gajim.gajim_optional_features[a].append(nbxmpp.NS_JINGLE_RTP_VIDEO)
- gajim.gajim_optional_features[a].append(nbxmpp.NS_JINGLE_ICE_UDP)
- gajim.gajim_optional_features[a].append(
+ if app.config.get('outgoing_chat_state_notifactions') != 'disabled':
+ app.gajim_optional_features[a].append(nbxmpp.NS_CHATSTATES)
+ if not app.config.get('ignore_incoming_xhtml'):
+ app.gajim_optional_features[a].append(nbxmpp.NS_XHTML_IM)
+ if app.HAVE_PYCRYPTO \
+ and app.config.get_per('accounts', a, 'enable_esessions'):
+ app.gajim_optional_features[a].append(nbxmpp.NS_ESESSION)
+ if app.config.get_per('accounts', a, 'answer_receipts'):
+ app.gajim_optional_features[a].append(nbxmpp.NS_RECEIPTS)
+ app.gajim_optional_features[a].append(nbxmpp.NS_JINGLE)
+ if app.HAVE_FARSTREAM:
+ app.gajim_optional_features[a].append(nbxmpp.NS_JINGLE_RTP)
+ app.gajim_optional_features[a].append(nbxmpp.NS_JINGLE_RTP_AUDIO)
+ app.gajim_optional_features[a].append(nbxmpp.NS_JINGLE_RTP_VIDEO)
+ app.gajim_optional_features[a].append(nbxmpp.NS_JINGLE_ICE_UDP)
+ app.gajim_optional_features[a].append(
nbxmpp.NS_JINGLE_FILE_TRANSFER_5)
- gajim.gajim_optional_features[a].append(nbxmpp.NS_JINGLE_XTLS)
- gajim.gajim_optional_features[a].append(nbxmpp.NS_JINGLE_BYTESTREAM)
- gajim.gajim_optional_features[a].append(nbxmpp.NS_JINGLE_IBB)
- gajim.caps_hash[a] = caps_cache.compute_caps_hash([gajim.gajim_identity],
- gajim.gajim_common_features + gajim.gajim_optional_features[a])
+ app.gajim_optional_features[a].append(nbxmpp.NS_JINGLE_XTLS)
+ app.gajim_optional_features[a].append(nbxmpp.NS_JINGLE_BYTESTREAM)
+ app.gajim_optional_features[a].append(nbxmpp.NS_JINGLE_IBB)
+ app.caps_hash[a] = caps_cache.compute_caps_hash([app.gajim_identity],
+ app.gajim_common_features + app.gajim_optional_features[a])
# re-send presence with new hash
- connected = gajim.connections[a].connected
- if connected > 1 and gajim.SHOW_LIST[connected] != 'invisible':
- gajim.connections[a].change_status(gajim.SHOW_LIST[connected],
- gajim.connections[a].status)
+ connected = app.connections[a].connected
+ if connected > 1 and app.SHOW_LIST[connected] != 'invisible':
+ app.connections[a].change_status(app.SHOW_LIST[connected],
+ app.connections[a].status)
def jid_is_blocked(account, jid):
- return ((jid in gajim.connections[account].blocked_contacts) or \
- gajim.connections[account].blocked_all)
+ return ((jid in app.connections[account].blocked_contacts) or \
+ app.connections[account].blocked_all)
def group_is_blocked(account, group):
- return ((group in gajim.connections[account].blocked_groups) or \
- gajim.connections[account].blocked_all)
+ return ((group in app.connections[account].blocked_groups) or \
+ app.connections[account].blocked_all)
def get_subscription_request_msg(account=None):
- s = gajim.config.get_per('accounts', account, 'subscription_request_msg')
+ s = app.config.get_per('accounts', account, 'subscription_request_msg')
if s:
return s
s = _('I would like to add you to my contact list.')
if account:
s = _('Hello, I am $name.') + ' ' + s
- our_jid = gajim.get_jid_from_account(account)
- vcard = gajim.connections[account].get_cached_vcard(our_jid)
+ our_jid = app.get_jid_from_account(account)
+ vcard = app.connections[account].get_cached_vcard(our_jid)
name = ''
if vcard:
if 'N' in vcard:
@@ -1505,7 +1505,7 @@ def get_subscription_request_msg(account=None):
name = vcard['N']['GIVEN'] + ' ' + vcard['N']['FAMILY']
if not name and 'FN' in vcard:
name = vcard['FN']
- nick = gajim.nicks[account]
+ nick = app.nicks[account]
if name and nick:
name += ' (%s)' % nick
elif nick:
@@ -1529,9 +1529,9 @@ def replace_dataform_media(form, stanza):
return found
def get_proxy_info(account):
- p = gajim.config.get_per('accounts', account, 'proxy')
+ p = app.config.get_per('accounts', account, 'proxy')
if not p:
- if gajim.config.get_per('accounts', account, 'use_env_http_proxy'):
+ if app.config.get_per('accounts', account, 'use_env_http_proxy'):
try:
try:
env_http_proxy = os.environ['HTTP_PROXY']
@@ -1565,10 +1565,10 @@ def get_proxy_info(account):
except Exception:
proxy = None
- p = gajim.config.get('global_proxy')
- if p and p in gajim.config.get_per('proxies'):
+ p = app.config.get('global_proxy')
+ if p and p in app.config.get_per('proxies'):
proxy = {}
- proxyptr = gajim.config.get_per('proxies', p)
+ proxyptr = app.config.get_per('proxies', p)
if not proxyptr:
return proxy
for key in proxyptr.keys():
@@ -1588,7 +1588,7 @@ def _get_img_direct(attrs):
socket.setdefaulttimeout(10)
try:
req = urllib.request.Request(attrs['src'])
- req.add_header('User-Agent', 'Gajim ' + gajim.version)
+ req.add_header('User-Agent', 'Gajim ' + app.version)
f = urllib.request.urlopen(req)
except Exception as ex:
log.debug('Error loading image %s ' % attrs['src'] + str(ex))
@@ -1638,7 +1638,7 @@ def _get_img_proxy(attrs, proxy):
Download an image through a proxy. This function should be launched in a
separated thread.
"""
- if not gajim.HAVE_PYCURL:
+ if not app.HAVE_PYCURL:
return '', _('PyCURL is not installed')
mem, alt, max_size = '', '', 2*1024*1024
if 'max_size' in attrs:
@@ -1654,7 +1654,7 @@ def _get_img_proxy(attrs, proxy):
c.setopt(pycurl.TIMEOUT, 10 * (max_size / 1048576))
c.setopt(pycurl.MAXFILESIZE, max_size)
c.setopt(pycurl.WRITEFUNCTION, b.write)
- c.setopt(pycurl.USERAGENT, 'Gajim ' + gajim.version)
+ c.setopt(pycurl.USERAGENT, 'Gajim ' + app.version)
# set proxy
c.setopt(pycurl.PROXY, proxy['host'].encode('utf-8'))
c.setopt(pycurl.PROXYPORT, proxy['port'])
diff --git a/gajim/common/i18n.py b/gajim/common/i18n.py
index 01ba2be89..b2368496e 100644
--- a/gajim/common/i18n.py
+++ b/gajim/common/i18n.py
@@ -24,7 +24,7 @@
import locale
import gettext
import os
-from common import defs
+from gajim.common import defs
import unicodedata
# May be changed after GTK is imported
diff --git a/gajim/common/jingle.py b/gajim/common/jingle.py
index 50a018f2a..469dfe555 100644
--- a/gajim/common/jingle.py
+++ b/gajim/common/jingle.py
@@ -31,14 +31,14 @@ Handles the jingle signalling protocol
import logging
import nbxmpp
-from common import helpers
-from common import gajim
+from gajim.common import helpers
+from gajim.common import app
-from common.jingle_session import JingleSession, JingleStates
-from common.jingle_ft import JingleFileTransfer
-from common.jingle_transport import JingleTransportSocks5, JingleTransportIBB
-if gajim.HAVE_FARSTREAM:
- from common.jingle_rtp import JingleAudio, JingleVideo
+from gajim.common.jingle_session import JingleSession, JingleStates
+from gajim.common.jingle_ft import JingleFileTransfer
+from gajim.common.jingle_transport import JingleTransportSocks5, JingleTransportIBB
+if app.HAVE_FARSTREAM:
+ from gajim.common.jingle_rtp import JingleAudio, JingleVideo
logger = logging.getLogger('gajim.c.jingle')
@@ -145,12 +145,12 @@ class ConnectionJingle(object):
def start_file_transfer(self, jid, file_props, request=False):
logger.info("start file transfer with file: %s", file_props)
- contact = gajim.contacts.get_contact_with_highest_priority(self.name,
- gajim.get_jid_without_resource(jid))
- if gajim.contacts.is_gc_contact(self.name, jid):
+ contact = app.contacts.get_contact_with_highest_priority(self.name,
+ app.get_jid_without_resource(jid))
+ if app.contacts.is_gc_contact(self.name, jid):
gcc = jid.split('/')
if len(gcc) == 2:
- contact = gajim.contacts.get_gc_contact(self.name, gcc[0], gcc[1])
+ contact = app.contacts.get_gc_contact(self.name, gcc[0], gcc[1])
if contact is None:
return
use_security = contact.supports(nbxmpp.NS_JINGLE_XTLS)
diff --git a/gajim/common/jingle_content.py b/gajim/common/jingle_content.py
index 2e1ba2680..0d4835606 100644
--- a/gajim/common/jingle_content.py
+++ b/gajim/common/jingle_content.py
@@ -18,10 +18,10 @@ Handles Jingle contents (XEP 0166)
"""
import os
-from common import gajim
+from gajim.common import app
import nbxmpp
-from .jingle_xtls import SELF_SIGNED_CERTIFICATE
-from .jingle_xtls import load_cert_file
+from gajim.common.jingle_xtls import SELF_SIGNED_CERTIFICATE
+from gajim.common.jingle_xtls import load_cert_file
contents = {}
@@ -206,7 +206,7 @@ class JingleContent:
hash_data = self._compute_hash()
if hash_data:
file_tag.addChild(node=hash_data)
- pjid = gajim.get_jid_without_resource(self.session.peerjid)
+ pjid = app.get_jid_without_resource(self.session.peerjid)
file_info = {'name' : self.file_props.name,
'file-name' : self.file_props.file_name,
'hash' : self.file_props.hash_,
@@ -221,7 +221,7 @@ class JingleContent:
if self.use_security:
security = nbxmpp.simplexml.Node(
tag=nbxmpp.NS_JINGLE_XTLS + ' security')
- certpath = os.path.join(gajim.MY_CERT_DIR, SELF_SIGNED_CERTIFICATE)\
+ certpath = os.path.join(app.MY_CERT_DIR, SELF_SIGNED_CERTIFICATE)\
+ '.cert'
cert = load_cert_file(certpath)
if cert:
diff --git a/gajim/common/jingle_ft.py b/gajim/common/jingle_ft.py
index bd24d0078..f0033702f 100644
--- a/gajim/common/jingle_ft.py
+++ b/gajim/common/jingle_ft.py
@@ -25,14 +25,14 @@ import os
import threading
from enum import IntEnum, unique
import nbxmpp
-from common import gajim
-from common import configpaths
-from common import jingle_xtls
-from common.jingle_content import contents, JingleContent
-from common.jingle_transport import JingleTransportSocks5, TransportType
-from common import helpers
-from common.connection_handlers_events import FileRequestReceivedEvent
-from common.jingle_ftstates import (
+from gajim.common import app
+from gajim.common import configpaths
+from gajim.common import jingle_xtls
+from gajim.common.jingle_content import contents, JingleContent
+from gajim.common.jingle_transport import JingleTransportSocks5, TransportType
+from gajim.common import helpers
+from gajim.common.connection_handlers_events import FileRequestReceivedEvent
+from gajim.common.jingle_ftstates import (
StateInitialized, StateCandSent, StateCandReceived, StateTransfering,
StateCandSentAndRecv, StateTransportReplace)
@@ -102,7 +102,7 @@ class JingleFileTransfer(JingleContent):
self.session = session
self.media = 'file'
self.nominated_cand = {}
- if gajim.contacts.is_gc_contact(session.connection.name,
+ if app.contacts.is_gc_contact(session.connection.name,
session.peerjid):
roomjid = session.peerjid.split('/')[0]
dstaddr = hashlib.sha1(('%s%s%s' % (self.file_props.sid,
@@ -137,7 +137,7 @@ class JingleFileTransfer(JingleContent):
def __on_session_initiate(self, stanza, content, error, action):
log.debug("Jingle FT request received")
- gajim.nec.push_incoming_event(FileRequestReceivedEvent(None,
+ app.nec.push_incoming_event(FileRequestReceivedEvent(None,
conn=self.session.connection,
stanza=stanza,
jingle_content=content,
@@ -157,7 +157,7 @@ class JingleFileTransfer(JingleContent):
payload=[self._compute_hash()])])
checksum.setNamespace(nbxmpp.NS_JINGLE_FILE_TRANSFER_5)
self.session.__session_info(checksum)
- pjid = gajim.get_jid_without_resource(self.session.peerjid)
+ pjid = app.get_jid_without_resource(self.session.peerjid)
file_info = {'name' : self.file_props.name,
'file-name' : self.file_props.file_name,
'hash' : self.file_props.hash_,
@@ -203,7 +203,7 @@ class JingleFileTransfer(JingleContent):
if fingerprint:
fingerprint = fingerprint.getData()
self.x509_fingerprint = fingerprint
- if not jingle_xtls.check_cert(gajim.get_jid_without_resource(
+ if not jingle_xtls.check_cert(app.get_jid_without_resource(
self.session.responder), fingerprint):
id_ = jingle_xtls.send_cert_request(con,
self.session.responder)
@@ -238,7 +238,7 @@ class JingleFileTransfer(JingleContent):
fingerprint = 'client'
if self.transport.type_ == TransportType.SOCKS5:
sid = self.file_props.transport_sid
- gajim.socks5queue.connect_to_hosts(self.session.connection.name,
+ app.socks5queue.connect_to_hosts(self.session.connection.name,
sid,
self.on_connect,
self._on_connect_error,
@@ -271,8 +271,8 @@ class JingleFileTransfer(JingleContent):
self.state >= State.CAND_SENT_AND_RECEIVED:
raise nbxmpp.NodeProcessed
if cand_error:
- if not gajim.socks5queue.listener.connections:
- gajim.socks5queue.listener.disconnect()
+ if not app.socks5queue.listener.connections:
+ app.socks5queue.listener.disconnect()
self.nominated_cand['peer-cand'] = False
if self.state == State.CAND_SENT:
if not self.nominated_cand['our-cand'] and \
@@ -298,13 +298,13 @@ class JingleFileTransfer(JingleContent):
streamhost_used = cand
break
if streamhost_used is None or streamhost_used['type'] == 'proxy':
- if gajim.socks5queue.listener and \
- not gajim.socks5queue.listener.connections:
- gajim.socks5queue.listener.disconnect()
+ if app.socks5queue.listener and \
+ not app.socks5queue.listener.connections:
+ app.socks5queue.listener.disconnect()
if content.getTag('transport').getTag('activated'):
self.state = State.TRANSFERING
- jid = gajim.get_jid_without_resource(self.session.ourjid)
- gajim.socks5queue.send_file(self.file_props,
+ jid = app.get_jid_without_resource(self.session.ourjid)
+ app.socks5queue.send_file(self.file_props,
self.session.connection.name, 'client')
return
args = {'content': content,
@@ -374,11 +374,11 @@ class JingleFileTransfer(JingleContent):
sha_str = helpers.get_auth_sha(self.file_props.sid, sender,
receiver)
self.file_props.sha_str = sha_str
- port = gajim.config.get('file_transfers_port')
+ port = app.config.get('file_transfers_port')
fingerprint = None
if self.use_security:
fingerprint = 'server'
- listener = gajim.socks5queue.start_listener(port, sha_str,
+ listener = app.socks5queue.start_listener(port, sha_str,
self._store_socks5_sid,
self.file_props,
fingerprint=fingerprint,
diff --git a/gajim/common/jingle_ftstates.py b/gajim/common/jingle_ftstates.py
index b07dd7bc6..157613e46 100644
--- a/gajim/common/jingle_ftstates.py
+++ b/gajim/common/jingle_ftstates.py
@@ -14,9 +14,9 @@
## along with Gajim. If not, see .
import nbxmpp
-from common import gajim
-from common.jingle_transport import TransportType
-from common.socks5 import Socks5ReceiverClient, Socks5SenderClient
+from gajim.common import app
+from gajim.common.jingle_transport import TransportType
+from gajim.common.socks5 import Socks5ReceiverClient, Socks5SenderClient
import logging
log = logging.getLogger('gajim.c.jingle_ftstates')
@@ -52,7 +52,7 @@ class StateInitialized(JingleFileTransferStates):
if self.jft.use_security:
fingerprint = 'client'
# Connect to the candidate host, on success call on_connect method
- gajim.socks5queue.connect_to_hosts(self.jft.session.connection.name,
+ app.socks5queue.connect_to_hosts(self.jft.session.connection.name,
self.jft.file_props.transport_sid, self.jft.on_connect,
self.jft._on_connect_error, fingerprint=fingerprint)
@@ -154,12 +154,12 @@ class StateTransfering(JingleFileTransferStates):
if self.jft.is_our_candidate_used():
mode = 'client'
streamhost_used = self.jft.nominated_cand['our-cand']
- gajim.socks5queue.remove_server(self.jft.file_props.transport_sid)
+ app.socks5queue.remove_server(self.jft.file_props.transport_sid)
else:
mode = 'server'
streamhost_used = self.jft.nominated_cand['peer-cand']
- gajim.socks5queue.remove_client(self.jft.file_props.transport_sid)
- gajim.socks5queue.remove_other_servers(streamhost_used['host'])
+ app.socks5queue.remove_client(self.jft.file_props.transport_sid)
+ app.socks5queue.remove_other_servers(streamhost_used['host'])
if streamhost_used['type'] == 'proxy':
self.jft.file_props.is_a_proxy = True
if self.jft.file_props.type_ == 's' and self.jft.weinitiate:
@@ -170,13 +170,13 @@ class StateTransfering(JingleFileTransferStates):
self.jft.file_props.proxy_receiver = streamhost_used[
'initiator']
if self.jft.file_props.type_ == 's':
- s = gajim.socks5queue.senders
+ s = app.socks5queue.senders
for sender in s:
if s[sender].host == streamhost_used['host'] and \
s[sender].connected:
return
elif self.jft.file_props.type_ == 'r':
- r = gajim.socks5queue.readers
+ r = app.socks5queue.readers
for reader in r:
if r[reader].host == streamhost_used['host'] and \
r[reader].connected:
@@ -190,32 +190,32 @@ class StateTransfering(JingleFileTransferStates):
self.jft.file_props.proxyhosts = []
self.jft.file_props.proxyhosts.append(streamhost_used)
if self.jft.file_props.type_ == 's':
- gajim.socks5queue.idx += 1
- idx = gajim.socks5queue.idx
- sockobj = Socks5SenderClient(gajim.idlequeue, idx,
- gajim.socks5queue, _sock=None,
+ app.socks5queue.idx += 1
+ idx = app.socks5queue.idx
+ sockobj = Socks5SenderClient(app.idlequeue, idx,
+ app.socks5queue, _sock=None,
host=str(streamhost_used['host']),
port=int(streamhost_used['port']),
fingerprint=None, connected=False,
file_props=self.jft.file_props)
else:
- sockobj = Socks5ReceiverClient(gajim.idlequeue, streamhost_used,
+ sockobj = Socks5ReceiverClient(app.idlequeue, streamhost_used,
transport_sid=self.jft.file_props.transport_sid,
file_props=self.jft.file_props, fingerprint=None)
sockobj.proxy = True
sockobj.streamhost = streamhost_used
- gajim.socks5queue.add_sockobj(self.jft.session.connection.name,
+ app.socks5queue.add_sockobj(self.jft.session.connection.name,
sockobj)
streamhost_used['idx'] = sockobj.queue_idx
# If we offered the nominated candidate used, we activate
# the proxy
if not self.jft.is_our_candidate_used():
- gajim.socks5queue.on_success[self.jft.file_props.transport_sid]\
+ app.socks5queue.on_success[self.jft.file_props.transport_sid]\
= self.jft.transport._on_proxy_auth_ok
# TODO: add on failure
else:
- jid = gajim.get_jid_without_resource(self.jft.session.ourjid)
- gajim.socks5queue.send_file(self.jft.file_props,
+ jid = app.get_jid_without_resource(self.jft.session.ourjid)
+ app.socks5queue.send_file(self.jft.file_props,
self.jft.session.connection.name, mode)
def action(self, args=None):
diff --git a/gajim/common/jingle_rtp.py b/gajim/common/jingle_rtp.py
index 12fc9a7e8..b6ead263e 100644
--- a/gajim/common/jingle_rtp.py
+++ b/gajim/common/jingle_rtp.py
@@ -27,12 +27,12 @@ gi.require_version('Gst', '1.0')
from gi.repository import Gst
from gi.repository import GLib
-from common import gajim
+from gajim.common import app
-from common.jingle_transport import JingleTransportICEUDP
-from common.jingle_content import contents, JingleContent, JingleContentSetupException
-from common.connection_handlers_events import InformationEvent
-from common.jingle_session import FailedApplication
+from gajim.common.jingle_transport import JingleTransportICEUDP
+from gajim.common.jingle_content import contents, JingleContent, JingleContentSetupException
+from gajim.common.connection_handlers_events import InformationEvent
+from gajim.common.jingle_session import FailedApplication
from collections import deque
@@ -90,8 +90,8 @@ class JingleRTPContent(JingleContent):
# due to bad controlling-mode
params = {'controlling-mode': self.session.weinitiate, 'debug': False}
- if gajim.config.get('use_stun_server'):
- stun_server = gajim.config.get('stun_server')
+ if app.config.get('use_stun_server'):
+ stun_server = app.config.get('stun_server')
if not stun_server and self.session.connection._stun_servers:
stun_server = self.session.connection._stun_servers[0]['host']
if stun_server:
@@ -112,12 +112,12 @@ class JingleRTPContent(JingleContent):
return JingleContent.is_ready(self) and self.candidates_ready
def make_bin_from_config(self, config_key, pipeline, text):
- pipeline = pipeline % gajim.config.get(config_key)
+ pipeline = pipeline % app.config.get(config_key)
try:
gst_bin = Gst.parse_bin_from_description(pipeline, True)
return gst_bin
except GLib.GError as e:
- gajim.nec.push_incoming_event(
+ app.nec.push_incoming_event(
InformationEvent(
None, conn=self.session.connection, level='error',
pri_txt=_('%s configuration error') % text.capitalize(),
@@ -224,7 +224,7 @@ class JingleRTPContent(JingleContent):
# or raise an error, Jingle way
# or maybe one-sided stream?
if not self.stream_failed_once:
- gajim.nec.push_incoming_event(
+ app.nec.push_incoming_event(
InformationEvent(
None, conn=self.session.connection, level='error',
pri_txt=_('GStreamer error'),
@@ -406,23 +406,23 @@ class JingleVideo(JingleRTPContent):
bus.connect('sync-message::element', self._on_sync_message)
# the local parts
- if gajim.config.get('video_framerate'):
+ if app.config.get('video_framerate'):
framerate = 'videorate ! video/x-raw,framerate=%s ! ' % \
- gajim.config.get('video_framerate')
+ app.config.get('video_framerate')
else:
framerate = ''
try:
- w, h = gajim.config.get('video_size').split('x')
+ w, h = app.config.get('video_size').split('x')
except:
w = h = None
if w and h:
video_size = 'video/x-raw,width=%s,height=%s ! ' % (w, h)
else:
video_size = ''
- if gajim.config.get('video_see_self'):
+ if app.config.get('video_see_self'):
tee = '! tee name=t ! queue ! videoscale ! ' + \
'video/x-raw,width=160,height=120 ! videoconvert ! ' + \
- '%s t. ! queue ' % gajim.config.get(
+ '%s t. ! queue ' % app.config.get(
'video_output_device')
else:
tee = ''
@@ -453,7 +453,7 @@ class JingleVideo(JingleRTPContent):
if message.get_structure().get_name() == 'prepare-window-handle':
message.src.set_property('force-aspect-ratio', True)
imagesink = message.src
- if gajim.config.get('video_see_self') and not self.out_xid_set:
+ if app.config.get('video_see_self') and not self.out_xid_set:
imagesink.set_window_handle(self.out_xid)
self.out_xid_set = True
else:
diff --git a/gajim/common/jingle_session.py b/gajim/common/jingle_session.py
index ae7166acd..e075e67cf 100644
--- a/gajim/common/jingle_session.py
+++ b/gajim/common/jingle_session.py
@@ -31,16 +31,16 @@ Handles Jingle sessions (XEP 0166)
import logging
from enum import Enum, unique
import nbxmpp
-from common import gajim
-from common.jingle_transport import get_jingle_transport, JingleTransportIBB
-from common.jingle_content import get_jingle_content, JingleContentSetupException, JingleContent
-from common.jingle_ft import State
-from common.connection_handlers_events import (
+from gajim.common import app
+from gajim.common.jingle_transport import get_jingle_transport, JingleTransportIBB
+from gajim.common.jingle_content import get_jingle_content, JingleContentSetupException, JingleContent
+from gajim.common.jingle_ft import State
+from gajim.common.connection_handlers_events import (
FilesProp, JingleRequestReceivedEvent, JingleDisconnectedReceivedEvent,
JingleTransferCancelledEvent, JingleConnectedReceivedEvent,
JingleErrorReceivedEvent)
-log = logging.getLogger("gajim.c.jingle_session")
+log = logging.getLogger("app.c.jingle_session")
# FIXME: Move it to JingleSession.States?
@unique
@@ -86,7 +86,7 @@ class JingleSession:
self.contents = {} # negotiated contents
self.connection = con # connection to use
# our full jid
- self.ourjid = gajim.get_jid_from_account(self.connection.name)
+ self.ourjid = app.get_jid_from_account(self.connection.name)
if con.server_resource:
self.ourjid = self.ourjid + '/' + con.server_resource
self.peerjid = jid # jid we connect to
@@ -462,7 +462,7 @@ class JingleSession:
if (creator, name) in self.contents:
content = self.contents[(creator, name)]
# TODO: this will fail if content is not an RTP content
- gajim.nec.push_incoming_event(JingleDisconnectedReceivedEvent(
+ app.nec.push_incoming_event(JingleDisconnectedReceivedEvent(
None, conn=self.connection, jingle_session=self,
media=content.media, reason='removed'))
content.destroy()
@@ -501,7 +501,7 @@ class JingleSession:
self.add_content(name, content, creator)
self.__content_reject(content)
self.contents[(content.creator, content.name)].destroy()
- gajim.nec.push_incoming_event(JingleRequestReceivedEvent(None,
+ app.nec.push_incoming_event(JingleRequestReceivedEvent(None,
conn=self.connection,
jingle_session=self,
contents=contents))
@@ -544,7 +544,7 @@ class JingleSession:
hash_data = hash_tag.getData() if hash_tag else None
n = request.getTag('file').getTag('name')
n = n.getData() if n else None
- pjid = gajim.get_jid_without_resource(self.peerjid)
+ pjid = app.get_jid_without_resource(self.peerjid)
file_info = self.connection.get_file_info(pjid, hash_data, n,
self.connection.name)
if not file_info:
@@ -563,7 +563,7 @@ class JingleSession:
raise nbxmpp.NodeProcessed
self.state = JingleStates.PENDING
# Send event about starting a session
- gajim.nec.push_incoming_event(JingleRequestReceivedEvent(None,
+ app.nec.push_incoming_event(JingleRequestReceivedEvent(None,
conn=self.connection,
jingle_session=self,
contents=contents[0]))
@@ -603,7 +603,7 @@ class JingleSession:
# TODO
text = reason
if reason == 'cancel' and self.session_type_ft:
- gajim.nec.push_incoming_event(JingleTransferCancelledEvent(None,
+ app.nec.push_incoming_event(JingleTransferCancelledEvent(None,
conn=self.connection,
jingle_session=self,
media=None,
@@ -656,7 +656,7 @@ class JingleSession:
if text:
text = '%s (%s)' % (error, text)
if type_ != 'modify':
- gajim.nec.push_incoming_event(JingleErrorReceivedEvent(None,
+ app.nec.push_incoming_event(JingleErrorReceivedEvent(None,
conn=self.connection,
jingle_session=self,
reason=text or error))
@@ -774,7 +774,7 @@ class JingleSession:
else:
text = reason
self.connection.delete_jingle_session(self.sid)
- gajim.nec.push_incoming_event(JingleDisconnectedReceivedEvent(None,
+ app.nec.push_incoming_event(JingleDisconnectedReceivedEvent(None,
conn=self.connection,
jingle_session=self,
media=None,
@@ -804,7 +804,7 @@ class JingleSession:
self.__append_content(jingle, content)
self.connection.connection.send(stanza)
# TODO: this will fail if content is not an RTP content
- gajim.nec.push_incoming_event(JingleDisconnectedReceivedEvent(None,
+ app.nec.push_incoming_event(JingleDisconnectedReceivedEvent(None,
conn=self.connection,
jingle_session=self,
media=content.media,
@@ -820,14 +820,14 @@ class JingleSession:
self.__append_content(jingle, content)
self.connection.connection.send(stanza)
# TODO: this will fail if content is not an RTP content
- gajim.nec.push_incoming_event(JingleDisconnectedReceivedEvent(None,
+ app.nec.push_incoming_event(JingleDisconnectedReceivedEvent(None,
conn=self.connection,
jingle_session=self,
media=content.media,
reason='removed'))
def content_negotiated(self, media):
- gajim.nec.push_incoming_event(JingleConnectedReceivedEvent(None,
+ app.nec.push_incoming_event(JingleConnectedReceivedEvent(None,
conn=self.connection,
jingle_session=self,
media=media))
diff --git a/gajim/common/jingle_transport.py b/gajim/common/jingle_transport.py
index d68e00a99..51ab5550b 100644
--- a/gajim/common/jingle_transport.py
+++ b/gajim/common/jingle_transport.py
@@ -21,7 +21,7 @@ import logging
import socket
from enum import IntEnum, unique
import nbxmpp
-from common import gajim
+from gajim.common import app
log = logging.getLogger('gajim.c.jingle_transport')
@@ -180,12 +180,12 @@ class JingleTransportSocks5(JingleTransport):
self.candidates.append(cand)
def _add_local_ips_as_candidates(self):
- if not gajim.config.get_per('accounts', self.connection.name,
+ if not app.config.get_per('accounts', self.connection.name,
'ft_send_local_ips'):
return
if not self.connection:
return
- port = int(gajim.config.get('file_transfers_port'))
+ port = int(app.config.get('file_transfers_port'))
#type preference of connection type. XEP-0260 section 2.2
type_preference = 126
priority = (2**16) * type_preference
@@ -275,8 +275,8 @@ class JingleTransportSocks5(JingleTransport):
type_preference = 126
priority = (2**16) * type_preference
additional_ip_cand = []
- port = int(gajim.config.get('file_transfers_port'))
- ft_add_hosts = gajim.config.get('ft_add_hosts_to_send')
+ port = int(app.config.get('file_transfers_port'))
+ ft_add_hosts = app.config.get('ft_add_hosts_to_send')
if ft_add_hosts:
hosts = [e.strip() for e in ft_add_hosts.split(',')]
@@ -426,7 +426,7 @@ class JingleTransportICEUDP(JingleTransport):
'network': '0',
'port': candidate.port,
'priority': int(candidate.priority), # hack
- 'id': gajim.get_an_id()
+ 'id': app.get_an_id()
}
if candidate.type in types:
attrs['type'] = types[candidate.type]
diff --git a/gajim/common/jingle_xtls.py b/gajim/common/jingle_xtls.py
index 10a60d815..7744df133 100644
--- a/gajim/common/jingle_xtls.py
+++ b/gajim/common/jingle_xtls.py
@@ -20,7 +20,7 @@ import logging
import os
import nbxmpp
-from common import gajim
+from gajim.common import app
log = logging.getLogger('gajim.c.jingle_xtls')
@@ -111,18 +111,18 @@ def get_context(fingerprint, verify_cb=None, remote_jid=None):
elif fingerprint == 'client':
ctx.set_verify(SSL.VERIFY_PEER, verify_cb or default_callback)
- cert_name = os.path.join(gajim.MY_CERT_DIR, SELF_SIGNED_CERTIFICATE)
+ cert_name = os.path.join(app.MY_CERT_DIR, SELF_SIGNED_CERTIFICATE)
ctx.use_privatekey_file((cert_name + '.pkey').encode('utf-8'))
ctx.use_certificate_file((cert_name + '.cert').encode('utf-8'))
# Try to load Diffie-Hellman parameters.
# First try user DH parameters, if this fails load the default DH parameters
- dh_params_name = os.path.join(gajim.MY_CERT_DIR, DH_PARAMS)
+ dh_params_name = os.path.join(app.MY_CERT_DIR, DH_PARAMS)
try:
with open(dh_params_name, "r") as dh_params_file:
ctx.load_tmp_dh(dh_params_name.encode('utf-8'))
except FileNotFoundError as err:
- default_dh_params_name = os.path.join(gajim.DATA_DIR,
+ default_dh_params_name = os.path.join(app.DATA_DIR,
'other', DEFAULT_DH_PARAMS)
try:
with open(default_dh_params_name, "r") as default_dh_params_file:
@@ -134,7 +134,7 @@ def get_context(fingerprint, verify_cb=None, remote_jid=None):
if remote_jid:
store = ctx.get_cert_store()
- path = os.path.join(os.path.expanduser(gajim.MY_PEER_CERTS_PATH),
+ path = os.path.join(os.path.expanduser(app.MY_PEER_CERTS_PATH),
remote_jid) + '.cert'
if os.path.exists(path):
load_cert_file(path, cert_store=store)
@@ -151,7 +151,7 @@ def read_cert(certpath):
return certificate
def send_cert(con, jid_from, sid):
- certpath = os.path.join(gajim.MY_CERT_DIR, SELF_SIGNED_CERTIFICATE) + \
+ certpath = os.path.join(app.MY_CERT_DIR, SELF_SIGNED_CERTIFICATE) + \
'.cert'
certificate = read_cert(certpath)
iq = nbxmpp.Iq('result', to=jid_from)
@@ -169,8 +169,8 @@ def send_cert(con, jid_from, sid):
con.send(iq)
def handle_new_cert(con, obj, jid_from):
- jid = gajim.get_jid_without_resource(jid_from)
- certpath = os.path.join(os.path.expanduser(gajim.MY_PEER_CERTS_PATH), jid)
+ jid = app.get_jid_without_resource(jid_from)
+ certpath = os.path.join(os.path.expanduser(app.MY_PEER_CERTS_PATH), jid)
certpath += '.cert'
id_ = obj.getAttr('id')
@@ -188,7 +188,7 @@ def handle_new_cert(con, obj, jid_from):
approve_pending_content(id_)
def check_cert(jid, fingerprint):
- certpath = os.path.join(os.path.expanduser(gajim.MY_PEER_CERTS_PATH), jid)
+ certpath = os.path.join(os.path.expanduser(app.MY_PEER_CERTS_PATH), jid)
certpath += '.cert'
if os.path.exists(certpath):
cert = load_cert_file(certpath)
diff --git a/gajim/common/location_listener.py b/gajim/common/location_listener.py
index 6542244f4..10afafa4d 100644
--- a/gajim/common/location_listener.py
+++ b/gajim/common/location_listener.py
@@ -20,8 +20,8 @@
from datetime import datetime
-from common import gajim
-from common import dbus_support
+from gajim.common import app
+from gajim.common import dbus_support
if dbus_support.supported:
import dbus
@@ -121,11 +121,11 @@ class LocationListener:
self._send_location()
def _send_location(self):
- accounts = gajim.connections.keys()
+ accounts = app.connections.keys()
for acct in accounts:
- if not gajim.account_is_connected(acct):
+ if not app.account_is_connected(acct):
continue
- if not gajim.config.get_per('accounts', acct, 'publish_location'):
+ if not app.config.get_per('accounts', acct, 'publish_location'):
continue
if self.location_info == self._data:
continue
@@ -136,7 +136,7 @@ class LocationListener:
del new_data['timestamp']
if last_data == new_data:
continue
- gajim.connections[acct].send_location(self._data)
+ app.connections[acct].send_location(self._data)
self.location_info = self._data.copy()
def _timestamp_to_utc(self, timestamp):
diff --git a/gajim/common/logger.py b/gajim/common/logger.py
index f3b0721d0..a1f5873bd 100644
--- a/gajim/common/logger.py
+++ b/gajim/common/logger.py
@@ -40,15 +40,15 @@ from io import BytesIO
from gi.repository import GLib
from enum import IntEnum, unique
-from common import exceptions
-from common import gajim
-from common import ged
+from gajim.common import exceptions
+from gajim.common import app
+from gajim.common import ged
import sqlite3 as sqlite
-LOG_DB_PATH = gajim.gajimpaths['LOG_DB']
+LOG_DB_PATH = app.gajimpaths['LOG_DB']
LOG_DB_FOLDER, LOG_DB_FILE = os.path.split(LOG_DB_PATH)
-CACHE_DB_PATH = gajim.gajimpaths['CACHE_DB']
+CACHE_DB_PATH = app.gajimpaths['CACHE_DB']
import logging
log = logging.getLogger('gajim.c.logger')
@@ -139,7 +139,7 @@ class Logger:
return named_row
def dispatch(self, event, error):
- gajim.ged.raise_event(event, None, str(error))
+ app.ged.raise_event(event, None, str(error))
def close_db(self):
if self.con:
@@ -196,7 +196,7 @@ class Logger:
"""
returns the timeout in epoch
"""
- timeout = gajim.config.get('restore_timeout')
+ timeout = app.config.get('restore_timeout')
now = int(time.time())
if timeout > 0:
@@ -284,7 +284,7 @@ class Logger:
returns a list of JIDs'
"""
- family = gajim.contacts.get_metacontacts_family(account, jid)
+ family = app.contacts.get_metacontacts_family(account, jid)
if family:
return [user['jid'] for user in family]
return [jid]
@@ -553,7 +553,7 @@ class Logger:
returns a list of namedtuples
"""
- restore = gajim.config.get('restore_lines')
+ restore = app.config.get('restore_lines')
if restore <= 0:
return []
@@ -914,9 +914,9 @@ class Logger:
# First we must reset roster_version value to ensure that the server
# sends back all the roster at the next connexion if the replacement
# didn't work properly.
- gajim.config.set_per('accounts', account_name, 'roster_version', '')
+ app.config.set_per('accounts', account_name, 'roster_version', '')
- account_jid = gajim.get_jid_from_account(account_name)
+ account_jid = app.get_jid_from_account(account_name)
account_jid_id = self.get_jid_id(account_jid)
# Delete old roster
@@ -931,7 +931,7 @@ class Logger:
# At this point, we are sure the replacement works properly so we can
# set the new roster_version value.
- gajim.config.set_per('accounts', account_name, 'roster_version',
+ app.config.set_per('accounts', account_name, 'roster_version',
roster_version)
def del_contact(self, account_jid, jid):
diff --git a/gajim/common/message_archiving.py b/gajim/common/message_archiving.py
index f102bbee6..2ac6843e2 100644
--- a/gajim/common/message_archiving.py
+++ b/gajim/common/message_archiving.py
@@ -23,10 +23,10 @@ from datetime import datetime, timedelta
import nbxmpp
-from common import gajim
-from common import ged
-from common.logger import KindConstant, JIDConstant
-import common.connection_handlers_events as ev
+from gajim.common import app
+from gajim.common import ged
+from gajim.common.logger import KindConstant, JIDConstant
+import gajim.common.connection_handlers_events as ev
log = logging.getLogger('gajim.c.message_archiving')
@@ -38,33 +38,33 @@ class ConnectionArchive313:
self.iq_answer = []
self.mam_query_date = None
self.mam_query_id = None
- gajim.nec.register_incoming_event(ev.MamMessageReceivedEvent)
- gajim.ged.register_event_handler('archiving-finished-legacy', ged.CORE,
+ app.nec.register_incoming_event(ev.MamMessageReceivedEvent)
+ app.ged.register_event_handler('archiving-finished-legacy', ged.CORE,
self._nec_result_finished)
- gajim.ged.register_event_handler('archiving-finished', ged.CORE,
+ app.ged.register_event_handler('archiving-finished', ged.CORE,
self._nec_result_finished)
- gajim.ged.register_event_handler('agent-info-error-received', ged.CORE,
+ app.ged.register_event_handler('agent-info-error-received', ged.CORE,
self._nec_agent_info_error)
- gajim.ged.register_event_handler('agent-info-received', ged.CORE,
+ app.ged.register_event_handler('agent-info-received', ged.CORE,
self._nec_agent_info)
- gajim.ged.register_event_handler('mam-decrypted-message-received',
+ app.ged.register_event_handler('mam-decrypted-message-received',
ged.CORE, self._nec_mam_decrypted_message_received)
- gajim.ged.register_event_handler(
+ app.ged.register_event_handler(
'archiving-313-preferences-changed-received', ged.CORE,
self._nec_archiving_313_preferences_changed_received)
def cleanup(self):
- gajim.ged.remove_event_handler('archiving-finished-legacy', ged.CORE,
+ app.ged.remove_event_handler('archiving-finished-legacy', ged.CORE,
self._nec_result_finished)
- gajim.ged.remove_event_handler('archiving-finished', ged.CORE,
+ app.ged.remove_event_handler('archiving-finished', ged.CORE,
self._nec_result_finished)
- gajim.ged.remove_event_handler('agent-info-error-received', ged.CORE,
+ app.ged.remove_event_handler('agent-info-error-received', ged.CORE,
self._nec_agent_info_error)
- gajim.ged.remove_event_handler('agent-info-received', ged.CORE,
+ app.ged.remove_event_handler('agent-info-received', ged.CORE,
self._nec_agent_info)
- gajim.ged.remove_event_handler('mam-decrypted-message-received',
+ app.ged.remove_event_handler('mam-decrypted-message-received',
ged.CORE, self._nec_mam_decrypted_message_received)
- gajim.ged.remove_event_handler(
+ app.ged.remove_event_handler(
'archiving-313-preferences-changed-received', ged.CORE,
self._nec_archiving_313_preferences_changed_received)
@@ -86,17 +86,17 @@ class ConnectionArchive313:
continue
# it's a groupchat
for msg_obj in self.mam_awaiting_disco_result[obj.jid]:
- gajim.logger.insert_jid(msg_obj.with_.getStripped(),
+ app.logger.insert_jid(msg_obj.with_.getStripped(),
type_=JIDConstant.ROOM_TYPE)
- gajim.nec.push_incoming_event(
+ app.nec.push_incoming_event(
ev.MamDecryptedMessageReceivedEvent(
None, disco=True, **vars(msg_obj)))
del self.mam_awaiting_disco_result[obj.jid]
return
# it's not a groupchat
for msg_obj in self.mam_awaiting_disco_result[obj.jid]:
- gajim.logger.insert_jid(msg_obj.with_.getStripped())
- gajim.nec.push_incoming_event(
+ app.logger.insert_jid(msg_obj.with_.getStripped())
+ app.nec.push_incoming_event(
ev.MamDecryptedMessageReceivedEvent(
None, disco=True, **vars(msg_obj)))
del self.mam_awaiting_disco_result[obj.jid]
@@ -113,13 +113,13 @@ class ConnectionArchive313:
last = set_.getTagData('last')
complete = obj.fin.getAttr('complete')
if last:
- gajim.config.set_per('accounts', self.name, 'last_mam_id', last)
+ app.config.set_per('accounts', self.name, 'last_mam_id', last)
if complete != 'true':
self.request_archive(self.get_query_id(), after=last)
if complete == 'true':
self.mam_query_id = None
if self.mam_query_date:
- gajim.config.set_per(
+ app.config.set_per(
'accounts', self.name,
'mam_start_date', self.mam_query_date.timestamp())
self.mam_query_date = None
@@ -127,10 +127,10 @@ class ConnectionArchive313:
def _nec_mam_decrypted_message_received(self, obj):
if obj.conn.name != self.name:
return
- duplicate = gajim.logger.search_for_duplicate(
+ duplicate = app.logger.search_for_duplicate(
obj.with_, obj.timestamp, obj.msgtxt)
if not duplicate:
- gajim.logger.insert_into_logs(
+ app.logger.insert_into_logs(
obj.with_, obj.timestamp, obj.kind,
unread=False,
message=obj.msgtxt)
@@ -140,7 +140,7 @@ class ConnectionArchive313:
return self.mam_query_id
def request_archive_on_signin(self):
- mam_id = gajim.config.get_per('accounts', self.name, 'last_mam_id')
+ mam_id = app.config.get_per('accounts', self.name, 'last_mam_id')
query_id = self.get_query_id()
if mam_id:
self.request_archive(query_id, after=mam_id)
@@ -184,7 +184,7 @@ class ConnectionArchive313:
self.connection.send(iq)
def request_archive_preferences(self):
- if not gajim.account_is_connected(self.name):
+ if not app.account_is_connected(self.name):
return
iq = nbxmpp.Iq(typ='get')
id_ = self.connection.getAnID()
@@ -193,7 +193,7 @@ class ConnectionArchive313:
self.connection.send(iq)
def set_archive_preferences(self, items, default):
- if not gajim.account_is_connected(self.name):
+ if not app.account_is_connected(self.name):
return
iq = nbxmpp.Iq(typ='set')
id_ = self.connection.getAnID()
@@ -211,6 +211,6 @@ class ConnectionArchive313:
self.connection.send(iq)
def _ArchiveCB(self, con, iq_obj):
- gajim.nec.push_incoming_event(ev.ArchivingReceivedEvent(None, conn=self,
+ app.nec.push_incoming_event(ev.ArchivingReceivedEvent(None, conn=self,
stanza=iq_obj))
raise nbxmpp.NodeProcessed
diff --git a/gajim/common/nec.py b/gajim/common/nec.py
index af8465870..d59842843 100644
--- a/gajim/common/nec.py
+++ b/gajim/common/nec.py
@@ -26,7 +26,7 @@ Network Events Controller.
'''
#from plugins.helpers import log
-from common import gajim
+from gajim.common import app
class NetworkEventsController(object):
@@ -72,12 +72,12 @@ class NetworkEventsController(object):
def push_incoming_event(self, event_object):
if event_object.generate():
- if not gajim.ged.raise_event(event_object.name, event_object):
+ if not app.ged.raise_event(event_object.name, event_object):
self._generate_events_based_on_incoming_event(event_object)
def push_outgoing_event(self, event_object):
if event_object.generate():
- if not gajim.ged.raise_event(event_object.name, event_object):
+ if not app.ged.raise_event(event_object.name, event_object):
self._generate_events_based_on_outgoing_event(event_object)
def _generate_events_based_on_incoming_event(self, event_object):
@@ -96,7 +96,7 @@ class NetworkEventsController(object):
new_event_object = new_event_class(None,
base_event=event_object)
if new_event_object.generate():
- if not gajim.ged.raise_event(new_event_object.name,
+ if not app.ged.raise_event(new_event_object.name,
new_event_object):
self._generate_events_based_on_incoming_event(
new_event_object)
@@ -117,7 +117,7 @@ class NetworkEventsController(object):
new_event_object = new_event_class(None,
base_event=event_object)
if new_event_object.generate():
- if not gajim.ged.raise_event(new_event_object.name,
+ if not app.ged.raise_event(new_event_object.name,
new_event_object):
self._generate_events_based_on_outgoing_event(
new_event_object)
diff --git a/gajim/common/optparser.py b/gajim/common/optparser.py
index b4696334d..273558b70 100644
--- a/gajim/common/optparser.py
+++ b/gajim/common/optparser.py
@@ -30,12 +30,12 @@ import os
import sys
import re
from time import time
-from common import gajim
-from common import helpers
-from common import caps_cache
+from gajim.common import app
+from gajim.common import helpers
+from gajim.common import caps_cache
import sqlite3 as sqlite
-from common import logger
+from gajim.common import logger
import logging
log = logging.getLogger('gajim.c.optparser')
@@ -56,7 +56,7 @@ class OptionsParser:
file=sys.stderr)
return False
- new_version = gajim.config.get('version')
+ new_version = app.config.get('version')
new_version = new_version.split('-', 1)[0]
seen = set()
regex = re.compile(r"(?P[^.=]+)(?:(?:\.(?P.+))?\.(?P[^.=]+))?\s=\s(?P.*)")
@@ -69,19 +69,19 @@ class OptionsParser:
optname, key, subname, value = match.groups()
if key is None:
self.old_values[optname] = value
- gajim.config.set(optname, value)
+ app.config.set(optname, value)
else:
if (optname, key) not in seen:
if optname in self.old_values:
self.old_values[optname][key] = {}
else:
self.old_values[optname] = {key: {}}
- gajim.config.add_per(optname, key)
+ app.config.add_per(optname, key)
seen.add((optname, key))
self.old_values[optname][key][subname] = value
- gajim.config.set_per(optname, key, subname, value)
+ app.config.set_per(optname, key, subname, value)
- old_version = gajim.config.get('version')
+ old_version = app.config.get('version')
old_version = old_version.split('-', 1)[0]
self.update_config(old_version, new_version)
@@ -113,7 +113,7 @@ class OptionsParser:
except IOError as e:
return str(e)
try:
- gajim.config.foreach(self.write_line, f)
+ app.config.foreach(self.write_line, f)
except IOError as e:
return str(e)
f.flush()
@@ -241,9 +241,9 @@ class OptionsParser:
if old < [0, 16, 10, 5] and new >= [0, 16, 10, 5]:
self.update_config_to_016105()
- gajim.logger.init_vars()
- gajim.logger.attach_cache_database()
- gajim.config.set('version', new_version)
+ app.logger.init_vars()
+ app.logger.attach_cache_database()
+ app.config.set('version', new_version)
caps_cache.capscache.initialize_from_db()
@@ -267,7 +267,7 @@ class OptionsParser:
'''
)
con.commit()
- gajim.logger.init_vars()
+ app.logger.init_vars()
except sqlite.OperationalError:
pass
con.close()
@@ -278,8 +278,8 @@ class OptionsParser:
to_remove = []
if to_add is None:
to_add = []
- for account in gajim.config.get_per('accounts'):
- proxies_str = gajim.config.get_per('accounts', account,
+ for account in app.config.get_per('accounts'):
+ proxies_str = app.config.get_per('accounts', account,
'file_transfer_proxies')
proxies = [p.strip() for p in proxies_str.split(',')]
for wrong_proxy in to_remove:
@@ -289,23 +289,23 @@ class OptionsParser:
if new_proxy not in proxies:
proxies.append(new_proxy)
proxies_str = ', '.join(proxies)
- gajim.config.set_per('accounts', account, 'file_transfer_proxies',
+ app.config.set_per('accounts', account, 'file_transfer_proxies',
proxies_str)
def update_config_x_to_09(self):
# Var name that changed:
# avatar_width /height -> chat_avatar_width / height
if 'avatar_width' in self.old_values:
- gajim.config.set('chat_avatar_width', self.old_values['avatar_width'])
+ app.config.set('chat_avatar_width', self.old_values['avatar_width'])
if 'avatar_height' in self.old_values:
- gajim.config.set('chat_avatar_height', self.old_values['avatar_height'])
+ app.config.set('chat_avatar_height', self.old_values['avatar_height'])
if 'use_dbus' in self.old_values:
- gajim.config.set('remote_control', self.old_values['use_dbus'])
+ app.config.set('remote_control', self.old_values['use_dbus'])
# always_compact_view -> always_compact_view_chat / _gc
if 'always_compact_view' in self.old_values:
- gajim.config.set('always_compact_view_chat',
+ app.config.set('always_compact_view_chat',
self.old_values['always_compact_view'])
- gajim.config.set('always_compact_view_gc',
+ app.config.set('always_compact_view_gc',
self.old_values['always_compact_view'])
# new theme: grocery, plain
d = ['accounttextcolor', 'accountbgcolor', 'accountfont',
@@ -314,64 +314,64 @@ class OptionsParser:
'contactfontattrs', 'bannertextcolor', 'bannerbgcolor', 'bannerfont',
'bannerfontattrs']
for theme_name in (_('grocery'), _('default')):
- if theme_name not in gajim.config.get_per('themes'):
- gajim.config.add_per('themes', theme_name)
- theme = gajim.config.themes_default[theme_name]
+ if theme_name not in app.config.get_per('themes'):
+ app.config.add_per('themes', theme_name)
+ theme = app.config.themes_default[theme_name]
for o in d:
- gajim.config.set_per('themes', theme_name, o, theme[d.index(o)])
+ app.config.set_per('themes', theme_name, o, theme[d.index(o)])
# Remove cyan theme if it's not the current theme
- if 'cyan' in gajim.config.get_per('themes'):
- gajim.config.del_per('themes', 'cyan')
- if _('cyan') in gajim.config.get_per('themes'):
- gajim.config.del_per('themes', _('cyan'))
+ if 'cyan' in app.config.get_per('themes'):
+ app.config.del_per('themes', 'cyan')
+ if _('cyan') in app.config.get_per('themes'):
+ app.config.del_per('themes', _('cyan'))
# If we removed our roster_theme, choose the default green one or another
# one if doesn't exists in config
- if gajim.config.get('roster_theme') not in gajim.config.get_per('themes'):
+ if app.config.get('roster_theme') not in app.config.get_per('themes'):
theme = _('green')
- if theme not in gajim.config.get_per('themes'):
- theme = gajim.config.get_per('themes')[0]
- gajim.config.set('roster_theme', theme)
+ if theme not in app.config.get_per('themes'):
+ theme = app.config.get_per('themes')[0]
+ app.config.set('roster_theme', theme)
# new proxies in accounts.name.file_transfer_proxies
self.update_ft_proxies(to_add=['proxy.netlab.cz'])
- gajim.config.set('version', '0.9')
+ app.config.set('version', '0.9')
def update_config_09_to_010(self):
if 'usetabbedchat' in self.old_values and not \
self.old_values['usetabbedchat']:
- gajim.config.set('one_message_window', 'never')
+ app.config.set('one_message_window', 'never')
if 'autodetect_browser_mailer' in self.old_values and \
self.old_values['autodetect_browser_mailer'] is True:
- gajim.config.set('autodetect_browser_mailer', False)
+ app.config.set('autodetect_browser_mailer', False)
if 'useemoticons' in self.old_values and \
not self.old_values['useemoticons']:
- gajim.config.set('emoticons_theme', '')
+ app.config.set('emoticons_theme', '')
if 'always_compact_view_chat' in self.old_values and \
self.old_values['always_compact_view_chat'] != 'False':
- gajim.config.set('always_hide_chat_buttons', True)
+ app.config.set('always_hide_chat_buttons', True)
if 'always_compact_view_gc' in self.old_values and \
self.old_values['always_compact_view_gc'] != 'False':
- gajim.config.set('always_hide_groupchat_buttons', True)
+ app.config.set('always_hide_groupchat_buttons', True)
self.update_ft_proxies(to_remove=['proxy65.jabber.autocom.pl',
'proxy65.jabber.ccc.de'], to_add=['transfer.jabber.freenet.de'])
# create unread_messages table if needed
self.assert_unread_msgs_table_exists()
- gajim.config.set('version', '0.10')
+ app.config.set('version', '0.10')
def update_config_to_01011(self):
if 'print_status_in_muc' in self.old_values and \
self.old_values['print_status_in_muc'] in (True, False):
- gajim.config.set('print_status_in_muc', 'in_and_out')
- gajim.config.set('version', '0.10.1.1')
+ app.config.set('print_status_in_muc', 'in_and_out')
+ app.config.set('version', '0.10.1.1')
def update_config_to_01012(self):
# See [6456]
if 'emoticons_theme' in self.old_values and \
self.old_values['emoticons_theme'] == 'Disabled':
- gajim.config.set('emoticons_theme', '')
- gajim.config.set('version', '0.10.1.2')
+ app.config.set('emoticons_theme', '')
+ app.config.set('version', '0.10.1.2')
def update_config_to_01013(self):
"""
@@ -396,7 +396,7 @@ class OptionsParser:
except sqlite.OperationalError:
pass
con.close()
- gajim.config.set('version', '0.10.1.3')
+ app.config.set('version', '0.10.1.3')
def update_config_to_01014(self):
"""
@@ -422,7 +422,7 @@ class OptionsParser:
except Exception:
pass
con.close()
- gajim.config.set('version', '0.10.1.4')
+ app.config.set('version', '0.10.1.4')
def update_config_to_01015(self):
"""
@@ -443,7 +443,7 @@ class OptionsParser:
con.commit()
cur.close() # remove this in 2007 [pysqlite old versions need this]
con.close()
- gajim.config.set('version', '0.10.1.5')
+ app.config.set('version', '0.10.1.5')
def update_config_to_01016(self):
"""
@@ -452,46 +452,46 @@ class OptionsParser:
"""
if 'notify_on_all_muc_messages' in self.old_values and \
self.old_values['notify_on_all_muc_messages'] == 'False' and \
- gajim.config.get_per('soundevents', 'muc_message_received', 'enabled'):
- gajim.config.set_per('soundevents',\
+ app.config.get_per('soundevents', 'muc_message_received', 'enabled'):
+ app.config.set_per('soundevents',\
'muc_message_received', 'enabled', False)
- gajim.config.set('version', '0.10.1.6')
+ app.config.set('version', '0.10.1.6')
def update_config_to_01017(self):
"""
trayicon_notification_on_new_messages -> trayicon_notification_on_events
"""
if 'trayicon_notification_on_new_messages' in self.old_values:
- gajim.config.set('trayicon_notification_on_events',
+ app.config.set('trayicon_notification_on_events',
self.old_values['trayicon_notification_on_new_messages'])
- gajim.config.set('version', '0.10.1.7')
+ app.config.set('version', '0.10.1.7')
def update_config_to_01018(self):
"""
chat_state_notifications -> outgoing_chat_state_notifications
"""
if 'chat_state_notifications' in self.old_values:
- gajim.config.set('outgoing_chat_state_notifications',
+ app.config.set('outgoing_chat_state_notifications',
self.old_values['chat_state_notifications'])
- gajim.config.set('version', '0.10.1.8')
+ app.config.set('version', '0.10.1.8')
def update_config_to_01101(self):
"""
Fill time_stamp from before_time and after_time
"""
if 'before_time' in self.old_values:
- gajim.config.set('time_stamp', '%s%%X%s ' % (
+ app.config.set('time_stamp', '%s%%X%s ' % (
self.old_values['before_time'], self.old_values['after_time']))
- gajim.config.set('version', '0.11.0.1')
+ app.config.set('version', '0.11.0.1')
def update_config_to_01102(self):
"""
Fill time_stamp from before_time and after_time
"""
if 'ft_override_host_to_send' in self.old_values:
- gajim.config.set('ft_add_hosts_to_send',
+ app.config.set('ft_add_hosts_to_send',
self.old_values['ft_override_host_to_send'])
- gajim.config.set('version', '0.11.0.2')
+ app.config.set('version', '0.11.0.2')
def update_config_to_01111(self):
"""
@@ -499,9 +499,9 @@ class OptionsParser:
"""
if 'always_hide_groupchat_buttons' in self.old_values and \
'always_hide_chat_buttons' in self.old_values:
- gajim.config.set('compact_view', self.old_values['always_hide_groupchat_buttons'] and \
+ app.config.set('compact_view', self.old_values['always_hide_groupchat_buttons'] and \
self.old_values['always_hide_chat_buttons'])
- gajim.config.set('version', '0.11.1.1')
+ app.config.set('version', '0.11.1.1')
def update_config_to_01112(self):
"""
@@ -509,8 +509,8 @@ class OptionsParser:
"""
if 'roster_theme' in self.old_values and \
self.old_values['roster_theme'] == 'gtk+':
- gajim.config.set('roster_theme', _('default'))
- gajim.config.set('version', '0.11.1.2')
+ app.config.set('roster_theme', _('default'))
+ app.config.set('version', '0.11.1.2')
def update_config_to_01113(self):
# copy&pasted from update_config_to_01013, possibly 'FIXME see #2812' applies too
@@ -534,7 +534,7 @@ class OptionsParser:
except sqlite.OperationalError:
pass
con.close()
- gajim.config.set('version', '0.11.1.3')
+ app.config.set('version', '0.11.1.3')
def update_config_to_01114(self):
# add default theme if it doesn't exist
@@ -544,20 +544,20 @@ class OptionsParser:
'contactfontattrs', 'bannertextcolor', 'bannerbgcolor', 'bannerfont',
'bannerfontattrs']
theme_name = _('default')
- if theme_name not in gajim.config.get_per('themes'):
- gajim.config.add_per('themes', theme_name)
- if gajim.config.get_per('themes', 'gtk+'):
+ if theme_name not in app.config.get_per('themes'):
+ app.config.add_per('themes', theme_name)
+ if app.config.get_per('themes', 'gtk+'):
# copy from old gtk+ theme
for o in d:
- val = gajim.config.get_per('themes', 'gtk+', o)
- gajim.config.set_per('themes', theme_name, o, val)
- gajim.config.del_per('themes', 'gtk+')
+ val = app.config.get_per('themes', 'gtk+', o)
+ app.config.set_per('themes', theme_name, o, val)
+ app.config.del_per('themes', 'gtk+')
else:
# copy from default theme
- theme = gajim.config.themes_default[theme_name]
+ theme = app.config.themes_default[theme_name]
for o in d:
- gajim.config.set_per('themes', theme_name, o, theme[d.index(o)])
- gajim.config.set('version', '0.11.1.4')
+ app.config.set_per('themes', theme_name, o, theme[d.index(o)])
+ app.config.set('version', '0.11.1.4')
def update_config_to_01115(self):
# copy&pasted from update_config_to_01013, possibly 'FIXME see #2812' applies too
@@ -576,11 +576,11 @@ class OptionsParser:
except sqlite.OperationalError:
pass
con.close()
- gajim.config.set('version', '0.11.1.5')
+ app.config.set('version', '0.11.1.5')
def update_config_to_01121(self):
# remove old unencrypted secrets file
- from common.configpaths import gajimpaths
+ from gajim.common.configpaths import gajimpaths
new_file = gajimpaths['SECRETS_FILE']
@@ -589,7 +589,7 @@ class OptionsParser:
if os.path.exists(old_file):
os.remove(old_file)
- gajim.config.set('version', '0.11.2.1')
+ app.config.set('version', '0.11.2.1')
def update_config_to_01141(self):
back = os.getcwd()
@@ -612,25 +612,25 @@ class OptionsParser:
except sqlite.OperationalError:
pass
con.close()
- gajim.config.set('version', '0.11.4.1')
+ app.config.set('version', '0.11.4.1')
def update_config_to_01142(self):
"""
next_message_received sound event is splittedin 2 events
"""
- gajim.config.add_per('soundevents', 'next_message_received_focused')
- gajim.config.add_per('soundevents', 'next_message_received_unfocused')
- if gajim.config.get_per('soundevents', 'next_message_received'):
- enabled = gajim.config.get_per('soundevents', 'next_message_received',
+ app.config.add_per('soundevents', 'next_message_received_focused')
+ app.config.add_per('soundevents', 'next_message_received_unfocused')
+ if app.config.get_per('soundevents', 'next_message_received'):
+ enabled = app.config.get_per('soundevents', 'next_message_received',
'enabled')
- path = gajim.config.get_per('soundevents', 'next_message_received',
+ path = app.config.get_per('soundevents', 'next_message_received',
'path')
- gajim.config.del_per('soundevents', 'next_message_received')
- gajim.config.set_per('soundevents', 'next_message_received_focused',
+ app.config.del_per('soundevents', 'next_message_received')
+ app.config.set_per('soundevents', 'next_message_received_focused',
'enabled', enabled)
- gajim.config.set_per('soundevents', 'next_message_received_focused',
+ app.config.set_per('soundevents', 'next_message_received_focused',
'path', path)
- gajim.config.set('version', '0.11.1.2')
+ app.config.set('version', '0.11.1.2')
def update_config_to_01143(self):
back = os.getcwd()
@@ -651,7 +651,7 @@ class OptionsParser:
except sqlite.OperationalError:
pass
con.close()
- gajim.config.set('version', '0.11.4.3')
+ app.config.set('version', '0.11.4.3')
def update_config_to_01144(self):
back = os.getcwd()
@@ -678,71 +678,71 @@ class OptionsParser:
except sqlite.OperationalError:
pass
con.close()
- gajim.config.set('version', '0.11.4.4')
+ app.config.set('version', '0.11.4.4')
def update_config_to_01201(self):
if 'uri_schemes' in self.old_values:
new_values = self.old_values['uri_schemes'].replace(' mailto', '').\
replace(' xmpp', '')
- gajim.config.set('uri_schemes', new_values)
- gajim.config.set('version', '0.12.0.1')
+ app.config.set('uri_schemes', new_values)
+ app.config.set('version', '0.12.0.1')
def update_config_to_01211(self):
if 'trayicon' in self.old_values:
if self.old_values['trayicon'] == 'False':
- gajim.config.set('trayicon', 'never')
+ app.config.set('trayicon', 'never')
else:
- gajim.config.set('trayicon', 'always')
- gajim.config.set('version', '0.12.1.1')
+ app.config.set('trayicon', 'always')
+ app.config.set('version', '0.12.1.1')
def update_config_to_01212(self):
for opt in ('ignore_unknown_contacts', 'send_os_info',
'log_encrypted_sessions'):
if opt in self.old_values:
val = self.old_values[opt]
- for account in gajim.config.get_per('accounts'):
- gajim.config.set_per('accounts', account, opt, val)
- gajim.config.set('version', '0.12.1.2')
+ for account in app.config.get_per('accounts'):
+ app.config.set_per('accounts', account, opt, val)
+ app.config.set('version', '0.12.1.2')
def update_config_to_01213(self):
- msgs = gajim.config.statusmsg_default
- for msg_name in gajim.config.get_per('statusmsg'):
+ msgs = app.config.statusmsg_default
+ for msg_name in app.config.get_per('statusmsg'):
if msg_name in msgs:
- gajim.config.set_per('statusmsg', msg_name, 'activity',
+ app.config.set_per('statusmsg', msg_name, 'activity',
msgs[msg_name][1])
- gajim.config.set_per('statusmsg', msg_name, 'subactivity',
+ app.config.set_per('statusmsg', msg_name, 'subactivity',
msgs[msg_name][2])
- gajim.config.set_per('statusmsg', msg_name, 'activity_text',
+ app.config.set_per('statusmsg', msg_name, 'activity_text',
msgs[msg_name][3])
- gajim.config.set_per('statusmsg', msg_name, 'mood',
+ app.config.set_per('statusmsg', msg_name, 'mood',
msgs[msg_name][4])
- gajim.config.set_per('statusmsg', msg_name, 'mood_text',
+ app.config.set_per('statusmsg', msg_name, 'mood_text',
msgs[msg_name][5])
- gajim.config.set('version', '0.12.1.3')
+ app.config.set('version', '0.12.1.3')
def update_config_to_01214(self):
for status in ['online', 'chat', 'away', 'xa', 'dnd', 'invisible',
'offline']:
if 'last_status_msg_' + status in self.old_values:
- gajim.config.add_per('statusmsg', '_last_' + status)
- gajim.config.set_per('statusmsg', '_last_' + status, 'message',
+ app.config.add_per('statusmsg', '_last_' + status)
+ app.config.set_per('statusmsg', '_last_' + status, 'message',
self.old_values['last_status_msg_' + status])
- gajim.config.set('version', '0.12.1.4')
+ app.config.set('version', '0.12.1.4')
def update_config_to_01215(self):
"""
Remove hardcoded ../data/sounds from config
"""
- dirs = ['../data', gajim.gajimpaths.data_root, gajim.DATA_DIR]
+ dirs = ['../data', app.gajimpaths.data_root, app.DATA_DIR]
if os.name != 'nt':
dirs.append(os.path.expanduser('~/.gajim'))
- for evt in gajim.config.get_per('soundevents'):
- path = gajim.config.get_per('soundevents', evt, 'path')
+ for evt in app.config.get_per('soundevents'):
+ path = app.config.get_per('soundevents', evt, 'path')
# absolute and relative passes are necessary
path = helpers.strip_soundfile_path(path, dirs, abs=False)
path = helpers.strip_soundfile_path(path, dirs, abs=True)
- gajim.config.set_per('soundevents', evt, 'path', path)
- gajim.config.set('version', '0.12.1.5')
+ app.config.set_per('soundevents', evt, 'path', path)
+ app.config.set('version', '0.12.1.5')
def update_config_to_01231(self):
back = os.getcwd()
@@ -774,7 +774,7 @@ class OptionsParser:
except sqlite.OperationalError:
pass
con.close()
- gajim.config.set('version', '0.12.3.1')
+ app.config.set('version', '0.12.3.1')
def update_config_from_0125(self):
# All those functions need to be called for 0.12.5 to 0.13 transition
@@ -801,24 +801,24 @@ class OptionsParser:
except sqlite.OperationalError:
pass
con.close()
- gajim.config.set('version', '0.12.5.1')
+ app.config.set('version', '0.12.5.1')
def update_config_to_01252(self):
if 'alwaysauth' in self.old_values:
val = self.old_values['alwaysauth']
- for account in gajim.config.get_per('accounts'):
- gajim.config.set_per('accounts', account, 'autoauth', val)
- gajim.config.set('version', '0.12.5.2')
+ for account in app.config.get_per('accounts'):
+ app.config.set_per('accounts', account, 'autoauth', val)
+ app.config.set('version', '0.12.5.2')
def update_config_to_01253(self):
if 'enable_zeroconf' in self.old_values:
val = self.old_values['enable_zeroconf']
- for account in gajim.config.get_per('accounts'):
- if gajim.config.get_per('accounts', account, 'is_zeroconf'):
- gajim.config.set_per('accounts', account, 'active', val)
+ for account in app.config.get_per('accounts'):
+ if app.config.get_per('accounts', account, 'is_zeroconf'):
+ app.config.set_per('accounts', account, 'active', val)
else:
- gajim.config.set_per('accounts', account, 'active', True)
- gajim.config.set('version', '0.12.5.3')
+ app.config.set_per('accounts', account, 'active', True)
+ app.config.set('version', '0.12.5.3')
def update_config_to_01254(self):
vals = {'inmsgcolor': ['#a34526', '#a40000'],
@@ -833,8 +833,8 @@ class OptionsParser:
val = self.old_values[c]
if val == vals[c][0]:
# We didn't change default value, so update it with new default
- gajim.config.set(c, vals[c][1])
- gajim.config.set('version', '0.12.5.4')
+ app.config.set(c, vals[c][1])
+ app.config.set('version', '0.12.5.4')
def update_config_to_01255(self):
vals = {'statusmsgcolor': ['#73d216', '#4e9a06'],
@@ -845,8 +845,8 @@ class OptionsParser:
val = self.old_values[c]
if val == vals[c][0]:
# We didn't change default value, so update it with new default
- gajim.config.set(c, vals[c][1])
- gajim.config.set('version', '0.12.5.5')
+ app.config.set(c, vals[c][1])
+ app.config.set('version', '0.12.5.5')
def update_config_to_01256(self):
vals = {'gc_nicknames_colors': ['#4e9a06:#f57900:#ce5c00:#3465a4:#204a87:#75507b:#5c3566:#c17d11:#8f5902:#ef2929:#cc0000:#a40000', '#f57900:#ce5c00:#204a87:#75507b:#5c3566:#c17d11:#8f5902:#ef2929:#cc0000:#a40000']}
@@ -856,22 +856,22 @@ class OptionsParser:
val = self.old_values[c]
if val == vals[c][0]:
# We didn't change default value, so update it with new default
- gajim.config.set(c, vals[c][1])
- gajim.config.set('version', '0.12.5.6')
+ app.config.set(c, vals[c][1])
+ app.config.set('version', '0.12.5.6')
def update_config_to_01257(self):
if 'iconset' in self.old_values:
if self.old_values['iconset'] in ('nuvola', 'crystal', 'gossip',
'simplebulb', 'stellar'):
- gajim.config.set('iconset', gajim.config.DEFAULT_ICONSET)
- gajim.config.set('version', '0.12.5.7')
+ app.config.set('iconset', app.config.DEFAULT_ICONSET)
+ app.config.set('version', '0.12.5.7')
def update_config_to_01258(self):
self.update_ft_proxies(to_remove=['proxy65.talkonaut.com',
'proxy.jabber.org', 'proxy.netlab.cz', 'transfer.jabber.freenet.de',
'proxy.jabber.cd.chalmers.se'], to_add=['proxy.eu.jabber.org',
'proxy.jabber.ru', 'proxy.jabbim.cz'])
- gajim.config.set('version', '0.12.5.8')
+ app.config.set('version', '0.12.5.8')
def update_config_to_013100(self):
back = os.getcwd()
@@ -890,7 +890,7 @@ class OptionsParser:
except sqlite.OperationalError:
pass
con.close()
- gajim.config.set('version', '0.13.10.0')
+ app.config.set('version', '0.13.10.0')
def update_config_to_013101(self):
back = os.getcwd()
@@ -911,36 +911,36 @@ class OptionsParser:
except sqlite.OperationalError:
pass
con.close()
- gajim.config.set('version', '0.13.10.1')
+ app.config.set('version', '0.13.10.1')
def update_config_to_013901(self):
schemes = 'aaa:// aaas:// acap:// cap:// cid: crid:// data: dav: dict:// dns: fax: file:/ ftp:// geo: go: gopher:// h323: http:// https:// iax: icap:// im: imap:// info: ipp:// iris: iris.beep: iris.xpc: iris.xpcs: iris.lwz: ldap:// mid: modem: msrp:// msrps:// mtqp:// mupdate:// news: nfs:// nntp:// opaquelocktoken: pop:// pres: prospero:// rtsp:// service: shttp:// sip: sips: sms: snmp:// soap.beep:// soap.beeps:// tag: tel: telnet:// tftp:// thismessage:/ tip:// tv: urn:// vemmi:// xmlrpc.beep:// xmlrpc.beeps:// z39.50r:// z39.50s:// about: apt: cvs:// daap:// ed2k:// feed: fish:// git:// iax2: irc:// ircs:// ldaps:// magnet: mms:// rsync:// ssh:// svn:// sftp:// smb:// webcal://'
- gajim.config.set('uri_schemes', schemes)
- gajim.config.set('version', '0.13.90.1')
+ app.config.set('uri_schemes', schemes)
+ app.config.set('version', '0.13.90.1')
def update_config_to_01401(self):
if 'autodetect_browser_mailer' not in self.old_values or 'openwith' \
not in self.old_values or \
(self.old_values['autodetect_browser_mailer'] == False and \
self.old_values['openwith'] != 'custom'):
- gajim.config.set('autodetect_browser_mailer', True)
- gajim.config.set('openwith', gajim.config.DEFAULT_OPENWITH)
- gajim.config.set('version', '0.14.0.1')
+ app.config.set('autodetect_browser_mailer', True)
+ app.config.set('openwith', app.config.DEFAULT_OPENWITH)
+ app.config.set('version', '0.14.0.1')
def update_config_to_014900(self):
if 'use_stun_server' in self.old_values and self.old_values[
'use_stun_server'] and not self.old_values['stun_server']:
- gajim.config.set('use_stun_server', False)
+ app.config.set('use_stun_server', False)
if os.name == 'nt':
- gajim.config.set('autodetect_browser_mailer', True)
+ app.config.set('autodetect_browser_mailer', True)
def update_config_to_01601(self):
if 'last_mam_id' in self.old_values:
last_mam_id = self.old_values['last_mam_id']
- for account in gajim.config.get_per('accounts'):
- gajim.config.set_per('accounts', account, 'last_mam_id',
+ for account in app.config.get_per('accounts'):
+ app.config.set_per('accounts', account, 'last_mam_id',
last_mam_id)
- gajim.config.set('version', '0.16.0.1')
+ app.config.set('version', '0.16.0.1')
def update_config_to_01641(self):
for account in self.old_values['accounts'].keys():
@@ -948,21 +948,21 @@ class OptionsParser:
'connection_types'].split()
if 'plain' in connection_types and len(connection_types) > 1:
connection_types.remove('plain')
- gajim.config.set_per('accounts', account, 'connection_types',
+ app.config.set_per('accounts', account, 'connection_types',
' '.join(connection_types))
- gajim.config.set('version', '0.16.4.1')
+ app.config.set('version', '0.16.4.1')
def update_config_to_016101(self):
if 'video_input_device' in self.old_values:
if self.old_values['video_input_device'] == 'autovideosrc ! videoscale ! ffmpegcolorspace':
- gajim.config.set('video_input_device', 'autovideosrc')
+ app.config.set('video_input_device', 'autovideosrc')
if self.old_values['video_input_device'] == 'videotestsrc is-live=true ! video/x-raw-yuv,framerate=10/1':
- gajim.config.set('video_input_device', 'videotestsrc is-live=true ! video/x-raw,framerate=10/1')
- gajim.config.set('version', '0.16.10.1')
+ app.config.set('video_input_device', 'videotestsrc is-live=true ! video/x-raw,framerate=10/1')
+ app.config.set('version', '0.16.10.1')
def update_config_to_016102(self):
for account in self.old_values['accounts'].keys():
- gajim.config.del_per('accounts', account, 'minimized_gc')
+ app.config.del_per('accounts', account, 'minimized_gc')
back = os.getcwd()
os.chdir(logger.LOG_DB_FOLDER)
@@ -980,7 +980,7 @@ class OptionsParser:
pass
con.close()
- gajim.config.set('version', '0.16.10.2')
+ app.config.set('version', '0.16.10.2')
def update_config_to_016103(self):
back = os.getcwd()
@@ -1002,13 +1002,13 @@ class OptionsParser:
except sqlite.OperationalError:
pass
con.close()
- gajim.config.set('version', '0.16.10.3')
+ app.config.set('version', '0.16.10.3')
def update_config_to_016104(self):
- gajim.config.set('emoticons_theme', 'noto-emoticons')
- gajim.config.set('version', '0.16.10.4')
+ app.config.set('emoticons_theme', 'noto-emoticons')
+ app.config.set('version', '0.16.10.4')
def update_config_to_016105(self):
- gajim.config.set('muc_restore_timeout', -1)
- gajim.config.set('restore_timeout', -1)
- gajim.config.set('version', '0.16.10.5')
+ app.config.set('muc_restore_timeout', -1)
+ app.config.set('restore_timeout', -1)
+ app.config.set('version', '0.16.10.5')
diff --git a/gajim/common/passwords.py b/gajim/common/passwords.py
index 088b1e163..c97996e0f 100644
--- a/gajim/common/passwords.py
+++ b/gajim/common/passwords.py
@@ -27,7 +27,7 @@
import os
import logging
import gi
-from common import gajim
+from gajim.common import app
__all__ = ['get_password', 'save_password']
@@ -69,15 +69,15 @@ class LibSecretPasswordStorage(PasswordStorage):
)
def get_password(self, account_name):
- server = gajim.config.get_per('accounts', account_name, 'hostname')
- user = gajim.config.get_per('accounts', account_name, 'name')
+ server = app.config.get_per('accounts', account_name, 'hostname')
+ user = app.config.get_per('accounts', account_name, 'name')
password = self.Secret.password_lookup_sync(self.GAJIM_SCHEMA,
{'user': user, 'server': server, 'protocol': 'xmpp'}, None)
return password
def save_password(self, account_name, password, update=True):
- server = gajim.config.get_per('accounts', account_name, 'hostname')
- user = gajim.config.get_per('accounts', account_name, 'name')
+ server = app.config.get_per('accounts', account_name, 'hostname')
+ user = app.config.get_per('accounts', account_name, 'name')
display_name = _('XMPP account %s@%s') % (user, server)
attributes = {'user': user, 'server': server, 'protocol': 'xmpp'}
return self.Secret.password_store_sync(self.GAJIM_SCHEMA, attributes,
@@ -123,7 +123,7 @@ class PasswordStorageManager(PasswordStorage):
"""
# TODO: handle disappearing backends
- if gajim.config.get('use_keyring'):
+ if app.config.get('use_keyring'):
if os.name == 'nt' and keyring:
self.winsecret = SecretWindowsPasswordStorage()
else:
@@ -133,7 +133,7 @@ class PasswordStorageManager(PasswordStorage):
log.debug("Could not connect to libsecret: %s" % e)
def get_password(self, account_name):
- pw = gajim.config.get_per('accounts', account_name, 'password')
+ pw = app.config.get_per('accounts', account_name, 'password')
if not pw:
return pw
if pw.startswith(LibSecretPasswordStorage.identifier) and \
@@ -156,15 +156,15 @@ class PasswordStorageManager(PasswordStorage):
def save_password(self, account_name, password):
if self.preferred_backend:
if self.preferred_backend.save_password(account_name, password):
- gajim.config.set_per('accounts', account_name, 'password',
+ app.config.set_per('accounts', account_name, 'password',
self.preferred_backend.identifier)
- if account_name in gajim.connections:
- gajim.connections[account_name].password = password
+ if account_name in app.connections:
+ app.connections[account_name].password = password
return True
- gajim.config.set_per('accounts', account_name, 'password', password)
- if account_name in gajim.connections:
- gajim.connections[account_name].password = password
+ app.config.set_per('accounts', account_name, 'password', password)
+ if account_name in app.connections:
+ app.connections[account_name].password = password
return True
def set_preferred_backend(self):
@@ -192,6 +192,6 @@ def get_password(account_name):
return get_storage().get_password(account_name)
def save_password(account_name, password):
- if account_name in gajim.connections:
- gajim.connections[account_name].set_password(password)
+ if account_name in app.connections:
+ app.connections[account_name].set_password(password)
return get_storage().save_password(account_name, password)
diff --git a/gajim/common/pep.py b/gajim/common/pep.py
index 4a96a085a..004296c12 100644
--- a/gajim/common/pep.py
+++ b/gajim/common/pep.py
@@ -221,7 +221,7 @@ import logging
log = logging.getLogger('gajim.c.pep')
import nbxmpp
-from common import gajim
+from gajim.common import app
class AbstractPEP(object):
@@ -242,7 +242,7 @@ class AbstractPEP(object):
self._pep_specific_data, self._retracted = self._extract_info(items)
self._update_contacts(jid, account)
- if jid == gajim.get_jid_from_account(account):
+ if jid == app.get_jid_from_account(account):
self._update_account(account)
def _extract_info(self, items):
@@ -250,7 +250,7 @@ class AbstractPEP(object):
raise NotImplementedError
def _update_contacts(self, jid, account):
- for contact in gajim.contacts.get_contacts(account, jid):
+ for contact in app.contacts.get_contacts(account, jid):
if self._retracted:
if self.type_ in contact.pep:
del contact.pep[self.type_]
@@ -258,7 +258,7 @@ class AbstractPEP(object):
contact.pep[self.type_] = self
def _update_account(self, account):
- acc = gajim.connections[account]
+ acc = app.connections[account]
if self._retracted:
if self.type_ in acc.pep:
del acc.pep[self.type_]
@@ -417,14 +417,14 @@ class UserNicknamePEP(AbstractPEP):
def _update_contacts(self, jid, account):
nick = '' if self._retracted else self._pep_specific_data
- for contact in gajim.contacts.get_contacts(account, jid):
+ for contact in app.contacts.get_contacts(account, jid):
contact.contact_name = nick
def _update_account(self, account):
if self._retracted:
- gajim.nicks[account] = gajim.config.get_per('accounts', account, 'name')
+ app.nicks[account] = app.config.get_per('accounts', account, 'name')
else:
- gajim.nicks[account] = self._pep_specific_data
+ app.nicks[account] = self._pep_specific_data
class UserLocationPEP(AbstractPEP):
@@ -450,7 +450,7 @@ class UserLocationPEP(AbstractPEP):
def _update_account(self, account):
AbstractPEP._update_account(self, account)
- con = gajim.connections[account].location_info = \
+ con = app.connections[account].location_info = \
self._pep_specific_data
def asMarkupText(self):
diff --git a/gajim/common/protocol/bytestream.py b/gajim/common/protocol/bytestream.py
index 136b262d0..606dc432b 100644
--- a/gajim/common/protocol/bytestream.py
+++ b/gajim/common/protocol/bytestream.py
@@ -34,12 +34,12 @@ from gi.repository import GLib
import time
import nbxmpp
-from common import gajim
-from common import helpers
-from common import ged
-from common import jingle_xtls
-from common.file_props import FilesProp
-from common.socks5 import Socks5SenderClient
+from gajim.common import app
+from gajim.common import helpers
+from gajim.common import ged
+from gajim.common import jingle_xtls
+from gajim.common.file_props import FilesProp
+from gajim.common.socks5 import Socks5SenderClient
import logging
log = logging.getLogger('gajim.c.p.bytestream')
@@ -79,15 +79,15 @@ def is_transfer_stopped(file_props):
class ConnectionBytestream:
def __init__(self):
- gajim.ged.register_event_handler('file-request-received', ged.GUI1,
+ app.ged.register_event_handler('file-request-received', ged.GUI1,
self._nec_file_request_received)
def cleanup(self):
- gajim.ged.remove_event_handler('file-request-received', ged.GUI1,
+ app.ged.remove_event_handler('file-request-received', ged.GUI1,
self._nec_file_request_received)
def _ft_get_our_jid(self):
- our_jid = gajim.get_jid_from_account(self.name)
+ our_jid = app.get_jid_from_account(self.name)
resource = self.server_resource
return our_jid + '/' + resource
@@ -156,7 +156,7 @@ class ConnectionBytestream:
if content.use_security:
fingerprint = content.x509_fingerprint
if not jingle_xtls.check_cert(
- gajim.get_jid_without_resource(file_props.sender),
+ app.get_jid_without_resource(file_props.sender),
fingerprint):
id_ = jingle_xtls.send_cert_request(self,
file_props.sender)
@@ -256,8 +256,8 @@ class ConnectionBytestream:
raise nbxmpp.NodeProcessed
def _siSetCB(self, con, iq_obj):
- from common.connection_handlers_events import FileRequestReceivedEvent
- gajim.nec.push_incoming_event(FileRequestReceivedEvent(None, conn=self,
+ from gajim.common.connection_handlers_events import FileRequestReceivedEvent
+ app.nec.push_incoming_event(FileRequestReceivedEvent(None, conn=self,
stanza=iq_obj))
raise nbxmpp.NodeProcessed
@@ -274,8 +274,8 @@ class ConnectionBytestream:
return
jid = self._ft_get_from(iq_obj)
file_props.error = -3
- from common.connection_handlers_events import FileRequestErrorEvent
- gajim.nec.push_incoming_event(FileRequestErrorEvent(None, conn=self,
+ from gajim.common.connection_handlers_events import FileRequestErrorEvent
+ app.nec.push_incoming_event(FileRequestErrorEvent(None, conn=self,
jid=jid, file_props=file_props, error_msg=''))
raise nbxmpp.NodeProcessed
@@ -308,9 +308,9 @@ class ConnectionSocks5Bytestream(ConnectionBytestream):
if contact.get_full_jid() == receiver_jid:
file_props.error = -5
self.remove_transfer(file_props)
- from common.connection_handlers_events import \
+ from gajim.common.connection_handlers_events import \
FileRequestErrorEvent
- gajim.nec.push_incoming_event(FileRequestErrorEvent(None,
+ app.nec.push_incoming_event(FileRequestErrorEvent(None,
conn=self, jid=contact.jid, file_props=file_props,
error_msg=''))
sender_jid = file_props.sender
@@ -335,13 +335,13 @@ class ConnectionSocks5Bytestream(ConnectionBytestream):
if file_props is None:
return
if file_props.hash_:
- gajim.socks5queue.remove_sender(file_props.hash_)
+ app.socks5queue.remove_sender(file_props.hash_)
if file_props.streamhosts:
for host in file_props.streamhosts:
if 'idx' in host and host['idx'] > 0:
- gajim.socks5queue.remove_receiver(host['idx'])
- gajim.socks5queue.remove_sender(host['idx'])
+ app.socks5queue.remove_receiver(host['idx'])
+ app.socks5queue.remove_sender(host['idx'])
def _send_socks5_info(self, file_props):
"""
@@ -355,13 +355,13 @@ class ConnectionSocks5Bytestream(ConnectionBytestream):
sha_str = helpers.get_auth_sha(file_props.sid, sender, receiver)
file_props.sha_str = sha_str
- port = gajim.config.get('file_transfers_port')
- listener = gajim.socks5queue.start_listener(port, sha_str,
+ port = app.config.get('file_transfers_port')
+ listener = app.socks5queue.start_listener(port, sha_str,
self._result_socks5_sid, file_props)
if not listener:
file_props.error = -5
- from common.connection_handlers_events import FileRequestErrorEvent
- gajim.nec.push_incoming_event(FileRequestErrorEvent(None, conn=self,
+ from gajim.common.connection_handlers_events import FileRequestErrorEvent
+ app.nec.push_incoming_event(FileRequestErrorEvent(None, conn=self,
jid=receiver, file_props=file_props, error_msg=''))
self._connect_error(file_props.sid, error='not-acceptable',
error_type='modify')
@@ -387,7 +387,7 @@ class ConnectionSocks5Bytestream(ConnectionBytestream):
streamhost.setAttr('jid', sender)
def _add_local_ips_as_streamhosts_to_query(self, query, file_props):
- if not gajim.config.get_per('accounts', self.name, 'ft_send_local_ips'):
+ if not app.config.get_per('accounts', self.name, 'ft_send_local_ips'):
return
try:
my_ips = [self.peerhost[0]] # The ip we're connected to server with
@@ -397,18 +397,18 @@ class ConnectionSocks5Bytestream(ConnectionBytestream):
my_ips.append(addr[4][0])
sender = file_props.sender
- port = gajim.config.get('file_transfers_port')
+ port = app.config.get('file_transfers_port')
self._add_streamhosts_to_query(query, sender, port, my_ips)
except socket.gaierror:
- from common.connection_handlers_events import InformationEvent
- gajim.nec.push_incoming_event(InformationEvent(None, conn=self,
+ from gajim.common.connection_handlers_events import InformationEvent
+ app.nec.push_incoming_event(InformationEvent(None, conn=self,
level='error', pri_txt=_('Wrong host'),
sec_txt=_('Invalid local address? :-O')))
def _add_addiditional_streamhosts_to_query(self, query, file_props):
sender = file_props.sender
- port = gajim.config.get('file_transfers_port')
- ft_add_hosts_to_send = gajim.config.get('ft_add_hosts_to_send')
+ port = app.config.get('file_transfers_port')
+ ft_add_hosts_to_send = app.config.get('ft_add_hosts_to_send')
additional_hosts = []
if ft_add_hosts_to_send:
additional_hosts = [e.strip() for e in ft_add_hosts_to_send.split(',')]
@@ -417,7 +417,7 @@ class ConnectionSocks5Bytestream(ConnectionBytestream):
self._add_streamhosts_to_query(query, sender, port, additional_hosts)
def _add_upnp_igd_as_streamhost_to_query(self, query, file_props, iq):
- if not gajim.HAVE_UPNP_IGD:
+ if not app.HAVE_UPNP_IGD:
self.connection.send(iq)
return
@@ -458,18 +458,18 @@ class ConnectionSocks5Bytestream(ConnectionBytestream):
if self.no_gupnp_reply_id:
GLib.source_remove(self.no_gupnp_reply_id)
self.no_gupnp_reply_id = 0
- gajim.gupnp_igd.disconnect(self.ok_id)
- gajim.gupnp_igd.disconnect(self.fail_id)
+ app.gupnp_igd.disconnect(self.ok_id)
+ app.gupnp_igd.disconnect(self.fail_id)
def ok(s, proto, ext_ip, re, ext_port, local_ip, local_port, desc):
log.debug('Got GUPnP-IGD answer: external: %s:%s, internal: %s:%s',
ext_ip, ext_port, local_ip, local_port)
- if local_port != gajim.config.get('file_transfers_port'):
+ if local_port != app.config.get('file_transfers_port'):
sender = file_props.sender
receiver = file_props.receiver
sha_str = helpers.get_auth_sha(file_props.sid, sender,
receiver)
- listener = gajim.socks5queue.start_listener(local_port, sha_str,
+ listener = app.socks5queue.start_listener(local_port, sha_str,
self._result_socks5_sid, file_props.sid)
if listener:
self._add_streamhosts_to_query(query, sender, ext_port,
@@ -488,19 +488,19 @@ class ConnectionSocks5Bytestream(ConnectionBytestream):
def no_upnp_reply():
log.debug('Got not GUPnP-IGD answer')
# stop trying to use it
- gajim.HAVE_UPNP_IGD = False
+ app.HAVE_UPNP_IGD = False
self.no_gupnp_reply_id = 0
self.connection.send(iq)
cleanup_gupnp()
return False
- self.ok_id = gajim.gupnp_igd.connect('mapped-external-port', ok)
- self.fail_id = gajim.gupnp_igd.connect('error-mapping-port', fail)
+ self.ok_id = app.gupnp_igd.connect('mapped-external-port', ok)
+ self.fail_id = app.gupnp_igd.connect('error-mapping-port', fail)
- port = gajim.config.get('file_transfers_port')
+ port = app.config.get('file_transfers_port')
self.no_gupnp_reply_id = GLib.timeout_add_seconds(10, no_upnp_reply)
- gajim.gupnp_igd.add_port('TCP', 0, my_ip, port, 3600,
+ app.gupnp_igd.add_port('TCP', 0, my_ip, port, 3600,
'Gajim file transfer')
def _add_proxy_streamhosts_to_query(self, query, file_props):
@@ -515,16 +515,16 @@ class ConnectionSocks5Bytestream(ConnectionBytestream):
proxyhost['port'], [proxyhost['host']])
def _get_file_transfer_proxies_from_config(self, file_props):
- configured_proxies = gajim.config.get_per('accounts', self.name,
+ configured_proxies = app.config.get_per('accounts', self.name,
'file_transfer_proxies')
- shall_use_proxies = gajim.config.get_per('accounts', self.name,
+ shall_use_proxies = app.config.get_per('accounts', self.name,
'use_ft_proxies')
if shall_use_proxies:
proxyhost_dicts = []
proxies = []
if configured_proxies:
proxies = [item.strip() for item in configured_proxies.split(',')]
- default_proxy = gajim.proxy65_manager.get_default_for_name(self.name)
+ default_proxy = app.proxy65_manager.get_default_for_name(self.name)
if default_proxy:
# add/move default proxy at top of the others
if default_proxy in proxies:
@@ -532,7 +532,7 @@ class ConnectionSocks5Bytestream(ConnectionBytestream):
proxies.insert(0, default_proxy)
for proxy in proxies:
- (host, _port, jid) = gajim.proxy65_manager.get_proxy(proxy, self.name)
+ (host, _port, jid) = app.proxy65_manager.get_proxy(proxy, self.name)
if not host:
continue
host_dict = {
@@ -582,9 +582,9 @@ class ConnectionSocks5Bytestream(ConnectionBytestream):
if msg:
self.disconnect_transfer(file_props)
file_props.error = -3
- from common.connection_handlers_events import \
+ from gajim.common.connection_handlers_events import \
FileRequestErrorEvent
- gajim.nec.push_incoming_event(FileRequestErrorEvent(None,
+ app.nec.push_incoming_event(FileRequestErrorEvent(None,
conn=self, jid=to, file_props=file_props, error_msg=msg))
def _proxy_auth_ok(self, proxy):
@@ -609,15 +609,15 @@ class ConnectionSocks5Bytestream(ConnectionBytestream):
id_ = iq_obj.getAttr('id')
frm = helpers.get_full_jid_from_iq(iq_obj)
query = iq_obj.getTag('query')
- gajim.proxy65_manager.error_cb(frm, query)
+ app.proxy65_manager.error_cb(frm, query)
jid = helpers.get_jid_from_iq(iq_obj)
id_ = id_[3:]
file_props = FilesProp.getFilePropBySid(id_)
if not file_props:
return
file_props.error = -4
- from common.connection_handlers_events import FileRequestErrorEvent
- gajim.nec.push_incoming_event(FileRequestErrorEvent(None, conn=self,
+ from gajim.common.connection_handlers_events import FileRequestErrorEvent
+ app.nec.push_incoming_event(FileRequestErrorEvent(None, conn=self,
jid=jid, file_props=file_props, error_msg=''))
raise nbxmpp.NodeProcessed
@@ -654,7 +654,7 @@ class ConnectionSocks5Bytestream(ConnectionBytestream):
file_props.streamhosts.extend(streamhosts)
else:
file_props.streamhosts = streamhosts
- gajim.socks5queue.connect_to_hosts(self.name, sid,
+ app.socks5queue.connect_to_hosts(self.name, sid,
self.send_success_connect_reply, None)
raise nbxmpp.NodeProcessed
else:
@@ -666,7 +666,7 @@ class ConnectionSocks5Bytestream(ConnectionBytestream):
self._connect_error(sid, 'item-not-found', 'cancel',
msg='Could not connect to given hosts')
if file_props.type_ == 'r':
- gajim.socks5queue.connect_to_hosts(self.name, sid,
+ app.socks5queue.connect_to_hosts(self.name, sid,
self.send_success_connect_reply, _connection_error)
raise nbxmpp.NodeProcessed
@@ -682,14 +682,14 @@ class ConnectionSocks5Bytestream(ConnectionBytestream):
if file_props.streamhost_used:
for host in file_props.proxyhosts:
if host['initiator'] == frm and 'idx' in host:
- gajim.socks5queue.activate_proxy(host['idx'])
+ app.socks5queue.activate_proxy(host['idx'])
raise nbxmpp.NodeProcessed
def _bytestreamResultCB(self, con, iq_obj):
frm = self._ft_get_from(iq_obj)
real_id = iq_obj.getAttr('id')
query = iq_obj.getTag('query')
- gajim.proxy65_manager.resolve_result(frm, query)
+ app.proxy65_manager.resolve_result(frm, query)
try:
streamhost = query.getTag('streamhost-used')
@@ -709,7 +709,7 @@ class ConnectionSocks5Bytestream(ConnectionBytestream):
for host in file_props.proxyhosts:
if host['initiator'] == frm and \
query.getAttr('sid') == file_props.sid:
- gajim.socks5queue.activate_proxy(host['idx'])
+ app.socks5queue.activate_proxy(host['idx'])
break
raise nbxmpp.NodeProcessed
jid = self._ft_get_streamhost_jid_attr(streamhost)
@@ -720,7 +720,7 @@ class ConnectionSocks5Bytestream(ConnectionBytestream):
if file_props.stopped:
self.remove_transfer(file_props)
else:
- gajim.socks5queue.send_file(file_props, self.name)
+ app.socks5queue.send_file(file_props, self.name)
raise nbxmpp.NodeProcessed
proxy = None
@@ -736,22 +736,22 @@ class ConnectionSocks5Bytestream(ConnectionBytestream):
file_props.streamhost_used = True
file_props.streamhosts.append(proxy)
file_props.is_a_proxy = True
- idx = gajim.socks5queue.idx
- sender = Socks5SenderClient(gajim.idlequeue, idx,
- gajim.socks5queue, _sock=None, host=str(proxy['host']),
+ idx = app.socks5queue.idx
+ sender = Socks5SenderClient(app.idlequeue, idx,
+ app.socks5queue, _sock=None, host=str(proxy['host']),
port=int(proxy['port']), fingerprint=None,
connected=False, file_props=file_props)
sender.streamhost = proxy
- gajim.socks5queue.add_sockobj(self.name, sender)
+ app.socks5queue.add_sockobj(self.name, sender)
proxy['idx'] = sender.queue_idx
- gajim.socks5queue.on_success[file_props.sid] = self._proxy_auth_ok
+ app.socks5queue.on_success[file_props.sid] = self._proxy_auth_ok
raise nbxmpp.NodeProcessed
else:
if file_props.stopped:
self.remove_transfer(file_props)
else:
- gajim.socks5queue.send_file(file_props, self.name, 'server')
+ app.socks5queue.send_file(file_props, self.name, 'server')
raise nbxmpp.NodeProcessed
@@ -785,7 +785,7 @@ class ConnectionIBBytestream(ConnectionBytestream):
elif not file_props.connected:
log.debug('Received IQ for closed filetransfer, IQ dropped')
elif typ == 'error':
- gajim.socks5queue.error_cb()
+ app.socks5queue.error_cb()
else:
conn.send(nbxmpp.Error(stanza, nbxmpp.ERR_BAD_REQUEST))
raise nbxmpp.NodeProcessed
@@ -841,7 +841,7 @@ class ConnectionIBBytestream(ConnectionBytestream):
payload=[nbxmpp.Node(nbxmpp.NS_IBB + ' close',
{'sid':file_props.transport_sid})]))
if file_props.completed:
- gajim.socks5queue.complete_transfer_cb(self.name, file_props)
+ app.socks5queue.complete_transfer_cb(self.name, file_props)
elif file_props.session_type == 'jingle':
peerjid = \
file_props.receiver if file_props.type_ == 's' else file_props.sender
@@ -910,7 +910,7 @@ class ConnectionIBBytestream(ConnectionBytestream):
file_props.received_len += len(chunk)
if file_props.size == file_props.received_len:
file_props.completed = True
- gajim.socks5queue.progress_transfer_cb(self.name,
+ app.socks5queue.progress_transfer_cb(self.name,
file_props)
else:
log.debug('Nothing to read, but file not completed')
@@ -949,7 +949,7 @@ class ConnectionIBBytestream(ConnectionBytestream):
file_props.elapsed_time += current_time - file_props.last_time
file_props.last_time = current_time
file_props.received_len += len(data)
- gajim.socks5queue.progress_transfer_cb(self.name, file_props)
+ app.socks5queue.progress_transfer_cb(self.name, file_props)
if file_props.received_len >= file_props.size:
file_props.completed = True
if err:
@@ -978,7 +978,7 @@ class ConnectionIBBytestream(ConnectionBytestream):
file_props.completed = file_props.received_len >= file_props.size
if not file_props.completed:
file_props.error = -1
- gajim.socks5queue.complete_transfer_cb(self.name, file_props)
+ app.socks5queue.complete_transfer_cb(self.name, file_props)
else:
conn.send(nbxmpp.Error(stanza, nbxmpp.ERR_ITEM_NOT_FOUND))
@@ -1014,7 +1014,7 @@ class ConnectionSocks5BytestreamZeroconf(ConnectionSocks5Bytestream):
return iq_obj.getFrom()
def _ft_get_our_jid(self):
- return gajim.get_jid_from_account(self.name)
+ return app.get_jid_from_account(self.name)
def _ft_get_receiver_jid(self, file_props):
return file_props.receiver.jid
diff --git a/gajim/common/protocol/caps.py b/gajim/common/protocol/caps.py
index 8753449a2..12a2d2d4c 100644
--- a/gajim/common/protocol/caps.py
+++ b/gajim/common/protocol/caps.py
@@ -25,9 +25,9 @@ Module containing the network portion of XEP-115 (Entity Capabilities)
import logging
log = logging.getLogger('gajim.c.p.caps')
-from common import gajim
-from common import ged
-from common.connection_handlers_events import CapsPresenceReceivedEvent, \
+from gajim.common import app
+from gajim.common import ged
+from gajim.common.connection_handlers_events import CapsPresenceReceivedEvent, \
CapsDiscoReceivedEvent, CapsReceivedEvent
@@ -37,17 +37,17 @@ class ConnectionCaps(object):
self._account = account
self._capscache = capscache
self._create_suitable_client_caps = client_caps_factory
- gajim.nec.register_incoming_event(CapsPresenceReceivedEvent)
- gajim.nec.register_incoming_event(CapsReceivedEvent)
- gajim.ged.register_event_handler('caps-presence-received', ged.GUI1,
+ app.nec.register_incoming_event(CapsPresenceReceivedEvent)
+ app.nec.register_incoming_event(CapsReceivedEvent)
+ app.ged.register_event_handler('caps-presence-received', ged.GUI1,
self._nec_caps_presence_received)
- gajim.ged.register_event_handler('agent-info-received', ged.GUI1,
+ app.ged.register_event_handler('agent-info-received', ged.GUI1,
self._nec_agent_info_received_caps)
def cleanup(self):
- gajim.ged.remove_event_handler('caps-presence-received', ged.GUI1,
+ app.ged.remove_event_handler('caps-presence-received', ged.GUI1,
self._nec_caps_presence_received)
- gajim.ged.remove_event_handler('agent-info-received', ged.GUI1,
+ app.ged.remove_event_handler('agent-info-received', ged.GUI1,
self._nec_agent_info_received_caps)
def caps_change_account_name(self, new_name):
@@ -75,10 +75,10 @@ class ConnectionCaps(object):
log.info('Received Caps from unknown contact %s' % obj.fjid)
def _get_contact_or_gc_contact_for_jid(self, jid):
- contact = gajim.contacts.get_contact_from_full_jid(self._account, jid)
+ contact = app.contacts.get_contact_from_full_jid(self._account, jid)
if contact is None:
- room_jid, nick = gajim.get_room_and_nick_from_fjid(jid)
- contact = gajim.contacts.get_gc_contact(self._account, room_jid, nick)
+ room_jid, nick = app.get_room_and_nick_from_fjid(jid)
+ contact = app.contacts.get_gc_contact(self._account, room_jid, nick)
return contact
def _nec_agent_info_received_caps(self, obj):
@@ -113,6 +113,6 @@ class ConnectionCaps(object):
log.info('Computed and retrieved caps hash differ.' +
'Ignoring caps of contact %s' % contact.get_full_jid())
- gajim.nec.push_incoming_event(CapsDiscoReceivedEvent(None,
+ app.nec.push_incoming_event(CapsDiscoReceivedEvent(None,
conn=self, fjid=obj.fjid, jid=obj.jid, resource=obj.resource,
client_caps=contact.client_caps))
diff --git a/gajim/common/proxy65_manager.py b/gajim/common/proxy65_manager.py
index 0ebab1356..b7f75f222 100644
--- a/gajim/common/proxy65_manager.py
+++ b/gajim/common/proxy65_manager.py
@@ -27,11 +27,11 @@ import logging
log = logging.getLogger('gajim.c.proxy65_manager')
import nbxmpp
-from common import gajim
-from common import helpers
-from common.socks5 import Socks5
+from gajim.common import app
+from gajim.common import helpers
+from gajim.common.socks5 import Socks5
from nbxmpp.idlequeue import IdleObject
-from common.file_props import FilesProp
+from gajim.common.file_props import FilesProp
S_INITIAL = 0
S_STARTED = 1
@@ -260,7 +260,7 @@ class HostTester(Socks5, IdleObject):
self.file_props.is_a_proxy = True
self.file_props.proxy_sender = sender_jid
self.file_props.proxy_receiver = 'test@gajim.org/test2'
- Socks5.__init__(self, gajim.idlequeue, host, port, None, None, None)
+ Socks5.__init__(self, app.idlequeue, host, port, None, None, None)
self.sid = sid
def connect(self):
@@ -274,7 +274,7 @@ class HostTester(Socks5, IdleObject):
self._sock.setblocking(False)
self.fd = self._sock.fileno()
self.state = 0 # about to be connected
- gajim.idlequeue.plug_idle(self, True, False)
+ app.idlequeue.plug_idle(self, True, False)
self.do_connect()
self.idlequeue.set_read_timeout(self.fd, CONNECT_TIMEOUT)
return None
@@ -299,8 +299,8 @@ class HostTester(Socks5, IdleObject):
return
self.state += 1
# unplug and plug for reading
- gajim.idlequeue.plug_idle(self, False, True)
- gajim.idlequeue.set_read_timeout(self.fd, CONNECT_TIMEOUT)
+ app.idlequeue.plug_idle(self, False, True)
+ app.idlequeue.set_read_timeout(self.fd, CONNECT_TIMEOUT)
def pollin(self):
self.idlequeue.remove_timeout(self.fd)
@@ -380,7 +380,7 @@ class ReceiverTester(Socks5, IdleObject):
self.file_props.is_a_proxy = True
self.file_props.proxy_sender = sender_jid
self.file_props.proxy_receiver = 'test@gajim.org/test2'
- Socks5.__init__(self, gajim.idlequeue, host, port, None, None, None)
+ Socks5.__init__(self, app.idlequeue, host, port, None, None, None)
self.sid = sid
def connect(self):
@@ -394,7 +394,7 @@ class ReceiverTester(Socks5, IdleObject):
self._sock.setblocking(False)
self.fd = self._sock.fileno()
self.state = 0 # about to be connected
- gajim.idlequeue.plug_idle(self, True, False)
+ app.idlequeue.plug_idle(self, True, False)
self.do_connect()
self.idlequeue.set_read_timeout(self.fd, CONNECT_TIMEOUT)
return None
@@ -419,8 +419,8 @@ class ReceiverTester(Socks5, IdleObject):
return
self.state += 1
# unplug and plug for reading
- gajim.idlequeue.plug_idle(self, False, True)
- gajim.idlequeue.set_read_timeout(self.fd, CONNECT_TIMEOUT)
+ app.idlequeue.plug_idle(self, False, True)
+ app.idlequeue.set_read_timeout(self.fd, CONNECT_TIMEOUT)
def pollin(self):
self.idlequeue.remove_timeout(self.fd)
diff --git a/gajim/common/pubsub.py b/gajim/common/pubsub.py
index 3a219fce2..4718b62ff 100644
--- a/gajim/common/pubsub.py
+++ b/gajim/common/pubsub.py
@@ -22,25 +22,25 @@
##
import nbxmpp
-from common import gajim
+from gajim.common import app
#TODO: Doesn't work
#from common.connection_handlers import PEP_CONFIG
PEP_CONFIG = 'pep_config'
-from common import ged
-from common.connection_handlers_events import PubsubReceivedEvent
-from common.connection_handlers_events import PubsubBookmarksReceivedEvent
+from gajim.common import ged
+from gajim.common.connection_handlers_events import PubsubReceivedEvent
+from gajim.common.connection_handlers_events import PubsubBookmarksReceivedEvent
import logging
log = logging.getLogger('gajim.c.pubsub')
class ConnectionPubSub:
def __init__(self):
self.__callbacks = {}
- gajim.nec.register_incoming_event(PubsubBookmarksReceivedEvent)
- gajim.ged.register_event_handler('pubsub-bookmarks-received',
+ app.nec.register_incoming_event(PubsubBookmarksReceivedEvent)
+ app.ged.register_event_handler('pubsub-bookmarks-received',
ged.CORE, self._nec_pubsub_bookmarks_received)
def cleanup(self):
- gajim.ged.remove_event_handler('pubsub-bookmarks-received',
+ app.ged.remove_event_handler('pubsub-bookmarks-received',
ged.CORE, self._nec_pubsub_bookmarks_received)
def send_pb_subscription_query(self, jid, cb, *args, **kwargs):
@@ -57,7 +57,7 @@ class ConnectionPubSub:
def send_pb_subscribe(self, jid, node, cb, *args, **kwargs):
if not self.connection or self.connected < 2:
return
- our_jid = gajim.get_jid_from_account(self.name)
+ our_jid = app.get_jid_from_account(self.name)
query = nbxmpp.Iq('set', to=jid)
pb = query.addChild('pubsub', namespace=nbxmpp.NS_PUBSUB)
pb.addChild('subscribe', {'node': node, 'jid': our_jid})
@@ -69,7 +69,7 @@ class ConnectionPubSub:
def send_pb_unsubscribe(self, jid, node, cb, *args, **kwargs):
if not self.connection or self.connected < 2:
return
- our_jid = gajim.get_jid_from_account(self.name)
+ our_jid = app.get_jid_from_account(self.name)
query = nbxmpp.Iq('set', to=jid)
pb = query.addChild('pubsub', namespace=nbxmpp.NS_PUBSUB)
pb.addChild('unsubscribe', {'node': node, 'jid': our_jid})
@@ -189,7 +189,7 @@ class ConnectionPubSub:
cb(conn, stanza, *args, **kwargs)
except Exception:
pass
- gajim.nec.push_incoming_event(PubsubReceivedEvent(None,
+ app.nec.push_incoming_event(PubsubReceivedEvent(None,
conn=self, stanza=stanza))
def _nec_pubsub_bookmarks_received(self, obj):
diff --git a/gajim/common/resolver.py b/gajim/common/resolver.py
index 736463655..b953e7f87 100644
--- a/gajim/common/resolver.py
+++ b/gajim/common/resolver.py
@@ -24,9 +24,9 @@ log = logging.getLogger('gajim.c.resolver')
if __name__ == '__main__':
sys.path.append('..')
- from common import i18n
- import common.configpaths
- common.configpaths.gajimpaths.init(None)
+ from gajim.common import i18n
+ from gajim.common import configpaths
+ configpaths.gajimpaths.init(None)
from gi.repository import Gio, GLib
diff --git a/gajim/common/sleepy.py b/gajim/common/sleepy.py
index ca1a34d3e..57904a40b 100644
--- a/gajim/common/sleepy.py
+++ b/gajim/common/sleepy.py
@@ -21,7 +21,7 @@
## along with Gajim. If not, see .
##
-from common import gajim
+from gajim.common import app
import os
@@ -49,10 +49,10 @@ try:
CloseDesktop = ctypes.windll.user32.CloseDesktop
SystemParametersInfo = ctypes.windll.user32.SystemParametersInfoW
else: # unix
- from common import idle
+ from gajim.common import idle
idle.xss_available
except Exception:
- gajim.log.debug('Unable to load idle module')
+ app.log.debug('Unable to load idle module')
SUPPORTED = False
class SleepyWindows:
diff --git a/gajim/common/socks5.py b/gajim/common/socks5.py
index 1bc676e8f..90013683b 100644
--- a/gajim/common/socks5.py
+++ b/gajim/common/socks5.py
@@ -34,9 +34,9 @@ from errno import EISCONN
from errno import EINPROGRESS
from errno import EAFNOSUPPORT
from nbxmpp.idlequeue import IdleObject
-from common.file_props import FilesProp
-from common import gajim
-from common import jingle_xtls
+from gajim.common.file_props import FilesProp
+from gajim.common import app
+from gajim.common import jingle_xtls
if jingle_xtls.PYOPENSSL_PRESENT:
import OpenSSL
import logging
@@ -501,10 +501,10 @@ class Socks5(object):
self._sock = socket.socket(*ai[:3])
if self.fingerprint is not None:
if self.file_props.type_ == 's':
- remote_jid = gajim.get_jid_without_resource(
+ remote_jid = app.get_jid_without_resource(
self.file_props.receiver)
else:
- remote_jid = gajim.get_jid_without_resource(
+ remote_jid = app.get_jid_without_resource(
self.file_props.sender)
self._sock = OpenSSL.SSL.Connection(
jingle_xtls.get_context('client',
diff --git a/gajim/common/stanza_session.py b/gajim/common/stanza_session.py
index d1ad73bfe..ebf897b49 100644
--- a/gajim/common/stanza_session.py
+++ b/gajim/common/stanza_session.py
@@ -22,9 +22,9 @@
## along with Gajim. If not, see .
##
-from common import gajim
+from gajim.common import app
import nbxmpp
-from common.exceptions import DecryptionError, NegotiationError
+from gajim.common.exceptions import DecryptionError, NegotiationError
import nbxmpp.c14n
import itertools
@@ -35,17 +35,17 @@ import base64
import os
from hashlib import sha256
from hmac import HMAC
-from common import crypto
+from gajim.common import crypto
import logging
log = logging.getLogger('gajim.c.stanza_session')
-if gajim.HAVE_PYCRYPTO:
+if app.HAVE_PYCRYPTO:
from Crypto.Cipher import AES
from Crypto.PublicKey import RSA
- from common import dh
- import secrets
+ from gajim.common import dh
+ from gajim import secrets
XmlDsig = 'http://www.w3.org/2000/09/xmldsig#'
@@ -78,12 +78,12 @@ class StanzaSession(object):
self.negotiated = {}
def is_loggable(self):
- return self.loggable and gajim.config.should_log(self.conn.name,
+ return self.loggable and app.config.should_log(self.conn.name,
self.jid.getStripped())
def get_to(self):
to = str(self.jid)
- return gajim.get_jid_without_resource(to) + '/' + self.resource
+ return app.get_jid_without_resource(to) + '/' + self.resource
def remove_events(self, types):
"""
@@ -94,7 +94,7 @@ class StanzaSession(object):
any_removed = False
for j in (self.jid, self.jid.getStripped()):
- for event in gajim.events.get_events(self.conn.name, j, types=types):
+ for event in app.events.get_events(self.conn.name, j, types=types):
# the event wasn't in this session
if (event.type_ == 'chat' and event.session != self) or \
(event.type_ == 'printed_chat' and event.control.session != \
@@ -103,7 +103,7 @@ class StanzaSession(object):
# events.remove_events returns True when there were no events
# for some reason
- r = gajim.events.remove_events(self.conn.name, j, event)
+ r = app.events.remove_events(self.conn.name, j, event)
if not r:
any_removed = True
@@ -315,7 +315,7 @@ class EncryptedStanzaSession(ArchivingStanzaSession):
of any of the types listed in 'encryptable_stanzas' should be
encrypted before they're sent.
- The transition between these states is handled in gajim.py's
+ The transition between these states is handled in app.py's
handle_session_negotiation method.
"""
@@ -337,9 +337,9 @@ class EncryptedStanzaSession(ArchivingStanzaSession):
self.verified_identity = False
def _get_contact(self):
- c = gajim.contacts.get_contact(self.conn.name, self.jid, self.resource)
+ c = app.contacts.get_contact(self.conn.name, self.jid, self.resource)
if not c:
- c = gajim.contacts.get_contact(self.conn.name, self.jid)
+ c = app.contacts.get_contact(self.conn.name, self.jid)
return c
def _is_buggy_gajim(self):
@@ -384,7 +384,7 @@ class EncryptedStanzaSession(ArchivingStanzaSession):
def sign(self, string):
if self.negotiated['sign_algs'] == (XmlDsig + 'rsa-sha256'):
hash_ = crypto.sha256(string)
- return crypto.encode_mpi(gajim.pubkey.sign(hash_, '')[0])
+ return crypto.encode_mpi(app.pubkey.sign(hash_, '')[0])
def encrypt_stanza(self, stanza):
encryptable = [x for x in stanza.getChildren() if x.getName() not in
@@ -503,7 +503,7 @@ class EncryptedStanzaSession(ArchivingStanzaSession):
return self.decrypter.decrypt(ciphertext)
def logging_preference(self):
- if gajim.config.get_per('accounts', self.conn.name,
+ if app.config.get_per('accounts', self.conn.name,
'log_encrypted_sessions'):
return ['may', 'mustnot']
else:
@@ -697,7 +697,7 @@ class EncryptedStanzaSession(ArchivingStanzaSession):
x.addChild(node=nbxmpp.DataField(name='my_nonce',
value=base64.b64encode(self.n_s).decode('utf-8'), typ='hidden'))
- modp_options = [ int(g) for g in gajim.config.get('esession_modp').split(
+ modp_options = [ int(g) for g in app.config.get('esession_modp').split(
',') ]
x.addChild(node=nbxmpp.DataField(name='modp', typ='list-single',
diff --git a/gajim/common/zeroconf/client_zeroconf.py b/gajim/common/zeroconf/client_zeroconf.py
index 5a1bd541e..67cd2e4a4 100644
--- a/gajim/common/zeroconf/client_zeroconf.py
+++ b/gajim/common/zeroconf/client_zeroconf.py
@@ -17,13 +17,13 @@
## You should have received a copy of the GNU General Public License
## along with Gajim. If not, see .
##
-from common import gajim
+from gajim.common import app
import nbxmpp
from nbxmpp.idlequeue import IdleObject
from nbxmpp import dispatcher_nb, simplexml
from nbxmpp.plugin import *
from nbxmpp.transports_nb import DATA_RECEIVED, DATA_SENT, DATA_ERROR
-from common.zeroconf import zeroconf
+from gajim.common.zeroconf import zeroconf
from nbxmpp.protocol import *
import socket
@@ -37,7 +37,7 @@ from random import Random
import logging
log = logging.getLogger('gajim.c.z.client_zeroconf')
-from common.zeroconf import roster_zeroconf
+from gajim.common.zeroconf import roster_zeroconf
MAX_BUFF_LEN = 65536
TYPE_SERVER, TYPE_CLIENT = range(2)
@@ -87,7 +87,7 @@ class ZeroconfListener(IdleObject):
self._serv.listen(socket.SOMAXCONN)
self._serv.setblocking(False)
self.fd = self._serv.fileno()
- gajim.idlequeue.plug_idle(self, False, True)
+ app.idlequeue.plug_idle(self, False, True)
self.started = True
def pollend(self):
@@ -117,8 +117,8 @@ class ZeroconfListener(IdleObject):
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)
+ app.idlequeue.remove_timeout(self.fd)
+ app.idlequeue.unplug_idle(self.fd)
self.fd = -1
self.started = False
try:
@@ -400,14 +400,14 @@ class P2PConnection(IdleObject, PlugIn):
self.connect_to_next_ip()
return
self.fd = self._sock.fileno()
- gajim.idlequeue.plug_idle(self, True, False)
+ app.idlequeue.plug_idle(self, True, False)
self.set_timeout(CONNECT_TIMEOUT_SECONDS)
self.do_connect()
def set_timeout(self, timeout):
- gajim.idlequeue.remove_timeout(self.fd)
+ app.idlequeue.remove_timeout(self.fd)
if self.state >= 0:
- gajim.idlequeue.set_read_timeout(self.fd, timeout)
+ app.idlequeue.set_read_timeout(self.fd, timeout)
def plugin(self, owner):
self.onreceive(owner._on_receive_document_attrs)
@@ -492,7 +492,7 @@ class P2PConnection(IdleObject, PlugIn):
if self.state == 0:
self.do_connect()
return
- gajim.idlequeue.remove_timeout(self.fd)
+ app.idlequeue.remove_timeout(self.fd)
self._do_send()
def pollend(self):
@@ -550,8 +550,8 @@ class P2PConnection(IdleObject, PlugIn):
"""
Close the socket
"""
- gajim.idlequeue.remove_timeout(self.fd)
- gajim.idlequeue.unplug_idle(self.fd)
+ app.idlequeue.remove_timeout(self.fd)
+ app.idlequeue.unplug_idle(self.fd)
try:
self._sock.shutdown(socket.SHUT_RDWR)
self._sock.close()
@@ -575,7 +575,7 @@ class P2PConnection(IdleObject, PlugIn):
self.sendbuff = self.sendbuff[send_count:]
if not self.sendbuff and not self.sendqueue:
if self.state < 0:
- gajim.idlequeue.unplug_idle(self.fd)
+ app.idlequeue.unplug_idle(self.fd)
self._on_send()
self.disconnect()
return
@@ -602,7 +602,7 @@ class P2PConnection(IdleObject, PlugIn):
else:
writable = False
if self.writable != writable or self.readable != readable:
- gajim.idlequeue.plug_idle(self, writable, readable)
+ app.idlequeue.plug_idle(self, writable, readable)
def _on_send(self):
@@ -830,7 +830,7 @@ class ClientZeroconf:
# if timeout:
# self._owner.set_timeout(timeout)
to = stanza.getTo()
- to = gajim.get_jid_without_resource(to)
+ to = app.get_jid_without_resource(to)
try:
item = self.roster[to]
diff --git a/gajim/common/zeroconf/connection_handlers_zeroconf.py b/gajim/common/zeroconf/connection_handlers_zeroconf.py
index ddacc0e37..584c6fbfc 100644
--- a/gajim/common/zeroconf/connection_handlers_zeroconf.py
+++ b/gajim/common/zeroconf/connection_handlers_zeroconf.py
@@ -25,10 +25,10 @@
import nbxmpp
-from common import gajim
-from common.commands import ConnectionCommands
-from common.protocol.bytestream import ConnectionSocks5BytestreamZeroconf
-from common.connection_handlers_events import ZeroconfMessageReceivedEvent
+from gajim.common import app
+from gajim.common.commands import ConnectionCommands
+from gajim.common.protocol.bytestream import ConnectionSocks5BytestreamZeroconf
+from gajim.common.connection_handlers_events import ZeroconfMessageReceivedEvent
import logging
log = logging.getLogger('gajim.c.z.connection_handlers_zeroconf')
@@ -46,7 +46,7 @@ except Exception:
log.debug(_('Unable to load idle module'))
HAS_IDLE = False
-from common import connection_handlers
+from gajim.common import connection_handlers
class ConnectionVcard(connection_handlers.ConnectionVcard):
def add_sha(self, p, send_caps = True):
@@ -84,7 +84,7 @@ connection_handlers.ConnectionJingle):
Called when we receive a message
"""
log.debug('Zeroconf MessageCB')
- gajim.nec.push_incoming_event(ZeroconfMessageReceivedEvent(None,
+ app.nec.push_incoming_event(ZeroconfMessageReceivedEvent(None,
conn=self, stanza=msg, ip=ip))
return
diff --git a/gajim/common/zeroconf/connection_zeroconf.py b/gajim/common/zeroconf/connection_zeroconf.py
index a72768969..10220a6e1 100644
--- a/gajim/common/zeroconf/connection_zeroconf.py
+++ b/gajim/common/zeroconf/connection_zeroconf.py
@@ -42,13 +42,13 @@ if os.name != 'nt':
import getpass
from gi.repository import GLib
-from common.connection import CommonConnection
-from common import gajim
-from common import ged
-from common.zeroconf import client_zeroconf
-from common.zeroconf import zeroconf
-from common.zeroconf.connection_handlers_zeroconf import *
-from common.connection_handlers_events import *
+from gajim.common.connection import CommonConnection
+from gajim.common import app
+from gajim.common import ged
+from gajim.common.zeroconf import client_zeroconf
+from gajim.common.zeroconf import zeroconf
+from gajim.common.zeroconf.connection_handlers_zeroconf import *
+from gajim.common.connection_handlers_events import *
class ConnectionZeroconf(CommonConnection, ConnectionHandlersZeroconf):
def __init__(self, name):
@@ -64,7 +64,7 @@ class ConnectionZeroconf(CommonConnection, ConnectionHandlersZeroconf):
CommonConnection.__init__(self, name)
self.is_zeroconf = True
- gajim.ged.register_event_handler('stanza-message-outgoing', ged.OUT_CORE,
+ app.ged.register_event_handler('stanza-message-outgoing', ged.OUT_CORE,
self._nec_stanza_message_outgoing)
def get_config_values_or_default(self):
@@ -72,49 +72,49 @@ class ConnectionZeroconf(CommonConnection, ConnectionHandlersZeroconf):
Get name, host, port from config, or create zeroconf account with default
values
"""
- if not gajim.config.get_per('accounts', gajim.ZEROCONF_ACC_NAME, 'name'):
- gajim.log.debug('Creating zeroconf account')
- gajim.config.add_per('accounts', gajim.ZEROCONF_ACC_NAME)
- gajim.config.set_per('accounts', gajim.ZEROCONF_ACC_NAME,
+ if not app.config.get_per('accounts', app.ZEROCONF_ACC_NAME, 'name'):
+ app.log.debug('Creating zeroconf account')
+ app.config.add_per('accounts', app.ZEROCONF_ACC_NAME)
+ app.config.set_per('accounts', app.ZEROCONF_ACC_NAME,
'autoconnect', True)
- gajim.config.set_per('accounts', gajim.ZEROCONF_ACC_NAME, 'no_log_for',
+ app.config.set_per('accounts', app.ZEROCONF_ACC_NAME, 'no_log_for',
'')
- gajim.config.set_per('accounts', gajim.ZEROCONF_ACC_NAME, 'password',
+ app.config.set_per('accounts', app.ZEROCONF_ACC_NAME, 'password',
'zeroconf')
- gajim.config.set_per('accounts', gajim.ZEROCONF_ACC_NAME,
+ app.config.set_per('accounts', app.ZEROCONF_ACC_NAME,
'sync_with_global_status', True)
- gajim.config.set_per('accounts', gajim.ZEROCONF_ACC_NAME,
+ app.config.set_per('accounts', app.ZEROCONF_ACC_NAME,
'custom_port', 5298)
- gajim.config.set_per('accounts', gajim.ZEROCONF_ACC_NAME,
+ app.config.set_per('accounts', app.ZEROCONF_ACC_NAME,
'is_zeroconf', True)
- gajim.config.set_per('accounts', gajim.ZEROCONF_ACC_NAME,
+ app.config.set_per('accounts', app.ZEROCONF_ACC_NAME,
'use_ft_proxies', False)
self.host = socket.gethostname()
- gajim.config.set_per('accounts', gajim.ZEROCONF_ACC_NAME, 'hostname',
+ app.config.set_per('accounts', app.ZEROCONF_ACC_NAME, 'hostname',
self.host)
- self.port = gajim.config.get_per('accounts', gajim.ZEROCONF_ACC_NAME,
+ self.port = app.config.get_per('accounts', app.ZEROCONF_ACC_NAME,
'custom_port')
- self.autoconnect = gajim.config.get_per('accounts',
- gajim.ZEROCONF_ACC_NAME, 'autoconnect')
- self.sync_with_global_status = gajim.config.get_per('accounts',
- gajim.ZEROCONF_ACC_NAME, 'sync_with_global_status')
- self.first = gajim.config.get_per('accounts', gajim.ZEROCONF_ACC_NAME,
+ self.autoconnect = app.config.get_per('accounts',
+ app.ZEROCONF_ACC_NAME, 'autoconnect')
+ self.sync_with_global_status = app.config.get_per('accounts',
+ app.ZEROCONF_ACC_NAME, 'sync_with_global_status')
+ self.first = app.config.get_per('accounts', app.ZEROCONF_ACC_NAME,
'zeroconf_first_name')
- self.last = gajim.config.get_per('accounts', gajim.ZEROCONF_ACC_NAME,
+ self.last = app.config.get_per('accounts', app.ZEROCONF_ACC_NAME,
'zeroconf_last_name')
- self.jabber_id = gajim.config.get_per('accounts', gajim.ZEROCONF_ACC_NAME,
+ self.jabber_id = app.config.get_per('accounts', app.ZEROCONF_ACC_NAME,
'zeroconf_jabber_id')
- self.email = gajim.config.get_per('accounts', gajim.ZEROCONF_ACC_NAME,
+ self.email = app.config.get_per('accounts', app.ZEROCONF_ACC_NAME,
'zeroconf_email')
if not self.username:
self.username = getpass.getuser()
- gajim.config.set_per('accounts', gajim.ZEROCONF_ACC_NAME, 'name',
+ app.config.set_per('accounts', app.ZEROCONF_ACC_NAME, 'name',
self.username)
else:
- self.username = gajim.config.get_per('accounts',
- gajim.ZEROCONF_ACC_NAME, 'name')
+ self.username = app.config.get_per('accounts',
+ app.ZEROCONF_ACC_NAME, 'name')
# END __init__
def check_jid(self, jid):
@@ -123,7 +123,7 @@ class ConnectionZeroconf(CommonConnection, ConnectionHandlersZeroconf):
def reconnect(self):
# Do not try to reco while we are already trying
self.time_to_reconnect = None
- gajim.log.debug('reconnect')
+ app.log.debug('reconnect')
self.disconnect()
self.change_status(self.old_show, self.status)
@@ -137,10 +137,10 @@ class ConnectionZeroconf(CommonConnection, ConnectionHandlersZeroconf):
diffs = self.roster.getDiffs()
for key in diffs:
self.roster.setItem(key)
- gajim.nec.push_incoming_event(RosterInfoEvent(None, conn=self,
+ app.nec.push_incoming_event(RosterInfoEvent(None, conn=self,
jid=key, nickname=self.roster.getName(key), sub='both',
ask='no', groups=self.roster.getGroups(key)))
- gajim.nec.push_incoming_event(ZeroconfPresenceReceivedEvent(
+ app.nec.push_incoming_event(ZeroconfPresenceReceivedEvent(
None, conn=self, fjid=key, show=self.roster.getStatus(key),
status=self.roster.getMessage(key)))
#XXX open chat windows don't get refreshed (full name), add that
@@ -149,10 +149,10 @@ class ConnectionZeroconf(CommonConnection, ConnectionHandlersZeroconf):
# callbacks called from zeroconf
def _on_new_service(self, jid):
self.roster.setItem(jid)
- gajim.nec.push_incoming_event(RosterInfoEvent(None, conn=self,
+ app.nec.push_incoming_event(RosterInfoEvent(None, conn=self,
jid=jid, nickname=self.roster.getName(jid), sub='both',
ask='no', groups=self.roster.getGroups(jid)))
- gajim.nec.push_incoming_event(ZeroconfPresenceReceivedEvent(
+ app.nec.push_incoming_event(ZeroconfPresenceReceivedEvent(
None, conn=self, fjid=jid, show=self.roster.getStatus(jid),
status=self.roster.getMessage(jid)))
@@ -160,7 +160,7 @@ class ConnectionZeroconf(CommonConnection, ConnectionHandlersZeroconf):
self.roster.delItem(jid)
# 'NOTIFY' (account, (jid, status, status message, resource, priority,
# keyID, timestamp, contact_nickname))
- gajim.nec.push_incoming_event(ZeroconfPresenceReceivedEvent(
+ app.nec.push_incoming_event(ZeroconfPresenceReceivedEvent(
None, conn=self, fjid=jid, show='offline', status=''))
def disconnectedReconnCB(self):
@@ -168,12 +168,12 @@ class ConnectionZeroconf(CommonConnection, ConnectionHandlersZeroconf):
Called when we are disconnected. Comes from network manager for example
we don't try to reconnect, network manager will tell us when we can
"""
- if gajim.account_is_connected(self.name):
+ if app.account_is_connected(self.name):
# we cannot change our status to offline or connecting
# after we auth to server
self.old_show = STATUS_LIST[self.connected]
self.connected = 0
- gajim.nec.push_incoming_event(OurShowEvent(None, conn=self,
+ app.nec.push_incoming_event(OurShowEvent(None, conn=self,
show='offline'))
# random number to show we wait network manager to send us a reconenct
self.time_to_reconnect = 5
@@ -181,13 +181,13 @@ class ConnectionZeroconf(CommonConnection, ConnectionHandlersZeroconf):
def _on_name_conflictCB(self, alt_name):
self.disconnect()
- gajim.nec.push_incoming_event(OurShowEvent(None, conn=self,
+ app.nec.push_incoming_event(OurShowEvent(None, conn=self,
show='offline'))
- gajim.nec.push_incoming_event(ZeroconfNameConflictEvent(None, conn=self,
+ app.nec.push_incoming_event(ZeroconfNameConflictEvent(None, conn=self,
alt_name=alt_name))
def _on_error(self, message):
- gajim.nec.push_incoming_event(InformationEvent(None, conn=self,
+ app.nec.push_incoming_event(InformationEvent(None, conn=self,
level='error', pri_txt=_('Avahi error'), sec_txt=_('%s\nLink-local '
'messaging might not work properly.') % message))
@@ -196,25 +196,25 @@ class ConnectionZeroconf(CommonConnection, ConnectionHandlersZeroconf):
if not self.connection:
self.connection = client_zeroconf.ClientZeroconf(self)
if not zeroconf.test_zeroconf():
- gajim.nec.push_incoming_event(OurShowEvent(None, conn=self,
+ app.nec.push_incoming_event(OurShowEvent(None, conn=self,
show='offline'))
self.status = 'offline'
- gajim.nec.push_incoming_event(ConnectionLostEvent(None,
+ app.nec.push_incoming_event(ConnectionLostEvent(None,
conn=self, title=_('Could not connect to "%s"') % self.name,
msg=_('Please check if Avahi or Bonjour is installed.')))
self.disconnect()
return
result = self.connection.connect(show, msg)
if not result:
- gajim.nec.push_incoming_event(OurShowEvent(None, conn=self,
+ app.nec.push_incoming_event(OurShowEvent(None, conn=self,
show='offline'))
self.status = 'offline'
if result is False:
- gajim.nec.push_incoming_event(ConnectionLostEvent(None,
+ app.nec.push_incoming_event(ConnectionLostEvent(None,
conn=self, title=_('Could not start local service'),
msg=_('Unable to bind to port %d.' % self.port)))
else: # result is None
- gajim.nec.push_incoming_event(ConnectionLostEvent(None,
+ app.nec.push_incoming_event(ConnectionLostEvent(None,
conn=self, title=_('Could not start local service'),
msg=_('Please check if avahi-daemon is running.')))
self.disconnect()
@@ -222,15 +222,15 @@ class ConnectionZeroconf(CommonConnection, ConnectionHandlersZeroconf):
else:
self.connection.announce()
self.roster = self.connection.getRoster()
- gajim.nec.push_incoming_event(RosterReceivedEvent(None, conn=self,
+ app.nec.push_incoming_event(RosterReceivedEvent(None, conn=self,
xmpp_roster=self.roster))
# display contacts already detected and resolved
for jid in self.roster.keys():
- gajim.nec.push_incoming_event(RosterInfoEvent(None, conn=self,
+ app.nec.push_incoming_event(RosterInfoEvent(None, conn=self,
jid=jid, nickname=self.roster.getName(jid), sub='both',
ask='no', groups=self.roster.getGroups(jid)))
- gajim.nec.push_incoming_event(ZeroconfPresenceReceivedEvent(
+ app.nec.push_incoming_event(ZeroconfPresenceReceivedEvent(
None, conn=self, fjid=jid, show=self.roster.getStatus(jid),
status=self.roster.getMessage(jid)))
@@ -253,19 +253,19 @@ class ConnectionZeroconf(CommonConnection, ConnectionHandlersZeroconf):
def reannounce(self):
if self.connected:
txt = {}
- txt['1st'] = gajim.config.get_per('accounts', gajim.ZEROCONF_ACC_NAME,
+ txt['1st'] = app.config.get_per('accounts', app.ZEROCONF_ACC_NAME,
'zeroconf_first_name')
- txt['last'] = gajim.config.get_per('accounts', gajim.ZEROCONF_ACC_NAME,
+ txt['last'] = app.config.get_per('accounts', app.ZEROCONF_ACC_NAME,
'zeroconf_last_name')
- txt['jid'] = gajim.config.get_per('accounts', gajim.ZEROCONF_ACC_NAME,
+ txt['jid'] = app.config.get_per('accounts', app.ZEROCONF_ACC_NAME,
'zeroconf_jabber_id')
- txt['email'] = gajim.config.get_per('accounts',
- gajim.ZEROCONF_ACC_NAME, 'zeroconf_email')
+ txt['email'] = app.config.get_per('accounts',
+ app.ZEROCONF_ACC_NAME, 'zeroconf_email')
self.connection.reannounce(txt)
def update_details(self):
if self.connection:
- port = gajim.config.get_per('accounts', gajim.ZEROCONF_ACC_NAME,
+ port = app.config.get_per('accounts', app.ZEROCONF_ACC_NAME,
'custom_port')
if port != self.port:
self.port = port
@@ -287,32 +287,32 @@ class ConnectionZeroconf(CommonConnection, ConnectionHandlersZeroconf):
check = self.connection.announce()
else:
self.connected = STATUS_LIST.index(show)
- gajim.nec.push_incoming_event(SignedInEvent(None, conn=self))
+ app.nec.push_incoming_event(SignedInEvent(None, conn=self))
# stay offline when zeroconf does something wrong
if check:
- gajim.nec.push_incoming_event(OurShowEvent(None, conn=self,
+ app.nec.push_incoming_event(OurShowEvent(None, conn=self,
show=show))
else:
# show notification that avahi or system bus is down
self.connected = 0
- gajim.nec.push_incoming_event(OurShowEvent(None, conn=self,
+ app.nec.push_incoming_event(OurShowEvent(None, conn=self,
show='offline'))
self.status = 'offline'
- gajim.nec.push_incoming_event(ConnectionLostEvent(None, conn=self,
+ app.nec.push_incoming_event(ConnectionLostEvent(None, conn=self,
title=_('Could not change status of account "%s"') % self.name,
msg=_('Please check if avahi-daemon is running.')))
def _change_to_invisible(self, msg):
if self.connection.remove_announce():
- gajim.nec.push_incoming_event(OurShowEvent(None, conn=self,
+ app.nec.push_incoming_event(OurShowEvent(None, conn=self,
show='invisible'))
else:
# show notification that avahi or system bus is down
- gajim.nec.push_incoming_event(OurShowEvent(None, conn=self,
+ app.nec.push_incoming_event(OurShowEvent(None, conn=self,
show='offline'))
self.status = 'offline'
- gajim.nec.push_incoming_event(ConnectionLostEvent(None, conn=self,
+ app.nec.push_incoming_event(ConnectionLostEvent(None, conn=self,
title=_('Could not change status of account "%s"') % self.name,
msg=_('Please check if avahi-daemon is running.')))
@@ -321,14 +321,14 @@ class ConnectionZeroconf(CommonConnection, ConnectionHandlersZeroconf):
def _update_status(self, show, msg):
if self.connection.set_show_msg(show, msg):
- gajim.nec.push_incoming_event(OurShowEvent(None, conn=self,
+ app.nec.push_incoming_event(OurShowEvent(None, conn=self,
show=show))
else:
# show notification that avahi or system bus is down
- gajim.nec.push_incoming_event(OurShowEvent(None, conn=self,
+ app.nec.push_incoming_event(OurShowEvent(None, conn=self,
show='offline'))
self.status = 'offline'
- gajim.nec.push_incoming_event(ConnectionLostEvent(None, conn=self,
+ app.nec.push_incoming_event(ConnectionLostEvent(None, conn=self,
title=_('Could not change status of account "%s"') % self.name,
msg=_('Please check if avahi-daemon is running.')))
@@ -337,7 +337,7 @@ class ConnectionZeroconf(CommonConnection, ConnectionHandlersZeroconf):
return
def on_send_ok(stanza_id):
- gajim.nec.push_incoming_event(MessageSentEvent(None, conn=self,
+ app.nec.push_incoming_event(MessageSentEvent(None, conn=self,
jid=obj.jid, message=obj.message, keyID=obj.keyID,
automatic_message=obj.automatic_message, chatstate=None,
stanza_id=stanza_id))
@@ -348,7 +348,7 @@ class ConnectionZeroconf(CommonConnection, ConnectionHandlersZeroconf):
def on_send_not_ok(reason):
reason += ' ' + _('Your message could not be sent.')
- gajim.nec.push_incoming_event(MessageErrorEvent(None, conn=self,
+ app.nec.push_incoming_event(MessageErrorEvent(None, conn=self,
fjid=obj.jid, error_code=-1, error_msg=reason, msg=None,
time_=None, session=obj.session))
@@ -358,7 +358,7 @@ class ConnectionZeroconf(CommonConnection, ConnectionHandlersZeroconf):
if ret == -1:
# Contact Offline
- gajim.nec.push_incoming_event(MessageErrorEvent(None, conn=self,
+ app.nec.push_incoming_event(MessageErrorEvent(None, conn=self,
fjid=obj.jid, error_code=-1, error_msg=_(
'Contact is offline. Your message could not be sent.'),
msg=None, time_=None, session=obj.session))
@@ -378,7 +378,7 @@ class ConnectionZeroconf(CommonConnection, ConnectionHandlersZeroconf):
thread_id = data[1]
frm = data[0]
session = self.get_or_create_session(frm, thread_id)
- gajim.nec.push_incoming_event(MessageErrorEvent(
+ app.nec.push_incoming_event(MessageErrorEvent(
None, conn=self, fjid=frm, error_code=-1, error_msg=_(
'Connection to host could not be established: Timeout while '
'sending data.'), msg=None, time_=None, session=session))
diff --git a/gajim/common/zeroconf/roster_zeroconf.py b/gajim/common/zeroconf/roster_zeroconf.py
index eeb5c8991..ef1a91307 100644
--- a/gajim/common/zeroconf/roster_zeroconf.py
+++ b/gajim/common/zeroconf/roster_zeroconf.py
@@ -18,8 +18,8 @@
##
-from common.zeroconf import zeroconf
-from common.zeroconf.zeroconf import Constant, ConstantRI
+from gajim.common.zeroconf import zeroconf
+from gajim.common.zeroconf.zeroconf import Constant, ConstantRI
class Roster:
def __init__(self, zeroconf):
diff --git a/gajim/common/zeroconf/zeroconf.py b/gajim/common/zeroconf/zeroconf.py
index 58bba6d25..5ca051932 100644
--- a/gajim/common/zeroconf/zeroconf.py
+++ b/gajim/common/zeroconf/zeroconf.py
@@ -56,8 +56,8 @@ def test_zeroconf():
return test_avahi() or test_bonjour()
if test_avahi():
- from common.zeroconf import zeroconf_avahi
+ from gajim.common.zeroconf import zeroconf_avahi
Zeroconf = zeroconf_avahi.Zeroconf
elif test_bonjour():
- from common.zeroconf import zeroconf_bonjour
+ from gajim.common.zeroconf import zeroconf_bonjour
Zeroconf = zeroconf_bonjour.Zeroconf
diff --git a/gajim/common/zeroconf/zeroconf_avahi.py b/gajim/common/zeroconf/zeroconf_avahi.py
index 51bad907e..2b9665893 100644
--- a/gajim/common/zeroconf/zeroconf_avahi.py
+++ b/gajim/common/zeroconf/zeroconf_avahi.py
@@ -25,7 +25,7 @@ try:
except ImportError:
pass
-from common.zeroconf.zeroconf import Constant, ConstantRI
+from gajim.common.zeroconf.zeroconf import Constant, ConstantRI
class Zeroconf:
def __init__(self, new_serviceCB, remove_serviceCB, name_conflictCB,
diff --git a/gajim/common/zeroconf/zeroconf_bonjour.py b/gajim/common/zeroconf/zeroconf_bonjour.py
index f68d412dd..9c2257e2b 100644
--- a/gajim/common/zeroconf/zeroconf_bonjour.py
+++ b/gajim/common/zeroconf/zeroconf_bonjour.py
@@ -17,10 +17,10 @@
## along with Gajim. If not, see .
##
-from common import gajim
+from gajim.common import app
import select
import re
-from common.zeroconf.zeroconf import Constant
+from gajim.common.zeroconf.zeroconf import Constant
try:
import pybonjour
@@ -56,7 +56,7 @@ class Zeroconf:
def browse_callback(self, sdRef, flags, interfaceIndex, errorCode, serviceName, regtype, replyDomain):
- gajim.log.debug('Found service %s in domain %s on %i(type: %s).' % (serviceName, replyDomain, interfaceIndex, regtype))
+ app.log.debug('Found service %s in domain %s on %i(type: %s).' % (serviceName, replyDomain, interfaceIndex, regtype))
if not self.connected:
return
if errorCode != pybonjour.kDNSServiceErr_NoError:
@@ -72,7 +72,7 @@ class Zeroconf:
while not self.resolved:
ready = select.select([resolve_sdRef], [], [], resolve_timeout)
if resolve_sdRef not in ready[0]:
- gajim.log.debug('Resolve timed out')
+ app.log.debug('Resolve timed out')
break
pybonjour.DNSServiceProcessResult(resolve_sdRef)
else:
@@ -81,7 +81,7 @@ class Zeroconf:
resolve_sdRef.close()
def remove_service_callback(self, name):
- gajim.log.debug('Service %s disappeared.' % name)
+ app.log.debug('Service %s disappeared.' % name)
if not self.connected:
return
if name != self.name:
@@ -121,8 +121,8 @@ class Zeroconf:
txt = pybonjour.TXTRecord.parse(txtRecord)
- gajim.log.debug('Service data for service %s on %i:' % (fullname, interfaceIndex))
- gajim.log.debug('Host %s, port %i, TXT data: %s' % (hosttarget, port, txt._items))
+ app.log.debug('Service data for service %s on %i:' % (fullname, interfaceIndex))
+ app.log.debug('Host %s, port %i, TXT data: %s' % (hosttarget, port, txt._items))
if not self.connected:
return
@@ -176,11 +176,11 @@ class Zeroconf:
def service_added_callback(self, sdRef, flags, errorCode, name, regtype, domain):
if errorCode == pybonjour.kDNSServiceErr_NoError:
- gajim.log.debug('Service successfully added')
+ app.log.debug('Service successfully added')
def service_add_fail_callback(self, err):
if err[0][0] == pybonjour.kDNSServiceErr_NameConflict:
- gajim.log.debug('Error while adding service. %s' % str(err))
+ app.log.debug('Error while adding service. %s' % str(err))
parts = self.username.split(' ')
#check if last part is a number and if, increment it
@@ -230,7 +230,7 @@ class Zeroconf:
except pybonjour.BonjourError as e:
self.service_add_fail_callback(e)
else:
- gajim.log.debug('Publishing service %s of type %s' % (self.name, self.stype))
+ app.log.debug('Publishing service %s of type %s' % (self.name, self.stype))
ready = select.select([sdRef], [], [], resolve_timeout)
if sdRef in ready[0]:
@@ -252,7 +252,7 @@ class Zeroconf:
self.announced = False
return True
except pybonjour.BonjourError as e:
- gajim.log.debug(e)
+ app.log.debug(e)
return False
@@ -282,7 +282,7 @@ class Zeroconf:
self.remove_announce()
def browse_domain(self, domain=None):
- gajim.log.debug('starting to browse')
+ app.log.debug('starting to browse')
try:
self.browse_sdRef = pybonjour.DNSServiceBrowse(regtype=self.stype, domain=domain, callBack=self.browse_callback)
except pybonjour.BonjourError as e:
@@ -310,7 +310,7 @@ class Zeroconf:
try:
ready = select.select([resolve_sdRef], [], [], resolve_timeout)
if resolve_sdRef not in ready[0]:
- gajim.log.debug('Resolve timed out (in resolve_all)')
+ app.log.debug('Resolve timed out (in resolve_all)')
break
pybonjour.DNSServiceProcessResult(resolve_sdRef)
finally:
diff --git a/gajim/config.py b/gajim/config.py
index 51d548fa7..8f2120fd6 100644
--- a/gajim/config.py
+++ b/gajim/config.py
@@ -37,18 +37,18 @@ from gi.repository import Pango
from gi.repository import GObject
from gi.repository import GLib
import os
-import common.config
-import common.sleepy
-from common.i18n import Q_
+from gajim.common import config as c_config
+from gajim.common import sleepy
+from gajim.common.i18n import Q_
-import gtkgui_helpers
-import dialogs
-import cell_renderer_image
-import message_control
-from chat_control_base import ChatControlBase
-import dataforms_widget
-import profile_window
-import gui_menu_builder
+from gajim import gtkgui_helpers
+from gajim import dialogs
+from gajim import cell_renderer_image
+from gajim import message_control
+from gajim.chat_control_base import ChatControlBase
+from gajim import dataforms_widget
+from gajim import profile_window
+from gajim import gui_menu_builder
try:
import gtkspell
@@ -56,24 +56,24 @@ try:
except (ImportError, ValueError):
HAS_GTK_SPELL = False
-from common import helpers
-from common import gajim
-from common import connection
-from common import passwords
-from common.zeroconf import connection_zeroconf
-from common import dataforms
-from common import gpg
-from common import ged
+from gajim.common import helpers
+from gajim.common import app
+from gajim.common import connection
+from gajim.common import passwords
+from gajim.common.zeroconf import connection_zeroconf
+from gajim.common import dataforms
+from gajim.common import gpg
+from gajim.common import ged
try:
- from common.multimedia_helpers import AudioInputManager, AudioOutputManager
- from common.multimedia_helpers import VideoInputManager, VideoOutputManager
+ from gajim.common.multimedia_helpers import AudioInputManager, AudioOutputManager
+ from gajim.common.multimedia_helpers import VideoInputManager, VideoOutputManager
HAS_GST = True
except (ImportError, ValueError):
HAS_GST = False
-from common.exceptions import GajimGeneralException
-from common.connection_handlers_events import InformationEvent
+from gajim.common.exceptions import GajimGeneralException
+from gajim.common.connection_handlers_events import InformationEvent
#---------- PreferencesWindow class -------------#
class PreferencesWindow:
@@ -85,7 +85,7 @@ class PreferencesWindow:
"""
Close window
"""
- del gajim.interface.instances['preferences']
+ del app.interface.instances['preferences']
def on_close_button_clicked(self, widget):
self.window.destroy()
@@ -96,7 +96,7 @@ class PreferencesWindow:
"""
self.xml = gtkgui_helpers.get_gtk_builder('preferences_window.ui')
self.window = self.xml.get_object('preferences_window')
- self.window.set_transient_for(gajim.interface.roster.window)
+ self.window.set_transient_for(app.interface.roster.window)
self.notebook = self.xml.get_object('preferences_notebook')
self.one_window_type_combobox = self.xml.get_object(
'one_window_type_combobox')
@@ -122,20 +122,20 @@ class PreferencesWindow:
### General tab ###
# Display avatars in roster
- st = gajim.config.get('show_avatars_in_roster')
+ st = app.config.get('show_avatars_in_roster')
self.xml.get_object('show_avatars_in_roster_checkbutton'). \
set_active(st)
# Display status msg under contact name in roster
- st = gajim.config.get('show_status_msgs_in_roster')
+ st = app.config.get('show_status_msgs_in_roster')
self.xml.get_object('show_status_msgs_in_roster_checkbutton'). \
set_active( st)
# Display PEP in roster
- st1 = gajim.config.get('show_mood_in_roster')
- st2 = gajim.config.get('show_activity_in_roster')
- st3 = gajim.config.get('show_tunes_in_roster')
- st4 = gajim.config.get('show_location_in_roster')
+ st1 = app.config.get('show_mood_in_roster')
+ st2 = app.config.get('show_activity_in_roster')
+ st3 = app.config.get('show_tunes_in_roster')
+ st4 = app.config.get('show_location_in_roster')
w = self.xml.get_object('show_pep_in_roster_checkbutton')
if st1 == st2 == st3 == st4:
w.set_active(st1)
@@ -143,17 +143,17 @@ class PreferencesWindow:
w.set_inconsistent(True)
# Sort contacts by show
- st = gajim.config.get('sort_by_show_in_roster')
+ st = app.config.get('sort_by_show_in_roster')
self.xml.get_object('sort_by_show_in_roster_checkbutton').set_active(st)
- st = gajim.config.get('sort_by_show_in_muc')
+ st = app.config.get('sort_by_show_in_muc')
self.xml.get_object('sort_by_show_in_muc_checkbutton').set_active(st)
# emoticons
emoticons_combobox = self.xml.get_object('emoticons_combobox')
- emoticons_list = os.listdir(os.path.join(gajim.DATA_DIR, 'emoticons'))
+ emoticons_list = os.listdir(os.path.join(app.DATA_DIR, 'emoticons'))
# user themes
- if os.path.isdir(gajim.MY_EMOTS_PATH):
- emoticons_list += os.listdir(gajim.MY_EMOTS_PATH)
+ if os.path.isdir(app.MY_EMOTS_PATH):
+ emoticons_list += os.listdir(app.MY_EMOTS_PATH)
emoticons_list.sort()
renderer_text = Gtk.CellRendererText()
emoticons_combobox.pack_start(renderer_text, True)
@@ -162,21 +162,21 @@ class PreferencesWindow:
emoticons_combobox.set_model(model)
l = [_('Disabled')]
for dir_ in emoticons_list:
- if not os.path.isdir(os.path.join(gajim.DATA_DIR, 'emoticons', dir_)) \
- and not os.path.isdir(os.path.join(gajim.MY_EMOTS_PATH, dir_)) :
+ if not os.path.isdir(os.path.join(app.DATA_DIR, 'emoticons', dir_)) \
+ and not os.path.isdir(os.path.join(app.MY_EMOTS_PATH, dir_)) :
continue
if dir_ != '.svn':
l.append(dir_)
for i in range(len(l)):
model.append([l[i]])
- if gajim.config.get('emoticons_theme') == l[i]:
+ if app.config.get('emoticons_theme') == l[i]:
emoticons_combobox.set_active(i)
- if not gajim.config.get('emoticons_theme'):
+ if not app.config.get('emoticons_theme'):
emoticons_combobox.set_active(0)
# Set default for single window type
- choices = common.config.opt_one_window_types
- type_ = gajim.config.get('one_message_window')
+ choices = c_config.opt_one_window_types
+ type_ = app.config.get('one_message_window')
if type_ in choices:
self.one_window_type_combobox.set_active(choices.index(type_))
else:
@@ -184,34 +184,34 @@ class PreferencesWindow:
# Show roster on startup
show_roster_combobox = self.xml.get_object('show_roster_on_startup')
- choices = common.config.opt_show_roster_on_startup
- type_ = gajim.config.get('show_roster_on_startup')
+ choices = c_config.opt_show_roster_on_startup
+ type_ = app.config.get('show_roster_on_startup')
if type_ in choices:
show_roster_combobox.set_active(choices.index(type_))
else:
show_roster_combobox.set_active(0)
# Compact View
- st = gajim.config.get('compact_view')
+ st = app.config.get('compact_view')
self.xml.get_object('compact_view_checkbutton').set_active(st)
# Ignore XHTML
- st = gajim.config.get('ignore_incoming_xhtml')
+ st = app.config.get('ignore_incoming_xhtml')
self.xml.get_object('xhtml_checkbutton').set_active(st)
# use speller
if HAS_GTK_SPELL:
- st = gajim.config.get('use_speller')
+ st = app.config.get('use_speller')
self.xml.get_object('speller_checkbutton').set_active(st)
else:
self.xml.get_object('speller_checkbutton').set_sensitive(False)
# XEP-0184 positive ack
- st = gajim.config.get('positive_184_ack')
+ st = app.config.get('positive_184_ack')
self.xml.get_object('positive_184_ack_checkbutton').set_active(st)
# Show avatar in tabs
- st = gajim.config.get('show_avatar_in_tabs')
+ st = app.config.get('show_avatar_in_tabs')
self.xml.get_object('show_avatar_in_tabs_checkbutton').set_active(st)
### Style tab ###
@@ -223,9 +223,9 @@ class PreferencesWindow:
self.update_theme_list()
# iconset
- iconsets_list = os.listdir(os.path.join(gajim.DATA_DIR, 'iconsets'))
- if os.path.isdir(gajim.MY_ICONSETS_PATH):
- iconsets_list += os.listdir(gajim.MY_ICONSETS_PATH)
+ iconsets_list = os.listdir(os.path.join(app.DATA_DIR, 'iconsets'))
+ if os.path.isdir(app.MY_ICONSETS_PATH):
+ iconsets_list += os.listdir(app.MY_ICONSETS_PATH)
# new model, image in 0, string in 1
model = Gtk.ListStore(Gtk.Image, str)
renderer_image = cell_renderer_image.CellRendererImage(0, 0)
@@ -238,8 +238,8 @@ class PreferencesWindow:
self.iconset_combobox.set_model(model)
l = []
for dir in iconsets_list:
- if not os.path.isdir(os.path.join(gajim.DATA_DIR, 'iconsets', dir)) \
- and not os.path.isdir(os.path.join(gajim.MY_ICONSETS_PATH, dir)):
+ if not os.path.isdir(os.path.join(app.DATA_DIR, 'iconsets', dir)) \
+ and not os.path.isdir(os.path.join(app.MY_ICONSETS_PATH, dir)):
continue
if dir != '.svn' and dir != 'transports':
l.append(dir)
@@ -256,18 +256,18 @@ class PreferencesWindow:
if os.path.exists(file_):
preview.set_from_file(file_)
model.append([preview, l[i]])
- if gajim.config.get('iconset') == l[i]:
+ if app.config.get('iconset') == l[i]:
self.iconset_combobox.set_active(i)
# Use transports iconsets
- st = gajim.config.get('use_transports_iconsets')
+ st = app.config.get('use_transports_iconsets')
self.xml.get_object('transports_iconsets_checkbutton').set_active(st)
# Color widgets
self.draw_color_widgets()
# Font for messages
- font = gajim.config.get('conversation_font')
+ font = app.config.get('conversation_font')
# try to set default font for the current desktop env
fontbutton = self.xml.get_object('conversation_fontbutton')
if font == '':
@@ -278,7 +278,7 @@ class PreferencesWindow:
### Personal Events tab ###
# outgoing send chat state notifications
- st = gajim.config.get('outgoing_chat_state_notifications')
+ st = app.config.get('outgoing_chat_state_notifications')
combo = self.xml.get_object('outgoing_chat_states_combobox')
if st == 'all':
combo.set_active(0)
@@ -288,7 +288,7 @@ class PreferencesWindow:
combo.set_active(2)
# displayed send chat state notifications
- st = gajim.config.get('displayed_chat_state_notifications')
+ st = app.config.get('displayed_chat_state_notifications')
combo = self.xml.get_object('displayed_chat_states_combobox')
if st == 'all':
combo.set_active(0)
@@ -301,44 +301,44 @@ class PreferencesWindow:
### Notifications tab ###
# On new event
on_event_combobox = self.xml.get_object('on_event_combobox')
- if gajim.config.get('autopopup'):
+ if app.config.get('autopopup'):
on_event_combobox.set_active(0)
- elif gajim.config.get('notify_on_new_message'):
+ elif app.config.get('notify_on_new_message'):
on_event_combobox.set_active(1)
else:
on_event_combobox.set_active(2)
# notify on online statuses
- st = gajim.config.get('notify_on_signin')
+ st = app.config.get('notify_on_signin')
self.notify_on_signin_checkbutton.set_active(st)
# notify on offline statuses
- st = gajim.config.get('notify_on_signout')
+ st = app.config.get('notify_on_signout')
self.notify_on_signout_checkbutton.set_active(st)
# autopopupaway
- st = gajim.config.get('autopopupaway')
+ st = app.config.get('autopopupaway')
self.auto_popup_away_checkbutton.set_active(st)
# autopopup_chat_opened
- st = gajim.config.get('autopopup_chat_opened')
+ st = app.config.get('autopopup_chat_opened')
self.auto_popup_chat_opened_checkbutton.set_active(st)
# sounddnd
- st = gajim.config.get('sounddnd')
+ st = app.config.get('sounddnd')
self.sound_dnd_checkbutton.set_active(st)
# Systray
systray_combobox = self.xml.get_object('systray_combobox')
- if gajim.config.get('trayicon') == 'never':
+ if app.config.get('trayicon') == 'never':
systray_combobox.set_active(0)
- elif gajim.config.get('trayicon') == 'on_event':
+ elif app.config.get('trayicon') == 'on_event':
systray_combobox.set_active(1)
else:
systray_combobox.set_active(2)
# sounds
- if gajim.config.get('sounds_on'):
+ if app.config.get('sounds_on'):
self.xml.get_object('play_sounds_checkbutton').set_active(True)
else:
self.xml.get_object('manage_sounds_button').set_sensitive(False)
@@ -350,54 +350,53 @@ class PreferencesWindow:
notify_gmail_extra_checkbutton = self.xml.get_object(
'notify_gmail_extra_checkbutton')
- for account in gajim.config.get_per('accounts'):
- jid = gajim.get_jid_from_account(account)
- if gajim.get_server_from_jid(jid) in gajim.gmail_domains:
+ for account in app.config.get_per('accounts'):
+ jid = app.get_jid_from_account(account)
+ if app.get_server_from_jid(jid) in app.gmail_domains:
frame_gmail.set_sensitive(True)
- st = gajim.config.get('notify_on_new_gmail_email')
+ st = app.config.get('notify_on_new_gmail_email')
notify_gmail_checkbutton.set_active(st)
- st = gajim.config.get('notify_on_new_gmail_email_extra')
+ st = app.config.get('notify_on_new_gmail_email_extra')
notify_gmail_extra_checkbutton.set_active(st)
break
#### Status tab ###
# Autoaway
- st = gajim.config.get('autoaway')
+ st = app.config.get('autoaway')
self.auto_away_checkbutton.set_active(st)
# Autoawaytime
- st = gajim.config.get('autoawaytime')
+ st = app.config.get('autoawaytime')
self.auto_away_time_spinbutton.set_value(st)
- self.auto_away_time_spinbutton.set_sensitive(gajim.config.get('autoaway'))
+ self.auto_away_time_spinbutton.set_sensitive(app.config.get('autoaway'))
# autoaway message
- st = gajim.config.get('autoaway_message')
+ st = app.config.get('autoaway_message')
self.auto_away_message_entry.set_text(st)
- self.auto_away_message_entry.set_sensitive(gajim.config.get('autoaway'))
+ self.auto_away_message_entry.set_sensitive(app.config.get('autoaway'))
# Autoxa
- st = gajim.config.get('autoxa')
+ st = app.config.get('autoxa')
self.auto_xa_checkbutton.set_active(st)
# Autoxatime
- st = gajim.config.get('autoxatime')
+ st = app.config.get('autoxatime')
self.auto_xa_time_spinbutton.set_value(st)
- self.auto_xa_time_spinbutton.set_sensitive(gajim.config.get('autoxa'))
+ self.auto_xa_time_spinbutton.set_sensitive(app.config.get('autoxa'))
# autoxa message
- st = gajim.config.get('autoxa_message')
+ st = app.config.get('autoxa_message')
self.auto_xa_message_entry.set_text(st)
- self.auto_xa_message_entry.set_sensitive(gajim.config.get('autoxa'))
+ self.auto_xa_message_entry.set_sensitive(app.config.get('autoxa'))
- from common import sleepy
if not sleepy.SUPPORTED:
self.xml.get_object('autoaway_table').set_sensitive(False)
# ask_status when online / offline
- st = gajim.config.get('ask_online_status')
+ st = app.config.get('ask_online_status')
self.xml.get_object('prompt_online_status_message_checkbutton').\
set_active(st)
- st = gajim.config.get('ask_offline_status')
+ st = app.config.get('ask_offline_status')
self.xml.get_object('prompt_offline_status_message_checkbutton').\
set_active(st)
@@ -429,9 +428,9 @@ class PreferencesWindow:
model = Gtk.ListStore(str, str)
combobox.set_model(model)
if config_name:
- config = gajim.config.get(config_name)
+ config = app.config.get(config_name)
else:
- config = gajim.config.get(opt_name + '_device')
+ config = app.config.get(opt_name + '_device')
for index, (name, value) in enumerate(sorted(device_dict.items(),
key=key)):
@@ -439,7 +438,7 @@ class PreferencesWindow:
if config == value:
combobox.set_active(index)
- if HAS_GST and gajim.HAVE_FARSTREAM:
+ if HAS_GST and app.HAVE_FARSTREAM:
create_av_combobox('audio_input', AudioInputManager().get_devices())
create_av_combobox('audio_output', AudioOutputManager().get_devices(
))
@@ -455,7 +454,7 @@ class PreferencesWindow:
'800x600': '800x600', '640x480': '640x480',
'320x240': '320x240'}, 'video_size', key=lambda x: -1 if \
not x[1] else int(x[0][:3]))
- st = gajim.config.get('video_see_self')
+ st = app.config.get('video_see_self')
self.xml.get_object('video_see_self_checkbutton').set_active(st)
else:
@@ -466,11 +465,11 @@ class PreferencesWindow:
# STUN
cb = self.xml.get_object('stun_checkbutton')
- st = gajim.config.get('use_stun_server')
+ st = app.config.get('use_stun_server')
cb.set_active(st)
entry = self.xml.get_object('stun_server_entry')
- entry.set_text(gajim.config.get('stun_server'))
+ entry.set_text(app.config.get('stun_server'))
if not st:
entry.set_sensitive(False)
@@ -486,21 +485,21 @@ class PreferencesWindow:
self.xml.get_object('custom_apps_frame').hide()
self.xml.get_object('custom_apps_frame').set_no_show_all(True)
- if gajim.config.get('autodetect_browser_mailer'):
+ if app.config.get('autodetect_browser_mailer'):
self.applications_combobox.set_active(0)
else:
self.applications_combobox.set_active(1)
self.xml.get_object('custom_apps_frame').show()
self.xml.get_object('custom_browser_entry').set_text(
- gajim.config.get('custombrowser'))
+ app.config.get('custombrowser'))
self.xml.get_object('custom_mail_client_entry').set_text(
- gajim.config.get('custommailapp'))
+ app.config.get('custommailapp'))
self.xml.get_object('custom_file_manager_entry').set_text(
- gajim.config.get('custom_file_manager'))
+ app.config.get('custom_file_manager'))
# log status changes of contacts
- st = gajim.config.get('log_contact_status_changes')
+ st = app.config.get('log_contact_status_changes')
self.xml.get_object('log_show_changes_checkbutton').set_active(st)
# log encrypted chat sessions
@@ -575,12 +574,12 @@ class PreferencesWindow:
Return the value of the option opt if it's the same in all accounts else
returns "mixed"
"""
- if len(gajim.connections) == 0:
+ if len(app.connections) == 0:
# a non existant key return default value
- return gajim.config.get_per('accounts', '__default__', opt)
+ return app.config.get_per('accounts', '__default__', opt)
val = None
- for account in gajim.connections:
- v = gajim.config.get_per('accounts', account, opt)
+ for account in app.connections:
+ v = app.config.get_per('accounts', account, opt)
if val is None:
val = v
elif val != v:
@@ -589,38 +588,38 @@ class PreferencesWindow:
def on_checkbutton_toggled(self, widget, config_name,
change_sensitivity_widgets=None):
- gajim.config.set(config_name, widget.get_active())
+ app.config.set(config_name, widget.get_active())
if change_sensitivity_widgets:
for w in change_sensitivity_widgets:
w.set_sensitive(widget.get_active())
def on_per_account_checkbutton_toggled(self, widget, config_name,
change_sensitivity_widgets=None):
- for account in gajim.connections:
- gajim.config.set_per('accounts', account, config_name,
+ for account in app.connections:
+ app.config.set_per('accounts', account, config_name,
widget.get_active())
if change_sensitivity_widgets:
for w in change_sensitivity_widgets:
w.set_sensitive(widget.get_active())
def _get_all_controls(self):
- for ctrl in gajim.interface.msg_win_mgr.get_controls():
+ for ctrl in app.interface.msg_win_mgr.get_controls():
yield ctrl
- for account in gajim.connections:
- for ctrl in gajim.interface.minimized_controls[account].values():
+ for account in app.connections:
+ for ctrl in app.interface.minimized_controls[account].values():
yield ctrl
def _get_all_muc_controls(self):
- for ctrl in gajim.interface.msg_win_mgr.get_controls(
+ for ctrl in app.interface.msg_win_mgr.get_controls(
message_control.TYPE_GC):
yield ctrl
- for account in gajim.connections:
- for ctrl in gajim.interface.minimized_controls[account].values():
+ for account in app.connections:
+ for ctrl in app.interface.minimized_controls[account].values():
yield ctrl
def on_sort_by_show_in_roster_checkbutton_toggled(self, widget):
self.on_checkbutton_toggled(widget, 'sort_by_show_in_roster')
- gajim.interface.roster.setup_and_draw_roster()
+ app.interface.roster.setup_and_draw_roster()
def on_sort_by_show_in_muc_checkbutton_toggled(self, widget):
self.on_checkbutton_toggled(widget, 'sort_by_show_in_muc')
@@ -630,14 +629,14 @@ class PreferencesWindow:
def on_show_avatars_in_roster_checkbutton_toggled(self, widget):
self.on_checkbutton_toggled(widget, 'show_avatars_in_roster')
- gajim.interface.roster.setup_and_draw_roster()
+ app.interface.roster.setup_and_draw_roster()
# Redraw groupchats (in an ugly way)
for ctrl in self._get_all_muc_controls():
ctrl.draw_roster()
def on_show_status_msgs_in_roster_checkbutton_toggled(self, widget):
self.on_checkbutton_toggled(widget, 'show_status_msgs_in_roster')
- gajim.interface.roster.setup_and_draw_roster()
+ app.interface.roster.setup_and_draw_roster()
for ctrl in self._get_all_muc_controls():
ctrl.update_ui()
@@ -646,19 +645,19 @@ class PreferencesWindow:
self.on_checkbutton_toggled(widget, 'show_activity_in_roster')
self.on_checkbutton_toggled(widget, 'show_tunes_in_roster')
self.on_checkbutton_toggled(widget, 'show_location_in_roster')
- gajim.interface.roster.setup_and_draw_roster()
+ app.interface.roster.setup_and_draw_roster()
def on_emoticons_combobox_changed(self, widget):
active = widget.get_active()
model = widget.get_model()
emot_theme = model[active][0]
if emot_theme == _('Disabled'):
- gajim.config.set('emoticons_theme', '')
+ app.config.set('emoticons_theme', '')
else:
- gajim.config.set('emoticons_theme', emot_theme)
+ app.config.set('emoticons_theme', emot_theme)
- gajim.interface.init_emoticons()
- gajim.interface.make_regexps()
+ app.interface.init_emoticons()
+ app.interface.make_regexps()
self.toggle_emoticons()
def toggle_emoticons(self):
@@ -670,20 +669,20 @@ class PreferencesWindow:
def on_one_window_type_combo_changed(self, widget):
active = widget.get_active()
- config_type = common.config.opt_one_window_types[active]
- gajim.config.set('one_message_window', config_type)
- gajim.interface.msg_win_mgr.reconfig()
+ config_type = c_config.opt_one_window_types[active]
+ app.config.set('one_message_window', config_type)
+ app.interface.msg_win_mgr.reconfig()
def on_show_roster_on_startup_changed(self, widget):
active = widget.get_active()
- config_type = common.config.opt_show_roster_on_startup[active]
- gajim.config.set('show_roster_on_startup', config_type)
+ config_type = c_config.opt_show_roster_on_startup[active]
+ app.config.set('show_roster_on_startup', config_type)
def on_compact_view_checkbutton_toggled(self, widget):
active = widget.get_active()
for ctrl in self._get_all_controls():
ctrl.chat_buttons_set_visible(active)
- gajim.config.set('compact_view', active)
+ app.config.set('compact_view', active)
def on_xhtml_checkbutton_toggled(self, widget):
self.on_checkbutton_toggled(widget, 'ignore_incoming_xhtml')
@@ -712,11 +711,11 @@ class PreferencesWindow:
def on_speller_checkbutton_toggled(self, widget):
active = widget.get_active()
- gajim.config.set('use_speller', active)
+ app.config.set('use_speller', active)
if active:
- lang = gajim.config.get('speller_language')
+ lang = app.config.get('speller_language')
if not lang:
- lang = gajim.LANG
+ lang = app.LANG
tv = Gtk.TextView()
try:
gtkspell.Spell(tv, lang)
@@ -726,10 +725,10 @@ class PreferencesWindow:
_('You have to install %s dictionary to use spellchecking, or '
'choose another language by setting the speller_language option.'
) % lang)
- gajim.config.set('use_speller', False)
+ app.config.set('use_speller', False)
widget.set_active(False)
else:
- gajim.config.set('speller_language', lang)
+ app.config.set('speller_language', lang)
self.apply_speller()
else:
self.remove_speller()
@@ -745,11 +744,11 @@ class PreferencesWindow:
active = widget.get_active()
config_theme = model[active][0].replace(' ', '_')
- gajim.config.set('roster_theme', config_theme)
+ app.config.set('roster_theme', config_theme)
# begin repainting themed widgets throughout
- gajim.interface.roster.repaint_themed_widgets()
- gajim.interface.roster.change_roster_style(None)
+ app.interface.roster.repaint_themed_widgets()
+ app.interface.roster.change_roster_style(None)
gtkgui_helpers.load_css()
def update_theme_list(self):
@@ -757,10 +756,10 @@ class PreferencesWindow:
model = Gtk.ListStore(str)
theme_combobox.set_model(model)
i = 0
- for config_theme in gajim.config.get_per('themes'):
+ for config_theme in app.config.get_per('themes'):
theme = config_theme.replace('_', ' ')
model.append([theme])
- if gajim.config.get('roster_theme') == config_theme:
+ if app.config.get('roster_theme') == config_theme:
theme_combobox.set_active(i)
i += 1
@@ -775,7 +774,7 @@ class PreferencesWindow:
model = widget.get_model()
active = widget.get_active()
icon_string = model[active][1]
- gajim.config.set('iconset', icon_string)
+ app.config.set('iconset', icon_string)
gtkgui_helpers.reload_jabber_state_images()
def on_transports_iconsets_checkbutton_toggled(self, widget):
@@ -784,14 +783,14 @@ class PreferencesWindow:
def on_outgoing_chat_states_combobox_changed(self, widget):
active = widget.get_active()
- old_value = gajim.config.get('outgoing_chat_state_notifications')
+ old_value = app.config.get('outgoing_chat_state_notifications')
if active == 0: # all
- gajim.config.set('outgoing_chat_state_notifications', 'all')
+ app.config.set('outgoing_chat_state_notifications', 'all')
elif active == 1: # only composing
- gajim.config.set('outgoing_chat_state_notifications', 'composing_only')
+ app.config.set('outgoing_chat_state_notifications', 'composing_only')
else: # disabled
- gajim.config.set('outgoing_chat_state_notifications', 'disabled')
- new_value = gajim.config.get('outgoing_chat_state_notifications')
+ app.config.set('outgoing_chat_state_notifications', 'disabled')
+ new_value = app.config.get('outgoing_chat_state_notifications')
if 'disabled' in (old_value, new_value):
# we changed from disabled to sth else or vice versa
helpers.update_optional_features()
@@ -799,12 +798,12 @@ class PreferencesWindow:
def on_displayed_chat_states_combobox_changed(self, widget):
active = widget.get_active()
if active == 0: # all
- gajim.config.set('displayed_chat_state_notifications', 'all')
+ app.config.set('displayed_chat_state_notifications', 'all')
elif active == 1: # only composing
- gajim.config.set('displayed_chat_state_notifications',
+ app.config.set('displayed_chat_state_notifications',
'composing_only')
else: # disabled
- gajim.config.set('displayed_chat_state_notifications', 'disabled')
+ app.config.set('displayed_chat_state_notifications', 'disabled')
def on_ignore_events_from_unknown_contacts_checkbutton_toggled(self, widget):
widget.set_inconsistent(False)
@@ -813,14 +812,14 @@ class PreferencesWindow:
def on_on_event_combobox_changed(self, widget):
active = widget.get_active()
if active == 0:
- gajim.config.set('autopopup', True)
- gajim.config.set('notify_on_new_message', False)
+ app.config.set('autopopup', True)
+ app.config.set('notify_on_new_message', False)
elif active == 1:
- gajim.config.set('autopopup', False)
- gajim.config.set('notify_on_new_message', True)
+ app.config.set('autopopup', False)
+ app.config.set('notify_on_new_message', True)
else:
- gajim.config.set('autopopup', False)
- gajim.config.set('notify_on_new_message', False)
+ app.config.set('autopopup', False)
+ app.config.set('notify_on_new_message', False)
def on_notify_on_signin_checkbutton_toggled(self, widget):
self.on_checkbutton_toggled(widget, 'notify_on_signin')
@@ -840,17 +839,17 @@ class PreferencesWindow:
def on_systray_combobox_changed(self, widget):
active = widget.get_active()
if active == 0:
- gajim.config.set('trayicon', 'never')
- gajim.interface.systray_enabled = False
- gajim.interface.systray.hide_icon()
+ app.config.set('trayicon', 'never')
+ app.interface.systray_enabled = False
+ app.interface.systray.hide_icon()
elif active == 1:
- gajim.config.set('trayicon', 'on_event')
- gajim.interface.systray_enabled = True
- gajim.interface.systray.show_icon()
+ app.config.set('trayicon', 'on_event')
+ app.interface.systray_enabled = True
+ app.interface.systray.show_icon()
else:
- gajim.config.set('trayicon', 'always')
- gajim.interface.systray_enabled = True
- gajim.interface.systray.show_icon()
+ app.config.set('trayicon', 'always')
+ app.interface.systray_enabled = True
+ app.interface.systray.show_icon()
def on_play_sounds_checkbutton_toggled(self, widget):
self.on_checkbutton_toggled(widget, 'sounds_on',
@@ -872,7 +871,7 @@ class PreferencesWindow:
def on_preference_widget_color_set(self, widget, text):
color = widget.get_color()
color_string = gtkgui_helpers.make_color_string(color)
- gajim.config.set(text, color_string)
+ app.config.set(text, color_string)
self.update_text_tags()
def on_preference_widget_font_set(self, widget, text):
@@ -880,7 +879,7 @@ class PreferencesWindow:
font = widget.get_font_name()
else:
font = ''
- gajim.config.set(text, font)
+ app.config.set(text, font)
gtkgui_helpers.load_css()
def on_incoming_nick_colorbutton_color_set(self, widget):
@@ -927,7 +926,7 @@ class PreferencesWindow:
'urlmsgcolor': 'url_msg_colorbutton',
'markedmsgcolor': 'muc_highlight_colorbutton'}
for c in col_to_widget:
- col = gajim.config.get(c)
+ col = app.config.get(c)
if col:
if isinstance(col_to_widget[c], list):
rgba = Gdk.RGBA()
@@ -958,7 +957,7 @@ class PreferencesWindow:
'urlmsgcolor': 'url_msg_colorbutton',
'markedmsgcolor': 'muc_highlight_colorbutton'}
for c in col_to_widget:
- gajim.config.set(c, gajim.interface.default_colors[c])
+ app.config.set(c, app.interface.default_colors[c])
self.draw_color_widgets()
self.update_text_tags()
@@ -972,7 +971,7 @@ class PreferencesWindow:
color_string = gtkgui_helpers.make_color_string(color)
else:
color_string = ''
- gajim.config.set(option, color_string)
+ app.config.set(option, color_string)
def on_incoming_msg_checkbutton_toggled(self, widget):
state = widget.get_active()
@@ -990,13 +989,13 @@ class PreferencesWindow:
def on_auto_away_time_spinbutton_value_changed(self, widget):
aat = widget.get_value_as_int()
- gajim.config.set('autoawaytime', aat)
- gajim.interface.sleeper = common.sleepy.Sleepy(
- gajim.config.get('autoawaytime') * 60,
- gajim.config.get('autoxatime') * 60)
+ app.config.set('autoawaytime', aat)
+ app.interface.sleeper = sleepy.Sleepy(
+ app.config.get('autoawaytime') * 60,
+ app.config.get('autoxatime') * 60)
def on_auto_away_message_entry_changed(self, widget):
- gajim.config.set('autoaway_message', widget.get_text())
+ app.config.set('autoaway_message', widget.get_text())
def on_auto_xa_checkbutton_toggled(self, widget):
self.on_checkbutton_toggled(widget, 'autoxa',
@@ -1004,13 +1003,13 @@ class PreferencesWindow:
def on_auto_xa_time_spinbutton_value_changed(self, widget):
axt = widget.get_value_as_int()
- gajim.config.set('autoxatime', axt)
- gajim.interface.sleeper = common.sleepy.Sleepy(
- gajim.config.get('autoawaytime') * 60,
- gajim.config.get('autoxatime') * 60)
+ app.config.set('autoxatime', axt)
+ app.interface.sleeper = sleepy.Sleepy(
+ app.config.get('autoawaytime') * 60,
+ app.config.get('autoxatime') * 60)
def on_auto_xa_message_entry_changed(self, widget):
- gajim.config.set('autoxa_message', widget.get_text())
+ app.config.set('autoxa_message', widget.get_text())
def on_prompt_online_status_message_checkbutton_toggled(self, widget):
self.on_checkbutton_toggled(widget, 'ask_online_status')
@@ -1022,13 +1021,13 @@ class PreferencesWindow:
model = self.default_msg_tree.get_model()
model.clear()
status = []
- for status_ in gajim.config.get_per('defaultstatusmsg'):
+ for status_ in app.config.get_per('defaultstatusmsg'):
status.append(status_)
status.sort()
for status_ in status:
- msg = gajim.config.get_per('defaultstatusmsg', status_, 'message')
+ msg = app.config.get_per('defaultstatusmsg', status_, 'message')
msg = helpers.from_one_line(msg)
- enabled = gajim.config.get_per('defaultstatusmsg', status_, 'enabled')
+ enabled = app.config.get_per('defaultstatusmsg', status_, 'enabled')
iter_ = model.append()
uf_show = helpers.get_uf_show(status_)
model.set(iter_, 0, status_, 1, uf_show, 2, msg, 3, enabled)
@@ -1046,9 +1045,9 @@ class PreferencesWindow:
status = model[iter_][0]
message = model[iter_][2]
message = helpers.to_one_line(message)
- gajim.config.set_per('defaultstatusmsg', status, 'enabled',
+ app.config.set_per('defaultstatusmsg', status, 'enabled',
model[iter_][3])
- gajim.config.set_per('defaultstatusmsg', status, 'message', message)
+ app.config.set_per('defaultstatusmsg', status, 'message', message)
def on_default_status_expander_activate(self, expander):
eventbox = self.xml.get_object('default_status_eventbox')
@@ -1057,17 +1056,17 @@ class PreferencesWindow:
Gtk.PACK_START)
def save_status_messages(self, model):
- for msg in gajim.config.get_per('statusmsg'):
- gajim.config.del_per('statusmsg', msg)
+ for msg in app.config.get_per('statusmsg'):
+ app.config.del_per('statusmsg', msg)
iter_ = model.get_iter_first()
while iter_:
val = model[iter_][0]
if model[iter_][1]: # we have a preset message
if not val: # no title, use message text for title
val = model[iter_][1]
- gajim.config.add_per('statusmsg', val)
+ app.config.add_per('statusmsg', val)
msg = helpers.to_one_line(model[iter_][1])
- gajim.config.set_per('statusmsg', val, 'message', msg)
+ app.config.set_per('statusmsg', val, 'message', msg)
i = 2
# store mood / activity
for subname in ('activity', 'subactivity', 'activity_text',
@@ -1075,7 +1074,7 @@ class PreferencesWindow:
val2 = model[iter_][i]
if not val2:
val2 = ''
- gajim.config.set_per('statusmsg', val, subname, val2)
+ app.config.set_per('statusmsg', val, subname, val2)
i += 1
iter_ = model.iter_next(iter_)
@@ -1089,7 +1088,7 @@ class PreferencesWindow:
model = combobox.get_model()
active = combobox.get_active()
device = model[active][1]
- gajim.config.set(config_name, device)
+ app.config.set(config_name, device)
def on_audio_input_combobox_changed(self, widget):
self.on_av_combobox_changed(widget, 'audio_input_device')
@@ -1117,24 +1116,24 @@ class PreferencesWindow:
[self.xml.get_object('stun_server_entry')])
def stun_server_entry_changed(self, widget):
- gajim.config.set('stun_server', widget.get_text())
+ app.config.set('stun_server', widget.get_text())
def on_applications_combobox_changed(self, widget):
if widget.get_active() == 0:
- gajim.config.set('autodetect_browser_mailer', True)
+ app.config.set('autodetect_browser_mailer', True)
self.xml.get_object('custom_apps_frame').hide()
elif widget.get_active() == 1:
- gajim.config.set('autodetect_browser_mailer', False)
+ app.config.set('autodetect_browser_mailer', False)
self.xml.get_object('custom_apps_frame').show()
def on_custom_browser_entry_changed(self, widget):
- gajim.config.set('custombrowser', widget.get_text())
+ app.config.set('custombrowser', widget.get_text())
def on_custom_mail_client_entry_changed(self, widget):
- gajim.config.set('custommailapp', widget.get_text())
+ app.config.set('custommailapp', widget.get_text())
def on_custom_file_manager_entry_changed(self, widget):
- gajim.config.set('custom_file_manager', widget.get_text())
+ app.config.set('custom_file_manager', widget.get_text())
def on_log_show_changes_checkbutton_toggled(self, widget):
self.on_checkbutton_toggled(widget, 'log_contact_status_changes')
@@ -1166,21 +1165,21 @@ class PreferencesWindow:
model = self.msg_tree.get_model()
model.clear()
preset_status = []
- for msg_name in gajim.config.get_per('statusmsg'):
+ for msg_name in app.config.get_per('statusmsg'):
if msg_name.startswith('_last_'):
continue
preset_status.append(msg_name)
preset_status.sort()
for msg_name in preset_status:
- msg_text = gajim.config.get_per('statusmsg', msg_name, 'message')
+ msg_text = app.config.get_per('statusmsg', msg_name, 'message')
msg_text = helpers.from_one_line(msg_text)
- activity = gajim.config.get_per('statusmsg', msg_name, 'activity')
- subactivity = gajim.config.get_per('statusmsg', msg_name,
+ activity = app.config.get_per('statusmsg', msg_name, 'activity')
+ subactivity = app.config.get_per('statusmsg', msg_name,
'subactivity')
- activity_text = gajim.config.get_per('statusmsg', msg_name,
+ activity_text = app.config.get_per('statusmsg', msg_name,
'activity_text')
- mood = gajim.config.get_per('statusmsg', msg_name, 'mood')
- mood_text = gajim.config.get_per('statusmsg', msg_name, 'mood_text')
+ mood = app.config.get_per('statusmsg', msg_name, 'mood')
+ mood_text = app.config.get_per('statusmsg', msg_name, 'mood_text')
iter_ = model.append()
model.set(iter_, 0, msg_name, 1, msg_text, 2, activity, 3,
subactivity, 4, activity_text, 5, mood, 6, mood_text)
@@ -1242,23 +1241,23 @@ class PreferencesWindow:
if proxy == _('None'):
proxy = ''
- gajim.config.set('global_proxy', proxy)
+ app.config.set('global_proxy', proxy)
def on_manage_proxies_button_clicked(self, widget):
- if 'manage_proxies' in gajim.interface.instances:
- gajim.interface.instances['manage_proxies'].window.present()
+ if 'manage_proxies' in app.interface.instances:
+ app.interface.instances['manage_proxies'].window.present()
else:
- gajim.interface.instances['manage_proxies'] = ManageProxiesWindow(
+ app.interface.instances['manage_proxies'] = ManageProxiesWindow(
self.window)
def update_proxy_list(self):
- our_proxy = gajim.config.get('global_proxy')
+ our_proxy = app.config.get('global_proxy')
if not our_proxy:
our_proxy = _('None')
proxy_combobox = self.xml.get_object('proxies_combobox')
model = proxy_combobox.get_model()
model.clear()
- l = gajim.config.get_per('proxies')
+ l = app.config.get_per('proxies')
l.insert(0, _('None'))
for i in range(len(l)):
model.append([l[i]])
@@ -1266,10 +1265,10 @@ class PreferencesWindow:
proxy_combobox.set_active(i)
def on_open_advanced_editor_button_clicked(self, widget, data = None):
- if 'advanced_config' in gajim.interface.instances:
- gajim.interface.instances['advanced_config'].window.present()
+ if 'advanced_config' in app.interface.instances:
+ app.interface.instances['advanced_config'].window.present()
else:
- gajim.interface.instances['advanced_config'] = \
+ app.interface.instances['advanced_config'] = \
dialogs.AdvancedConfigurationWindow()
#---------- ManageProxiesWindow class -------------#
@@ -1308,7 +1307,7 @@ class ManageProxiesWindow:
model.clear()
iter_ = model.append()
model.set(iter_, 0, _('None'))
- for p in gajim.config.get_per('proxies'):
+ for p in app.config.get_per('proxies'):
iter_ = model.append()
model.set(iter_, 0, p)
@@ -1327,20 +1326,20 @@ class ManageProxiesWindow:
self.xml.get_object('proxytype_combobox').set_active(0)
def on_manage_proxies_window_destroy(self, widget):
- if 'accounts' in gajim.interface.instances:
- gajim.interface.instances['accounts'].\
+ if 'accounts' in app.interface.instances:
+ app.interface.instances['accounts'].\
update_proxy_list()
- del gajim.interface.instances['manage_proxies']
+ del app.interface.instances['manage_proxies']
def on_add_proxy_button_clicked(self, widget):
model = self.proxies_treeview.get_model()
- proxies = gajim.config.get_per('proxies')
+ proxies = app.config.get_per('proxies')
i = 1
while ('proxy' + str(i)) in proxies:
i += 1
iter_ = model.append()
model.set(iter_, 0, 'proxy' + str(i))
- gajim.config.add_per('proxies', 'proxy' + str(i))
+ app.config.add_per('proxies', 'proxy' + str(i))
self.proxies_treeview.set_cursor(model.get_path(iter_))
def on_remove_proxy_button_clicked(self, widget):
@@ -1352,7 +1351,7 @@ class ManageProxiesWindow:
return
proxy = model[iter_][0]
model.remove(iter_)
- gajim.config.del_per('proxies', proxy)
+ app.config.del_per('proxies', proxy)
self.xml.get_object('remove_proxy_button').set_sensitive(False)
self.block_signal = True
self.on_proxies_treeview_cursor_changed(self.proxies_treeview)
@@ -1366,7 +1365,7 @@ class ManageProxiesWindow:
return
act = widget.get_active()
proxy = self.proxyname_entry.get_text()
- gajim.config.set_per('proxies', proxy, 'useauth', act)
+ app.config.set_per('proxies', proxy, 'useauth', act)
self.xml.get_object('proxyuser_entry').set_sensitive(act)
self.xml.get_object('proxypass_entry').set_sensitive(act)
@@ -1375,7 +1374,7 @@ class ManageProxiesWindow:
return
act = widget.get_active()
proxy = self.proxyname_entry.get_text()
- gajim.config.set_per('proxies', proxy, 'bosh_useproxy', act)
+ app.config.set_per('proxies', proxy, 'bosh_useproxy', act)
self.xml.get_object('proxyhost_entry').set_sensitive(act)
self.xml.get_object('proxyport_entry').set_sensitive(act)
@@ -1424,7 +1423,7 @@ class ManageProxiesWindow:
self.xml.get_object('proxytype_combobox').set_sensitive(False)
self.xml.get_object('proxy_table').set_sensitive(False)
else:
- proxytype = gajim.config.get_per('proxies', proxy, 'type')
+ proxytype = app.config.get_per('proxies', proxy, 'type')
self.show_bosh_fields(proxytype=='bosh')
@@ -1432,22 +1431,22 @@ class ManageProxiesWindow:
self.xml.get_object('remove_proxy_button').set_sensitive(True)
self.xml.get_object('proxytype_combobox').set_sensitive(True)
self.xml.get_object('proxy_table').set_sensitive(True)
- proxyhost_entry.set_text(gajim.config.get_per('proxies', proxy,
+ proxyhost_entry.set_text(app.config.get_per('proxies', proxy,
'host'))
- proxyport_entry.set_text(str(gajim.config.get_per('proxies',
+ proxyport_entry.set_text(str(app.config.get_per('proxies',
proxy, 'port')))
- proxyuser_entry.set_text(gajim.config.get_per('proxies', proxy,
+ proxyuser_entry.set_text(app.config.get_per('proxies', proxy,
'user'))
- proxypass_entry.set_text(gajim.config.get_per('proxies', proxy,
+ proxypass_entry.set_text(app.config.get_per('proxies', proxy,
'pass'))
- boshuri_entry.set_text(gajim.config.get_per('proxies', proxy,
+ boshuri_entry.set_text(app.config.get_per('proxies', proxy,
'bosh_uri'))
types = ['http', 'socks5', 'bosh']
self.proxytype_combobox.set_active(types.index(proxytype))
boshuseproxy_checkbutton.set_active(
- gajim.config.get_per('proxies', proxy, 'bosh_useproxy'))
+ app.config.get_per('proxies', proxy, 'bosh_useproxy'))
useauth_checkbutton.set_active(
- gajim.config.get_per('proxies', proxy, 'useauth'))
+ app.config.get_per('proxies', proxy, 'useauth'))
self.block_signal = False
def on_proxies_treeview_key_press_event(self, widget, event):
@@ -1469,11 +1468,11 @@ class ManageProxiesWindow:
return
if new_name == old_name:
return
- config = gajim.config.get_per('proxies', old_name)
- gajim.config.del_per('proxies', old_name)
- gajim.config.add_per('proxies', new_name)
+ config = app.config.get_per('proxies', old_name)
+ app.config.del_per('proxies', old_name)
+ app.config.add_per('proxies', new_name)
for option in config:
- gajim.config.set_per('proxies', new_name, option, config[option])
+ app.config.set_per('proxies', new_name, option, config[option])
model.set_value(iter_, 0, new_name)
def on_proxytype_combobox_changed(self, widget):
@@ -1483,42 +1482,42 @@ class ManageProxiesWindow:
type_ = self.proxytype_combobox.get_active()
self.show_bosh_fields(types[type_]=='bosh')
proxy = self.proxyname_entry.get_text()
- gajim.config.set_per('proxies', proxy, 'type', types[type_])
+ app.config.set_per('proxies', proxy, 'type', types[type_])
def on_proxyhost_entry_changed(self, widget):
if self.block_signal:
return
value = widget.get_text()
proxy = self.proxyname_entry.get_text()
- gajim.config.set_per('proxies', proxy, 'host', value)
+ app.config.set_per('proxies', proxy, 'host', value)
def on_proxyport_entry_changed(self, widget):
if self.block_signal:
return
value = widget.get_text()
proxy = self.proxyname_entry.get_text()
- gajim.config.set_per('proxies', proxy, 'port', value)
+ app.config.set_per('proxies', proxy, 'port', value)
def on_proxyuser_entry_changed(self, widget):
if self.block_signal:
return
value = widget.get_text()
proxy = self.proxyname_entry.get_text()
- gajim.config.set_per('proxies', proxy, 'user', value)
+ app.config.set_per('proxies', proxy, 'user', value)
def on_boshuri_entry_changed(self, widget):
if self.block_signal:
return
value = widget.get_text()
proxy = self.proxyname_entry.get_text()
- gajim.config.set_per('proxies', proxy, 'bosh_uri', value)
+ app.config.set_per('proxies', proxy, 'bosh_uri', value)
def on_proxypass_entry_changed(self, widget):
if self.block_signal:
return
value = widget.get_text()
proxy = self.proxyname_entry.get_text()
- gajim.config.set_per('proxies', proxy, 'pass', value)
+ app.config.set_per('proxies', proxy, 'pass', value)
#---------- AccountsWindow class -------------#
@@ -1528,7 +1527,7 @@ class AccountsWindow:
"""
def on_accounts_window_destroy(self, widget):
- del gajim.interface.instances['accounts']
+ del app.interface.instances['accounts']
def on_close_button_clicked(self, widget):
self.check_resend_relog()
@@ -1537,7 +1536,7 @@ class AccountsWindow:
def __init__(self):
self.xml = gtkgui_helpers.get_gtk_builder('accounts_window.ui')
self.window = self.xml.get_object('accounts_window')
- self.window.set_transient_for(gajim.interface.roster.window)
+ self.window.set_transient_for(app.interface.roster.window)
self.accounts_treeview = self.xml.get_object('accounts_treeview')
self.remove_button = self.xml.get_object('remove_button')
self.rename_button = self.xml.get_object('rename_button')
@@ -1569,7 +1568,7 @@ class AccountsWindow:
self.window.show_all()
# Merge accounts
- st = gajim.config.get('mergeaccounts')
+ st = app.config.get('mergeaccounts')
checkbutton = self.xml.get_object('merge_checkbutton')
checkbutton.set_active(st)
# prevent roster redraws by connecting the signal after button state is
@@ -1609,7 +1608,7 @@ class AccountsWindow:
self.current_account = None
model = self.accounts_treeview.get_model()
model.clear()
- list_ = gajim.config.get_per('accounts')
+ list_ = app.config.get_per('accounts')
list_.sort()
for account in list_:
iter_ = model.append()
@@ -1619,37 +1618,37 @@ class AccountsWindow:
self.selection.select_iter(model.get_iter_first())
def resend(self, account):
- if not account in gajim.connections:
+ if not account in app.connections:
return
- show = gajim.SHOW_LIST[gajim.connections[account].connected]
- status = gajim.connections[account].status
- gajim.connections[account].change_status(show, status)
+ show = app.SHOW_LIST[app.connections[account].connected]
+ status = app.connections[account].status
+ app.connections[account].change_status(show, status)
def check_resend_relog(self):
if self.need_relogin and self.current_account == \
- gajim.ZEROCONF_ACC_NAME:
- if gajim.ZEROCONF_ACC_NAME in gajim.connections:
- gajim.connections[gajim.ZEROCONF_ACC_NAME].update_details()
+ app.ZEROCONF_ACC_NAME:
+ if app.ZEROCONF_ACC_NAME in app.connections:
+ app.connections[app.ZEROCONF_ACC_NAME].update_details()
return
elif self.need_relogin and self.current_account and \
- gajim.connections[self.current_account].connected > 0:
+ app.connections[self.current_account].connected > 0:
def login(account, show_before, status_before):
"""
Login with previous status
"""
# first make sure connection is really closed,
# 0.5 may not be enough
- gajim.connections[account].disconnect(True)
- gajim.interface.roster.send_status(account, show_before,
+ app.connections[account].disconnect(True)
+ app.interface.roster.send_status(account, show_before,
status_before)
def relog(account):
self.dialog.destroy()
- show_before = gajim.SHOW_LIST[gajim.connections[account].\
+ show_before = app.SHOW_LIST[app.connections[account].\
connected]
- status_before = gajim.connections[account].status
- gajim.interface.roster.send_status(account, 'offline',
+ status_before = app.connections[account].status
+ app.interface.roster.send_status(account, 'offline',
_('Be right back.'))
GLib.timeout_add(500, login, account, show_before,
status_before)
@@ -1659,7 +1658,7 @@ class AccountsWindow:
def on_no(account):
if self.resend_presence:
self.resend(account)
- if self.current_account in gajim.connections:
+ if self.current_account in app.connections:
self.dialog = dialogs.YesNoDialog(_('Relogin now?'),
_('If you want all the changes to apply instantly, '
'you must relogin.'), on_response_yes=(on_yes,
@@ -1716,10 +1715,10 @@ class AccountsWindow:
self.remove_button.set_sensitive(True)
self.rename_button.set_sensitive(True)
- if (account != gajim.ZEROCONF_ACC_NAME and
- account in gajim.connections):
+ if (account != app.ZEROCONF_ACC_NAME and
+ account in app.connections):
self.change_password_button.set_sensitive(
- gajim.connections[account].register_supported)
+ app.connections[account].register_supported)
else:
self.remove_button.set_sensitive(False)
@@ -1727,7 +1726,7 @@ class AccountsWindow:
self.change_password_button.set_sensitive(False)
if iter_:
self.current_account = account
- if account == gajim.ZEROCONF_ACC_NAME:
+ if account == app.ZEROCONF_ACC_NAME:
self.remove_button.set_sensitive(False)
self.init_account()
self.update_proxy_list()
@@ -1738,7 +1737,7 @@ class AccountsWindow:
if not path_to_clientcert_file:
return
self.xml.get_object('cert_entry1').set_text(path_to_clientcert_file)
- gajim.config.set_per('accounts', self.current_account,
+ app.config.set_per('accounts', self.current_account,
'client_cert', path_to_clientcert_file)
def on_cancel(widget):
@@ -1750,7 +1749,7 @@ class AccountsWindow:
def update_proxy_list(self):
if self.current_account:
- our_proxy = gajim.config.get_per('accounts', self.current_account,
+ our_proxy = app.config.get_per('accounts', self.current_account,
'proxy')
else:
our_proxy = ''
@@ -1760,7 +1759,7 @@ class AccountsWindow:
proxy_combobox = self.xml.get_object('proxies_combobox1')
model = Gtk.ListStore(str)
proxy_combobox.set_model(model)
- l = gajim.config.get_per('proxies')
+ l = app.config.get_per('proxies')
l.insert(0, _('None'))
for i in range(len(l)):
model.append([l[i]])
@@ -1771,7 +1770,7 @@ class AccountsWindow:
if not self.current_account:
self.notebook.set_current_page(0)
return
- if gajim.config.get_per('accounts', self.current_account,
+ if app.config.get_per('accounts', self.current_account,
'is_zeroconf'):
self.ignore_events = True
self.init_zeroconf_account()
@@ -1784,47 +1783,47 @@ class AccountsWindow:
self.notebook.set_current_page(1)
def init_zeroconf_account(self):
- active = gajim.config.get_per('accounts', gajim.ZEROCONF_ACC_NAME,
+ active = app.config.get_per('accounts', app.ZEROCONF_ACC_NAME,
'active')
self.xml.get_object('enable_zeroconf_checkbutton2').set_active(active)
- if not gajim.HAVE_ZEROCONF:
+ if not app.HAVE_ZEROCONF:
self.xml.get_object('enable_zeroconf_checkbutton2').set_sensitive(
False)
self.xml.get_object('zeroconf_notebook').set_sensitive(active)
# General tab
- st = gajim.config.get_per('accounts', gajim.ZEROCONF_ACC_NAME,
+ st = app.config.get_per('accounts', app.ZEROCONF_ACC_NAME,
'autoconnect')
self.xml.get_object('autoconnect_checkbutton2').set_active(st)
- list_no_log_for = gajim.config.get_per('accounts',
- gajim.ZEROCONF_ACC_NAME, 'no_log_for').split()
- if gajim.ZEROCONF_ACC_NAME in list_no_log_for:
+ list_no_log_for = app.config.get_per('accounts',
+ app.ZEROCONF_ACC_NAME, 'no_log_for').split()
+ if app.ZEROCONF_ACC_NAME in list_no_log_for:
self.xml.get_object('log_history_checkbutton2').set_active(0)
else:
self.xml.get_object('log_history_checkbutton2').set_active(1)
- st = gajim.config.get_per('accounts', gajim.ZEROCONF_ACC_NAME,
+ st = app.config.get_per('accounts', app.ZEROCONF_ACC_NAME,
'sync_with_global_status')
self.xml.get_object('sync_with_global_status_checkbutton2').set_active(
st)
- st = gajim.config.get_per('accounts', gajim.ZEROCONF_ACC_NAME,
+ st = app.config.get_per('accounts', app.ZEROCONF_ACC_NAME,
'use_custom_host')
self.xml.get_object('custom_port_checkbutton2').set_active(st)
self.xml.get_object('custom_port_entry2').set_sensitive(st)
- st = gajim.config.get_per('accounts', gajim.ZEROCONF_ACC_NAME,
+ st = app.config.get_per('accounts', app.ZEROCONF_ACC_NAME,
'custom_port')
if not st:
- gajim.config.set_per('accounts', gajim.ZEROCONF_ACC_NAME,
+ app.config.set_per('accounts', app.ZEROCONF_ACC_NAME,
'custom_port', '5298')
st = '5298'
self.xml.get_object('custom_port_entry2').set_text(str(st))
# Personal tab
gpg_key_label = self.xml.get_object('gpg_key_label2')
- if gajim.ZEROCONF_ACC_NAME in gajim.connections and \
- gajim.connections[gajim.ZEROCONF_ACC_NAME].gpg:
+ if app.ZEROCONF_ACC_NAME in app.connections and \
+ app.connections[app.ZEROCONF_ACC_NAME].gpg:
self.xml.get_object('gpg_choose_button2').set_sensitive(True)
self.init_account_gpg()
else:
@@ -1832,17 +1831,17 @@ class AccountsWindow:
self.xml.get_object('gpg_choose_button2').set_sensitive(False)
for opt in ('first_name', 'last_name', 'jabber_id', 'email'):
- st = gajim.config.get_per('accounts', gajim.ZEROCONF_ACC_NAME,
+ st = app.config.get_per('accounts', app.ZEROCONF_ACC_NAME,
'zeroconf_' + opt)
self.xml.get_object(opt + '_entry2').set_text(st)
def init_account_gpg(self):
account = self.current_account
- keyid = gajim.config.get_per('accounts', account, 'keyid')
- keyname = gajim.config.get_per('accounts', account, 'keyname')
- use_gpg_agent = gajim.config.get('use_gpg_agent')
+ keyid = app.config.get_per('accounts', account, 'keyid')
+ keyname = app.config.get_per('accounts', account, 'keyname')
+ use_gpg_agent = app.config.get('use_gpg_agent')
- if account == gajim.ZEROCONF_ACC_NAME:
+ if account == app.ZEROCONF_ACC_NAME:
widget_name_add = '2'
else:
widget_name_add = '1'
@@ -1866,10 +1865,10 @@ class AccountsWindow:
def draw_normal_jid(self):
account = self.current_account
self.ignore_events = True
- active = gajim.config.get_per('accounts', account, 'active')
+ active = app.config.get_per('accounts', account, 'active')
self.xml.get_object('enable_checkbutton1').set_active(active)
self.xml.get_object('normal_notebook1').set_sensitive(active)
- if gajim.config.get_per('accounts', account, 'anonymous_auth'):
+ if app.config.get_per('accounts', account, 'anonymous_auth'):
self.xml.get_object('anonymous_checkbutton1').set_active(True)
self.xml.get_object('jid_label1').set_text(_('Server:'))
save_password = self.xml.get_object('save_password_checkbutton1')
@@ -1878,11 +1877,11 @@ class AccountsWindow:
password_entry = self.xml.get_object('password_entry1')
password_entry.set_text('')
password_entry.set_sensitive(False)
- jid = gajim.config.get_per('accounts', account, 'hostname')
+ jid = app.config.get_per('accounts', account, 'hostname')
else:
self.xml.get_object('anonymous_checkbutton1').set_active(False)
self.xml.get_object('jid_label1').set_text(_('JID:'))
- savepass = gajim.config.get_per('accounts', account, 'savepass')
+ savepass = app.config.get_per('accounts', account, 'savepass')
save_password = self.xml.get_object('save_password_checkbutton1')
save_password.set_sensitive(True)
save_password.set_active(savepass)
@@ -1895,8 +1894,8 @@ class AccountsWindow:
password_entry.set_sensitive(False)
password_entry.set_text(passstr)
- jid = gajim.config.get_per('accounts', account, 'name') \
- + '@' + gajim.config.get_per('accounts', account, 'hostname')
+ jid = app.config.get_per('accounts', account, 'name') \
+ + '@' + app.config.get_per('accounts', account, 'hostname')
self.xml.get_object('jid_entry1').set_text(jid)
self.ignore_events = False
@@ -1904,62 +1903,62 @@ class AccountsWindow:
account = self.current_account
# Account tab
self.draw_normal_jid()
- self.xml.get_object('resource_entry1').set_text(gajim.config.get_per(
+ self.xml.get_object('resource_entry1').set_text(app.config.get_per(
'accounts', account, 'resource'))
- client_cert = gajim.config.get_per('accounts', account, 'client_cert')
+ client_cert = app.config.get_per('accounts', account, 'client_cert')
self.xml.get_object('cert_entry1').set_text(client_cert)
- client_cert_encrypted = gajim.config.get_per('accounts', account,
+ client_cert_encrypted = app.config.get_per('accounts', account,
'client_cert_encrypted')
self.xml.get_object('client_cert_encrypted_checkbutton1').\
set_active(client_cert_encrypted)
self.xml.get_object('adjust_priority_with_status_checkbutton1').\
- set_active(gajim.config.get_per('accounts', account,
+ set_active(app.config.get_per('accounts', account,
'adjust_priority_with_status'))
spinbutton = self.xml.get_object('priority_spinbutton1')
- if gajim.config.get('enable_negative_priority'):
+ if app.config.get('enable_negative_priority'):
spinbutton.set_range(-128, 127)
else:
spinbutton.set_range(0, 127)
- spinbutton.set_value(gajim.config.get_per('accounts', account,
+ spinbutton.set_value(app.config.get_per('accounts', account,
'priority'))
# Connection tab
- use_env_http_proxy = gajim.config.get_per('accounts', account,
+ use_env_http_proxy = app.config.get_per('accounts', account,
'use_env_http_proxy')
self.xml.get_object('use_env_http_proxy_checkbutton1').set_active(
use_env_http_proxy)
self.xml.get_object('proxy_hbox1').set_sensitive(not use_env_http_proxy)
- warn_when_insecure_ssl = gajim.config.get_per('accounts', account,
+ warn_when_insecure_ssl = app.config.get_per('accounts', account,
'warn_when_insecure_ssl_connection')
self.xml.get_object('warn_when_insecure_connection_checkbutton1').\
set_active(warn_when_insecure_ssl)
self.xml.get_object('send_keepalive_checkbutton1').set_active(
- gajim.config.get_per('accounts', account, 'keep_alives_enabled'))
+ app.config.get_per('accounts', account, 'keep_alives_enabled'))
- use_custom_host = gajim.config.get_per('accounts', account,
+ use_custom_host = app.config.get_per('accounts', account,
'use_custom_host')
self.xml.get_object('custom_host_port_checkbutton1').set_active(
use_custom_host)
- custom_host = gajim.config.get_per('accounts', account, 'custom_host')
+ custom_host = app.config.get_per('accounts', account, 'custom_host')
if not custom_host:
- custom_host = gajim.config.get_per('accounts', account, 'hostname')
- gajim.config.set_per('accounts', account, 'custom_host',
+ custom_host = app.config.get_per('accounts', account, 'hostname')
+ app.config.set_per('accounts', account, 'custom_host',
custom_host)
self.xml.get_object('custom_host_entry1').set_text(custom_host)
- custom_port = gajim.config.get_per('accounts', account, 'custom_port')
+ custom_port = app.config.get_per('accounts', account, 'custom_port')
if not custom_port:
custom_port = 5222
- gajim.config.set_per('accounts', account, 'custom_port',
+ app.config.set_per('accounts', account, 'custom_port',
custom_port)
self.xml.get_object('custom_port_entry1').set_text(str(custom_port))
# Personal tab
gpg_key_label = self.xml.get_object('gpg_key_label1')
- if gajim.HAVE_GPG:
+ if app.HAVE_GPG:
self.xml.get_object('gpg_choose_button1').set_sensitive(True)
self.init_account_gpg()
else:
@@ -1968,11 +1967,11 @@ class AccountsWindow:
# General tab
self.xml.get_object('autoconnect_checkbutton1').set_active(
- gajim.config.get_per('accounts', account, 'autoconnect'))
- self.xml.get_object('autoreconnect_checkbutton1').set_active(gajim.
+ app.config.get_per('accounts', account, 'autoconnect'))
+ self.xml.get_object('autoreconnect_checkbutton1').set_active(app.
config.get_per('accounts', account, 'autoreconnect'))
- list_no_log_for = gajim.config.get_per('accounts', account,
+ list_no_log_for = app.config.get_per('accounts', account,
'no_log_for').split()
if account in list_no_log_for:
self.xml.get_object('log_history_checkbutton1').set_active(False)
@@ -1980,23 +1979,23 @@ class AccountsWindow:
self.xml.get_object('log_history_checkbutton1').set_active(True)
self.xml.get_object('sync_logs_with_server_checkbutton1').set_active(
- gajim.config.get_per('accounts', account, 'sync_logs_with_server'))
+ app.config.get_per('accounts', account, 'sync_logs_with_server'))
self.xml.get_object('sync_with_global_status_checkbutton1').set_active(
- gajim.config.get_per('accounts', account,
+ app.config.get_per('accounts', account,
'sync_with_global_status'))
self.xml.get_object('carbons_checkbutton1').set_active(
- gajim.config.get_per('accounts', account, 'enable_message_carbons'))
+ app.config.get_per('accounts', account, 'enable_message_carbons'))
self.xml.get_object('use_ft_proxies_checkbutton1').set_active(
- gajim.config.get_per('accounts', account, 'use_ft_proxies'))
+ app.config.get_per('accounts', account, 'use_ft_proxies'))
def on_add_button_clicked(self, widget):
"""
When add button is clicked: open an account information window
"""
- if 'account_creation_wizard' in gajim.interface.instances:
- gajim.interface.instances['account_creation_wizard'].window.present()
+ if 'account_creation_wizard' in app.interface.instances:
+ app.interface.instances['account_creation_wizard'].window.present()
else:
- gajim.interface.instances['account_creation_wizard'] = \
+ app.interface.instances['account_creation_wizard'] = \
AccountCreationWizardWindow()
def on_remove_button_clicked(self, widget):
@@ -2007,35 +2006,35 @@ class AccountsWindow:
if not self.current_account:
return
account = self.current_account
- if len(gajim.events.get_events(account)):
+ if len(app.events.get_events(account)):
dialogs.ErrorDialog(_('Unread events'),
_('Read all pending events before removing this account.'),
transient_for=self.window)
return
- if gajim.config.get_per('accounts', account, 'is_zeroconf'):
+ if app.config.get_per('accounts', account, 'is_zeroconf'):
# Should never happen as button is insensitive
return
win_opened = False
- if gajim.interface.msg_win_mgr.get_controls(acct=account):
+ if app.interface.msg_win_mgr.get_controls(acct=account):
win_opened = True
- elif account in gajim.interface.instances:
- for key in gajim.interface.instances[account]:
- if gajim.interface.instances[account][key] and key != \
+ elif account in app.interface.instances:
+ for key in app.interface.instances[account]:
+ if app.interface.instances[account][key] and key != \
'remove_account':
win_opened = True
break
# Detect if we have opened windows for this account
def remove(account):
- if account in gajim.interface.instances and \
- 'remove_account' in gajim.interface.instances[account]:
- gajim.interface.instances[account]['remove_account'].window.\
+ if account in app.interface.instances and \
+ 'remove_account' in app.interface.instances[account]:
+ app.interface.instances[account]['remove_account'].window.\
present()
else:
- if not account in gajim.interface.instances:
- gajim.interface.instances[account] = {}
- gajim.interface.instances[account]['remove_account'] = \
+ if not account in app.interface.instances:
+ app.interface.instances[account] = {}
+ app.interface.instances[account]['remove_account'] = \
RemoveAccountWindow(account)
if win_opened:
dialogs.ConfirmationDialog(
@@ -2049,22 +2048,22 @@ class AccountsWindow:
def on_rename_button_clicked(self, widget):
if not self.current_account:
return
- active = gajim.config.get_per('accounts', self.current_account,
- 'active') and self.current_account in gajim.connections
- if active and gajim.connections[self.current_account].connected != 0:
+ active = app.config.get_per('accounts', self.current_account,
+ 'active') and self.current_account in app.connections
+ if active and app.connections[self.current_account].connected != 0:
dialogs.ErrorDialog(
_('You are currently connected to the server'),
_('To change the account name, you must be disconnected.'),
transient_for=self.window)
return
- if len(gajim.events.get_events(self.current_account)):
+ if len(app.events.get_events(self.current_account)):
dialogs.ErrorDialog(_('Unread events'),
_('To change the account name, you must read all pending '
'events.'), transient_for=self.window)
return
# Get the new name
def on_renamed(new_name, old_name):
- if new_name in gajim.connections:
+ if new_name in app.connections:
dialogs.ErrorDialog(_('Account Name Already Used'),
_('This name is already used by another of your accounts. '
'Please choose another name.'), transient_for=self.window)
@@ -2081,79 +2080,79 @@ class AccountsWindow:
return
if active:
# update variables
- gajim.interface.instances[new_name] = gajim.interface.instances[
+ app.interface.instances[new_name] = app.interface.instances[
old_name]
- gajim.interface.minimized_controls[new_name] = \
- gajim.interface.minimized_controls[old_name]
- gajim.nicks[new_name] = gajim.nicks[old_name]
- gajim.block_signed_in_notifications[new_name] = \
- gajim.block_signed_in_notifications[old_name]
- gajim.groups[new_name] = gajim.groups[old_name]
- gajim.gc_connected[new_name] = gajim.gc_connected[old_name]
- gajim.automatic_rooms[new_name] = gajim.automatic_rooms[
+ app.interface.minimized_controls[new_name] = \
+ app.interface.minimized_controls[old_name]
+ app.nicks[new_name] = app.nicks[old_name]
+ app.block_signed_in_notifications[new_name] = \
+ app.block_signed_in_notifications[old_name]
+ app.groups[new_name] = app.groups[old_name]
+ app.gc_connected[new_name] = app.gc_connected[old_name]
+ app.automatic_rooms[new_name] = app.automatic_rooms[
old_name]
- gajim.newly_added[new_name] = gajim.newly_added[old_name]
- gajim.to_be_removed[new_name] = gajim.to_be_removed[old_name]
- gajim.sleeper_state[new_name] = gajim.sleeper_state[old_name]
- gajim.encrypted_chats[new_name] = gajim.encrypted_chats[
+ app.newly_added[new_name] = app.newly_added[old_name]
+ app.to_be_removed[new_name] = app.to_be_removed[old_name]
+ app.sleeper_state[new_name] = app.sleeper_state[old_name]
+ app.encrypted_chats[new_name] = app.encrypted_chats[
old_name]
- gajim.last_message_time[new_name] = \
- gajim.last_message_time[old_name]
- gajim.status_before_autoaway[new_name] = \
- gajim.status_before_autoaway[old_name]
- gajim.transport_avatar[new_name] = gajim.transport_avatar[old_name]
- gajim.gajim_optional_features[new_name] = \
- gajim.gajim_optional_features[old_name]
- gajim.caps_hash[new_name] = gajim.caps_hash[old_name]
+ app.last_message_time[new_name] = \
+ app.last_message_time[old_name]
+ app.status_before_autoaway[new_name] = \
+ app.status_before_autoaway[old_name]
+ app.transport_avatar[new_name] = app.transport_avatar[old_name]
+ app.gajim_optional_features[new_name] = \
+ app.gajim_optional_features[old_name]
+ app.caps_hash[new_name] = app.caps_hash[old_name]
- gajim.contacts.change_account_name(old_name, new_name)
- gajim.events.change_account_name(old_name, new_name)
+ app.contacts.change_account_name(old_name, new_name)
+ app.events.change_account_name(old_name, new_name)
# change account variable for chat / gc controls
- gajim.interface.msg_win_mgr.change_account_name(old_name, new_name)
+ app.interface.msg_win_mgr.change_account_name(old_name, new_name)
# upgrade account variable in opened windows
for kind in ('infos', 'disco', 'gc_config', 'search',
'online_dialog', 'sub_request'):
- for j in gajim.interface.instances[new_name][kind]:
- gajim.interface.instances[new_name][kind][j].account = \
+ for j in app.interface.instances[new_name][kind]:
+ app.interface.instances[new_name][kind][j].account = \
new_name
# ServiceCache object keep old property account
- if hasattr(gajim.connections[old_name], 'services_cache'):
- gajim.connections[old_name].services_cache.account = \
+ if hasattr(app.connections[old_name], 'services_cache'):
+ app.connections[old_name].services_cache.account = \
new_name
- del gajim.interface.instances[old_name]
- del gajim.interface.minimized_controls[old_name]
- del gajim.nicks[old_name]
- del gajim.block_signed_in_notifications[old_name]
- del gajim.groups[old_name]
- del gajim.gc_connected[old_name]
- del gajim.automatic_rooms[old_name]
- del gajim.newly_added[old_name]
- del gajim.to_be_removed[old_name]
- del gajim.sleeper_state[old_name]
- del gajim.encrypted_chats[old_name]
- del gajim.last_message_time[old_name]
- del gajim.status_before_autoaway[old_name]
- del gajim.transport_avatar[old_name]
- del gajim.gajim_optional_features[old_name]
- del gajim.caps_hash[old_name]
- gajim.connections[old_name].name = new_name
- gajim.connections[old_name].pep_change_account_name(new_name)
- gajim.connections[old_name].caps_change_account_name(new_name)
- gajim.connections[new_name] = gajim.connections[old_name]
- del gajim.connections[old_name]
- gajim.config.add_per('accounts', new_name)
- old_config = gajim.config.get_per('accounts', old_name)
+ del app.interface.instances[old_name]
+ del app.interface.minimized_controls[old_name]
+ del app.nicks[old_name]
+ del app.block_signed_in_notifications[old_name]
+ del app.groups[old_name]
+ del app.gc_connected[old_name]
+ del app.automatic_rooms[old_name]
+ del app.newly_added[old_name]
+ del app.to_be_removed[old_name]
+ del app.sleeper_state[old_name]
+ del app.encrypted_chats[old_name]
+ del app.last_message_time[old_name]
+ del app.status_before_autoaway[old_name]
+ del app.transport_avatar[old_name]
+ del app.gajim_optional_features[old_name]
+ del app.caps_hash[old_name]
+ app.connections[old_name].name = new_name
+ app.connections[old_name].pep_change_account_name(new_name)
+ app.connections[old_name].caps_change_account_name(new_name)
+ app.connections[new_name] = app.connections[old_name]
+ del app.connections[old_name]
+ app.config.add_per('accounts', new_name)
+ old_config = app.config.get_per('accounts', old_name)
for opt in old_config:
- gajim.config.set_per('accounts', new_name, opt, old_config[opt])
- gajim.config.del_per('accounts', old_name)
+ app.config.set_per('accounts', new_name, opt, old_config[opt])
+ app.config.del_per('accounts', old_name)
if self.current_account == old_name:
self.current_account = new_name
- if old_name == gajim.ZEROCONF_ACC_NAME:
- gajim.ZEROCONF_ACC_NAME = new_name
+ if old_name == app.ZEROCONF_ACC_NAME:
+ app.ZEROCONF_ACC_NAME = new_name
# refresh roster
- gajim.interface.roster.setup_and_draw_roster()
+ app.interface.roster.setup_and_draw_roster()
self.init_accounts()
self.select_account(new_name)
gajim.app.remove_account_actions(old_name)
@@ -2168,7 +2167,7 @@ class AccountsWindow:
transient_for=self.window)
def option_changed(self, option, value):
- return gajim.config.get_per('accounts', self.current_account, option) \
+ return app.config.get_per('accounts', self.current_account, option) \
!= value
def on_jid_entry1_focus_out_event(self, widget, event):
@@ -2186,7 +2185,7 @@ class AccountsWindow:
return True
jid_splited = jid.split('@', 1)
- if len(jid_splited) != 2 and not gajim.config.get_per('accounts',
+ if len(jid_splited) != 2 and not app.config.get_per('accounts',
self.current_account, 'anonymous_auth'):
if not widget.is_focus():
pritext = _('Invalid JID')
@@ -2197,9 +2196,9 @@ class AccountsWindow:
return True
- if gajim.config.get_per('accounts', self.current_account,
+ if app.config.get_per('accounts', self.current_account,
'anonymous_auth'):
- gajim.config.set_per('accounts', self.current_account, 'hostname',
+ app.config.set_per('accounts', self.current_account, 'hostname',
jid_splited[0])
if self.option_changed('hostname', jid_splited[0]):
self.need_relogin = True
@@ -2208,9 +2207,9 @@ class AccountsWindow:
self.option_changed('hostname', jid_splited[1]):
self.need_relogin = True
- gajim.config.set_per('accounts', self.current_account, 'name',
+ app.config.set_per('accounts', self.current_account, 'name',
jid_splited[0])
- gajim.config.set_per('accounts', self.current_account, 'hostname',
+ app.config.set_per('accounts', self.current_account, 'hostname',
jid_splited[1])
def on_cert_entry1_focus_out_event(self, widget, event):
@@ -2219,14 +2218,14 @@ class AccountsWindow:
client_cert = widget.get_text()
if self.option_changed('client_cert', client_cert):
self.need_relogin = True
- gajim.config.set_per('accounts', self.current_account, 'client_cert',
+ app.config.set_per('accounts', self.current_account, 'client_cert',
client_cert)
def on_anonymous_checkbutton1_toggled(self, widget):
if self.ignore_events:
return
active = widget.get_active()
- gajim.config.set_per('accounts', self.current_account, 'anonymous_auth',
+ app.config.set_per('accounts', self.current_account, 'anonymous_auth',
active)
self.draw_normal_jid()
@@ -2241,7 +2240,7 @@ class AccountsWindow:
active = widget.get_active()
password_entry = self.xml.get_object('password_entry1')
password_entry.set_sensitive(active)
- gajim.config.set_per('accounts', self.current_account, 'savepass',
+ app.config.set_per('accounts', self.current_account, 'savepass',
active)
if active:
password = password_entry.get_text()
@@ -2265,7 +2264,7 @@ class AccountsWindow:
if self.option_changed('resource', resource):
self.need_relogin = True
- gajim.config.set_per('accounts', self.current_account, 'resource',
+ app.config.set_per('accounts', self.current_account, 'resource',
resource)
def on_adjust_priority_with_status_checkbutton1_toggled(self, widget):
@@ -2280,7 +2279,7 @@ class AccountsWindow:
if self.option_changed('priority', prio):
self.resend_presence = True
- gajim.config.set_per('accounts', self.current_account, 'priority', prio)
+ app.config.set_per('accounts', self.current_account, 'priority', prio)
def on_synchronise_contacts_button1_clicked(self, widget):
try:
@@ -2292,7 +2291,7 @@ class AccountsWindow:
def on_change_password_button1_clicked(self, widget):
def on_changed(new_password):
if new_password is not None:
- gajim.connections[self.current_account].change_password(
+ app.connections[self.current_account].change_password(
new_password)
if self.xml.get_object('save_password_checkbutton1').\
get_active():
@@ -2327,14 +2326,14 @@ class AccountsWindow:
def on_log_history_checkbutton_toggled(self, widget):
if self.ignore_events:
return
- list_no_log_for = gajim.config.get_per('accounts', self.current_account,
+ list_no_log_for = app.config.get_per('accounts', self.current_account,
'no_log_for').split()
if self.current_account in list_no_log_for:
list_no_log_for.remove(self.current_account)
if not widget.get_active():
list_no_log_for.append(self.current_account)
- gajim.config.set_per('accounts', self.current_account, 'no_log_for',
+ app.config.set_per('accounts', self.current_account, 'no_log_for',
' '.join(list_no_log_for))
def on_sync_logs_with_server_checkbutton_toggled(self, widget):
@@ -2348,7 +2347,7 @@ class AccountsWindow:
return
self.on_checkbutton_toggled(widget, 'sync_with_global_status',
account=self.current_account)
- gajim.interface.roster.update_status_combobox()
+ app.interface.roster.update_status_combobox()
def on_carbons_checkbutton_toggled(self, widget):
if self.ignore_events:
@@ -2379,13 +2378,13 @@ class AccountsWindow:
if self.option_changed('proxy', proxy):
self.need_relogin = True
- gajim.config.set_per('accounts', self.current_account, 'proxy', proxy)
+ app.config.set_per('accounts', self.current_account, 'proxy', proxy)
def on_manage_proxies_button1_clicked(self, widget):
- if 'manage_proxies' in gajim.interface.instances:
- gajim.interface.instances['manage_proxies'].window.present()
+ if 'manage_proxies' in app.interface.instances:
+ app.interface.instances['manage_proxies'].window.present()
else:
- gajim.interface.instances['manage_proxies'] = ManageProxiesWindow(
+ app.interface.instances['manage_proxies'] = ManageProxiesWindow(
self.window)
def on_warn_when_insecure_connection_checkbutton1_toggled(self, widget):
@@ -2400,7 +2399,7 @@ class AccountsWindow:
return
self.on_checkbutton_toggled(widget, 'keep_alives_enabled',
account=self.current_account)
- gajim.config.set_per('accounts', self.current_account,
+ app.config.set_per('accounts', self.current_account,
'ping_alives_enabled', widget.get_active())
def on_custom_host_port_checkbutton1_toggled(self, widget):
@@ -2418,7 +2417,7 @@ class AccountsWindow:
host = widget.get_text()
if self.option_changed('custom_host', host):
self.need_relogin = True
- gajim.config.set_per('accounts', self.current_account, 'custom_host',
+ app.config.set_per('accounts', self.current_account, 'custom_host',
host)
def on_custom_port_entry_focus_out_event(self, widget, event):
@@ -2436,18 +2435,18 @@ class AccountsWindow:
return True
if self.option_changed('custom_port', custom_port):
self.need_relogin = True
- gajim.config.set_per('accounts', self.current_account, 'custom_port',
+ app.config.set_per('accounts', self.current_account, 'custom_port',
custom_port)
def on_gpg_choose_button_clicked(self, widget, data = None):
- if self.current_account in gajim.connections and \
- gajim.connections[self.current_account].gpg:
- secret_keys = gajim.connections[self.current_account].\
+ if self.current_account in app.connections and \
+ app.connections[self.current_account].gpg:
+ secret_keys = app.connections[self.current_account].\
ask_gpg_secrete_keys()
- # self.current_account is None and/or gajim.connections is {}
+ # self.current_account is None and/or app.connections is {}
else:
- if gajim.HAVE_GPG:
+ if app.HAVE_GPG:
secret_keys = gpg.GnuPG().get_secret_keys()
else:
secret_keys = []
@@ -2460,7 +2459,7 @@ class AccountsWindow:
def on_key_selected(keyID):
if keyID is None:
return
- if self.current_account == gajim.ZEROCONF_ACC_NAME:
+ if self.current_account == app.ZEROCONF_ACC_NAME:
wiget_name_ext = '2'
else:
wiget_name_ext = '1'
@@ -2476,9 +2475,9 @@ class AccountsWindow:
use_gpg_agent_checkbutton.set_sensitive(False)
if self.option_changed('keyid', ''):
self.need_relogin = True
- gajim.config.set_per('accounts', self.current_account,
+ app.config.set_per('accounts', self.current_account,
'keyname', '')
- gajim.config.set_per('accounts', self.current_account, 'keyid',
+ app.config.set_per('accounts', self.current_account, 'keyid',
'')
else:
gpg_key_label.set_text(keyID[0])
@@ -2486,9 +2485,9 @@ class AccountsWindow:
use_gpg_agent_checkbutton.set_sensitive(True)
if self.option_changed('keyid', keyID[0]):
self.need_relogin = True
- gajim.config.set_per('accounts', self.current_account,
+ app.config.set_per('accounts', self.current_account,
'keyname', keyID[1])
- gajim.config.set_per('accounts', self.current_account, 'keyid',
+ app.config.set_per('accounts', self.current_account, 'keyid',
keyID[0])
dialogs.ChooseGPGKeyDialog(_('OpenPGP Key Selection'),
@@ -2499,128 +2498,128 @@ class AccountsWindow:
self.on_checkbutton_toggled(widget, 'use_gpg_agent')
def on_edit_details_button1_clicked(self, widget):
- if self.current_account not in gajim.interface.instances:
+ if self.current_account not in app.interface.instances:
dlg = dialogs.ErrorDialog(_('No such account available'),
_('You must create your account before editing your personal '
'information.'), transient_for=self.window)
return
- # show error dialog if account is newly created (not in gajim.connections)
- if self.current_account not in gajim.connections or \
- gajim.connections[self.current_account].connected < 2:
+ # show error dialog if account is newly created (not in app.connections)
+ if self.current_account not in app.connections or \
+ app.connections[self.current_account].connected < 2:
dialogs.ErrorDialog(_('You are not connected to the server'),
_('Without a connection, you can not edit your personal '
'information.'), transient_for=self.window)
return
- if not gajim.connections[self.current_account].vcard_supported:
+ if not app.connections[self.current_account].vcard_supported:
dialogs.ErrorDialog(_("Your server does not have vCard support"),
_("Your server can't save your personal information."),
transient_for=self.window)
return
- jid = gajim.get_jid_from_account(self.current_account)
- if 'profile' not in gajim.interface.instances[self.current_account]:
- gajim.interface.instances[self.current_account]['profile'] = \
+ jid = app.get_jid_from_account(self.current_account)
+ if 'profile' not in app.interface.instances[self.current_account]:
+ app.interface.instances[self.current_account]['profile'] = \
profile_window.ProfileWindow(self.current_account, transient_for=self.window)
- gajim.connections[self.current_account].request_vcard(jid)
+ app.connections[self.current_account].request_vcard(jid)
def on_checkbutton_toggled(self, widget, config_name,
change_sensitivity_widgets = None, account = None):
if account:
- gajim.config.set_per('accounts', account, config_name,
+ app.config.set_per('accounts', account, config_name,
widget.get_active())
else:
- gajim.config.set(config_name, widget.get_active())
+ app.config.set(config_name, widget.get_active())
if change_sensitivity_widgets:
for w in change_sensitivity_widgets:
w.set_sensitive(widget.get_active())
def on_merge_checkbutton_toggled(self, widget):
self.on_checkbutton_toggled(widget, 'mergeaccounts')
- if len(gajim.connections) >= 2: # Do not merge accounts if only one active
- gajim.interface.roster.regroup = gajim.config.get('mergeaccounts')
+ if len(app.connections) >= 2: # Do not merge accounts if only one active
+ app.interface.roster.regroup = app.config.get('mergeaccounts')
else:
- gajim.interface.roster.regroup = False
- gajim.interface.roster.setup_and_draw_roster()
+ app.interface.roster.regroup = False
+ app.interface.roster.setup_and_draw_roster()
def _disable_account(self, account):
- gajim.interface.roster.close_all(account)
- if account == gajim.ZEROCONF_ACC_NAME:
- gajim.connections[account].disable_account()
- gajim.connections[account].cleanup()
- del gajim.connections[account]
- del gajim.interface.instances[account]
- del gajim.interface.minimized_controls[account]
- del gajim.nicks[account]
- del gajim.block_signed_in_notifications[account]
- del gajim.groups[account]
- gajim.contacts.remove_account(account)
- del gajim.gc_connected[account]
- del gajim.automatic_rooms[account]
- del gajim.to_be_removed[account]
- del gajim.newly_added[account]
- del gajim.sleeper_state[account]
- del gajim.encrypted_chats[account]
- del gajim.last_message_time[account]
- del gajim.status_before_autoaway[account]
- del gajim.transport_avatar[account]
- del gajim.gajim_optional_features[account]
- del gajim.caps_hash[account]
- if len(gajim.connections) >= 2:
+ app.interface.roster.close_all(account)
+ if account == app.ZEROCONF_ACC_NAME:
+ app.connections[account].disable_account()
+ app.connections[account].cleanup()
+ del app.connections[account]
+ del app.interface.instances[account]
+ del app.interface.minimized_controls[account]
+ del app.nicks[account]
+ del app.block_signed_in_notifications[account]
+ del app.groups[account]
+ app.contacts.remove_account(account)
+ del app.gc_connected[account]
+ del app.automatic_rooms[account]
+ del app.to_be_removed[account]
+ del app.newly_added[account]
+ del app.sleeper_state[account]
+ del app.encrypted_chats[account]
+ del app.last_message_time[account]
+ del app.status_before_autoaway[account]
+ del app.transport_avatar[account]
+ del app.gajim_optional_features[account]
+ del app.caps_hash[account]
+ if len(app.connections) >= 2:
# Do not merge accounts if only one exists
- gajim.interface.roster.regroup = gajim.config.get('mergeaccounts')
+ app.interface.roster.regroup = app.config.get('mergeaccounts')
else:
- gajim.interface.roster.regroup = False
- gajim.interface.roster.setup_and_draw_roster()
- gajim.app.remove_account_actions(account)
+ app.interface.roster.regroup = False
+ app.interface.roster.setup_and_draw_roster()
+ app.app.remove_account_actions(account)
gui_menu_builder.build_accounts_menu()
def _enable_account(self, account):
- if account == gajim.ZEROCONF_ACC_NAME:
- gajim.connections[account] = connection_zeroconf.ConnectionZeroconf(
+ if account == app.ZEROCONF_ACC_NAME:
+ app.connections[account] = connection_zeroconf.ConnectionZeroconf(
account)
- if gajim.connections[account].gpg:
+ if app.connections[account].gpg:
self.xml.get_object('gpg_choose_button2').set_sensitive(True)
else:
- gajim.connections[account] = common.connection.Connection(account)
- if gajim.connections[account].gpg:
+ app.connections[account] = common.connection.Connection(account)
+ if app.connections[account].gpg:
self.xml.get_object('gpg_choose_button1').set_sensitive(True)
self.init_account_gpg()
# update variables
- gajim.interface.instances[account] = {'infos': {},
+ app.interface.instances[account] = {'infos': {},
'disco': {}, 'gc_config': {}, 'search': {}, 'online_dialog': {},
'sub_request': {}}
- gajim.interface.minimized_controls[account] = {}
- gajim.connections[account].connected = 0
- gajim.groups[account] = {}
- gajim.contacts.add_account(account)
- gajim.gc_connected[account] = {}
- gajim.automatic_rooms[account] = {}
- gajim.newly_added[account] = []
- gajim.to_be_removed[account] = []
- if account == gajim.ZEROCONF_ACC_NAME:
- gajim.nicks[account] = gajim.ZEROCONF_ACC_NAME
+ app.interface.minimized_controls[account] = {}
+ app.connections[account].connected = 0
+ app.groups[account] = {}
+ app.contacts.add_account(account)
+ app.gc_connected[account] = {}
+ app.automatic_rooms[account] = {}
+ app.newly_added[account] = []
+ app.to_be_removed[account] = []
+ if account == app.ZEROCONF_ACC_NAME:
+ app.nicks[account] = app.ZEROCONF_ACC_NAME
else:
- gajim.nicks[account] = gajim.config.get_per('accounts', account,
+ app.nicks[account] = app.config.get_per('accounts', account,
'name')
- gajim.block_signed_in_notifications[account] = True
- gajim.sleeper_state[account] = 'off'
- gajim.encrypted_chats[account] = []
- gajim.last_message_time[account] = {}
- gajim.status_before_autoaway[account] = ''
- gajim.transport_avatar[account] = {}
- gajim.gajim_optional_features[account] = []
- gajim.caps_hash[account] = ''
+ app.block_signed_in_notifications[account] = True
+ app.sleeper_state[account] = 'off'
+ app.encrypted_chats[account] = []
+ app.last_message_time[account] = {}
+ app.status_before_autoaway[account] = ''
+ app.transport_avatar[account] = {}
+ app.gajim_optional_features[account] = []
+ app.caps_hash[account] = ''
helpers.update_optional_features(account)
# refresh roster
- if len(gajim.connections) >= 2:
+ if len(app.connections) >= 2:
# Do not merge accounts if only one exists
- gajim.interface.roster.regroup = gajim.config.get('mergeaccounts')
+ app.interface.roster.regroup = app.config.get('mergeaccounts')
else:
- gajim.interface.roster.regroup = False
- gajim.interface.roster.setup_and_draw_roster()
- gajim.app.add_account_actions(account)
+ app.interface.roster.regroup = False
+ app.interface.roster.setup_and_draw_roster()
+ app.app.add_account_actions(account)
gui_menu_builder.build_accounts_menu()
def on_enable_zeroconf_checkbutton2_toggled(self, widget):
@@ -2628,8 +2627,8 @@ class AccountsWindow:
# normal account
if self.ignore_events:
return
- if self.current_account in gajim.connections and \
- gajim.connections[self.current_account].connected > 0:
+ if self.current_account in app.connections and \
+ app.connections[self.current_account].connected > 0:
self.ignore_events = True
self.xml.get_object('enable_zeroconf_checkbutton2').set_active(True)
self.ignore_events = False
@@ -2638,35 +2637,35 @@ class AccountsWindow:
_('To disable the account, you must be disconnected.'),
transient_for=self.window)
return
- if gajim.ZEROCONF_ACC_NAME in gajim.connections and not \
- gajim.connections[gajim.ZEROCONF_ACC_NAME].is_zeroconf:
- gajim.nec.push_incoming_event(InformationEvent(None,
- conn=gajim.connections[gajim.ZEROCONF_ACC_NAME],
+ if app.ZEROCONF_ACC_NAME in app.connections and not \
+ app.connections[app.ZEROCONF_ACC_NAME].is_zeroconf:
+ app.nec.push_incoming_event(InformationEvent(None,
+ conn=app.connections[app.ZEROCONF_ACC_NAME],
level='error', pri_txt=_('Account Local already exists.'),
sec_txt=_('Please rename or remove it before enabling '
'link-local messaging.')))
return
- if gajim.config.get_per('accounts', gajim.ZEROCONF_ACC_NAME, 'active') \
+ if app.config.get_per('accounts', app.ZEROCONF_ACC_NAME, 'active') \
and not widget.get_active():
self.xml.get_object('zeroconf_notebook').set_sensitive(False)
# disable
- self._disable_account(gajim.ZEROCONF_ACC_NAME)
+ self._disable_account(app.ZEROCONF_ACC_NAME)
- elif not gajim.config.get_per('accounts', gajim.ZEROCONF_ACC_NAME,
+ elif not app.config.get_per('accounts', app.ZEROCONF_ACC_NAME,
'active') and widget.get_active():
self.xml.get_object('zeroconf_notebook').set_sensitive(True)
# enable (will create new account if not present)
- self._enable_account(gajim.ZEROCONF_ACC_NAME)
+ self._enable_account(app.ZEROCONF_ACC_NAME)
self.on_checkbutton_toggled(widget, 'active',
- account=gajim.ZEROCONF_ACC_NAME)
+ account=app.ZEROCONF_ACC_NAME)
def on_enable_checkbutton1_toggled(self, widget):
if self.ignore_events:
return
- if self.current_account in gajim.connections and \
- gajim.connections[self.current_account].connected > 0:
+ if self.current_account in app.connections and \
+ app.connections[self.current_account].connected > 0:
# connecting or connected
self.ignore_events = True
self.xml.get_object('enable_checkbutton1').set_active(True)
@@ -2701,7 +2700,7 @@ class AccountsWindow:
name = widget.get_text()
if self.option_changed('zeroconf_first_name', name):
self.need_relogin = True
- gajim.config.set_per('accounts', self.current_account,
+ app.config.set_per('accounts', self.current_account,
'zeroconf_first_name', name)
def on_last_name_entry2_changed(self, widget):
@@ -2710,7 +2709,7 @@ class AccountsWindow:
name = widget.get_text()
if self.option_changed('zeroconf_last_name', name):
self.need_relogin = True
- gajim.config.set_per('accounts', self.current_account,
+ app.config.set_per('accounts', self.current_account,
'zeroconf_last_name', name)
def on_jabber_id_entry2_changed(self, widget):
@@ -2719,7 +2718,7 @@ class AccountsWindow:
id_ = widget.get_text()
if self.option_changed('zeroconf_jabber_id', id_):
self.need_relogin = True
- gajim.config.set_per('accounts', self.current_account,
+ app.config.set_per('accounts', self.current_account,
'zeroconf_jabber_id', id_)
def on_email_entry2_changed(self, widget):
@@ -2728,7 +2727,7 @@ class AccountsWindow:
email = widget.get_text()
if self.option_changed('zeroconf_email', email):
self.need_relogin = True
- gajim.config.set_per('accounts', self.current_account,
+ app.config.set_per('accounts', self.current_account,
'zeroconf_email', email)
class FakeDataForm(Gtk.Table, object):
@@ -2794,7 +2793,7 @@ class ServiceRegistrationWindow:
self.is_form = is_form
self.xml = gtkgui_helpers.get_gtk_builder('service_registration_window.ui')
self.window = self.xml.get_object('service_registration_window')
- self.window.set_transient_for(gajim.interface.roster.window)
+ self.window.set_transient_for(app.interface.roster.window)
if self.is_form:
dataform = dataforms.ExtendForm(node = infos)
self.data_form_widget = dataforms_widget.DataFormWidget(dataform)
@@ -2821,7 +2820,7 @@ class ServiceRegistrationWindow:
# send registration info to the core
if self.is_form:
form = self.data_form_widget.data_form
- gajim.connections[self.account].register_agent(self.service,
+ app.connections[self.account].register_agent(self.service,
form, True) # True is for is_form
else:
infos = self.data_form_widget.get_infos()
@@ -2829,7 +2828,7 @@ class ServiceRegistrationWindow:
del infos['instructions']
if 'registered' in infos:
del infos['registered']
- gajim.connections[self.account].register_agent(self.service, infos)
+ app.connections[self.account].register_agent(self.service, infos)
self.window.destroy()
@@ -2849,7 +2848,7 @@ class GroupchatConfigWindow:
self.xml = gtkgui_helpers.get_gtk_builder('data_form_window.ui',
'data_form_window')
self.window = self.xml.get_object('data_form_window')
- self.window.set_transient_for(gajim.interface.roster.window)
+ self.window.set_transient_for(app.interface.roster.window)
if self.form:
config_vbox = self.xml.get_object('config_vbox')
@@ -2940,7 +2939,7 @@ class GroupchatConfigWindow:
sw = Gtk.ScrolledWindow()
sw.add(self.affiliation_treeview[affiliation])
add_on_vbox.pack_start(sw, True, True, 0)
- gajim.connections[self.account].get_affiliation_list(self.room_jid,
+ app.connections[self.account].get_affiliation_list(self.room_jid,
affiliation)
self.xml.connect_signals(self)
@@ -3016,12 +3015,12 @@ class GroupchatConfigWindow:
model.append((jid, reason, nick, role))
def on_data_form_window_destroy(self, widget):
- del gajim.interface.instances[self.account]['gc_config'][self.room_jid]
+ del app.interface.instances[self.account]['gc_config'][self.room_jid]
def on_ok_button_clicked(self, widget):
if self.form:
form = self.data_form_widget.data_form
- gajim.connections[self.account].send_gc_config(self.room_jid, form)
+ app.connections[self.account].send_gc_config(self.room_jid, form)
for affiliation in self.affiliation_labels.keys():
users_dict = {}
actual_jid_list = []
@@ -3044,7 +3043,7 @@ class GroupchatConfigWindow:
if jid not in actual_jid_list:
users_dict[jid] = {'affiliation': 'none'}
if users_dict:
- gajim.connections[self.account].send_gc_affiliation_list(
+ app.connections[self.account].send_gc_affiliation_list(
self.room_jid, users_dict)
self.window.destroy()
@@ -3056,8 +3055,8 @@ class RemoveAccountWindow:
"""
def on_remove_account_window_destroy(self, widget):
- if self.account in gajim.interface.instances:
- del gajim.interface.instances[self.account]['remove_account']
+ if self.account in app.interface.instances:
+ del app.interface.instances[self.account]['remove_account']
def on_cancel_button_clicked(self, widget):
self.window.destroy()
@@ -3066,7 +3065,7 @@ class RemoveAccountWindow:
self.account = account
xml = gtkgui_helpers.get_gtk_builder('remove_account_window.ui')
self.window = xml.get_object('remove_account_window')
- self.window.set_transient_for(gajim.interface.roster.window)
+ self.window.set_transient_for(app.interface.roster.window)
self.remove_and_unregister_radiobutton = xml.get_object(
'remove_and_unregister_radiobutton')
self.window.set_title(_('Removing %s account') % self.account)
@@ -3075,26 +3074,26 @@ class RemoveAccountWindow:
def on_remove_button_clicked(self, widget):
def remove():
- if self.account in gajim.connections and \
- gajim.connections[self.account].connected and \
+ if self.account in app.connections and \
+ app.connections[self.account].connected and \
not self.remove_and_unregister_radiobutton.get_active():
# change status to offline only if we will not remove this JID from
# server
- gajim.connections[self.account].change_status('offline', 'offline')
+ app.connections[self.account].change_status('offline', 'offline')
if self.remove_and_unregister_radiobutton.get_active():
- if not self.account in gajim.connections:
+ if not self.account in app.connections:
dialogs.ErrorDialog(
_('Account is disabled'),
_('To unregister from a server, account must be '
'enabled.'))
return
- if not gajim.connections[self.account].password:
+ if not app.connections[self.account].password:
def on_ok(passphrase, checked):
if passphrase == -1:
# We don't remove account cause we canceled pw window
return
- gajim.connections[self.account].password = passphrase
- gajim.connections[self.account].unregister_account(
+ app.connections[self.account].password = passphrase
+ app.connections[self.account].unregister_account(
self._on_remove_success)
dialogs.PassphraseDialog(
@@ -3102,13 +3101,13 @@ class RemoveAccountWindow:
_('Enter your password for account %s') % self.account,
_('Save password'), ok_handler=on_ok)
return
- gajim.connections[self.account].unregister_account(
+ app.connections[self.account].unregister_account(
self._on_remove_success)
else:
self._on_remove_success(True)
- if self.account in gajim.connections and \
- gajim.connections[self.account].connected:
+ if self.account in app.connections and \
+ app.connections[self.account].connected:
dialogs.ConfirmationDialog(
_('Account "%s" is connected to the server') % self.account,
_('If you remove it, the connection will be lost.'),
@@ -3132,41 +3131,41 @@ class RemoveAccountWindow:
on_response_ok=self.on_remove_responce_ok, is_modal=False)
return
# Close all opened windows
- gajim.interface.roster.close_all(self.account, force=True)
- if self.account in gajim.connections:
- gajim.connections[self.account].disconnect(on_purpose=True)
- gajim.connections[self.account].cleanup()
- del gajim.connections[self.account]
- gajim.logger.remove_roster(gajim.get_jid_from_account(self.account))
- gajim.config.del_per('accounts', self.account)
- del gajim.interface.instances[self.account]
- if self.account in gajim.nicks:
- del gajim.interface.minimized_controls[self.account]
- del gajim.nicks[self.account]
- del gajim.block_signed_in_notifications[self.account]
- del gajim.groups[self.account]
- gajim.contacts.remove_account(self.account)
- del gajim.gc_connected[self.account]
- del gajim.automatic_rooms[self.account]
- del gajim.to_be_removed[self.account]
- del gajim.newly_added[self.account]
- del gajim.sleeper_state[self.account]
- del gajim.encrypted_chats[self.account]
- del gajim.last_message_time[self.account]
- del gajim.status_before_autoaway[self.account]
- del gajim.transport_avatar[self.account]
- del gajim.gajim_optional_features[self.account]
- del gajim.caps_hash[self.account]
- if len(gajim.connections) >= 2: # Do not merge accounts if only one exists
- gajim.interface.roster.regroup = gajim.config.get('mergeaccounts')
+ app.interface.roster.close_all(self.account, force=True)
+ if self.account in app.connections:
+ app.connections[self.account].disconnect(on_purpose=True)
+ app.connections[self.account].cleanup()
+ del app.connections[self.account]
+ app.logger.remove_roster(app.get_jid_from_account(self.account))
+ app.config.del_per('accounts', self.account)
+ del app.interface.instances[self.account]
+ if self.account in app.nicks:
+ del app.interface.minimized_controls[self.account]
+ del app.nicks[self.account]
+ del app.block_signed_in_notifications[self.account]
+ del app.groups[self.account]
+ app.contacts.remove_account(self.account)
+ del app.gc_connected[self.account]
+ del app.automatic_rooms[self.account]
+ del app.to_be_removed[self.account]
+ del app.newly_added[self.account]
+ del app.sleeper_state[self.account]
+ del app.encrypted_chats[self.account]
+ del app.last_message_time[self.account]
+ del app.status_before_autoaway[self.account]
+ del app.transport_avatar[self.account]
+ del app.gajim_optional_features[self.account]
+ del app.caps_hash[self.account]
+ if len(app.connections) >= 2: # Do not merge accounts if only one exists
+ app.interface.roster.regroup = app.config.get('mergeaccounts')
else:
- gajim.interface.roster.regroup = False
- gajim.interface.roster.setup_and_draw_roster()
- gajim.app.remove_account_actions(self.account)
+ app.interface.roster.regroup = False
+ app.interface.roster.setup_and_draw_roster()
+ app.app.remove_account_actions(self.account)
gui_menu_builder.build_accounts_menu()
- if 'accounts' in gajim.interface.instances:
- gajim.interface.instances['accounts'].init_accounts()
- gajim.interface.instances['accounts'].init_account()
+ if 'accounts' in app.interface.instances:
+ app.interface.instances['accounts'].init_accounts()
+ app.interface.instances['accounts'].init_account()
self.window.destroy()
#---------- ManageBookmarksWindow class -------------#
@@ -3174,7 +3173,7 @@ class ManageBookmarksWindow:
def __init__(self):
self.xml = gtkgui_helpers.get_gtk_builder('manage_bookmarks_window.ui')
self.window = self.xml.get_object('manage_bookmarks_window')
- self.window.set_transient_for(gajim.interface.roster.window)
+ self.window.set_transient_for(app.interface.roster.window)
self.ignore_events = False
@@ -3184,17 +3183,17 @@ class ManageBookmarksWindow:
self.treestore.set_sort_column_id(1, Gtk.SortType.ASCENDING)
# Store bookmarks in treeview.
- for account in gajim.connections:
- if gajim.connections[account].connected <= 1:
+ for account in app.connections:
+ if app.connections[account].connected <= 1:
continue
- if gajim.connections[account].is_zeroconf:
+ if app.connections[account].is_zeroconf:
continue
- if not gajim.connections[account].private_storage_supported:
+ if not app.connections[account].private_storage_supported:
continue
iter_ = self.treestore.append(None, [None, account, None, None,
None, None, None, None])
- for bookmark in gajim.connections[account].bookmarks:
+ for bookmark in app.connections[account].bookmarks:
if not bookmark['name']:
# No name was given for this bookmark.
# Use the first part of JID instead...
@@ -3291,7 +3290,7 @@ class ManageBookmarksWindow:
add_to = iter_
account = model[add_to][1]
- nick = gajim.nicks[account]
+ nick = app.nicks[account]
iter_ = self.treestore.append(add_to, [account, _('New Group Chat'),
'@', False, False, '', nick, 'in_and_out'])
@@ -3348,7 +3347,7 @@ class ManageBookmarksWindow:
for account in self.treestore:
acct = account[1]
- gajim.connections[acct].bookmarks = []
+ app.connections[acct].bookmarks = []
for bm in account.iterchildren():
# Convert True/False/None to '1' or '0'
@@ -3364,9 +3363,9 @@ class ManageBookmarksWindow:
'minimize': minimize, 'password': pw, 'nick': nick,
'print_status': bm[7]}
- gajim.connections[acct].bookmarks.append(bmdict)
+ app.connections[acct].bookmarks.append(bmdict)
- gajim.connections[acct].store_bookmarks()
+ app.connections[acct].store_bookmarks()
gui_menu_builder.build_bookmark_menu(acct)
self.window.destroy()
@@ -3557,7 +3556,7 @@ class AccountCreationWizardWindow:
self.xml = gtkgui_helpers.get_gtk_builder(
'account_creation_wizard_window.ui')
self.window = self.xml.get_object('account_creation_wizard_window')
- self.window.set_transient_for(gajim.interface.roster.window)
+ self.window.set_transient_for(app.interface.roster.window)
# Connect events from comboboxtext_entry
server_comboboxtext = self.xml.get_object('server_comboboxtext')
@@ -3570,7 +3569,7 @@ class AccountCreationWizardWindow:
self.update_proxy_list()
# parse servers.xml
- servers_xml = os.path.join(gajim.DATA_DIR, 'other', 'servers.xml')
+ servers_xml = os.path.join(app.DATA_DIR, 'other', 'servers.xml')
servers = gtkgui_helpers.parse_server_xml(servers_xml)
servers_model = self.xml.get_object('server_liststore')
for server in servers:
@@ -3599,32 +3598,32 @@ class AccountCreationWizardWindow:
self.notebook.set_current_page(0)
self.xml.connect_signals(self)
self.window.show_all()
- gajim.ged.register_event_handler('new-account-connected', ged.GUI1,
+ app.ged.register_event_handler('new-account-connected', ged.GUI1,
self._nec_new_acc_connected)
- gajim.ged.register_event_handler('new-account-not-connected', ged.GUI1,
+ app.ged.register_event_handler('new-account-not-connected', ged.GUI1,
self._nec_new_acc_not_connected)
- gajim.ged.register_event_handler('account-created', ged.GUI1,
+ app.ged.register_event_handler('account-created', ged.GUI1,
self._nec_acc_is_ok)
- gajim.ged.register_event_handler('account-not-created', ged.GUI1,
+ app.ged.register_event_handler('account-not-created', ged.GUI1,
self._nec_acc_is_not_ok)
def on_wizard_window_destroy(self, widget):
page = self.notebook.get_current_page()
- if page in (4, 5) and self.account in gajim.connections:
- # connection instance is saved in gajim.connections and we canceled
+ if page in (4, 5) and self.account in app.connections:
+ # connection instance is saved in app.connections and we canceled
# the addition of the account
- del gajim.connections[self.account]
- if self.account in gajim.config.get_per('accounts'):
- gajim.config.del_per('accounts', self.account)
- gajim.ged.remove_event_handler('new-account-connected', ged.GUI1,
+ del app.connections[self.account]
+ if self.account in app.config.get_per('accounts'):
+ app.config.del_per('accounts', self.account)
+ app.ged.remove_event_handler('new-account-connected', ged.GUI1,
self._nec_new_acc_connected)
- gajim.ged.remove_event_handler('new-account-not-connected', ged.GUI1,
+ app.ged.remove_event_handler('new-account-not-connected', ged.GUI1,
self._nec_new_acc_not_connected)
- gajim.ged.remove_event_handler('account-created', ged.GUI1,
+ app.ged.remove_event_handler('account-created', ged.GUI1,
self._nec_acc_is_ok)
- gajim.ged.remove_event_handler('account-not-created', ged.GUI1,
+ app.ged.remove_event_handler('account-not-created', ged.GUI1,
self._nec_acc_is_not_ok)
- del gajim.interface.instances['account_creation_wizard']
+ del app.interface.instances['account_creation_wizard']
def on_register_server_features_button_clicked(self, widget):
helpers.launch_browser_mailer('url',
@@ -3646,8 +3645,8 @@ class AccountCreationWizardWindow:
self.xml.get_object('form_vbox').remove(self.data_form_widget)
self.notebook.set_current_page(2) # show server page
elif cur_page == 4:
- if self.account in gajim.connections:
- del gajim.connections[self.account]
+ if self.account in app.connections:
+ del app.connections[self.account]
self.notebook.set_current_page(2)
self.xml.get_object('form_vbox').remove(self.data_form_widget)
elif cur_page == 6: # finish page
@@ -3740,11 +3739,11 @@ class AccountCreationWizardWindow:
self.account = server
i = 1
- while self.account in gajim.connections:
+ while self.account in app.connections:
self.account = server + str(i)
i += 1
- username, server = gajim.get_name_and_server_from_jid(jid)
+ username, server = app.get_name_and_server_from_jid(jid)
if self.xml.get_object('anonymous_checkbutton1').get_active():
self.save_account('', server, False, '', anonymous=True)
else:
@@ -3761,7 +3760,7 @@ class AccountCreationWizardWindow:
return
self.account = server
i = 1
- while self.account in gajim.connections:
+ while self.account in app.connections:
self.account = server + str(i)
i += 1
@@ -3799,31 +3798,31 @@ class AccountCreationWizardWindow:
self.update_progressbar)
# Get form from serveur
con = connection.Connection(self.account)
- gajim.connections[self.account] = con
+ app.connections[self.account] = con
con.new_account(self.account, config)
elif cur_page == 3:
checked = self.xml.get_object('ssl_checkbutton').get_active()
if checked:
- hostname = gajim.connections[self.account].new_account_info[
+ hostname = app.connections[self.account].new_account_info[
'hostname']
# Check if cert is already in file
certs = ''
- if os.path.isfile(gajim.MY_CACERTS):
- f = open(gajim.MY_CACERTS)
+ if os.path.isfile(app.MY_CACERTS):
+ f = open(app.MY_CACERTS)
certs = f.read()
f.close()
if self.ssl_cert in certs:
dialogs.ErrorDialog(_('Certificate Already in File'),
_('This certificate is already in file %s, so it\'s '
- 'not added again.') % gajim.MY_CACERTS)
+ 'not added again.') % app.MY_CACERTS)
else:
- f = open(gajim.MY_CACERTS, 'a')
+ f = open(app.MY_CACERTS, 'a')
f.write(hostname + '\n')
f.write(self.ssl_cert + '\n\n')
f.close()
- gajim.connections[self.account].new_account_info[
+ app.connections[self.account].new_account_info[
'ssl_fingerprint_sha1'] = self.ssl_fingerprint_sha1
- gajim.connections[self.account].new_account_info[
+ app.connections[self.account].new_account_info[
'ssl_fingerprint_sha256'] = self.ssl_fingerprint_sha256
self.notebook.set_current_page(4) # show fom page
elif cur_page == 4:
@@ -3831,7 +3830,7 @@ class AccountCreationWizardWindow:
form = self.data_form_widget.data_form
else:
form = self.data_form_widget.get_infos()
- gajim.connections[self.account].send_new_account_infos(form,
+ app.connections[self.account].send_new_account_infos(form,
self.is_form)
self.xml.get_object('form_vbox').remove(self.data_form_widget)
self.xml.get_object('progressbar_label').set_markup(
@@ -3846,17 +3845,17 @@ class AccountCreationWizardWindow:
proxies_combobox = self.xml.get_object('proxies_combobox')
model = Gtk.ListStore(str)
proxies_combobox.set_model(model)
- l = gajim.config.get_per('proxies')
+ l = app.config.get_per('proxies')
l.insert(0, _('None'))
for i in range(len(l)):
model.append([l[i]])
proxies_combobox.set_active(0)
def on_manage_proxies_button_clicked(self, widget):
- if 'manage_proxies' in gajim.interface.instances:
- gajim.interface.instances['manage_proxies'].window.present()
+ if 'manage_proxies' in app.interface.instances:
+ app.interface.instances['manage_proxies'].window.present()
else:
- gajim.interface.instances['manage_proxies'] = \
+ app.interface.instances['manage_proxies'] = \
ManageProxiesWindow()
def on_custom_host_port_checkbutton_toggled(self, widget):
@@ -3904,7 +3903,7 @@ class AccountCreationWizardWindow:
self.ssl_cert = obj.ssl_cert
if obj.ssl_msg:
# An SSL warning occured, show it
- hostname = gajim.connections[self.account].new_account_info[
+ hostname = app.connections[self.account].new_account_info[
'hostname']
self.xml.get_object('ssl_label').set_markup(_(
'Security Warning'
@@ -3932,13 +3931,13 @@ class AccountCreationWizardWindow:
# We receive events from all accounts from GED
if obj.conn.name != self.account:
return
- if self.account not in gajim.connections:
+ if self.account not in app.connections:
return
if self.update_progressbar_timeout_id is not None:
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)
+ del app.connections[self.account]
+ if self.account in app.config.get_per('accounts'):
+ app.config.del_per('accounts', self.account)
self.back_button.show()
self.cancel_button.show()
self.go_online_checkbutton.hide()
@@ -3974,9 +3973,9 @@ class AccountCreationWizardWindow:
self.cancel_button.show()
self.go_online_checkbutton.hide()
self.show_vcard_checkbutton.hide()
- del gajim.connections[self.account]
- if self.account in gajim.config.get_per('accounts'):
- gajim.config.del_per('accounts', self.account)
+ del app.connections[self.account]
+ if self.account in app.config.get_per('accounts'):
+ app.config.del_per('accounts', self.account)
img = self.xml.get_object('finish_image')
img.set_from_stock(Gtk.STOCK_DIALOG_ERROR, Gtk.IconSize.DIALOG)
finish_text = '%s\n\n%s' % (_(
@@ -3988,11 +3987,11 @@ class AccountCreationWizardWindow:
GLib.source_remove(self.update_progressbar_timeout_id)
def on_advanced_button_clicked(self, widget):
- if 'accounts' in gajim.interface.instances:
- gajim.interface.instances['accounts'].window.present()
+ if 'accounts' in app.interface.instances:
+ app.interface.instances['accounts'].window.present()
else:
- gajim.interface.instances['accounts'] = AccountsWindow()
- gajim.interface.instances['accounts'].select_account(self.account)
+ app.interface.instances['accounts'] = AccountsWindow()
+ app.interface.instances['accounts'].select_account(self.account)
self.window.destroy()
def on_finish_button_clicked(self, widget):
@@ -4000,9 +3999,9 @@ class AccountCreationWizardWindow:
show_vcard = self.xml.get_object('show_vcard_checkbutton').get_active()
self.window.destroy()
if show_vcard:
- gajim.interface.show_vcard_when_connect.append(self.account)
+ app.interface.show_vcard_when_connect.append(self.account)
if go_online:
- gajim.interface.roster.send_status(self.account, 'online', '')
+ app.interface.roster.send_status(self.account, 'online', '')
def on_username_entry_key_press_event(self, widget, event):
# Check for pressed @ and jump to combobox if found
@@ -4042,7 +4041,7 @@ class AccountCreationWizardWindow:
return config
def save_account(self, login, server, savepass, password, anonymous=False):
- if self.account in gajim.connections:
+ if self.account in app.connections:
dialogs.ErrorDialog(_('Account name is in use'),
_('You already have an account using this name.'))
return
@@ -4054,60 +4053,60 @@ class AccountCreationWizardWindow:
if not self.modify:
con.new_account(self.account, config)
return
- gajim.connections[self.account] = con
+ app.connections[self.account] = con
self.create_vars(config)
def create_vars(self, config):
- gajim.config.add_per('accounts', self.account)
+ app.config.add_per('accounts', self.account)
if not config['savepass']:
config['password'] = ''
for opt in config:
- gajim.config.set_per('accounts', self.account, opt, config[opt])
+ app.config.set_per('accounts', self.account, opt, config[opt])
# update variables
- gajim.interface.instances[self.account] = {'infos': {}, 'disco': {},
+ app.interface.instances[self.account] = {'infos': {}, 'disco': {},
'gc_config': {}, 'search': {}, 'online_dialog': {},
'sub_request': {}}
- gajim.interface.minimized_controls[self.account] = {}
- gajim.connections[self.account].connected = 0
- gajim.connections[self.account].keepalives = gajim.config.get_per(
+ app.interface.minimized_controls[self.account] = {}
+ app.connections[self.account].connected = 0
+ app.connections[self.account].keepalives = app.config.get_per(
'accounts', self.account, 'keep_alive_every_foo_secs')
- gajim.groups[self.account] = {}
- gajim.contacts.add_account(self.account)
- gajim.gc_connected[self.account] = {}
- gajim.automatic_rooms[self.account] = {}
- gajim.newly_added[self.account] = []
- gajim.to_be_removed[self.account] = []
- gajim.nicks[self.account] = config['name']
- gajim.block_signed_in_notifications[self.account] = True
- gajim.sleeper_state[self.account] = 'off'
- gajim.encrypted_chats[self.account] = []
- gajim.last_message_time[self.account] = {}
- gajim.status_before_autoaway[self.account] = ''
- gajim.transport_avatar[self.account] = {}
- gajim.gajim_optional_features[self.account] = []
- gajim.caps_hash[self.account] = ''
+ app.groups[self.account] = {}
+ app.contacts.add_account(self.account)
+ app.gc_connected[self.account] = {}
+ app.automatic_rooms[self.account] = {}
+ app.newly_added[self.account] = []
+ app.to_be_removed[self.account] = []
+ app.nicks[self.account] = config['name']
+ app.block_signed_in_notifications[self.account] = True
+ app.sleeper_state[self.account] = 'off'
+ app.encrypted_chats[self.account] = []
+ app.last_message_time[self.account] = {}
+ app.status_before_autoaway[self.account] = ''
+ app.transport_avatar[self.account] = {}
+ app.gajim_optional_features[self.account] = []
+ app.caps_hash[self.account] = ''
helpers.update_optional_features(self.account)
# refresh accounts window
- if 'accounts' in gajim.interface.instances:
- gajim.interface.instances['accounts'].init_accounts()
+ if 'accounts' in app.interface.instances:
+ app.interface.instances['accounts'].init_accounts()
# refresh roster
- if len(gajim.connections) >= 2:
+ if len(app.connections) >= 2:
# Do not merge accounts if only one exists
- gajim.interface.roster.regroup = gajim.config.get('mergeaccounts')
+ app.interface.roster.regroup = app.config.get('mergeaccounts')
else:
- gajim.interface.roster.regroup = False
- gajim.interface.roster.setup_and_draw_roster()
- gajim.app.add_account_actions(self.account)
+ app.interface.roster.regroup = False
+ app.interface.roster.setup_and_draw_roster()
+ app.app.add_account_actions(self.account)
gui_menu_builder.build_accounts_menu()
class ManagePEPServicesWindow:
def __init__(self, account):
self.xml = gtkgui_helpers.get_gtk_builder('manage_pep_services_window.ui')
self.window = self.xml.get_object('manage_pep_services_window')
- self.window.set_transient_for(gajim.interface.roster.window)
+ self.window.set_transient_for(app.interface.roster.window)
self.xml.get_object('configure_button').set_sensitive(False)
self.xml.get_object('delete_button').set_sensitive(False)
self.xml.connect_signals(self)
@@ -4117,19 +4116,19 @@ class ManagePEPServicesWindow:
self.xml.get_object('services_treeview').get_selection().connect(
'changed', self.on_services_selection_changed)
- gajim.ged.register_event_handler('pep-config-received', ged.GUI1,
+ app.ged.register_event_handler('pep-config-received', ged.GUI1,
self._nec_pep_config_received)
- gajim.ged.register_event_handler('agent-items-received', ged.GUI1,
+ app.ged.register_event_handler('agent-items-received', ged.GUI1,
self._nec_agent_items_received)
self.window.show_all()
def on_manage_pep_services_window_destroy(self, widget):
'''close window'''
- del gajim.interface.instances[self.account]['pep_services']
- gajim.ged.remove_event_handler('pep-config-received', ged.GUI1,
+ del app.interface.instances[self.account]['pep_services']
+ app.ged.remove_event_handler('pep-config-received', ged.GUI1,
self._nec_pep_config_received)
- gajim.ged.remove_event_handler('agent-items-received', ged.GUI1,
+ app.ged.remove_event_handler('agent-items-received', ged.GUI1,
self._nec_agent_items_received)
def on_close_button_clicked(self, widget):
@@ -4152,17 +4151,17 @@ class ManagePEPServicesWindow:
col.pack_start(cellrenderer_text, True)
col.add_attribute(cellrenderer_text, 'text', 0)
- our_jid = gajim.get_jid_from_account(self.account)
- gajim.connections[self.account].discoverItems(our_jid)
+ our_jid = app.get_jid_from_account(self.account)
+ app.connections[self.account].discoverItems(our_jid)
def _nec_agent_items_received(self, obj):
- our_jid = gajim.get_jid_from_account(self.account)
+ our_jid = app.get_jid_from_account(self.account)
for item in obj.items:
if 'jid' in item and item['jid'] == our_jid and 'node' in item:
self.treestore.append([item['node']])
def node_removed(self, jid, node):
- if jid != gajim.get_jid_from_account(self.account):
+ if jid != app.get_jid_from_account(self.account):
return
model = self.treeview.get_model()
iter_ = model.get_iter_first()
@@ -4173,7 +4172,7 @@ class ManagePEPServicesWindow:
iter_ = model.iter_next(iter_)
def node_not_removed(self, jid, node, msg):
- if jid != gajim.get_jid_from_account(self.account):
+ if jid != app.get_jid_from_account(self.account):
return
dialogs.WarningDialog(_('PEP node was not removed'),
_('PEP node %(node)s was not removed: %(message)s') % {'node': node,
@@ -4185,8 +4184,8 @@ class ManagePEPServicesWindow:
return
model, iter_ = selection.get_selected()
node = model[iter_][0]
- our_jid = gajim.get_jid_from_account(self.account)
- gajim.connections[self.account].send_pb_delete(our_jid, node,
+ our_jid = app.get_jid_from_account(self.account)
+ app.connections[self.account].send_pb_delete(our_jid, node,
on_ok=self.node_removed, on_fail=self.node_not_removed)
def on_configure_button_clicked(self, widget):
@@ -4195,14 +4194,14 @@ class ManagePEPServicesWindow:
return
model, iter_ = selection.get_selected()
node = model[iter_][0]
- our_jid = gajim.get_jid_from_account(self.account)
- gajim.connections[self.account].request_pb_configuration(our_jid, node)
+ our_jid = app.get_jid_from_account(self.account)
+ app.connections[self.account].request_pb_configuration(our_jid, node)
def _nec_pep_config_received(self, obj):
def on_ok(form, node):
form.type_ = 'submit'
- our_jid = gajim.get_jid_from_account(self.account)
- gajim.connections[self.account].send_pb_configure(our_jid, node, form)
+ our_jid = app.get_jid_from_account(self.account)
+ app.connections[self.account].send_pb_configure(our_jid, node, form)
window = dialogs.DataFormWindow(obj.form, (on_ok, obj.node))
title = _('Configure %s') % obj.node
window.set_title(title)
@@ -4213,7 +4212,7 @@ class ManageSoundsWindow:
self.xml = gtkgui_helpers.get_gtk_builder('manage_sounds_window.ui')
self.window = self.xml.get_object('manage_sounds_window')
self.window.set_transient_for(
- gajim.interface.instances['preferences'].window)
+ app.interface.instances['preferences'].window)
# sounds treeview
self.sound_tree = self.xml.get_object('sounds_treeview')
@@ -4246,9 +4245,9 @@ class ManageSoundsWindow:
def on_sounds_treemodel_row_changed(self, model, path, iter_):
sound_event = model[iter_][3]
- gajim.config.set_per('soundevents', sound_event, 'enabled',
+ app.config.set_per('soundevents', sound_event, 'enabled',
bool(model[path][0]))
- gajim.config.set_per('soundevents', sound_event, 'path',
+ app.config.set_per('soundevents', sound_event, 'path',
model[iter_][2])
def sound_toggled_cb(self, cell, path):
@@ -4261,7 +4260,7 @@ class ManageSoundsWindow:
model.set_sort_column_id(1, Gtk.SortType.ASCENDING)
# NOTE: sounds_ui_names MUST have all items of
- # sounds = gajim.config.get_per('soundevents') as keys
+ # sounds = app.config.get_per('soundevents') as keys
sounds_dict = {
'attention_received': _('Attention Message Received'),
'first_message_received': _('First Message Received'),
@@ -4277,9 +4276,9 @@ class ManageSoundsWindow:
}
for sound_event_config_name, sound_ui_name in sounds_dict.items():
- enabled = gajim.config.get_per('soundevents',
+ enabled = app.config.get_per('soundevents',
sound_event_config_name, 'enabled')
- path = gajim.config.get_per('soundevents',
+ path = app.config.get_per('soundevents',
sound_event_config_name, 'path')
model.append((enabled, sound_ui_name, path, sound_event_config_name))
@@ -4312,7 +4311,7 @@ class ManageSoundsWindow:
model[iter_][0] = False
return
directory = os.path.dirname(path_to_snd_file)
- gajim.config.set('last_sounds_dir', directory)
+ app.config.set('last_sounds_dir', directory)
path_to_snd_file = helpers.strip_soundfile_path(path_to_snd_file)
self.xml.get_object('sounds_entry').set_text(path_to_snd_file)
diff --git a/gajim/conversation_textview.py b/gajim/conversation_textview.py
index c738fb442..1b98d2cdd 100644
--- a/gajim/conversation_textview.py
+++ b/gajim/conversation_textview.py
@@ -37,21 +37,21 @@ from gi.repository import GObject
from gi.repository import GLib
import time
import os
-import tooltips
-import dialogs
+from gajim import tooltips
+from gajim import dialogs
import queue
import urllib
-import gtkgui_helpers
-from common import gajim
-from common import helpers
-from common import i18n
+from gajim import gtkgui_helpers
+from gajim.common import app
+from gajim.common import helpers
+from gajim.common import i18n
from calendar import timegm
-from common.fuzzyclock import FuzzyClock
-import emoticons
+from gajim.common.fuzzyclock import FuzzyClock
+from gajim import emoticons
-from htmltextview import HtmlTextView
-from common.exceptions import GajimGeneralException
+from gajim.htmltextview import HtmlTextView
+from gajim.common.exceptions import GajimGeneralException
NOT_SHOWN = 0
ALREADY_RECEIVED = 1
@@ -234,38 +234,38 @@ class ConversationTextview(GObject.GObject):
buffer_.create_mark('end', end_iter, False)
self.tagIn = buffer_.create_tag('incoming')
- color = gajim.config.get('inmsgcolor')
- font = Pango.FontDescription(gajim.config.get('inmsgfont'))
+ color = app.config.get('inmsgcolor')
+ font = Pango.FontDescription(app.config.get('inmsgfont'))
self.tagIn.set_property('foreground', color)
self.tagIn.set_property('font-desc', font)
self.tagOut = buffer_.create_tag('outgoing')
- color = gajim.config.get('outmsgcolor')
- font = Pango.FontDescription(gajim.config.get('outmsgfont'))
+ color = app.config.get('outmsgcolor')
+ font = Pango.FontDescription(app.config.get('outmsgfont'))
self.tagOut.set_property('foreground', color)
self.tagOut.set_property('font-desc', font)
self.tagStatus = buffer_.create_tag('status')
- color = gajim.config.get('statusmsgcolor')
- font = Pango.FontDescription(gajim.config.get('satusmsgfont'))
+ color = app.config.get('statusmsgcolor')
+ font = Pango.FontDescription(app.config.get('satusmsgfont'))
self.tagStatus.set_property('foreground', color)
self.tagStatus.set_property('font-desc', font)
self.tagInText = buffer_.create_tag('incomingtxt')
- color = gajim.config.get('inmsgtxtcolor')
- font = Pango.FontDescription(gajim.config.get('inmsgtxtfont'))
+ color = app.config.get('inmsgtxtcolor')
+ font = Pango.FontDescription(app.config.get('inmsgtxtfont'))
if color:
self.tagInText.set_property('foreground', color)
self.tagInText.set_property('font-desc', font)
self.tagOutText = buffer_.create_tag('outgoingtxt')
- color = gajim.config.get('outmsgtxtcolor')
+ color = app.config.get('outmsgtxtcolor')
if color:
- font = Pango.FontDescription(gajim.config.get('outmsgtxtfont'))
+ font = Pango.FontDescription(app.config.get('outmsgtxtfont'))
self.tagOutText.set_property('foreground', color)
self.tagOutText.set_property('font-desc', font)
- colors = gajim.config.get('gc_nicknames_colors')
+ colors = app.config.get('gc_nicknames_colors')
colors = colors.split(':')
for i, color in enumerate(colors):
tagname = 'gc_nickname_color_' + str(i)
@@ -273,7 +273,7 @@ class ConversationTextview(GObject.GObject):
tag.set_property('foreground', color)
self.tagMarked = buffer_.create_tag('marked')
- color = gajim.config.get('markedmsgcolor')
+ color = app.config.get('markedmsgcolor')
self.tagMarked.set_property('foreground', color)
self.tagMarked.set_property('weight', Pango.Weight.BOLD)
@@ -288,7 +288,7 @@ class ConversationTextview(GObject.GObject):
tag.set_property('scale', 0.8333333333333)
tag = buffer_.create_tag('restored_message')
- color = gajim.config.get('restored_messages_color')
+ color = app.config.get('restored_messages_color')
tag.set_property('foreground', color)
self.tv.create_tags()
@@ -309,7 +309,7 @@ class ConversationTextview(GObject.GObject):
tag.set_property('foreground', '#73d216')
# One mark at the begining then 2 marks between each lines
- size = gajim.config.get('max_conversation_lines')
+ size = app.config.get('max_conversation_lines')
size = 2 * size - 1
self.marks_queue = queue.Queue(size)
@@ -367,13 +367,13 @@ class ConversationTextview(GObject.GObject):
self.tv.destroy()
def update_tags(self):
- self.tagIn.set_property('foreground', gajim.config.get('inmsgcolor'))
- self.tagOut.set_property('foreground', gajim.config.get('outmsgcolor'))
+ self.tagIn.set_property('foreground', app.config.get('inmsgcolor'))
+ self.tagOut.set_property('foreground', app.config.get('outmsgcolor'))
self.tagStatus.set_property('foreground',
- gajim.config.get('statusmsgcolor'))
+ app.config.get('statusmsgcolor'))
self.tagMarked.set_property('foreground',
- gajim.config.get('markedmsgcolor'))
- color = gajim.config.get('urlmsgcolor')
+ app.config.get('markedmsgcolor'))
+ color = app.config.get('urlmsgcolor')
self.tv.tagURL.set_property('foreground', color)
self.tv.tagMail.set_property('foreground', color)
self.tv.tagXMPP.set_property('foreground', color)
@@ -450,7 +450,7 @@ class ConversationTextview(GObject.GObject):
buffer_ = self.tv.get_buffer()
buffer_.begin_user_action()
- if gajim.config.get('positive_184_ack'):
+ if app.config.get('positive_184_ack'):
begin_iter = buffer_.get_iter_at_mark(self.xep0184_marks[id_])
buffer_.insert_with_tags_by_name(begin_iter, ' âś“',
'xep0184-received')
@@ -555,7 +555,7 @@ class ConversationTextview(GObject.GObject):
buffer_ = self.tv.get_buffer()
start, end = buffer_.get_bounds()
buffer_.delete(start, end)
- size = gajim.config.get('max_conversation_lines')
+ size = app.config.get('max_conversation_lines')
size = 2 * size - 1
self.marks_queue = queue.Queue(size)
self.focus_out_end_mark = None
@@ -606,29 +606,29 @@ class ConversationTextview(GObject.GObject):
phrase_for_url = urllib.parse.quote(self.selected_phrase.encode(
'utf-8'))
- always_use_en = gajim.config.get('always_english_wikipedia')
+ always_use_en = app.config.get('always_english_wikipedia')
if always_use_en:
link = 'http://en.wikipedia.org/wiki/Special:Search?search=%s'\
% phrase_for_url
else:
link = 'http://%s.wikipedia.org/wiki/Special:Search?search=%s'\
- % (gajim.LANG, phrase_for_url)
+ % (app.LANG, phrase_for_url)
item = Gtk.MenuItem.new_with_mnemonic(_('Read _Wikipedia Article'))
id_ = item.connect('activate', self.visit_url_from_menuitem, link)
self.handlers[id_] = item
submenu.append(item)
item = Gtk.MenuItem.new_with_mnemonic(_('Look it up in _Dictionary'))
- dict_link = gajim.config.get('dictionary_url')
+ dict_link = app.config.get('dictionary_url')
if dict_link == 'WIKTIONARY':
# special link (yeah undocumented but default)
- always_use_en = gajim.config.get('always_english_wiktionary')
+ always_use_en = app.config.get('always_english_wiktionary')
if always_use_en:
link = 'http://en.wiktionary.org/wiki/Special:Search?search=%s'\
% phrase_for_url
else:
link = 'http://%s.wiktionary.org/wiki/Special:Search?search=%s'\
- % (gajim.LANG, phrase_for_url)
+ % (app.LANG, phrase_for_url)
id_ = item.connect('activate', self.visit_url_from_menuitem, link)
self.handlers[id_] = item
else:
@@ -645,7 +645,7 @@ class ConversationTextview(GObject.GObject):
submenu.append(item)
- search_link = gajim.config.get('search_engine')
+ search_link = app.config.get('search_engine')
if search_link.find('%s') == -1:
# we must have %s in the url
item = Gtk.MenuItem.new_with_label(
@@ -716,13 +716,13 @@ class ConversationTextview(GObject.GObject):
clip.set_text(text, -1)
def on_start_chat_activate(self, widget, jid):
- gajim.interface.new_chat_from_jid(self.account, jid)
+ app.interface.new_chat_from_jid(self.account, jid)
def on_join_group_chat_menuitem_activate(self, widget, room_jid):
- if 'join_gc' in gajim.interface.instances[self.account]:
- instance = gajim.interface.instances[self.account]['join_gc']
+ if 'join_gc' in app.interface.instances[self.account]:
+ instance = app.interface.instances[self.account]['join_gc']
instance.xml.get_object('room_jid_entry').set_text(room_jid)
- gajim.interface.instances[self.account]['join_gc'].window.present()
+ app.interface.instances[self.account]['join_gc'].window.present()
else:
try:
dialogs.JoinGroupchatWindow(account=self.account, room_jid=room_jid)
@@ -766,7 +766,7 @@ class ConversationTextview(GObject.GObject):
self.on_join_group_chat_menuitem_activate, text)
self.handlers[id_] = childs[6]
- if self.account and gajim.connections[self.account].\
+ if self.account and app.connections[self.account].\
roster_supported:
id_ = childs[7].connect('activate',
self.on_add_to_roster_activate, text)
@@ -813,7 +813,7 @@ class ConversationTextview(GObject.GObject):
kind = 'xmpp'
elif word.startswith('mailto:'):
kind = 'mail'
- elif gajim.interface.sth_at_sth_dot_sth_re.match(word):
+ elif app.interface.sth_at_sth_dot_sth_re.match(word):
# it's a JID or mail
kind = 'sth_at_sth'
else:
@@ -823,7 +823,7 @@ class ConversationTextview(GObject.GObject):
return True
else:
self.plugin_modified = False
- gajim.plugin_manager.extension_point(
+ app.plugin_manager.extension_point(
'hyperlink_handler', word, kind, self,
self.tv.get_toplevel())
if self.plugin_modified:
@@ -875,11 +875,11 @@ class ConversationTextview(GObject.GObject):
specials_limit = 100
# basic: links + mail + formatting is always checked (we like that)
- if gajim.config.get('emoticons_theme') and graphics:
+ if app.config.get('emoticons_theme') and graphics:
# search for emoticons & urls
- iterator = gajim.interface.emot_and_basic_re.finditer(otext)
+ iterator = app.interface.emot_and_basic_re.finditer(otext)
else: # search for just urls + mail + formatting
- iterator = gajim.interface.basic_pattern_re.finditer(otext)
+ iterator = app.interface.basic_pattern_re.finditer(otext)
if iter_:
end_iter = iter_
else:
@@ -921,7 +921,7 @@ class ConversationTextview(GObject.GObject):
# PluginSystem: adding GUI extension point for ConversationTextview
self.plugin_modified = False
- gajim.plugin_manager.extension_point('print_special_text', self,
+ app.plugin_manager.extension_point('print_special_text', self,
special_text, other_tags, graphics, additional_data)
if self.plugin_modified:
return
@@ -931,7 +931,7 @@ class ConversationTextview(GObject.GObject):
text_is_valid_uri = False
is_xhtml_link = None
show_ascii_formatting_chars = \
- gajim.config.get('show_ascii_formatting_chars')
+ app.config.get('show_ascii_formatting_chars')
buffer_ = self.tv.get_buffer()
# Detect XHTML-IM link
@@ -943,7 +943,7 @@ class ConversationTextview(GObject.GObject):
break
# Check if we accept this as an uri
- schemes = gajim.config.get('uri_schemes').split()
+ schemes = app.config.get('uri_schemes').split()
for scheme in schemes:
if special_text.startswith(scheme):
text_is_valid_uri = True
@@ -955,7 +955,7 @@ class ConversationTextview(GObject.GObject):
end_iter = buffer_.get_end_iter()
pixbuf = emoticons.get_pixbuf(possible_emot_ascii_caps)
- if gajim.config.get('emoticons_theme') and pixbuf and graphics:
+ if app.config.get('emoticons_theme') and pixbuf and graphics:
# it's an emoticon
anchor = buffer_.create_child_anchor(end_iter)
img = TextViewImage(anchor,
@@ -972,7 +972,7 @@ class ConversationTextview(GObject.GObject):
tags.append('mail')
elif special_text.startswith('xmpp:') and not is_xhtml_link:
tags.append('xmpp')
- elif gajim.interface.sth_at_sth_dot_sth_re.match(special_text) and\
+ elif app.interface.sth_at_sth_dot_sth_re.match(special_text) and\
not is_xhtml_link:
# it's a JID or mail
tags.append('sth_at_sth')
@@ -1191,12 +1191,12 @@ class ConversationTextview(GObject.GObject):
text_tags.append(other_text_tag)
else: # not status nor /me
- if gajim.config.get('chat_merge_consecutive_nickname'):
+ if app.config.get('chat_merge_consecutive_nickname'):
if kind != old_kind or self.just_cleared:
self.print_name(name, kind, other_tags_for_name,
direction_mark=direction_mark, iter_=iter_)
else:
- self.print_real_text(gajim.config.get(
+ self.print_real_text(app.config.get(
'chat_merge_consecutive_nickname_indent'),
mark=insert_mark, additional_data=additional_data)
else:
@@ -1283,7 +1283,7 @@ class ConversationTextview(GObject.GObject):
format_ += i18n.direction_mark + day_str + direction_mark + ' '
else:
format_ += day_str + ' '
- timestamp_str = gajim.config.get('time_stamp')
+ timestamp_str = app.config.get('time_stamp')
timestamp_str = helpers.from_one_line(timestamp_str)
format_ += timestamp_str
tim_format = time.strftime(format_, tim)
@@ -1298,7 +1298,7 @@ class ConversationTextview(GObject.GObject):
def print_time(self, text, kind, tim, simple, direction_mark, other_tags_for_time, iter_):
local_tim = time.localtime(tim)
buffer_ = self.tv.get_buffer()
- current_print_time = gajim.config.get('print_time')
+ current_print_time = app.config.get('print_time')
if current_print_time == 'always' and kind != 'info' and not simple:
timestamp_str = self.get_time_to_show(local_tim, direction_mark)
@@ -1310,14 +1310,14 @@ class ConversationTextview(GObject.GObject):
else:
buffer_.insert(iter_, timestamp)
elif current_print_time == 'sometimes' and kind != 'info' and not simple:
- every_foo_seconds = 60 * gajim.config.get(
+ every_foo_seconds = 60 * app.config.get(
'print_ichat_every_foo_minutes')
seconds_passed = tim - self.last_time_printout
if seconds_passed > every_foo_seconds:
self.last_time_printout = tim
- if gajim.config.get('print_time_fuzzy') > 0:
+ if app.config.get('print_time_fuzzy') > 0:
tim_format = self.fc.fuzzy_time(
- gajim.config.get('print_time_fuzzy'), tim)
+ app.config.get('print_time_fuzzy'), tim)
else:
tim_format = self.get_time_to_show(local_tim, direction_mark)
buffer_.insert_with_tags_by_name(iter_, tim_format + '\n',
@@ -1352,9 +1352,9 @@ class ConversationTextview(GObject.GObject):
if other_tags_for_name:
name_tags = other_tags_for_name[:] # create a new list
name_tags.append(kind)
- before_str = gajim.config.get('before_nickname')
+ before_str = app.config.get('before_nickname')
before_str = helpers.from_one_line(before_str)
- after_str = gajim.config.get('after_nickname')
+ after_str = app.config.get('after_nickname')
after_str = helpers.from_one_line(after_str)
format_ = before_str + name + direction_mark + after_str + ' '
buffer_.insert_with_tags_by_name(end_iter, format_, *name_tags)
@@ -1389,8 +1389,8 @@ class ConversationTextview(GObject.GObject):
self.tv.display_html(xhtml, self.tv, self, iter_=iter_)
return
except Exception as e:
- gajim.log.debug('Error processing xhtml: ' + str(e))
- gajim.log.debug('with |' + xhtml + '|')
+ app.log.debug('Error processing xhtml: ' + str(e))
+ app.log.debug('with |' + xhtml + '|')
# /me is replaced by name if name is given
if name and (text.startswith('/me ') or text.startswith('/me\n')):
@@ -1399,7 +1399,7 @@ class ConversationTextview(GObject.GObject):
# PluginSystem: adding GUI extension point for ConversationTextview
self.plugin_modified = False
- gajim.plugin_manager.extension_point('print_real_text', self,
+ app.plugin_manager.extension_point('print_real_text', self,
text, text_tags, graphics, iter_, additional_data)
if self.plugin_modified:
diff --git a/gajim/dataforms_widget.py b/gajim/dataforms_widget.py
index 913200f65..bb9eb56a6 100644
--- a/gajim/dataforms_widget.py
+++ b/gajim/dataforms_widget.py
@@ -32,11 +32,11 @@ from gi.repository import GObject
from gi.repository import GLib
import base64
-import gtkgui_helpers
-import dialogs
+from gajim import gtkgui_helpers
+from gajim import dialogs
-import common.dataforms as dataforms
-from common import helpers
+from gajim.common import dataforms
+from gajim.common import helpers
import itertools
diff --git a/gajim/dialogs.py b/gajim/dialogs.py
index cd17a19a0..a2a7d9a56 100644
--- a/gajim/dialogs.py
+++ b/gajim/dialogs.py
@@ -38,15 +38,15 @@ import os
import nbxmpp
import time
-import gtkgui_helpers
-import vcard
-import conversation_textview
-import dataforms_widget
+from gajim import gtkgui_helpers
+from gajim import vcard
+from gajim import conversation_textview
+from gajim import dataforms_widget
-from common import defs
+from gajim.common import defs
from random import randrange
-from common import pep
-from common import ged
+from gajim.common import pep
+from gajim.common import ged
try:
import gtkspell
@@ -56,16 +56,16 @@ except (ImportError, ValueError):
# those imports are not used in this file, but in files that 'import dialogs'
# so they can do dialog.GajimThemesWindow() for example
-from filetransfers_window import FileTransfersWindow
-from gajim_themes_window import GajimThemesWindow
-from advanced_configuration_window import AdvancedConfigurationWindow
+from gajim.filetransfers_window import FileTransfersWindow
+from gajim.gajim_themes_window import GajimThemesWindow
+from gajim.advanced_configuration_window import AdvancedConfigurationWindow
-from common import gajim
-from common import helpers
-from common import i18n
-from common import dataforms
-from common.exceptions import GajimGeneralException
-from common.connection_handlers_events import MessageOutgoingEvent
+from gajim.common import app
+from gajim.common import helpers
+from gajim.common import i18n
+from gajim.common import dataforms
+from gajim.common.exceptions import GajimGeneralException
+from gajim.common.connection_handlers_events import MessageOutgoingEvent
import logging
log = logging.getLogger('gajim.dialogs')
@@ -82,7 +82,7 @@ class EditGroupsDialog:
"""
self.xml = gtkgui_helpers.get_gtk_builder('edit_groups_dialog.ui')
self.dialog = self.xml.get_object('edit_groups_dialog')
- self.dialog.set_transient_for(gajim.interface.roster.window)
+ self.dialog.set_transient_for(app.interface.roster.window)
self.list_ = list_
self.changes_made = False
self.treeview = self.xml.get_object('groups_treeview')
@@ -104,7 +104,7 @@ class EditGroupsDialog:
self.dialog.show_all()
if self.changes_made:
for (contact, account) in self.list_:
- gajim.connections[account].update_contact(contact.jid,
+ app.connections[account].update_contact(contact.jid,
contact.name, contact.groups)
def on_edit_groups_dialog_response(self, widget, response_id):
@@ -116,23 +116,23 @@ class EditGroupsDialog:
Remove group group from all contacts and all their brothers
"""
for (contact, account) in self.list_:
- gajim.interface.roster.remove_contact_from_groups(contact.jid,
+ app.interface.roster.remove_contact_from_groups(contact.jid,
account, [group])
# FIXME: Ugly workaround.
- gajim.interface.roster.draw_group(_('General'), account)
+ app.interface.roster.draw_group(_('General'), account)
def add_group(self, group):
"""
Add group group to all contacts and all their brothers
"""
for (contact, account) in self.list_:
- gajim.interface.roster.add_contact_to_groups(contact.jid, account,
+ app.interface.roster.add_contact_to_groups(contact.jid, account,
[group])
# FIXME: Ugly workaround.
# Maybe we haven't been in any group (defaults to General)
- gajim.interface.roster.draw_group(_('General'), account)
+ app.interface.roster.draw_group(_('General'), account)
def on_add_button_clicked(self, widget):
group = self.xml.get_object('group_entry').get_text()
@@ -180,7 +180,7 @@ class EditGroupsDialog:
for (contact, account) in self.list_:
if account not in accounts:
accounts.append(account)
- for g in gajim.groups[account].keys():
+ for g in app.groups[account].keys():
if g in groups:
continue
groups[g] = 0
@@ -245,7 +245,7 @@ class PassphraseDialog:
cancelbutton.connect('clicked', self.on_cancelbutton_clicked)
self.xml.connect_signals(self)
- self.window.set_transient_for(gajim.interface.roster.window)
+ self.window.set_transient_for(app.interface.roster.window)
self.window.show_all()
self.check = bool(checkbuttontext)
@@ -362,7 +362,7 @@ class ChangeActivityDialog:
self.text = text
self.xml = gtkgui_helpers.get_gtk_builder('change_activity_dialog.ui')
self.window = self.xml.get_object('change_activity_dialog')
- self.window.set_transient_for(gajim.interface.roster.window)
+ self.window.set_transient_for(app.interface.roster.window)
self.checkbutton = self.xml.get_object('enable_checkbutton')
self.notebook = self.xml.get_object('notebook')
@@ -487,7 +487,7 @@ class ChangeMoodDialog:
self.xml = gtkgui_helpers.get_gtk_builder('change_mood_dialog.ui')
self.window = self.xml.get_object('change_mood_dialog')
- self.window.set_transient_for(gajim.interface.roster.window)
+ self.window.set_transient_for(app.interface.roster.window)
self.window.set_title(_('Set Mood'))
table = self.xml.get_object('mood_icons_table')
@@ -597,7 +597,7 @@ class TimeoutDialog:
class ChangeStatusMessageDialog(TimeoutDialog):
def __init__(self, on_response, show=None, show_pep=True):
- countdown_time = gajim.config.get('change_status_window_timeout')
+ countdown_time = app.config.get('change_status_window_timeout')
TimeoutDialog.__init__(self, countdown_time, self.on_timeout)
self.show = show
self.pep_dict = {}
@@ -605,22 +605,22 @@ class ChangeStatusMessageDialog(TimeoutDialog):
self.on_response = on_response
self.xml = gtkgui_helpers.get_gtk_builder('change_status_message_dialog.ui')
self.dialog = self.xml.get_object('change_status_message_dialog')
- self.dialog.set_transient_for(gajim.interface.roster.window)
+ self.dialog.set_transient_for(app.interface.roster.window)
msg = None
if show:
uf_show = helpers.get_uf_show(show)
self.title_text = _('%s Status Message') % uf_show
- msg = gajim.config.get_per('statusmsg', '_last_' + self.show,
+ msg = app.config.get_per('statusmsg', '_last_' + self.show,
'message')
- self.pep_dict['activity'] = gajim.config.get_per('statusmsg',
+ self.pep_dict['activity'] = app.config.get_per('statusmsg',
'_last_' + self.show, 'activity')
- self.pep_dict['subactivity'] = gajim.config.get_per('statusmsg',
+ self.pep_dict['subactivity'] = app.config.get_per('statusmsg',
'_last_' + self.show, 'subactivity')
- self.pep_dict['activity_text'] = gajim.config.get_per('statusmsg',
+ self.pep_dict['activity_text'] = app.config.get_per('statusmsg',
'_last_' + self.show, 'activity_text')
- self.pep_dict['mood'] = gajim.config.get_per('statusmsg',
+ self.pep_dict['mood'] = app.config.get_per('statusmsg',
'_last_' + self.show, 'mood')
- self.pep_dict['mood_text'] = gajim.config.get_per('statusmsg',
+ self.pep_dict['mood_text'] = app.config.get_per('statusmsg',
'_last_' + self.show, 'mood_text')
else:
self.title_text = _('Status Message')
@@ -636,13 +636,13 @@ class ChangeStatusMessageDialog(TimeoutDialog):
# have an empty string selectable, so user can clear msg
self.preset_messages_dict = {'': ['', '', '', '', '', '']}
- for msg_name in gajim.config.get_per('statusmsg'):
+ for msg_name in app.config.get_per('statusmsg'):
if msg_name.startswith('_last_'):
continue
opts = []
for opt in ['message', 'activity', 'subactivity', 'activity_text',
'mood', 'mood_text']:
- opts.append(gajim.config.get_per('statusmsg', msg_name, opt))
+ opts.append(app.config.get_per('statusmsg', msg_name, opt))
opts[0] = helpers.from_one_line(opts[0])
self.preset_messages_dict[msg_name] = opts
sorted_keys_list = helpers.get_sorted_keys(self.preset_messages_dict)
@@ -729,18 +729,18 @@ class ChangeStatusMessageDialog(TimeoutDialog):
message = helpers.remove_invalid_xml_chars(message)
msg = helpers.to_one_line(message)
if self.show:
- gajim.config.set_per('statusmsg', '_last_' + self.show,
+ app.config.set_per('statusmsg', '_last_' + self.show,
'message', msg)
if self.show_pep:
- gajim.config.set_per('statusmsg', '_last_' + self.show,
+ app.config.set_per('statusmsg', '_last_' + self.show,
'activity', self.pep_dict['activity'])
- gajim.config.set_per('statusmsg', '_last_' + self.show,
+ app.config.set_per('statusmsg', '_last_' + self.show,
'subactivity', self.pep_dict['subactivity'])
- gajim.config.set_per('statusmsg', '_last_' + self.show,
+ app.config.set_per('statusmsg', '_last_' + self.show,
'activity_text', self.pep_dict['activity_text'])
- gajim.config.set_per('statusmsg', '_last_' + self.show,
+ app.config.set_per('statusmsg', '_last_' + self.show,
'mood', self.pep_dict['mood'])
- gajim.config.set_per('statusmsg', '_last_' + self.show,
+ app.config.set_per('statusmsg', '_last_' + self.show,
'mood_text', self.pep_dict['mood_text'])
else:
message = None # user pressed Cancel button or X wm button
@@ -800,24 +800,24 @@ class ChangeStatusMessageDialog(TimeoutDialog):
self.pep_dict.get('subactivity'),
self.pep_dict.get('activity_text'),
self.pep_dict.get('mood'), self.pep_dict.get('mood_text')]
- gajim.config.set_per('statusmsg', msg_name, 'message',
+ app.config.set_per('statusmsg', msg_name, 'message',
msg_text_1l)
- gajim.config.set_per('statusmsg', msg_name, 'activity',
+ app.config.set_per('statusmsg', msg_name, 'activity',
self.pep_dict.get('activity'))
- gajim.config.set_per('statusmsg', msg_name, 'subactivity',
+ app.config.set_per('statusmsg', msg_name, 'subactivity',
self.pep_dict.get('subactivity'))
- gajim.config.set_per('statusmsg', msg_name, 'activity_text',
+ app.config.set_per('statusmsg', msg_name, 'activity_text',
self.pep_dict.get('activity_text'))
- gajim.config.set_per('statusmsg', msg_name, 'mood',
+ app.config.set_per('statusmsg', msg_name, 'mood',
self.pep_dict.get('mood'))
- gajim.config.set_per('statusmsg', msg_name, 'mood_text',
+ app.config.set_per('statusmsg', msg_name, 'mood_text',
self.pep_dict.get('mood_text'))
if msg_name in self.preset_messages_dict:
ConfirmationDialog(_('Overwrite Status Message?'),
_('This name is already used. Do you want to overwrite this '
'status message?'), on_response_ok=on_ok2, transient_for=self.dialog)
return
- gajim.config.add_per('statusmsg', msg_name)
+ app.config.add_per('statusmsg', msg_name)
on_ok2()
iter_ = self.message_liststore.append((msg_name,))
# select in combobox the one we just saved
@@ -863,8 +863,8 @@ class AddNewContactWindow:
if account is None:
# fill accounts with active accounts
accounts = []
- for account in gajim.connections.keys():
- if gajim.connections[account].connected > 1:
+ for account in app.connections.keys():
+ if app.connections[account].connected > 1:
accounts.append(account)
if not accounts:
return
@@ -873,9 +873,9 @@ class AddNewContactWindow:
else:
accounts = [self.account]
if self.account:
- location = gajim.interface.instances[self.account]
+ location = app.interface.instances[self.account]
else:
- location = gajim.interface.instances
+ location = app.interface.instances
if 'add_contact' in location:
location['add_contact'].window.present()
# An instance is already opened
@@ -891,7 +891,7 @@ class AddNewContactWindow:
'add_button', 'message_textview', 'connected_label',
'group_comboboxentry', 'auto_authorize_checkbutton'):
self.__dict__[w] = self.xml.get_object(w)
- if account and len(gajim.connections) >= 2:
+ if account and len(app.connections) >= 2:
self.default_desc = _('Please fill in the data of the contact you want\n'
'to add to your account %s') % account
else:
@@ -903,9 +903,9 @@ class AddNewContactWindow:
# types to which we are not subscribed but account has an agent for it
self.available_types = []
for acct in accounts:
- for j in gajim.contacts.get_jid_list(acct):
- if gajim.jid_is_transport(j):
- type_ = gajim.get_transport_name_from_jid(j, False)
+ for j in app.contacts.get_jid_list(acct):
+ if app.jid_is_transport(j):
+ type_ = app.get_transport_name_from_jid(j, False)
if not type_:
continue
if type_ in self.agents:
@@ -915,11 +915,11 @@ class AddNewContactWindow:
self.gateway_prompt[j] = {'desc': None, 'prompt': None}
# Now add the one to which we can register
for acct in accounts:
- for type_ in gajim.connections[acct].available_transports:
+ for type_ in app.connections[acct].available_transports:
if type_ in self.agents:
continue
self.agents[type_] = []
- for jid_ in gajim.connections[acct].available_transports[type_]:
+ for jid_ in app.connections[acct].available_transports[type_]:
if not jid_ in self.agents[type_]:
self.agents[type_].append(jid_)
self.gateway_prompt[jid_] = {'desc': None,
@@ -938,12 +938,12 @@ class AddNewContactWindow:
uf_type = {'jabber': 'XMPP', 'aim': 'AIM', 'gadu-gadu': 'Gadu Gadu',
'icq': 'ICQ', 'msn': 'MSN', 'yahoo': 'Yahoo'}
# Jabber as first
- img = gajim.interface.jabber_state_images['16']['online']
+ img = app.interface.jabber_state_images['16']['online']
liststore.append(['XMPP', img.get_pixbuf(), 'jabber'])
for type_ in self.agents:
if type_ == 'jabber':
continue
- imgs = gajim.interface.roster.transports_state_images
+ imgs = app.interface.roster.transports_state_images
img = None
if type_ in imgs['16'] and 'online' in imgs['16'][type_]:
img = imgs['16'][type_]['online']
@@ -955,20 +955,20 @@ class AddNewContactWindow:
liststore.append([type_, img, type_])
if account:
for service in self.agents[type_]:
- gajim.connections[account].request_gateway_prompt(service)
+ app.connections[account].request_gateway_prompt(service)
self.protocol_combobox.set_active(0)
self.auto_authorize_checkbutton.show()
liststore = Gtk.ListStore(str)
self.protocol_jid_combobox.set_model(liststore)
if jid:
self.jid_escaped = True
- type_ = gajim.get_transport_name_from_jid(jid)
+ type_ = app.get_transport_name_from_jid(jid)
if not type_:
type_ = 'jabber'
if type_ == 'jabber':
self.uid_entry.set_text(jid)
else:
- uid, transport = gajim.get_name_and_server_from_jid(jid)
+ uid, transport = app.get_name_and_server_from_jid(jid)
self.uid_entry.set_text(uid.replace('%', '@', 1))
# set protocol_combobox
model = self.protocol_combobox.get_model()
@@ -1000,7 +1000,7 @@ class AddNewContactWindow:
self.uid_entry.grab_focus()
group_names = []
for acct in accounts:
- for g in gajim.groups[acct].keys():
+ for g in app.groups[acct].keys():
if g not in helpers.special_groups and g not in group_names:
group_names.append(g)
group_names.sort()
@@ -1011,7 +1011,7 @@ class AddNewContactWindow:
self.group_comboboxentry.set_active(i)
i += 1
- self.window.set_transient_for(gajim.interface.roster.window)
+ self.window.set_transient_for(app.interface.roster.window)
self.window.show_all()
if self.account:
@@ -1030,27 +1030,27 @@ class AddNewContactWindow:
self.account))
message_buffer.set_text(msg)
- gajim.ged.register_event_handler('gateway-prompt-received', ged.GUI1,
+ app.ged.register_event_handler('gateway-prompt-received', ged.GUI1,
self._nec_gateway_prompt_received)
- gajim.ged.register_event_handler('presence-received', ged.GUI1,
+ app.ged.register_event_handler('presence-received', ged.GUI1,
self._nec_presence_received)
def on_add_new_contact_window_destroy(self, widget):
if self.account:
- location = gajim.interface.instances[self.account]
+ location = app.interface.instances[self.account]
else:
- location = gajim.interface.instances
+ location = app.interface.instances
del location['add_contact']
- gajim.ged.remove_event_handler('presence-received', ged.GUI1,
+ app.ged.remove_event_handler('presence-received', ged.GUI1,
self._nec_presence_received)
- gajim.ged.remove_event_handler('gateway-prompt-received', ged.GUI1,
+ app.ged.remove_event_handler('gateway-prompt-received', ged.GUI1,
self._nec_gateway_prompt_received)
def on_register_button_clicked(self, widget):
model = self.protocol_jid_combobox.get_model()
row = self.protocol_jid_combobox.get_active()
jid = model[row][0]
- gajim.connections[self.account].request_register_agent_info(jid)
+ app.connections[self.account].request_register_agent_info(jid)
def on_add_new_contact_window_key_press_event(self, widget, event):
if event.keyval == Gdk.KEY_Escape: # ESCAPE
@@ -1079,7 +1079,7 @@ class AddNewContactWindow:
transport = model[row][0]
if self.account and not self.jid_escaped:
self.adding_jid = (jid, transport, type_)
- gajim.connections[self.account].request_gateway_prompt(
+ app.connections[self.account].request_gateway_prompt(
transport, jid)
else:
jid = jid.replace('@', '%') + '@' + transport
@@ -1102,7 +1102,7 @@ class AddNewContactWindow:
ErrorDialog(pritext, _('The user ID must not contain a resource.'))
return
- if jid == gajim.get_jid_from_account(self.account):
+ if jid == app.get_jid_from_account(self.account):
pritext = _('Invalid User ID')
ErrorDialog(pritext, _('You cannot add yourself to your roster.'))
return
@@ -1115,8 +1115,8 @@ class AddNewContactWindow:
self.account = model[index][1]
# Check if jid is already in roster
- if jid in gajim.contacts.get_jid_list(self.account):
- c = gajim.contacts.get_first_contact_from_jid(self.account, jid)
+ if jid in app.contacts.get_jid_list(self.account):
+ c = app.contacts.get_first_contact_from_jid(self.account, jid)
if _('Not in Roster') not in c.groups and c.sub in ('both', 'to'):
ErrorDialog(_('Contact already in roster'),
_('This contact is already listed in your roster.'))
@@ -1129,7 +1129,7 @@ class AddNewContactWindow:
message = message_buffer.get_text(start_iter, end_iter, True)
if self.save_message_checkbutton.get_active():
msg = helpers.to_one_line(message)
- gajim.config.set_per('accounts', self.account,
+ app.config.set_per('accounts', self.account,
'subscription_request_msg', msg)
else:
message= ''
@@ -1138,7 +1138,7 @@ class AddNewContactWindow:
if group:
groups = [group]
auto_auth = self.auto_authorize_checkbutton.get_active()
- gajim.interface.roster.req_sub(self, jid, message, self.account,
+ app.interface.roster.req_sub(self, jid, message, self.account,
groups=groups, nickname=nickname, auto_auth=auto_auth)
self.window.destroy()
@@ -1227,7 +1227,7 @@ class AddNewContactWindow:
model = self.protocol_jid_combobox.get_model()
row = self.protocol_jid_combobox.get_active()
jid = model[row][0]
- contact = gajim.contacts.get_first_contact_from_jid(
+ contact = app.contacts.get_first_contact_from_jid(
self.account, jid)
if contact.show in ('offline', 'error'):
self.subscription_table.hide()
@@ -1262,7 +1262,7 @@ class AddNewContactWindow:
self.add_button.set_sensitive(False)
def _nec_presence_received(self, obj):
- if gajim.jid_is_transport(obj.jid):
+ if app.jid_is_transport(obj.jid):
if obj.old_show == 0 and obj.new_show > 1:
self.transport_signed_in(obj.jid)
elif obj.old_show > 1 and obj.new_show == 0:
@@ -1294,9 +1294,9 @@ class AboutDialog(Gtk.AboutDialog):
def __init__(self):
Gtk.AboutDialog.__init__(self)
- self.set_transient_for(gajim.interface.roster.window)
+ self.set_transient_for(app.interface.roster.window)
self.set_name('Gajim')
- self.set_version(gajim.version)
+ self.set_version(app.version)
s = 'Copyright © 2003-2017 Gajim Team'
self.set_copyright(s)
copying_file_path = self.get_path('COPYING')
@@ -1535,7 +1535,7 @@ class AspellDictError:
_('You have to install %s dictionary to use spellchecking, or '
'choose another language by setting the speller_language option.'
'\n\nHighlighting misspelled words feature will not be used') % lang)
- gajim.config.set('use_speller', False)
+ app.config.set('use_speller', False)
class ConfirmationDialog(HigDialog):
"""
@@ -1578,8 +1578,8 @@ class NonModalConfirmationDialog(HigDialog):
on_response_cancel=None):
self.user_response_ok = on_response_ok
self.user_response_cancel = on_response_cancel
- if hasattr(gajim.interface, 'roster') and gajim.interface.roster:
- parent = gajim.interface.roster.window
+ if hasattr(app.interface, 'roster') and app.interface.roster:
+ parent = app.interface.roster.window
else:
parent = None
HigDialog.__init__(self, parent, Gtk.MessageType.QUESTION,
@@ -1611,9 +1611,9 @@ class WarningDialog(HigDialog):
"""
def __init__(self, pritext, sectext='', transient_for=None):
- if not transient_for and hasattr(gajim.interface, 'roster') and \
- gajim.interface.roster:
- transient_for = gajim.interface.roster.window
+ if not transient_for and hasattr(app.interface, 'roster') and \
+ app.interface.roster:
+ transient_for = app.interface.roster.window
HigDialog.__init__(self, transient_for, Gtk.MessageType.WARNING,
Gtk.ButtonsType.OK, pritext, sectext)
self.set_modal(False)
@@ -1627,8 +1627,8 @@ class InformationDialog(HigDialog):
def __init__(self, pritext, sectext='', transient_for=None):
if transient_for:
parent = transient_for
- elif hasattr(gajim.interface, 'roster') and gajim.interface.roster:
- parent = gajim.interface.roster.window
+ elif hasattr(app.interface, 'roster') and app.interface.roster:
+ parent = app.interface.roster.window
else:
parent = None
HigDialog.__init__(self, parent, Gtk.MessageType.INFO, Gtk.ButtonsType.OK,
@@ -1645,8 +1645,8 @@ class ErrorDialog(HigDialog):
on_response_cancel=None, transient_for=None):
if transient_for:
parent = transient_for
- elif hasattr(gajim.interface, 'roster') and gajim.interface.roster:
- parent = gajim.interface.roster.window
+ elif hasattr(app.interface, 'roster') and app.interface.roster:
+ parent = app.interface.roster.window
else:
parent = None
HigDialog.__init__(self, parent, Gtk.MessageType.ERROR, Gtk.ButtonsType.OK,
@@ -1666,8 +1666,8 @@ class YesNoDialog(HigDialog):
self.user_response_no = on_response_no
if transient_for:
parent = transient_for
- elif hasattr(gajim.interface, 'roster') and gajim.interface.roster:
- parent = gajim.interface.roster.window
+ elif hasattr(app.interface, 'roster') and app.interface.roster:
+ parent = app.interface.roster.window
else:
parent = None
HigDialog.__init__(self, parent, type_, Gtk.ButtonsType.YES_NO, pritext,
@@ -1755,8 +1755,8 @@ class ConfirmationDialogCheck(ConfirmationDialog):
if transient_for:
parent = transient_for
- elif hasattr(gajim.interface, 'roster') and gajim.interface.roster:
- parent = gajim.interface.roster.window
+ elif hasattr(app.interface, 'roster') and app.interface.roster:
+ parent = app.interface.roster.window
else:
parent = None
HigDialog.__init__(self, parent, Gtk.MessageType.QUESTION,
@@ -1810,8 +1810,8 @@ class ConfirmationDialogDoubleCheck(ConfirmationDialog):
self.user_response_ok = on_response_ok
self.user_response_cancel = on_response_cancel
- if hasattr(gajim.interface, 'roster') and gajim.interface.roster:
- parent = gajim.interface.roster.window
+ if hasattr(app.interface, 'roster') and app.interface.roster:
+ parent = app.interface.roster.window
else:
parent = None
HigDialog.__init__(self, parent, Gtk.MessageType.QUESTION,
@@ -1882,7 +1882,7 @@ class PlainConnectionDialog(ConfirmationDialogDoubleCheck):
'(%(server)s) insecurely. This means conversations will not be '
'encrypted, and is strongly discouraged.\nAre you sure you want '
'to do that?') % {'account': account,
- 'server': gajim.get_hostname_from_account(account)}
+ 'server': app.get_hostname_from_account(account)}
checktext1 = _('Yes, I really want to connect insecurely')
tooltip1 = _('Gajim will NOT connect unless you check this box')
checktext2 = _('_Do not ask me again')
@@ -1907,8 +1907,8 @@ class ConfirmationDialogDoubleRadio(ConfirmationDialog):
self.user_response_ok = on_response_ok
self.user_response_cancel = on_response_cancel
- if hasattr(gajim.interface, 'roster') and gajim.interface.roster:
- parent = gajim.interface.roster.window
+ if hasattr(app.interface, 'roster') and app.interface.roster:
+ parent = app.interface.roster.window
else:
parent = None
HigDialog.__init__(self, parent, Gtk.MessageType.QUESTION,
@@ -1970,8 +1970,8 @@ class FTOverwriteConfirmationDialog(ConfirmationDialog):
on_response=None, transient_for=None):
if transient_for:
parent = transient_for
- elif hasattr(gajim.interface, 'roster') and gajim.interface.roster:
- parent = gajim.interface.roster.window
+ elif hasattr(app.interface, 'roster') and app.interface.roster:
+ parent = app.interface.roster.window
else:
parent = None
HigDialog.__init__(self, parent, Gtk.MessageType.QUESTION,
@@ -2024,7 +2024,7 @@ class CommonInputDialog:
if transient_for:
self.dialog.set_transient_for(transient_for)
else:
- self.dialog.set_transient_for(gajim.interface.roster.window)
+ self.dialog.set_transient_for(app.interface.roster.window)
self.ok_handler = ok_handler
okbutton = self.xml.get_object('okbutton')
@@ -2153,36 +2153,36 @@ class ChangeNickDialog(InputDialogCheck):
return True
def setup_dialog(self):
- self.gc_control = gajim.interface.msg_win_mgr.get_gc_control(
+ self.gc_control = app.interface.msg_win_mgr.get_gc_control(
self.room_jid, self.account)
if not self.gc_control and \
- self.room_jid in gajim.interface.minimized_controls[self.account]:
+ self.room_jid in app.interface.minimized_controls[self.account]:
self.gc_control = \
- gajim.interface.minimized_controls[self.account][self.room_jid]
+ app.interface.minimized_controls[self.account][self.room_jid]
if not self.gc_control:
self.check_next()
return
label = self.xml.get_object('label')
label.set_markup(self.prompt)
self.set_entry(self.gc_control.nick + \
- gajim.config.get('gc_proposed_nick_char'))
+ app.config.get('gc_proposed_nick_char'))
def check_next(self):
if len(self.room_queue) == 0:
self.cancel_handler = None
self.dialog.destroy()
- if 'change_nick_dialog' in gajim.interface.instances:
- del gajim.interface.instances['change_nick_dialog']
+ if 'change_nick_dialog' in app.interface.instances:
+ del app.interface.instances['change_nick_dialog']
return
self.account, self.room_jid, self.prompt, self.change_nick = \
self.room_queue.pop(0)
self.setup_dialog()
- if gajim.new_room_nick is not None and not gajim.gc_connected[
+ if app.new_room_nick is not None and not app.gc_connected[
self.account][self.room_jid] and self.gc_control.nick != \
- gajim.new_room_nick:
+ app.new_room_nick:
self.dialog.hide()
- self.on_ok(gajim.new_room_nick, True)
+ self.on_ok(app.new_room_nick, True)
else:
self.dialog.show()
@@ -2202,10 +2202,10 @@ class ChangeNickDialog(InputDialogCheck):
def on_ok(self, nick, is_checked):
if is_checked:
- gajim.new_room_nick = nick
- gajim.connections[self.account].join_gc(nick, self.room_jid, None,
+ app.new_room_nick = nick
+ app.connections[self.account].join_gc(nick, self.room_jid, None,
change_nick=self.change_nick)
- if gajim.gc_connected[self.account][self.room_jid]:
+ if app.gc_connected[self.account][self.room_jid]:
# We are changing nick, we will change self.nick when we receive
# presence that inform that it works
self.gc_control.new_nick = nick
@@ -2317,7 +2317,7 @@ class SubscriptionRequestWindow:
self.jid = jid
self.account = account
self.user_nick = user_nick
- if len(gajim.connections) >= 2:
+ if len(app.connections) >= 2:
prompt_text = \
_('Subscription request for account %(account)s from %(jid)s')\
% {'account': account, 'jid': self.jid}
@@ -2332,9 +2332,9 @@ class SubscriptionRequestWindow:
"""
Close window
"""
- if self.jid in gajim.interface.instances[self.account]['sub_request']:
+ if self.jid in app.interface.instances[self.account]['sub_request']:
# remove us from open windows
- del gajim.interface.instances[self.account]['sub_request'][self.jid]
+ del app.interface.instances[self.account]['sub_request'][self.jid]
def prepare_popup_menu(self):
xml = gtkgui_helpers.get_gtk_builder('subscription_request_popup_menu.ui')
@@ -2349,9 +2349,9 @@ class SubscriptionRequestWindow:
"""
Accept the request
"""
- gajim.connections[self.account].send_authorization(self.jid)
+ app.connections[self.account].send_authorization(self.jid)
self.window.destroy()
- contact = gajim.contacts.get_contact(self.account, self.jid)
+ contact = app.contacts.get_contact(self.account, self.jid)
if not contact or _('Not in Roster') in contact.groups:
AddNewContactWindow(self.account, self.jid, self.user_nick)
@@ -2359,30 +2359,30 @@ class SubscriptionRequestWindow:
"""
Ask vcard
"""
- if self.jid in gajim.interface.instances[self.account]['infos']:
- gajim.interface.instances[self.account]['infos'][self.jid].window.present()
+ if self.jid in app.interface.instances[self.account]['infos']:
+ app.interface.instances[self.account]['infos'][self.jid].window.present()
else:
- contact = gajim.contacts.create_contact(jid=self.jid, account=self.account)
- gajim.interface.instances[self.account]['infos'][self.jid] = \
+ contact = app.contacts.create_contact(jid=self.jid, account=self.account)
+ app.interface.instances[self.account]['infos'][self.jid] = \
vcard.VcardWindow(contact, self.account)
# Remove jabber page
- gajim.interface.instances[self.account]['infos'][self.jid].xml.\
+ app.interface.instances[self.account]['infos'][self.jid].xml.\
get_object('information_notebook').remove_page(0)
def on_start_chat_activate(self, widget):
"""
Open chat
"""
- gajim.interface.new_chat_from_jid(self.account, self.jid)
+ app.interface.new_chat_from_jid(self.account, self.jid)
def on_deny_button_clicked(self, widget):
"""
Refuse the request
"""
- gajim.connections[self.account].refuse_authorization(self.jid)
- contact = gajim.contacts.get_contact(self.account, self.jid)
+ app.connections[self.account].refuse_authorization(self.jid)
+ contact = app.contacts.get_contact(self.account, self.jid)
if contact and _('Not in Roster') in contact.get_shown_groups():
- gajim.interface.roster.remove_contact(self.jid, self.account)
+ app.interface.roster.remove_contact(self.jid, self.account)
self.window.destroy()
def on_actions_button_clicked(self, widget):
@@ -2405,13 +2405,13 @@ class JoinGroupchatWindow:
"""
self.window_account = None
if account:
- if room_jid != '' and room_jid in gajim.gc_connected[account] and \
- gajim.gc_connected[account][room_jid]:
+ if room_jid != '' and room_jid in app.gc_connected[account] and \
+ app.gc_connected[account][room_jid]:
ErrorDialog(_('You are already in group chat %s') % room_jid)
raise GajimGeneralException('You are already in this group chat')
if nick == '':
- nick = gajim.nicks[account]
- if gajim.connections[account].connected < 2:
+ nick = app.nicks[account]
+ if app.connections[account].connected < 2:
ErrorDialog(_('You are not connected to the server'),
_('You can not join a group chat unless you are connected.'))
raise GajimGeneralException('You must be connected to join a groupchat')
@@ -2431,9 +2431,9 @@ class JoinGroupchatWindow:
account_combobox.set_active(-1)
# Add accounts, set current as active if it matches 'account'
- for acct in [a for a in gajim.connections if \
- gajim.account_is_connected(a)]:
- if gajim.connections[acct].is_zeroconf:
+ for acct in [a for a in app.connections if \
+ app.account_is_connected(a)]:
+ if app.connections[acct].is_zeroconf:
continue
liststore.append([acct])
if account and account == acct:
@@ -2444,7 +2444,7 @@ class JoinGroupchatWindow:
self._empty_required_widgets = []
self.window = self.xml.get_object('join_groupchat_window')
- self.window.set_transient_for(gajim.interface.roster.window)
+ self.window.set_transient_for(app.interface.roster.window)
self._room_jid_entry = self.xml.get_object('room_jid_entry')
self._nickname_entry = self.xml.get_object('nickname_entry')
self._password_entry = self.xml.get_object('password_entry')
@@ -2457,8 +2457,8 @@ class JoinGroupchatWindow:
title = None
if account:
# now add us to open windows
- gajim.interface.instances[account]['join_gc'] = self
- if len(gajim.connections) > 1:
+ app.interface.instances[account]['join_gc'] = self
+ if len(app.connections) > 1:
title = _('Join Group Chat with account %s') % account
if title is None:
title = _('Join Group Chat')
@@ -2473,22 +2473,22 @@ class JoinGroupchatWindow:
cell = Gtk.CellRendererText()
self.recently_combobox.pack_start(cell, True)
self.recently_combobox.add_attribute(cell, 'text', 0)
- self.recently_groupchat = gajim.config.get('recently_groupchat').split()
+ self.recently_groupchat = app.config.get('recently_groupchat').split()
server_list = []
# get the muc server of our server
- if 'jabber' in gajim.connections[account].muc_jid:
- server_list.append(gajim.connections[account].muc_jid['jabber'])
+ if 'jabber' in app.connections[account].muc_jid:
+ server_list.append(app.connections[account].muc_jid['jabber'])
for g in self.recently_groupchat:
- r_jid = gajim.get_jid_without_resource(g)
- nick = gajim.get_resource_from_jid(g)
+ r_jid = app.get_jid_without_resource(g)
+ nick = app.get_resource_from_jid(g)
if nick:
show = '%(nick)s on %(room_jid)s' % {'nick': nick,
'room_jid': r_jid}
else:
show = r_jid
liststore.append([show, g])
- server = gajim.get_server_from_jid(r_jid)
+ server = app.get_server_from_jid(r_jid)
if server not in server_list and not server.startswith('irc'):
server_list.append(server)
@@ -2513,13 +2513,13 @@ class JoinGroupchatWindow:
if len(self._empty_required_widgets):
self.xml.get_object('join_button').set_sensitive(False)
- if account and not gajim.connections[account].private_storage_supported:
+ if account and not app.connections[account].private_storage_supported:
self.xml.get_object('bookmark_checkbutton').set_sensitive(False)
self.requested_jid = None
- gajim.ged.register_event_handler('agent-info-received', ged.GUI1,
+ app.ged.register_event_handler('agent-info-received', ged.GUI1,
self._nec_agent_info_received)
- gajim.ged.register_event_handler('agent-info-error-received', ged.GUI1,
+ app.ged.register_event_handler('agent-info-error-received', ged.GUI1,
self._nec_agent_info_error_received)
self.window.show_all()
@@ -2528,14 +2528,14 @@ class JoinGroupchatWindow:
"""
Close window
"""
- gajim.ged.remove_event_handler('agent-info-received', ged.GUI1,
+ app.ged.remove_event_handler('agent-info-received', ged.GUI1,
self._nec_agent_info_received)
- gajim.ged.register_event_handler('agent-info-error-received', ged.GUI1,
+ app.ged.register_event_handler('agent-info-error-received', ged.GUI1,
self._nec_agent_info_error_received)
- if self.window_account and 'join_gc' in gajim.interface.instances[
+ if self.window_account and 'join_gc' in app.interface.instances[
self.window_account]:
# remove us from open windows
- del gajim.interface.instances[self.window_account]['join_gc']
+ del app.interface.instances[self.window_account]['join_gc']
def on_join_groupchat_window_key_press_event(self, widget, event):
if event.keyval == Gdk.KEY_Escape: # ESCAPE
@@ -2571,8 +2571,8 @@ class JoinGroupchatWindow:
self.on_required_entry_changed(self._nickname_entry)
def _set_room_jid(self, full_jid):
- room_jid, nick = gajim.get_room_and_nick_from_fjid(full_jid)
- room, server = gajim.get_name_and_server_from_jid(room_jid)
+ room_jid, nick = app.get_room_and_nick_from_fjid(full_jid)
+ room, server = app.get_name_and_server_from_jid(room_jid)
self._room_jid_entry.set_text(room)
model = self.server_comboboxtext.get_model()
self.server_comboboxtext.get_child().set_text(server)
@@ -2588,7 +2588,7 @@ class JoinGroupchatWindow:
def on_browse_rooms_button_clicked(self, widget):
server = self.server_comboboxtext.get_child().get_text()
self.requested_jid = server
- gajim.connections[self.account].discoverInfo(server)
+ app.connections[self.account].discoverInfo(server)
def _nec_agent_info_error_received(self, obj):
if obj.conn.name != self.account:
@@ -2596,7 +2596,7 @@ class JoinGroupchatWindow:
if obj.jid != self.requested_jid:
return
self.requested_jid = None
- window = gajim.interface.instances[self.account]['join_gc'].window
+ window = app.interface.instances[self.account]['join_gc'].window
ErrorDialog(_('Wrong server'), _('%s is not a groupchat server') % \
obj.jid, transient_for=window)
@@ -2607,12 +2607,12 @@ class JoinGroupchatWindow:
return
self.requested_jid = None
if nbxmpp.NS_MUC not in obj.features:
- window = gajim.interface.instances[self.account]['join_gc'].window
+ window = app.interface.instances[self.account]['join_gc'].window
ErrorDialog(_('Wrong server'), _('%s is not a groupchat server') % \
obj.jid, transient_for=window)
return
- if obj.jid in gajim.interface.instances[self.account]['disco']:
- gajim.interface.instances[self.account]['disco'][obj.jid].window.\
+ if obj.jid in app.interface.instances[self.account]['disco']:
+ app.interface.instances[self.account]['disco'][obj.jid].window.\
present()
else:
try:
@@ -2675,8 +2675,8 @@ class JoinGroupchatWindow:
_('The group chat JID contains invalid characters.'))
return
- if gajim.contacts.get_contact(self.account, room_jid) and \
- not gajim.contacts.get_contact(self.account, room_jid).is_groupchat():
+ if app.contacts.get_contact(self.account, room_jid) and \
+ not app.contacts.get_contact(self.account, room_jid).is_groupchat():
ErrorDialog(_('This is not a group chat'),
_('%s is already in your roster. Please check if %s is a '
'correct group chat name. If it is, delete it from your roster '
@@ -2689,7 +2689,7 @@ class JoinGroupchatWindow:
self.recently_groupchat.insert(0, full_jid)
if len(self.recently_groupchat) > 10:
self.recently_groupchat = self.recently_groupchat[0:10]
- gajim.config.set('recently_groupchat',
+ app.config.set('recently_groupchat',
' '.join(self.recently_groupchat))
if self.xml.get_object('bookmark_checkbutton').get_active():
@@ -2698,28 +2698,28 @@ class JoinGroupchatWindow:
else:
autojoin = '0'
# Add as bookmark, with autojoin and not minimized
- name = gajim.get_nick_from_jid(room_jid)
- gajim.interface.add_gc_bookmark(self.account, name, room_jid,
+ name = app.get_nick_from_jid(room_jid)
+ app.interface.add_gc_bookmark(self.account, name, room_jid,
autojoin, autojoin, password, nickname)
if self.automatic:
- gajim.automatic_rooms[self.account][room_jid] = self.automatic
+ app.automatic_rooms[self.account][room_jid] = self.automatic
- gajim.interface.join_gc_room(self.account, room_jid, nickname, password)
+ app.interface.join_gc_room(self.account, room_jid, nickname, password)
self.window.destroy()
class SynchroniseSelectAccountDialog:
def __init__(self, account):
# 'account' can be None if we are about to create our first one
- if not account or gajim.connections[account].connected < 2:
+ if not account or app.connections[account].connected < 2:
ErrorDialog(_('You are not connected to the server'),
_('Without a connection, you can not synchronise your contacts.'))
raise GajimGeneralException('You are not connected to the server')
self.account = account
self.xml = gtkgui_helpers.get_gtk_builder('synchronise_select_account_dialog.ui')
self.dialog = self.xml.get_object('synchronise_select_account_dialog')
- self.dialog.set_transient_for(gajim.interface.instances['accounts'].window)
+ self.dialog.set_transient_for(app.interface.instances['accounts'].window)
self.accounts_treeview = self.xml.get_object('accounts_treeview')
model = Gtk.ListStore(str, str, bool)
self.accounts_treeview.set_model(model)
@@ -2745,13 +2745,13 @@ class SynchroniseSelectAccountDialog:
"""
model = self.accounts_treeview.get_model()
model.clear()
- for remote_account in gajim.connections:
+ for remote_account in app.connections:
if remote_account == self.account:
# Do not show the account we're sync'ing
continue
iter_ = model.append()
model.set(iter_, 0, remote_account, 1,
- gajim.get_hostname_from_account(remote_account))
+ app.get_hostname_from_account(remote_account))
def on_cancel_button_clicked(self, widget):
self.dialog.destroy()
@@ -2763,7 +2763,7 @@ class SynchroniseSelectAccountDialog:
return
remote_account = model.get_value(iter_, 0)
- if gajim.connections[remote_account].connected < 2:
+ if app.connections[remote_account].connected < 2:
ErrorDialog(_('This account is not connected to the server'),
_('You cannot synchronize with an account unless it is connected.'))
return
@@ -2816,9 +2816,9 @@ class SynchroniseSelectContactsDialog:
model.clear()
# recover local contacts
- local_jid_list = gajim.contacts.get_contacts_jid_list(self.local_account)
+ local_jid_list = app.contacts.get_contacts_jid_list(self.local_account)
- remote_jid_list = gajim.contacts.get_contacts_jid_list(
+ remote_jid_list = app.contacts.get_contacts_jid_list(
self.remote_account)
for remote_jid in remote_jid_list:
if remote_jid not in local_jid_list:
@@ -2836,11 +2836,11 @@ class SynchroniseSelectContactsDialog:
# it is selected
remote_jid = model[iter_][1]
message = 'I\'m synchronizing my contacts from my %s account, could you please add this address to your contact list?' % \
- gajim.get_hostname_from_account(self.remote_account)
- remote_contact = gajim.contacts.get_first_contact_from_jid(
+ app.get_hostname_from_account(self.remote_account)
+ remote_contact = app.contacts.get_first_contact_from_jid(
self.remote_account, remote_jid)
# keep same groups and same nickname
- gajim.interface.roster.req_sub(self, remote_jid, message,
+ app.interface.roster.req_sub(self, remote_jid, message,
self.local_account, groups = remote_contact.groups,
nickname = remote_contact.name, auto_auth = True)
iter_ = model.iter_next(iter_)
@@ -2850,7 +2850,7 @@ class NewChatDialog(InputDialog):
def __init__(self, account):
self.account = account
- if len(gajim.connections) > 1:
+ if len(app.connections) > 1:
title = _('Start Chat with account %s') % account
else:
title = _('Start Chat')
@@ -2866,7 +2866,7 @@ class NewChatDialog(InputDialog):
keys = sorted(self.completion_dict.keys())
for jid in keys:
contact = self.completion_dict[jid]
- img = gajim.interface.jabber_state_images['16'][contact.show]
+ img = app.interface.jabber_state_images['16'][contact.show]
liststore.append((img.get_pixbuf(), jid))
self.ok_handler = self.new_chat_response
@@ -2874,14 +2874,14 @@ class NewChatDialog(InputDialog):
okbutton.connect('clicked', self.on_okbutton_clicked)
cancelbutton = self.xml.get_object('cancelbutton')
cancelbutton.connect('clicked', self.on_cancelbutton_clicked)
- self.dialog.set_transient_for(gajim.interface.roster.window)
+ self.dialog.set_transient_for(app.interface.roster.window)
self.dialog.show_all()
def new_chat_response(self, jid):
"""
Called when ok button is clicked
"""
- if gajim.connections[self.account].connected <= 1:
+ if app.connections[self.account].connected <= 1:
#if offline or connecting
ErrorDialog(_('Connection not available'),
_('Please make sure you are connected with "%s".') % self.account)
@@ -2898,12 +2898,12 @@ class NewChatDialog(InputDialog):
except:
ErrorDialog(_('Invalid JID'), _('Unable to parse "%s".') % jid)
return
- gajim.interface.new_chat_from_jid(self.account, jid)
+ app.interface.new_chat_from_jid(self.account, jid)
class ChangePasswordDialog:
def __init__(self, account, on_response, transient_for=None):
# 'account' can be None if we are about to create our first one
- if not account or gajim.connections[account].connected < 2:
+ if not account or app.connections[account].connected < 2:
ErrorDialog(_('You are not connected to the server'),
_('Without a connection, you can not change your password.'))
raise GajimGeneralException('You are not connected to the server')
@@ -2941,7 +2941,7 @@ class PopupNotificationWindow:
self.account = account
self.jid = jid
self.msg_type = msg_type
- self.index = len(gajim.interface.roster.popup_notification_windows)
+ self.index = len(app.interface.roster.popup_notification_windows)
xml = gtkgui_helpers.get_gtk_builder('popup_notification_window.ui')
self.window = xml.get_object('popup_notification_window')
@@ -2953,7 +2953,7 @@ class PopupNotificationWindow:
image = xml.get_object('notification_image')
if not text:
- text = gajim.get_name_from_jid(account, jid) # default value of text
+ text = app.get_name_from_jid(account, jid) # default value of text
if not title:
title = ''
@@ -2971,25 +2971,25 @@ class PopupNotificationWindow:
path_to_image = gtkgui_helpers.get_icon_path('gajim-chat_msg_recv', 48)
if event_type == _('Contact Signed In'):
- bg_color = gajim.config.get('notif_signin_color')
+ bg_color = app.config.get('notif_signin_color')
elif event_type == _('Contact Signed Out'):
- bg_color = gajim.config.get('notif_signout_color')
+ bg_color = app.config.get('notif_signout_color')
elif event_type in (_('New Message'), _('New Single Message'),
_('New Private Message'), _('New E-mail')):
- bg_color = gajim.config.get('notif_message_color')
+ bg_color = app.config.get('notif_message_color')
elif event_type == _('File Transfer Request'):
- bg_color = gajim.config.get('notif_ftrequest_color')
+ bg_color = app.config.get('notif_ftrequest_color')
elif event_type == _('File Transfer Error'):
- bg_color = gajim.config.get('notif_fterror_color')
+ bg_color = app.config.get('notif_fterror_color')
elif event_type in (_('File Transfer Completed'),
_('File Transfer Stopped')):
- bg_color = gajim.config.get('notif_ftcomplete_color')
+ bg_color = app.config.get('notif_ftcomplete_color')
elif event_type == _('Groupchat Invitation'):
- bg_color = gajim.config.get('notif_invite_color')
+ bg_color = app.config.get('notif_invite_color')
elif event_type == _('Contact Changed Status'):
- bg_color = gajim.config.get('notif_status_color')
+ bg_color = app.config.get('notif_status_color')
else: # Unknown event! Shouldn't happen but deal with it
- bg_color = gajim.config.get('notif_other_color')
+ bg_color = app.config.get('notif_other_color')
popup_bg_color = Gdk.RGBA()
Gdk.RGBA.parse(popup_bg_color, bg_color)
close_button.override_background_color(Gtk.StateType.NORMAL,
@@ -3003,14 +3003,14 @@ class PopupNotificationWindow:
# position the window to bottom-right of screen
window_width, self.window_height = self.window.get_size()
- gajim.interface.roster.popups_notification_height += self.window_height
- pos_x = gajim.config.get('notification_position_x')
+ app.interface.roster.popups_notification_height += self.window_height
+ pos_x = app.config.get('notification_position_x')
if pos_x < 0:
pos_x = Gdk.Screen.width() - window_width + pos_x + 1
- pos_y = gajim.config.get('notification_position_y')
+ pos_y = app.config.get('notification_position_y')
if pos_y < 0:
pos_y = Gdk.Screen.height() - \
- gajim.interface.roster.popups_notification_height + pos_y + 1
+ app.interface.roster.popups_notification_height + pos_y + 1
self.window.move(pos_x, pos_y)
xml.connect_signals(self)
@@ -3026,30 +3026,30 @@ class PopupNotificationWindow:
def adjust_height_and_move_popup_notification_windows(self):
#remove
- gajim.interface.roster.popups_notification_height -= self.window_height
+ app.interface.roster.popups_notification_height -= self.window_height
self.window.destroy()
- if len(gajim.interface.roster.popup_notification_windows) > self.index:
+ if len(app.interface.roster.popup_notification_windows) > self.index:
# we want to remove the destroyed window from the list
- gajim.interface.roster.popup_notification_windows.pop(self.index)
+ app.interface.roster.popup_notification_windows.pop(self.index)
# move the rest of popup windows
- gajim.interface.roster.popups_notification_height = 0
+ app.interface.roster.popups_notification_height = 0
current_index = 0
- for window_instance in gajim.interface.roster.popup_notification_windows:
+ for window_instance in app.interface.roster.popup_notification_windows:
window_instance.index = current_index
current_index += 1
window_width, window_height = window_instance.window.get_size()
- gajim.interface.roster.popups_notification_height += window_height
+ app.interface.roster.popups_notification_height += window_height
window_instance.window.move(Gdk.Screen.width() - window_width,
Gdk.Screen.height() - \
- gajim.interface.roster.popups_notification_height)
+ app.interface.roster.popups_notification_height)
def on_popup_notification_window_button_press_event(self, widget, event):
if event.button != 1:
self.window.destroy()
return
- gajim.interface.handle_event(self.account, self.jid, self.msg_type)
+ app.interface.handle_event(self.account, self.jid, self.msg_type)
self.adjust_height_and_move_popup_notification_windows()
class SingleMessageWindow:
@@ -3119,11 +3119,11 @@ class SingleMessageWindow:
else:
self.to_entry.set_text(to)
- if gajim.config.get('use_speller') and HAS_GTK_SPELL and action == 'send':
+ if app.config.get('use_speller') and HAS_GTK_SPELL and action == 'send':
try:
- lang = gajim.config.get('speller_language')
+ lang = app.config.get('speller_language')
if not lang:
- lang = gajim.LANG
+ lang = app.LANG
gtkspell.Spell(self.conversation_textview.tv, lang)
gtkspell.Spell(self.message_textview, lang)
except (GObject.GError, TypeError, RuntimeError, OSError):
@@ -3143,7 +3143,7 @@ class SingleMessageWindow:
keys = sorted(self.completion_dict.keys())
for jid in keys:
contact = self.completion_dict[jid]
- img = gajim.interface.jabber_state_images['16'][contact.show]
+ img = app.interface.jabber_state_images['16'][contact.show]
liststore.append((img.get_pixbuf(), jid))
else:
self.completion_dict = {}
@@ -3151,26 +3151,26 @@ class SingleMessageWindow:
# get window position and size from config
gtkgui_helpers.resize_window(self.window,
- gajim.config.get('single-msg-width'),
- gajim.config.get('single-msg-height'))
+ app.config.get('single-msg-width'),
+ app.config.get('single-msg-height'))
gtkgui_helpers.move_window(self.window,
- gajim.config.get('single-msg-x-position'),
- gajim.config.get('single-msg-y-position'))
+ app.config.get('single-msg-x-position'),
+ app.config.get('single-msg-y-position'))
self.window.show_all()
def on_single_message_window_destroy(self, widget):
self.instances.remove(self)
- c = gajim.contacts.get_contact_with_highest_priority(self.account,
+ c = app.contacts.get_contact_with_highest_priority(self.account,
self.from_whom)
if not c:
# Groupchat is maybe already destroyed
return
if c.is_groupchat() and not self.from_whom in \
- gajim.interface.minimized_controls[self.account] and self.action == \
- 'receive' and gajim.events.get_nb_roster_events(self.account,
+ app.interface.minimized_controls[self.account] and self.action == \
+ 'receive' and app.events.get_nb_roster_events(self.account,
self.from_whom, types=['chat', 'normal']) == 0:
- gajim.interface.roster.remove_groupchat(self.from_whom, self.account)
+ app.interface.roster.remove_groupchat(self.from_whom, self.account)
def set_cursor_to_end(self):
end_iter = self.message_tv_buffer.get_end_iter()
@@ -3179,17 +3179,17 @@ class SingleMessageWindow:
def save_pos(self):
# save the window size and position
x, y = self.window.get_position()
- gajim.config.set('single-msg-x-position', x)
- gajim.config.set('single-msg-y-position', y)
+ app.config.set('single-msg-x-position', x)
+ app.config.set('single-msg-y-position', y)
width, height = self.window.get_size()
- gajim.config.set('single-msg-width', width)
- gajim.config.set('single-msg-height', height)
+ app.config.set('single-msg-width', width)
+ app.config.set('single-msg-height', height)
def on_single_message_window_delete_event(self, window, ev):
self.save_pos()
def prepare_widgets_for(self, action):
- if len(gajim.connections) > 1:
+ if len(app.connections) > 1:
if action == 'send':
title = _('Single Message using account %s') % self.account
else:
@@ -3270,7 +3270,7 @@ class SingleMessageWindow:
self.count_chars_label.set_text(str(characters_no))
def send_single_message(self):
- if gajim.connections[self.account].connected <= 1:
+ if app.connections[self.account].connected <= 1:
# if offline or connecting
ErrorDialog(_('Connection not available'),
_('Please make sure you are connected with "%s".') % self.account)
@@ -3309,13 +3309,13 @@ class SingleMessageWindow:
return True
if '/announce/' in to_whom_jid:
- gajim.connections[self.account].send_motd(to_whom_jid, subject,
+ app.connections[self.account].send_motd(to_whom_jid, subject,
message)
continue
recipient_list.append(to_whom_jid)
- gajim.nec.push_outgoing_event(MessageOutgoingEvent(None,
+ app.nec.push_outgoing_event(MessageOutgoingEvent(None,
account=self.account, jid=recipient_list, message=message,
type_='normal', subject=subject, form_node=form_node))
@@ -3403,15 +3403,15 @@ class XMLConsoleWindow(Gtk.Window):
self.connect('key_press_event', self.on_key_press_event)
self.builder.connect_signals(self)
- gajim.ged.register_event_handler('stanza-received', ged.GUI1,
+ app.ged.register_event_handler('stanza-received', ged.GUI1,
self._nec_stanza_received)
- gajim.ged.register_event_handler('stanza-sent', ged.GUI1,
+ app.ged.register_event_handler('stanza-sent', ged.GUI1,
self._nec_stanza_sent)
def create_tags(self):
buffer_ = self.textview.get_buffer()
- in_color = gajim.config.get('inmsgcolor')
- out_color = gajim.config.get('outmsgcolor')
+ in_color = app.config.get('inmsgcolor')
+ out_color = app.config.get('outmsgcolor')
tags = ['presence', 'message', 'stream', 'iq']
@@ -3454,7 +3454,7 @@ class XMLConsoleWindow(Gtk.Window):
self.input.grab_focus()
def on_send(self, *args):
- if gajim.connections[self.account].connected <= 1:
+ if app.connections[self.account].connected <= 1:
# if offline or connecting
ErrorDialog(_('Connection not available'),
_('Please make sure you are connected with "%s".') % \
@@ -3464,7 +3464,7 @@ class XMLConsoleWindow(Gtk.Window):
begin_iter, end_iter = buffer_.get_bounds()
stanza = buffer_.get_text(begin_iter, end_iter, True)
if stanza:
- gajim.connections[self.account].send_stanza(stanza)
+ app.connections[self.account].send_stanza(stanza)
buffer_.set_text('')
def on_input(self, button, *args):
@@ -3503,10 +3503,10 @@ class XMLConsoleWindow(Gtk.Window):
buffer_ = self.textview.get_buffer().set_text('')
def on_destroy(self, *args):
- del gajim.interface.instances[self.account]['xml_console']
- gajim.ged.remove_event_handler('stanza-received', ged.GUI1,
+ del app.interface.instances[self.account]['xml_console']
+ app.ged.remove_event_handler('stanza-received', ged.GUI1,
self._nec_stanza_received)
- gajim.ged.remove_event_handler('stanza-sent', ged.GUI1,
+ app.ged.remove_event_handler('stanza-sent', ged.GUI1,
self._nec_stanza_sent)
def on_enable(self, switch, param):
@@ -3690,7 +3690,7 @@ class RosterItemExchangeWindow:
for jid in self.exchange_list:
groups = ''
is_in_roster = True
- contact = gajim.contacts.get_contact_with_highest_priority(
+ contact = app.contacts.get_contact_with_highest_priority(
self.account, jid)
if not contact or _('Not in Roster') in contact.groups:
is_in_roster = False
@@ -3717,7 +3717,7 @@ class RosterItemExchangeWindow:
groups = ''
is_in_roster = True
is_right = True
- contact = gajim.contacts.get_contact_with_highest_priority(
+ contact = app.contacts.get_contact_with_highest_priority(
self.account, jid)
name = self.exchange_list[jid][0]
if not contact:
@@ -3747,7 +3747,7 @@ class RosterItemExchangeWindow:
for jid in self.exchange_list:
groups = ''
is_in_roster = True
- contact = gajim.contacts.get_contact_with_highest_priority(
+ contact = app.contacts.get_contact_with_highest_priority(
self.account, jid)
name = self.exchange_list[jid][0]
if not contact:
@@ -3794,10 +3794,10 @@ class RosterItemExchangeWindow:
if groups == ['']:
groups = []
jid = model[iter_][1]
- if gajim.jid_is_transport(self.jid_from):
- gajim.connections[self.account].automatically_added.append(
+ if app.jid_is_transport(self.jid_from):
+ app.connections[self.account].automatically_added.append(
jid)
- gajim.interface.roster.req_sub(self, jid, message,
+ app.interface.roster.req_sub(self, jid, message,
self.account, groups=groups, nickname=model[iter_][2],
auto_auth=True)
iter_ = model.iter_next(iter_)
@@ -3814,16 +3814,16 @@ class RosterItemExchangeWindow:
groups = model[iter_][3].split(', ')
if groups == ['']:
groups = []
- for u in gajim.contacts.get_contact(self.account, jid):
+ for u in app.contacts.get_contact(self.account, jid):
u.name = model[iter_][2]
- gajim.connections[self.account].update_contact(jid,
+ app.connections[self.account].update_contact(jid,
model[iter_][2], groups)
self.draw_contact(jid, self.account)
# Update opened chat
- ctrl = gajim.interface.msg_win_mgr.get_control(jid, self.account)
+ ctrl = app.interface.msg_win_mgr.get_control(jid, self.account)
if ctrl:
ctrl.update_ui()
- win = gajim.interface.msg_win_mgr.get_window(jid,
+ win = app.interface.msg_win_mgr.get_window(jid,
self.account)
win.redraw_tab(ctrl)
win.show_title()
@@ -3835,9 +3835,9 @@ class RosterItemExchangeWindow:
a+=1
# it is selected
jid = model[iter_][1]
- gajim.connections[self.account].unsubscribe(jid)
- gajim.interface.roster.remove_contact(jid, self.account)
- gajim.contacts.remove_jid(self.account, jid)
+ app.connections[self.account].unsubscribe(jid)
+ app.interface.roster.remove_contact(jid, self.account)
+ app.contacts.remove_jid(self.account, jid)
iter_ = model.iter_next(iter_)
InformationDialog(i18n.ngettext('Removed %d contact',
'Removed %d contacts', a, a, a))
@@ -3867,10 +3867,10 @@ class Archiving313PreferencesWindow:
self.window.set_title(_('Archiving Preferences for %s') % self.account)
- gajim.ged.register_event_handler(
+ app.ged.register_event_handler(
'archiving-313-preferences-changed-received', ged.GUI1,
self._nec_archiving_313_changed_received)
- gajim.ged.register_event_handler(
+ app.ged.register_event_handler(
'archiving-error-received', ged.GUI1, self._nec_archiving_error)
self.default_cb.set_active(0)
@@ -3879,7 +3879,7 @@ class Archiving313PreferencesWindow:
self.xml.connect_signals(self)
self.idle_id = GLib.timeout_add_seconds(3, self._nec_archiving_error)
- gajim.connections[self.account].request_archive_preferences()
+ app.connections[self.account].request_archive_preferences()
def on_key_press_event(self, widget, event):
if event.keyval == Gdk.KEY_Escape:
@@ -3932,10 +3932,10 @@ class Archiving313PreferencesWindow:
def on_add_item_button_clicked(self, widget):
key_name = 'item_archiving_preferences'
- if key_name in gajim.interface.instances[self.account]:
- gajim.interface.instances[self.account][key_name].window.present()
+ if key_name in app.interface.instances[self.account]:
+ app.interface.instances[self.account][key_name].window.present()
else:
- gajim.interface.instances[self.account][key_name] = \
+ app.interface.instances[self.account][key_name] = \
ItemArchiving313PreferencesWindow(
self.account, self, self.window)
@@ -3953,20 +3953,20 @@ class Archiving313PreferencesWindow:
for item in self.archive_items_liststore:
items.append((item[0].lower(), item[1].lower()))
self.idle_id = GLib.timeout_add_seconds(3, self._nec_archiving_error)
- gajim.connections[self.account]. \
+ app.connections[self.account]. \
set_archive_preferences(items, default)
def on_close_button_clicked(self, widget):
self.window.destroy()
def on_archiving_preferences_window_destroy(self, widget):
- gajim.ged.remove_event_handler(
+ app.ged.remove_event_handler(
'archiving-313-preferences-changed-received', ged.GUI1,
self._nec_archiving_313_changed_received)
- gajim.ged.remove_event_handler(
+ app.ged.remove_event_handler(
'archiving-error-received', ged.GUI1, self._nec_archiving_error)
- if 'archiving_preferences' in gajim.interface.instances[self.account]:
- del gajim.interface.instances[self.account]['archiving_preferences']
+ if 'archiving_preferences' in app.interface.instances[self.account]:
+ del app.interface.instances[self.account]['archiving_preferences']
class ItemArchiving313PreferencesWindow:
@@ -4007,8 +4007,8 @@ class ItemArchiving313PreferencesWindow:
def on_item_archiving_preferences_window_destroy(self, widget):
key_name = 'item_archiving_preferences'
- if key_name in gajim.interface.instances[self.account]:
- del gajim.interface.instances[self.account][key_name]
+ if key_name in app.interface.instances[self.account]:
+ del app.interface.instances[self.account][key_name]
class PrivacyListWindow:
@@ -4060,7 +4060,7 @@ class PrivacyListWindow:
_('Privacy List %s') % \
GLib.markup_escape_text(self.privacy_list_name))
- if len(gajim.connections) > 1:
+ if len(app.connections) > 1:
title = _('Privacy List for %s') % self.account
else:
title = _('Privacy List')
@@ -4073,7 +4073,7 @@ class PrivacyListWindow:
# set jabber id completion
jids_list_store = Gtk.ListStore(GObject.TYPE_STRING)
- for jid in gajim.contacts.get_jid_list(self.account):
+ for jid in app.contacts.get_jid_list(self.account):
jids_list_store.append([jid])
jid_entry_completion = Gtk.EntryCompletion()
jid_entry_completion.set_text_column(0)
@@ -4085,7 +4085,7 @@ class PrivacyListWindow:
model = self.edit_type_group_combobox.get_model()
count = 0
- for group in gajim.groups[self.account]:
+ for group in app.groups[self.account]:
self.list_of_groups[group] = count
count += 1
model.append([group])
@@ -4093,9 +4093,9 @@ class PrivacyListWindow:
self.window.set_title(title)
- gajim.ged.register_event_handler('privacy-list-received', ged.GUI1,
+ app.ged.register_event_handler('privacy-list-received', ged.GUI1,
self._nec_privacy_list_received)
- gajim.ged.register_event_handler('privacy-list-active-default',
+ app.ged.register_event_handler('privacy-list-active-default',
ged.GUI1, self._nec_privacy_list_active_default)
self.window.show_all()
@@ -4109,11 +4109,11 @@ class PrivacyListWindow:
def on_privacy_list_edit_window_destroy(self, widget):
key_name = 'privacy_list_%s' % self.privacy_list_name
- if key_name in gajim.interface.instances[self.account]:
- del gajim.interface.instances[self.account][key_name]
- gajim.ged.remove_event_handler('privacy-list-received', ged.GUI1,
+ if key_name in app.interface.instances[self.account]:
+ del app.interface.instances[self.account][key_name]
+ app.ged.remove_event_handler('privacy-list-received', ged.GUI1,
self._nec_privacy_list_received)
- gajim.ged.remove_event_handler('privacy-list-active-default',
+ app.ged.remove_event_handler('privacy-list-active-default',
ged.GUI1, self._nec_privacy_list_active_default)
def _nec_privacy_list_active_default(self, obj):
@@ -4161,7 +4161,7 @@ class PrivacyListWindow:
self.privacy_list_active_checkbutton.set_sensitive(True)
self.privacy_list_default_checkbutton.set_sensitive(True)
self.reset_fields()
- gajim.connections[self.account].get_active_default_lists()
+ app.connections[self.account].get_active_default_lists()
def _nec_privacy_list_received(self, obj):
if obj.conn.name != self.account:
@@ -4171,7 +4171,7 @@ class PrivacyListWindow:
self.privacy_list_received(obj.rules)
def refresh_rules(self):
- gajim.connections[self.account].get_privacy_list(self.privacy_list_name)
+ app.connections[self.account].get_privacy_list(self.privacy_list_name)
def on_delete_rule_button_clicked(self, widget):
model = self.list_of_rules_combobox.get_model()
@@ -4181,13 +4181,13 @@ class PrivacyListWindow:
for rule in self.global_rules:
if rule != _rule:
tags.append(self.global_rules[rule])
- gajim.connections[self.account].set_privacy_list(
+ app.connections[self.account].set_privacy_list(
self.privacy_list_name, tags)
self.privacy_list_received(tags)
self.add_edit_vbox.hide()
if not tags: # we removed latest rule
- if 'privacy_lists' in gajim.interface.instances[self.account]:
- win = gajim.interface.instances[self.account]['privacy_lists']
+ if 'privacy_lists' in app.interface.instances[self.account]:
+ win = app.interface.instances[self.account]['privacy_lists']
win.remove_privacy_list_from_combobox(self.privacy_list_name)
win.draw_widgets()
@@ -4275,17 +4275,17 @@ class PrivacyListWindow:
def on_privacy_list_active_checkbutton_toggled(self, widget):
if widget.get_active():
- gajim.connections[self.account].set_active_list(
+ app.connections[self.account].set_active_list(
self.privacy_list_name)
else:
- gajim.connections[self.account].set_active_list(None)
+ app.connections[self.account].set_active_list(None)
def on_privacy_list_default_checkbutton_toggled(self, widget):
if widget.get_active():
- gajim.connections[self.account].set_default_list(
+ app.connections[self.account].set_default_list(
self.privacy_list_name)
else:
- gajim.connections[self.account].set_default_list(None)
+ app.connections[self.account].set_default_list(None)
def on_new_rule_button_clicked(self, widget):
self.reset_fields()
@@ -4357,12 +4357,12 @@ class PrivacyListWindow:
else:
tags.append(current_tags)
- gajim.connections[self.account].set_privacy_list(
+ app.connections[self.account].set_privacy_list(
self.privacy_list_name, tags)
self.refresh_rules()
self.add_edit_vbox.hide()
- if 'privacy_lists' in gajim.interface.instances[self.account]:
- win = gajim.interface.instances[self.account]['privacy_lists']
+ if 'privacy_lists' in app.interface.instances[self.account]:
+ win = app.interface.instances[self.account]['privacy_lists']
win.add_privacy_list_to_combobox(self.privacy_list_name)
win.draw_widgets()
@@ -4405,16 +4405,16 @@ class PrivacyListsWindow:
self.enabled = True
- if len(gajim.connections) > 1:
+ if len(app.connections) > 1:
title = _('Privacy Lists for %s') % self.account
else:
title = _('Privacy Lists')
self.window.set_title(title)
- gajim.ged.register_event_handler('privacy-lists-received', ged.GUI1,
+ app.ged.register_event_handler('privacy-lists-received', ged.GUI1,
self._nec_privacy_lists_received)
- gajim.ged.register_event_handler('privacy-lists-removed', ged.GUI1,
+ app.ged.register_event_handler('privacy-lists-removed', ged.GUI1,
self._nec_privacy_lists_removed)
self.window.show_all()
@@ -4426,11 +4426,11 @@ class PrivacyListsWindow:
self.window.destroy()
def on_privacy_lists_first_window_destroy(self, widget):
- if 'privacy_lists' in gajim.interface.instances[self.account]:
- del gajim.interface.instances[self.account]['privacy_lists']
- gajim.ged.remove_event_handler('privacy-lists-received', ged.GUI1,
+ if 'privacy_lists' in app.interface.instances[self.account]:
+ del app.interface.instances[self.account]['privacy_lists']
+ app.ged.remove_event_handler('privacy-lists-received', ged.GUI1,
self._nec_privacy_lists_received)
- gajim.ged.remove_event_handler('privacy-lists-removed', ged.GUI1,
+ app.ged.remove_event_handler('privacy-lists-removed', ged.GUI1,
self._nec_privacy_lists_removed)
def remove_privacy_list_from_combobox(self, privacy_list):
@@ -4472,7 +4472,7 @@ class PrivacyListsWindow:
def on_delete_privacy_list_button_clicked(self, widget):
active_list = self.privacy_lists_save[
self.list_of_privacy_lists_combobox.get_active()]
- gajim.connections[self.account].del_privacy_list(active_list)
+ app.connections[self.account].del_privacy_list(active_list)
def privacy_list_removed(self, active_list):
self.privacy_lists_save.remove(active_list)
@@ -4497,7 +4497,7 @@ class PrivacyListsWindow:
self.privacy_lists_received(obj.lists_list)
def privacy_lists_refresh(self):
- gajim.connections[self.account].get_privacy_lists()
+ app.connections[self.account].get_privacy_lists()
def on_new_privacy_list_button_clicked(self, widget):
name = self.new_privacy_list_entry.get_text()
@@ -4507,10 +4507,10 @@ class PrivacyListsWindow:
transient_for=self.window)
return
key_name = 'privacy_list_%s' % name
- if key_name in gajim.interface.instances[self.account]:
- gajim.interface.instances[self.account][key_name].window.present()
+ if key_name in app.interface.instances[self.account]:
+ app.interface.instances[self.account][key_name].window.present()
else:
- gajim.interface.instances[self.account][key_name] = \
+ app.interface.instances[self.account][key_name] = \
PrivacyListWindow(self.account, name, 'NEW')
self.new_privacy_list_entry.set_text('')
@@ -4521,10 +4521,10 @@ class PrivacyListsWindow:
name = self.privacy_lists_save[
self.list_of_privacy_lists_combobox.get_active()]
key_name = 'privacy_list_%s' % name
- if key_name in gajim.interface.instances[self.account]:
- gajim.interface.instances[self.account][key_name].window.present()
+ if key_name in app.interface.instances[self.account]:
+ app.interface.instances[self.account][key_name].window.present()
else:
- gajim.interface.instances[self.account][key_name] = \
+ app.interface.instances[self.account][key_name] = \
PrivacyListWindow(self.account, name, 'EDIT')
class InvitationReceivedDialog:
@@ -4537,7 +4537,7 @@ class InvitationReceivedDialog:
self.is_continued = is_continued
self.contact_fjid = contact_fjid
- jid = gajim.get_jid_without_resource(contact_fjid)
+ jid = app.get_jid_without_resource(contact_fjid)
pritext = _('''You are invited to a groupchat''')
#Don't translate $Contact
@@ -4546,7 +4546,7 @@ class InvitationReceivedDialog:
else:
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 = app.contacts.get_first_contact_from_jid(account, jid)
contact_text = contact and contact.name or jid
sectext = i18n.direction_mark + sectext.replace('$Contact',
contact_text)
@@ -4560,8 +4560,8 @@ class InvitationReceivedDialog:
def on_yes(checked, text):
try:
if self.is_continued:
- gajim.interface.join_gc_room(self.account, self.room_jid,
- gajim.nicks[self.account], self.password,
+ app.interface.join_gc_room(self.account, self.room_jid,
+ app.nicks[self.account], self.password,
is_continued=True)
else:
JoinGroupchatWindow(self.account, self.room_jid,
@@ -4570,7 +4570,7 @@ class InvitationReceivedDialog:
pass
def on_no(text):
- gajim.connections[account].decline_invitation(self.room_jid,
+ app.connections[account].decline_invitation(self.room_jid,
self.contact_fjid, text)
dlg = YesNoDialog(pritext, sectext,
@@ -4624,7 +4624,7 @@ class ClientCertChooserDialog(FileChooserDialog):
FileChooserDialog.__init__(self,
title_text=_('Choose Client Cert #PCKS12'),
- transient_for=gajim.interface.instances['accounts'].window,
+ transient_for=app.interface.instances['accounts'].window,
action=Gtk.FileChooserAction.OPEN,
buttons=(Gtk.STOCK_CANCEL, Gtk.ResponseType.CANCEL,
Gtk.STOCK_OPEN, Gtk.ResponseType.OK),
@@ -4670,7 +4670,7 @@ class SoundChooserDialog(FileChooserDialog):
buttons=(Gtk.STOCK_CANCEL, Gtk.ResponseType.CANCEL,
Gtk.STOCK_OPEN, Gtk.ResponseType.OK),
default_response=Gtk.ResponseType.OK,
- current_folder=gajim.config.get('last_sounds_dir'),
+ current_folder=app.config.get('last_sounds_dir'),
on_response_ok=(on_ok, on_response_ok),
on_response_cancel=on_response_cancel,
transient_for=transient_for)
@@ -4906,12 +4906,12 @@ class TransformChatToMUC:
self.server_list_comboboxentry.add_attribute(cell, 'text', 0)
# get the muc server of our server
- if 'jabber' in gajim.connections[account].muc_jid:
- server_list.append(gajim.connections[account].muc_jid['jabber'])
+ if 'jabber' in app.connections[account].muc_jid:
+ server_list.append(app.connections[account].muc_jid['jabber'])
# add servers or recently joined groupchats
- recently_groupchat = gajim.config.get('recently_groupchat').split()
+ recently_groupchat = app.config.get('recently_groupchat').split()
for g in recently_groupchat:
- server = gajim.get_server_from_jid(g)
+ server = app.get_server_from_jid(g)
if server not in server_list and not server.startswith('irc'):
server_list.append(server)
# add a default server
@@ -4942,23 +4942,23 @@ class TransformChatToMUC:
# transports, zeroconf contacts, minimized groupchats
def invitable(contact, contact_transport=None):
return (contact.jid not in self.auto_jids and
- contact.jid != gajim.get_jid_from_account(self.account) and
- contact.jid not in gajim.interface.minimized_controls[account] and
+ contact.jid != app.get_jid_from_account(self.account) and
+ contact.jid not in app.interface.minimized_controls[account] and
not contact.is_transport() and
contact_transport in ('jabber', None))
# set jabber id and pseudos
- for account in gajim.contacts.get_accounts():
- if gajim.connections[account].is_zeroconf:
+ for account in app.contacts.get_accounts():
+ if app.connections[account].is_zeroconf:
continue
- for jid in gajim.contacts.get_jid_list(account):
- contact = gajim.contacts.get_contact_with_highest_priority(
+ for jid in app.contacts.get_jid_list(account):
+ contact = app.contacts.get_contact_with_highest_priority(
account, jid)
- contact_transport = gajim.get_transport_name_from_jid(jid)
+ contact_transport = app.get_transport_name_from_jid(jid)
# Add contact if it can be invited
if invitable(contact, contact_transport) and \
contact.show not in ('offline', 'error'):
- img = gajim.interface.jabber_state_images['16'][contact.show]
+ img = app.interface.jabber_state_images['16'][contact.show]
name = contact.name
if name == '':
name = jid.split('@')[0]
@@ -4968,9 +4968,9 @@ class TransformChatToMUC:
path = self.store.get_path(iter_)
self.guests_treeview.get_selection().select_path(path)
- gajim.ged.register_event_handler('unique-room-id-supported', ged.GUI1,
+ app.ged.register_event_handler('unique-room-id-supported', ged.GUI1,
self._nec_unique_room_id_supported)
- gajim.ged.register_event_handler('unique-room-id-not-supported',
+ app.ged.register_event_handler('unique-room-id-not-supported',
ged.GUI1, self._nec_unique_room_id_not_supported)
# show all
@@ -4979,9 +4979,9 @@ class TransformChatToMUC:
self.xml.connect_signals(self)
def on_chat_to_muc_window_destroy(self, widget):
- gajim.ged.remove_event_handler('unique-room-id-supported', ged.GUI1,
+ app.ged.remove_event_handler('unique-room-id-supported', ged.GUI1,
self._nec_unique_room_id_supported)
- gajim.ged.remove_event_handler('unique-room-id-not-supported', ged.GUI1,
+ app.ged.remove_event_handler('unique-room-id-not-supported', ged.GUI1,
self._nec_unique_room_id_not_supported)
self.instances.remove(self)
@@ -4995,7 +4995,7 @@ class TransformChatToMUC:
server = model[row][0].strip()
if server == '':
return
- gajim.connections[self.account].check_unique_room_id_support(server, self)
+ app.connections[self.account].check_unique_room_id_support(server, self)
def _nec_unique_room_id_supported(self, obj):
if obj.instance != self:
@@ -5008,11 +5008,11 @@ class TransformChatToMUC:
for guest in self.auto_jids:
guest_list.append(guest)
room_jid = obj.room_id + '@' + obj.server
- gajim.automatic_rooms[self.account][room_jid] = {}
- gajim.automatic_rooms[self.account][room_jid]['invities'] = guest_list
- gajim.automatic_rooms[self.account][room_jid]['continue_tag'] = True
- gajim.interface.join_gc_room(self.account, room_jid,
- gajim.nicks[self.account], None, is_continued=True)
+ app.automatic_rooms[self.account][room_jid] = {}
+ app.automatic_rooms[self.account][room_jid]['invities'] = guest_list
+ app.automatic_rooms[self.account][room_jid]['continue_tag'] = True
+ app.interface.join_gc_room(self.account, room_jid,
+ app.nicks[self.account], None, is_continued=True)
self.window.destroy()
def on_cancel_button_clicked(self, widget):
@@ -5021,7 +5021,7 @@ class TransformChatToMUC:
def _nec_unique_room_id_not_supported(self, obj):
if obj.instance != self:
return
- obj.room_id = gajim.nicks[self.account].lower().replace(' ', '') + \
+ obj.room_id = app.nicks[self.account].lower().replace(' ', '') + \
str(randrange(9999999))
self._nec_unique_room_id_supported(obj)
@@ -5074,8 +5074,8 @@ class VoIPCallReceivedDialog(object):
xml = gtkgui_helpers.get_gtk_builder('voip_call_received_dialog.ui')
xml.connect_signals(self)
- jid = gajim.get_jid_without_resource(self.fjid)
- contact = gajim.contacts.get_first_contact_from_jid(account, jid)
+ jid = app.get_jid_without_resource(self.fjid)
+ contact = app.contacts.get_first_contact_from_jid(account, jid)
if contact and contact.name:
self.contact_text = '%s (%s)' % (contact.name, jid)
else:
@@ -5132,18 +5132,18 @@ class VoIPCallReceivedDialog(object):
def on_voip_call_received_messagedialog_response(self, dialog, response):
# we've got response from user, either stop connecting or accept the call
- session = gajim.connections[self.account].get_jingle_session(self.fjid,
+ session = app.connections[self.account].get_jingle_session(self.fjid,
self.sid)
if not session:
dialog.destroy()
return
if response == Gtk.ResponseType.YES:
#TODO: Ensure that ctrl.contact.resource == resource
- jid = gajim.get_jid_without_resource(self.fjid)
- resource = gajim.get_resource_from_jid(self.fjid)
- ctrl = (gajim.interface.msg_win_mgr.get_control(self.fjid, self.account)
- or gajim.interface.msg_win_mgr.get_control(jid, self.account)
- or gajim.interface.new_chat_from_jid(self.account, jid))
+ jid = app.get_jid_without_resource(self.fjid)
+ resource = app.get_resource_from_jid(self.fjid)
+ ctrl = (app.interface.msg_win_mgr.get_control(self.fjid, self.account)
+ or app.interface.msg_win_mgr.get_control(jid, self.account)
+ or app.interface.new_chat_from_jid(self.account, jid))
# Chat control opened, update content's status
audio = session.get_content('audio')
@@ -5153,7 +5153,7 @@ class VoIPCallReceivedDialog(object):
if video and not video.negotiated:
video_hbox = ctrl.xml.get_object('video_hbox')
video_hbox.set_no_show_all(False)
- if gajim.config.get('video_see_self'):
+ if app.config.get('video_see_self'):
fixed = ctrl.xml.get_object('outgoing_fixed')
fixed.set_no_show_all(False)
video_hbox.show_all()
@@ -5166,7 +5166,7 @@ class VoIPCallReceivedDialog(object):
get_property('window').get_xid()
content = session.get_content('video')
# move outgoing stream to chat window
- if gajim.config.get('video_see_self'):
+ if app.config.get('video_see_self'):
ctrl.xml.get_object('outgoing_drawingarea').realize()
if os.name == 'nt':
out_xid = ctrl.xml.get_object('outgoing_drawingarea').\
diff --git a/gajim/disco.py b/gajim/disco.py
index 0832e286e..43f8c29ad 100644
--- a/gajim/disco.py
+++ b/gajim/disco.py
@@ -52,18 +52,18 @@ from gi.repository import Gdk
from gi.repository import GdkPixbuf
from gi.repository import Pango
-import dialogs
-import gtkgui_helpers
-import groups
-import adhoc_commands
-import search_window
-import gui_menu_builder
+from gajim import dialogs
+from gajim import gtkgui_helpers
+from gajim import groups
+from gajim import adhoc_commands
+from gajim import search_window
+from gajim import gui_menu_builder
-from common import gajim
+from gajim.common import app
import nbxmpp
-from common.exceptions import GajimGeneralException
-from common import helpers
-from common import ged
+from gajim.common.exceptions import GajimGeneralException
+from gajim.common import helpers
+from gajim.common import ged
LABELS = {
1: _('This service has not yet responded with detailed information'),
@@ -264,23 +264,23 @@ class ServicesCache:
self._info = CacheDictionary(0, getrefresh = False)
self._subscriptions = CacheDictionary(5, getrefresh=False)
self._cbs = {}
- gajim.ged.register_event_handler('agent-items-received', ged.GUI1,
+ app.ged.register_event_handler('agent-items-received', ged.GUI1,
self._nec_agent_items_received)
- gajim.ged.register_event_handler('agent-items-error-received', ged.GUI1,
+ app.ged.register_event_handler('agent-items-error-received', ged.GUI1,
self._nec_agent_items_error_received)
- gajim.ged.register_event_handler('agent-info-received', ged.GUI1,
+ app.ged.register_event_handler('agent-info-received', ged.GUI1,
self._nec_agent_info_received)
- gajim.ged.register_event_handler('agent-info-error-received', ged.GUI1,
+ app.ged.register_event_handler('agent-info-error-received', ged.GUI1,
self._nec_agent_info_error_received)
def __del__(self):
- gajim.ged.remove_event_handler('agent-items-received', ged.GUI1,
+ app.ged.remove_event_handler('agent-items-received', ged.GUI1,
self._nec_agent_items_received)
- gajim.ged.remove_event_handler('agent-items-error-received', ged.GUI1,
+ app.ged.remove_event_handler('agent-items-error-received', ged.GUI1,
self._nec_agent_items_error_received)
- gajim.ged.remove_event_handler('agent-info-received', ged.GUI1,
+ app.ged.remove_event_handler('agent-info-received', ged.GUI1,
self._nec_agent_info_received)
- gajim.ged.remove_event_handler('agent-info-error-received', ged.GUI1,
+ app.ged.remove_event_handler('agent-info-error-received', ged.GUI1,
self._nec_agent_info_error_received)
def cleanup(self):
@@ -397,7 +397,7 @@ class ServicesCache:
self._cbs[cbkey].append(cb)
else:
self._cbs[cbkey] = [cb]
- gajim.connections[self.account].discoverInfo(jid, node)
+ app.connections[self.account].discoverInfo(jid, node)
def get_items(self, jid, node, cb, force=False, nofetch=False, args=()):
"""
@@ -421,7 +421,7 @@ class ServicesCache:
self._cbs[cbkey].append(cb)
else:
self._cbs[cbkey] = [cb]
- gajim.connections[self.account].discoverItems(jid, node)
+ app.connections[self.account].discoverItems(jid, node)
def _nec_agent_info_received(self, obj):
"""
@@ -521,7 +521,7 @@ class ServiceDiscoveryWindow(object):
self._account = account
self.parent = parent
if not jid:
- jid = gajim.config.get_per('accounts', account, 'hostname')
+ jid = app.config.get_per('accounts', account, 'hostname')
node = ''
self.jid = None
@@ -532,17 +532,17 @@ class ServiceDiscoveryWindow(object):
self.reloading = False
# Check connection
- if gajim.connections[account].connected < 2:
+ if app.connections[account].connected < 2:
dialogs.ErrorDialog(_('You are not connected to the server'),
_('Without a connection, you can not browse available services'))
raise RuntimeError('You must be connected to browse services')
# Get a ServicesCache object.
try:
- self.cache = gajim.connections[account].services_cache
+ self.cache = app.connections[account].services_cache
except AttributeError:
self.cache = ServicesCache(account)
- gajim.connections[account].services_cache = self.cache
+ app.connections[account].services_cache = self.cache
if initial_identities:
self.cache._on_agent_info(jid, node, initial_identities, [], None)
@@ -572,7 +572,7 @@ _('Without a connection, you can not browse available services'))
self.address_comboboxtext_entry = self.xml.get_object(
'address_entry')
- self.latest_addresses = gajim.config.get(
+ self.latest_addresses = app.config.get(
'latest_disco_addresses').split()
if jid in self.latest_addresses:
self.latest_addresses.remove(jid)
@@ -630,9 +630,9 @@ _('Without a connection, you can not browse available services'))
self.banner_icon.hide() # Just clearing it doesn't work
def _set_window_banner_text(self, text, text_after = None):
- theme = gajim.config.get('roster_theme')
- bannerfont = gajim.config.get_per('themes', theme, 'bannerfont')
- bannerfontattrs = gajim.config.get_per('themes', theme,
+ theme = app.config.get('roster_theme')
+ bannerfont = app.config.get_per('themes', theme, 'bannerfont')
+ bannerfontattrs = app.config.get_per('themes', theme,
'bannerfontattrs')
if bannerfont:
@@ -671,8 +671,8 @@ _('Without a connection, you can not browse available services'))
# self.browser._get_agent_address() would break when no browser.
addr = get_agent_address(self.jid, self.node)
- if addr in gajim.interface.instances[self.account]['disco']:
- del gajim.interface.instances[self.account]['disco'][addr]
+ if addr in app.interface.instances[self.account]['disco']:
+ del app.interface.instances[self.account]['disco'][addr]
if self.browser:
self.window.hide()
@@ -710,10 +710,10 @@ _('Without a connection, you can not browse available services'))
# Update the window list
if self.jid:
old_addr = get_agent_address(self.jid, self.node)
- if old_addr in gajim.interface.instances[self.account]['disco']:
- del gajim.interface.instances[self.account]['disco'][old_addr]
+ if old_addr in app.interface.instances[self.account]['disco']:
+ del app.interface.instances[self.account]['disco'][old_addr]
addr = get_agent_address(jid, node)
- gajim.interface.instances[self.account]['disco'][addr] = self
+ app.interface.instances[self.account]['disco'][addr] = self
# We need to store these, self.browser is not always available.
self.jid = jid
self.node = node
@@ -752,7 +752,7 @@ _('Without a connection, you can not browse available services'))
Open an agent. By default, this happens in a new window
"""
try:
- win = gajim.interface.instances[self.account]['disco']\
+ win = app.interface.instances[self.account]['disco']\
[get_agent_address(jid, node)]
win.window.present()
return
@@ -802,7 +802,7 @@ _('Without a connection, you can not browse available services'))
self.address_comboboxtext.get_model().clear()
for j in self.latest_addresses:
self.address_comboboxtext.append_text(j)
- gajim.config.set('latest_disco_addresses',
+ app.config.set('latest_disco_addresses',
' '.join(self.latest_addresses))
self.travel(jid, '')
@@ -1187,7 +1187,7 @@ class ToplevelAgentBrowser(AgentBrowser):
descr = "%s" % addr
# Guess which kind of service this is
identities = []
- type_ = gajim.get_transport_name_from_jid(self.jid,
+ type_ = app.get_transport_name_from_jid(self.jid,
use_config_setting=False)
if type_:
identity = {'category': '_jid', 'type': type_}
@@ -1227,8 +1227,8 @@ class ToplevelAgentBrowser(AgentBrowser):
# Normal/succes
cell.set_property('foreground_set', False)
else:
- theme = gajim.config.get('roster_theme')
- bgcolor = gajim.config.get_per('themes', theme, 'groupbgcolor')
+ theme = app.config.get('roster_theme')
+ bgcolor = app.config.get_per('themes', theme, 'groupbgcolor')
if bgcolor:
cell.set_property('cell_background_set', True)
cell.set_property('foreground_set', False)
@@ -1352,19 +1352,19 @@ class ToplevelAgentBrowser(AgentBrowser):
if not iter_:
return
service = model[iter_][0]
- if service in gajim.interface.instances[self.account]['search']:
- gajim.interface.instances[self.account]['search'][service].window.\
+ if service in app.interface.instances[self.account]['search']:
+ app.interface.instances[self.account]['search'][service].window.\
present()
else:
- gajim.interface.instances[self.account]['search'][service] = \
+ app.interface.instances[self.account]['search'][service] = \
search_window.SearchWindow(self.account, service)
def cleanup(self):
AgentBrowser.cleanup(self)
def update_theme(self):
- theme = gajim.config.get('roster_theme')
- bgcolor = gajim.config.get_per('themes', theme, 'groupbgcolor')
+ theme = app.config.get('roster_theme')
+ bgcolor = app.config.get_per('themes', theme, 'groupbgcolor')
if bgcolor:
self._renderer.set_property('cell-background', bgcolor)
self.window.services_treeview.queue_draw()
@@ -1390,7 +1390,7 @@ class ToplevelAgentBrowser(AgentBrowser):
return
jid = model[iter_][0]
if jid:
- gajim.connections[self.account].request_register_agent_info(jid)
+ app.connections[self.account].request_register_agent_info(jid)
self.window.destroy(chain = True)
def on_join_button_clicked(self, widget):
@@ -1402,13 +1402,13 @@ class ToplevelAgentBrowser(AgentBrowser):
if not iter_:
return
service = model[iter_][0]
- if 'join_gc' not in gajim.interface.instances[self.account]:
+ if 'join_gc' not in app.interface.instances[self.account]:
try:
dialogs.JoinGroupchatWindow(self.account, service)
except GajimGeneralException:
pass
else:
- gajim.interface.instances[self.account]['join_gc'].window.present()
+ app.interface.instances[self.account]['join_gc'].window.present()
def update_actions(self):
if self.execute_button:
@@ -1435,7 +1435,7 @@ class ToplevelAgentBrowser(AgentBrowser):
# Guess what kind of service we're dealing with
if self.browse_button:
jid = model[iter_][0]
- type_ = gajim.get_transport_name_from_jid(jid,
+ type_ = app.get_transport_name_from_jid(jid,
use_config_setting = False)
if type_:
identity = {'category': '_jid', 'type': type_}
@@ -1460,9 +1460,9 @@ class ToplevelAgentBrowser(AgentBrowser):
jid != self.jid:
# We can register this agent
registered_transports = []
- jid_list = gajim.contacts.get_jid_list(self.account)
+ jid_list = app.contacts.get_jid_list(self.account)
for jid_ in jid_list:
- contact = gajim.contacts.get_first_contact_from_jid(
+ contact = app.contacts.get_first_contact_from_jid(
self.account, jid_)
if _('Transports') in contact.groups:
registered_transports.append(jid_)
@@ -1602,7 +1602,7 @@ class ToplevelAgentBrowser(AgentBrowser):
descr = "%s" % addr
# Guess which kind of service this is
identities = []
- type_ = gajim.get_transport_name_from_jid(jid,
+ type_ = app.get_transport_name_from_jid(jid,
use_config_setting = False)
if type_:
identity = {'category': '_jid', 'type': type_}
@@ -1774,7 +1774,7 @@ class MucBrowser(AgentBrowser):
model, iter = self.window.services_treeview.get_selection().get_selected()
if not iter:
return
- name = gajim.config.get_per('accounts', self.account, 'name')
+ name = app.config.get_per('accounts', self.account, 'name')
room_jid = model[iter][0]
bm = {
'name': room_jid.split('@')[0],
@@ -1785,15 +1785,15 @@ class MucBrowser(AgentBrowser):
'nick': name
}
- for bookmark in gajim.connections[self.account].bookmarks:
+ for bookmark in app.connections[self.account].bookmarks:
if bookmark['jid'] == bm['jid']:
dialogs.ErrorDialog( _('Bookmark already set'),
_('Group Chat "%s" is already in your bookmarks.') % bm['jid'],
transient_for=self.window.window)
return
- gajim.connections[self.account].bookmarks.append(bm)
- gajim.connections[self.account].store_bookmarks()
+ app.connections[self.account].bookmarks.append(bm)
+ app.connections[self.account].store_bookmarks()
gui_menu_builder.build_bookmark_menu(self.account)
@@ -1811,15 +1811,15 @@ class MucBrowser(AgentBrowser):
if not iter_:
return
service = model[iter_][0]
- if 'join_gc' not in gajim.interface.instances[self.account]:
+ if 'join_gc' not in app.interface.instances[self.account]:
try:
dialogs.JoinGroupchatWindow(self.account, service)
except GajimGeneralException:
pass
else:
- gajim.interface.instances[self.account]['join_gc']._set_room_jid(
+ app.interface.instances[self.account]['join_gc']._set_room_jid(
service)
- gajim.interface.instances[self.account]['join_gc'].window.present()
+ app.interface.instances[self.account]['join_gc'].window.present()
def update_actions(self):
sens = self.window.services_treeview.get_selection().count_selected_rows()
@@ -1968,7 +1968,7 @@ class DiscussionGroupsBrowser(AgentBrowser):
self.subscribe_button = None
self.unsubscribe_button = None
- gajim.connections[account].send_pb_subscription_query(jid,
+ app.connections[account].send_pb_subscription_query(jid,
self._on_pep_subscriptions)
def _create_treemodel(self):
@@ -2141,7 +2141,7 @@ class DiscussionGroupsBrowser(AgentBrowser):
groupnode = model.get_value(iter_, 1) # 1 = groupnode
- gajim.connections[self.account].send_pb_subscribe(self.jid, groupnode,
+ app.connections[self.account].send_pb_subscribe(self.jid, groupnode,
self._on_pep_subscribe, groupnode)
def on_unsubscribe_button_clicked(self, widget):
@@ -2153,7 +2153,7 @@ class DiscussionGroupsBrowser(AgentBrowser):
groupnode = model.get_value(iter_, 1) # 1 = groupnode
- gajim.connections[self.account].send_pb_unsubscribe(self.jid, groupnode,
+ app.connections[self.account].send_pb_unsubscribe(self.jid, groupnode,
self._on_pep_unsubscribe, groupnode)
def _on_pep_subscriptions(self, conn, request):
diff --git a/gajim/features_window.py b/gajim/features_window.py
index 552e6699b..50ce25bdb 100644
--- a/gajim/features_window.py
+++ b/gajim/features_window.py
@@ -26,10 +26,10 @@
import os
import gi
from gi.repository import Gtk, Gdk
-import gtkgui_helpers
+from gajim import gtkgui_helpers
-from common import gajim
-from common.i18n import Q_
+from gajim.common import app
+from gajim.common.i18n import Q_
class FeaturesWindow:
"""
@@ -39,7 +39,7 @@ class FeaturesWindow:
def __init__(self):
self.xml = gtkgui_helpers.get_gtk_builder('features_window.ui')
self.window = self.xml.get_object('features_window')
- self.window.set_transient_for(gajim.interface.roster.window)
+ self.window.set_transient_for(app.interface.roster.window)
treeview = self.xml.get_object('features_treeview')
self.desc_label = self.xml.get_object('feature_desc_label')
@@ -169,17 +169,17 @@ class FeaturesWindow:
return True
def zeroconf_available(self):
- return gajim.HAVE_ZEROCONF
+ return app.HAVE_ZEROCONF
def dbus_available(self):
- from common import dbus_support
+ from gajim.common import dbus_support
return dbus_support.supported
def gpg_available(self):
- return gajim.HAVE_GPG
+ return app.HAVE_GPG
def network_watcher_available(self):
- import network_watcher
+ from gajim import network_watcher
return network_watcher.supported
def some_keyring_available(self):
@@ -194,7 +194,7 @@ class FeaturesWindow:
def speller_available(self):
try:
- __import__('gtkspell')
+ __import__('gajim.gtkspell')
except ValueError:
return False
return True
@@ -202,7 +202,7 @@ class FeaturesWindow:
def notification_available(self):
if os.name == 'nt':
return False
- from common import dbus_support
+ from gajim.common import dbus_support
if self.dbus_available() and dbus_support.get_notifications_interface():
return True
try:
@@ -212,11 +212,11 @@ class FeaturesWindow:
return True
def idle_available(self):
- from common import sleepy
+ from gajim.common import sleepy
return sleepy.SUPPORTED
def pycrypto_available(self):
- return gajim.HAVE_PYCRYPTO
+ return app.HAVE_PYCRYPTO
def docutils_available(self):
try:
@@ -226,13 +226,13 @@ class FeaturesWindow:
return True
def farstream_available(self):
- return gajim.HAVE_FARSTREAM
+ return app.HAVE_FARSTREAM
def gupnp_igd_available(self):
- return gajim.HAVE_UPNP_IGD
+ return app.HAVE_UPNP_IGD
def upower_available(self):
if os.name == 'nt':
return False
- import upower_listener
+ from gajim import upower_listener
return upower_listener.supported
diff --git a/gajim/filetransfers_window.py b/gajim/filetransfers_window.py
index f41ccc5c6..0f3325158 100644
--- a/gajim/filetransfers_window.py
+++ b/gajim/filetransfers_window.py
@@ -32,14 +32,14 @@ import time
from enum import IntEnum, unique
from datetime import datetime
-import gtkgui_helpers
-import tooltips
-import dialogs
+from gajim import gtkgui_helpers
+from gajim import tooltips
+from gajim import dialogs
-from common import gajim
-from common import helpers
-from common.file_props import FilesProp
-from common.protocol.bytestream import (is_transfer_active, is_transfer_paused,
+from gajim.common import app
+from gajim.common import helpers
+from gajim.common.file_props import FilesProp
+from gajim.common.protocol.bytestream import (is_transfer_active, is_transfer_paused,
is_transfer_stopped)
from nbxmpp.protocol import NS_JINGLE_FILE_TRANSFER_5
import logging
@@ -70,7 +70,7 @@ class FileTransfersWindow:
self.notify_ft_checkbox = self.xml.get_object(
'notify_ft_complete_checkbox')
- shall_notify = gajim.config.get('notify_on_file_complete')
+ shall_notify = app.config.get('notify_on_file_complete')
self.notify_ft_checkbox.set_active(shall_notify)
self.model = Gtk.ListStore(GdkPixbuf.Pixbuf, str, str, str, str, int,
int, str)
@@ -193,7 +193,7 @@ class FileTransfersWindow:
helpers.convert_bytes(file_props.size)
if file_props.type_ == 'r':
jid = file_props.sender.split('/')[0]
- sender_name = gajim.contacts.get_first_contact_from_jid(
+ sender_name = app.contacts.get_first_contact_from_jid(
file_props.tt_account, jid).get_shown_name()
sender = sender_name
else:
@@ -203,7 +203,7 @@ class FileTransfersWindow:
sectext += '\n\t' + _('Recipient: ')
if file_props.type_ == 's':
jid = file_props.receiver.split('/')[0]
- receiver_name = gajim.contacts.get_first_contact_from_jid(
+ receiver_name = app.contacts.get_first_contact_from_jid(
file_props.tt_account, jid).get_shown_name()
recipient = receiver_name
else:
@@ -212,7 +212,7 @@ class FileTransfersWindow:
sectext += recipient
if file_props.type_ == 'r':
sectext += '\n\t' + _('Saved in: %s') % file_path
- dialog = dialogs.HigDialog(gajim.interface.roster.window, Gtk.MessageType.INFO,
+ dialog = dialogs.HigDialog(app.interface.roster.window, Gtk.MessageType.INFO,
Gtk.ButtonsType.NONE, _('File transfer completed'), sectext)
if file_props.type_ == 'r':
button = Gtk.Button.new_with_mnemonic(_('Open _Containing Folder'))
@@ -256,11 +256,11 @@ class FileTransfersWindow:
def on_yes(dummy, fjid, file_props, account):
# Delete old file
os.remove(file_props.file_name)
- jid, resource = gajim.get_room_and_nick_from_fjid(fjid)
+ jid, resource = app.get_room_and_nick_from_fjid(fjid)
if resource:
- contact = gajim.contacts.get_contact(account, jid, resource)
+ contact = app.contacts.get_contact(account, jid, resource)
else:
- contact = gajim.contacts.get_contact_with_highest_priority(
+ contact = app.contacts.get_contact_with_highest_priority(
account, jid)
fjid = contact.get_full_jid()
# Request the file to the sender
@@ -273,7 +273,7 @@ class FileTransfersWindow:
new_file_props.date = file_props.date
new_file_props.hash_ = file_props.hash_
new_file_props.type_ = 'r'
- tsid = gajim.connections[account].start_file_transfer(fjid,
+ tsid = app.connections[account].start_file_transfer(fjid,
new_file_props,
True)
new_file_props.transport_sid = tsid
@@ -294,7 +294,7 @@ class FileTransfersWindow:
win.set_shadow_type(Gtk.ShadowType.IN)
win.set_policy(Gtk.PolicyType.NEVER, Gtk.PolicyType.NEVER)
- from message_textview import MessageTextView
+ from gajim.message_textview import MessageTextView
desc_entry = MessageTextView()
win.add(desc_entry)
@@ -309,17 +309,17 @@ class FileTransfersWindow:
and file_dir is None:
file_dir = os.path.dirname(file_path)
if file_dir:
- gajim.config.set('last_send_dir', file_dir)
+ app.config.set('last_send_dir', file_dir)
dialog.destroy()
dialog = dialogs.FileChooserDialog(_('Choose File to Send…'),
Gtk.FileChooserAction.OPEN, (Gtk.STOCK_CANCEL, Gtk.ResponseType.CANCEL),
Gtk.ResponseType.OK,
True, # select multiple true as we can select many files to send
- gajim.config.get('last_send_dir'),
+ app.config.get('last_send_dir'),
on_response_ok=on_ok,
on_response_cancel=lambda e:dialog.destroy(),
- transient_for=gajim.interface.roster.window
+ transient_for=app.interface.roster.window
)
btn = Gtk.Button.new_with_mnemonic(_('_Send'))
@@ -351,7 +351,7 @@ class FileTransfersWindow:
if contact.find('/') == -1:
return
(jid, resource) = contact.split('/', 1)
- contact = gajim.contacts.create_contact(jid=jid, account=account,
+ contact = app.contacts.create_contact(jid=jid, account=account,
resource=resource)
file_name = os.path.split(file_path)[1]
file_props = self.get_send_file_props(account, contact,
@@ -360,24 +360,24 @@ class FileTransfersWindow:
return False
if contact.supports(NS_JINGLE_FILE_TRANSFER_5):
log.info("contact %s supports jingle file transfer"%(contact.get_full_jid()))
- gajim.connections[account].start_file_transfer(contact.get_full_jid(),
+ app.connections[account].start_file_transfer(contact.get_full_jid(),
file_props)
self.add_transfer(account, contact, file_props)
else:
log.info("contact does not support jingle file transfer")
file_props.transport_sid = file_props.sid
- gajim.connections[account].send_file_request(file_props)
+ app.connections[account].send_file_request(file_props)
self.add_transfer(account, contact, file_props)
return True
def _start_receive(self, file_path, account, contact, file_props):
file_dir = os.path.dirname(file_path)
if file_dir:
- gajim.config.set('last_save_dir', file_dir)
+ app.config.set('last_save_dir', file_dir)
file_props.file_name = file_path
file_props.type_ = 'r'
self.add_transfer(account, contact, file_props)
- gajim.connections[account].send_file_approval(file_props)
+ app.connections[account].send_file_approval(file_props)
def on_file_request_accepted(self, account, contact, file_props):
def on_ok(widget, account, contact, file_props):
@@ -426,7 +426,7 @@ class FileTransfersWindow:
def on_cancel(widget, account, contact, file_props):
dialog2.destroy()
- gajim.connections[account].send_file_rejection(file_props)
+ app.connections[account].send_file_rejection(file_props)
dialog2 = dialogs.FileChooserDialog(
title_text=_('Save File as…'),
@@ -434,7 +434,7 @@ class FileTransfersWindow:
buttons=(Gtk.STOCK_CANCEL, Gtk.ResponseType.CANCEL,
Gtk.STOCK_SAVE, Gtk.ResponseType.OK),
default_response=Gtk.ResponseType.OK,
- current_folder=gajim.config.get('last_save_dir'),
+ current_folder=app.config.get('last_save_dir'),
on_response_ok=(on_ok, account, contact, file_props),
on_response_cancel=(on_cancel, account, contact, file_props))
@@ -465,7 +465,7 @@ class FileTransfersWindow:
self.on_file_request_accepted(account, contact, file_props)
def on_response_cancel(account, file_props):
- gajim.connections[account].send_file_rejection(file_props)
+ app.connections[account].send_file_rejection(file_props)
dialog = dialogs.NonModalConfirmationDialog(prim_text, sec_text,
on_response_ok=(on_response_ok, account, contact, file_props),
@@ -579,24 +579,24 @@ class FileTransfersWindow:
if file_props.tt_account:
# file transfer is set
account = file_props.tt_account
- if account in gajim.connections:
+ if account in app.connections:
# there is a connection to the account
- gajim.connections[account].remove_transfer(file_props)
+ app.connections[account].remove_transfer(file_props)
if file_props.type_ == 'r': # we receive a file
other = file_props.sender
else: # we send a file
other = file_props.receiver
if isinstance(other, str):
- jid = gajim.get_jid_without_resource(other)
+ jid = app.get_jid_without_resource(other)
else: # It's a Contact instance
jid = other.jid
for ev_type in ('file-error', 'file-completed', 'file-request-error',
'file-send-error', 'file-stopped'):
- for event in gajim.events.get_events(account, jid, [ev_type]):
+ for event in app.events.get_events(account, jid, [ev_type]):
if event.file_props.sid == file_props.sid:
- gajim.events.remove_events(account, jid, event)
- gajim.interface.roster.draw_contact(jid, account)
- gajim.interface.roster.show_title()
+ app.events.remove_events(account, jid, event)
+ app.interface.roster.draw_contact(jid, account)
+ app.interface.roster.show_title()
FilesProp.deleteFileProp(file_props)
del(file_props)
@@ -945,9 +945,9 @@ class FileTransfersWindow:
sid = self.model[s_iter][Column.SID]
file_props = FilesProp.getFilePropByType(sid[0], sid[1:])
account = file_props.tt_account
- if account not in gajim.connections:
+ if account not in app.connections:
return
- con = gajim.connections[account]
+ con = app.connections[account]
# Check if we are in a IBB transfer
if file_props.direction:
con.CloseIBBStream(file_props)
@@ -980,7 +980,7 @@ class FileTransfersWindow:
self.tooltip.hide_tooltip()
def on_notify_ft_complete_checkbox_toggled(self, widget):
- gajim.config.set('notify_on_file_complete',
+ app.config.set('notify_on_file_complete',
widget.get_active())
def on_file_transfers_dialog_delete_event(self, widget, event):
diff --git a/gajim/gajim.py b/gajim/gajim.py
index 46630f3f6..99c44faec 100644
--- a/gajim/gajim.py
+++ b/gajim/gajim.py
@@ -50,9 +50,9 @@ gi.require_version('Gdk', '3.0')
gi.require_version('GObject', '2.0')
gi.require_version('Pango', '1.0')
from gi.repository import GLib, Gio, Gtk
-from common import i18n
-from common import logging_helpers
-from common import crypto
+from gajim.common import i18n
+from gajim.common import logging_helpers
+from gajim.common import crypto
try:
PYOPENSSL_PRNG_PRESENT = True
import OpenSSL.rand
@@ -114,7 +114,7 @@ class GajimApplication(Gtk.Application):
def do_startup(self):
Gtk.Application.do_startup(self)
- import gtkexcepthook
+ from gajim import gtkexcepthook
gtkexcepthook.init()
try:
@@ -130,18 +130,18 @@ class GajimApplication(Gtk.Application):
sys.exit(1)
# Create and initialize Application Paths & Databases
- from common import configpaths
+ from gajim.common import configpaths
configpaths.gajimpaths.init(
self.config_path, self.profile, self.profile_separation)
- from common import gajim
- from common import check_paths
- from common import exceptions
- from common import logger
- from common import caps_cache
+ from gajim.common import app
+ from gajim.common import check_paths
+ from gajim.common import exceptions
+ from gajim.common import logger
+ from gajim.common import caps_cache
try:
- gajim.logger = logger.Logger()
- caps_cache.initialize(gajim.logger)
+ app.logger = logger.Logger()
+ caps_cache.initialize(app.logger)
check_paths.check_and_possibly_create_paths()
except exceptions.DatabaseMalformed as error:
dlg = Gtk.MessageDialog(
@@ -209,7 +209,7 @@ class GajimApplication(Gtk.Application):
# Seed the OpenSSL pseudo random number generator from file and initialize
if PYOPENSSL_PRNG_PRESENT:
- self.rng_seed = gajim.gajimpaths['RNG_SEED']
+ self.rng_seed = app.gajimpaths['RNG_SEED']
# Seed from file
try:
OpenSSL.rand.load_file(self.rng_seed)
@@ -232,7 +232,7 @@ class GajimApplication(Gtk.Application):
sys.getfilesystemencoding(), locale.getpreferredencoding()))
# Set Application Menu
- gajim.app = self
+ app.app = self
path = os.path.join(configpaths.get('GUI'), 'application_menu.ui')
builder = Gtk.Builder()
builder.set_translation_domain(i18n.APP)
@@ -242,13 +242,13 @@ class GajimApplication(Gtk.Application):
def do_activate(self):
Gtk.Application.do_activate(self)
- from gui_interface import Interface
- import gtkgui_helpers
+ from gajim.gui_interface import Interface
+ from gajim import gtkgui_helpers
self.interface = Interface()
gtkgui_helpers.load_css()
self.interface.run(self)
self.add_actions()
- import gui_menu_builder
+ from gajim import gui_menu_builder
gui_menu_builder.build_accounts_menu()
def do_shutdown(self, *args):
@@ -264,8 +264,8 @@ class GajimApplication(Gtk.Application):
self.interface.roster.prepare_quit()
# Commit any outstanding SQL transactions
- from common import gajim
- gajim.logger.commit()
+ from gajim.common import app
+ app.logger.commit()
def do_handle_local_options(self, options: GLib.VariantDict) -> int:
@@ -283,7 +283,7 @@ class GajimApplication(Gtk.Application):
if options.contains('config-path'):
self.config_path = options.lookup_value('config-path').get_string()
if options.contains('version'):
- from common.defs import version
+ from gajim.common.defs import version
print(version)
return 0
if options.contains('quiet'):
@@ -322,7 +322,7 @@ class GajimApplication(Gtk.Application):
def add_actions(self):
''' Build Application Actions '''
- from app_actions import AppActions
+ from gajim.app_actions import AppActions
action = AppActions(self)
self.account_actions = [
@@ -368,8 +368,8 @@ class GajimApplication(Gtk.Application):
act.connect("activate", func)
self.add_action(act)
- from common import gajim
- accounts_list = sorted(gajim.contacts.get_accounts())
+ from gajim.common import app
+ accounts_list = sorted(app.contacts.get_accounts())
if not accounts_list:
return
if len(accounts_list) > 1:
diff --git a/gajim/gajim-remote.py b/gajim/gajim_remote.py
similarity index 99%
rename from gajim/gajim-remote.py
rename to gajim/gajim_remote.py
index d48adb228..eb94ad65d 100644
--- a/gajim/gajim-remote.py
+++ b/gajim/gajim_remote.py
@@ -1,3 +1,4 @@
+#!/usr/bin/env python3
# -*- coding:utf-8 -*-
## src/gajim-remote.py
##
@@ -33,9 +34,9 @@ import signal
signal.signal(signal.SIGINT, signal.SIG_DFL) # ^C exits the application
-from common import exceptions
-from common import i18n # This installs _() function
-from common.i18n import Q_
+from gajim.common import exceptions
+from gajim.common import i18n # This installs _() function
+from gajim.common.i18n import Q_
try:
PREFERRED_ENCODING = locale.getpreferredencoding()
diff --git a/gajim/gajim_themes_window.py b/gajim/gajim_themes_window.py
index b8b40afa6..040edaf2c 100644
--- a/gajim/gajim_themes_window.py
+++ b/gajim/gajim_themes_window.py
@@ -25,17 +25,17 @@
from gi.repository import Gtk
from gi.repository import Gdk
from gi.repository import Pango
-import dialogs
-import gtkgui_helpers
+from gajim import dialogs
+from gajim import gtkgui_helpers
-from common import gajim
+from gajim.common import app
class GajimThemesWindow:
def __init__(self):
self.xml = gtkgui_helpers.get_gtk_builder('gajim_themes_window.ui')
self.window = self.xml.get_object('gajim_themes_window')
- self.window.set_transient_for(gajim.interface.instances[
+ self.window.set_transient_for(app.interface.instances[
'preferences'].window)
self.options = ['account', 'group', 'contact', 'banner']
@@ -65,7 +65,7 @@ class GajimThemesWindow:
col.add_attribute(renderer, 'text', 0)
renderer.connect('edited', self.on_theme_cell_edited)
renderer.set_property('editable', True)
- self.current_theme = gajim.config.get('roster_theme')
+ self.current_theme = app.config.get('roster_theme')
self.no_update = False
self.fill_themes_treeview()
self.select_active_theme()
@@ -83,8 +83,8 @@ class GajimThemesWindow:
return True # do NOT destroy the window
def on_close_button_clicked(self, widget):
- if 'preferences' in gajim.interface.instances:
- gajim.interface.instances['preferences'].update_theme_list()
+ if 'preferences' in app.interface.instances:
+ app.interface.instances['preferences'].update_theme_list()
self.window.hide()
def on_theme_cell_edited(self, cell, row, new_name):
@@ -99,35 +99,35 @@ class GajimThemesWindow:
_('Please create a new clean theme.'))
return
new_config_name = new_name.replace(' ', '_')
- if new_config_name in gajim.config.get_per('themes'):
+ if new_config_name in app.config.get_per('themes'):
return
- gajim.config.add_per('themes', new_config_name)
+ app.config.add_per('themes', new_config_name)
# Copy old theme values
old_config_name = old_name.replace(' ', '_')
properties = ['textcolor', 'bgcolor', 'font', 'fontattrs']
- gajim.config.add_per('themes', new_config_name)
+ app.config.add_per('themes', new_config_name)
for option in self.options:
for property_ in properties:
option_name = option + property_
- gajim.config.set_per('themes', new_config_name, option_name,
- gajim.config.get_per('themes', old_config_name, option_name))
- gajim.config.del_per('themes', old_config_name)
- if old_config_name == gajim.config.get('roster_theme'):
- gajim.config.set('roster_theme', new_config_name)
+ app.config.set_per('themes', new_config_name, option_name,
+ app.config.get_per('themes', old_config_name, option_name))
+ app.config.del_per('themes', old_config_name)
+ if old_config_name == app.config.get('roster_theme'):
+ app.config.set('roster_theme', new_config_name)
model.set_value(iter_, 0, new_name)
self.current_theme = new_name
def fill_themes_treeview(self):
model = self.themes_tree.get_model()
model.clear()
- for config_theme in gajim.config.get_per('themes'):
+ for config_theme in app.config.get_per('themes'):
theme = config_theme.replace('_', ' ')
model.append([theme])
def select_active_theme(self):
model = self.themes_tree.get_model()
iter_ = model.get_iter_first()
- active_theme = gajim.config.get('roster_theme').replace('_', ' ')
+ active_theme = app.config.get('roster_theme').replace('_', ' ')
while iter_:
theme = model[iter_][0]
if theme == active_theme:
@@ -169,10 +169,10 @@ class GajimThemesWindow:
# don't confuse translators
theme_name = _('theme name')
theme_name_ns = theme_name.replace(' ', '_')
- while theme_name_ns + str(i) in gajim.config.get_per('themes'):
+ while theme_name_ns + str(i) in app.config.get_per('themes'):
i += 1
model.set_value(iter_, 0, theme_name + str(i))
- gajim.config.add_per('themes', theme_name_ns + str(i))
+ app.config.add_per('themes', theme_name_ns + str(i))
self.themes_tree.get_selection().select_iter(iter_)
col = self.themes_tree.get_column(0)
path = model.get_path(iter_)
@@ -182,7 +182,7 @@ class GajimThemesWindow:
(model, iter_) = self.themes_tree.get_selection().get_selected()
if not iter_:
return
- if self.current_theme == gajim.config.get('roster_theme'):
+ if self.current_theme == app.config.get('roster_theme'):
dialogs.ErrorDialog(
_('You cannot delete your current theme'),
_('Pick another theme to use first.'))
@@ -190,13 +190,13 @@ class GajimThemesWindow:
self.theme_options_vbox.set_sensitive(False)
self.theme_options_table.set_sensitive(False)
self.xml.get_object('remove_button').set_sensitive(False)
- gajim.config.del_per('themes', self.current_theme)
+ app.config.del_per('themes', self.current_theme)
model.remove(iter_)
def set_theme_options(self, theme, option = 'account'):
self.no_update = True
self.options_combobox.set_active(self.options.index(option))
- textcolor = gajim.config.get_per('themes', theme, option + 'textcolor')
+ textcolor = app.config.get_per('themes', theme, option + 'textcolor')
if textcolor:
state = True
rgba = Gdk.RGBA()
@@ -206,7 +206,7 @@ class GajimThemesWindow:
state = False
self.textcolor_checkbutton.set_active(state)
self.text_colorbutton.set_sensitive(state)
- bgcolor = gajim.config.get_per('themes', theme, option + 'bgcolor')
+ bgcolor = app.config.get_per('themes', theme, option + 'bgcolor')
if bgcolor:
state = True
rgba = Gdk.RGBA()
@@ -218,8 +218,8 @@ class GajimThemesWindow:
self.background_colorbutton.set_sensitive(state)
# get the font name before we set widgets and it will not be overriden
- font_name = gajim.config.get_per('themes', theme, option + 'font')
- font_attrs = gajim.config.get_per('themes', theme, option + 'fontattrs')
+ font_name = app.config.get_per('themes', theme, option + 'font')
+ font_attrs = app.config.get_per('themes', theme, option + 'fontattrs')
self._set_font_widgets(font_attrs)
if font_name:
state = True
@@ -229,11 +229,11 @@ class GajimThemesWindow:
self.textfont_checkbutton.set_active(state)
self.text_fontbutton.set_sensitive(state)
self.no_update = False
- gajim.interface.roster.change_roster_style(None)
+ app.interface.roster.change_roster_style(None)
for chatstate in ('inactive', 'composing', 'paused', 'gone',
'muc_msg', 'muc_directed_msg'):
- color = gajim.config.get_per('themes', theme, 'state_' + chatstate + \
+ color = app.config.get_per('themes', theme, 'state_' + chatstate + \
'_color')
rgba = Gdk.RGBA()
rgba.parse(color)
@@ -292,15 +292,15 @@ class GajimThemesWindow:
begin_option = ''
if not option.startswith('state'):
begin_option = self.current_option
- gajim.config.set_per('themes', self.current_theme,
+ app.config.set_per('themes', self.current_theme,
begin_option + option, color_string)
# use faster functions for this
if self.current_option == 'banner':
- gajim.interface.roster.repaint_themed_widgets()
+ app.interface.roster.repaint_themed_widgets()
return
if self.no_update:
return
- gajim.interface.roster.change_roster_style(self.current_option)
+ app.interface.roster.change_roster_style(self.current_option)
def _set_font(self):
"""
@@ -311,17 +311,17 @@ class GajimThemesWindow:
font_string = self.text_fontbutton.get_font_name()
else:
font_string = ''
- gajim.config.set_per('themes', self.current_theme,
+ app.config.set_per('themes', self.current_theme,
self.current_option + 'font', font_string)
font_attrs = self._get_font_attrs()
- gajim.config.set_per('themes', self.current_theme,
+ app.config.set_per('themes', self.current_theme,
self.current_option + 'fontattrs', font_attrs)
# use faster functions for this
if self.current_option == 'banner':
- gajim.interface.roster.repaint_themed_widgets()
+ app.interface.roster.repaint_themed_widgets()
if self.no_update:
return
- gajim.interface.roster.change_roster_style(self.current_option)
+ app.interface.roster.change_roster_style(self.current_option)
def _toggle_font_widgets(self, font_props):
"""
diff --git a/gajim/groupchat_control.py b/gajim/groupchat_control.py
index 656df0f49..9c1dffd9d 100644
--- a/gajim/groupchat_control.py
+++ b/gajim/groupchat_control.py
@@ -35,32 +35,32 @@ from gi.repository import Gdk
from gi.repository import GdkPixbuf
from gi.repository import Pango
from gi.repository import GLib
-import gtkgui_helpers
-import gui_menu_builder
-import message_control
-import tooltips
-import dialogs
-import config
-import vcard
-import cell_renderer_image
-import dataforms_widget
+from gajim import gtkgui_helpers
+from gajim import gui_menu_builder
+from gajim import message_control
+from gajim import tooltips
+from gajim import dialogs
+from gajim import config
+from gajim import vcard
+from gajim import cell_renderer_image
+from gajim import dataforms_widget
import nbxmpp
from enum import IntEnum, unique
-from common import events
-from common import gajim
-from common import helpers
-from common import dataforms
-from common import ged
-from common import i18n
+from gajim.common import events
+from gajim.common import app
+from gajim.common import helpers
+from gajim.common import dataforms
+from gajim.common import ged
+from gajim.common import i18n
-from chat_control import ChatControl
-from chat_control_base import ChatControlBase
+from gajim.chat_control import ChatControl
+from gajim.chat_control_base import ChatControlBase
-from command_system.implementation.hosts import PrivateChatCommands
-from command_system.implementation.hosts import GroupChatCommands
-from common.connection_handlers_events import GcMessageOutgoingEvent
+from gajim.command_system.implementation.hosts import PrivateChatCommands
+from gajim.command_system.implementation.hosts import GroupChatCommands
+from gajim.common.connection_handlers_events import GcMessageOutgoingEvent
import logging
log = logging.getLogger('gajim.groupchat_control')
@@ -79,11 +79,11 @@ empty_pixbuf.fill(0xffffff00)
def tree_cell_data_func(column, renderer, model, iter_, tv=None):
# cell data func is global, because we don't want it to keep
# reference to GroupchatControl instance (self)
- theme = gajim.config.get('roster_theme')
+ theme = app.config.get('roster_theme')
# allocate space for avatar only if needed
parent_iter = model.iter_parent(iter_)
if isinstance(renderer, Gtk.CellRendererPixbuf):
- avatar_position = gajim.config.get('avatar_position_in_roster')
+ avatar_position = app.config.get('avatar_position_in_roster')
if avatar_position == 'right':
renderer.set_property('xalign', 1) # align pixbuf to the right
else:
@@ -91,19 +91,19 @@ def tree_cell_data_func(column, renderer, model, iter_, tv=None):
if parent_iter and (model[iter_][Column.AVATAR] or avatar_position == \
'left'):
renderer.set_property('visible', True)
- renderer.set_property('width', gajim.config.get(
+ renderer.set_property('width', app.config.get(
'roster_avatar_width'))
else:
renderer.set_property('visible', False)
if parent_iter:
- bgcolor = gajim.config.get_per('themes', theme, 'contactbgcolor')
+ bgcolor = app.config.get_per('themes', theme, 'contactbgcolor')
if bgcolor:
renderer.set_property('cell-background', bgcolor)
else:
renderer.set_property('cell-background', None)
if isinstance(renderer, Gtk.CellRendererText):
# foreground property is only with CellRendererText
- color = gajim.config.get_per('themes', theme, 'contacttextcolor')
+ color = app.config.get_per('themes', theme, 'contacttextcolor')
if color:
renderer.set_property('foreground', color)
else:
@@ -111,11 +111,11 @@ def tree_cell_data_func(column, renderer, model, iter_, tv=None):
renderer.set_property('font',
gtkgui_helpers.get_theme_font_for_option(theme, 'contactfont'))
else: # it is root (eg. group)
- bgcolor = gajim.config.get_per('themes', theme, 'groupbgcolor')
+ bgcolor = app.config.get_per('themes', theme, 'groupbgcolor')
renderer.set_property('cell-background', bgcolor or None)
if isinstance(renderer, Gtk.CellRendererText):
# foreground property is only with CellRendererText
- color = gajim.config.get_per('themes', theme, 'grouptextcolor')
+ color = app.config.get_per('themes', theme, 'grouptextcolor')
renderer.set_property('foreground', color or None)
renderer.set_property('font',
gtkgui_helpers.get_theme_font_for_option(theme, 'groupfont'))
@@ -130,10 +130,10 @@ class PrivateChatControl(ChatControl):
def __init__(self, parent_win, gc_contact, contact, account, session):
room_jid = gc_contact.room_jid
- self.room_ctrl = gajim.interface.msg_win_mgr.get_gc_control(room_jid,
+ self.room_ctrl = app.interface.msg_win_mgr.get_gc_control(room_jid,
account)
- if room_jid in gajim.interface.minimized_controls[account]:
- self.room_ctrl = gajim.interface.minimized_controls[account][room_jid]
+ if room_jid in app.interface.minimized_controls[account]:
+ self.room_ctrl = app.interface.minimized_controls[account][room_jid]
if self.room_ctrl:
self.room_name = self.room_ctrl.name
else:
@@ -141,9 +141,9 @@ class PrivateChatControl(ChatControl):
self.gc_contact = gc_contact
ChatControl.__init__(self, parent_win, contact, account, session)
self.TYPE_ID = 'pm'
- gajim.ged.register_event_handler('caps-received', ged.GUI1,
+ app.ged.register_event_handler('caps-received', ged.GUI1,
self._nec_caps_received_pm)
- gajim.ged.register_event_handler('gc-presence-received', ged.GUI1,
+ app.ged.register_event_handler('gc-presence-received', ged.GUI1,
self._nec_gc_presence_received)
def get_our_nick(self):
@@ -151,9 +151,9 @@ class PrivateChatControl(ChatControl):
def shutdown(self):
super(PrivateChatControl, self).shutdown()
- gajim.ged.remove_event_handler('caps-received', ged.GUI1,
+ app.ged.remove_event_handler('caps-received', ged.GUI1,
self._nec_caps_received_pm)
- gajim.ged.remove_event_handler('gc-presence-received', ged.GUI1,
+ app.ged.remove_event_handler('gc-presence-received', ged.GUI1,
self._nec_gc_presence_received)
def _nec_caps_received_pm(self, obj):
@@ -171,7 +171,7 @@ class PrivateChatControl(ChatControl):
self.print_conversation(_('%(nick)s is now known as '
'%(new_nick)s') % {'nick': obj.nick, 'new_nick': obj.new_nick},
'status')
- gc_c = gajim.contacts.get_gc_contact(obj.conn.name, obj.room_jid,
+ gc_c = app.contacts.get_gc_contact(obj.conn.name, obj.room_jid,
obj.new_nick)
c = gc_c.as_contact()
self.gc_contact = gc_c
@@ -186,7 +186,7 @@ class PrivateChatControl(ChatControl):
self.draw_banner()
old_jid = obj.room_jid + '/' + obj.nick
new_jid = obj.room_jid + '/' + obj.new_nick
- gajim.interface.msg_win_mgr.change_key(old_jid, new_jid,
+ app.interface.msg_win_mgr.change_key(old_jid, new_jid,
obj.conn.name)
else:
self.contact.show = obj.show
@@ -215,12 +215,12 @@ class PrivateChatControl(ChatControl):
# We need to make sure that we can still send through the room and that
# the recipient did not go away
- contact = gajim.contacts.get_first_contact_from_jid(self.account,
+ contact = app.contacts.get_first_contact_from_jid(self.account,
self.contact.jid)
if not contact:
# contact was from pm in MUC
- room, nick = gajim.get_room_and_nick_from_fjid(self.contact.jid)
- gc_contact = gajim.contacts.get_gc_contact(self.account, room, nick)
+ room, nick = app.get_room_and_nick_from_fjid(self.contact.jid)
+ gc_contact = app.contacts.get_gc_contact(self.account, room, nick)
if not gc_contact:
dialogs.ErrorDialog(
_('Sending private message failed'),
@@ -248,7 +248,7 @@ class PrivateChatControl(ChatControl):
if not self.session:
fjid = self.gc_contact.get_full_jid()
- new_sess = gajim.connections[self.account].make_new_session(fjid,
+ new_sess = app.connections[self.account].make_new_session(fjid,
type_=self.type_id)
self.set_session(new_sess)
@@ -322,7 +322,7 @@ class GroupchatControl(ChatControlBase):
formattings_button.set_sensitive(False)
widget = self.xml.get_object('bookmark_button')
- for bm in gajim.connections[self.account].bookmarks:
+ for bm in app.connections[self.account].bookmarks:
if bm['jid'] == self.contact.jid:
widget.hide()
break
@@ -335,9 +335,9 @@ class GroupchatControl(ChatControlBase):
img = self.xml.get_object('image7')
img.set_from_icon_name('bookmark-new', Gtk.IconSize.MENU)
widget.set_sensitive(
- gajim.connections[self.account].private_storage_supported or \
- (gajim.connections[self.account].pubsub_supported and \
- gajim.connections[self.account].pubsub_publish_options_supported))
+ app.connections[self.account].private_storage_supported or \
+ (app.connections[self.account].pubsub_supported and \
+ app.connections[self.account].pubsub_publish_options_supported))
widget.show()
if gtkgui_helpers.gtk_icon_theme.has_icon('document-open-recent'):
@@ -374,19 +374,19 @@ class GroupchatControl(ChatControlBase):
self.nick = contact.name
self.new_nick = ''
self.name = ''
- for bm in gajim.connections[self.account].bookmarks:
+ for bm in app.connections[self.account].bookmarks:
if bm['jid'] == self.room_jid:
self.name = bm['name']
break
if not self.name:
self.name = self.room_jid.split('@')[0]
- compact_view = gajim.config.get('compact_view')
+ compact_view = app.config.get('compact_view')
self.chat_buttons_set_visible(compact_view)
self.widget_set_visible(self.xml.get_object('banner_eventbox'),
- gajim.config.get('hide_groupchat_banner'))
+ app.config.get('hide_groupchat_banner'))
self.widget_set_visible(self.xml.get_object('list_scrolledwindow'),
- gajim.config.get('hide_groupchat_occupants_list'))
+ app.config.get('hide_groupchat_occupants_list'))
self._last_selected_contact = None # None or holds jid, account tuple
@@ -405,7 +405,7 @@ class GroupchatControl(ChatControlBase):
# nickname coloring
self.gc_count_nicknames_colors = -1
self.gc_custom_colors = {}
- self.number_of_colors = len(gajim.config.get('gc_nicknames_colors').\
+ self.number_of_colors = len(app.config.get('gc_nicknames_colors').\
split(':'))
self.name_label = self.xml.get_object('banner_name_label')
@@ -427,7 +427,7 @@ class GroupchatControl(ChatControlBase):
self.handlers[id_] = self.hpaned
# set the position of the current hpaned
- hpaned_position = gajim.config.get('gc-hpaned-position')
+ hpaned_position = app.config.get('gc-hpaned-position')
self.hpaned.set_position(hpaned_position)
#status_image, shown_nick, type, nickname, avatar
@@ -464,7 +464,7 @@ class GroupchatControl(ChatControlBase):
False, 'pixbuf', Column.AVATAR,
tree_cell_data_func, self.list_treeview)
- if gajim.config.get('avatar_position_in_roster') == 'right':
+ if app.config.get('avatar_position_in_roster') == 'right':
self.renderers_list.append(avater_renderer)
else:
self.renderers_list.insert(0, avater_renderer)
@@ -498,23 +498,23 @@ class GroupchatControl(ChatControlBase):
gui_menu_builder.get_encryption_menu(self.control_id, self.type_id))
self.set_encryption_menu_icon()
- gajim.ged.register_event_handler('gc-presence-received', ged.GUI1,
+ app.ged.register_event_handler('gc-presence-received', ged.GUI1,
self._nec_gc_presence_received)
- gajim.ged.register_event_handler('gc-message-received', ged.GUI1,
+ app.ged.register_event_handler('gc-message-received', ged.GUI1,
self._nec_gc_message_received)
- gajim.ged.register_event_handler('vcard-published', ged.GUI1,
+ app.ged.register_event_handler('vcard-published', ged.GUI1,
self._nec_vcard_published)
- gajim.ged.register_event_handler('vcard-received', ged.GUI1,
+ app.ged.register_event_handler('vcard-received', ged.GUI1,
self._nec_vcard_received)
- gajim.ged.register_event_handler('gc-subject-received', ged.GUI1,
+ app.ged.register_event_handler('gc-subject-received', ged.GUI1,
self._nec_gc_subject_received)
- gajim.ged.register_event_handler('gc-config-changed-received', ged.GUI1,
+ app.ged.register_event_handler('gc-config-changed-received', ged.GUI1,
self._nec_gc_config_changed_received)
- gajim.ged.register_event_handler('signed-in', ged.GUI1,
+ app.ged.register_event_handler('signed-in', ged.GUI1,
self._nec_signed_in)
- gajim.ged.register_event_handler('decrypted-message-received', ged.GUI2,
+ app.ged.register_event_handler('decrypted-message-received', ged.GUI2,
self._nec_decrypted_message_received)
- gajim.gc_connected[self.account][self.room_jid] = False
+ app.gc_connected[self.account][self.room_jid] = False
# disable win, we are not connected yet
ChatControlBase.got_disconnected(self)
@@ -523,7 +523,7 @@ class GroupchatControl(ChatControlBase):
# PluginSystem: adding GUI extension point for this GroupchatControl
# instance object
- gajim.plugin_manager.gui_extension_point('groupchat_control', self)
+ app.plugin_manager.gui_extension_point('groupchat_control', self)
def on_groupchat_maximize(self):
self.set_tooltip()
@@ -572,7 +572,7 @@ class GroupchatControl(ChatControlBase):
return True
tooltip.row = row
- contact = gajim.contacts.get_gc_contact(
+ contact = app.contacts.get_gc_contact(
self.account, self.room_jid, nick)
if not contact:
return False
@@ -605,17 +605,17 @@ class GroupchatControl(ChatControlBase):
if type1 == 'role':
return locale.strcoll(nick1, nick2)
if type1 == 'contact':
- gc_contact1 = gajim.contacts.get_gc_contact(self.account,
+ gc_contact1 = app.contacts.get_gc_contact(self.account,
self.room_jid, nick1)
if not gc_contact1:
return 0
if type2 == 'contact':
- gc_contact2 = gajim.contacts.get_gc_contact(self.account,
+ gc_contact2 = app.contacts.get_gc_contact(self.account,
self.room_jid, nick2)
if not gc_contact2:
return 0
if type1 == 'contact' and type2 == 'contact' and \
- gajim.config.get('sort_by_show_in_muc'):
+ app.config.get('sort_by_show_in_muc'):
cshow = {'chat':0, 'online': 1, 'away': 2, 'xa': 3, 'dnd': 4,
'invisible': 5, 'offline': 6, 'error': 7}
show1 = cshow[gc_contact1.show]
@@ -643,7 +643,7 @@ class GroupchatControl(ChatControlBase):
submenu = Gtk.Menu()
item.set_submenu(submenu)
- for nick in sorted(gajim.contacts.get_nick_list(self.account,
+ for nick in sorted(app.contacts.get_nick_list(self.account,
self.room_jid)):
item = Gtk.MenuItem.new_with_label(nick)
item.set_use_underline(False)
@@ -675,16 +675,16 @@ class GroupchatControl(ChatControlBase):
return
hpaned_position = self.hpaned.get_position()
- gajim.config.set('gc-hpaned-position', hpaned_position)
- for account in gajim.gc_connected:
- for room_jid in [i for i in gajim.gc_connected[account] if \
- gajim.gc_connected[account][i] and i != self.room_jid]:
- ctrl = gajim.interface.msg_win_mgr.get_gc_control(room_jid,
+ app.config.set('gc-hpaned-position', hpaned_position)
+ for account in app.gc_connected:
+ for room_jid in [i for i in app.gc_connected[account] if \
+ app.gc_connected[account][i] and i != self.room_jid]:
+ ctrl = app.interface.msg_win_mgr.get_gc_control(room_jid,
account)
if not ctrl and room_jid in \
- gajim.interface.minimized_controls[account]:
- ctrl = gajim.interface.minimized_controls[account][room_jid]
- if ctrl and gajim.config.get('one_message_window') != 'never':
+ app.interface.minimized_controls[account]:
+ ctrl = app.interface.minimized_controls[account][room_jid]
+ if ctrl and app.config.get('one_message_window') != 'never':
ctrl.resize_occupant_treeview(hpaned_position)
def iter_contact_rows(self):
@@ -763,7 +763,7 @@ class GroupchatControl(ChatControlBase):
def get_tab_image(self, count_unread=True):
# Set tab image (always 16x16)
tab_image = None
- if gajim.gc_connected[self.account][self.room_jid]:
+ if app.gc_connected[self.account][self.room_jid]:
tab_image = gtkgui_helpers.load_icon('muc_active')
else:
tab_image = gtkgui_helpers.load_icon('muc_inactive')
@@ -771,7 +771,7 @@ class GroupchatControl(ChatControlBase):
def update_ui(self):
ChatControlBase.update_ui(self)
- for nick in gajim.contacts.get_nick_list(self.account, self.room_jid):
+ for nick in app.contacts.get_nick_list(self.account, self.room_jid):
self.draw_contact(nick)
def set_lock_image(self):
@@ -780,7 +780,7 @@ class GroupchatControl(ChatControlBase):
'authenticated': False}
if self.encryption:
- gajim.plugin_manager.extension_point(
+ app.plugin_manager.extension_point(
'encryption_state' + self.encryption, self, encryption_state)
self._show_lock_image(**encryption_state)
@@ -806,7 +806,7 @@ class GroupchatControl(ChatControlBase):
self.lock_image.set_sensitive(visible)
def _on_authentication_button_clicked(self, widget):
- gajim.plugin_manager.extension_point(
+ app.plugin_manager.extension_point(
'encryption_dialog' + self.encryption, self)
def _change_style(self, model, path, iter_, option):
@@ -821,9 +821,9 @@ class GroupchatControl(ChatControlBase):
def _update_banner_state_image(self):
banner_status_img = self.xml.get_object('gc_banner_status_image')
- images = gajim.interface.jabber_state_images
- if self.room_jid in gajim.gc_connected[self.account] and \
- gajim.gc_connected[self.account][self.room_jid]:
+ images = app.interface.jabber_state_images
+ if self.room_jid in app.gc_connected[self.account] and \
+ app.gc_connected[self.account][self.room_jid]:
image = 'muc_active'
else:
image = 'muc_inactive'
@@ -845,7 +845,7 @@ class GroupchatControl(ChatControlBase):
Conversation if there isn't any other contact in the room
"""
nicks = []
- for nick in gajim.contacts.get_nick_list(self.account,
+ for nick in app.contacts.get_nick_list(self.account,
self.room_jid):
if nick != self.nick:
nicks.append(nick)
@@ -924,7 +924,7 @@ class GroupchatControl(ChatControlBase):
history_menuitem.show()
bookmark_separator.show()
separatormenuitem2.show()
- for bm in gajim.connections[self.account].bookmarks:
+ for bm in app.connections[self.account].bookmarks:
if bm['jid'] == self.room_jid:
bookmark_room_menuitem.hide()
bookmark_separator.hide()
@@ -940,15 +940,15 @@ class GroupchatControl(ChatControlBase):
history_menuitem.add_accelerator('activate', ag, Gdk.KEY_h,
Gdk.ModifierType.CONTROL_MASK, Gtk.AccelFlags.VISIBLE)
- if self.contact.jid not in gajim.config.get_per('accounts', self.account,
+ if self.contact.jid not in app.config.get_per('accounts', self.account,
'non_minimized_gc').split(' '):
minimize_menuitem.set_active(True)
- conn = gajim.connections[self.account]
+ conn = app.connections[self.account]
if not conn.private_storage_supported and (not conn.pubsub_supported or \
not conn.pubsub_publish_options_supported):
bookmark_room_menuitem.set_sensitive(False)
- if gajim.gc_connected[self.account][self.room_jid]:
- c = gajim.contacts.get_gc_contact(self.account, self.room_jid,
+ if app.gc_connected[self.account][self.room_jid]:
+ c = app.contacts.get_gc_contact(self.account, self.room_jid,
self.nick)
if c.affiliation not in ('owner', 'admin'):
configure_room_menuitem.set_sensitive(False)
@@ -1032,7 +1032,7 @@ class GroupchatControl(ChatControlBase):
def _nec_vcard_published(self, obj):
if obj.conn.name != self.account:
return
- show = gajim.SHOW_LIST[obj.conn.connected]
+ show = app.SHOW_LIST[obj.conn.connected]
status = obj.conn.status
obj.conn.send_gc_status(self.nick, self.room_jid, show, status)
@@ -1110,22 +1110,22 @@ class GroupchatControl(ChatControlBase):
encrypted=False, displaymarking=None):
# Do we have a queue?
fjid = self.room_jid + '/' + nick
- no_queue = len(gajim.events.get_events(self.account, fjid)) == 0
+ no_queue = len(app.events.get_events(self.account, fjid)) == 0
event = events.PmEvent(msg, '', 'incoming', tim, encrypted, '',
msg_log_id, xhtml=xhtml, session=session, form_node=None,
displaymarking=displaymarking, sent_forwarded=False)
- gajim.events.add_event(self.account, fjid, event)
+ app.events.add_event(self.account, fjid, event)
- autopopup = gajim.config.get('autopopup')
- autopopupaway = gajim.config.get('autopopupaway')
+ autopopup = app.config.get('autopopup')
+ autopopupaway = app.config.get('autopopupaway')
iter_ = self.get_contact_iter(nick)
path = self.model.get_path(iter_)
if not autopopup or (not autopopupaway and \
- gajim.connections[self.account].connected > 2):
+ app.connections[self.account].connected > 2):
if no_queue: # We didn't have a queue: we change icons
state_images = \
- gajim.interface.roster.get_appropriate_state_images(
+ app.interface.roster.get_appropriate_state_images(
self.room_jid, icon_name='event')
image = state_images['event']
self.model[iter_][Column.IMG] = image
@@ -1140,10 +1140,10 @@ class GroupchatControl(ChatControlBase):
self.list_treeview.expand_row(path_, False)
self.list_treeview.scroll_to_cell(path)
self.list_treeview.set_cursor(path)
- contact = gajim.contacts.get_contact_with_highest_priority(
+ contact = app.contacts.get_contact_with_highest_priority(
self.account, self.room_jid)
if contact:
- gajim.interface.roster.draw_contact(self.room_jid, self.account)
+ app.interface.roster.draw_contact(self.room_jid, self.account)
def get_contact_iter(self, nick):
role_iter = self.model.get_iter_first()
@@ -1166,7 +1166,7 @@ class GroupchatControl(ChatControlBase):
kind = 'incoming'
else:
kind = 'status'
- if gajim.config.get('restored_messages_small'):
+ if app.config.get('restored_messages_small'):
small_attr = ['small']
else:
small_attr = []
@@ -1245,17 +1245,17 @@ class GroupchatControl(ChatControlBase):
def get_nb_unread(self):
type_events = ['printed_marked_gc_msg']
- if gajim.config.get('notify_on_all_muc_messages'):
+ if app.config.get('notify_on_all_muc_messages'):
type_events.append('printed_gc_msg')
- nb = len(gajim.events.get_events(self.account, self.room_jid,
+ nb = len(app.events.get_events(self.account, self.room_jid,
type_events))
nb += self.get_nb_unread_pm()
return nb
def get_nb_unread_pm(self):
nb = 0
- for nick in gajim.contacts.get_nick_list(self.account, self.room_jid):
- nb += len(gajim.events.get_events(self.account, self.room_jid + \
+ for nick in app.contacts.get_nick_list(self.account, self.room_jid):
+ nb += len(app.events.get_events(self.account, self.room_jid + \
'/' + nick, ['pm']))
return nb
@@ -1269,12 +1269,12 @@ class GroupchatControl(ChatControlBase):
# Are any of the defined highlighting words in the text?
if self.needs_visual_notification(text):
highlight = True
- if gajim.config.get_per('soundevents', 'muc_message_highlight',
+ if app.config.get_per('soundevents', 'muc_message_highlight',
'enabled'):
sound = 'highlight'
# Do we play a sound on every muc message?
- elif gajim.config.get_per('soundevents', 'muc_message_received', \
+ elif app.config.get_per('soundevents', 'muc_message_received', \
'enabled'):
sound = 'received'
@@ -1290,7 +1290,7 @@ class GroupchatControl(ChatControlBase):
does not already have it as last event. If it goes to add this line
- remove previous line first
"""
- win = gajim.interface.msg_win_mgr.get_window(self.room_jid,
+ win = app.interface.msg_win_mgr.get_window(self.room_jid,
self.account)
if win and self.room_jid == win.get_active_jid() and\
win.window.get_property('has-toplevel-focus') and\
@@ -1307,7 +1307,7 @@ class GroupchatControl(ChatControlBase):
Check text to see whether any of the words in (muc_highlight_words and
nick) appear
"""
- special_words = gajim.config.get('muc_highlight_words').split(';')
+ special_words = app.config.get('muc_highlight_words').split(';')
special_words.append(self.nick)
# Strip empties: ''.split(';') == [''] and would highlight everything.
# Also lowercase everything for case insensitive compare.
@@ -1386,7 +1386,7 @@ class GroupchatControl(ChatControlBase):
def _nec_signed_in(self, obj):
if obj.conn.name != self.account:
return
- password = gajim.gc_passwords.get(self.room_jid, '')
+ password = app.gc_passwords.get(self.room_jid, '')
obj.conn.join_gc(self.nick, self.room_jid, password, rejoin=True)
def _nec_decrypted_message_received(self, obj):
@@ -1422,7 +1422,7 @@ class GroupchatControl(ChatControlBase):
GLib.source_remove(self.autorejoin)
self.autorejoin = None
- gajim.gc_connected[self.account][self.room_jid] = True
+ app.gc_connected[self.account][self.room_jid] = True
ChatControlBase.got_connected(self)
self.list_treeview.set_model(self.model)
self.list_treeview.expand_all()
@@ -1451,14 +1451,14 @@ class GroupchatControl(ChatControlBase):
change_subject_button.set_sensitive(False)
self.list_treeview.set_model(None)
self.model.clear()
- nick_list = gajim.contacts.get_nick_list(self.account, self.room_jid)
+ nick_list = app.contacts.get_nick_list(self.account, self.room_jid)
for nick in nick_list:
# Update pm chat window
fjid = self.room_jid + '/' + nick
- gc_contact = gajim.contacts.get_gc_contact(self.account,
+ gc_contact = app.contacts.get_gc_contact(self.account,
self.room_jid, nick)
- ctrl = gajim.interface.msg_win_mgr.get_control(fjid, self.account)
+ ctrl = app.interface.msg_win_mgr.get_control(fjid, self.account)
if ctrl:
gc_contact.show = 'offline'
gc_contact.status = ''
@@ -1466,11 +1466,11 @@ class GroupchatControl(ChatControlBase):
if ctrl.parent_win:
ctrl.parent_win.redraw_tab(ctrl)
- gajim.contacts.remove_gc_contact(self.account, gc_contact)
- gajim.gc_connected[self.account][self.room_jid] = False
+ app.contacts.remove_gc_contact(self.account, gc_contact)
+ app.gc_connected[self.account][self.room_jid] = False
ChatControlBase.got_disconnected(self)
# Tell connection to note the date we disconnect to avoid duplicate logs
- gajim.connections[self.account].gc_got_disconnected(self.room_jid)
+ app.connections[self.account].gc_got_disconnected(self.room_jid)
# We don't redraw the whole banner here, because only icon change
self._update_banner_state_image()
if self.parent_win:
@@ -1479,23 +1479,23 @@ class GroupchatControl(ChatControlBase):
# Autorejoin stuff goes here.
# Notice that we don't need to activate autorejoin if connection is lost
# or in progress.
- if self.autorejoin is None and gajim.account_is_connected(self.account):
- ar_to = gajim.config.get('muc_autorejoin_timeout')
+ if self.autorejoin is None and app.account_is_connected(self.account):
+ ar_to = app.config.get('muc_autorejoin_timeout')
if ar_to:
self.autorejoin = GLib.timeout_add_seconds(ar_to, self.rejoin)
def rejoin(self):
if not self.autorejoin:
return False
- password = gajim.gc_passwords.get(self.room_jid, '')
- gajim.connections[self.account].join_gc(self.nick, self.room_jid,
+ password = app.gc_passwords.get(self.room_jid, '')
+ app.connections[self.account].join_gc(self.nick, self.room_jid,
password, rejoin=True)
return True
def draw_roster(self):
self.model.clear()
- for nick in gajim.contacts.get_nick_list(self.account, self.room_jid):
- gc_contact = gajim.contacts.get_gc_contact(self.account,
+ for nick in app.contacts.get_nick_list(self.account, self.room_jid):
+ gc_contact = app.contacts.get_gc_contact(self.account,
self.room_jid, nick)
self.add_contact_to_roster(nick, gc_contact.show, gc_contact.role,
gc_contact.affiliation, gc_contact.status, gc_contact.jid)
@@ -1526,10 +1526,10 @@ class GroupchatControl(ChatControlBase):
iter_ = self.get_contact_iter(nick)
if not iter_:
return
- gc_contact = gajim.contacts.get_gc_contact(self.account, self.room_jid,
+ gc_contact = app.contacts.get_gc_contact(self.account, self.room_jid,
nick)
- state_images = gajim.interface.jabber_state_images['16']
- if len(gajim.events.get_events(self.account, self.room_jid + '/' + \
+ state_images = app.interface.jabber_state_images['16']
+ if len(app.events.get_events(self.account, self.room_jid + '/' + \
nick)):
image = state_images['event']
else:
@@ -1544,7 +1544,7 @@ class GroupchatControl(ChatControlBase):
status = gc_contact.status
# add status msg, if not empty, under contact name in the treeview
- if status and gajim.config.get('show_status_msgs_in_roster'):
+ if status and app.config.get('show_status_msgs_in_roster'):
status = status.strip()
if status != '':
status = helpers.reduce_chars_newlines(status, max_lines=1)
@@ -1558,7 +1558,7 @@ class GroupchatControl(ChatControlBase):
status))
if image.get_storage_type() == Gtk.ImageType.PIXBUF and \
- gc_contact.affiliation != 'none' and gajim.config.get(
+ gc_contact.affiliation != 'none' and app.config.get(
'show_affiliation_in_groupchat'):
pixbuf1 = image.get_pixbuf().copy()
pixbuf2 = GdkPixbuf.Pixbuf.new(GdkPixbuf.Colorspace.RGB, True, 8, 4, 4)
@@ -1576,7 +1576,7 @@ class GroupchatControl(ChatControlBase):
self.model[iter_][Column.TEXT] = name
def draw_avatar(self, nick):
- if not gajim.config.get('show_avatars_in_roster'):
+ if not app.config.get('show_avatars_in_roster'):
return
iter_ = self.get_contact_iter(nick)
if not iter_:
@@ -1596,8 +1596,8 @@ class GroupchatControl(ChatControlBase):
if not role_iter:
return
role_name = helpers.get_uf_role(role, plural=True)
- if gajim.config.get('show_contacts_number'):
- nbr_role, nbr_total = gajim.contacts.get_nb_role_total_gc_contacts(
+ if app.config.get('show_contacts_number'):
+ nbr_role, nbr_total = app.contacts.get_nb_role_total_gc_contacts(
self.account, self.room_jid, role)
role_name += ' (%s/%s)' % (repr(nbr_role), repr(nbr_total))
self.model[role_iter][Column.TEXT] = role_name
@@ -1629,7 +1629,7 @@ class GroupchatControl(ChatControlBase):
if obj.real_jid:
# delete ressource
- simple_jid = gajim.get_jid_without_resource(obj.real_jid)
+ simple_jid = app.get_jid_without_resource(obj.real_jid)
nick_jid += ' (%s)' % simple_jid
# status_code
@@ -1638,20 +1638,20 @@ class GroupchatControl(ChatControlBase):
if obj.status_code:
if '110' in obj.status_code:
# We just join the room
- if self.room_jid in gajim.automatic_rooms[self.account] and \
- gajim.automatic_rooms[self.account][self.room_jid]['invities']:
- if self.room_jid not in gajim.interface.instances[
+ if self.room_jid in app.automatic_rooms[self.account] and \
+ app.automatic_rooms[self.account][self.room_jid]['invities']:
+ if self.room_jid not in app.interface.instances[
self.account]['gc_config']:
if obj.affiliation == 'owner':
# We need to configure the room if it's a new one.
# We cannot know it's a new one. Status 201 is not
# sent by all servers.
- gajim.connections[self.account].request_gc_config(
+ app.connections[self.account].request_gc_config(
self.room_jid)
- elif 'continue_tag' in gajim.automatic_rooms[
+ elif 'continue_tag' in app.automatic_rooms[
self.account][self.room_jid]:
# We just need to invite contacts
- for jid in gajim.automatic_rooms[self.account][
+ for jid in app.automatic_rooms[self.account][
self.room_jid]['invities']:
obj.conn.send_invite(self.room_jid, jid)
self.print_conversation(_('%(jid)s has been '
@@ -1659,13 +1659,13 @@ class GroupchatControl(ChatControlBase):
graphics=False)
if '100' in obj.status_code:
# Can be a message (see handle_event_gc_config_change in
- # gajim.py)
+ # app.py)
self.print_conversation(
_('Any occupant is allowed to see your full JID'))
self.is_anonymous = False
if '170' in obj.status_code:
# Can be a message (see handle_event_gc_config_change in
- # gajim.py)
+ # app.py)
self.print_conversation(_('Room logging is enabled'))
if '201' in obj.status_code:
self.print_conversation(_('A new room has been created'))
@@ -1684,7 +1684,7 @@ class GroupchatControl(ChatControlBase):
'%(reason)s') % {'nick': nick, 'who': obj.actor,
'reason': obj.reason}
self.print_conversation(s, 'info', graphics=False)
- if obj.nick == self.nick and not gajim.config.get(
+ if obj.nick == self.nick and not app.config.get(
'muc_autorejoin_on_kick'):
self.autorejoin = False
elif '301' in obj.status_code:
@@ -1705,17 +1705,17 @@ class GroupchatControl(ChatControlBase):
self.new_nick = ''
s = _('You are now known as %s') % self.nick
# Stop all E2E sessions
- nick_list = gajim.contacts.get_nick_list(self.account,
+ nick_list = app.contacts.get_nick_list(self.account,
self.room_jid)
for nick_ in nick_list:
fjid_ = self.room_jid + '/' + nick_
- ctrl = gajim.interface.msg_win_mgr.get_control(
+ ctrl = app.interface.msg_win_mgr.get_control(
fjid_, self.account)
if ctrl and ctrl.session and \
ctrl.session.enable_encryption:
thread_id = ctrl.session.thread_id
ctrl.session.terminate_e2e()
- gajim.connections[self.account].delete_session(
+ app.connections[self.account].delete_session(
fjid_, thread_id)
ctrl.no_autonegotiation = False
else:
@@ -1750,12 +1750,12 @@ class GroupchatControl(ChatControlBase):
puny_jid = helpers.sanitize_filename(self.room_jid)
puny_nick = helpers.sanitize_filename(obj.nick)
puny_new_nick = helpers.sanitize_filename(obj.new_nick)
- old_path = os.path.join(gajim.VCARD_PATH, puny_jid,
+ old_path = os.path.join(app.VCARD_PATH, puny_jid,
puny_nick)
- new_path = os.path.join(gajim.VCARD_PATH, puny_jid,
+ new_path = os.path.join(app.VCARD_PATH, puny_jid,
puny_new_nick)
files = {old_path: new_path}
- path = os.path.join(gajim.AVATAR_PATH, puny_jid)
+ path = os.path.join(app.AVATAR_PATH, puny_jid)
# possible extensions
for ext in ('.png', '.jpeg', '_notif_size_bw.png',
'_notif_size_colored.png'):
@@ -1793,23 +1793,23 @@ class GroupchatControl(ChatControlBase):
self.autorejoin = False
self.print_conversation(obj.reason, 'info', graphics=False)
- if len(gajim.events.get_events(self.account, jid=obj.fjid,
+ if len(app.events.get_events(self.account, jid=obj.fjid,
types=['pm'])) == 0:
self.remove_contact(obj.nick)
self.draw_all_roles()
else:
- c = gajim.contacts.get_gc_contact(self.account, self.room_jid,
+ c = app.contacts.get_gc_contact(self.account, self.room_jid,
obj.nick)
c.show = obj.show
c.status = obj.status
if obj.nick == self.nick and (not obj.status_code or \
'303' not in obj.status_code): # We became offline
self.got_disconnected()
- contact = gajim.contacts.\
+ contact = app.contacts.\
get_contact_with_highest_priority(self.account,
self.room_jid)
if contact:
- gajim.interface.roster.draw_contact(self.room_jid,
+ app.interface.roster.draw_contact(self.room_jid,
self.account)
if self.parent_win:
self.parent_win.redraw_tab(self)
@@ -1827,10 +1827,10 @@ class GroupchatControl(ChatControlBase):
self.draw_all_roles()
if obj.status_code and '201' in obj.status_code:
# We just created the room
- gajim.connections[self.account].request_gc_config(
+ app.connections[self.account].request_gc_config(
self.room_jid)
else:
- gc_c = gajim.contacts.get_gc_contact(self.account,
+ gc_c = app.contacts.get_gc_contact(self.account,
self.room_jid, obj.nick)
if not gc_c:
log.error('%s has an iter, but no gc_contact instance' % \
@@ -1839,14 +1839,14 @@ class GroupchatControl(ChatControlBase):
# Re-get vcard if avatar has changed
# We do that here because we may request it to the real JID if
# we knows it. connections.py doesn't know it.
- con = gajim.connections[self.account]
+ con = app.connections[self.account]
if gc_c and gc_c.jid:
real_jid = gc_c.jid
else:
real_jid = obj.fjid
if obj.fjid in obj.conn.vcard_shas:
if obj.avatar_sha != obj.conn.vcard_shas[obj.fjid]:
- server = gajim.get_server_from_jid(self.room_jid)
+ server = app.get_server_from_jid(self.room_jid)
if not server.startswith('irc'):
obj.conn.request_vcard(real_jid, obj.fjid)
else:
@@ -1859,7 +1859,7 @@ class GroupchatControl(ChatControlBase):
if cached_sha != obj.avatar_sha:
# avatar has been updated
# sha in mem will be updated later
- server = gajim.get_server_from_jid(self.room_jid)
+ server = app.get_server_from_jid(self.room_jid)
if not server.startswith('irc'):
obj.conn.request_vcard(real_jid, obj.fjid)
else:
@@ -1911,12 +1911,12 @@ class GroupchatControl(ChatControlBase):
right_changed:
st = ''
print_status = None
- for bookmark in gajim.connections[self.account].bookmarks:
+ for bookmark in app.connections[self.account].bookmarks:
if bookmark['jid'] == self.room_jid:
print_status = bookmark.get('print_status', None)
break
if not print_status:
- print_status = gajim.config.get('print_status_in_muc')
+ print_status = app.config.get('print_status_in_muc')
if obj.show == 'offline':
if obj.nick in self.attention_list:
self.attention_list.remove(obj.nick)
@@ -1954,31 +1954,31 @@ class GroupchatControl(ChatControlBase):
role_iter = self.get_role_iter(role)
if not role_iter:
role_iter = self.model.append(None,
- [gajim.interface.jabber_state_images['16']['closed'], role,
+ [app.interface.jabber_state_images['16']['closed'], role,
'role', role_name, None] + [None] * self.nb_ext_renderers)
self.draw_all_roles()
iter_ = self.model.append(role_iter, [None, nick, 'contact', name, None] + \
[None] * self.nb_ext_renderers)
- if not nick in gajim.contacts.get_nick_list(self.account,
+ if not nick in app.contacts.get_nick_list(self.account,
self.room_jid):
- gc_contact = gajim.contacts.create_gc_contact(
+ gc_contact = app.contacts.create_gc_contact(
room_jid=self.room_jid, account=self.account,
name=nick, show=show, status=status, role=role,
affiliation=affiliation, jid=j, resource=resource)
- gajim.contacts.add_gc_contact(self.account, gc_contact)
+ app.contacts.add_gc_contact(self.account, gc_contact)
self.draw_contact(nick)
self.draw_avatar(nick)
# Do not ask avatar to irc rooms as irc transports reply with messages
- server = gajim.get_server_from_jid(self.room_jid)
- if gajim.config.get('ask_avatars_on_startup') and \
+ server = app.get_server_from_jid(self.room_jid)
+ if app.config.get('ask_avatars_on_startup') and \
not server.startswith('irc'):
fake_jid = self.room_jid + '/' + nick
pixbuf = gtkgui_helpers.get_avatar_pixbuf_from_cache(fake_jid)
if pixbuf == 'ask':
if j and not self.is_anonymous:
- gajim.connections[self.account].request_vcard(j, fake_jid)
+ app.connections[self.account].request_vcard(j, fake_jid)
else:
- gajim.connections[self.account].request_vcard(fake_jid,
+ app.connections[self.account].request_vcard(fake_jid,
fake_jid)
if nick == self.nick: # we became online
self.got_connected()
@@ -2004,10 +2004,10 @@ class GroupchatControl(ChatControlBase):
iter_ = self.get_contact_iter(nick)
if not iter_:
return
- gc_contact = gajim.contacts.get_gc_contact(self.account, self.room_jid,
+ gc_contact = app.contacts.get_gc_contact(self.account, self.room_jid,
nick)
if gc_contact:
- gajim.contacts.remove_gc_contact(self.account, gc_contact)
+ app.contacts.remove_gc_contact(self.account, gc_contact)
parent_iter = self.model.iter_parent(iter_)
self.model.remove(iter_)
if self.model.iter_n_children(parent_iter) == 0:
@@ -2022,7 +2022,7 @@ class GroupchatControl(ChatControlBase):
if self.encryption:
self.sendmessage = True
- gajim.plugin_manager.extension_point(
+ app.plugin_manager.extension_point(
'send_message' + self.encryption, self)
if not self.sendmessage:
return
@@ -2053,7 +2053,7 @@ class GroupchatControl(ChatControlBase):
else:
correct_id = None
# Send the message
- gajim.nec.push_outgoing_event(GcMessageOutgoingEvent(None,
+ app.nec.push_outgoing_event(GcMessageOutgoingEvent(None,
account=self.account, jid=self.room_jid, message=message,
xhtml=xhtml, label=label, callback=_cb, correct_id=correct_id,
automatic_message=False))
@@ -2061,7 +2061,7 @@ class GroupchatControl(ChatControlBase):
self.msg_textview.grab_focus()
def get_role(self, nick):
- gc_contact = gajim.contacts.get_gc_contact(self.account, self.room_jid,
+ gc_contact = app.contacts.get_gc_contact(self.account, self.room_jid,
nick)
if gc_contact:
return gc_contact.role
@@ -2071,14 +2071,14 @@ class GroupchatControl(ChatControlBase):
def minimizable(self):
if self.force_non_minimizable:
return False
- if self.contact.jid not in gajim.config.get_per('accounts', self.account,
+ if self.contact.jid not in app.config.get_per('accounts', self.account,
'non_minimized_gc').split(' '):
return True
return False
def minimize(self, status='offline'):
# Minimize it
- win = gajim.interface.msg_win_mgr.get_window(self.contact.jid,
+ win = app.interface.msg_win_mgr.get_window(self.contact.jid,
self.account)
ctrl = win.get_control(self.contact.jid, self.account)
@@ -2096,7 +2096,7 @@ class GroupchatControl(ChatControlBase):
ctrl.parent_win = None
self.send_chatstate('inactive', self.contact)
- gajim.interface.roster.add_groupchat(self.contact.jid, self.account,
+ app.interface.roster.add_groupchat(self.contact.jid, self.account,
status = self.subject)
del win._controls[self.account][self.contact.jid]
@@ -2118,7 +2118,7 @@ class GroupchatControl(ChatControlBase):
# do not send if we have chat state notifications disabled
# that means we won't reply to the from other peer
# so we do not broadcast jep85 capabalities
- chatstate_setting = gajim.config.get('outgoing_chat_state_notifications')
+ chatstate_setting = app.config.get('outgoing_chat_state_notifications')
if chatstate_setting == 'disabled':
return
@@ -2134,13 +2134,13 @@ class GroupchatControl(ChatControlBase):
# if wel're inactive prevent composing (XEP violation)
if contact.our_chatstate == 'inactive' and state == 'composing':
# go active before
- gajim.nec.push_outgoing_event(GcMessageOutgoingEvent(None,
+ app.nec.push_outgoing_event(GcMessageOutgoingEvent(None,
account=self.account, jid=self.contact.jid, chatstate='active',
control=self))
contact.our_chatstate = 'active'
self.reset_kbd_mouse_timeout_vars()
- gajim.nec.push_outgoing_event(GcMessageOutgoingEvent(None,
+ app.nec.push_outgoing_event(GcMessageOutgoingEvent(None,
account=self.account, jid=self.contact.jid, chatstate=state,
control=self))
@@ -2154,63 +2154,63 @@ class GroupchatControl(ChatControlBase):
super(GroupchatControl, self).shutdown()
# PluginSystem: removing GUI extension points connected with
# GrouphatControl instance object
- gajim.plugin_manager.remove_gui_extension_point('groupchat_control',
+ app.plugin_manager.remove_gui_extension_point('groupchat_control',
self)
# Preventing autorejoin from being activated
self.autorejoin = False
- gajim.ged.remove_event_handler('gc-presence-received', ged.GUI1,
+ app.ged.remove_event_handler('gc-presence-received', ged.GUI1,
self._nec_gc_presence_received)
- gajim.ged.remove_event_handler('gc-message-received', ged.GUI1,
+ app.ged.remove_event_handler('gc-message-received', ged.GUI1,
self._nec_gc_message_received)
- gajim.ged.remove_event_handler('vcard-published', ged.GUI1,
+ app.ged.remove_event_handler('vcard-published', ged.GUI1,
self._nec_vcard_published)
- gajim.ged.remove_event_handler('vcard-received', ged.GUI1,
+ app.ged.remove_event_handler('vcard-received', ged.GUI1,
self._nec_vcard_received)
- gajim.ged.remove_event_handler('gc-subject-received', ged.GUI1,
+ app.ged.remove_event_handler('gc-subject-received', ged.GUI1,
self._nec_gc_subject_received)
- gajim.ged.remove_event_handler('gc-config-changed-received', ged.GUI1,
+ app.ged.remove_event_handler('gc-config-changed-received', ged.GUI1,
self._nec_gc_config_changed_received)
- gajim.ged.remove_event_handler('signed-in', ged.GUI1,
+ app.ged.remove_event_handler('signed-in', ged.GUI1,
self._nec_signed_in)
- gajim.ged.remove_event_handler('decrypted-message-received', ged.GUI2,
+ app.ged.remove_event_handler('decrypted-message-received', ged.GUI2,
self._nec_decrypted_message_received)
- if self.room_jid in gajim.gc_connected[self.account] and \
- gajim.gc_connected[self.account][self.room_jid]:
+ if self.room_jid in app.gc_connected[self.account] and \
+ app.gc_connected[self.account][self.room_jid]:
# Tell connection to note the date we disconnect to avoid duplicate
# logs. We do it only when connected because if connection was lost
# there may be new messages since disconnection.
- gajim.connections[self.account].gc_got_disconnected(self.room_jid)
- gajim.connections[self.account].send_gc_status(self.nick,
+ app.connections[self.account].gc_got_disconnected(self.room_jid)
+ app.connections[self.account].send_gc_status(self.nick,
self.room_jid, show='offline', status=status)
- nick_list = gajim.contacts.get_nick_list(self.account, self.room_jid)
+ nick_list = app.contacts.get_nick_list(self.account, self.room_jid)
for nick in nick_list:
# Update pm chat window
fjid = self.room_jid + '/' + nick
- ctrl = gajim.interface.msg_win_mgr.get_gc_control(fjid,
+ ctrl = app.interface.msg_win_mgr.get_gc_control(fjid,
self.account)
if ctrl:
- contact = gajim.contacts.get_gc_contact(self.account,
+ contact = app.contacts.get_gc_contact(self.account,
self.room_jid, nick)
contact.show = 'offline'
contact.status = ''
ctrl.update_ui()
ctrl.parent_win.redraw_tab(ctrl)
- for sess in gajim.connections[self.account].get_sessions(fjid):
+ for sess in app.connections[self.account].get_sessions(fjid):
if sess.control:
sess.control.no_autonegotiation = False
if sess.enable_encryption:
sess.terminate_e2e()
- gajim.connections[self.account].delete_session(fjid,
+ app.connections[self.account].delete_session(fjid,
sess.thread_id)
# They can already be removed by the destroy function
- if self.room_jid in gajim.contacts.get_gc_list(self.account):
- gajim.contacts.remove_room(self.account, self.room_jid)
- del gajim.gc_connected[self.account][self.room_jid]
+ if self.room_jid in app.contacts.get_gc_list(self.account):
+ app.contacts.remove_room(self.account, self.room_jid)
+ del app.gc_connected[self.account][self.room_jid]
# Save hpaned position
- gajim.config.set('gc-hpaned-position', self.hpaned.get_position())
+ app.config.set('gc-hpaned-position', self.hpaned.get_position())
# remove all register handlers on wigets, created by self.xml
# to prevent circular references among objects
for i in list(self.handlers.keys()):
@@ -2218,16 +2218,16 @@ class GroupchatControl(ChatControlBase):
self.handlers[i].disconnect(i)
del self.handlers[i]
# Remove unread events from systray
- gajim.events.remove_events(self.account, self.room_jid)
+ app.events.remove_events(self.account, self.room_jid)
def safe_shutdown(self):
if self.minimizable():
return True
- includes = gajim.config.get('confirm_close_muc_rooms').split(' ')
- excludes = gajim.config.get('noconfirm_close_muc_rooms').split(' ')
+ includes = app.config.get('confirm_close_muc_rooms').split(' ')
+ excludes = app.config.get('noconfirm_close_muc_rooms').split(' ')
# whether to ask for comfirmation before closing muc
- if (gajim.config.get('confirm_close_muc') or self.room_jid in includes)\
- and gajim.gc_connected[self.account][self.room_jid] and self.room_jid \
+ if (app.config.get('confirm_close_muc') or self.room_jid in includes)\
+ and app.gc_connected[self.account][self.room_jid] and self.room_jid \
not in excludes:
return False
return True
@@ -2242,23 +2242,23 @@ class GroupchatControl(ChatControlBase):
self.list_treeview.get_selection().unselect_all()
on_no(self)
return
- includes = gajim.config.get('confirm_close_muc_rooms').split(' ')
- excludes = gajim.config.get('noconfirm_close_muc_rooms').split(' ')
+ includes = app.config.get('confirm_close_muc_rooms').split(' ')
+ excludes = app.config.get('noconfirm_close_muc_rooms').split(' ')
# whether to ask for comfirmation before closing muc
- if (gajim.config.get('confirm_close_muc') or self.room_jid in includes)\
- and gajim.gc_connected[self.account][self.room_jid] and self.room_jid \
+ if (app.config.get('confirm_close_muc') or self.room_jid in includes)\
+ and app.gc_connected[self.account][self.room_jid] and self.room_jid \
not in excludes:
def on_ok(clicked):
if clicked:
# user does not want to be asked again
- gajim.config.set('confirm_close_muc', False)
+ app.config.set('confirm_close_muc', False)
on_yes(self)
def on_cancel(clicked):
if clicked:
# user does not want to be asked again
- gajim.config.set('confirm_close_muc', False)
+ app.config.set('confirm_close_muc', False)
on_no(self)
pritext = _('Are you sure you want to leave group chat "%s"?')\
@@ -2289,9 +2289,9 @@ class GroupchatControl(ChatControlBase):
# for room_jid & number of unread private msgs with each contact
# that we have
nb = 0
- for nick in gajim.contacts.get_nick_list(self.account, self.room_jid):
+ for nick in app.contacts.get_nick_list(self.account, self.room_jid):
fjid = self.room_jid + '/' + nick
- nb += len(gajim.events.get_events(self.account, fjid))
+ nb += len(app.events.get_events(self.account, fjid))
# gc can only have messages as event
return nb
@@ -2299,7 +2299,7 @@ class GroupchatControl(ChatControlBase):
def on_ok(subject):
# Note, we don't update self.subject since we don't know whether it
# will work yet
- gajim.connections[self.account].send_gc_subject(self.room_jid,
+ app.connections[self.account].send_gc_subject(self.room_jid,
subject)
dialogs.InputTextDialog(_('Changing Subject'),
@@ -2312,24 +2312,24 @@ class GroupchatControl(ChatControlBase):
self.force_non_minimizable = False
def _on_change_nick_menuitem_activate(self, widget):
- if 'change_nick_dialog' in gajim.interface.instances:
- gajim.interface.instances['change_nick_dialog'].dialog.present()
+ if 'change_nick_dialog' in app.interface.instances:
+ app.interface.instances['change_nick_dialog'].dialog.present()
else:
title = _('Changing Nickname')
prompt = _('Please specify the new nickname you want to use:')
- gajim.interface.instances['change_nick_dialog'] = \
+ app.interface.instances['change_nick_dialog'] = \
dialogs.ChangeNickDialog(self.account, self.room_jid, title,
prompt, change_nick=True, transient_for=self.parent_win.window)
def _on_configure_room_menuitem_activate(self, widget):
- c = gajim.contacts.get_gc_contact(self.account, self.room_jid,
+ c = app.contacts.get_gc_contact(self.account, self.room_jid,
self.nick)
if c.affiliation == 'owner':
- gajim.connections[self.account].request_gc_config(self.room_jid)
+ app.connections[self.account].request_gc_config(self.room_jid)
elif c.affiliation == 'admin':
- if self.room_jid not in gajim.interface.instances[self.account][
+ if self.room_jid not in app.interface.instances[self.account][
'gc_config']:
- gajim.interface.instances[self.account]['gc_config'][
+ app.interface.instances[self.account]['gc_config'][
self.room_jid] = config.GroupchatConfigWindow(self.account,
self.room_jid)
@@ -2343,7 +2343,7 @@ class GroupchatControl(ChatControlBase):
dialogs.ErrorDialog(_('Invalid group chat JID'),
_('The group chat JID has not allowed characters.'))
return
- gajim.connections[self.account].destroy_gc_room(self.room_jid,
+ app.connections[self.account].destroy_gc_room(self.room_jid,
reason, jid)
# Ask for a reason
@@ -2357,20 +2357,20 @@ class GroupchatControl(ChatControlBase):
"""
Bookmark the room, without autojoin and not minimized
"""
- password = gajim.gc_passwords.get(self.room_jid, '')
- gajim.interface.add_gc_bookmark(self.account, self.name, self.room_jid,\
+ password = app.gc_passwords.get(self.room_jid, '')
+ app.interface.add_gc_bookmark(self.account, self.name, self.room_jid,\
'0', '0', password, self.nick)
def _on_request_voice_menuitem_activate(self, widget):
"""
Request voice in the current room
"""
- gajim.connections[self.account].request_voice(self.room_jid)
+ app.connections[self.account].request_voice(self.room_jid)
def _on_drag_data_received(self, widget, context, x, y, selection,
target_type, timestamp):
# Invite contact to groupchat
- treeview = gajim.interface.roster.tree
+ treeview = app.interface.roster.tree
model = treeview.get_model()
if not selection.get_data() or target_type == 80:
# target_type = 80 means a file is dropped
@@ -2382,7 +2382,7 @@ class GroupchatControl(ChatControlBase):
if type_ != 'contact': # source is not a contact
return
contact_jid = data
- gajim.connections[self.account].send_invite(self.room_jid, contact_jid)
+ app.connections[self.account].send_invite(self.room_jid, contact_jid)
self.print_conversation(_('%(jid)s has been invited in this room') % {
'jid': contact_jid}, graphics=False)
@@ -2408,7 +2408,7 @@ class GroupchatControl(ChatControlBase):
else:
begin = ''
- gc_refer_to_nick_char = gajim.config.get('gc_refer_to_nick_char')
+ gc_refer_to_nick_char = app.config.get('gc_refer_to_nick_char')
with_refer_to_nick_char = False
after_nick_len = 1 # the space that is printed after we type [Tab]
@@ -2426,7 +2426,7 @@ class GroupchatControl(ChatControlBase):
begin = self.nick_hits.pop(0)
else:
self.nick_hits = [] # clear the hit list
- list_nick = gajim.contacts.get_nick_list(self.account,
+ list_nick = app.contacts.get_nick_list(self.account,
self.room_jid)
list_nick.sort(key=str.lower) # case-insensitive sort
if begin == '':
@@ -2457,7 +2457,7 @@ class GroupchatControl(ChatControlBase):
# completion
# gc_refer_to_nick_char may be more than one char!
start_iter.backward_chars(len(begin) + len(add))
- elif self.last_key_tabs and not gajim.config.get(
+ elif self.last_key_tabs and not app.config.get(
'shell_like_completion'):
# have to accomodate for the added space from last
# completion
@@ -2470,7 +2470,7 @@ class GroupchatControl(ChatControlBase):
# get a shell-like completion
# if there's more than one nick for this completion, complete
# only the part that all these nicks have in common
- if gajim.config.get('shell_like_completion') and \
+ if app.config.get('shell_like_completion') and \
len(self.nick_hits) > 1:
end = False
completion = ''
@@ -2512,7 +2512,7 @@ class GroupchatControl(ChatControlBase):
When a row is expanded: change the icon of the arrow
"""
model = widget.get_model()
- image = gajim.interface.jabber_state_images['16']['opened']
+ image = app.interface.jabber_state_images['16']['opened']
model[iter_][Column.IMG] = image
def on_list_treeview_row_collapsed(self, widget, iter_, path):
@@ -2520,7 +2520,7 @@ class GroupchatControl(ChatControlBase):
When a row is collapsed: change the icon of the arrow
"""
model = widget.get_model()
- image = gajim.interface.jabber_state_images['16']['closed']
+ image = app.interface.jabber_state_images['16']['closed']
model[iter_][Column.IMG] = image
def kick(self, widget, nick):
@@ -2528,7 +2528,7 @@ class GroupchatControl(ChatControlBase):
Kick a user
"""
def on_ok(reason):
- gajim.connections[self.account].gc_set_role(self.room_jid, nick,
+ app.connections[self.account].gc_set_role(self.room_jid, nick,
'none', reason)
# ask for reason
@@ -2541,7 +2541,7 @@ class GroupchatControl(ChatControlBase):
Make contact's popup menu
"""
nick = self.model[iter_][Column.NICK]
- c = gajim.contacts.get_gc_contact(self.account, self.room_jid, nick)
+ c = app.contacts.get_gc_contact(self.account, self.room_jid, nick)
fjid = self.room_jid + '/' + nick
jid = c.jid
target_affiliation = c.affiliation
@@ -2549,7 +2549,7 @@ class GroupchatControl(ChatControlBase):
# looking for user's affiliation and role
user_nick = self.nick
- user_affiliation = gajim.contacts.get_gc_contact(self.account,
+ user_affiliation = app.contacts.get_gc_contact(self.account,
self.room_jid, user_nick).affiliation
user_role = self.get_role(user_nick)
@@ -2624,7 +2624,7 @@ class GroupchatControl(ChatControlBase):
item = xml.get_object('invite_menuitem')
if jid and c.name != self.nick:
bookmarked = False
- contact = gajim.contacts.get_contact(self.account, jid, c.resource)
+ contact = app.contacts.get_contact(self.account, jid, c.resource)
if contact and contact.supports(nbxmpp.NS_CONFERENCE):
bookmarked=True
gui_menu_builder.build_invite_submenu(item, ((c, self.account),),
@@ -2641,8 +2641,8 @@ class GroupchatControl(ChatControlBase):
self.handlers[id_] = item
item = xml.get_object('add_to_roster_menuitem')
- our_jid = gajim.get_jid_from_account(self.account)
- if not jid or jid == our_jid or not gajim.connections[self.account].\
+ our_jid = app.get_jid_from_account(self.account)
+ if not jid or jid == our_jid or not app.connections[self.account].\
roster_supported:
item.set_sensitive(False)
else:
@@ -2676,16 +2676,16 @@ class GroupchatControl(ChatControlBase):
# show the popup now!
menu = xml.get_object('gc_occupants_menu')
menu.show_all()
- menu.attach_to_widget(gajim.interface.roster.window, None)
+ menu.attach_to_widget(app.interface.roster.window, None)
menu.popup(None, None, None, None, event.button, event.time)
def _start_private_message(self, nick):
- gc_c = gajim.contacts.get_gc_contact(self.account, self.room_jid, nick)
+ gc_c = app.contacts.get_gc_contact(self.account, self.room_jid, nick)
nick_jid = gc_c.get_full_jid()
- ctrl = gajim.interface.msg_win_mgr.get_control(nick_jid, self.account)
+ ctrl = app.interface.msg_win_mgr.get_control(nick_jid, self.account)
if not ctrl:
- ctrl = gajim.interface.new_private_chat(gc_c, self.account)
+ ctrl = app.interface.new_private_chat(gc_c, self.account)
if ctrl:
ctrl.parent_win.set_active_tab(ctrl)
@@ -2710,7 +2710,7 @@ class GroupchatControl(ChatControlBase):
"""
When an iter is double clicked: open the chat window
"""
- if not gajim.single_click:
+ if not app.single_click:
self.on_row_activated(widget, path)
def on_list_treeview_button_press_event(self, widget, event):
@@ -2739,13 +2739,13 @@ class GroupchatControl(ChatControlBase):
return True
elif event.button == 1: # left click
- if gajim.single_click and not event.get_state() & Gdk.ModifierType.SHIFT_MASK:
+ if app.single_click and not event.get_state() & Gdk.ModifierType.SHIFT_MASK:
self.on_row_activated(widget, path)
return True
else:
iter_ = self.model.get_iter(path)
nick = self.model[iter_][Column.NICK]
- if not nick in gajim.contacts.get_nick_list(self.account,
+ if not nick in app.contacts.get_nick_list(self.account,
self.room_jid):
# it's a group
if x < 27:
@@ -2770,7 +2770,7 @@ class GroupchatControl(ChatControlBase):
start = ' '
add = ' '
else:
- gc_refer_to_nick_char = gajim.config.get('gc_refer_to_nick_char')
+ gc_refer_to_nick_char = app.config.get('gc_refer_to_nick_char')
add = gc_refer_to_nick_char + ' '
message_buffer.insert_at_cursor(start + nick + add)
@@ -2778,28 +2778,28 @@ class GroupchatControl(ChatControlBase):
"""
Grant voice privilege to a user
"""
- gajim.connections[self.account].gc_set_role(self.room_jid, nick,
+ app.connections[self.account].gc_set_role(self.room_jid, nick,
'participant')
def revoke_voice(self, widget, nick):
"""
Revoke voice privilege to a user
"""
- gajim.connections[self.account].gc_set_role(self.room_jid, nick,
+ app.connections[self.account].gc_set_role(self.room_jid, nick,
'visitor')
def grant_moderator(self, widget, nick):
"""
Grant moderator privilege to a user
"""
- gajim.connections[self.account].gc_set_role(self.room_jid, nick,
+ app.connections[self.account].gc_set_role(self.room_jid, nick,
'moderator')
def revoke_moderator(self, widget, nick):
"""
Revoke moderator privilege to a user
"""
- gajim.connections[self.account].gc_set_role(self.room_jid, nick,
+ app.connections[self.account].gc_set_role(self.room_jid, nick,
'participant')
def ban(self, widget, jid):
@@ -2807,11 +2807,11 @@ class GroupchatControl(ChatControlBase):
Ban a user
"""
def on_ok(reason):
- gajim.connections[self.account].gc_set_affiliation(self.room_jid,
+ app.connections[self.account].gc_set_affiliation(self.room_jid,
jid, 'outcast', reason)
# to ban we know the real jid. so jid is not fakejid
- nick = gajim.get_nick_from_jid(jid)
+ nick = app.get_nick_from_jid(jid)
# ask for reason
dialogs.InputDialog(_('Banning %s') % nick,
_('You may specify a reason below:'), ok_handler=on_ok,
@@ -2821,60 +2821,60 @@ class GroupchatControl(ChatControlBase):
"""
Grant membership privilege to a user
"""
- gajim.connections[self.account].gc_set_affiliation(self.room_jid, jid,
+ app.connections[self.account].gc_set_affiliation(self.room_jid, jid,
'member')
def revoke_membership(self, widget, jid):
"""
Revoke membership privilege to a user
"""
- gajim.connections[self.account].gc_set_affiliation(self.room_jid, jid,
+ app.connections[self.account].gc_set_affiliation(self.room_jid, jid,
'none')
def grant_admin(self, widget, jid):
"""
Grant administrative privilege to a user
"""
- gajim.connections[self.account].gc_set_affiliation(self.room_jid, jid,
+ app.connections[self.account].gc_set_affiliation(self.room_jid, jid,
'admin')
def revoke_admin(self, widget, jid):
"""
Revoke administrative privilege to a user
"""
- gajim.connections[self.account].gc_set_affiliation(self.room_jid, jid,
+ app.connections[self.account].gc_set_affiliation(self.room_jid, jid,
'member')
def grant_owner(self, widget, jid):
"""
Grant owner privilege to a user
"""
- gajim.connections[self.account].gc_set_affiliation(self.room_jid, jid,
+ app.connections[self.account].gc_set_affiliation(self.room_jid, jid,
'owner')
def revoke_owner(self, widget, jid):
"""
Revoke owner privilege to a user
"""
- gajim.connections[self.account].gc_set_affiliation(self.room_jid, jid,
+ app.connections[self.account].gc_set_affiliation(self.room_jid, jid,
'admin')
def on_info(self, widget, nick):
"""
Call vcard_information_window class to display user's information
"""
- gc_contact = gajim.contacts.get_gc_contact(self.account, self.room_jid,
+ gc_contact = app.contacts.get_gc_contact(self.account, self.room_jid,
nick)
contact = gc_contact.as_contact()
- if contact.jid in gajim.interface.instances[self.account]['infos']:
- gajim.interface.instances[self.account]['infos'][contact.jid].\
+ if contact.jid in app.interface.instances[self.account]['infos']:
+ app.interface.instances[self.account]['infos'][contact.jid].\
window.present()
else:
- gajim.interface.instances[self.account]['infos'][contact.jid] = \
+ app.interface.instances[self.account]['infos'][contact.jid] = \
vcard.VcardWindow(contact, self.account, gc_contact)
def on_history(self, widget, nick):
- jid = gajim.construct_fjid(self.room_jid, nick)
+ jid = app.construct_fjid(self.room_jid, nick)
self._on_history_menuitem_activate(widget=widget, jid=jid)
def on_add_to_roster(self, widget, jid):
@@ -2882,7 +2882,7 @@ class GroupchatControl(ChatControlBase):
def on_block(self, widget, nick):
fjid = self.room_jid + '/' + nick
- connection = gajim.connections[self.account]
+ connection = app.connections[self.account]
default = connection.privacy_default_list
if fjid in connection.blocked_contacts:
return
@@ -2899,7 +2899,7 @@ class GroupchatControl(ChatControlBase):
def on_unblock(self, widget, nick):
fjid = self.room_jid + '/' + nick
- connection = gajim.connections[self.account]
+ connection = app.connections[self.account]
default = connection.privacy_default_list
connection.new_blocked_list = []
# needed for draw_contact:
@@ -2917,8 +2917,8 @@ class GroupchatControl(ChatControlBase):
connection.blocked_groups = []
connection.set_default_list('')
connection.del_privacy_list(default)
- if 'privay_list_block' in gajim.interface.instances[self.account]:
- del gajim.interface.instances[self.account]\
+ if 'privay_list_block' in app.interface.instances[self.account]:
+ del app.interface.instances[self.account]\
['privay_list_block']
else:
connection.set_privacy_list(default, connection.new_blocked_list)
diff --git a/gajim/groups.py b/gajim/groups.py
index 3ead0aa92..a2e418ee4 100644
--- a/gajim/groups.py
+++ b/gajim/groups.py
@@ -21,9 +21,9 @@
'''Window to create new post for discussion groups service.'''
-from common import gajim
+from gajim.common import app
from nbxmpp import Node
-import gtkgui_helpers
+from gajim import gtkgui_helpers
class GroupsPostWindow:
def __init__(self, account, servicejid, groupid):
@@ -67,7 +67,7 @@ class GroupsPostWindow:
item.addChild('content', {}, [buf.get_text(buf.get_start_iter(), buf.get_end_iter(), True)])
# publish it to node
- gajim.connections[self.account].send_pb_publish(self.servicejid, self.groupid, item, '0')
+ app.connections[self.account].send_pb_publish(self.servicejid, self.groupid, item, '0')
# close the window
self.window.destroy()
diff --git a/gajim/gtkexcepthook.py b/gajim/gtkexcepthook.py
index 77e2890a5..09e9338ba 100644
--- a/gajim/gtkexcepthook.py
+++ b/gajim/gtkexcepthook.py
@@ -31,7 +31,7 @@ import gi
gi.require_version('Gtk', '3.0')
from gi.repository import Gtk
from io import StringIO
-from common import configpaths
+from gajim.common import configpaths
glade_file = os.path.join(configpaths.get('GUI'), 'exception_dialog.ui')
diff --git a/gajim/gtkgui_helpers.py b/gajim/gtkgui_helpers.py
index 95c33de7f..5aca86ac2 100644
--- a/gajim/gtkgui_helpers.py
+++ b/gajim/gtkgui_helpers.py
@@ -45,13 +45,13 @@ from io import BytesIO
import logging
log = logging.getLogger('gajim.gtkgui_helpers')
-from common import i18n
-from common import gajim
-from common import pep
-from common import configpaths
+from gajim.common import i18n
+from gajim.common import app
+from gajim.common import pep
+from gajim.common import configpaths
gtk_icon_theme = Gtk.IconTheme.get_default()
-gtk_icon_theme.append_search_path(gajim.ICONS_DIR)
+gtk_icon_theme.append_search_path(app.ICONS_DIR)
class Color:
BLACK = Gdk.RGBA(red=0, green=0, blue=0, alpha=1)
@@ -82,8 +82,8 @@ def get_icon_path(icon_name, size=16):
except GLib.GError as e:
log.error("Unable to find icon %s: %s" % (icon_name, str(e)))
-import vcard
-import dialogs
+from gajim import vcard
+from gajim import dialogs
HAS_PYWIN32 = True
@@ -95,7 +95,7 @@ if os.name == 'nt':
except ImportError:
HAS_PYWIN32 = False
-from common import helpers
+from gajim.common import helpers
screen_w = Gdk.Screen.width()
screen_h = Gdk.Screen.height()
@@ -118,7 +118,7 @@ def get_image_button(icon_name, tooltip, toggle=False):
button.set_image(image)
return button
-GUI_DIR = os.path.join(gajim.DATA_DIR, 'gui')
+GUI_DIR = os.path.join(app.DATA_DIR, 'gui')
def get_gtk_builder(file_name, widget=None):
file_path = os.path.join(GUI_DIR, file_name)
builder = Gtk.Builder()
@@ -161,7 +161,7 @@ def popup_emoticons_under_button(menu, button, parent_win):
alloc = button.get_allocation()
button_x, button_y = alloc.x, alloc.y
translated_coordinates = button.translate_coordinates(
- gajim.interface.roster.window, 0, 0)
+ app.interface.roster.window, 0, 0)
if translated_coordinates:
button_x, button_y = translated_coordinates
@@ -190,9 +190,9 @@ def get_theme_font_for_option(theme, option):
"""
Return string description of the font, stored in theme preferences
"""
- font_name = gajim.config.get_per('themes', theme, option)
+ font_name = app.config.get_per('themes', theme, option)
font_desc = Pango.FontDescription()
- font_prop_str = gajim.config.get_per('themes', theme, option + 'attrs')
+ font_prop_str = app.config.get_per('themes', theme, option + 'attrs')
if font_prop_str:
if font_prop_str.find('B') != -1:
font_desc.set_weight(Pango.Weight.BOLD)
@@ -427,7 +427,7 @@ def set_unset_urgency_hint(window, unread_messages_no):
Sets/unset urgency hint in window argument depending if we have unread
messages or not
"""
- if gajim.config.get('use_urgency_hint'):
+ if app.config.get('use_urgency_hint'):
if unread_messages_no > 0:
window.props.urgency_hint = True
else:
@@ -645,8 +645,8 @@ def get_scaled_pixbuf(pixbuf, kind):
"""
# resize to a width / height for the avatar not to have distortion
# (keep aspect ratio)
- width = gajim.config.get(kind + '_avatar_width')
- height = gajim.config.get(kind + '_avatar_height')
+ width = app.config.get(kind + '_avatar_width')
+ height = app.config.get(kind + '_avatar_height')
if width < 1 or height < 1:
return None
@@ -661,14 +661,14 @@ def get_avatar_pixbuf_from_cache(fjid, use_local=True):
Returns 'ask' if cached vcard should not be used (user changed his vcard, so
we have new sha) or if we don't have the vcard
"""
- jid, nick = gajim.get_room_and_nick_from_fjid(fjid)
- if gajim.config.get('hide_avatar_of_transport') and\
- gajim.jid_is_transport(jid):
+ jid, nick = app.get_room_and_nick_from_fjid(fjid)
+ if app.config.get('hide_avatar_of_transport') and\
+ app.jid_is_transport(jid):
# don't show avatar for the transport itself
return None
- if any(jid in gajim.contacts.get_gc_list(acc) for acc in \
- gajim.contacts.get_accounts()):
+ if any(jid in app.contacts.get_gc_list(acc) for acc in \
+ app.contacts.get_accounts()):
is_groupchat_contact = True
else:
is_groupchat_contact = False
@@ -676,12 +676,12 @@ def get_avatar_pixbuf_from_cache(fjid, use_local=True):
puny_jid = helpers.sanitize_filename(jid)
if is_groupchat_contact:
puny_nick = helpers.sanitize_filename(nick)
- path = os.path.join(gajim.VCARD_PATH, puny_jid, puny_nick)
- local_avatar_basepath = os.path.join(gajim.AVATAR_PATH, puny_jid,
+ path = os.path.join(app.VCARD_PATH, puny_jid, puny_nick)
+ local_avatar_basepath = os.path.join(app.AVATAR_PATH, puny_jid,
puny_nick) + '_local'
else:
- path = os.path.join(gajim.VCARD_PATH, puny_jid)
- local_avatar_basepath = os.path.join(gajim.AVATAR_PATH, puny_jid) + \
+ path = os.path.join(app.VCARD_PATH, puny_jid)
+ local_avatar_basepath = os.path.join(app.AVATAR_PATH, puny_jid) + \
'_local'
if use_local:
for extension in ('.png', '.jpeg'):
@@ -695,7 +695,7 @@ def get_avatar_pixbuf_from_cache(fjid, use_local=True):
if not os.path.isfile(path):
return 'ask'
- vcard_dict = list(gajim.connections.values())[0].get_cached_vcard(fjid,
+ vcard_dict = list(app.connections.values())[0].get_cached_vcard(fjid,
is_groupchat_contact)
if not vcard_dict: # This can happen if cached vcard is too old
return 'ask'
@@ -832,7 +832,7 @@ def on_avatar_save_as_menuitem_activate(widget, jid, default_name=''):
action=Gtk.FileChooserAction.SAVE, buttons=(Gtk.STOCK_CANCEL,
Gtk.ResponseType.CANCEL, Gtk.STOCK_SAVE, Gtk.ResponseType.OK),
default_response=Gtk.ResponseType.OK,
- current_folder=gajim.config.get('last_save_dir'), on_response_ok=on_ok,
+ current_folder=app.config.get('last_save_dir'), on_response_ok=on_ok,
on_response_cancel=on_cancel)
dialog.set_current_name(default_name + '.jpeg')
@@ -903,7 +903,7 @@ def load_icon(icon_name):
"""
Load an icon from the iconset in 16x16
"""
- iconset = gajim.config.get('iconset')
+ iconset = app.config.get('iconset')
path = os.path.join(helpers.get_iconset_path(iconset), '16x16', '')
icon_list = _load_icon_list([icon_name], path)
return icon_list[icon_name]
@@ -912,7 +912,7 @@ def load_mood_icon(icon_name):
"""
Load an icon from the mood iconset in 16x16
"""
- iconset = gajim.config.get('mood_iconset')
+ iconset = app.config.get('mood_iconset')
path = os.path.join(helpers.get_mood_iconset_path(iconset), '')
icon_list = _load_icon_list([icon_name], path)
return icon_list[icon_name]
@@ -921,7 +921,7 @@ def load_activity_icon(category, activity = None):
"""
Load an icon from the activity iconset in 16x16
"""
- iconset = gajim.config.get('activity_iconset')
+ iconset = app.config.get('activity_iconset')
path = os.path.join(helpers.get_activity_iconset_path(iconset),
category, '')
if activity is None:
@@ -939,7 +939,7 @@ def get_pep_as_pixbuf(pep_class):
elif isinstance(pep_class, pep.UserTunePEP):
icon = get_icon_pixmap('audio-x-generic', quiet=True)
if not icon:
- path = os.path.join(gajim.DATA_DIR, 'emoticons', 'static',
+ path = os.path.join(app.DATA_DIR, 'emoticons', 'static',
'music.png')
return GdkPixbuf.Pixbuf.new_from_file(path)
return icon
@@ -972,7 +972,7 @@ def load_icons_meta():
Load and return - AND + small icons to put on top left of an icon for meta
contacts
"""
- iconset = gajim.config.get('iconset')
+ iconset = app.config.get('iconset')
path = os.path.join(helpers.get_iconset_path(iconset), '16x16')
# try to find opened_meta.png file, else opened.png else nopixbuf merge
path_opened = os.path.join(path, 'opened_meta.png')
@@ -1025,44 +1025,44 @@ def make_jabber_state_images():
"""
Initialize jabber_state_images dictionary
"""
- iconset = gajim.config.get('iconset')
+ iconset = app.config.get('iconset')
if iconset:
if helpers.get_iconset_path(iconset):
path = os.path.join(helpers.get_iconset_path(iconset), '16x16')
if not os.path.exists(path):
- iconset = gajim.config.DEFAULT_ICONSET
- gajim.config.set('iconset', iconset)
+ iconset = app.config.DEFAULT_ICONSET
+ app.config.set('iconset', iconset)
else:
- iconset = gajim.config.DEFAULT_ICONSET
- gajim.config.set('iconset', iconset)
+ iconset = app.config.DEFAULT_ICONSET
+ app.config.set('iconset', iconset)
else:
- iconset = gajim.config.DEFAULT_ICONSET
- gajim.config.set('iconset', iconset)
+ iconset = app.config.DEFAULT_ICONSET
+ app.config.set('iconset', iconset)
path = os.path.join(helpers.get_iconset_path(iconset), '16x16')
- gajim.interface.jabber_state_images['16'] = load_iconset(path)
+ app.interface.jabber_state_images['16'] = load_iconset(path)
pixo, pixc = load_icons_meta()
- gajim.interface.jabber_state_images['opened'] = load_iconset(path, pixo)
- gajim.interface.jabber_state_images['closed'] = load_iconset(path, pixc)
+ app.interface.jabber_state_images['opened'] = load_iconset(path, pixo)
+ app.interface.jabber_state_images['closed'] = load_iconset(path, pixc)
path = os.path.join(helpers.get_iconset_path(iconset), '32x32')
- gajim.interface.jabber_state_images['32'] = load_iconset(path)
+ app.interface.jabber_state_images['32'] = load_iconset(path)
path = os.path.join(helpers.get_iconset_path(iconset), '24x24')
if (os.path.exists(path)):
- gajim.interface.jabber_state_images['24'] = load_iconset(path)
+ app.interface.jabber_state_images['24'] = load_iconset(path)
else:
# Resize 32x32 icons to 24x24
- for each in gajim.interface.jabber_state_images['32']:
+ for each in app.interface.jabber_state_images['32']:
img = Gtk.Image()
- pix = gajim.interface.jabber_state_images['32'][each]
+ pix = app.interface.jabber_state_images['32'][each]
pix_type = pix.get_storage_type()
if pix_type == Gtk.ImageType.ANIMATION:
animation = pix.get_animation()
pixbuf = animation.get_static_image()
elif pix_type == Gtk.ImageType.EMPTY:
- pix = gajim.interface.jabber_state_images['16'][each]
+ pix = app.interface.jabber_state_images['16'][each]
pix_16_type = pix.get_storage_type()
if pix_16_type == Gtk.ImageType.ANIMATION:
animation = pix.get_animation()
@@ -1073,11 +1073,11 @@ def make_jabber_state_images():
pixbuf = pix.get_pixbuf()
scaled_pix = pixbuf.scale_simple(24, 24, GdkPixbuf.InterpType.BILINEAR)
img.set_from_pixbuf(scaled_pix)
- gajim.interface.jabber_state_images['24'][each] = img
+ app.interface.jabber_state_images['24'][each] = img
def reload_jabber_state_images():
make_jabber_state_images()
- gajim.interface.roster.update_jabber_state_images()
+ app.interface.roster.update_jabber_state_images()
def label_set_autowrap(widget):
"""
@@ -1112,7 +1112,7 @@ def __label_size_allocate(widget, allocation):
widget.set_size_request (-1, lh / Pango.SCALE)
def get_action(action):
- return gajim.app.lookup_action(action)
+ return app.app.lookup_action(action)
def load_css():
path = os.path.join(configpaths.get('DATA'), 'style', 'gajim.css')
@@ -1152,18 +1152,18 @@ def convert_config_to_css():
'state_muc_msg_color': ('', 'color')}
- theme = gajim.config.get('roster_theme')
+ theme = app.config.get('roster_theme')
for key, values in themed_widgets.items():
config, attr = values
css += '#{} {{'.format(key)
- value = gajim.config.get_per('themes', theme, config)
+ value = app.config.get_per('themes', theme, config)
if value:
css += '{attr}: {color};\n'.format(attr=attr, color=value)
css += '}\n'
for key, values in classes.items():
node, attr = values
- value = gajim.config.get_per('themes', theme, key)
+ value = app.config.get_per('themes', theme, key)
if value:
css += '.theme_{cls} {node} {{ {attr}: {color}; }}\n'.format(
cls=key, node=node, attr=attr, color=value)
@@ -1185,7 +1185,7 @@ def remove_css_class(widget, class_name):
style.remove_class('theme_' + class_name)
def add_css_font():
- conversation_font = gajim.config.get('conversation_font')
+ conversation_font = app.config.get('conversation_font')
if not conversation_font:
return ''
font = Pango.FontDescription(conversation_font)
diff --git a/gajim/gui_interface.py b/gajim/gui_interface.py
index c7a297527..3b0eb71de 100644
--- a/gajim/gui_interface.py
+++ b/gajim/gui_interface.py
@@ -45,60 +45,60 @@ from gi.repository import Gtk
from gi.repository import GdkPixbuf
from gi.repository import GLib
-from common import i18n
-from common import gajim
-from common import events
+from gajim.common import i18n
+from gajim.common import app
+from gajim.common import events
-from common import dbus_support
+from gajim.common import dbus_support
if dbus_support.supported:
- from music_track_listener import MusicTrackListener
- from common import location_listener
+ from gajim.music_track_listener import MusicTrackListener
+ from gajim.common import location_listener
import dbus
-import gtkgui_helpers
-import gui_menu_builder
-import dialogs
-import notify
-import message_control
+from gajim import gtkgui_helpers
+from gajim import gui_menu_builder
+from gajim import dialogs
+from gajim import notify
+from gajim import message_control
-from chat_control_base import ChatControlBase
-from chat_control import ChatControl
-from groupchat_control import GroupchatControl
-from groupchat_control import PrivateChatControl
-from message_window import MessageWindowMgr
+from gajim.chat_control_base import ChatControlBase
+from gajim.chat_control import ChatControl
+from gajim.groupchat_control import GroupchatControl
+from gajim.groupchat_control import PrivateChatControl
+from gajim.message_window import MessageWindowMgr
-from atom_window import AtomWindow
-from session import ChatControlSession
+from gajim.atom_window import AtomWindow
+from gajim.session import ChatControlSession
-from common import sleepy
+from gajim.common import sleepy
from nbxmpp import idlequeue
from nbxmpp import Hashes2
-from common.zeroconf import connection_zeroconf
-from common import resolver
-from common import caps_cache
-from common import proxy65_manager
-from common import socks5
-from common import helpers
-from common import passwords
-from common import logging_helpers
-from common.connection_handlers_events import OurShowEvent, \
+from gajim.common.zeroconf import connection_zeroconf
+from gajim.common import resolver
+from gajim.common import caps_cache
+from gajim.common import proxy65_manager
+from gajim.common import socks5
+from gajim.common import helpers
+from gajim.common import passwords
+from gajim.common import logging_helpers
+from gajim.common.connection_handlers_events import OurShowEvent, \
FileRequestErrorEvent, FileTransferCompletedEvent
-from common.connection import Connection
-from common.file_props import FilesProp
-from common import pep
-import emoticons
+from gajim.common.connection import Connection
+from gajim.common.file_props import FilesProp
+from gajim.common import pep
+from gajim import emoticons
-import roster_window
-import profile_window
-import config
+from gajim import roster_window
+from gajim import profile_window
+from gajim import config
from threading import Thread
-from common import ged
+from gajim.common import ged
-from common.configpaths import gajimpaths
+from gajim.common.configpaths import gajimpaths
config_filename = gajimpaths['CONFIG_FILE']
-from common import optparser
+from gajim.common import optparser
parser = optparser.OptionsParser(config_filename)
import logging
@@ -158,7 +158,7 @@ class Interface:
account = obj.conn.name
sec_msg = _('Do you accept this request?')
- if gajim.get_number_of_connected_accounts() > 1:
+ if app.get_number_of_connected_accounts() > 1:
sec_msg = _('Do you accept this request on account %s?') % account
if obj.msg:
sec_msg = obj.msg + '\n' + sec_msg
@@ -181,7 +181,7 @@ class Interface:
file_props.error = -3
else:
file_props.error = -4
- gajim.nec.push_incoming_event(FileRequestErrorEvent(None,
+ app.nec.push_incoming_event(FileRequestErrorEvent(None,
conn=obj.conn, jid=obj.jid, file_props=file_props,
error_msg=obj.errmsg))
obj.conn.disconnect_transfer(file_props)
@@ -211,7 +211,7 @@ class Interface:
@staticmethod
def unblock_signed_in_notifications(account):
- gajim.block_signed_in_notifications[account] = False
+ app.block_signed_in_notifications[account] = False
def handle_event_status(self, obj): # OUR status
#('STATUS', account, show)
@@ -230,7 +230,7 @@ class Interface:
if account in self.pass_dialog:
self.pass_dialog[account].window.destroy()
if obj.show == 'offline':
- gajim.block_signed_in_notifications[account] = True
+ app.block_signed_in_notifications[account] = True
else:
# 30 seconds after we change our status to sth else than offline
# we stop blocking notifications of any kind
@@ -244,11 +244,11 @@ class Interface:
self.edit_own_details(account)
def edit_own_details(self, account):
- jid = gajim.get_jid_from_account(account)
+ jid = app.get_jid_from_account(account)
if 'profile' not in self.instances[account]:
self.instances[account]['profile'] = \
- profile_window.ProfileWindow(account, gajim.interface.roster.window)
- gajim.connections[account].request_vcard(jid)
+ profile_window.ProfileWindow(account, app.interface.roster.window)
+ app.connections[account].request_vcard(jid)
@staticmethod
def handle_gc_error(gc_control, pritext, sectext):
@@ -272,13 +272,13 @@ class Interface:
def handle_gc_password_required(self, account, room_jid, nick):
def on_ok(text):
- gajim.connections[account].join_gc(nick, room_jid, text)
- gajim.gc_passwords[room_jid] = text
+ app.connections[account].join_gc(nick, room_jid, text)
+ app.gc_passwords[room_jid] = text
gc_control.error_dialog = None
def on_cancel():
# get and destroy window
- if room_jid in gajim.interface.minimized_controls[account]:
+ if room_jid in app.interface.minimized_controls[account]:
self.roster.on_disconnect(None, room_jid, account)
else:
win = self.msg_win_mgr.get_window(room_jid, account)
@@ -366,7 +366,7 @@ class Interface:
status = obj.status
resource = obj.resource or ''
- jid_list = gajim.contacts.get_jid_list(account)
+ jid_list = app.contacts.get_jid_list(account)
# unset custom status
if (obj.old_show == 0 and obj.new_show > 1) or \
@@ -375,17 +375,17 @@ class Interface:
jid in self.status_sent_to_users[account]:
del self.status_sent_to_users[account][jid]
- if gajim.jid_is_transport(jid):
+ if app.jid_is_transport(jid):
# It must be an agent
# transport just signed in/out, don't show
# popup notifications for 30s
account_jid = account + '/' + jid
- gajim.block_signed_in_notifications[account_jid] = True
+ app.block_signed_in_notifications[account_jid] = True
GLib.timeout_add_seconds(30, self.unblock_signed_in_notifications,
account_jid)
- highest = gajim.contacts.get_contact_with_highest_priority(account, jid)
+ highest = app.contacts.get_contact_with_highest_priority(account, jid)
is_highest = (highest and highest.resource == resource)
ctrl = self.msg_win_mgr.get_control(jid, account)
@@ -423,7 +423,7 @@ class Interface:
show = model[iter_][3]
else:
show = 'offline'
- gc_c = gajim.contacts.create_gc_contact(room_jid=jid,
+ gc_c = app.contacts.create_gc_contact(room_jid=jid,
account=account, name=nick, show=show)
ctrl = self.new_private_chat(gc_c, account, session)
@@ -439,7 +439,7 @@ class Interface:
gc_control.set_subject(gc_control.subject)
return
- if gajim.jid_is_transport(jid):
+ if app.jid_is_transport(jid):
jid = jid.replace('@', '')
msg = obj.error_msg
if obj.msg:
@@ -452,7 +452,7 @@ class Interface:
def handle_event_msgsent(obj):
#('MSGSENT', account, (jid, msg, keyID))
# do not play sound when standalone chatstate message (eg no msg)
- if obj.message and gajim.config.get_per('soundevents', 'message_sent',
+ if obj.message and app.config.get_per('soundevents', 'message_sent',
'enabled'):
helpers.play_sound('message_sent')
@@ -493,23 +493,23 @@ class Interface:
def handle_event_subscribed_presence(self, obj):
#('SUBSCRIBED', account, (jid, resource))
account = obj.conn.name
- if obj.jid in gajim.contacts.get_jid_list(account):
- c = gajim.contacts.get_first_contact_from_jid(account, obj.jid)
+ if obj.jid in app.contacts.get_jid_list(account):
+ c = app.contacts.get_first_contact_from_jid(account, obj.jid)
c.resource = obj.resource
self.roster.remove_contact_from_groups(c.jid, account,
[_('Not in Roster'), _('Observers')], update=False)
else:
keyID = ''
- attached_keys = gajim.config.get_per('accounts', account,
+ attached_keys = app.config.get_per('accounts', account,
'attached_gpg_keys').split()
if obj.jid in attached_keys:
keyID = attached_keys[attached_keys.index(obj.jid) + 1]
name = obj.jid.split('@', 1)[0]
name = name.split('%', 1)[0]
- contact1 = gajim.contacts.create_contact(jid=obj.jid,
+ contact1 = app.contacts.create_contact(jid=obj.jid,
account=account, name=name, groups=[], show='online',
status='online', ask='to', resource=obj.resource, keyID=keyID)
- gajim.contacts.add_contact(account, contact1)
+ app.contacts.add_contact(account, contact1)
self.roster.add_contact(obj.jid, account)
dialogs.InformationDialog(_('Authorization accepted'),
_('The contact "%s" has authorized you to see his or her status.')
@@ -530,7 +530,7 @@ class Interface:
def handle_event_unsubscribed_presence(self, obj):
#('UNSUBSCRIBED', account, jid)
account = obj.conn.name
- contact = gajim.contacts.get_first_contact_from_jid(account, obj.jid)
+ contact = app.contacts.get_first_contact_from_jid(account, obj.jid)
if not contact:
return
@@ -561,18 +561,18 @@ class Interface:
def handle_event_vcard(self, obj):
# ('VCARD', account, data)
'''vcard holds the vcard data'''
- our_jid = gajim.get_jid_from_account(obj.conn.name)
+ our_jid = app.get_jid_from_account(obj.conn.name)
if obj.jid == our_jid:
if obj.nickname:
- gajim.nicks[obj.conn.name] = obj.nickname
+ app.nicks[obj.conn.name] = obj.nickname
if obj.conn.name in self.show_vcard_when_connect:
self.show_vcard_when_connect.remove(obj.conn.name)
def handle_event_gc_config(self, obj):
#('GC_CONFIG', account, (jid, form_node)) config is a dict
account = obj.conn.name
- if obj.jid in gajim.automatic_rooms[account]:
- if 'continue_tag' in gajim.automatic_rooms[account][obj.jid]:
+ if obj.jid in app.automatic_rooms[account]:
+ if 'continue_tag' in app.automatic_rooms[account][obj.jid]:
# We're converting chat to muc. allow participants to invite
for f in obj.dataform.iter_fields():
if f.var == 'muc#roomconfig_allowinvites':
@@ -585,7 +585,7 @@ class Interface:
f.value = False
obj.conn.send_gc_config(obj.jid, obj.dataform.get_purged())
user_list = {}
- for jid in gajim.automatic_rooms[account][obj.jid]['invities']:
+ for jid in app.automatic_rooms[account][obj.jid]['invities']:
user_list[jid] = {'affiliation': 'member'}
obj.conn.send_gc_affiliation_list(obj.jid, user_list)
else:
@@ -594,10 +594,10 @@ class Interface:
# invite contacts
# check if it is necessary to add
continue_tag = False
- if 'continue_tag' in gajim.automatic_rooms[account][obj.jid]:
+ if 'continue_tag' in app.automatic_rooms[account][obj.jid]:
continue_tag = True
- if 'invities' in gajim.automatic_rooms[account][obj.jid]:
- for jid in gajim.automatic_rooms[account][obj.jid]['invities']:
+ if 'invities' in app.automatic_rooms[account][obj.jid]:
+ for jid in app.automatic_rooms[account][obj.jid]['invities']:
obj.conn.send_invite(obj.jid, jid,
continue_tag=continue_tag)
gc_control = self.msg_win_mgr.get_gc_control(obj.jid,
@@ -606,7 +606,7 @@ class Interface:
gc_control.print_conversation(
_('%(jid)s has been invited in this room') % {
'jid': jid}, graphics=False)
- del gajim.automatic_rooms[account][obj.jid]
+ del app.automatic_rooms[account][obj.jid]
elif obj.jid not in self.instances[account]['gc_config']:
self.instances[account]['gc_config'][obj.jid] = \
config.GroupchatConfigWindow(account, obj.jid, obj.dataform)
@@ -720,7 +720,7 @@ class Interface:
def on_ok(passphrase, save):
if save:
- gajim.config.set_per('accounts', account, 'savepass', True)
+ app.config.set_per('accounts', account, 'savepass', True)
passwords.save_password(account, passphrase)
obj.conn.set_password(passphrase)
del self.pass_dialog[account]
@@ -737,16 +737,16 @@ class Interface:
def handle_oauth2_credentials(self, obj):
account = obj.conn.name
def on_ok(refresh):
- gajim.config.set_per('accounts', account, 'oauth2_refresh_token',
+ app.config.set_per('accounts', account, 'oauth2_refresh_token',
refresh)
- st = gajim.config.get_per('accounts', account, 'last_status')
- msg = helpers.from_one_line(gajim.config.get_per('accounts',
+ st = app.config.get_per('accounts', account, 'last_status')
+ msg = helpers.from_one_line(app.config.get_per('accounts',
account, 'last_status_msg'))
- gajim.interface.roster.send_status(account, st, msg)
+ app.interface.roster.send_status(account, st, msg)
del self.pass_dialog[account]
def on_cancel():
- gajim.config.set_per('accounts', account, 'oauth2_refresh_token',
+ app.config.set_per('accounts', account, 'oauth2_refresh_token',
'')
self.roster.set_state(account, 'offline')
self.roster.update_status_combobox()
@@ -761,7 +761,7 @@ class Interface:
def handle_event_roster_info(self, obj):
#('ROSTER_INFO', account, (jid, name, sub, ask, groups))
account = obj.conn.name
- contacts = gajim.contacts.get_contacts(account, obj.jid)
+ contacts = app.contacts.get_contacts(account, obj.jid)
if (not obj.sub or obj.sub == 'none') and \
(not obj.ask or obj.ask == 'none') and not obj.nickname and \
not obj.groups:
@@ -774,14 +774,14 @@ class Interface:
return
# Add new contact to roster
keyID = ''
- attached_keys = gajim.config.get_per('accounts', account,
+ attached_keys = app.config.get_per('accounts', account,
'attached_gpg_keys').split()
if obj.jid in attached_keys:
keyID = attached_keys[attached_keys.index(obj.jid) + 1]
- contact = gajim.contacts.create_contact(jid=obj.jid,
+ contact = app.contacts.create_contact(jid=obj.jid,
account=account, name=obj.nickname, groups=obj.groups,
show='offline', sub=obj.sub, ask=obj.ask, keyID=keyID)
- gajim.contacts.add_contact(account, contact)
+ app.contacts.add_contact(account, contact)
self.roster.add_contact(obj.jid, account)
else:
# If contact has changed (sub, ask or group) update roster
@@ -821,7 +821,7 @@ class Interface:
# Auto join GC windows if neccessary
gui_menu_builder.build_bookmark_menu(obj.conn.name)
- invisible_show = gajim.SHOW_LIST.index('invisible')
+ invisible_show = app.SHOW_LIST.index('invisible')
# do not autojoin if we are invisible
if obj.conn.connected == invisible_show:
return
@@ -852,7 +852,7 @@ class Interface:
jid = obj.jid
gmail_new_messages = int(obj.newmsgs)
gmail_messages_list = obj.gmail_messages_list
- if not gajim.config.get('notify_on_new_gmail_email'):
+ if not app.config.get('notify_on_new_gmail_email'):
return
path = gtkgui_helpers.get_icon_path('gajim-new_email_recv', 48)
title = _('New e-mail on %(gmail_mail_address)s') % \
@@ -861,7 +861,7 @@ class Interface:
'You have %d new e-mail conversations', gmail_new_messages,
gmail_new_messages, gmail_new_messages)
- if gajim.config.get('notify_on_new_gmail_email_extra'):
+ if app.config.get('notify_on_new_gmail_email_extra'):
cnt = 0
for gmessage in gmail_messages_list:
# FIXME: emulate Gtalk client popups. find out what they
@@ -876,11 +876,11 @@ class Interface:
'snippet': gmessage['Snippet']}
cnt += 1
- command = gajim.config.get('notify_on_new_gmail_email_command')
+ command = app.config.get('notify_on_new_gmail_email_command')
if command:
Popen(command, shell=True)
- if gajim.config.get_per('soundevents', 'gmail_received', 'enabled'):
+ if app.config.get_per('soundevents', 'gmail_received', 'enabled'):
helpers.play_sound('gmail_received')
notify.popup(_('New E-mail'), jid, obj.conn.name, 'gmail',
path_to_image=path, title=title, text=text)
@@ -917,17 +917,17 @@ class Interface:
def handle_event_file_request(self, obj):
account = obj.conn.name
- if obj.jid not in gajim.contacts.get_jid_list(account):
+ if obj.jid not in app.contacts.get_jid_list(account):
keyID = ''
- attached_keys = gajim.config.get_per('accounts', account,
+ attached_keys = app.config.get_per('accounts', account,
'attached_gpg_keys').split()
if obj.jid in attached_keys:
keyID = attached_keys[attached_keys.index(obj.jid) + 1]
- contact = gajim.contacts.create_not_in_roster_contact(jid=obj.jid,
+ contact = app.contacts.create_not_in_roster_contact(jid=obj.jid,
account=account, keyID=keyID)
- gajim.contacts.add_contact(account, contact)
+ app.contacts.add_contact(account, contact)
self.roster.add_contact(obj.jid, account)
- contact = gajim.contacts.get_first_contact_from_jid(account, obj.jid)
+ contact = app.contacts.get_first_contact_from_jid(account, obj.jid)
if obj.file_props.session_type == 'jingle':
request = obj.stanza.getTag('jingle').getTag('content')\
.getTag('description').getTag('request')
@@ -944,7 +944,7 @@ class Interface:
self.add_event(account, obj.jid, event)
if helpers.allow_showing_notification(account):
path = gtkgui_helpers.get_icon_path('gajim-ft_request', 48)
- txt = _('%s wants to send you a file.') % gajim.get_name_from_jid(
+ txt = _('%s wants to send you a file.') % app.get_name_from_jid(
account, obj.jid)
event_type = _('File Transfer Request')
notify.popup(event_type, obj.jid, account, 'file-request',
@@ -962,7 +962,7 @@ class Interface:
file_props.sid, file_props.received_len)
def __compare_hashes(self, account, file_props):
- session = gajim.connections[account].get_jingle_session(jid=None,
+ session = app.connections[account].get_jingle_session(jid=None,
sid=file_props.sid)
ft_win = self.instances['file_transfers']
h = Hashes2()
@@ -992,7 +992,7 @@ class Interface:
if file_props.error == 0:
ft.set_progress(file_props.type_, file_props.sid,
file_props.received_len)
- gajim.nec.push_incoming_event(FileTransferCompletedEvent(None,
+ app.nec.push_incoming_event(FileTransferCompletedEvent(None,
file_props=file_props))
else:
ft.set_status(file_props, 'stop')
@@ -1001,7 +1001,7 @@ class Interface:
return
if file_props.type_ == 'r': # we receive a file
- gajim.socks5queue.remove_receiver(file_props.sid, True, True)
+ app.socks5queue.remove_receiver(file_props.sid, True, True)
if file_props.session_type == 'jingle':
if file_props.hash_ and file_props.error == 0:
# We compare hashes in a new thread
@@ -1014,7 +1014,7 @@ class Interface:
self.popup_ft_result(account, jid, file_props)
if file_props.error == 0:
ft.set_status(file_props, 'ok')
- session = gajim.connections[account].get_jingle_session(jid=None,
+ session = app.connections[account].get_jingle_session(jid=None,
sid=file_props.sid)
# End jingle session
# TODO: only if there are no other parallel downloads in this session
@@ -1022,14 +1022,14 @@ class Interface:
session.end_session()
else: # we send a file
jid = file_props.receiver
- gajim.socks5queue.remove_sender(file_props.sid, True, True)
+ app.socks5queue.remove_sender(file_props.sid, True, True)
self.popup_ft_result(account, jid, file_props)
def popup_ft_result(self, account, jid, file_props):
ft = self.instances['file_transfers']
if helpers.allow_popup_window(account):
if file_props.error == 0:
- if gajim.config.get('notify_on_file_complete'):
+ if app.config.get('notify_on_file_complete'):
ft.show_completed(jid, file_props)
elif file_props.error == -1:
ft.show_stopped(jid, file_props,
@@ -1046,7 +1046,7 @@ class Interface:
msg_type = ''
event_type = ''
- if file_props.error == 0 and gajim.config.get(
+ if file_props.error == 0 and app.config.get(
'notify_on_file_complete'):
event_class = events.FileCompletedEvent
msg_type = 'file-completed'
@@ -1076,7 +1076,7 @@ class Interface:
if file_props.type_ == 'r':
# get the name of the sender, as it is in the roster
sender = file_props.sender.split('/')[0]
- name = gajim.contacts.get_first_contact_from_jid(account,
+ name = app.contacts.get_first_contact_from_jid(account,
sender).get_shown_name()
filename = os.path.basename(file_props.file_name)
if event_type == _('File Transfer Completed'):
@@ -1097,7 +1097,7 @@ class Interface:
receiver = receiver.jid
receiver = receiver.split('/')[0]
# get the name of the contact, as it is in the roster
- name = gajim.contacts.get_first_contact_from_jid(account,
+ name = app.contacts.get_first_contact_from_jid(account,
receiver).get_shown_name()
filename = os.path.basename(file_props.file_name)
if event_type == _('File Transfer Completed'):
@@ -1117,9 +1117,9 @@ class Interface:
txt = ''
path = ''
- if gajim.config.get('notify_on_file_complete') and \
- (gajim.config.get('autopopupaway') or \
- gajim.connections[account].connected in (2, 3)):
+ if app.config.get('notify_on_file_complete') and \
+ (app.config.get('autopopupaway') or \
+ app.connections[account].connected in (2, 3)):
# we want to be notified and we are online/chat or we don't mind
# bugged when away/na/busy
notify.popup(event_type, jid, account, msg_type, path_to_image=path,
@@ -1132,40 +1132,40 @@ class Interface:
# ('SIGNED_IN', account, ())
# block signed in notifications for 30 seconds
account = obj.conn.name
- gajim.block_signed_in_notifications[account] = True
+ app.block_signed_in_notifications[account] = True
state = self.sleeper.getState()
connected = obj.conn.connected
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'
+ app.sleeper_state[account] = 'online'
elif not ((state == sleepy.STATE_AWAY and connected == 4) or \
(state == sleepy.STATE_XA and connected == 5)):
# If we are autoaway/xa and come back after a disconnection, do
# nothing
# Else disable autoaway
- gajim.sleeper_state[account] = 'off'
+ app.sleeper_state[account] = 'off'
- if obj.conn.archiving_313_supported and gajim.config.get_per('accounts',
+ if obj.conn.archiving_313_supported and app.config.get_per('accounts',
account, 'sync_logs_with_server'):
obj.conn.request_archive_on_signin()
- invisible_show = gajim.SHOW_LIST.index('invisible')
+ invisible_show = app.SHOW_LIST.index('invisible')
# We cannot join rooms if we are invisible
if connected == invisible_show:
return
# send currently played music
if obj.conn.pep_supported and dbus_support.supported and \
- gajim.config.get_per('accounts', account, 'publish_tune'):
+ app.config.get_per('accounts', account, 'publish_tune'):
self.enable_music_listener()
# enable location listener
if obj.conn.pep_supported and dbus_support.supported and \
- gajim.config.get_per('accounts', account, 'publish_location'):
+ app.config.get_per('accounts', account, 'publish_location'):
location_listener.enable()
@staticmethod
def handle_event_metacontacts(obj):
- gajim.contacts.define_metacontacts(obj.conn.name, obj.meta_list)
+ app.contacts.define_metacontacts(obj.conn.name, obj.meta_list)
@staticmethod
def handle_atom_entry(obj):
@@ -1179,7 +1179,7 @@ class Interface:
def handle_event_zc_name_conflict(self, obj):
def on_ok(new_name):
- gajim.config.set_per('accounts', obj.conn.name, 'name', new_name)
+ app.config.set_per('accounts', obj.conn.name, 'name', new_name)
show = obj.conn.old_show
status = obj.conn.status
obj.conn.username = new_name
@@ -1199,10 +1199,10 @@ class Interface:
conn = obj.conn
self.roster.send_status(account, 'offline', conn.status)
def on_ok(new_resource):
- gajim.config.set_per('accounts', account, 'resource', new_resource)
+ app.config.set_per('accounts', account, 'resource', new_resource)
self.roster.send_status(account, conn.old_show, conn.status)
proposed_resource = conn.server_resource
- proposed_resource += gajim.config.get('gc_proposed_nick_char')
+ proposed_resource += app.config.get('gc_proposed_nick_char')
dlg = dialogs.ResourceConflictDialog(_('Resource Conflict'),
_('You are already connected to this account with the same '
'resource. Please type a new one'), resource=proposed_resource,
@@ -1262,7 +1262,7 @@ class Interface:
if helpers.allow_showing_notification(account):
# TODO: we should use another pixmap ;-)
txt = _('%s wants to start a voice chat.') % \
- gajim.get_name_from_jid(account, obj.fjid)
+ app.get_name_from_jid(account, obj.fjid)
path = gtkgui_helpers.get_icon_path('gajim-mic_active', 48)
event_type = _('Voice Chat Request')
notify.popup(event_type, obj.fjid, account, 'jingle-incoming',
@@ -1316,42 +1316,42 @@ class Interface:
def handle_event_ssl_error(self, obj):
# ('SSL_ERROR', account, (text, errnum, cert, sha1_fingerprint, sha256_fingerprint))
account = obj.conn.name
- server = gajim.config.get_per('accounts', account, 'hostname')
+ server = app.config.get_per('accounts', account, 'hostname')
def on_ok(is_checked):
del self.instances[account]['online_dialog']['ssl_error']
if is_checked[0]:
# Check if cert is already in file
certs = ''
- if os.path.isfile(gajim.MY_CACERTS):
- f = open(gajim.MY_CACERTS)
+ if os.path.isfile(app.MY_CACERTS):
+ f = open(app.MY_CACERTS)
certs = f.read()
f.close()
if obj.cert in certs:
dialogs.ErrorDialog(_('Certificate Already in File'),
_('This certificate is already in file %s, so it\'s '
- 'not added again.') % gajim.MY_CACERTS)
+ 'not added again.') % app.MY_CACERTS)
else:
- f = open(gajim.MY_CACERTS, 'a')
+ f = open(app.MY_CACERTS, 'a')
f.write(server + '\n')
f.write(obj.cert + '\n\n')
f.close()
- gajim.config.set_per('accounts', account, 'ssl_fingerprint_sha1',
+ app.config.set_per('accounts', account, 'ssl_fingerprint_sha1',
obj.fingerprint_sha1)
- gajim.config.set_per('accounts', account, 'ssl_fingerprint_sha256',
+ app.config.set_per('accounts', account, 'ssl_fingerprint_sha256',
obj.fingerprint_sha256)
if is_checked[1]:
- ignore_ssl_errors = gajim.config.get_per('accounts', account,
+ ignore_ssl_errors = app.config.get_per('accounts', account,
'ignore_ssl_errors').split()
ignore_ssl_errors.append(str(obj.error_num))
- gajim.config.set_per('accounts', account, 'ignore_ssl_errors',
+ app.config.set_per('accounts', account, 'ignore_ssl_errors',
' '.join(ignore_ssl_errors))
obj.conn.ssl_certificate_accepted()
def on_cancel():
del self.instances[account]['online_dialog']['ssl_error']
obj.conn.disconnect(on_purpose=True)
- gajim.nec.push_incoming_event(OurShowEvent(None, conn=obj.conn,
+ app.nec.push_incoming_event(OurShowEvent(None, conn=obj.conn,
show='offline'))
pritext = _('Error verifying SSL certificate')
@@ -1377,7 +1377,7 @@ class Interface:
def handle_event_non_anonymous_server(self, obj):
account = obj.conn.name
- server = gajim.config.get_per('accounts', account, 'hostname')
+ server = app.config.get_per('accounts', account, 'hostname')
dialogs.ErrorDialog(_('Non Anonymous Server'), sectext='Server "%s"'
'does not support anonymous connection' % server,
transient_for=self.roster.window)
@@ -1387,18 +1387,18 @@ class Interface:
account = obj.conn.name
def on_yes(is_checked):
del self.instances[account]['online_dialog']['fingerprint_error']
- gajim.config.set_per('accounts', account, 'ssl_fingerprint_sha1',
+ app.config.set_per('accounts', account, 'ssl_fingerprint_sha1',
obj.new_fingerprint_sha1)
- gajim.config.set_per('accounts', account, 'ssl_fingerprint_sha256',
+ app.config.set_per('accounts', account, 'ssl_fingerprint_sha256',
obj.new_fingerprint_sha256)
# Reset the ignored ssl errors
- gajim.config.set_per('accounts', account, 'ignore_ssl_errors', '')
+ app.config.set_per('accounts', account, 'ignore_ssl_errors', '')
obj.conn.ssl_certificate_accepted()
def on_no():
del self.instances[account]['online_dialog']['fingerprint_error']
obj.conn.disconnect(on_purpose=True)
- gajim.nec.push_incoming_event(OurShowEvent(None, conn=obj.conn,
+ app.nec.push_incoming_event(OurShowEvent(None, conn=obj.conn,
show='offline'))
pritext = _('SSL certificate error')
@@ -1410,8 +1410,8 @@ class Interface:
'%(new_sha256)s\n\nDo you still want to connect '
'and update the fingerprint of the certificate?') % \
{'account': account,
- 'old_sha1': gajim.config.get_per('accounts', account, 'ssl_fingerprint_sha1'),
- 'old_sha256': gajim.config.get_per('accounts', account, 'ssl_fingerprint_sha256'),
+ 'old_sha1': app.config.get_per('accounts', account, 'ssl_fingerprint_sha1'),
+ 'old_sha256': app.config.get_per('accounts', account, 'ssl_fingerprint_sha256'),
'new_sha1': obj.new_fingerprint_sha1,
'new_sha256': obj.new_fingerprint_sha256}
if 'fingerprint_error' in self.instances[account]['online_dialog']:
@@ -1427,7 +1427,7 @@ class Interface:
def on_ok(is_checked):
if not is_checked[0]:
if is_checked[1]:
- gajim.config.set_per('accounts', obj.conn.name,
+ app.config.set_per('accounts', obj.conn.name,
'action_when_plaintext_connection', 'disconnect')
on_cancel()
return
@@ -1436,7 +1436,7 @@ class Interface:
del self.instances[obj.conn.name]['online_dialog']\
['plain_connection']
if is_checked[1]:
- gajim.config.set_per('accounts', obj.conn.name,
+ app.config.set_per('accounts', obj.conn.name,
'action_when_plaintext_connection', 'connect')
obj.conn.connection_accepted(obj.xmpp_client, 'plain')
@@ -1444,7 +1444,7 @@ class Interface:
del self.instances[obj.conn.name]['online_dialog']\
['plain_connection']
obj.conn.disconnect(on_purpose=True)
- gajim.nec.push_incoming_event(OurShowEvent(None, conn=obj.conn,
+ app.nec.push_incoming_event(OurShowEvent(None, conn=obj.conn,
show='offline'))
if 'plain_connection' in self.instances[obj.conn.name]['online_dialog']:
@@ -1461,7 +1461,7 @@ class Interface:
return
del self.instances[obj.conn.name]['online_dialog']['insecure_ssl']
if is_checked[1]:
- gajim.config.set_per('accounts', obj.conn.name,
+ app.config.set_per('accounts', obj.conn.name,
'warn_when_insecure_ssl_connection', False)
if obj.conn.connected == 0:
# We have been disconnecting (too long time since window is
@@ -1476,7 +1476,7 @@ class Interface:
def on_cancel():
del self.instances[obj.conn.name]['online_dialog']['insecure_ssl']
obj.conn.disconnect(on_purpose=True)
- gajim.nec.push_incoming_event(OurShowEvent(None, conn=obj.conn,
+ app.nec.push_incoming_event(OurShowEvent(None, conn=obj.conn,
show='offline'))
pritext = _('Insecure connection')
@@ -1502,7 +1502,7 @@ class Interface:
del self.instances[obj.conn.name]['online_dialog']\
['insecure_password']
if is_checked[1]:
- gajim.config.set_per('accounts', obj.conn.name,
+ app.config.set_per('accounts', obj.conn.name,
'warn_when_insecure_password', False)
if obj.conn.connected == 0:
# We have been disconnecting (too long time since window is
@@ -1518,7 +1518,7 @@ class Interface:
del self.instances[obj.conn.name]['online_dialog']\
['insecure_password']
obj.conn.disconnect(on_purpose=True)
- gajim.nec.push_incoming_event(OurShowEvent(None, conn=obj.conn,
+ app.nec.push_incoming_event(OurShowEvent(None, conn=obj.conn,
show='offline'))
pritext = _('Insecure connection')
@@ -1609,21 +1609,21 @@ class Interface:
if type(event_handler) == tuple:
prio = event_handler[1]
event_handler = event_handler[0]
- gajim.ged.register_event_handler(event_name, prio,
+ app.ged.register_event_handler(event_name, prio,
event_handler)
################################################################################
-### Methods dealing with gajim.events
+### Methods dealing with app.events
################################################################################
def add_event(self, account, jid, event):
"""
- Add an event to the gajim.events var
+ Add an event to the app.events var
"""
- # We add it to the gajim.events queue
+ # We add it to the app.events queue
# Do we have a queue?
- jid = gajim.get_jid_without_resource(jid)
- no_queue = len(gajim.events.get_events(account, jid)) == 0
+ jid = app.get_jid_without_resource(jid)
+ no_queue = len(app.events.get_events(account, jid)) == 0
# event can be in common.events.*
# event_type can be in advancedNotificationWindow.events_list
event_types = {'file-request': 'ft_request',
@@ -1633,21 +1633,21 @@ class Interface:
show_in_systray = notify.get_show_in_systray(event_type, account, jid)
event.show_in_roster = show_in_roster
event.show_in_systray = show_in_systray
- gajim.events.add_event(account, jid, event)
+ app.events.add_event(account, jid, event)
self.roster.show_title()
if no_queue: # We didn't have a queue: we change icons
- if gajim.contacts.get_contact_with_highest_priority(account, jid):
+ if app.contacts.get_contact_with_highest_priority(account, jid):
self.roster.draw_contact(jid, account)
else:
self.roster.add_to_not_in_the_roster(account, jid)
# Select the big brother contact in roster, it's visible because it has
# events.
- family = gajim.contacts.get_metacontacts_family(account, jid)
+ family = app.contacts.get_metacontacts_family(account, jid)
if family:
nearby_family, bb_jid, bb_account = \
- gajim.contacts.get_nearby_family_and_big_brother(family,
+ app.contacts.get_nearby_family_and_big_brother(family,
account)
else:
bb_jid, bb_account = jid, account
@@ -1658,8 +1658,8 @@ class Interface:
ctrl = None
session = None
- resource = gajim.get_resource_from_jid(fjid)
- jid = gajim.get_jid_without_resource(fjid)
+ resource = app.get_resource_from_jid(fjid)
+ jid = app.get_jid_without_resource(fjid)
if type_ in ('printed_gc_msg', 'printed_marked_gc_msg', 'gc_msg'):
w = self.msg_win_mgr.get_window(jid, account)
@@ -1673,9 +1673,9 @@ class Interface:
# '' is for log in/out notifications
if type_ != '':
- event = gajim.events.get_first_event(account, fjid, type_)
+ event = app.events.get_first_event(account, fjid, type_)
if not event:
- event = gajim.events.get_first_event(account, jid, type_)
+ event = app.events.get_first_event(account, jid, type_)
if not event:
return
@@ -1688,34 +1688,34 @@ class Interface:
ctrl = self.msg_win_mgr.get_control(fjid, account)
if not ctrl:
- highest_contact = gajim.contacts.\
+ highest_contact = app.contacts.\
get_contact_with_highest_priority(account, jid)
# jid can have a window if this resource was lower when he sent
# message and is now higher because the other one is offline
if resource and highest_contact.resource == resource and \
not self.msg_win_mgr.has_window(jid, account):
# remove resource of events too
- gajim.events.change_jid(account, fjid, jid)
+ app.events.change_jid(account, fjid, jid)
resource = None
fjid = jid
contact = None
if resource:
- contact = gajim.contacts.get_contact(account, jid, resource)
+ contact = app.contacts.get_contact(account, jid, resource)
if not contact:
contact = highest_contact
ctrl = self.new_chat(contact, account, resource=resource,
session=session)
- gajim.last_message_time[account][jid] = 0 # long time ago
+ app.last_message_time[account][jid] = 0 # long time ago
w = ctrl.parent_win
elif type_ in ('printed_pm', 'pm'):
# assume that the most recently updated control we have for this
# party is the one that this event was in
- event = gajim.events.get_first_event(account, fjid, type_)
+ event = app.events.get_first_event(account, fjid, type_)
if not event:
- event = gajim.events.get_first_event(account, jid, type_)
+ event = app.events.get_first_event(account, jid, type_)
if not event:
return
@@ -1729,18 +1729,18 @@ class Interface:
elif not ctrl:
room_jid = jid
nick = resource
- gc_contact = gajim.contacts.get_gc_contact(account, room_jid,
+ gc_contact = app.contacts.get_gc_contact(account, room_jid,
nick)
if gc_contact:
show = gc_contact.show
else:
show = 'offline'
- gc_contact = gajim.contacts.create_gc_contact(
+ gc_contact = app.contacts.create_gc_contact(
room_jid=room_jid, account=account, name=nick,
show=show)
if not session:
- session = gajim.connections[account].make_new_session(
+ session = app.connections[account].make_new_session(
fjid, None, type_='pm')
self.new_private_chat(gc_contact, account, session=session)
@@ -1751,10 +1751,10 @@ class Interface:
'file-send-error', 'file-error', 'file-stopped', 'file-completed',
'file-hash-error', 'jingle-incoming'):
# Get the first single message event
- event = gajim.events.get_first_event(account, fjid, type_)
+ event = app.events.get_first_event(account, fjid, type_)
if not event:
# default to jid without resource
- event = gajim.events.get_first_event(account, jid, type_)
+ event = app.events.get_first_event(account, jid, type_)
if not event:
return
# Open the window
@@ -1763,25 +1763,25 @@ class Interface:
# Open the window
self.roster.open_event(account, fjid, event)
elif type_ == 'gmail':
- url = gajim.connections[account].gmail_url
+ url = app.connections[account].gmail_url
if url:
helpers.launch_browser_mailer('url', url)
elif type_ == 'gc-invitation':
- event = gajim.events.get_first_event(account, jid, type_)
+ event = app.events.get_first_event(account, jid, type_)
dialogs.InvitationReceivedDialog(account, event.room_jid, jid,
event.password, event.reason, event.is_continued)
- gajim.events.remove_events(account, jid, event)
+ app.events.remove_events(account, jid, event)
self.roster.draw_contact(jid, account)
elif type_ == 'subscription_request':
- event = gajim.events.get_first_event(account, jid, type_)
+ event = app.events.get_first_event(account, jid, type_)
dialogs.SubscriptionRequestWindow(jid, event.text, account,
event.nick)
- gajim.events.remove_events(account, jid, event)
+ app.events.remove_events(account, jid, event)
self.roster.draw_contact(jid, account)
elif type_ == 'unsubscribed':
- event = gajim.events.get_first_event(account, jid, type_)
+ event = app.events.get_first_event(account, jid, type_)
self.show_unsubscribed_dialog(account, event.contact)
- gajim.events.remove_events(account, jid, event)
+ app.events.remove_events(account, jid, event)
self.roster.draw_contact(jid, account)
if w:
w.set_active_tab(ctrl)
@@ -1874,12 +1874,12 @@ class Interface:
link_pattern = basic_pattern
self.link_pattern_re = re.compile(link_pattern, re.I | re.U)
- if gajim.config.get('ascii_formatting'):
+ if app.config.get('ascii_formatting'):
basic_pattern += formatting
self.basic_pattern = basic_pattern
emoticons_pattern = ''
- if gajim.config.get('emoticons_theme'):
+ if app.config.get('emoticons_theme'):
# When an emoticon is bordered by an alpha-numeric character it is
# NOT expanded. e.g., foo:) NO, foo :) YES, (brb) NO, (:)) YES, etc
# We still allow multiple emoticons side-by-side like :P:P:P
@@ -1924,25 +1924,25 @@ class Interface:
'[\ud800-\udfff]|[\ufffe-\uffff]'
def init_emoticons(self):
- emot_theme = gajim.config.get('emoticons_theme')
+ emot_theme = app.config.get('emoticons_theme')
if not emot_theme:
return
transient_for = None
- if 'preferences' in gajim.interface.instances:
- transient_for = gajim.interface.instances['preferences'].window
+ if 'preferences' in app.interface.instances:
+ transient_for = app.interface.instances['preferences'].window
- path = os.path.join(gajim.DATA_DIR, 'emoticons', emot_theme)
+ path = os.path.join(app.DATA_DIR, 'emoticons', emot_theme)
if not os.path.exists(path):
# It's maybe a user theme
- path = os.path.join(gajim.MY_EMOTS_PATH, emot_theme)
+ path = os.path.join(app.MY_EMOTS_PATH, emot_theme)
if not os.path.exists(path):
# theme doesn't exist, disable emoticons
dialogs.WarningDialog(_('Emoticons disabled'),
_('Your configured emoticons theme has not been found, so '
'emoticons have been disabled.'),
transient_for=transient_for)
- gajim.config.set('emoticons_theme', '')
+ app.config.set('emoticons_theme', '')
return
if not emoticons.load(path):
dialogs.WarningDialog(
@@ -1950,7 +1950,7 @@ class Interface:
_('Your configured emoticons theme could not be loaded.'
' See the log for more details.'),
transient_for=transient_for)
- gajim.config.set('emoticons_theme', '')
+ app.config.set('emoticons_theme', '')
return
################################################################################
@@ -1963,8 +1963,8 @@ class Interface:
Join the room immediately
"""
- if gajim.contacts.get_contact(account, room_jid) and \
- not gajim.contacts.get_contact(account, room_jid).is_groupchat():
+ if app.contacts.get_contact(account, room_jid) and \
+ not app.contacts.get_contact(account, room_jid).is_groupchat():
dialogs.ErrorDialog(_('This is not a group chat'),
_('%s is already in your roster. Please check if %s is a '
'correct group chat name. If it is, delete it from your roster '
@@ -1972,13 +1972,13 @@ class Interface:
return
if not nick:
- nick = gajim.nicks[account]
+ nick = app.nicks[account]
- minimized_control = gajim.interface.minimized_controls[account].get(
+ minimized_control = app.interface.minimized_controls[account].get(
room_jid, None)
if (self.msg_win_mgr.has_window(room_jid, account) or \
- minimized_control) and gajim.gc_connected[account][room_jid]:
+ minimized_control) and app.gc_connected[account][room_jid]:
if self.msg_win_mgr.has_window(room_jid, account):
gc_ctrl = self.msg_win_mgr.get_gc_control(room_jid, account)
win = gc_ctrl.parent_win
@@ -1989,8 +1989,8 @@ class Interface:
room_jid)
return
- invisible_show = gajim.SHOW_LIST.index('invisible')
- if gajim.connections[account].connected == invisible_show:
+ invisible_show = app.SHOW_LIST.index('invisible')
+ if app.connections[account].connected == invisible_show:
dialogs.ErrorDialog(
_('You cannot join a group chat while you are invisible'))
return
@@ -2000,10 +2000,10 @@ class Interface:
# Join new groupchat
if minimize:
# GCMIN
- contact = gajim.contacts.create_contact(jid=room_jid,
+ contact = app.contacts.create_contact(jid=room_jid,
account=account, name=nick)
gc_control = GroupchatControl(None, contact, account)
- gajim.interface.minimized_controls[account][room_jid] = \
+ app.interface.minimized_controls[account][room_jid] = \
gc_control
self.roster.add_groupchat(room_jid, account)
else:
@@ -2016,14 +2016,14 @@ class Interface:
gc_control.parent_win.set_active_tab(gc_control)
# Connect
- gajim.connections[account].join_gc(nick, room_jid, password)
+ app.connections[account].join_gc(nick, room_jid, password)
if password:
- gajim.gc_passwords[room_jid] = password
+ app.gc_passwords[room_jid] = password
def new_room(self, room_jid, nick, account, is_continued=False):
# Get target window, create a control, and associate it with the window
# GCMIN
- contact = gajim.contacts.create_contact(jid=room_jid, account=account,
+ contact = app.contacts.create_contact(jid=room_jid, account=account,
name=nick)
mw = self.msg_win_mgr.get_window(contact.jid, account)
if not mw:
@@ -2035,7 +2035,7 @@ class Interface:
mw.set_active_tab(gc_control)
def new_private_chat(self, gc_contact, account, session=None):
- conn = gajim.connections[account]
+ conn = app.connections[account]
if not session and gc_contact.get_full_jid() in conn.sessions:
sessions = [s for s in conn.sessions[gc_contact.get_full_jid()].\
values() if isinstance(s, ChatControlSession)]
@@ -2066,7 +2066,7 @@ class Interface:
contact, account, session)
message_window.new_tab(session.control)
- if gajim.events.get_events(account, gc_contact.get_full_jid()):
+ if app.events.get_events(account, gc_contact.get_full_jid()):
# We call this here to avoid race conditions with widget validation
session.control.read_queue()
@@ -2089,15 +2089,15 @@ class Interface:
mw.new_tab(chat_control)
- if len(gajim.events.get_events(account, fjid)):
+ if len(app.events.get_events(account, fjid)):
# We call this here to avoid race conditions with widget validation
chat_control.read_queue()
return chat_control
def new_chat_from_jid(self, account, fjid, message=None):
- jid, resource = gajim.get_room_and_nick_from_fjid(fjid)
- contact = gajim.contacts.get_contact(account, jid, resource)
+ jid, resource = app.get_room_and_nick_from_fjid(fjid)
+ contact = app.contacts.get_contact(account, jid, resource)
added_to_roster = False
if not contact:
added_to_roster = True
@@ -2109,7 +2109,7 @@ class Interface:
if not ctrl:
ctrl = self.new_chat(contact, account,
resource=resource)
- if len(gajim.events.get_events(account, fjid)):
+ if len(app.events.get_events(account, fjid)):
ctrl.read_queue()
if message:
@@ -2119,7 +2119,7 @@ class Interface:
mw.set_active_tab(ctrl)
# For JEP-0172
if added_to_roster:
- ctrl.user_nick = gajim.nicks[account]
+ ctrl.user_nick = app.nicks[account]
GLib.idle_add(mw.window.grab_focus)
return ctrl
@@ -2146,14 +2146,14 @@ class Interface:
ctrl = self.new_chat(contact, account, resource=resource,
session=session)
# last message is long time ago
- gajim.last_message_time[account][ctrl.get_full_jid()] = 0
+ app.last_message_time[account][ctrl.get_full_jid()] = 0
win = ctrl.parent_win
win.set_active_tab(ctrl)
- if gajim.connections[account].is_zeroconf and \
- gajim.connections[account].status in ('offline', 'invisible'):
+ if app.connections[account].is_zeroconf and \
+ app.connections[account].status in ('offline', 'invisible'):
ctrl = win.get_control(fjid, account)
if ctrl:
ctrl.got_disconnected()
@@ -2174,7 +2174,7 @@ class Interface:
return
except Exception:
return
- iconset = gajim.config.get('iconset')
+ iconset = app.config.get('iconset')
prefix = os.path.join(helpers.get_iconset_path(iconset), '32x32')
if status in ('chat', 'away', 'xa', 'dnd', 'invisible', 'offline'):
status = status + '.png'
@@ -2205,7 +2205,7 @@ class Interface:
@staticmethod
def music_track_changed(unused_listener, music_track_info, account=None):
if not account:
- accounts = gajim.connections.keys()
+ accounts = app.connections.keys()
else:
accounts = [account]
@@ -2218,16 +2218,16 @@ class Interface:
title = music_track_info.title
source = music_track_info.album
for acct in accounts:
- if not gajim.account_is_connected(acct):
+ if not app.account_is_connected(acct):
continue
- if not gajim.connections[acct].pep_supported:
+ if not app.connections[acct].pep_supported:
continue
- if not gajim.config.get_per('accounts', acct, 'publish_tune'):
+ if not app.config.get_per('accounts', acct, 'publish_tune'):
continue
- if gajim.connections[acct].music_track_info == music_track_info:
+ if app.connections[acct].music_track_info == music_track_info:
continue
- gajim.connections[acct].send_tune(artist, title, source)
- gajim.connections[acct].music_track_info = music_track_info
+ app.connections[acct].send_tune(artist, title, source)
+ app.connections[acct].music_track_info = music_track_info
def read_sleepy(self):
"""
@@ -2237,67 +2237,67 @@ class Interface:
# idle detection is not supported in that OS
return False # stop looping in vain
state = self.sleeper.getState()
- for account in gajim.connections:
- if account not in gajim.sleeper_state or \
- not gajim.sleeper_state[account]:
+ for account in app.connections:
+ if account not in app.sleeper_state or \
+ not app.sleeper_state[account]:
continue
if state == sleepy.STATE_AWAKE:
- if gajim.sleeper_state[account] in ('autoaway', 'autoxa'):
+ if app.sleeper_state[account] in ('autoaway', 'autoxa'):
# we go online
self.roster.send_status(account, 'online',
- gajim.status_before_autoaway[account])
- gajim.status_before_autoaway[account] = ''
- gajim.sleeper_state[account] = 'online'
- if gajim.sleeper_state[account] == 'idle':
+ app.status_before_autoaway[account])
+ app.status_before_autoaway[account] = ''
+ app.sleeper_state[account] = 'online'
+ if app.sleeper_state[account] == 'idle':
# we go to the previous state
- connected = gajim.connections[account].connected
- self.roster.send_status(account, gajim.SHOW_LIST[connected],
- gajim.status_before_autoaway[account])
- gajim.status_before_autoaway[account] = ''
- gajim.sleeper_state[account] = 'off'
- elif state == sleepy.STATE_AWAY and gajim.config.get('autoaway'):
- if gajim.sleeper_state[account] == 'online':
+ connected = app.connections[account].connected
+ self.roster.send_status(account, app.SHOW_LIST[connected],
+ app.status_before_autoaway[account])
+ app.status_before_autoaway[account] = ''
+ app.sleeper_state[account] = 'off'
+ elif state == sleepy.STATE_AWAY and app.config.get('autoaway'):
+ if app.sleeper_state[account] == 'online':
# we save out online status
- gajim.status_before_autoaway[account] = \
- gajim.connections[account].status
+ app.status_before_autoaway[account] = \
+ app.connections[account].status
# we go away (no auto status) [we pass True to auto param]
- auto_message = gajim.config.get('autoaway_message')
+ auto_message = app.config.get('autoaway_message')
if not auto_message:
- auto_message = gajim.connections[account].status
+ auto_message = app.connections[account].status
else:
auto_message = auto_message.replace('$S', '%(status)s')
auto_message = auto_message.replace('$T', '%(time)s')
auto_message = auto_message % {
- 'status': gajim.status_before_autoaway[account],
- 'time': gajim.config.get('autoawaytime')
+ 'status': app.status_before_autoaway[account],
+ 'time': app.config.get('autoawaytime')
}
self.roster.send_status(account, 'away', auto_message,
auto=True)
- gajim.sleeper_state[account] = 'autoaway'
- elif gajim.sleeper_state[account] == 'off':
+ app.sleeper_state[account] = 'autoaway'
+ elif app.sleeper_state[account] == 'off':
# we save out online status
- gajim.status_before_autoaway[account] = \
- gajim.connections[account].status
- connected = gajim.connections[account].connected
- self.roster.send_status(account, gajim.SHOW_LIST[connected],
- gajim.status_before_autoaway[account], auto=True)
- gajim.sleeper_state[account] = 'idle'
+ app.status_before_autoaway[account] = \
+ app.connections[account].status
+ connected = app.connections[account].connected
+ self.roster.send_status(account, app.SHOW_LIST[connected],
+ app.status_before_autoaway[account], auto=True)
+ app.sleeper_state[account] = 'idle'
elif state == sleepy.STATE_XA and \
- gajim.sleeper_state[account] in ('online', 'autoaway',
- 'autoaway-forced') and gajim.config.get('autoxa'):
+ app.sleeper_state[account] in ('online', 'autoaway',
+ 'autoaway-forced') and app.config.get('autoxa'):
# we go extended away [we pass True to auto param]
- auto_message = gajim.config.get('autoxa_message')
+ auto_message = app.config.get('autoxa_message')
if not auto_message:
- auto_message = gajim.connections[account].status
+ auto_message = app.connections[account].status
else:
auto_message = auto_message.replace('$S', '%(status)s')
auto_message = auto_message.replace('$T', '%(time)s')
auto_message = auto_message % {
- 'status': gajim.status_before_autoaway[account],
- 'time': gajim.config.get('autoxatime')
+ 'status': app.status_before_autoaway[account],
+ 'time': app.config.get('autoxatime')
}
self.roster.send_status(account, 'xa', auto_message, auto=True)
- gajim.sleeper_state[account] = 'autoxa'
+ app.sleeper_state[account] = 'autoxa'
return True # renew timeout (loop for ever)
def autoconnect(self):
@@ -2306,15 +2306,15 @@ class Interface:
"""
# dict of account that want to connect sorted by status
shows = {}
- for a in gajim.connections:
- if gajim.config.get_per('accounts', a, 'autoconnect'):
- if gajim.config.get_per('accounts', a, 'restore_last_status'):
- self.roster.send_status(a, gajim.config.get_per('accounts',
+ for a in app.connections:
+ if app.config.get_per('accounts', a, 'autoconnect'):
+ if app.config.get_per('accounts', a, 'restore_last_status'):
+ self.roster.send_status(a, app.config.get_per('accounts',
a, 'last_status'), helpers.from_one_line(
- gajim.config.get_per('accounts', a, 'last_status_msg')))
+ app.config.get_per('accounts', a, 'last_status_msg')))
continue
- show = gajim.config.get_per('accounts', a, 'autoconnect_as')
- if not show in gajim.SHOW_LIST:
+ show = app.config.get_per('accounts', a, 'autoconnect_as')
+ if not show in app.SHOW_LIST:
continue
if not show in shows:
shows[show] = [a]
@@ -2347,10 +2347,10 @@ class Interface:
Called each foo (200) miliseconds. Check for idlequeue timeouts
"""
try:
- gajim.idlequeue.process()
+ app.idlequeue.process()
except Exception:
# Otherwise, an exception will stop our loop
- timeout, in_seconds = gajim.idlequeue.PROCESS_TIMEOUT
+ timeout, in_seconds = app.idlequeue.PROCESS_TIMEOUT
if in_seconds:
GLib.timeout_add_seconds(timeout, self.process_connections)
else:
@@ -2377,7 +2377,7 @@ class Interface:
decoded image
"""
puny_jid = helpers.sanitize_filename(jid)
- path_to_file = os.path.join(gajim.AVATAR_PATH, puny_jid)
+ path_to_file = os.path.join(app.AVATAR_PATH, puny_jid)
if puny_nick:
path_to_file = os.path.join(path_to_file, puny_nick)
# remove old avatars
@@ -2398,7 +2398,7 @@ class Interface:
if pixbuf is None:
return
if typ not in ('jpeg', 'png'):
- gajim.log.info('gtkpixbuf cannot save other than jpeg and '\
+ app.log.info('gtkpixbuf cannot save other than jpeg and '\
'png formats. saving \'%s\' avatar as png file (originaly: %s)'\
% (jid, typ))
typ = 'png'
@@ -2436,7 +2436,7 @@ class Interface:
Remove avatar files of a jid
"""
puny_jid = helpers.sanitize_filename(jid)
- path_to_file = os.path.join(gajim.AVATAR_PATH, puny_jid)
+ path_to_file = os.path.join(app.AVATAR_PATH, puny_jid)
if puny_nick:
path_to_file = os.path.join(path_to_file, puny_nick)
for ext in ('.jpeg', '.png'):
@@ -2454,12 +2454,12 @@ class Interface:
"""
Autojoin bookmarked GCs that have 'auto join' on for this account
"""
- for bm in gajim.connections[account].bookmarks:
+ for bm in app.connections[account].bookmarks:
if bm['autojoin'] in ('1', 'true'):
jid = bm['jid']
# Only join non-opened groupchats. Opened one are already
# auto-joined on re-connection
- if not jid in gajim.gc_connected[account]:
+ if not jid in app.gc_connected[account]:
# we are not already connected
minimize = bm['minimize'] in ('1', 'true')
self.join_gc_room(account, jid, bm['nick'],
@@ -2487,7 +2487,7 @@ class Interface:
place_found = False
index = 0
# check for duplicate entry and respect alpha order
- for bookmark in gajim.connections[account].bookmarks:
+ for bookmark in app.connections[account].bookmarks:
if bookmark['jid'] == bm['jid']:
dialogs.ErrorDialog(
_('Bookmark already set'),
@@ -2499,10 +2499,10 @@ class Interface:
break
index += 1
if place_found:
- gajim.connections[account].bookmarks.insert(index, bm)
+ app.connections[account].bookmarks.insert(index, bm)
else:
- gajim.connections[account].bookmarks.append(bm)
- gajim.connections[account].store_bookmarks()
+ app.connections[account].bookmarks.append(bm)
+ app.connections[account].store_bookmarks()
gui_menu_builder.build_bookmark_menu(account)
dialogs.InformationDialog(
_('Bookmark has been added successfully'),
@@ -2511,7 +2511,7 @@ class Interface:
# does JID exist only within a groupchat?
def is_pm_contact(self, fjid, account):
- bare_jid = gajim.get_jid_without_resource(fjid)
+ bare_jid = app.get_jid_without_resource(fjid)
gc_ctrl = self.msg_win_mgr.get_gc_control(bare_jid, account)
@@ -2528,7 +2528,7 @@ class Interface:
mood = received_mood if received_mood in pep.MOODS else 'unknown'
return gtkgui_helpers.load_mood_icon(mood).get_pixbuf()
elif isinstance(pep_obj, pep.UserTunePEP):
- path = os.path.join(gajim.DATA_DIR, 'emoticons', 'static', 'music.png')
+ path = os.path.join(app.DATA_DIR, 'emoticons', 'static', 'music.png')
return GdkPixbuf.Pixbuf.new_from_file(path)
elif isinstance(pep_obj, pep.UserActivityPEP):
pep_ = pep_obj._pep_specific_data
@@ -2583,50 +2583,50 @@ class Interface:
return True
window.connect('delete_event', on_delete)
view.updateNamespace({'gajim': gajim})
- gajim.ipython_window = window
+ app.ipython_window = window
- def run(self, app):
- if gajim.config.get('trayicon') != 'never':
+ def run(self, application):
+ if app.config.get('trayicon') != 'never':
self.show_systray()
- self.roster = roster_window.RosterWindow(app)
+ self.roster = roster_window.RosterWindow(application)
if self.msg_win_mgr.mode == \
MessageWindowMgr.ONE_MSG_WINDOW_ALWAYS_WITH_ROSTER:
self.msg_win_mgr.create_window(None, None, None)
# Creating plugin manager
- import plugins
- gajim.plugin_manager = plugins.PluginManager()
+ from gajim import plugins
+ app.plugin_manager = plugins.PluginManager()
self.roster._before_fill()
- for account in gajim.connections:
- gajim.connections[account].load_roster_from_db()
+ for account in app.connections:
+ app.connections[account].load_roster_from_db()
self.roster._after_fill()
# get instances for windows/dialogs that will show_all()/hide()
self.instances['file_transfers'] = dialogs.FileTransfersWindow()
GLib.timeout_add(100, self.autoconnect)
- timeout, in_seconds = gajim.idlequeue.PROCESS_TIMEOUT
+ timeout, in_seconds = app.idlequeue.PROCESS_TIMEOUT
if in_seconds:
GLib.timeout_add_seconds(timeout, self.process_connections)
else:
GLib.timeout_add(timeout, self.process_connections)
- GLib.timeout_add_seconds(gajim.config.get(
+ GLib.timeout_add_seconds(app.config.get(
'check_idle_every_foo_seconds'), self.read_sleepy)
def remote_init():
- if gajim.config.get('remote_control'):
+ if app.config.get('remote_control'):
try:
- import remote_control
+ from gajim import remote_control
self.remote_ctrl = remote_control.Remote()
except Exception:
pass
GLib.timeout_add_seconds(5, remote_init)
def __init__(self):
- gajim.interface = self
- gajim.thread_interface = ThreadInterface
+ app.interface = self
+ app.thread_interface = ThreadInterface
# This is the manager and factory of message windows set by the module
self.msg_win_mgr = None
self.jabber_state_images = {'16': {}, '24': {}, '32': {}, 'opened': {},
@@ -2638,13 +2638,13 @@ class Interface:
self.pass_dialog = {}
self.db_error_dialog = None
self.default_colors = {
- 'inmsgcolor': gajim.config.get('inmsgcolor'),
- 'outmsgcolor': gajim.config.get('outmsgcolor'),
- 'inmsgtxtcolor': gajim.config.get('inmsgtxtcolor'),
- 'outmsgtxtcolor': gajim.config.get('outmsgtxtcolor'),
- 'statusmsgcolor': gajim.config.get('statusmsgcolor'),
- 'urlmsgcolor': gajim.config.get('urlmsgcolor'),
- 'markedmsgcolor': gajim.config.get('markedmsgcolor'),
+ 'inmsgcolor': app.config.get('inmsgcolor'),
+ 'outmsgcolor': app.config.get('outmsgcolor'),
+ 'inmsgtxtcolor': app.config.get('inmsgtxtcolor'),
+ 'outmsgtxtcolor': app.config.get('outmsgtxtcolor'),
+ 'statusmsgcolor': app.config.get('statusmsgcolor'),
+ 'urlmsgcolor': app.config.get('urlmsgcolor'),
+ 'markedmsgcolor': app.config.get('markedmsgcolor'),
}
self.handlers = {}
@@ -2664,16 +2664,16 @@ class Interface:
if not cfg_was_read:
# enable plugin_installer by default when creating config file
- gajim.config.set_per('plugins', 'plugin_installer', 'active', True)
+ app.config.set_per('plugins', 'plugin_installer', 'active', True)
- gajim.logger.reset_shown_unread_messages()
+ app.logger.reset_shown_unread_messages()
# override logging settings from config (don't take care of '-q' option)
- if gajim.config.get('verbose'):
+ if app.config.get('verbose'):
logging_helpers.set_verbose()
- for account in gajim.config.get_per('accounts'):
- if gajim.config.get_per('accounts', account, 'is_zeroconf'):
- gajim.ZEROCONF_ACC_NAME = account
+ for account in app.config.get_per('accounts'):
+ if app.config.get_per('accounts', account, 'is_zeroconf'):
+ app.ZEROCONF_ACC_NAME = account
break
# Is gnome configured to activate row on single click ?
# try:
@@ -2683,83 +2683,83 @@ class Interface:
# click_policy = client.get_string(
# '/apps/nautilus/preferences/click_policy')
# if click_policy == 'single':
-# gajim.single_click = True
+# app.single_click = True
# except Exception:
# pass
# add default status messages if there is not in the config file
- if len(gajim.config.get_per('statusmsg')) == 0:
- default = gajim.config.statusmsg_default
+ if len(app.config.get_per('statusmsg')) == 0:
+ default = app.config.statusmsg_default
for msg in default:
- gajim.config.add_per('statusmsg', msg)
- gajim.config.set_per('statusmsg', msg, 'message',
+ app.config.add_per('statusmsg', msg)
+ app.config.set_per('statusmsg', msg, 'message',
default[msg][0])
- gajim.config.set_per('statusmsg', msg, 'activity',
+ app.config.set_per('statusmsg', msg, 'activity',
default[msg][1])
- gajim.config.set_per('statusmsg', msg, 'subactivity',
+ app.config.set_per('statusmsg', msg, 'subactivity',
default[msg][2])
- gajim.config.set_per('statusmsg', msg, 'activity_text',
+ app.config.set_per('statusmsg', msg, 'activity_text',
default[msg][3])
- gajim.config.set_per('statusmsg', msg, 'mood',
+ app.config.set_per('statusmsg', msg, 'mood',
default[msg][4])
- gajim.config.set_per('statusmsg', msg, 'mood_text',
+ app.config.set_per('statusmsg', msg, 'mood_text',
default[msg][5])
#add default themes if there is not in the config file
- theme = gajim.config.get('roster_theme')
- if not theme in gajim.config.get_per('themes'):
- gajim.config.set('roster_theme', _('default'))
- if len(gajim.config.get_per('themes')) == 0:
+ theme = app.config.get('roster_theme')
+ if not theme in app.config.get_per('themes'):
+ app.config.set('roster_theme', _('default'))
+ if len(app.config.get_per('themes')) == 0:
d = ['accounttextcolor', 'accountbgcolor', 'accountfont',
'accountfontattrs', 'grouptextcolor', 'groupbgcolor',
'groupfont', 'groupfontattrs', 'contacttextcolor',
'contactbgcolor', 'contactfont', 'contactfontattrs',
'bannertextcolor', 'bannerbgcolor']
- default = gajim.config.themes_default
+ default = app.config.themes_default
for theme_name in default:
- gajim.config.add_per('themes', theme_name)
+ app.config.add_per('themes', theme_name)
theme = default[theme_name]
for o in d:
- gajim.config.set_per('themes', theme_name, o,
+ app.config.set_per('themes', theme_name, o,
theme[d.index(o)])
# Add Tor proxy if there is not in the config
- if len(gajim.config.get_per('proxies')) == 0:
- default = gajim.config.proxies_default
+ if len(app.config.get_per('proxies')) == 0:
+ default = app.config.proxies_default
for proxy in default:
- gajim.config.add_per('proxies', proxy)
- gajim.config.set_per('proxies', proxy, 'type',
+ app.config.add_per('proxies', proxy)
+ app.config.set_per('proxies', proxy, 'type',
default[proxy][0])
- gajim.config.set_per('proxies', proxy, 'host',
+ app.config.set_per('proxies', proxy, 'host',
default[proxy][1])
- gajim.config.set_per('proxies', proxy, 'port',
+ app.config.set_per('proxies', proxy, 'port',
default[proxy][2])
- gajim.idlequeue = idlequeue.get_idlequeue()
+ app.idlequeue = idlequeue.get_idlequeue()
# resolve and keep current record of resolved hosts
- gajim.resolver = resolver.get_resolver(gajim.idlequeue)
- gajim.socks5queue = socks5.SocksQueue(gajim.idlequeue,
+ app.resolver = resolver.get_resolver(app.idlequeue)
+ app.socks5queue = socks5.SocksQueue(app.idlequeue,
self.handle_event_file_rcv_completed,
self.handle_event_file_progress,
self.handle_event_file_error)
- gajim.proxy65_manager = proxy65_manager.Proxy65Manager(gajim.idlequeue)
- gajim.default_session_type = ChatControlSession
+ app.proxy65_manager = proxy65_manager.Proxy65Manager(app.idlequeue)
+ app.default_session_type = ChatControlSession
# Creating Network Events Controller
- from common import nec
- gajim.nec = nec.NetworkEventsController()
- gajim.notification = notify.Notification()
+ from gajim.common import nec
+ app.nec = nec.NetworkEventsController()
+ app.notification = notify.Notification()
self.create_core_handlers_list()
self.register_core_handlers()
- if gajim.config.get_per('accounts', gajim.ZEROCONF_ACC_NAME, 'active') \
- and gajim.HAVE_ZEROCONF:
- gajim.connections[gajim.ZEROCONF_ACC_NAME] = \
- connection_zeroconf.ConnectionZeroconf(gajim.ZEROCONF_ACC_NAME)
- for account in gajim.config.get_per('accounts'):
- if not gajim.config.get_per('accounts', account, 'is_zeroconf') and\
- gajim.config.get_per('accounts', account, 'active'):
- gajim.connections[account] = Connection(account)
+ if app.config.get_per('accounts', app.ZEROCONF_ACC_NAME, 'active') \
+ and app.HAVE_ZEROCONF:
+ app.connections[app.ZEROCONF_ACC_NAME] = \
+ connection_zeroconf.ConnectionZeroconf(app.ZEROCONF_ACC_NAME)
+ for account in app.config.get_per('accounts'):
+ if not app.config.get_per('accounts', account, 'is_zeroconf') and\
+ app.config.get_per('accounts', account, 'active'):
+ app.connections[account] = Connection(account)
# gtk hooks
# Gtk.about_dialog_set_email_hook(self.on_launch_browser_mailer, 'mail')
@@ -2768,88 +2768,88 @@ class Interface:
self.instances = {}
- for a in gajim.connections:
+ for a in app.connections:
self.instances[a] = {'infos': {}, 'disco': {}, 'gc_config': {},
'search': {}, 'online_dialog': {}, 'sub_request': {}}
# online_dialog contains all dialogs that have a meaning only when
# we are not disconnected
self.minimized_controls[a] = {}
- gajim.contacts.add_account(a)
- gajim.groups[a] = {}
- gajim.gc_connected[a] = {}
- gajim.automatic_rooms[a] = {}
- gajim.newly_added[a] = []
- gajim.to_be_removed[a] = []
- gajim.nicks[a] = gajim.config.get_per('accounts', a, 'name')
- gajim.block_signed_in_notifications[a] = True
- gajim.sleeper_state[a] = 0
- gajim.encrypted_chats[a] = []
- gajim.last_message_time[a] = {}
- gajim.status_before_autoaway[a] = ''
- gajim.transport_avatar[a] = {}
- gajim.gajim_optional_features[a] = []
- gajim.caps_hash[a] = ''
+ app.contacts.add_account(a)
+ app.groups[a] = {}
+ app.gc_connected[a] = {}
+ app.automatic_rooms[a] = {}
+ app.newly_added[a] = []
+ app.to_be_removed[a] = []
+ app.nicks[a] = app.config.get_per('accounts', a, 'name')
+ app.block_signed_in_notifications[a] = True
+ app.sleeper_state[a] = 0
+ app.encrypted_chats[a] = []
+ app.last_message_time[a] = {}
+ app.status_before_autoaway[a] = ''
+ app.transport_avatar[a] = {}
+ app.gajim_optional_features[a] = []
+ app.caps_hash[a] = ''
helpers.update_optional_features()
# prepopulate data which we are sure of; note: we do not log these info
- for account in gajim.connections:
+ for account in app.connections:
gajimcaps = caps_cache.capscache[('sha-1',
- gajim.caps_hash[account])]
- gajimcaps.identities = [gajim.gajim_identity]
- gajimcaps.features = gajim.gajim_common_features + \
- gajim.gajim_optional_features[account]
+ app.caps_hash[account])]
+ gajimcaps.identities = [app.gajim_identity]
+ gajimcaps.features = app.gajim_common_features + \
+ app.gajim_optional_features[account]
self.remote_ctrl = None
- import network_watcher
+ from gajim import network_watcher
if dbus_support.supported:
- import upower_listener
- import logind_listener
+ from gajim import upower_listener
+ from gajim import logind_listener
# Handle gnome screensaver
if dbus_support.supported:
def gnome_screensaver_ActiveChanged_cb(active):
if not active:
- for account in gajim.connections:
- if gajim.account_is_connected(account) and \
- gajim.sleeper_state[account] == 'autoaway-forced':
+ for account in app.connections:
+ if app.account_is_connected(account) and \
+ app.sleeper_state[account] == 'autoaway-forced':
# We came back online ofter gnome-screensaver
# autoaway
self.roster.send_status(account, 'online',
- gajim.status_before_autoaway[account])
- gajim.status_before_autoaway[account] = ''
- gajim.sleeper_state[account] = 'online'
+ app.status_before_autoaway[account])
+ app.status_before_autoaway[account] = ''
+ app.sleeper_state[account] = 'online'
return
- if not gajim.config.get('autoaway'):
+ if not app.config.get('autoaway'):
# Don't go auto away if user disabled the option
return
- for account in gajim.connections:
- if account not in gajim.sleeper_state or \
- not gajim.sleeper_state[account]:
+ for account in app.connections:
+ if account not in app.sleeper_state or \
+ not app.sleeper_state[account]:
continue
- if gajim.sleeper_state[account] == 'online':
- if not gajim.account_is_connected(account):
+ if app.sleeper_state[account] == 'online':
+ if not app.account_is_connected(account):
continue
# we save out online status
- gajim.status_before_autoaway[account] = \
- gajim.connections[account].status
+ app.status_before_autoaway[account] = \
+ app.connections[account].status
# we go away (no auto status) [we pass True to auto
# param]
- auto_message = gajim.config.get('autoaway_message')
+ auto_message = app.config.get('autoaway_message')
if not auto_message:
- auto_message = gajim.connections[account].status
+ auto_message = app.connections[account].status
else:
auto_message = auto_message.replace('$S',
'%(status)s')
auto_message = auto_message.replace('$T',
'%(time)s')
auto_message = auto_message % {
- 'status': gajim.status_before_autoaway[account],
- 'time': gajim.config.get('autoxatime')}
+ 'status': app.status_before_autoaway[account],
+ 'time': app.config.get('autoxatime')}
self.roster.send_status(account, 'away', auto_message,
auto=True)
- gajim.sleeper_state[account] = 'autoaway-forced'
+ app.sleeper_state[account] = 'autoaway-forced'
try:
bus = dbus.SessionBus()
@@ -2861,14 +2861,14 @@ class Interface:
self.show_vcard_when_connect = []
self.sleeper = sleepy.Sleepy(
- gajim.config.get('autoawaytime') * 60, # make minutes to seconds
- gajim.config.get('autoxatime') * 60)
+ app.config.get('autoawaytime') * 60, # make minutes to seconds
+ app.config.get('autoxatime') * 60)
gtkgui_helpers.make_jabber_state_images()
self.systray_enabled = False
- import statusicon
+ from gajim import statusicon
self.systray = statusicon.StatusIcon()
pixs = []
@@ -2884,21 +2884,21 @@ class Interface:
self.make_regexps()
# get transports type from DB
- gajim.transport_type = gajim.logger.get_transports_type()
+ app.transport_type = app.logger.get_transports_type()
# test is dictionnary is present for speller
- if gajim.config.get('use_speller'):
- lang = gajim.config.get('speller_language')
+ if app.config.get('use_speller'):
+ lang = app.config.get('speller_language')
if not lang:
- lang = gajim.LANG
+ lang = app.LANG
tv = Gtk.TextView()
try:
- import gtkspell
+ from gajim import gtkspell
spell = gtkspell.Spell(tv, lang)
except (ImportError, TypeError, RuntimeError, OSError, ValueError):
dialogs.AspellDictError(lang)
- if gajim.config.get('soundplayer') == '':
+ if app.config.get('soundplayer') == '':
# only on first time Gajim starts
commands = ('paplay', 'aplay', 'play', 'ossplay')
for command in commands:
@@ -2909,7 +2909,7 @@ class Interface:
command += ' -q'
elif command == 'ossplay':
command += ' -qq'
- gajim.config.set('soundplayer', command)
+ app.config.set('soundplayer', command)
break
self.last_ftwindow_update = 0
@@ -2937,7 +2937,7 @@ class PassphraseRequest:
self.dialog.window.destroy()
def run_callback(self, account, callback):
- gajim.connections[account].gpg_passphrase(self.passphrase)
+ app.connections[account].gpg_passphrase(self.passphrase)
callback()
def add_callback(self, account, cb):
@@ -2952,7 +2952,7 @@ class PassphraseRequest:
self.passphrase = passphrase
self.completed = True
if passphrase is not None:
- GLib.timeout_add_seconds(30, gajim.interface.forget_gpg_passphrase,
+ GLib.timeout_add_seconds(30, app.interface.forget_gpg_passphrase,
self.keyid)
for (account, cb) in self.callbacks:
self.run_callback(account, cb)
@@ -2968,7 +2968,7 @@ class PassphraseRequest:
self.complete(None)
def _ok(passphrase, checked, count):
- result = gajim.connections[account].test_gpg_passphrase(passphrase)
+ result = app.connections[account].test_gpg_passphrase(passphrase)
if result == 'ok':
# passphrase is good
self.complete(passphrase)
@@ -2978,7 +2978,7 @@ class PassphraseRequest:
_('Your OpenPGP key has expired, you will be connected to '
'%s without OpenPGP.') % account)
# Don't try to connect with GPG
- gajim.connections[account].continue_connect_info[2] = False
+ app.connections[account].continue_connect_info[2] = False
self.complete(None)
return
diff --git a/gajim/gui_menu_builder.py b/gajim/gui_menu_builder.py
index 097bc609f..ed44619c9 100644
--- a/gajim/gui_menu_builder.py
+++ b/gajim/gui_menu_builder.py
@@ -20,15 +20,15 @@
from gi.repository import Gtk, Gio, GLib
import os
-import gtkgui_helpers
-import message_control
+from gajim import gtkgui_helpers
+from gajim import message_control
-from common import gajim
-from common import helpers
-from common import i18n
+from gajim.common import app
+from gajim.common import helpers
+from gajim.common import i18n
from nbxmpp.protocol import NS_COMMANDS, NS_FILE, NS_MUC, NS_ESESSION
from nbxmpp.protocol import NS_JINGLE_FILE_TRANSFER_5, NS_CONFERENCE
-from gtkgui_helpers import get_action
+from gajim.gtkgui_helpers import get_action
def build_resources_submenu(contacts, account, action, room_jid=None,
room_account=None, cap=None):
@@ -36,12 +36,12 @@ def build_resources_submenu(contacts, account, action, room_jid=None,
Build a submenu with contact's resources. room_jid and room_account are for
action self.on_invite_to_room
"""
- roster = gajim.interface.roster
+ roster = app.interface.roster
sub_menu = Gtk.Menu()
- iconset = gajim.config.get('iconset')
+ iconset = app.config.get('iconset')
if not iconset:
- iconset = gajim.config.DEFAULT_ICONSET
+ iconset = app.config.DEFAULT_ICONSET
path = os.path.join(helpers.get_iconset_path(iconset), '16x16')
for c in contacts:
item = Gtk.MenuItem.new_with_label(
@@ -70,19 +70,19 @@ show_bookmarked=False, force_resource=False):
"""
if ignore_rooms is None:
ignore_rooms = []
- roster = gajim.interface.roster
+ roster = app.interface.roster
# used if we invite only one contact with several resources
contact_list = []
if len(list_) == 1:
contact, account = list_[0]
- contact_list = gajim.contacts.get_contacts(account, contact.jid)
+ contact_list = app.contacts.get_contacts(account, contact.jid)
contacts_transport = -1
connected_accounts = []
# -1 is at start, False when not from the same, None when jabber
for (contact, account) in list_:
if not account in connected_accounts:
connected_accounts.append(account)
- transport = gajim.get_transport_name_from_jid(contact.jid)
+ transport = app.get_transport_name_from_jid(contact.jid)
if transport == 'jabber':
transport = None
if contacts_transport == -1:
@@ -104,7 +104,7 @@ show_bookmarked=False, force_resource=False):
elif len(list_) == 1 and contact.supports(NS_MUC):
invite_menuitem.set_sensitive(True)
# use resource if it's self contact
- if contact.jid == gajim.get_jid_from_account(account) or force_resource:
+ if contact.jid == app.get_jid_from_account(account) or force_resource:
resource = contact.resource
else:
resource = None
@@ -126,8 +126,8 @@ show_bookmarked=False, force_resource=False):
c_t = contacts_transport or 'jabber'
muc_jid = {}
for account in connected_accounts:
- for t in gajim.connections[account].muc_jid:
- muc_jid[t] = gajim.connections[account].muc_jid[t]
+ for t in app.connections[account].muc_jid:
+ muc_jid[t] = app.connections[account].muc_jid[t]
if c_t not in muc_jid:
invite_to_new_room_menuitem.set_sensitive(False)
rooms = [] # a list of (room_jid, account) tuple
@@ -135,8 +135,8 @@ show_bookmarked=False, force_resource=False):
minimized_controls = []
for account in connected_accounts:
minimized_controls += \
- list(gajim.interface.minimized_controls[account].values())
- for gc_control in gajim.interface.msg_win_mgr.get_controls(
+ list(app.interface.minimized_controls[account].values())
+ for gc_control in app.interface.msg_win_mgr.get_controls(
message_control.TYPE_GC) + minimized_controls:
acct = gc_control.account
if acct not in connected_accounts:
@@ -144,8 +144,8 @@ show_bookmarked=False, force_resource=False):
room_jid = gc_control.room_jid
if room_jid in ignore_rooms:
continue
- if room_jid in gajim.gc_connected[acct] and \
- gajim.gc_connected[acct][room_jid] and \
+ if room_jid in app.gc_connected[acct] and \
+ app.gc_connected[acct][room_jid] and \
contacts_transport in ['jabber', None]:
rooms.append((room_jid, acct))
if len(rooms):
@@ -159,7 +159,7 @@ show_bookmarked=False, force_resource=False):
account))
else:
# use resource if it's self contact
- if contact.jid == gajim.get_jid_from_account(account):
+ if contact.jid == app.get_jid_from_account(account):
resource = contact.resource
else:
resource = None
@@ -172,12 +172,12 @@ show_bookmarked=False, force_resource=False):
rooms2 = [] # a list of (room_jid, account) tuple
r_jids = [] # list of room jids
for account in connected_accounts:
- for room in gajim.connections[account].bookmarks:
+ for room in app.connections[account].bookmarks:
r_jid = room['jid']
if r_jid in r_jids:
continue
- if r_jid not in gajim.gc_connected[account] or not \
- gajim.gc_connected[account][r_jid]:
+ if r_jid not in app.gc_connected[account] or not \
+ app.gc_connected[account][r_jid]:
rooms2.append((r_jid, account))
r_jids.append(r_jid)
@@ -193,7 +193,7 @@ show_bookmarked=False, force_resource=False):
account))
else:
# use resource if it's self contact
- if contact.jid == gajim.get_jid_from_account(account):
+ if contact.jid == app.get_jid_from_account(account):
resource = contact.resource
else:
resource = None
@@ -212,8 +212,8 @@ control=None, gc_contact=None, is_anonymous=True):
return
jid = contact.jid
- our_jid = jid == gajim.get_jid_from_account(account)
- roster = gajim.interface.roster
+ our_jid = jid == app.get_jid_from_account(account)
+ roster = app.interface.roster
xml = gtkgui_helpers.get_gtk_builder('contact_context_menu.ui')
contact_context_menu = xml.get_object('contact_context_menu')
@@ -249,17 +249,17 @@ control=None, gc_contact=None, is_anonymous=True):
items_to_hide = []
- contacts = gajim.contacts.get_contacts(account, jid)
+ contacts = app.contacts.get_contacts(account, jid)
if len(contacts) > 1 and use_multiple_contacts: # several resources
start_chat_menuitem.set_submenu(build_resources_submenu(contacts,
- account, gajim.interface.on_open_chat_window))
+ account, app.interface.on_open_chat_window))
send_file_menuitem.set_submenu(build_resources_submenu(contacts,
account, roster.on_send_file_menuitem_activate, cap=NS_FILE))
execute_command_menuitem.set_submenu(build_resources_submenu(
contacts, account, roster.on_execute_command, cap=NS_COMMANDS))
else:
start_chat_menuitem.connect('activate',
- gajim.interface.on_open_chat_window, contact, account)
+ app.interface.on_open_chat_window, contact, account)
if contact.supports(NS_FILE) or contact.supports(NS_JINGLE_FILE_TRANSFER_5):
send_file_menuitem.set_sensitive(True)
send_file_menuitem.connect('activate',
@@ -295,7 +295,7 @@ control=None, gc_contact=None, is_anonymous=True):
edit_groups_menuitem.connect('activate', roster.on_edit_groups, [(contact,
account)])
- if gajim.connections[account].gpg:
+ if app.connections[account].gpg:
assign_openpgp_key_menuitem.connect('activate',
roster.on_assign_pgp_key, contact, account)
else:
@@ -310,7 +310,7 @@ control=None, gc_contact=None, is_anonymous=True):
items_to_hide += [rename_menuitem, edit_groups_menuitem]
# Unsensitive many items when account is offline
- if gajim.account_is_disconnected(account):
+ if app.account_is_disconnected(account):
for widget in (start_chat_menuitem, rename_menuitem,
edit_groups_menuitem, send_file_menuitem, convert_to_gc_menuitem,
information_menuitem):
@@ -336,7 +336,7 @@ control=None, gc_contact=None, is_anonymous=True):
item.hide()
# Zeroconf Account
- if gajim.config.get_per('accounts', account, 'is_zeroconf'):
+ if app.config.get_per('accounts', account, 'is_zeroconf'):
for item in (send_custom_status_menuitem, send_single_message_menuitem,
invite_menuitem, block_menuitem, unblock_menuitem, ignore_menuitem,
unignore_menuitem, set_custom_avatar_menuitem, subscription_menuitem,
@@ -367,7 +367,7 @@ control=None, gc_contact=None, is_anonymous=True):
if helpers.group_is_blocked(account, group):
blocked = True
break
- transport = gajim.get_transport_name_from_jid(jid, use_config_setting=False)
+ transport = app.get_transport_name_from_jid(jid, use_config_setting=False)
if transport and transport != 'jabber':
# Transport contact, send custom status unavailable
send_custom_status_menuitem.set_sensitive(False)
@@ -380,7 +380,7 @@ control=None, gc_contact=None, is_anonymous=True):
invite_menuitem.set_sensitive(False)
else:
bookmarked = False
- c_ = gajim.contacts.get_contact(account, gc_contact.jid,
+ c_ = app.contacts.get_contact(account, gc_contact.jid,
gc_contact.resource)
if c_ and c_.supports(NS_CONFERENCE):
bookmarked=True
@@ -394,7 +394,7 @@ control=None, gc_contact=None, is_anonymous=True):
show_bookmarked=contact.supports(NS_CONFERENCE),
force_resource=force_resource)
- if gajim.account_is_disconnected(account):
+ if app.account_is_disconnected(account):
invite_menuitem.set_sensitive(False)
# One or several resource, we do the same for send_custom_status
@@ -431,7 +431,7 @@ control=None, gc_contact=None, is_anonymous=True):
ask_auth_menuitem.connect('activate', roster.req_sub, jid,
_('I would like to add you to my roster'), account,
contact.groups, contact.name)
- transport = gajim.get_transport_name_from_jid(jid,
+ transport = app.get_transport_name_from_jid(jid,
use_config_setting=False)
if contact.sub in ('to', 'none') or transport not in ['jabber', None]:
revoke_auth_menuitem.set_sensitive(False)
@@ -439,7 +439,7 @@ control=None, gc_contact=None, is_anonymous=True):
revoke_auth_menuitem.connect('activate', roster.revoke_auth, jid,
account)
- elif gajim.connections[account].roster_supported:
+ elif app.connections[account].roster_supported:
# contact is in group 'Not in Roster'
add_to_roster_menuitem.set_no_show_all(False)
subscription_menuitem.set_sensitive(False)
@@ -459,18 +459,18 @@ control=None, gc_contact=None, is_anonymous=True):
manage_contact_menuitem.set_sensitive(False)
# Unsensitive items when account is offline
- if gajim.account_is_disconnected(account):
+ if app.account_is_disconnected(account):
for widget in (send_single_message_menuitem, subscription_menuitem,
add_to_roster_menuitem, remove_from_roster_menuitem,
execute_command_menuitem, send_custom_status_menuitem):
widget.set_sensitive(False)
- if gajim.connections[account] and (gajim.connections[account].\
- privacy_rules_supported or gajim.connections[account].blocking_supported):
+ if app.connections[account] and (app.connections[account].\
+ privacy_rules_supported or app.connections[account].blocking_supported):
if helpers.jid_is_blocked(account, jid):
block_menuitem.set_no_show_all(True)
block_menuitem.hide()
- if gajim.get_transport_name_from_jid(jid, use_config_setting=False)\
+ if app.get_transport_name_from_jid(jid, use_config_setting=False)\
and transport != 'jabber':
unblock_menuitem.set_no_show_all(True)
unblock_menuitem.hide()
@@ -483,7 +483,7 @@ control=None, gc_contact=None, is_anonymous=True):
else:
unblock_menuitem.set_no_show_all(True)
unblock_menuitem.hide()
- if gajim.get_transport_name_from_jid(jid, use_config_setting=False)\
+ if app.get_transport_name_from_jid(jid, use_config_setting=False)\
and transport != 'jabber':
block_menuitem.set_no_show_all(True)
block_menuitem.hide()
@@ -503,7 +503,7 @@ control=None, gc_contact=None, is_anonymous=True):
return contact_context_menu
def get_transport_menu(contact, account):
- roster = gajim.interface.roster
+ roster = app.interface.roster
jid = contact.jid
menu = Gtk.Menu()
@@ -513,7 +513,7 @@ def get_transport_menu(contact, account):
item.connect('activate', roster.on_send_single_message_menuitem_activate,
account, contact)
menu.append(item)
- if gajim.account_is_disconnected(account):
+ if app.account_is_disconnected(account):
item.set_sensitive(False)
blocked = False
@@ -535,7 +535,7 @@ def get_transport_menu(contact, account):
[(contact, account)], s)
status_menuitems.append(status_menuitem)
menu.append(send_custom_status_menuitem)
- if gajim.account_is_disconnected(account):
+ if app.account_is_disconnected(account):
send_custom_status_menuitem.set_sensitive(False)
item = Gtk.SeparatorMenuItem.new() # separator
@@ -546,7 +546,7 @@ def get_transport_menu(contact, account):
menu.append(item)
item.connect('activate', roster.on_execute_command, contact, account,
contact.resource)
- if gajim.account_is_disconnected(account):
+ if app.account_is_disconnected(account):
item.set_sensitive(False)
# Manage Transport submenu
@@ -559,14 +559,14 @@ def get_transport_menu(contact, account):
item = Gtk.MenuItem.new_with_mnemonic(_('_Modify Transport'))
manage_transport_submenu.append(item)
item.connect('activate', roster.on_edit_agent, contact, account)
- if gajim.account_is_disconnected(account):
+ if app.account_is_disconnected(account):
item.set_sensitive(False)
# Rename
item = Gtk.MenuItem.new_with_mnemonic(_('_Rename…'))
manage_transport_submenu.append(item)
item.connect('activate', roster.on_rename, 'agent', jid, account)
- if gajim.account_is_disconnected(account):
+ if app.account_is_disconnected(account):
item.set_sensitive(False)
item = Gtk.SeparatorMenuItem.new() # separator
@@ -581,14 +581,14 @@ def get_transport_menu(contact, account):
item.connect('activate', roster.on_block, [(contact, account)])
manage_transport_submenu.append(item)
- if gajim.account_is_disconnected(account):
+ if app.account_is_disconnected(account):
item.set_sensitive(False)
# Remove
item = Gtk.MenuItem.new_with_mnemonic(_('Remo_ve'))
manage_transport_submenu.append(item)
item.connect('activate', roster.on_remove_agent, [(contact, account)])
- if gajim.account_is_disconnected(account):
+ if app.account_is_disconnected(account):
item.set_sensitive(False)
item = Gtk.SeparatorMenuItem.new() # separator
@@ -598,7 +598,7 @@ def get_transport_menu(contact, account):
information_menuitem = Gtk.MenuItem.new_with_mnemonic(_('_Information'))
menu.append(information_menuitem)
information_menuitem.connect('activate', roster.on_info, contact, account)
- if gajim.account_is_disconnected(account):
+ if app.account_is_disconnected(account):
information_menuitem.set_sensitive(False)
menu.connect('selection-done', gtkgui_helpers.destroy_widget)
@@ -611,7 +611,7 @@ Build dynamic Application Menus
def get_bookmarks_menu(account, rebuild=False):
- if not gajim.connections[account].bookmarks:
+ if not app.connections[account].bookmarks:
return None
menu = Gio.Menu()
@@ -624,7 +624,7 @@ def get_bookmarks_menu(account, rebuild=False):
# Build Bookmarks
section = Gio.Menu()
- for bookmark in gajim.connections[account].bookmarks:
+ for bookmark in app.connections[account].bookmarks:
name = bookmark['name']
if not name:
# No name was given for this bookmark.
@@ -710,11 +710,11 @@ def get_account_menu(account):
def build_accounts_menu():
- menubar = gajim.app.get_menubar()
+ menubar = app.app.get_menubar()
# Accounts Submenu
acc_menu = menubar.get_item_link(0, 'submenu')
acc_menu.remove_all()
- accounts_list = sorted(gajim.contacts.get_accounts())
+ accounts_list = sorted(app.contacts.get_accounts())
if not accounts_list:
no_accounts = _('No Accounts available')
acc_menu.append_item(Gio.MenuItem.new(no_accounts, None))
@@ -730,7 +730,7 @@ def build_accounts_menu():
def build_bookmark_menu(account):
- menubar = gajim.app.get_menubar()
+ menubar = app.app.get_menubar()
bookmark_menu = get_bookmarks_menu(account)
if not bookmark_menu:
return
@@ -756,7 +756,7 @@ def get_encryption_menu(control_id, type_id):
menu = Gio.Menu()
menu.append(
'Disabled', 'win.set-encryption-{}::{}'.format(control_id, 'disabled'))
- for name, plugin in gajim.plugin_manager.encryption_plugins.items():
+ for name, plugin in app.plugin_manager.encryption_plugins.items():
if type_id == 'gc':
if not hasattr(plugin, 'allow_groupchat'):
continue
diff --git a/gajim/history_manager.py b/gajim/history_manager.py
index 6b06c731a..72f1bc08b 100644
--- a/gajim/history_manager.py
+++ b/gajim/history_manager.py
@@ -39,7 +39,7 @@ from gi.repository import GLib
import time
import getopt
-from common import i18n
+from gajim.common import i18n
def parseOpts():
config_path = None
@@ -68,14 +68,14 @@ def parseOpts():
config_path = parseOpts()
del parseOpts
-import common.configpaths
-common.configpaths.gajimpaths.init(config_path)
+import gajim.common.configpaths
+gajim.common.configpaths.gajimpaths.init(config_path)
del config_path
-from common import gajim
-import gtkgui_helpers
-from common.logger import LOG_DB_PATH, JIDConstant, KindConstant
-from common import helpers
-import dialogs
+from gajim.common import app
+from gajim import gtkgui_helpers
+from gajim.common.logger import LOG_DB_PATH, JIDConstant, KindConstant
+from gajim.common import helpers
+from gajim import dialogs
from enum import IntEnum, unique
@@ -381,20 +381,20 @@ class HistoryManager:
if kind in (KindConstant.SINGLE_MSG_RECV,
KindConstant.CHAT_MSG_RECV, KindConstant.GC_MSG):
# it is the other side
- color = gajim.config.get('inmsgcolor') # so incoming color
+ color = app.config.get('inmsgcolor') # so incoming color
elif kind in (KindConstant.SINGLE_MSG_SENT,
KindConstant.CHAT_MSG_SENT): # it is us
- color = gajim.config.get('outmsgcolor') # so outgoing color
+ color = app.config.get('outmsgcolor') # so outgoing color
elif kind in (KindConstant.STATUS,
KindConstant.GCSTATUS): # is is statuses
# so status color
- color = gajim.config.get('statusmsgcolor')
+ color = app.config.get('statusmsgcolor')
# include status into (status) message
if message is None:
message = ''
else:
message = ' : ' + message
- message = helpers.get_uf_show(gajim.SHOW_LIST[show]) + \
+ message = helpers.get_uf_show(app.SHOW_LIST[show]) + \
message
message_ = ' every_foo_seconds:
@@ -455,12 +455,12 @@ class HistoryWindow:
tag_msg = 'incomingtxt'
elif kind in (KindConstant.SINGLE_MSG_SENT, KindConstant.CHAT_MSG_SENT):
if self.account:
- contact_name = gajim.nicks[self.account]
+ contact_name = app.nicks[self.account]
else:
# we don't have roster, we don't know our own nick, use first
# account one (urk!)
- account = list(gajim.contacts.get_accounts())[0]
- contact_name = gajim.nicks[account]
+ account = list(app.contacts.get_accounts())[0]
+ contact_name = app.nicks[account]
tag_name = 'outgoing'
tag_msg = 'outgoingtxt'
elif kind == KindConstant.GCSTATUS:
@@ -495,9 +495,9 @@ class HistoryWindow:
# eg. nkour: nkour is now Offline
if contact_name and kind != KindConstant.GCSTATUS:
# add stuff before and after contact name
- before_str = gajim.config.get('before_nickname')
+ before_str = app.config.get('before_nickname')
before_str = helpers.from_one_line(before_str)
- after_str = gajim.config.get('after_nickname')
+ after_str = app.config.get('after_nickname')
after_str = helpers.from_one_line(after_str)
format = before_str + contact_name + after_str + ' '
if tag_name:
@@ -537,7 +537,7 @@ class HistoryWindow:
# or if we browse a groupchat history. The account is not needed, a dummy can
# be set.
# This may leed to wrong self nick in the displayed history (Uggh!)
- account = list(gajim.contacts.get_accounts())[0]
+ account = list(app.contacts.get_accounts())[0]
date = None
if self.search_in_date.get_active():
@@ -547,7 +547,7 @@ class HistoryWindow:
show_status = self.show_status_checkbutton.get_active()
- results = gajim.logger.search_log(account, jid, text, date)
+ results = app.logger.search_log(account, jid, text, date)
#FIXME:
# add "subject: | message: " in message column if kind is single
# also do we need show at all? (we do not search on subject)
@@ -559,7 +559,7 @@ class HistoryWindow:
contact_name = row.contact_name
if not contact_name:
if row.kind == KindConstant.CHAT_MSG_SENT: # it's us! :)
- contact_name = gajim.nicks[account]
+ contact_name = app.nicks[account]
else:
contact_name = self.completion_dict[jid][InfoColumn.NAME]
@@ -633,7 +633,7 @@ class HistoryWindow:
def on_log_history_checkbutton_toggled(self, widget):
# log conversation history?
oldlog = True
- no_log_for = gajim.config.get_per('accounts', self.account,
+ no_log_for = app.config.get_per('accounts', self.account,
'no_log_for').split()
if self.jid in no_log_for:
oldlog = False
@@ -643,7 +643,7 @@ class HistoryWindow:
if log and self.jid in no_log_for:
no_log_for.remove(self.jid)
if oldlog != log:
- gajim.config.set_per('accounts', self.account, 'no_log_for',
+ app.config.set_per('accounts', self.account, 'no_log_for',
' '.join(no_log_for))
def on_show_status_checkbutton_toggled(self, widget):
@@ -668,7 +668,7 @@ class HistoryWindow:
x, y = self.window.get_window().get_root_origin()
width, height = self.window.get_size()
- gajim.config.set('history_window_x-position', x)
- gajim.config.set('history_window_y-position', y)
- gajim.config.set('history_window_width', width)
- gajim.config.set('history_window_height', height)
+ app.config.set('history_window_x-position', x)
+ app.config.set('history_window_y-position', y)
+ app.config.set('history_window_width', width)
+ app.config.set('history_window_height', height)
diff --git a/gajim/htmltextview.py b/gajim/htmltextview.py
index ce9551ec5..a5eeb2ff4 100644
--- a/gajim/htmltextview.py
+++ b/gajim/htmltextview.py
@@ -48,17 +48,17 @@ from io import StringIO
import urllib
if __name__ == '__main__':
- from common import i18n
- import common.configpaths
- common.configpaths.gajimpaths.init(None)
-from common import gajim
-import gtkgui_helpers
-from gtkgui_helpers import get_icon_pixmap
-from common import helpers
-from common.exceptions import GajimGeneralException
-import dialogs
+ from gajim.common import i18n
+ import gajim.common.configpaths
+ app.common.configpaths.gajimpaths.init(None)
+from gajim.common import app
+from gajim import gtkgui_helpers
+from gajim.gtkgui_helpers import get_icon_pixmap
+from gajim.common import helpers
+from gajim.common.exceptions import GajimGeneralException
+from gajim import dialogs
-import tooltips
+from gajim import tooltips
import logging
log = logging.getLogger('gajim.htmlview')
@@ -515,7 +515,7 @@ class HtmlHandler(xml.sax.handler.ContentHandler):
tag.href = href
tag.type_ = type_ # to be used by the URL handler
tag.connect('event', self.textview.hyperlink_handler, 'url')
- tag.set_property('foreground', gajim.config.get('urlmsgcolor'))
+ tag.set_property('foreground', app.config.get('urlmsgcolor'))
tag.set_property('underline', Pango.Underline.SINGLE)
tag.is_anchor = True
if title:
@@ -550,7 +550,7 @@ class HtmlHandler(xml.sax.handler.ContentHandler):
else:
if self.conv_textview:
img_mark = self.textbuf.create_mark(None, self.iter, True)
- gajim.thread_interface(helpers.download_image, [
+ app.thread_interface(helpers.download_image, [
self.conv_textview.account, attrs], self._update_img,
[attrs, img_mark, self._get_style_tags()])
alt = attrs.get('alt', '')
@@ -849,8 +849,8 @@ class HtmlTextView(Gtk.TextView):
self.id_ = self.connect('button-release-event',
self.on_left_mouse_button_release)
self.get_buffer().eol_tag = self.get_buffer().create_tag('eol')
- self.config = gajim.config
- self.interface = gajim.interface
+ self.config = app.config
+ self.interface = app.interface
# end big hack
def connect_tooltip(self, func=None):
@@ -860,7 +860,7 @@ class HtmlTextView(Gtk.TextView):
buffer_ = self.get_buffer()
self.tagURL = buffer_.create_tag('url')
- color = gajim.config.get('urlmsgcolor')
+ color = app.config.get('urlmsgcolor')
self.tagURL.set_property('foreground', color)
self.tagURL.set_property('underline', Pango.Underline.SINGLE)
self.tagURL.connect('event', self.hyperlink_handler, 'url')
@@ -912,7 +912,7 @@ class HtmlTextView(Gtk.TextView):
clip.set_text(text, -1)
# def on_start_chat_activate(self, widget, jid):
-# gajim.interface.new_chat_from_jid(self.account, jid)
+# app.interface.new_chat_from_jid(self.account, jid)
def on_join_group_chat_menuitem_activate(self, widget, room_jid):
try:
@@ -924,7 +924,7 @@ class HtmlTextView(Gtk.TextView):
dialogs.AddNewContactWindow(self.account, jid)
def make_link_menu(self, event, kind, text):
- from gtkgui_helpers import get_gtk_builder
+ from gajim.gtkgui_helpers import get_gtk_builder
xml = get_gtk_builder('chat_context_menu.ui')
menu = xml.get_object('chat_context_menu')
childs = menu.get_children()
@@ -952,7 +952,7 @@ class HtmlTextView(Gtk.TextView):
childs[6].connect('activate',
self.on_join_group_chat_menuitem_activate, text)
-# if self.account and gajim.connections[self.account].\
+# if self.account and app.connections[self.account].\
# roster_supported:
# childs[7].connect('activate',
# self.on_add_to_roster_activate, text)
@@ -995,7 +995,7 @@ class HtmlTextView(Gtk.TextView):
kind = 'xmpp'
elif word.startswith('mailto:'):
kind = 'mail'
- elif gajim.interface.sth_at_sth_dot_sth_re.match(word):
+ elif app.interface.sth_at_sth_dot_sth_re.match(word):
# it's a JID or mail
kind = 'sth_at_sth'
else:
@@ -1097,11 +1097,11 @@ if __name__ == '__main__':
log = logging.getLogger()
gaj.Interface()
- # create fake gajim.plugin_manager.gui_extension_point method for tests
+ # create fake app.plugin_manager.gui_extension_point method for tests
def gui_extension_point(*args):
pass
- gajim.plugin_manager = gaj.Interface()
- gajim.plugin_manager.gui_extension_point = gui_extension_point
+ app.plugin_manager = gaj.Interface()
+ app.plugin_manager.gui_extension_point = gui_extension_point
htmlview = ConversationTextview(None)
diff --git a/gajim/logind_listener.py b/gajim/logind_listener.py
index b447fdb1a..33cd53bf6 100644
--- a/gajim/logind_listener.py
+++ b/gajim/logind_listener.py
@@ -25,8 +25,8 @@ Documentation: http://www.freedesktop.org/wiki/Software/systemd/inhibit
import os
import logging
-from common import dbus_support
-from common import gajim
+from gajim.common import dbus_support
+from gajim.common import app
log = logging.getLogger('gajim.logind_listener')
supported = False
@@ -46,9 +46,9 @@ def on_suspend(active):
# we're going for suspend, let's disconnect
log.debug('System suspend detected, disconnecting from network…')
- for name, conn in gajim.connections.items():
- if gajim.account_is_connected(name):
- conn.old_show = gajim.SHOW_LIST[conn.connected]
+ for name, conn in app.connections.items():
+ if app.account_is_connected(name):
+ conn.old_show = app.SHOW_LIST[conn.connected]
st = conn.status
conn.change_status('offline', _('Machine going to sleep'))
conn.status = st
@@ -67,7 +67,7 @@ def on_suspend(active):
def get_inhibitor():
'''Ask for a suspend delay inhibitor'''
- from common.dbus_support import system_bus, dbus
+ from gajim.common.dbus_support import system_bus, dbus
bus = system_bus.bus()
global fd
@@ -91,7 +91,7 @@ def set_listener():
@return bool whether it succeeded
'''
- from common.dbus_support import system_bus
+ from gajim.common.dbus_support import system_bus
bus = system_bus.bus()
if not 'org.freedesktop.login1' in bus.list_names():
diff --git a/gajim/message_control.py b/gajim/message_control.py
index a9e702317..86ac1c5e4 100644
--- a/gajim/message_control.py
+++ b/gajim/message_control.py
@@ -26,13 +26,13 @@
## along with Gajim. If not, see .
##
-import gtkgui_helpers
+from gajim import gtkgui_helpers
import uuid
-from common import gajim
-from common import helpers
-from common import ged
-from common.stanza_session import EncryptedStanzaSession, ArchivingStanzaSession
+from gajim.common import app
+from gajim.common import helpers
+from gajim.common import ged
+from gajim.common.stanza_session import EncryptedStanzaSession, ArchivingStanzaSession
# Derived types MUST register their type IDs here if custom behavor is required
TYPE_CHAT = 'chat'
@@ -64,13 +64,13 @@ class MessageControl(object):
self.control_id = str(uuid.uuid4())
self.session = None
- gajim.last_message_time[self.account][self.get_full_jid()] = 0
+ app.last_message_time[self.account][self.get_full_jid()] = 0
self.xml = gtkgui_helpers.get_gtk_builder('%s.ui' % widget_name)
self.xml.connect_signals(self)
self.widget = self.xml.get_object('%s_hbox' % widget_name)
- gajim.ged.register_event_handler('message-outgoing', ged.OUT_GUI1,
+ app.ged.register_event_handler('message-outgoing', ged.OUT_GUI1,
self._nec_message_outgoing)
def get_full_jid(self):
@@ -119,7 +119,7 @@ class MessageControl(object):
"""
Derived classes MUST implement this
"""
- gajim.ged.remove_event_handler('message-outgoing', ged.OUT_GUI1,
+ app.ged.remove_event_handler('message-outgoing', ged.OUT_GUI1,
self._nec_message_outgoing)
def repaint_themed_widgets(self):
@@ -188,7 +188,7 @@ class MessageControl(object):
pass
def get_specific_unread(self):
- return len(gajim.events.get_events(self.account,
+ return len(app.events.get_events(self.account,
self.contact.jid))
def set_session(self, session):
@@ -234,11 +234,11 @@ class MessageControl(object):
obj.message = helpers.remove_invalid_xml_chars(obj.message)
- conn = gajim.connections[self.account]
+ conn = app.connections[self.account]
if not self.session:
if (not obj.resource and
- obj.jid != gajim.get_jid_from_account(self.account)):
+ obj.jid != app.get_jid_from_account(self.account)):
if self.resource:
obj.resource = self.resource
else:
diff --git a/gajim/message_textview.py b/gajim/message_textview.py
index 9bc440670..fb02a3c27 100644
--- a/gajim/message_textview.py
+++ b/gajim/message_textview.py
@@ -28,8 +28,8 @@ from gi.repository import GObject
from gi.repository import GLib
from gi.repository import Pango
-from common import gajim
-import gtkgui_helpers
+from gajim.common import app
+from gajim import gtkgui_helpers
class MessageTextView(Gtk.TextView):
"""
@@ -97,7 +97,7 @@ class MessageTextView(Gtk.TextView):
index = 0
new_text = ''
- iterator = gajim.interface.link_pattern_re.finditer(text)
+ iterator = app.interface.link_pattern_re.finditer(text)
for match in iterator:
start, end = match.span()
url = text[start:end]
diff --git a/gajim/message_window.py b/gajim/message_window.py
index 110566566..d245b1beb 100644
--- a/gajim/message_window.py
+++ b/gajim/message_window.py
@@ -34,15 +34,15 @@ from gi.repository import GObject
from gi.repository import GLib
import time
-import common
-import gtkgui_helpers
-import message_control
-import dialogs
-from chat_control_base import ChatControlBase
-from chat_control import ChatControl
+from gajim import common
+from gajim import gtkgui_helpers
+from gajim import message_control
+from gajim import dialogs
+from gajim.chat_control_base import ChatControlBase
+from gajim.chat_control import ChatControl
-from common import gajim
-from gtkgui_helpers import get_action
+from gajim.common import app
+from gajim.gtkgui_helpers import get_action
####################
@@ -89,7 +89,7 @@ class MessageWindow(object):
self.parent_paned = parent_paned
old_parent = self.notebook.get_parent()
old_parent.remove(self.notebook)
- if gajim.config.get('roster_on_the_right'):
+ if app.config.get('roster_on_the_right'):
child1 = self.parent_paned.get_child1()
self.parent_paned.remove(child1)
self.parent_paned.add(self.notebook)
@@ -141,7 +141,7 @@ class MessageWindow(object):
self.handlers[id_] = self.notebook
# Tab customizations
- pref_pos = gajim.config.get('tabs_position')
+ pref_pos = app.config.get('tabs_position')
if pref_pos == 'bottom':
nb_pos = Gtk.PositionType.BOTTOM
elif pref_pos == 'left':
@@ -151,13 +151,13 @@ class MessageWindow(object):
else:
nb_pos = Gtk.PositionType.TOP
self.notebook.set_tab_pos(nb_pos)
- window_mode = gajim.interface.msg_win_mgr.mode
- if gajim.config.get('tabs_always_visible') or \
+ window_mode = app.interface.msg_win_mgr.mode
+ if app.config.get('tabs_always_visible') or \
window_mode == MessageWindowMgr.ONE_MSG_WINDOW_ALWAYS_WITH_ROSTER:
self.notebook.set_show_tabs(True)
else:
self.notebook.set_show_tabs(False)
- self.notebook.set_show_border(gajim.config.get('tabs_border'))
+ self.notebook.set_show_border(app.config.get('tabs_border'))
self.show_icon()
def change_account_name(self, old_name, new_name):
@@ -222,14 +222,14 @@ class MessageWindow(object):
if number_of_closed_control > 1:
def on_yes1(checked):
if checked:
- gajim.config.set('confirm_close_multiple_tabs', False)
+ app.config.set('confirm_close_multiple_tabs', False)
self.dont_warn_on_delete = True
for ctrl in self.controls():
if ctrl.minimizable():
ctrl.minimize()
win.destroy()
- if not gajim.config.get('confirm_close_multiple_tabs'):
+ if not app.config.get('confirm_close_multiple_tabs'):
for ctrl in self.controls():
if ctrl.minimizable():
ctrl.minimize()
@@ -360,9 +360,9 @@ class MessageWindow(object):
# theme
if not Gtk.Settings.get_default().get_property(
'gtk-key-theme-name') == 'Emacs':
- if gajim.interface.msg_win_mgr.mode == \
- gajim.interface.msg_win_mgr.ONE_MSG_WINDOW_ALWAYS_WITH_ROSTER:
- gajim.interface.roster.tree.grab_focus()
+ if app.interface.msg_win_mgr.mode == \
+ app.interface.msg_win_mgr.ONE_MSG_WINDOW_ALWAYS_WITH_ROSTER:
+ app.interface.roster.tree.grab_focus()
return False
control._on_send_file_menuitem_activate(None)
return True
@@ -451,7 +451,7 @@ class MessageWindow(object):
return True
# Close tab bindings
elif keyval == Gdk.KEY_Escape and \
- gajim.config.get('escape_key_closes'): # Escape
+ app.config.get('escape_key_closes'): # Escape
self.remove_tab(control, self.CLOSE_ESC)
return True
@@ -462,7 +462,7 @@ class MessageWindow(object):
self.remove_tab(control, self.CLOSE_CLOSE_BUTTON)
def show_icon(self):
- window_mode = gajim.interface.msg_win_mgr.mode
+ window_mode = app.interface.msg_win_mgr.mode
icon = None
if window_mode == MessageWindowMgr.ONE_MSG_WINDOW_NEVER:
ctrl = self.get_active_control()
@@ -499,7 +499,7 @@ class MessageWindow(object):
unread = 0
for ctrl in self.controls():
if ctrl.type_id == message_control.TYPE_GC and not \
- gajim.config.get('notify_on_all_muc_messages') and not \
+ app.config.get('notify_on_all_muc_messages') and not \
ctrl.attention_flag:
# count only pm messages
unread += ctrl.get_nb_unread_pm()
@@ -517,13 +517,13 @@ class MessageWindow(object):
if control.type_id == message_control.TYPE_GC:
name = control.room_jid.split('@')[0]
urgent = control.attention_flag or \
- gajim.config.get('notify_on_all_muc_messages')
+ app.config.get('notify_on_all_muc_messages')
else:
name = control.contact.get_shown_name()
if control.resource:
name += '/' + control.resource
- window_mode = gajim.interface.msg_win_mgr.mode
+ window_mode = app.interface.msg_win_mgr.mode
if window_mode == MessageWindowMgr.ONE_MSG_WINDOW_PERTYPE:
# Show the plural form since number of tabs > 1
if self.type_ == 'chat':
@@ -570,19 +570,19 @@ class MessageWindow(object):
else: # We are leaving gc without status message or it's a chat
ctrl.shutdown()
# Update external state
- gajim.events.remove_events(ctrl.account, ctrl.get_full_jid,
+ app.events.remove_events(ctrl.account, ctrl.get_full_jid,
types = ['printed_msg', 'chat', 'gc_msg'])
fjid = ctrl.get_full_jid()
- jid = gajim.get_jid_without_resource(fjid)
+ jid = app.get_jid_without_resource(fjid)
fctrl = self.get_control(fjid, ctrl.account)
bctrl = self.get_control(jid, ctrl.account)
# keep last_message_time around unless this was our last control with
# that jid
if not fctrl and not bctrl and \
- fjid in gajim.last_message_time[ctrl.account]:
- del gajim.last_message_time[ctrl.account][fjid]
+ fjid in app.last_message_time[ctrl.account]:
+ del app.last_message_time[ctrl.account][fjid]
self.notebook.remove_page(self.notebook.page_num(ctrl.widget))
@@ -619,8 +619,8 @@ class MessageWindow(object):
pass
elif self.get_num_controls() == 0:
# These are not called when the window is destroyed like this, fake it
- gajim.interface.msg_win_mgr._on_window_delete(self.window, None)
- gajim.interface.msg_win_mgr._on_window_destroy(self.window)
+ app.interface.msg_win_mgr._on_window_delete(self.window, None)
+ app.interface.msg_win_mgr._on_window_destroy(self.window)
# dnd clean up
self.notebook.drag_dest_unset()
if self.parent_paned:
@@ -632,8 +632,8 @@ class MessageWindow(object):
self.window.destroy()
return # don't show_title, we are dead
elif self.get_num_controls() == 1: # we are going from two tabs to one
- window_mode = gajim.interface.msg_win_mgr.mode
- show_tabs_if_one_tab = gajim.config.get('tabs_always_visible') or \
+ window_mode = app.interface.msg_win_mgr.mode
+ show_tabs_if_one_tab = app.config.get('tabs_always_visible') or \
window_mode == MessageWindowMgr.ONE_MSG_WINDOW_ALWAYS_WITH_ROSTER
self.notebook.set_show_tabs(show_tabs_if_one_tab)
@@ -647,7 +647,7 @@ class MessageWindow(object):
# Optionally hide close button
close_button = hbox.get_children()[2]
- if gajim.config.get('tabs_close_button'):
+ if app.config.get('tabs_close_button'):
close_button.show()
else:
close_button.hide()
@@ -757,10 +757,10 @@ class MessageWindow(object):
self._controls[acct][new_jid] = ctrl
del self._controls[acct][old_jid]
- if old_jid in gajim.last_message_time[acct]:
- gajim.last_message_time[acct][new_jid] = \
- gajim.last_message_time[acct][old_jid]
- del gajim.last_message_time[acct][old_jid]
+ if old_jid in app.last_message_time[acct]:
+ app.last_message_time[acct][new_jid] = \
+ app.last_message_time[acct][old_jid]
+ del app.last_message_time[acct][old_jid]
def controls(self):
for jid_dict in list(self._controls.values()):
@@ -790,7 +790,7 @@ class MessageWindow(object):
if ctrl.get_nb_unread() > 0:
found = True
break # found
- elif gajim.config.get('ctrl_tab_go_to_next_composing') :
+ elif app.config.get('ctrl_tab_go_to_next_composing') :
# Search for a composing contact
contact = ctrl.contact
if first_composing_ind == -1 and contact.chatstate == 'composing':
@@ -818,7 +818,7 @@ class MessageWindow(object):
def popup_menu(self, event):
menu = self.get_active_control().prepare_context_menu()
# show the menu
- menu.attach_to_widget(gajim.interface.roster.window, None)
+ menu.attach_to_widget(app.interface.roster.window, None)
menu.show_all()
menu.popup(None, None, None, None, event.button, event.time)
@@ -956,7 +956,7 @@ class MessageWindowMgr(GObject.GObject):
self._windows = {}
# Map the mode to a int constant for frequent compares
- mode = gajim.config.get('one_message_window')
+ mode = app.config.get('one_message_window')
self.mode = common.config.opt_one_window_types.index(mode)
self.parent_win = parent_window
@@ -1005,23 +1005,23 @@ class MessageWindowMgr(GObject.GObject):
"""
Resizes window according to config settings
"""
- hpaned = gajim.config.get('roster_hpaned_position')
+ hpaned = app.config.get('roster_hpaned_position')
if self.mode in (self.ONE_MSG_WINDOW_ALWAYS,
self.ONE_MSG_WINDOW_ALWAYS_WITH_ROSTER):
- size = (gajim.config.get('msgwin-width'),
- gajim.config.get('msgwin-height'))
+ size = (app.config.get('msgwin-width'),
+ app.config.get('msgwin-height'))
if self.mode == self.ONE_MSG_WINDOW_ALWAYS_WITH_ROSTER:
# Need to add the size of the now visible paned handle, otherwise
# the saved width of the message window decreases by this amount
handle_size = win.parent_paned.style_get_property('handle-size')
size = (hpaned + size[0] + handle_size, size[1])
elif self.mode == self.ONE_MSG_WINDOW_PERACCT:
- size = (gajim.config.get_per('accounts', acct, 'msgwin-width'),
- gajim.config.get_per('accounts', acct, 'msgwin-height'))
+ size = (app.config.get_per('accounts', acct, 'msgwin-width'),
+ app.config.get_per('accounts', acct, 'msgwin-height'))
elif self.mode in (self.ONE_MSG_WINDOW_NEVER, self.ONE_MSG_WINDOW_PERTYPE):
opt_width = type_ + '-msgwin-width'
opt_height = type_ + '-msgwin-height'
- size = (gajim.config.get(opt_width), gajim.config.get(opt_height))
+ size = (app.config.get(opt_width), app.config.get(opt_height))
else:
return
win.resize(size[0], size[1])
@@ -1037,14 +1037,14 @@ class MessageWindowMgr(GObject.GObject):
return
if self.mode == self.ONE_MSG_WINDOW_ALWAYS:
- pos = (gajim.config.get('msgwin-x-position'),
- gajim.config.get('msgwin-y-position'))
+ pos = (app.config.get('msgwin-x-position'),
+ app.config.get('msgwin-y-position'))
elif self.mode == self.ONE_MSG_WINDOW_PERACCT:
- pos = (gajim.config.get_per('accounts', acct, 'msgwin-x-position'),
- gajim.config.get_per('accounts', acct, 'msgwin-y-position'))
+ pos = (app.config.get_per('accounts', acct, 'msgwin-x-position'),
+ app.config.get_per('accounts', acct, 'msgwin-y-position'))
elif self.mode == self.ONE_MSG_WINDOW_PERTYPE:
- pos = (gajim.config.get(type_ + '-msgwin-x-position'),
- gajim.config.get(type_ + '-msgwin-y-position'))
+ pos = (app.config.get(type_ + '-msgwin-x-position'),
+ app.config.get(type_ + '-msgwin-y-position'))
else:
return
@@ -1094,7 +1094,7 @@ class MessageWindowMgr(GObject.GObject):
# Position and size window based on saved state and window mode
if not self.one_window_opened(contact, acct, type_):
- if gajim.config.get('msgwin-max-state'):
+ if app.config.get('msgwin-max-state'):
win.window.maximize()
else:
self._resize_window(win, acct, type_)
@@ -1116,7 +1116,7 @@ class MessageWindowMgr(GObject.GObject):
def _on_window_delete(self, win, event):
self.save_state(self._gtk_win_to_msg_win(win))
- gajim.interface.save_config()
+ app.interface.save_config()
return False
def _on_window_destroy(self, win):
@@ -1190,7 +1190,7 @@ class MessageWindowMgr(GObject.GObject):
w.window.hide()
w.window.destroy()
- gajim.interface.save_config()
+ app.interface.save_config()
def save_state(self, msg_win, width_adjust=0):
# Save window size and position
@@ -1225,29 +1225,29 @@ class MessageWindowMgr(GObject.GObject):
width = msg_win.notebook.get_allocation().width
if acct:
- gajim.config.set_per('accounts', acct, size_width_key, width)
- gajim.config.set_per('accounts', acct, size_height_key, height)
+ app.config.set_per('accounts', acct, size_width_key, width)
+ app.config.set_per('accounts', acct, size_height_key, height)
if self.mode != self.ONE_MSG_WINDOW_NEVER:
- gajim.config.set_per('accounts', acct, pos_x_key, x)
- gajim.config.set_per('accounts', acct, pos_y_key, y)
+ app.config.set_per('accounts', acct, pos_x_key, x)
+ app.config.set_per('accounts', acct, pos_y_key, y)
else:
win_maximized = msg_win.window.get_window().get_state() == \
Gdk.WindowState.MAXIMIZED
- gajim.config.set(max_win_key, win_maximized)
+ app.config.set(max_win_key, win_maximized)
width += width_adjust
- gajim.config.set(size_width_key, width)
- gajim.config.set(size_height_key, height)
+ app.config.set(size_width_key, width)
+ app.config.set(size_height_key, height)
if self.mode != self.ONE_MSG_WINDOW_NEVER:
- gajim.config.set(pos_x_key, x)
- gajim.config.set(pos_y_key, y)
+ app.config.set(pos_x_key, x)
+ app.config.set(pos_y_key, y)
def reconfig(self):
for w in self.windows():
self.save_state(w)
- mode = gajim.config.get('one_message_window')
+ mode = app.config.get('one_message_window')
if self.mode == common.config.opt_one_window_types.index(mode):
# No change
return
@@ -1263,7 +1263,7 @@ class MessageWindowMgr(GObject.GObject):
# Stash current size so it can be restored if the MessageWindow
# is not longer embedded
roster_width = w.parent_paned.get_position()
- gajim.config.set('roster_width', roster_width)
+ app.config.set('roster_width', roster_width)
while w.notebook.get_n_pages():
page = w.notebook.get_nth_page(0)
@@ -1282,8 +1282,8 @@ class MessageWindowMgr(GObject.GObject):
w.parent_paned.remove(child)
self.parent_win.lookup_action('show-roster').set_enabled(False)
gtkgui_helpers.resize_window(w.window,
- gajim.config.get('roster_width'),
- gajim.config.get('roster_height'))
+ app.config.get('roster_width'),
+ app.config.get('roster_height'))
self._windows = {}
@@ -1296,15 +1296,15 @@ class MessageWindowMgr(GObject.GObject):
mw.new_tab(ctrl)
def save_opened_controls(self):
- if not gajim.config.get('remember_opened_chat_controls'):
+ if not app.config.get('remember_opened_chat_controls'):
return
chat_controls = {}
- for acct in gajim.connections:
+ for acct in app.connections:
chat_controls[acct] = []
for ctrl in self.get_controls(type_=message_control.TYPE_CHAT):
acct = ctrl.account
if ctrl.contact.jid not in chat_controls[acct]:
chat_controls[acct].append(ctrl.contact.jid)
- for acct in gajim.connections:
- gajim.config.set_per('accounts', acct, 'opened_chat_controls',
+ for acct in app.connections:
+ app.config.set_per('accounts', acct, 'opened_chat_controls',
','.join(chat_controls[acct]))
diff --git a/gajim/music_track_listener.py b/gajim/music_track_listener.py
index a4733efba..355025e4c 100644
--- a/gajim/music_track_listener.py
+++ b/gajim/music_track_listener.py
@@ -26,9 +26,9 @@
from gi.repository import GObject
if __name__ == '__main__':
# install _() func before importing dbus_support
- from common import i18n
+ from gajim.common import i18n
-from common import dbus_support
+from gajim.common import dbus_support
if dbus_support.supported:
import dbus
diff --git a/gajim/negotiation.py b/gajim/negotiation.py
index d48c1085f..250512e08 100644
--- a/gajim/negotiation.py
+++ b/gajim/negotiation.py
@@ -19,11 +19,11 @@
## along with Gajim. If not, see .
##
-import gtkgui_helpers
-import dataforms_widget
+from gajim import gtkgui_helpers
+from gajim import dataforms_widget
-from common import dataforms
-from common import gajim
+from gajim.common import dataforms
+from gajim.common import app
import nbxmpp
def describe_features(features):
@@ -65,7 +65,7 @@ class FeatureNegotiationWindow:
feature.addChild(node=form)
- gajim.connections[self.account].send_stanza(acceptance)
+ app.connections[self.account].send_stanza(acceptance)
self.window.destroy()
@@ -81,6 +81,6 @@ class FeatureNegotiationWindow:
feature.addChild(node=x)
- gajim.connections[self.account].send_stanza(rejection)
+ app.connections[self.account].send_stanza(rejection)
self.window.destroy()
diff --git a/gajim/network_watcher.py b/gajim/network_watcher.py
index 6854e5de6..f1ef629fc 100644
--- a/gajim/network_watcher.py
+++ b/gajim/network_watcher.py
@@ -24,7 +24,7 @@ import logging
from gi.repository import Gio, GLib
-from common import gajim
+from gajim.common import app
log = logging.getLogger('gajim.network_watcher')
@@ -87,11 +87,11 @@ def appeared(connection, name, name_owner, *user_data):
def update_connection_state(connected):
if connected:
- for connection in gajim.connections.values():
+ for connection in app.connections.values():
log.info('Connect %s', connection.name)
connection.reconnect()
else:
- for connection in gajim.connections.values():
+ for connection in app.connections.values():
if connection.connected > 1:
log.info('Disconnect %s', connection.name)
connection.disconnectedReconnCB()
diff --git a/gajim/notify.py b/gajim/notify.py
index b7cab742f..d2a80f08e 100644
--- a/gajim/notify.py
+++ b/gajim/notify.py
@@ -29,16 +29,16 @@
import os
import time
-from dialogs import PopupNotificationWindow
+from gajim.dialogs import PopupNotificationWindow
from gi.repository import GObject
from gi.repository import GLib
-import gtkgui_helpers
+from gajim import gtkgui_helpers
-from common import gajim
-from common import helpers
-from common import ged
+from gajim.common import app
+from gajim.common import helpers
+from gajim.common import ged
-from common import dbus_support
+from gajim.common import dbus_support
if dbus_support.supported:
import dbus
@@ -67,11 +67,11 @@ def get_show_in_systray(event, account, contact, type_=None):
"""
Return True if this event must be shown in systray, else False
"""
- if type_ == 'printed_gc_msg' and not gajim.config.get(
+ if type_ == 'printed_gc_msg' and not app.config.get(
'notify_on_all_muc_messages'):
# it's not an highlighted message, don't show in systray
return False
- return gajim.config.get('trayicon_notification_on_events')
+ return app.config.get('trayicon_notification_on_events')
def popup(event_type, jid, account, msg_type='', path_to_image=None, title=None,
text=None, timeout=-1):
@@ -85,27 +85,27 @@ text=None, timeout=-1):
path_to_image = gtkgui_helpers.get_icon_path('gajim-chat_msg_recv', 48)
if timeout < 0:
- timeout = gajim.config.get('notification_timeout')
+ timeout = app.config.get('notification_timeout')
# Try to show our popup via D-Bus and notification daemon
- if gajim.config.get('use_notif_daemon') and dbus_support.supported:
+ if app.config.get('use_notif_daemon') and dbus_support.supported:
try:
DesktopNotification(event_type, jid, account, msg_type,
path_to_image, title, GLib.markup_escape_text(text), timeout)
return # sucessfully did D-Bus Notification procedure!
except dbus.DBusException as e:
# Connection to D-Bus failed
- gajim.log.debug(str(e))
+ app.log.debug(str(e))
except TypeError as e:
# This means that we sent the message incorrectly
- gajim.log.debug(str(e))
+ app.log.debug(str(e))
# Ok, that failed. Let's try pynotify, which also uses notification daemon
- if gajim.config.get('use_notif_daemon') and USER_HAS_PYNOTIFY:
+ if app.config.get('use_notif_daemon') and USER_HAS_PYNOTIFY:
if not text and event_type == 'new_message':
# empty text for new_message means do_preview = False
# -> default value for text
- _text = GLib.markup_escape_text(gajim.get_name_from_jid(account,
+ _text = GLib.markup_escape_text(app.get_name_from_jid(account,
jid))
else:
_text = GLib.markup_escape_text(text)
@@ -134,12 +134,12 @@ text=None, timeout=-1):
return
except GObject.GError as e:
# Connection to notification-daemon failed, see #2893
- gajim.log.debug(str(e))
+ app.log.debug(str(e))
# Either nothing succeeded or the user wants old-style notifications
instance = PopupNotificationWindow(event_type, jid, account, msg_type,
path_to_image, title, text, timeout)
- gajim.interface.roster.popup_notification_windows.append(instance)
+ app.interface.roster.popup_notification_windows.append(instance)
def on_pynotify_notification_clicked(notification, action):
jid = notification._data.jid
@@ -147,14 +147,14 @@ def on_pynotify_notification_clicked(notification, action):
msg_type = notification._data.msg_type
notification.close()
- gajim.interface.handle_event(account, jid, msg_type)
+ app.interface.handle_event(account, jid, msg_type)
class Notification:
"""
Handle notifications
"""
def __init__(self):
- gajim.ged.register_event_handler('notification', ged.GUI2,
+ app.ged.register_event_handler('notification', ged.GUI2,
self._nec_notification)
def _nec_notification(self, obj):
@@ -237,7 +237,7 @@ class NotificationResponseManager:
self.pending[id_] = object_
else:
# We've triggered an event that has a duplicate ID!
- gajim.log.debug('Duplicate ID of notification. Can\'t handle this.')
+ app.log.debug('Duplicate ID of notification. Can\'t handle this.')
notification_response_manager = NotificationResponseManager()
@@ -265,7 +265,7 @@ class DesktopNotification:
# default value of text
if not text and event_type == 'new_message':
# empty text for new_message means do_preview = False
- self.text = gajim.get_name_from_jid(account, jid)
+ self.text = app.get_name_from_jid(account, jid)
if not title:
self.title = event_type # default value
@@ -365,9 +365,9 @@ class DesktopNotification:
# we're actually dealing with the newer version
version = [0, 3, 1]
if version > [0, 3]:
- if gajim.interface.systray_enabled and \
- gajim.config.get('attach_notifications_to_systray'):
- status_icon = gajim.interface.systray.status_icon
+ if app.interface.systray_enabled and \
+ app.config.get('attach_notifications_to_systray'):
+ status_icon = app.interface.systray.status_icon
rect = status_icon.get_geometry()[2]
x, y, width, height = rect.x, rect.y, rect.width, rect.height
pos_x = x + (width / 2)
@@ -432,12 +432,12 @@ class DesktopNotification:
notification_response_manager.add_pending(id_, self)
def notify_another_way(self, e):
- gajim.log.debug('Error when trying to use notification daemon: %s' % \
+ app.log.debug('Error when trying to use notification daemon: %s' % \
str(e))
instance = PopupNotificationWindow(self.event_type, self.jid,
self.account, self.msg_type, self.path_to_image, self.title,
self.text, self.timeout)
- gajim.interface.roster.popup_notification_windows.append(instance)
+ app.interface.roster.popup_notification_windows.append(instance)
def on_action_invoked(self, id_, reason):
if self.notif is None:
@@ -448,7 +448,7 @@ class DesktopNotification:
if reason == 'ignore':
return
- gajim.interface.handle_event(self.account, self.jid, self.msg_type)
+ app.interface.handle_event(self.account, self.jid, self.msg_type)
def version_reply_handler(self, name, vendor, version, spec_version=None):
if spec_version:
diff --git a/gajim/plugins/__init__.py b/gajim/plugins/__init__.py
index a2c6986a6..7045163f5 100644
--- a/gajim/plugins/__init__.py
+++ b/gajim/plugins/__init__.py
@@ -24,7 +24,7 @@ Main file of plugins package.
:license: GPL
'''
-from .pluginmanager import PluginManager
-from .gajimplugin import GajimPlugin
+from gajim.plugins.pluginmanager import PluginManager
+from gajim.plugins.gajimplugin import GajimPlugin
__all__ = ['PluginManager', 'GajimPlugin']
diff --git a/gajim/plugins/gajimplugin.py b/gajim/plugins/gajimplugin.py
index 18a8a75b0..c9fd28229 100644
--- a/gajim/plugins/gajimplugin.py
+++ b/gajim/plugins/gajimplugin.py
@@ -27,10 +27,10 @@ Base class for implementing plugin.
import os
import locale
-from common import gajim
+from gajim.common import app
-from plugins.helpers import log_calls, log
-from plugins.gui import GajimPluginConfigDialog
+from gajim.plugins.helpers import log_calls, log
+from gajim.plugins.gui import GajimPluginConfigDialog
import logging
log = logging.getLogger('gajim.p.plugin')
@@ -213,7 +213,7 @@ class GajimPluginConfig():
def __init__(self, plugin):
self.plugin = plugin
self.FILE_PATH = os.path.join(
- gajim.PLUGINS_CONFIG_DIR, self.plugin.short_name)
+ app.PLUGINS_CONFIG_DIR, self.plugin.short_name)
self.data = {}
@log_calls('GajimPluginConfig')
diff --git a/gajim/plugins/gui.py b/gajim/plugins/gui.py
index 2343d9ace..086294a39 100644
--- a/gajim/plugins/gui.py
+++ b/gajim/plugins/gui.py
@@ -34,14 +34,14 @@ import os
from enum import IntEnum, unique
-import gtkgui_helpers
-from dialogs import WarningDialog, YesNoDialog, ArchiveChooserDialog
-from htmltextview import HtmlTextView
-from common import gajim
-from plugins.helpers import log_calls
-from plugins.helpers import GajimPluginActivateException
-from plugins.plugins_i18n import _
-from common.exceptions import PluginsystemError
+from gajim import gtkgui_helpers
+from gajim.dialogs import WarningDialog, YesNoDialog, ArchiveChooserDialog
+from gajim.htmltextview import HtmlTextView
+from gajim.common import app
+from gajim.plugins.helpers import log_calls
+from gajim.plugins.helpers import GajimPluginActivateException
+from gajim.plugins.plugins_i18n import _
+from gajim.common.exceptions import PluginsystemError
@unique
class Column(IntEnum):
@@ -60,7 +60,7 @@ class PluginsWindow(object):
'''Initialize Plugins window'''
builder = gtkgui_helpers.get_gtk_builder('plugins_window.ui')
self.window = builder.get_object('plugins_window')
- self.window.set_transient_for(gajim.interface.roster.window)
+ self.window.set_transient_for(app.interface.roster.window)
widgets_to_extract = ('plugins_notebook', 'plugin_name_label',
'plugin_version_label', 'plugin_authors_label',
@@ -118,7 +118,7 @@ class PluginsWindow(object):
self.close_button.grab_focus()
# Adding GUI extension point for Plugins that want to hook the Plugin Window
- gajim.plugin_manager.gui_extension_point('plugin_window', self)
+ app.plugin_manager.gui_extension_point('plugin_window', self)
self.window.show_all()
gtkgui_helpers.possibly_move_window_in_current_desktop(self.window)
@@ -166,7 +166,7 @@ class PluginsWindow(object):
self.plugin_description_textview.set_property('sensitive', True)
self.uninstall_plugin_button.set_property('sensitive',
- gajim.PLUGINS_DIRS[1] in plugin.__path__)
+ app.PLUGINS_DIRS[1] in plugin.__path__)
self.configure_plugin_button.set_property(
'sensitive', plugin.config_dialog is not None)
@@ -186,7 +186,7 @@ class PluginsWindow(object):
@log_calls('PluginsWindow')
def fill_installed_plugins_model(self):
- pm = gajim.plugin_manager
+ pm = app.plugin_manager
self.installed_plugins_model.clear()
self.installed_plugins_model.set_sort_column_id(1, Gtk.SortType.ASCENDING)
@@ -209,10 +209,10 @@ class PluginsWindow(object):
plugin = self.installed_plugins_model[path][Column.PLUGIN]
if is_active:
- gajim.plugin_manager.deactivate_plugin(plugin)
+ app.plugin_manager.deactivate_plugin(plugin)
else:
try:
- gajim.plugin_manager.activate_plugin(plugin)
+ app.plugin_manager.activate_plugin(plugin)
except GajimPluginActivateException as e:
WarningDialog(_('Plugin failed'), str(e),
transient_for=self.window)
@@ -223,8 +223,8 @@ class PluginsWindow(object):
@log_calls('PluginsWindow')
def on_plugins_window_destroy(self, widget):
'''Close window'''
- gajim.plugin_manager.remove_gui_extension_point('plugin_window', self)
- del gajim.interface.instances['plugins']
+ app.plugin_manager.remove_gui_extension_point('plugin_window', self)
+ del app.interface.instances['plugins']
@log_calls('PluginsWindow')
def on_close_button_clicked(self, widget):
@@ -257,7 +257,7 @@ class PluginsWindow(object):
plugin_name = model.get_value(iter, Column.NAME)
is_active = model.get_value(iter, Column.ACTIVE)
try:
- gajim.plugin_manager.remove_plugin(plugin)
+ app.plugin_manager.remove_plugin(plugin)
except PluginsystemError as e:
WarningDialog(_('Unable to properly remove the plugin'),
str(e), self.window)
@@ -274,7 +274,7 @@ class PluginsWindow(object):
def _on_plugin_exists(zip_filename):
def on_yes(is_checked):
- plugin = gajim.plugin_manager.install_from_zip(zip_filename,
+ plugin = app.plugin_manager.install_from_zip(zip_filename,
True)
if not plugin:
show_warn_dialog()
@@ -296,7 +296,7 @@ class PluginsWindow(object):
def _try_install(zip_filename):
try:
- plugin = gajim.plugin_manager.install_from_zip(zip_filename)
+ plugin = app.plugin_manager.install_from_zip(zip_filename)
except PluginsystemError as er_type:
error_text = str(er_type)
if error_text == _('Plugin already exists'):
diff --git a/gajim/plugins/pluginmanager.py b/gajim/plugins/pluginmanager.py
index c528b3935..b08837824 100644
--- a/gajim/plugins/pluginmanager.py
+++ b/gajim/plugins/pluginmanager.py
@@ -34,13 +34,13 @@ from shutil import rmtree
import configparser
from pkg_resources import parse_version
-from common import gajim
-from common import nec
-from common.exceptions import PluginsystemError
+from gajim.common import app
+from gajim.common import nec
+from gajim.common.exceptions import PluginsystemError
-from plugins.helpers import log, log_calls, Singleton
-from plugins.helpers import GajimPluginActivateException
-from plugins.gajimplugin import GajimPlugin, GajimPluginException
+from gajim.plugins.helpers import log, log_calls, Singleton
+from gajim.plugins.helpers import GajimPluginActivateException
+from gajim.plugins.gajimplugin import GajimPlugin, GajimPluginException
class PluginManager(metaclass=Singleton):
'''
@@ -107,24 +107,24 @@ class PluginManager(metaclass=Singleton):
Registered names with instances of encryption Plugins.
'''
- for path in [gajim.PLUGINS_DIRS[1], gajim.PLUGINS_DIRS[0]]:
+ for path in [app.PLUGINS_DIRS[1], app.PLUGINS_DIRS[0]]:
pc = PluginManager.scan_dir_for_plugins(path)
self.add_plugins(pc)
self._activate_all_plugins_from_global_config()
@log_calls('PluginManager')
def _plugin_has_entry_in_global_config(self, plugin):
- if gajim.config.get_per('plugins', plugin.short_name) is None:
+ if app.config.get_per('plugins', plugin.short_name) is None:
return False
else:
return True
@log_calls('PluginManager')
def _create_plugin_entry_in_global_config(self, plugin):
- gajim.config.add_per('plugins', plugin.short_name)
+ app.config.add_per('plugins', plugin.short_name)
def _remove_plugin_entry_in_global_config(self, plugin):
- gajim.config.del_per('plugins', plugin.short_name)
+ app.config.del_per('plugins', plugin.short_name)
@log_calls('PluginManager')
def add_plugin(self, plugin_class):
@@ -292,30 +292,30 @@ class PluginManager(metaclass=Singleton):
for event_name, handler in plugin.events_handlers.items():
priority = handler[0]
handler_function = handler[1]
- gajim.ged.register_event_handler(event_name, priority,
+ app.ged.register_event_handler(event_name, priority,
handler_function)
def _remove_events_handler_from_ged(self, plugin):
for event_name, handler in plugin.events_handlers.items():
priority = handler[0]
handler_function = handler[1]
- gajim.ged.remove_event_handler(event_name, priority,
+ app.ged.remove_event_handler(event_name, priority,
handler_function)
def _register_network_events_in_nec(self, plugin):
for event_class in plugin.events:
setattr(event_class, 'plugin', plugin)
if issubclass(event_class, nec.NetworkIncomingEvent):
- gajim.nec.register_incoming_event(event_class)
+ app.nec.register_incoming_event(event_class)
elif issubclass(event_class, nec.NetworkOutgoingEvent):
- gajim.nec.register_outgoing_event(event_class)
+ app.nec.register_outgoing_event(event_class)
def _remove_network_events_from_nec(self, plugin):
for event_class in plugin.events:
if issubclass(event_class, nec.NetworkIncomingEvent):
- gajim.nec.unregister_incoming_event(event_class)
+ app.nec.unregister_incoming_event(event_class)
elif issubclass(event_class, nec.NetworkOutgoingEvent):
- gajim.nec.unregister_outgoing_event(event_class)
+ app.nec.unregister_outgoing_event(event_class)
def _remove_name_from_encryption_plugins(self, plugin):
if plugin.encryption_name:
@@ -432,10 +432,10 @@ class PluginManager(metaclass=Singleton):
pass
def _plugin_is_active_in_global_config(self, plugin):
- return gajim.config.get_per('plugins', plugin.short_name, 'active')
+ return app.config.get_per('plugins', plugin.short_name, 'active')
def _set_plugin_active_in_global_config(self, plugin, active=True):
- gajim.config.set_per('plugins', plugin.short_name, 'active', active)
+ app.config.set_per('plugins', plugin.short_name, 'active', active)
@staticmethod
@log_calls('PluginManager')
@@ -460,7 +460,7 @@ class PluginManager(metaclass=Singleton):
:todo: add scanning zipped modules
'''
- from plugins.plugins_i18n import _
+ from gajim.plugins.plugins_i18n import _
plugins_found = []
conf = configparser.ConfigParser()
fields = ('name', 'short_name', 'version', 'description', 'authors',
@@ -506,7 +506,7 @@ class PluginManager(metaclass=Singleton):
min_v = conf.get('info', 'min_gajim_version', fallback=None)
max_v = conf.get('info', 'max_gajim_version', fallback=None)
- gajim_v = gajim.config.get('version').split('-', 1)[0]
+ gajim_v = app.config.get('version').split('-', 1)[0]
gajim_v_cmp = parse_version(gajim_v)
if min_v and gajim_v_cmp < parse_version(min_v):
@@ -531,7 +531,7 @@ class PluginManager(metaclass=Singleton):
try:
if module_name in sys.modules:
- if path == gajim.PLUGINS_DIRS[0]:
+ if path == app.PLUGINS_DIRS[0]:
# Only reload plugins from Gajim base dir when they
# dont exist. This means plugins in the user path are
# always preferred.
@@ -629,7 +629,7 @@ class PluginManager(metaclass=Singleton):
if len(dirs) > 1:
raise PluginsystemError(_('Archive is malformed'))
- base_dir, user_dir = gajim.PLUGINS_DIRS
+ base_dir, user_dir = app.PLUGINS_DIRS
plugin_dir = os.path.join(user_dir, dirs[0])
if os.path.isdir(plugin_dir):
diff --git a/gajim/plugins/plugins_i18n.py b/gajim/plugins/plugins_i18n.py
index d8faa60cc..e33050f7f 100644
--- a/gajim/plugins/plugins_i18n.py
+++ b/gajim/plugins/plugins_i18n.py
@@ -22,10 +22,10 @@ import locale
import gettext
from os import path as os_path
import os
-from common import gajim
+from gajim.common import app
APP = 'gajim_plugins'
-plugins_locale_dir = os_path.join(gajim.PLUGINS_DIRS[1], 'locale')
+plugins_locale_dir = os_path.join(app.PLUGINS_DIRS[1], 'locale')
if os.name != 'nt':
locale.setlocale(locale.LC_ALL, '')
@@ -36,5 +36,5 @@ try:
t = gettext.translation(APP, plugins_locale_dir)
_ = t.gettext
except IOError:
- from common import i18n
+ from gajim.common import i18n
_ = gettext.gettext
diff --git a/gajim/profile_window.py b/gajim/profile_window.py
index d8285f641..c16247ed3 100644
--- a/gajim/profile_window.py
+++ b/gajim/profile_window.py
@@ -32,12 +32,12 @@ import mimetypes
import os
import time
-import gtkgui_helpers
-import dialogs
-import vcard
+from gajim import gtkgui_helpers
+from gajim import dialogs
+from gajim import vcard
-from common import gajim
-from common import ged
+from gajim.common import app
+from gajim.common import ged
class ProfileWindow:
@@ -54,7 +54,7 @@ class ProfileWindow:
self.context_id = self.statusbar.get_context_id('profile')
self.account = account
- self.jid = gajim.get_jid_from_account(account)
+ self.jid = app.get_jid_from_account(account)
self.dialog = None
self.avatar_mime_type = None
@@ -69,11 +69,11 @@ class ProfileWindow:
image = Gtk.Image()
self.xml.get_object('PHOTO_button').set_image(image)
self.xml.connect_signals(self)
- gajim.ged.register_event_handler('vcard-published', ged.GUI1,
+ app.ged.register_event_handler('vcard-published', ged.GUI1,
self._nec_vcard_published)
- gajim.ged.register_event_handler('vcard-not-published', ged.GUI1,
+ app.ged.register_event_handler('vcard-not-published', ged.GUI1,
self._nec_vcard_not_published)
- gajim.ged.register_event_handler('vcard-received', ged.GUI1,
+ app.ged.register_event_handler('vcard-received', ged.GUI1,
self._nec_vcard_received)
self.window.show_all()
self.xml.get_object('ok_button').grab_focus()
@@ -94,13 +94,13 @@ class ProfileWindow:
GLib.source_remove(self.update_progressbar_timeout_id)
if self.remove_statusbar_timeout_id is not None:
GLib.source_remove(self.remove_statusbar_timeout_id)
- gajim.ged.remove_event_handler('vcard-published', ged.GUI1,
+ app.ged.remove_event_handler('vcard-published', ged.GUI1,
self._nec_vcard_published)
- gajim.ged.remove_event_handler('vcard-not-published', ged.GUI1,
+ app.ged.remove_event_handler('vcard-not-published', ged.GUI1,
self._nec_vcard_not_published)
- gajim.ged.remove_event_handler('vcard-received', ged.GUI1,
+ app.ged.remove_event_handler('vcard-received', ged.GUI1,
self._nec_vcard_received)
- del gajim.interface.instances[self.account]['profile']
+ del app.interface.instances[self.account]['profile']
if self.dialog: # Image chooser dialog
self.dialog.destroy()
@@ -151,7 +151,7 @@ class ProfileWindow:
return
if filesize > 16384:
if scaled_pixbuf:
- path_to_file = os.path.join(gajim.TMP,
+ path_to_file = os.path.join(app.TMP,
'avatar_scaled.png')
scaled_pixbuf.savev(path_to_file, 'png', [], [])
must_delete = True
@@ -181,7 +181,7 @@ class ProfileWindow:
try:
os.remove(path_to_file)
except OSError:
- gajim.log.debug('Cannot remove %s' % path_to_file)
+ app.log.debug('Cannot remove %s' % path_to_file)
def on_clear(widget):
self.dialog.destroy()
@@ -210,7 +210,7 @@ class ProfileWindow:
use_local=False)
if pixbuf not in (None, 'ask'):
- nick = gajim.config.get_per('accounts', self.account, 'name')
+ nick = app.config.get_per('accounts', self.account, 'name')
menuitem = Gtk.MenuItem.new_with_mnemonic(_('Save _As'))
menuitem.connect('activate',
gtkgui_helpers.on_avatar_save_as_menuitem_activate,
@@ -371,7 +371,7 @@ class ProfileWindow:
if self.update_progressbar_timeout_id:
# Operation in progress
return
- if gajim.connections[self.account].connected < 2:
+ if app.connections[self.account].connected < 2:
dialogs.ErrorDialog(_('You are not connected to the server'),
_('Without a connection, you can not publish your contact '
'information.'), transient_for=self.window)
@@ -380,12 +380,12 @@ class ProfileWindow:
nick = ''
if 'NICKNAME' in vcard_:
nick = vcard_['NICKNAME']
- gajim.connections[self.account].send_nickname(nick)
+ app.connections[self.account].send_nickname(nick)
if nick == '':
- gajim.connections[self.account].retract_nickname()
- nick = gajim.config.get_per('accounts', self.account, 'name')
- gajim.nicks[self.account] = nick
- gajim.connections[self.account].send_vcard(vcard_)
+ app.connections[self.account].retract_nickname()
+ nick = app.config.get_per('accounts', self.account, 'name')
+ app.nicks[self.account] = nick
+ app.connections[self.account].send_vcard(vcard_)
self.message_id = self.statusbar.push(self.context_id,
_('Sending profile…'))
self.progressbar.show()
diff --git a/gajim/remote_control.py b/gajim/remote_control.py
index 685569690..60c9a96a0 100644
--- a/gajim/remote_control.py
+++ b/gajim/remote_control.py
@@ -32,16 +32,16 @@ import os
import base64
import mimetypes
-from common import gajim
-from common import helpers
+from gajim.common import app
+from gajim.common import helpers
from time import time
-from dialogs import AddNewContactWindow, NewChatDialog, JoinGroupchatWindow
-from common import ged
-from common.connection_handlers_events import MessageOutgoingEvent
-from common.connection_handlers_events import GcMessageOutgoingEvent
+from gajim.dialogs import AddNewContactWindow, NewChatDialog, JoinGroupchatWindow
+from gajim.common import ged
+from gajim.common.connection_handlers_events import MessageOutgoingEvent
+from gajim.common.connection_handlers_events import GcMessageOutgoingEvent
-from common import dbus_support
+from gajim.common import dbus_support
if dbus_support.supported:
import dbus
if dbus_support:
@@ -107,33 +107,33 @@ class Remote:
bus_name = dbus.service.BusName(SERVICE, bus=session_bus)
self.signal_object = SignalObject(bus_name)
- gajim.ged.register_event_handler('version-result-received', ged.POSTGUI,
+ app.ged.register_event_handler('version-result-received', ged.POSTGUI,
self.on_os_info)
- gajim.ged.register_event_handler('time-result-received', ged.POSTGUI,
+ app.ged.register_event_handler('time-result-received', ged.POSTGUI,
self.on_time)
- gajim.ged.register_event_handler('gmail-nofify', ged.POSTGUI,
+ app.ged.register_event_handler('gmail-nofify', ged.POSTGUI,
self.on_gmail_notify)
- gajim.ged.register_event_handler('roster-info', ged.POSTGUI,
+ app.ged.register_event_handler('roster-info', ged.POSTGUI,
self.on_roster_info)
- gajim.ged.register_event_handler('presence-received', ged.POSTGUI,
+ app.ged.register_event_handler('presence-received', ged.POSTGUI,
self.on_presence_received)
- gajim.ged.register_event_handler('subscribe-presence-received',
+ app.ged.register_event_handler('subscribe-presence-received',
ged.POSTGUI, self.on_subscribe_presence_received)
- gajim.ged.register_event_handler('subscribed-presence-received',
+ app.ged.register_event_handler('subscribed-presence-received',
ged.POSTGUI, self.on_subscribed_presence_received)
- gajim.ged.register_event_handler('unsubscribed-presence-received',
+ app.ged.register_event_handler('unsubscribed-presence-received',
ged.POSTGUI, self.on_unsubscribed_presence_received)
- gajim.ged.register_event_handler('gc-message-received',
+ app.ged.register_event_handler('gc-message-received',
ged.POSTGUI, self.on_gc_message_received)
- gajim.ged.register_event_handler('our-show', ged.POSTGUI,
+ app.ged.register_event_handler('our-show', ged.POSTGUI,
self.on_our_status)
- gajim.ged.register_event_handler('account-created', ged.POSTGUI,
+ app.ged.register_event_handler('account-created', ged.POSTGUI,
self.on_account_created)
- gajim.ged.register_event_handler('vcard-received', ged.POSTGUI,
+ app.ged.register_event_handler('vcard-received', ged.POSTGUI,
self.on_vcard_received)
- gajim.ged.register_event_handler('chatstate-received', ged.POSTGUI,
+ app.ged.register_event_handler('chatstate-received', ged.POSTGUI,
self.on_chatstate_received)
- gajim.ged.register_event_handler('message-sent', ged.POSTGUI,
+ app.ged.register_event_handler('message-sent', ged.POSTGUI,
self.on_message_sent)
def on_chatstate_received(self, obj):
@@ -321,8 +321,8 @@ class SignalObject(dbus.service.Object):
# If user did not ask for account, returns the global status
return DBUS_STRING(helpers.get_global_show())
# return show for the given account
- index = gajim.connections[account].connected
- return DBUS_STRING(gajim.SHOW_LIST[index])
+ index = app.connections[account].connected
+ return DBUS_STRING(app.SHOW_LIST[index])
@dbus.service.method(INTERFACE, in_signature='s', out_signature='s')
def get_status_message(self, account):
@@ -333,7 +333,7 @@ class SignalObject(dbus.service.Object):
# If user did not ask for account, returns the global status
return DBUS_STRING(str(helpers.get_global_status()))
# return show for the given account
- status = gajim.connections[account].status
+ status = app.connections[account].status
return DBUS_STRING(status)
def _get_account_and_contact(self, account, jid):
@@ -342,21 +342,21 @@ class SignalObject(dbus.service.Object):
"""
connected_account = None
contact = None
- accounts = gajim.contacts.get_accounts()
+ accounts = app.contacts.get_accounts()
# if there is only one account in roster, take it as default
# if user did not ask for account
if not account and len(accounts) == 1:
account = accounts[0]
if account:
- if gajim.connections[account].connected > 1: # account is connected
+ if app.connections[account].connected > 1: # account is connected
connected_account = account
- contact = gajim.contacts.get_contact_with_highest_priority(account,
+ contact = app.contacts.get_contact_with_highest_priority(account,
jid)
else:
for account in accounts:
- contact = gajim.contacts.get_contact_with_highest_priority(account,
+ contact = app.contacts.get_contact_with_highest_priority(account,
jid)
- if contact and gajim.connections[account].connected > 1:
+ if contact and app.connections[account].connected > 1:
# account is connected
connected_account = account
break
@@ -371,22 +371,22 @@ class SignalObject(dbus.service.Object):
or check if the given account is connected to the groupchat
"""
connected_account = None
- accounts = gajim.contacts.get_accounts()
+ accounts = app.contacts.get_accounts()
# if there is only one account in roster, take it as default
# if user did not ask for account
if not account and len(accounts) == 1:
account = accounts[0]
if account:
- if gajim.connections[account].connected > 1 and \
- room_jid in gajim.gc_connected[account] and \
- gajim.gc_connected[account][room_jid]:
+ if app.connections[account].connected > 1 and \
+ room_jid in app.gc_connected[account] and \
+ app.gc_connected[account][room_jid]:
# account and groupchat are connected
connected_account = account
else:
for account in accounts:
- if gajim.connections[account].connected > 1 and \
- room_jid in gajim.gc_connected[account] and \
- gajim.gc_connected[account][room_jid]:
+ if app.connections[account].connected > 1 and \
+ room_jid in app.gc_connected[account] and \
+ app.gc_connected[account][room_jid]:
# account and groupchat are connected
connected_account = account
break
@@ -405,7 +405,7 @@ class SignalObject(dbus.service.Object):
if file_path.startswith('file://'):
file_path=file_path[7:]
if os.path.isfile(file_path): # is it file?
- gajim.interface.instances['file_transfers'].send_file(
+ app.interface.instances['file_transfers'].send_file(
connected_account, contact, file_path)
return DBUS_BOOLEAN(True)
return DBUS_BOOLEAN(False)
@@ -423,18 +423,18 @@ class SignalObject(dbus.service.Object):
connected_account, contact = self._get_account_and_contact(account, jid)
if connected_account:
- connection = gajim.connections[connected_account]
+ connection = app.connections[connected_account]
sessions = connection.get_sessions(jid)
if sessions:
session = sessions[0]
else:
session = connection.make_new_session(jid)
- ctrl = gajim.interface.msg_win_mgr.search_control(jid,
+ ctrl = app.interface.msg_win_mgr.search_control(jid,
connected_account)
if ctrl:
ctrl.send_message(message)
else:
- gajim.nec.push_outgoing_event(MessageOutgoingEvent(None, account=connected_account, jid=jid, message=message, keyID=keyID, type_=type_, control=ctrl))
+ app.nec.push_outgoing_event(MessageOutgoingEvent(None, account=connected_account, jid=jid, message=message, keyID=keyID, type_=type_, control=ctrl))
return DBUS_BOOLEAN(True)
return DBUS_BOOLEAN(False)
@@ -466,8 +466,8 @@ class SignalObject(dbus.service.Object):
return DBUS_BOOLEAN(False)
connected_account = self._get_account_for_groupchat(account, room_jid)
if connected_account:
- connection = gajim.connections[connected_account]
- gajim.nec.push_outgoing_event(GcMessageOutgoingEvent(None,
+ connection = app.connections[connected_account]
+ app.nec.push_outgoing_event(GcMessageOutgoingEvent(None,
account=connected_account, jid=room_jid, message=message))
return DBUS_BOOLEAN(True)
return DBUS_BOOLEAN(False)
@@ -491,21 +491,21 @@ class SignalObject(dbus.service.Object):
if account:
accounts = [account]
else:
- accounts = gajim.connections.keys()
+ accounts = app.connections.keys()
if len(accounts) == 1:
account = accounts[0]
connected_account = None
first_connected_acct = None
for acct in accounts:
- if gajim.connections[acct].connected > 1: # account is online
- contact = gajim.contacts.get_first_contact_from_jid(acct, jid)
- if gajim.interface.msg_win_mgr.has_window(jid, acct):
+ if app.connections[acct].connected > 1: # account is online
+ contact = app.contacts.get_first_contact_from_jid(acct, jid)
+ if app.interface.msg_win_mgr.has_window(jid, acct):
connected_account = acct
break
# jid is in roster
elif contact:
minimized_control = \
- jid in gajim.interface.minimized_controls[acct]
+ jid in app.interface.minimized_controls[acct]
connected_account = acct
break
# we send the message to jid not in roster, because account is
@@ -520,13 +520,13 @@ class SignalObject(dbus.service.Object):
connected_account = first_connected_acct
if minimized_control:
- gajim.interface.roster.on_groupchat_maximized(None, jid,
+ app.interface.roster.on_groupchat_maximized(None, jid,
connected_account)
if connected_account:
- gajim.interface.new_chat_from_jid(connected_account, jid, message)
+ app.interface.new_chat_from_jid(connected_account, jid, message)
# preserve the 'steal focus preservation'
- win = gajim.interface.msg_win_mgr.get_window(jid,
+ win = app.interface.msg_win_mgr.get_window(jid,
connected_account).window
if win.get_property('visible'):
win.window.focus(Gtk.get_current_event_time())
@@ -544,24 +544,24 @@ class SignalObject(dbus.service.Object):
status = ''
if account:
if not status:
- if account not in gajim.connections:
+ if account not in app.connections:
return DBUS_BOOLEAN(False)
- status = gajim.SHOW_LIST[gajim.connections[account].connected]
- GLib.idle_add(gajim.interface.roster.send_status, account, status,
+ status = app.SHOW_LIST[app.connections[account].connected]
+ GLib.idle_add(app.interface.roster.send_status, account, status,
message)
else:
# account not specified, so change the status of all accounts
- for acc in gajim.contacts.get_accounts():
- if not gajim.config.get_per('accounts', acc,
+ for acc in app.contacts.get_accounts():
+ if not app.config.get_per('accounts', acc,
'sync_with_global_status'):
continue
if status:
status_ = status
else:
- if acc not in gajim.connections:
+ if acc not in app.connections:
continue
- status_ = gajim.SHOW_LIST[gajim.connections[acc].connected]
- GLib.idle_add(gajim.interface.roster.send_status, acc, status_,
+ status_ = app.SHOW_LIST[app.connections[acc].connected]
+ GLib.idle_add(app.interface.roster.send_status, acc, status_,
message)
return DBUS_BOOLEAN(False)
@@ -572,23 +572,23 @@ class SignalObject(dbus.service.Object):
priority is changed for all accounts. That are synced with global status
"""
if account:
- gajim.config.set_per('accounts', account, 'priority', prio)
- show = gajim.SHOW_LIST[gajim.connections[account].connected]
- status = gajim.connections[account].status
- GLib.idle_add(gajim.connections[account].change_status, show,
+ app.config.set_per('accounts', account, 'priority', prio)
+ show = app.SHOW_LIST[app.connections[account].connected]
+ status = app.connections[account].status
+ GLib.idle_add(app.connections[account].change_status, show,
status)
else:
# account not specified, so change prio of all accounts
- for acc in gajim.contacts.get_accounts():
- if not gajim.account_is_connected(acc):
+ for acc in app.contacts.get_accounts():
+ if not app.account_is_connected(acc):
continue
- if not gajim.config.get_per('accounts', acc,
+ if not app.config.get_per('accounts', acc,
'sync_with_global_status'):
continue
- gajim.config.set_per('accounts', acc, 'priority', prio)
- show = gajim.SHOW_LIST[gajim.connections[acc].connected]
- status = gajim.connections[acc].status
- GLib.idle_add(gajim.connections[acc].change_status, show,
+ app.config.set_per('accounts', acc, 'priority', prio)
+ show = app.SHOW_LIST[app.connections[acc].connected]
+ status = app.connections[acc].status
+ GLib.idle_add(app.connections[acc].change_status, show,
status)
@dbus.service.method(INTERFACE, in_signature='', out_signature='')
@@ -596,11 +596,11 @@ class SignalObject(dbus.service.Object):
"""
Show the window(s) with next pending event in tabbed/group chats
"""
- if gajim.events.get_nb_events():
- account, jid, event = gajim.events.get_first_systray_event()
+ if app.events.get_nb_events():
+ account, jid, event = app.events.get_first_systray_event()
if not event:
return
- gajim.interface.handle_event(account, jid, event.type_)
+ app.interface.handle_event(account, jid, event.type_)
@dbus.service.method(INTERFACE, in_signature='s', out_signature='a{sv}')
def contact_info(self, jid):
@@ -613,7 +613,7 @@ class SignalObject(dbus.service.Object):
raise dbus_support.MissingArgument()
jid = self._get_real_jid(jid)
- cached_vcard = list(gajim.connections.values())[0].get_cached_vcard(jid)
+ cached_vcard = list(app.connections.values())[0].get_cached_vcard(jid)
if cached_vcard:
return get_dbus_struct(cached_vcard)
@@ -625,7 +625,7 @@ class SignalObject(dbus.service.Object):
"""
List register accounts
"""
- result = gajim.contacts.get_accounts()
+ result = app.contacts.get_accounts()
result_array = dbus.Array([], signature='s')
if result and len(result) > 0:
for account in result:
@@ -638,16 +638,16 @@ class SignalObject(dbus.service.Object):
Show info on account: resource, jid, nick, prio, message
"""
result = DBUS_DICT_SS()
- if account in gajim.connections:
+ if account in app.connections:
# account is valid
- con = gajim.connections[account]
+ con = app.connections[account]
index = con.connected
- result['status'] = DBUS_STRING(gajim.SHOW_LIST[index])
+ result['status'] = DBUS_STRING(app.SHOW_LIST[index])
result['name'] = DBUS_STRING(con.name)
- result['jid'] = DBUS_STRING(gajim.get_jid_from_account(con.name))
+ result['jid'] = DBUS_STRING(app.get_jid_from_account(con.name))
result['message'] = DBUS_STRING(con.status)
result['priority'] = DBUS_STRING(str(con.priority))
- result['resource'] = DBUS_STRING(gajim.config.get_per('accounts',
+ result['resource'] = DBUS_STRING(app.config.get_per('accounts',
con.name, 'resource'))
return result
@@ -658,7 +658,7 @@ class SignalObject(dbus.service.Object):
return the contacts for the specified account
"""
result = dbus.Array([], signature='aa{sv}')
- accounts = gajim.contacts.get_accounts()
+ accounts = app.contacts.get_accounts()
if len(accounts) == 0:
return result
if account:
@@ -667,9 +667,9 @@ class SignalObject(dbus.service.Object):
accounts_to_search = accounts
for acct in accounts_to_search:
if acct in accounts:
- for jid in gajim.contacts.get_jid_list(acct):
+ for jid in app.contacts.get_jid_list(acct):
item = self._contacts_as_dbus_structure(
- gajim.contacts.get_contacts(acct, jid))
+ app.contacts.get_contacts(acct, jid))
if item:
result.append(item)
return result
@@ -679,7 +679,7 @@ class SignalObject(dbus.service.Object):
"""
Show/hide the roster window
"""
- win = gajim.interface.roster.window
+ win = app.interface.roster.window
if win.get_property('visible'):
GLib.idle_add(win.hide)
else:
@@ -695,7 +695,7 @@ class SignalObject(dbus.service.Object):
"""
Show the roster window
"""
- win = gajim.interface.roster.window
+ win = app.interface.roster.window
win.present()
# preserve the 'steal focus preservation'
if self._is_first():
@@ -708,7 +708,7 @@ class SignalObject(dbus.service.Object):
"""
Show/hide the ipython window
"""
- win = gajim.ipython_window
+ win = app.ipython_window
if win:
if win.window.is_visible():
GLib.idle_add(win.hide)
@@ -716,7 +716,7 @@ class SignalObject(dbus.service.Object):
win.show_all()
win.present()
else:
- gajim.interface.create_ipython_window()
+ app.interface.create_ipython_window()
@dbus.service.method(INTERFACE, in_signature='', out_signature='a{ss}')
def prefs_list(self):
@@ -730,13 +730,13 @@ class SignalObject(dbus.service.Object):
key += node + '#'
key += name
prefs_dict[DBUS_STRING(key)] = DBUS_STRING(value)
- gajim.config.foreach(get_prefs)
+ app.config.foreach(get_prefs)
return prefs_dict
@dbus.service.method(INTERFACE, in_signature='', out_signature='b')
def prefs_store(self):
try:
- gajim.interface.save_config()
+ app.interface.save_config()
except Exception:
return DBUS_BOOLEAN(False)
return DBUS_BOOLEAN(True)
@@ -749,9 +749,9 @@ class SignalObject(dbus.service.Object):
if len(key_path) != 3:
return DBUS_BOOLEAN(False)
if key_path[2] == '*':
- gajim.config.del_per(key_path[0], key_path[1])
+ app.config.del_per(key_path[0], key_path[1])
else:
- gajim.config.del_per(key_path[0], key_path[1], key_path[2])
+ app.config.del_per(key_path[0], key_path[1], key_path[2])
return DBUS_BOOLEAN(True)
@dbus.service.method(INTERFACE, in_signature='s', out_signature='b')
@@ -761,17 +761,17 @@ class SignalObject(dbus.service.Object):
key_path = key.split('#', 2)
if len(key_path) < 3:
subname, value = key.split('=', 1)
- gajim.config.set(subname, value)
+ app.config.set(subname, value)
return DBUS_BOOLEAN(True)
subname, value = key_path[2].split('=', 1)
- gajim.config.set_per(key_path[0], key_path[1], subname, value)
+ app.config.set_per(key_path[0], key_path[1], subname, value)
return DBUS_BOOLEAN(True)
@dbus.service.method(INTERFACE, in_signature='ss', out_signature='b')
def add_contact(self, jid, account):
if account:
- if account in gajim.connections and \
- gajim.connections[account].connected > 1:
+ if account in app.connections and \
+ app.connections[account].connected > 1:
# if given account is active, use it
AddNewContactWindow(account = account, jid = jid)
else:
@@ -785,19 +785,19 @@ class SignalObject(dbus.service.Object):
@dbus.service.method(INTERFACE, in_signature='ss', out_signature='b')
def remove_contact(self, jid, account):
jid = self._get_real_jid(jid, account)
- accounts = gajim.contacts.get_accounts()
+ accounts = app.contacts.get_accounts()
# if there is only one account in roster, take it as default
if account:
accounts = [account]
contact_exists = False
for account in accounts:
- contacts = gajim.contacts.get_contacts(account, jid)
+ contacts = app.contacts.get_contacts(account, jid)
if contacts:
- gajim.connections[account].unsubscribe(jid)
+ app.connections[account].unsubscribe(jid)
for contact in contacts:
- gajim.interface.roster.remove_contact(contact, account)
- gajim.contacts.remove_jid(account, jid)
+ app.interface.roster.remove_contact(contact, account)
+ app.contacts.remove_jid(account, jid)
contact_exists = True
return DBUS_BOOLEAN(contact_exists)
@@ -815,18 +815,18 @@ class SignalObject(dbus.service.Object):
if account:
accounts = [account]
else:
- accounts = gajim.connections.keys()
+ accounts = app.connections.keys()
if jid.startswith('xmpp:'):
return jid[5:] # len('xmpp:') = 5
nick_in_roster = None # Is jid a nick ?
for account in accounts:
# Does jid exists in roster of one account ?
- if gajim.contacts.get_contacts(account, jid):
+ if app.contacts.get_contacts(account, jid):
return jid
if not nick_in_roster:
# look in all contact if one has jid as nick
- for jid_ in gajim.contacts.get_jid_list(account):
- c = gajim.contacts.get_contacts(account, jid_)
+ for jid_ in app.contacts.get_jid_list(account):
+ c = app.contacts.get_contacts(account, jid_)
if c[0].name == jid:
nick_in_roster = jid_
break
@@ -870,7 +870,7 @@ class SignalObject(dbus.service.Object):
@dbus.service.method(INTERFACE, in_signature='', out_signature='s')
def get_unread_msgs_number(self):
- return DBUS_STRING(str(gajim.events.get_nb_events()))
+ return DBUS_STRING(str(app.events.get_nb_events()))
@dbus.service.method(INTERFACE, in_signature='s', out_signature='b')
def start_chat(self, account):
@@ -883,10 +883,10 @@ class SignalObject(dbus.service.Object):
@dbus.service.method(INTERFACE, in_signature='ss', out_signature='')
def send_xml(self, xml, account):
if account:
- gajim.connections[account].send_stanza(str(xml))
+ app.connections[account].send_stanza(str(xml))
else:
- for acc in gajim.contacts.get_accounts():
- gajim.connections[acc].send_stanza(str(xml))
+ for acc in app.contacts.get_accounts():
+ app.connections[acc].send_stanza(str(xml))
@dbus.service.method(INTERFACE, in_signature='ss', out_signature='')
def change_avatar(self, picture, account):
@@ -908,31 +908,31 @@ class SignalObject(dbus.service.Object):
if avatar_mime_type:
vcard['PHOTO']['TYPE'] = avatar_mime_type
if account:
- gajim.connections[account].send_vcard(vcard)
+ app.connections[account].send_vcard(vcard)
else:
- for acc in gajim.connections:
- gajim.connections[acc].send_vcard(vcard)
+ for acc in app.connections:
+ app.connections[acc].send_vcard(vcard)
@dbus.service.method(INTERFACE, in_signature='ssss', out_signature='')
def join_room(self, room_jid, nick, password, account):
if not account:
# get the first connected account
- accounts = gajim.connections.keys()
+ accounts = app.connections.keys()
for acct in accounts:
- if gajim.account_is_connected(acct):
- if not gajim.connections[acct].is_zeroconf:
+ if app.account_is_connected(acct):
+ if not app.connections[acct].is_zeroconf:
account = acct
break
if not account:
return
- if gajim.connections[account].is_zeroconf:
+ if app.connections[account].is_zeroconf:
# zeroconf not support groupchats
return
if not nick:
nick = ''
- gajim.interface.instances[account]['join_gc'] = \
+ app.interface.instances[account]['join_gc'] = \
JoinGroupchatWindow(account, room_jid, nick)
else:
- gajim.interface.join_gc_room(account, room_jid, nick, password)
+ app.interface.join_gc_room(account, room_jid, nick, password)
diff --git a/gajim/roster_window.py b/gajim/roster_window.py
index ad203a22e..47de3df4a 100644
--- a/gajim/roster_window.py
+++ b/gajim/roster_window.py
@@ -45,27 +45,27 @@ import locale
from enum import IntEnum, unique
-import common.sleepy
-import history_window
-import dialogs
-import vcard
-import config
-import disco
-import gtkgui_helpers
-import gui_menu_builder
-import cell_renderer_image
-import tooltips
-import message_control
-import adhoc_commands
+from gajim.common import sleepy
+from gajim import history_window
+from gajim import dialogs
+from gajim import vcard
+from gajim import config
+from gajim import disco
+from gajim import gtkgui_helpers
+from gajim import gui_menu_builder
+from gajim import cell_renderer_image
+from gajim import tooltips
+from gajim import message_control
+from gajim import adhoc_commands
-from common import gajim
-from common import helpers
-from common.exceptions import GajimGeneralException
-from common import i18n
-from common import location_listener
-from common import ged
-from common import dbus_support
-from message_window import MessageWindowMgr
+from gajim.common import app
+from gajim.common import helpers
+from gajim.common.exceptions import GajimGeneralException
+from gajim.common import i18n
+from gajim.common import location_listener
+from gajim.common import ged
+from gajim.common import dbus_support
+from gajim.message_window import MessageWindowMgr
from nbxmpp.protocol import NS_FILE, NS_ROSTERX, NS_CONFERENCE
@@ -164,7 +164,7 @@ class RosterWindow:
account -- the account of SelfContact
model -- the data model (default TreeFilterModel)
"""
- jid = gajim.get_jid_from_account(account)
+ jid = app.get_jid_from_account(account)
its = self._get_contact_iter(jid, account, model=model)
if its:
return its[0]
@@ -188,7 +188,7 @@ class RosterWindow:
return []
if not contact:
- contact = gajim.contacts.get_first_contact_from_jid(account, jid)
+ contact = app.contacts.get_first_contact_from_jid(account, jid)
if not contact:
# We don't know this contact
return []
@@ -247,23 +247,23 @@ class RosterWindow:
# Merged accounts view
show = helpers.get_global_show()
it = self.model.append(None, [
- gajim.interface.jabber_state_images['16'][show],
+ app.interface.jabber_state_images['16'][show],
_('Merged accounts'), 'account', '', 'all', None, None, None,
None, None, None] + [None] * self.nb_ext_renderers)
self._iters['MERGED']['account'] = it
else:
- show = gajim.SHOW_LIST[gajim.connections[account].connected]
- our_jid = gajim.get_jid_from_account(account)
+ show = app.SHOW_LIST[app.connections[account].connected]
+ our_jid = app.get_jid_from_account(account)
tls_pixbuf = None
- if gajim.account_is_securely_connected(account):
+ if app.account_is_securely_connected(account):
tls_pixbuf = gtkgui_helpers.get_icon_pixmap('changes-prevent', 16)
# the only way to create a pixbuf from stock
# tls_pixbuf = self.window.render_icon_pixbuf(
# Gtk.STOCK_DIALOG_AUTHENTICATION, Gtk.IconSize.MENU)
it = self.model.append(None, [
- gajim.interface.jabber_state_images['16'][show],
+ app.interface.jabber_state_images['16'][show],
GLib.markup_escape_text(account), 'account', our_jid,
account, None, None, None, None, None, tls_pixbuf] +
[None] * self.nb_ext_renderers)
@@ -280,7 +280,7 @@ class RosterWindow:
"""
if improve_speed:
self._before_fill()
- jids = gajim.contacts.get_jid_list(account)
+ jids = app.contacts.get_jid_list(account)
for jid in jids:
self.add_contact(jid, account)
@@ -292,7 +292,7 @@ class RosterWindow:
self._idle_draw_jids_of_account(jids, account)
# Draw all known groups
- for group in gajim.groups[account]:
+ for group in app.groups[account]:
self.draw_group(group, account)
self.draw_account(account)
@@ -307,23 +307,23 @@ class RosterWindow:
account_group = 'MERGED'
else:
account_group = account
- delimiter = gajim.connections[account].nested_group_delimiter
+ delimiter = app.connections[account].nested_group_delimiter
group_splited = group.split(delimiter)
parent_group = delimiter.join(group_splited[:-1])
if len(group_splited) > 1 and parent_group in self._iters[account_group]['groups']:
iter_parent = self._iters[account_group]['groups'][parent_group]
elif parent_group:
iter_parent = self._add_group_iter(account, parent_group)
- if parent_group not in gajim.groups[account]:
+ if parent_group not in app.groups[account]:
if account + parent_group in self.collapsed_rows:
is_expanded = False
else:
is_expanded = True
- gajim.groups[account][parent_group] = {'expand': is_expanded}
+ app.groups[account][parent_group] = {'expand': is_expanded}
else:
iter_parent = self._get_account_iter(account, self.model)
iter_group = self.model.append(iter_parent,
- [gajim.interface.jabber_state_images['16']['closed'],
+ [app.interface.jabber_state_images['16']['closed'],
GLib.markup_escape_text(group), 'group', group, account, None,
None, None, None, None, None] + [None] * self.nb_ext_renderers)
self.draw_group(group, account)
@@ -404,8 +404,8 @@ class RosterWindow:
is_expanded = False
else:
is_expanded = True
- if group not in gajim.groups[account]:
- gajim.groups[account][group] = {'expand': is_expanded}
+ if group not in app.groups[account]:
+ app.groups[account][group] = {'expand': is_expanded}
assert len(added_iters), '%s has not been added to roster!' % \
contact.jid
@@ -462,8 +462,8 @@ class RosterWindow:
else:
account_group = account
group = self.model[parent_i][Column.JID]
- if group in gajim.groups[account]:
- del gajim.groups[account][group]
+ if group in app.groups[account]:
+ del app.groups[account][group]
to_be_removed = parent_i
del self._iters[account_group]['groups'][group]
parent_i = self.model.iter_parent(parent_i)
@@ -489,7 +489,7 @@ class RosterWindow:
self._get_nearby_family_and_big_brother(family, account)
if not big_brother_jid:
return []
- big_brother_contact = gajim.contacts.get_first_contact_from_jid(
+ big_brother_contact = app.contacts.get_first_contact_from_jid(
big_brother_account, big_brother_jid)
assert len(self._get_contact_iter(big_brother_jid,
@@ -503,7 +503,7 @@ class RosterWindow:
for data in nearby_family:
_account = data['account']
_jid = data['jid']
- _contact = gajim.contacts.get_first_contact_from_jid(
+ _contact = app.contacts.get_first_contact_from_jid(
_account, _jid)
if not _contact or _contact == big_brother_contact:
@@ -538,7 +538,7 @@ class RosterWindow:
for data in nearby_family:
_account = data['account']
_jid = data['jid']
- _contact = gajim.contacts.get_first_contact_from_jid(_account, _jid)
+ _contact = app.contacts.get_first_contact_from_jid(_account, _jid)
iters = self._get_contact_iter(_jid, _account, _contact, self.model)
if not iters or not _contact:
@@ -593,7 +593,7 @@ class RosterWindow:
brothers = []
nearby_family, big_brother_jid, big_brother_account = \
self._get_nearby_family_and_big_brother(family, account)
- big_brother_contact = gajim.contacts.get_contact(big_brother_account,
+ big_brother_contact = app.contacts.get_contact(big_brother_account,
big_brother_jid)
child_iters = self._get_contact_iter(big_brother_jid,
big_brother_account, model=self.model)
@@ -605,7 +605,7 @@ class RosterWindow:
if parent_type == 'contact':
for data in nearby_family:
# recalibrate after remove to keep highlight
- if data['jid'] in gajim.to_be_removed[data['account']]:
+ if data['jid'] in app.to_be_removed[data['account']]:
return
self._remove_metacontact_family(family, account)
@@ -627,14 +627,14 @@ class RosterWindow:
parent_iter = self.model.iter_parent(child_iters[0])
parent_type = self.model[parent_iter][Column.TYPE]
if parent_type != 'contact':
- _contact = gajim.contacts.get_contact(_account, _jid)
+ _contact = app.contacts.get_contact(_account, _jid)
self._remove_entity(_contact, _account)
self._add_entity(_contact, _account, groups=None,
big_brother_contact=big_brother_contact,
big_brother_account=big_brother_account)
def _get_nearby_family_and_big_brother(self, family, account):
- return gajim.contacts.get_nearby_family_and_big_brother(family, account)
+ return app.contacts.get_nearby_family_and_big_brother(family, account)
def _add_self_contact(self, account):
"""
@@ -642,15 +642,15 @@ class RosterWindow:
Return the SelfContact contact instance
"""
- jid = gajim.get_jid_from_account(account)
- contact = gajim.contacts.get_first_contact_from_jid(account, jid)
+ jid = app.get_jid_from_account(account)
+ contact = app.contacts.get_first_contact_from_jid(account, jid)
assert len(self._get_contact_iter(jid, account, contact,
self.model)) == 0, 'Self contact %s already in roster' % jid
child_iterA = self._get_account_iter(account, self.model)
self._iters[account]['contacts'][jid] = [self.model.append(child_iterA,
- [None, gajim.nicks[account], 'self_contact', jid, account, None,
+ [None, app.nicks[account], 'self_contact', jid, account, None,
None, None, None, None, None] + [None] * self.nb_ext_renderers)]
self.draw_completely(jid, account)
@@ -659,7 +659,7 @@ class RosterWindow:
return contact
def redraw_metacontacts(self, account):
- for family in gajim.contacts.iter_metacontacts_families(account):
+ for family in app.contacts.iter_metacontacts_families(account):
self._recalibrate_metacontact_family(family, account)
def add_contact(self, jid, account):
@@ -677,16 +677,16 @@ class RosterWindow:
jid -- the contact's jid or SelfJid to add SelfContact
account -- the corresponding account.
"""
- contact = gajim.contacts.get_contact_with_highest_priority(account, jid)
+ contact = app.contacts.get_contact_with_highest_priority(account, jid)
if len(self._get_contact_iter(jid, account, contact, self.model)):
# If contact already in roster, do nothing
return
- if jid == gajim.get_jid_from_account(account):
- show_self_contact = gajim.config.get('show_self_contact')
+ if jid == app.get_jid_from_account(account):
+ show_self_contact = app.config.get('show_self_contact')
if show_self_contact == 'never':
return
- if (contact.resource != gajim.connections[account].server_resource \
+ if (contact.resource != app.connections[account].server_resource \
and show_self_contact == 'when_other_resource') or \
show_self_contact == 'always':
return self._add_self_contact(account)
@@ -695,10 +695,10 @@ class RosterWindow:
is_observer = contact.is_observer()
if is_observer:
# if he has a tag, remove it
- gajim.contacts.remove_metacontact(account, jid)
+ app.contacts.remove_metacontact(account, jid)
# Add contact to roster
- family = gajim.contacts.get_metacontacts_family(account, jid)
+ family = app.contacts.get_metacontacts_family(account, jid)
contacts = []
if family:
# We have a family. So we are a metacontact.
@@ -739,7 +739,7 @@ class RosterWindow:
force -- remove contact even it has pending evens (Default False)
backend -- also remove contact instance (Default False)
"""
- contact = gajim.contacts.get_contact_with_highest_priority(account, jid)
+ contact = app.contacts.get_contact_with_highest_priority(account, jid)
if not contact:
return
@@ -751,7 +751,7 @@ class RosterWindow:
if iters:
# no more pending events
# Remove contact from roster directly
- family = gajim.contacts.get_metacontacts_family(account, jid)
+ family = app.contacts.get_metacontacts_family(account, jid)
if family:
# We have a family. So we are a metacontact.
self._remove_metacontact_family(family, account)
@@ -760,12 +760,12 @@ class RosterWindow:
old_grps = []
if backend:
- if not gajim.interface.msg_win_mgr.get_control(jid, account) or \
+ if not app.interface.msg_win_mgr.get_control(jid, account) or \
force:
# If a window is still opened: don't remove contact instance
# Remove contact before redrawing, otherwise the old
# numbers will still be show
- gajim.contacts.remove_jid(account, jid, remove_meta=True)
+ app.contacts.remove_jid(account, jid, remove_meta=True)
if iters:
rest_of_family = [data for data in family
if account != data['account'] or jid != data['jid']]
@@ -776,7 +776,7 @@ class RosterWindow:
for c, acc in brothers:
self.draw_completely(c.jid, acc)
else:
- for c in gajim.contacts.get_contacts(account, jid):
+ for c in app.contacts.get_contacts(account, jid):
c.sub = 'none'
c.show = 'not in roster'
c.status = ''
@@ -802,7 +802,7 @@ class RosterWindow:
new_jid -- our new jid
account -- the corresponding account.
"""
- gajim.contacts.change_contact_jid(old_jid, new_jid, account)
+ app.contacts.change_contact_jid(old_jid, new_jid, account)
self_iter = self._get_self_contact_iter(account, model=self.model)
if not self_iter:
return
@@ -813,37 +813,37 @@ class RosterWindow:
"""
Add groupchat to roster and draw it. Return the added contact instance
"""
- contact = gajim.contacts.get_contact_with_highest_priority(account, jid)
+ contact = app.contacts.get_contact_with_highest_priority(account, jid)
# Do not show gc if we are disconnected and minimize it
- if gajim.account_is_connected(account):
+ if app.account_is_connected(account):
show = 'online'
else:
show = 'offline'
status = ''
if contact is None:
- gc_control = gajim.interface.msg_win_mgr.get_gc_control(jid,
+ gc_control = app.interface.msg_win_mgr.get_gc_control(jid,
account)
if gc_control:
# there is a window that we can minimize
- gajim.interface.minimized_controls[account][jid] = gc_control
+ app.interface.minimized_controls[account][jid] = gc_control
name = gc_control.name
- elif jid in gajim.interface.minimized_controls[account]:
- name = gajim.interface.minimized_controls[account][jid].name
+ elif jid in app.interface.minimized_controls[account]:
+ name = app.interface.minimized_controls[account][jid].name
else:
name = jid.split('@')[0]
# New groupchat
- contact = gajim.contacts.create_contact(jid=jid, account=account,
+ contact = app.contacts.create_contact(jid=jid, account=account,
name=name, groups=[_('Groupchats')], show=show, status=status,
sub='none')
- gajim.contacts.add_contact(account, contact)
+ app.contacts.add_contact(account, contact)
self.add_contact(jid, account)
else:
- if jid not in gajim.interface.minimized_controls[account]:
+ if jid not in app.interface.minimized_controls[account]:
# there is a window that we can minimize
- gc_control = gajim.interface.msg_win_mgr.get_gc_control(jid,
+ gc_control = app.interface.msg_win_mgr.get_gc_control(jid,
account)
- gajim.interface.minimized_controls[account][jid] = gc_control
+ app.interface.minimized_controls[account][jid] = gc_control
contact.show = show
contact.status = status
self.adjust_and_draw_contact_context(jid, account)
@@ -855,10 +855,10 @@ class RosterWindow:
"""
Remove groupchat from roster and redraw account and group
"""
- contact = gajim.contacts.get_contact_with_highest_priority(account, jid)
+ contact = app.contacts.get_contact_with_highest_priority(account, jid)
if contact.is_groupchat():
- if jid in gajim.interface.minimized_controls[account]:
- del gajim.interface.minimized_controls[account][jid]
+ if jid in app.interface.minimized_controls[account]:
+ del app.interface.minimized_controls[account][jid]
self.remove_contact(jid, account, force=True, backend=True)
return True
else:
@@ -870,12 +870,12 @@ class RosterWindow:
"""
Add transport to roster and draw it. Return the added contact instance
"""
- contact = gajim.contacts.get_contact_with_highest_priority(account, jid)
+ contact = app.contacts.get_contact_with_highest_priority(account, jid)
if contact is None:
- contact = gajim.contacts.create_contact(jid=jid, account=account,
+ contact = app.contacts.create_contact(jid=jid, account=account,
name=jid, groups=[_('Transports')], show='offline',
status='offline', sub='from')
- gajim.contacts.add_contact(account, contact)
+ app.contacts.add_contact(account, contact)
self.add_contact(jid, account)
return contact
@@ -900,14 +900,14 @@ class RosterWindow:
# update all contacts in the given group
if self.regroup:
- accounts = gajim.connections.keys()
+ accounts = app.connections.keys()
else:
accounts = [account, ]
for acc in accounts:
changed_contacts = []
- for jid in gajim.contacts.get_jid_list(acc):
- contact = gajim.contacts.get_first_contact_from_jid(acc, jid)
+ for jid in app.contacts.get_jid_list(acc):
+ contact = app.contacts.get_first_contact_from_jid(acc, jid)
if old_name not in contact.groups:
continue
@@ -920,7 +920,7 @@ class RosterWindow:
changed_contacts.append({'jid': jid, 'name': contact.name,
'groups':contact.groups})
- gajim.connections[acc].update_contacts(changed_contacts)
+ app.connections[acc].update_contacts(changed_contacts)
for c in changed_contacts:
self.add_contact(c['jid'], acc)
@@ -945,13 +945,13 @@ class RosterWindow:
update -- update contact on the server
"""
self.remove_contact(jid, account, force=True)
- for contact in gajim.contacts.get_contacts(account, jid):
+ for contact in app.contacts.get_contacts(account, jid):
for group in groups:
if group not in contact.groups:
# we might be dropped from meta to group
contact.groups.append(group)
if update:
- gajim.connections[account].update_contact(jid, contact.name,
+ app.connections[account].update_contact(jid, contact.name,
contact.groups)
self.add_contact(jid, account)
@@ -973,13 +973,13 @@ class RosterWindow:
update -- update contact on the server
"""
self.remove_contact(jid, account, force=True)
- for contact in gajim.contacts.get_contacts(account, jid):
+ for contact in app.contacts.get_contacts(account, jid):
for group in groups:
if group in contact.groups:
# Needed when we remove from "General" or "Observers"
contact.groups.remove(group)
if update:
- gajim.connections[account].update_contact(jid, contact.name,
+ app.connections[account].update_contact(jid, contact.name,
contact.groups)
self.add_contact(jid, account)
@@ -987,25 +987,25 @@ class RosterWindow:
for group in groups:
self.draw_group(group, account)
- # FIXME: maybe move to gajim.py
+ # FIXME: maybe move to app.py
def remove_newly_added(self, jid, account):
- if account not in gajim.newly_added:
+ if account not in app.newly_added:
# Account has been deleted during the timeout that called us
return
- if jid in gajim.newly_added[account]:
- gajim.newly_added[account].remove(jid)
+ if jid in app.newly_added[account]:
+ app.newly_added[account].remove(jid)
self.draw_contact(jid, account)
- # FIXME: maybe move to gajim.py
+ # FIXME: maybe move to app.py
def remove_to_be_removed(self, jid, account):
- if account not in gajim.interface.instances:
+ if account not in app.interface.instances:
# Account has been deleted during the timeout that called us
return
- if jid in gajim.newly_added[account]:
+ if jid in app.newly_added[account]:
return
- if jid in gajim.to_be_removed[account]:
- gajim.to_be_removed[account].remove(jid)
- family = gajim.contacts.get_metacontacts_family(account, jid)
+ if jid in app.to_be_removed[account]:
+ app.to_be_removed[account].remove(jid)
+ family = app.contacts.get_metacontacts_family(account, jid)
if family:
# Peform delayed recalibration
self._recalibrate_metacontact_family(family, account)
@@ -1014,13 +1014,13 @@ class RosterWindow:
# FIXME: integrate into add_contact()
def add_to_not_in_the_roster(self, account, jid, nick='', resource=''):
keyID = ''
- attached_keys = gajim.config.get_per('accounts', account,
+ attached_keys = app.config.get_per('accounts', account,
'attached_gpg_keys').split()
if jid in attached_keys:
keyID = attached_keys[attached_keys.index(jid) + 1]
- contact = gajim.contacts.create_not_in_roster_contact(jid=jid,
+ contact = app.contacts.create_not_in_roster_contact(jid=jid,
account=account, resource=resource, name=nick, keyID=keyID)
- gajim.contacts.add_contact(account, contact)
+ app.contacts.add_contact(account, contact)
self.add_contact(contact.jid, account)
return contact
@@ -1035,10 +1035,10 @@ class RosterWindow:
assert False, 'Account iter of %s could not be found.' % account
return
- num_of_accounts = gajim.get_number_of_connected_accounts()
- num_of_secured = gajim.get_number_of_securely_connected_accounts()
+ num_of_accounts = app.get_number_of_connected_accounts()
+ num_of_secured = app.get_number_of_securely_connected_accounts()
- if gajim.account_is_securely_connected(account) and not self.regroup or\
+ if app.account_is_securely_connected(account) and not self.regroup or\
self.regroup and num_of_secured and num_of_secured == num_of_accounts:
tls_pixbuf = gtkgui_helpers.get_icon_pixmap('changes-prevent', 16)
# the only way to create a pixbuf from stock
@@ -1059,36 +1059,36 @@ class RosterWindow:
self.model.iter_has_child(child_iter):
account_name = '[%s]' % account_name
- if (gajim.account_is_connected(account) or (self.regroup and \
- gajim.get_number_of_connected_accounts())) and gajim.config.get(
+ if (app.account_is_connected(account) or (self.regroup and \
+ app.get_number_of_connected_accounts())) and app.config.get(
'show_contacts_number'):
- nbr_on, nbr_total = gajim.contacts.get_nb_online_total_contacts(
+ nbr_on, nbr_total = app.contacts.get_nb_online_total_contacts(
accounts = accounts)
account_name += ' (%s/%s)' % (repr(nbr_on), repr(nbr_total))
self.model[child_iter][Column.NAME] = account_name
- pep_dict = gajim.connections[account].pep
- if gajim.config.get('show_mood_in_roster') and 'mood' in pep_dict:
+ pep_dict = app.connections[account].pep
+ if app.config.get('show_mood_in_roster') and 'mood' in pep_dict:
self.model[child_iter][Column.MOOD_PIXBUF] = \
gtkgui_helpers.get_pep_as_pixbuf(pep_dict['mood'])
else:
self.model[child_iter][Column.MOOD_PIXBUF] = empty_pixbuf
- if gajim.config.get('show_activity_in_roster') and 'activity' in \
+ if app.config.get('show_activity_in_roster') and 'activity' in \
pep_dict:
self.model[child_iter][Column.ACTIVITY_PIXBUF] = \
gtkgui_helpers.get_pep_as_pixbuf(pep_dict['activity'])
else:
self.model[child_iter][Column.ACTIVITY_PIXBUF] = empty_pixbuf
- if gajim.config.get('show_tunes_in_roster') and 'tune' in pep_dict:
+ if app.config.get('show_tunes_in_roster') and 'tune' in pep_dict:
self.model[child_iter][Column.TUNE_PIXBUF] = \
gtkgui_helpers.get_pep_as_pixbuf(pep_dict['tune'])
else:
self.model[child_iter][Column.TUNE_PIXBUF] = empty_pixbuf
- if gajim.config.get('show_location_in_roster') and 'location' in \
+ if app.config.get('show_location_in_roster') and 'location' in \
pep_dict:
self.model[child_iter][Column.LOCATION_PIXBUF] = \
gtkgui_helpers.get_pep_as_pixbuf(pep_dict['location'])
@@ -1121,8 +1121,8 @@ class RosterWindow:
text = GLib.markup_escape_text(group)
if helpers.group_is_blocked(account, group):
text = '%s' % text
- if gajim.config.get('show_contacts_number'):
- nbr_on, nbr_total = gajim.contacts.get_nb_online_total_contacts(
+ if app.config.get('show_contacts_number'):
+ nbr_on, nbr_total = app.contacts.get_nb_online_total_contacts(
accounts = accounts, groups = [group])
text += ' (%s/%s)' % (repr(nbr_on), repr(nbr_total))
@@ -1166,9 +1166,9 @@ class RosterWindow:
# FIXME: We really need a custom cell_renderer
if not contact_instances:
- contact_instances = gajim.contacts.get_contacts(account, jid)
+ contact_instances = app.contacts.get_contacts(account, jid)
if not contact:
- contact = gajim.contacts.get_highest_prio_contact_from_contacts(
+ contact = app.contacts.get_highest_prio_contact_from_contacts(
contact_instances)
if not contact:
return False
@@ -1180,11 +1180,11 @@ class RosterWindow:
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 \
- gajim.interface.minimized_controls[account][jid]:
- nb_unread = len(gajim.events.get_events(account, jid,
+ if jid in app.interface.minimized_controls[account] and \
+ app.interface.minimized_controls[account][jid]:
+ nb_unread = len(app.events.get_events(account, jid,
['printed_marked_gc_msg']))
- nb_unread += gajim.interface.minimized_controls \
+ nb_unread += app.interface.minimized_controls \
[account][jid].get_nb_unread_pm()
if nb_unread == 1:
@@ -1216,7 +1216,7 @@ class RosterWindow:
# add status msg, if not empty, under contact name in
# the treeview
- if contact.status and gajim.config.get('show_status_msgs_in_roster'):
+ if contact.status and app.config.get('show_status_msgs_in_roster'):
status = contact.status.strip()
if status != '':
status = helpers.reduce_chars_newlines(status,
@@ -1241,7 +1241,7 @@ class RosterWindow:
break
# Check for events of collapsed (hidden) brothers
- family = gajim.contacts.get_metacontacts_family(account, jid)
+ family = app.contacts.get_metacontacts_family(account, jid)
is_big_brother = False
have_visible_children = False
if family:
@@ -1267,7 +1267,7 @@ class RosterWindow:
# a child has awaiting messages?
jidC = self.model[iterC][Column.JID]
accountC = self.model[iterC][Column.ACCOUNT]
- if len(gajim.events.get_events(accountC, jidC)):
+ if len(app.events.get_events(accountC, jidC)):
icon_name = 'event'
break
iterC = self.model.iter_next(iterC)
@@ -1301,7 +1301,7 @@ class RosterWindow:
if family and not is_big_brother and not self.starting:
self.draw_parent_contact(jid, account)
- delimiter = gajim.connections[account].nested_group_delimiter
+ delimiter = app.connections[account].nested_group_delimiter
for group in contact.get_shown_groups():
# We need to make sure that _visible_func is called for
# our groups otherwise we might not be shown
@@ -1315,20 +1315,20 @@ class RosterWindow:
self.model[iterG][Column.JID] = self.model[iterG][Column.JID]
i += 1
- gajim.plugin_manager.gui_extension_point('roster_draw_contact', self,
+ app.plugin_manager.gui_extension_point('roster_draw_contact', self,
jid, account, contact)
return False
def _is_pep_shown_in_roster(self, pep_type):
if pep_type == 'mood':
- return gajim.config.get('show_mood_in_roster')
+ return app.config.get('show_mood_in_roster')
elif pep_type == 'activity':
- return gajim.config.get('show_activity_in_roster')
+ return app.config.get('show_activity_in_roster')
elif pep_type == 'tune':
- return gajim.config.get('show_tunes_in_roster')
+ return app.config.get('show_tunes_in_roster')
elif pep_type == 'location':
- return gajim.config.get('show_location_in_roster')
+ return app.config.get('show_location_in_roster')
else:
return False
@@ -1347,7 +1347,7 @@ class RosterWindow:
if not iters:
return
if not contact:
- contact = gajim.contacts.get_contact(account, jid)
+ contact = app.contacts.get_contact(account, jid)
if pep_type in contact.pep:
pixbuf = gtkgui_helpers.get_pep_as_pixbuf(contact.pep[pep_type])
else:
@@ -1357,7 +1357,7 @@ class RosterWindow:
def draw_avatar(self, jid, account):
iters = self._get_contact_iter(jid, account, model=self.model)
- if not iters or not gajim.config.get('show_avatars_in_roster'):
+ if not iters or not app.config.get('show_avatars_in_roster'):
return
jid = self.model[iters[0]][Column.JID]
pixbuf = gtkgui_helpers.get_avatar_pixbuf_from_cache(jid)
@@ -1370,8 +1370,8 @@ class RosterWindow:
return False
def draw_completely(self, jid, account):
- contact_instances = gajim.contacts.get_contacts(account, jid)
- contact = gajim.contacts.get_highest_prio_contact_from_contacts(
+ contact_instances = app.contacts.get_contacts(account, jid)
+ contact = app.contacts.get_highest_prio_contact_from_contacts(
contact_instances)
self.draw_contact(jid, account, contact_instances=contact_instances,
contact=contact)
@@ -1383,12 +1383,12 @@ class RosterWindow:
Draw contact, account and groups of given jid Show contact if it has
pending events
"""
- contact = gajim.contacts.get_first_contact_from_jid(account, jid)
+ contact = app.contacts.get_first_contact_from_jid(account, jid)
if not contact:
# idle draw or just removed SelfContact
return
- family = gajim.contacts.get_metacontacts_family(account, jid)
+ family = app.contacts.get_metacontacts_family(account, jid)
if family:
# There might be a new big brother
self._recalibrate_metacontact_family(family, account)
@@ -1409,7 +1409,7 @@ class RosterWindow:
"""
def _draw_all_contacts(jids, account):
for jid in jids:
- family = gajim.contacts.get_metacontacts_family(account, jid)
+ family = app.contacts.get_metacontacts_family(account, jid)
if family:
# For metacontacts over several accounts:
# When we connect a new account existing brothers
@@ -1435,17 +1435,17 @@ class RosterWindow:
def _after_fill(self):
self.starting = False
- accounts_list = gajim.contacts.get_accounts()
- for account in gajim.connections:
+ accounts_list = app.contacts.get_accounts()
+ for account in app.connections:
if account not in accounts_list:
continue
- jids = gajim.contacts.get_jid_list(account)
+ jids = app.contacts.get_jid_list(account)
for jid in jids:
self.draw_completely(jid, account)
# Draw all known groups
- for group in gajim.groups[account]:
+ for group in app.groups[account]:
self.draw_group(group, account)
self.draw_account(account)
@@ -1473,10 +1473,10 @@ class RosterWindow:
self._iters = {}
# for merged mode
self._iters['MERGED'] = {'account': None, 'groups': {}}
- for acct in gajim.contacts.get_accounts():
+ for acct in app.contacts.get_accounts():
self._iters[acct] = {'account': None, 'groups': {}, 'contacts': {}}
- for acct in gajim.contacts.get_accounts():
+ for acct in app.contacts.get_accounts():
self.add_account(acct)
self.add_account_contacts(acct, improve_speed=True,
draw_contacts=False)
@@ -1497,7 +1497,7 @@ class RosterWindow:
# Not visible in roster
return
path = self.modelfilter.get_path(iters[0])
- if self.dragging or not gajim.config.get(
+ if self.dragging or not app.config.get(
'scroll_roster_to_last_message'):
# do not change selection while DND'ing
return
@@ -1554,9 +1554,9 @@ class RosterWindow:
"""
if not self.tree.get_model():
return
- if account not in gajim.connections:
+ if account not in app.connections:
return
- delimiter = gajim.connections[account].nested_group_delimiter
+ delimiter = app.connections[account].nested_group_delimiter
group_splited = group.split(delimiter)
i = 1
while i < len(group_splited) + 1:
@@ -1588,11 +1588,11 @@ class RosterWindow:
Return True if the contact or one if it resources has pending events
"""
# jid has pending events
- if gajim.events.get_nb_roster_events(account, contact.jid) > 0:
+ if app.events.get_nb_roster_events(account, contact.jid) > 0:
return True
# check events of all resources
- for contact_ in gajim.contacts.get_contacts(account, contact.jid):
- if contact_.resource and gajim.events.get_nb_roster_events(account,
+ for contact_ in app.contacts.get_contacts(account, contact.jid):
+ if contact_.resource and app.events.get_nb_roster_events(account,
contact_.get_full_jid()) > 0:
return True
return False
@@ -1604,10 +1604,10 @@ class RosterWindow:
return True
if contact.show in ('offline', 'error'):
- if contact.jid in gajim.to_be_removed[account]:
+ if contact.jid in app.to_be_removed[account]:
return True
return False
- if gajim.config.get('show_only_chat_and_online') and contact.show in (
+ if app.config.get('show_only_chat_and_online') and contact.show in (
'away', 'xa', 'busy'):
return False
return True
@@ -1637,11 +1637,11 @@ class RosterWindow:
group = jid
if group == _('Transports'):
if self.regroup:
- accounts = gajim.contacts.get_accounts()
+ accounts = app.contacts.get_accounts()
else:
accounts = [account]
for _acc in accounts:
- for contact in gajim.contacts.iter_contacts(_acc):
+ for contact in app.contacts.iter_contacts(_acc):
if group in contact.get_shown_groups():
if self.rfilter_enabled:
if self.rfilter_string in \
@@ -1653,22 +1653,22 @@ class RosterWindow:
if self.rfilter_enabled:
# No transport has been found
return False
- return gajim.config.get('show_transports_group') and \
- (gajim.account_is_connected(account) or \
- gajim.config.get('showoffline'))
- if gajim.config.get('showoffline'):
+ return app.config.get('show_transports_group') and \
+ (app.account_is_connected(account) or \
+ app.config.get('showoffline'))
+ if app.config.get('showoffline'):
return True
if self.regroup:
# Column.ACCOUNT for groups depends on the order
# accounts were connected
# Check all accounts for online group contacts
- accounts = gajim.contacts.get_accounts()
+ accounts = app.contacts.get_accounts()
else:
accounts = [account]
for _acc in accounts:
- delimiter = gajim.connections[_acc].nested_group_delimiter
- for contact in gajim.contacts.iter_contacts(_acc):
+ delimiter = app.connections[_acc].nested_group_delimiter
+ for contact in app.contacts.iter_contacts(_acc):
if not self.contact_is_visible(contact, _acc):
continue
# Is this contact in this group?
@@ -1687,11 +1687,11 @@ class RosterWindow:
return True
iter_c = model.iter_next(iter_c)
return self.rfilter_string in model[titer][Column.NAME].lower()
- if gajim.config.get('showoffline'):
+ if app.config.get('showoffline'):
return True
bb_jid = None
bb_account = None
- family = gajim.contacts.get_metacontacts_family(account, jid)
+ family = app.contacts.get_metacontacts_family(account, jid)
if family:
nearby_family, bb_jid, bb_account = \
self._get_nearby_family_and_big_brother(family, account)
@@ -1700,24 +1700,24 @@ class RosterWindow:
for data in nearby_family:
jid = data['jid']
account = data['account']
- contact = gajim.contacts.get_contact_with_highest_priority(
+ contact = app.contacts.get_contact_with_highest_priority(
account, jid)
if contact and self.contact_is_visible(contact, account):
return True
return False
else:
- contact = gajim.contacts.get_contact_with_highest_priority(
+ contact = app.contacts.get_contact_with_highest_priority(
account, jid)
return self.contact_is_visible(contact, account)
if type_ == 'agent':
if self.rfilter_enabled:
return self.rfilter_string in model[titer][Column.NAME].lower()
- contact = gajim.contacts.get_contact_with_highest_priority(account,
+ contact = app.contacts.get_contact_with_highest_priority(account,
jid)
return self.contact_has_pending_roster_events(contact, account) or \
- (gajim.config.get('show_transports_group') and \
- (gajim.account_is_connected(account) or \
- gajim.config.get('showoffline')))
+ (app.config.get('show_transports_group') and \
+ (app.account_is_connected(account) or \
+ app.config.get('showoffline')))
if type_ == 'groupchat' and self.rfilter_enabled:
return self.rfilter_string in model[titer][Column.NAME].lower()
return True
@@ -1768,21 +1768,21 @@ class RosterWindow:
jid1 = model[iter1][Column.JID]
jid2 = model[iter2][Column.JID]
if type1 == 'contact':
- lcontact1 = gajim.contacts.get_contacts(account1, jid1)
- contact1 = gajim.contacts.get_first_contact_from_jid(account1, jid1)
+ lcontact1 = app.contacts.get_contacts(account1, jid1)
+ contact1 = app.contacts.get_first_contact_from_jid(account1, jid1)
if not contact1:
return 0
name1 = contact1.get_shown_name()
if type2 == 'contact':
- lcontact2 = gajim.contacts.get_contacts(account2, jid2)
- contact2 = gajim.contacts.get_first_contact_from_jid(account2, jid2)
+ lcontact2 = app.contacts.get_contacts(account2, jid2)
+ contact2 = app.contacts.get_first_contact_from_jid(account2, jid2)
if not contact2:
return 0
name2 = contact2.get_shown_name()
# We first compare by show if sort_by_show_in_roster is True or if it's
# a child contact
if type1 == 'contact' and type2 == 'contact' and \
- gajim.config.get('sort_by_show_in_roster'):
+ app.config.get('sort_by_show_in_roster'):
cshow = {'chat':0, 'online': 1, 'away': 2, 'xa': 3, 'dnd': 4,
'invisible': 5, 'offline': 6, 'not in roster': 7, 'error': 8}
s = self.get_show(lcontact1)
@@ -1791,9 +1791,9 @@ class RosterWindow:
show2 = cshow.get(s, 9)
removing1 = False
removing2 = False
- if show1 == 6 and jid1 in gajim.to_be_removed[account1]:
+ if show1 == 6 and jid1 in app.to_be_removed[account1]:
removing1 = True
- if show2 == 6 and jid2 in gajim.to_be_removed[account2]:
+ if show2 == 6 and jid2 in app.to_be_removed[account2]:
removing2 = True
if removing1 and not removing2:
return 1
@@ -1841,47 +1841,47 @@ class RosterWindow:
Read from db the unread messages, and fire them up, and if we find very
old unread messages, delete them from unread table
"""
- results = gajim.logger.get_unread_msgs()
+ results = app.logger.get_unread_msgs()
for result, shown in results:
jid = result.jid
additional_data = result.additional_data
- if gajim.contacts.get_first_contact_from_jid(account, jid) and not \
+ if app.contacts.get_first_contact_from_jid(account, jid) and not \
shown:
# We have this jid in our contacts list
# XXX unread messages should probably have their session saved
# with them
- session = gajim.connections[account].make_new_session(jid)
+ session = app.connections[account].make_new_session(jid)
tim = float(result.time)
session.roster_message(jid, result.message, tim, msg_type='chat',
msg_log_id=result.log_line_id, additional_data=additional_data)
- gajim.logger.set_shown_unread_msgs(result.log_line_id)
+ app.logger.set_shown_unread_msgs(result.log_line_id)
elif (time.time() - result.time) > 2592000:
# ok, here we see that we have a message in unread messages
# table that is older than a month. It is probably from someone
# not in our roster for accounts we usually launch, so we will
# delete this id from unread message tables.
- gajim.logger.set_read_messages([result.log_line_id])
+ app.logger.set_read_messages([result.log_line_id])
def fill_contacts_and_groups_dicts(self, array, account):
"""
- Fill gajim.contacts and gajim.groups
+ Fill app.contacts and app.groups
"""
# FIXME: This function needs to be splitted
# Most of the logic SHOULD NOT be done at GUI level
- if account not in gajim.contacts.get_accounts():
- gajim.contacts.add_account(account)
+ if account not in app.contacts.get_accounts():
+ app.contacts.add_account(account)
if not account in self._iters:
self._iters[account] = {'account': None, 'groups': {},
'contacts': {}}
- if account not in gajim.groups:
- gajim.groups[account] = {}
- if gajim.config.get('show_self_contact') == 'always':
- self_jid = gajim.get_jid_from_account(account)
- if gajim.connections[account].server_resource:
- self_jid += '/' + gajim.connections[account].server_resource
- array[self_jid] = {'name': gajim.nicks[account],
+ if account not in app.groups:
+ app.groups[account] = {}
+ if app.config.get('show_self_contact') == 'always':
+ self_jid = app.get_jid_from_account(account)
+ if app.connections[account].server_resource:
+ self_jid += '/' + app.connections[account].server_resource
+ array[self_jid] = {'name': app.nicks[account],
'groups': ['self_contact'], 'subscription': 'both',
'ask': 'none'}
# .keys() is needed
@@ -1889,7 +1889,7 @@ class RosterWindow:
# Remove the contact in roster. It might has changed
self.remove_contact(jid, account, force=True)
# Remove old Contact instances
- gajim.contacts.remove_jid(account, jid, remove_meta=False)
+ app.contacts.remove_jid(account, jid, remove_meta=False)
jids = jid.split('/')
# get jid
ji = jids[0]
@@ -1903,47 +1903,47 @@ class RosterWindow:
status = '' # no status message by default
keyID = ''
- attached_keys = gajim.config.get_per('accounts', account,
+ attached_keys = app.config.get_per('accounts', account,
'attached_gpg_keys').split()
if jid in attached_keys:
keyID = attached_keys[attached_keys.index(jid) + 1]
- if gajim.jid_is_transport(jid):
+ if app.jid_is_transport(jid):
array[jid]['groups'] = [_('Transports')]
#TRANSP - potential
- contact1 = gajim.contacts.create_contact(jid=ji, account=account,
+ contact1 = app.contacts.create_contact(jid=ji, account=account,
name=name, groups=array[jid]['groups'], show=show,
status=status, sub=array[jid]['subscription'],
ask=array[jid]['ask'], resource=resource, keyID=keyID)
- gajim.contacts.add_contact(account, contact1)
+ app.contacts.add_contact(account, contact1)
- if gajim.config.get('ask_avatars_on_startup'):
+ if app.config.get('ask_avatars_on_startup'):
pixbuf = gtkgui_helpers.get_avatar_pixbuf_from_cache(ji)
if pixbuf == 'ask':
- transport = gajim.get_transport_name_from_jid(contact1.jid)
- if not transport or gajim.jid_is_transport(contact1.jid):
+ transport = app.get_transport_name_from_jid(contact1.jid)
+ if not transport or app.jid_is_transport(contact1.jid):
jid_with_resource = contact1.jid
if contact1.resource:
jid_with_resource += '/' + contact1.resource
- gajim.connections[account].request_vcard(
+ app.connections[account].request_vcard(
jid_with_resource)
else:
- host = gajim.get_server_from_jid(contact1.jid)
- if host not in gajim.transport_avatar[account]:
- gajim.transport_avatar[account][host] = \
+ host = app.get_server_from_jid(contact1.jid)
+ if host not in app.transport_avatar[account]:
+ app.transport_avatar[account][host] = \
[contact1.jid]
else:
- gajim.transport_avatar[account][host].append(
+ app.transport_avatar[account][host].append(
contact1.jid)
# If we already have chat windows opened, update them with new
# contact instance
- chat_control = gajim.interface.msg_win_mgr.get_control(ji, account)
+ chat_control = app.interface.msg_win_mgr.get_control(ji, account)
if chat_control:
chat_control.contact = contact1
def connected_rooms(self, account):
- if account in list(gajim.gc_connected[account].values()):
+ if account in list(app.gc_connected[account].values()):
return True
return False
@@ -1964,7 +1964,7 @@ class RosterWindow:
msg_log_ids.append(ev.msg_log_id)
if msg_log_ids:
- gajim.logger.set_read_messages(msg_log_ids)
+ app.logger.set_read_messages(msg_log_ids)
contact_list = ((event.jid.split('/')[0], event.account) for event in \
event_list)
@@ -1985,24 +1985,24 @@ class RosterWindow:
"""
If an event was handled, return True, else return False
"""
- ft = gajim.interface.instances['file_transfers']
- event = gajim.events.get_first_event(account, jid, event.type_)
+ ft = app.interface.instances['file_transfers']
+ event = app.events.get_first_event(account, jid, event.type_)
if event.type_ == 'normal':
dialogs.SingleMessageWindow(account, jid,
action='receive', from_whom=jid, subject=event.subject,
message=event.message, resource=event.resource,
session=event.session, form_node=event.form_node)
- gajim.events.remove_events(account, jid, event)
+ app.events.remove_events(account, jid, event)
return True
elif event.type_ == 'file-request':
- contact = gajim.contacts.get_contact_with_highest_priority(account,
+ contact = app.contacts.get_contact_with_highest_priority(account,
jid)
ft.show_file_request(account, contact, event.file_props)
- gajim.events.remove_events(account, jid, event)
+ app.events.remove_events(account, jid, event)
return True
elif event.type_ in ('file-request-error', 'file-send-error'):
ft.show_send_error(event.file_props)
- gajim.events.remove_events(account, jid, event)
+ app.events.remove_events(account, jid, event)
return True
elif event.type_ in ('file-error', 'file-stopped'):
msg_err = ''
@@ -2011,35 +2011,35 @@ class RosterWindow:
elif event.file_props.error == -6:
msg_err = _('Error opening file')
ft.show_stopped(jid, event.file_props, error_msg=msg_err)
- gajim.events.remove_events(account, jid, event)
+ app.events.remove_events(account, jid, event)
return True
elif event.type_ == 'file-hash-error':
ft.show_hash_error(jid, event.file_props, account)
- gajim.events.remove_events(account, jid, event)
+ app.events.remove_events(account, jid, event)
return True
elif event.type_ == 'file-completed':
ft.show_completed(jid, event.file_props)
- gajim.events.remove_events(account, jid, event)
+ app.events.remove_events(account, jid, event)
return True
elif event.type_ == 'gc-invitation':
dialogs.InvitationReceivedDialog(account, event.room_jid,
event.jid_from, event.password, event.reason,
is_continued=event.is_continued)
- gajim.events.remove_events(account, jid, event)
+ app.events.remove_events(account, jid, event)
return True
elif event.type_ == 'subscription_request':
dialogs.SubscriptionRequestWindow(jid, event.text, account,
event.nick)
- gajim.events.remove_events(account, jid, event)
+ app.events.remove_events(account, jid, event)
return True
elif event.type_ == 'unsubscribed':
- gajim.interface.show_unsubscribed_dialog(account, event.contact)
- gajim.events.remove_events(account, jid, event)
+ app.interface.show_unsubscribed_dialog(account, event.contact)
+ app.events.remove_events(account, jid, event)
return True
elif event.type_ == 'jingle-incoming':
dialogs.VoIPCallReceivedDialog(account, event.peerjid, event.sid,
event.content_types)
- gajim.events.remove_events(account, jid, event)
+ app.events.remove_events(account, jid, event)
return True
return False
@@ -2060,7 +2060,7 @@ class RosterWindow:
"""
Authorize a contact (by re-sending auth menuitem)
"""
- gajim.connections[account].send_authorization(jid)
+ app.connections[account].send_authorization(jid)
dialogs.InformationDialog(_('Authorization sent'),
_('"%s" will now see your status.') %jid)
@@ -2070,19 +2070,19 @@ class RosterWindow:
Request subscription to a contact
"""
groups_list = groups or []
- gajim.connections[account].request_subscription(jid, txt, nickname,
- groups_list, auto_auth, gajim.nicks[account])
- contact = gajim.contacts.get_contact_with_highest_priority(account, jid)
+ app.connections[account].request_subscription(jid, txt, nickname,
+ groups_list, auto_auth, app.nicks[account])
+ contact = app.contacts.get_contact_with_highest_priority(account, jid)
if not contact:
keyID = ''
- attached_keys = gajim.config.get_per('accounts', account,
+ attached_keys = app.config.get_per('accounts', account,
'attached_gpg_keys').split()
if jid in attached_keys:
keyID = attached_keys[attached_keys.index(jid) + 1]
- contact = gajim.contacts.create_contact(jid=jid, account=account,
+ contact = app.contacts.create_contact(jid=jid, account=account,
name=nickname, groups=groups_list, show='requested', status='',
ask='none', sub='subscribe', keyID=keyID)
- gajim.contacts.add_contact(account, contact)
+ app.contacts.add_contact(account, contact)
else:
if not _('Not in Roster') in contact.get_shown_groups():
dialogs.InformationDialog(_('Subscription request has been '
@@ -2099,7 +2099,7 @@ class RosterWindow:
"""
Revoke a contact's authorization
"""
- gajim.connections[account].refuse_authorization(jid)
+ app.connections[account].refuse_authorization(jid)
dialogs.InformationDialog(_('Authorization removed'),
_('Now "%s" will always see you as offline.') %jid)
@@ -2107,9 +2107,9 @@ class RosterWindow:
child_iterA = self._get_account_iter(account, self.model)
if child_iterA:
self.model[child_iterA][0] = \
- gajim.interface.jabber_state_images['16'][state]
- if gajim.interface.systray_enabled:
- gajim.interface.systray.change_status(state)
+ app.interface.jabber_state_images['16'][state]
+ if app.interface.systray_enabled:
+ app.interface.systray.change_status(state)
def set_connecting_state(self, account):
self.set_state(account, 'connecting')
@@ -2117,14 +2117,14 @@ class RosterWindow:
def send_status(self, account, status, txt, auto=False, to=None):
if status != 'offline':
if to is None:
- gajim.config.set_per('accounts', account, 'last_status', status)
- gajim.config.set_per('accounts', account, 'last_status_msg',
+ app.config.set_per('accounts', account, 'last_status', status)
+ app.config.set_per('accounts', account, 'last_status_msg',
helpers.to_one_line(txt))
- if gajim.connections[account].connected < 2:
+ if app.connections[account].connected < 2:
self.set_connecting_state(account)
- keyid = gajim.config.get_per('accounts', account, 'keyid')
- if keyid and not gajim.connections[account].gpg:
+ keyid = app.config.get_per('accounts', account, 'keyid')
+ if keyid and not app.connections[account].gpg:
dialogs.WarningDialog(_('OpenPGP is not usable'),
_('Gajim needs python-gnupg >= 0.3.8\n'
'Beware there is an incompatible python package called gnupg.\n'
@@ -2133,7 +2133,7 @@ class RosterWindow:
self.send_status_continue(account, status, txt, auto, to)
def send_pep(self, account, pep_dict):
- connection = gajim.connections[account]
+ connection = app.connections[account]
if 'activity' in pep_dict:
activity = pep_dict['activity']
@@ -2151,58 +2151,58 @@ class RosterWindow:
connection.retract_mood()
def delete_pep(self, jid, account):
- if jid == gajim.get_jid_from_account(account):
- gajim.connections[account].pep = {}
+ if jid == app.get_jid_from_account(account):
+ app.connections[account].pep = {}
self.draw_account(account)
- for contact in gajim.contacts.get_contacts(account, jid):
+ for contact in app.contacts.get_contacts(account, jid):
contact.pep = {}
self.draw_all_pep_types(jid, account)
- ctrl = gajim.interface.msg_win_mgr.get_control(jid, account)
+ ctrl = app.interface.msg_win_mgr.get_control(jid, account)
if ctrl:
ctrl.update_all_pep_types()
def send_status_continue(self, account, status, txt, auto, to):
- if gajim.account_is_connected(account) and not to:
- if status == 'online' and gajim.interface.sleeper.getState() != \
- common.sleepy.STATE_UNKNOWN:
- gajim.sleeper_state[account] = 'online'
- elif gajim.sleeper_state[account] not in ('autoaway', 'autoxa') or \
+ if app.account_is_connected(account) and not to:
+ if status == 'online' and app.interface.sleeper.getState() != \
+ sleepy.STATE_UNKNOWN:
+ app.sleeper_state[account] = 'online'
+ elif app.sleeper_state[account] not in ('autoaway', 'autoxa') or \
status == 'offline':
- gajim.sleeper_state[account] = 'off'
+ app.sleeper_state[account] = 'off'
if to:
- gajim.connections[account].send_custom_status(status, txt, to)
+ app.connections[account].send_custom_status(status, txt, to)
else:
if status in ('invisible', 'offline'):
- self.delete_pep(gajim.get_jid_from_account(account), account)
- was_invisible = gajim.connections[account].connected == \
- gajim.SHOW_LIST.index('invisible')
- gajim.connections[account].change_status(status, txt, auto)
+ self.delete_pep(app.get_jid_from_account(account), account)
+ was_invisible = app.connections[account].connected == \
+ app.SHOW_LIST.index('invisible')
+ app.connections[account].change_status(status, txt, auto)
- if account in gajim.interface.status_sent_to_users:
- gajim.interface.status_sent_to_users[account] = {}
- if account in gajim.interface.status_sent_to_groups:
- gajim.interface.status_sent_to_groups[account] = {}
- for gc_control in gajim.interface.msg_win_mgr.get_controls(
+ if account in app.interface.status_sent_to_users:
+ app.interface.status_sent_to_users[account] = {}
+ if account in app.interface.status_sent_to_groups:
+ app.interface.status_sent_to_groups[account] = {}
+ for gc_control in app.interface.msg_win_mgr.get_controls(
message_control.TYPE_GC) + \
- list(gajim.interface.minimized_controls[account].values()):
+ list(app.interface.minimized_controls[account].values()):
if gc_control.account == account:
- if gajim.gc_connected[account][gc_control.room_jid]:
- gajim.connections[account].send_gc_status(
+ if app.gc_connected[account][gc_control.room_jid]:
+ app.connections[account].send_gc_status(
gc_control.nick, gc_control.room_jid, status, txt,
auto=auto)
if was_invisible and status != 'offline':
# We come back from invisible, join bookmarks
- gajim.interface.auto_join_bookmarks(account)
+ app.interface.auto_join_bookmarks(account)
def chg_contact_status(self, contact, show, status, account):
"""
When a contact changes his or her status
"""
- contact_instances = gajim.contacts.get_contacts(account, contact.jid)
+ contact_instances = app.contacts.get_contacts(account, contact.jid)
contact.show = show
contact.status = status
# name is to show in conversation window
@@ -2217,18 +2217,18 @@ class RosterWindow:
# Remove resource when going offline
if show in ('offline', 'error') and \
not self.contact_has_pending_roster_events(contact, account):
- ctrl = gajim.interface.msg_win_mgr.get_control(fjid, account)
+ ctrl = app.interface.msg_win_mgr.get_control(fjid, account)
if ctrl:
ctrl.update_ui()
ctrl.parent_win.redraw_tab(ctrl)
# keep the contact around, since it's
# already attached to the control
else:
- gajim.contacts.remove_contact(account, contact)
+ app.contacts.remove_contact(account, contact)
- elif contact.jid == gajim.get_jid_from_account(account) and \
+ elif contact.jid == app.get_jid_from_account(account) and \
show in ('offline', 'error'):
- if gajim.config.get('show_self_contact') != 'never':
+ if app.config.get('show_self_contact') != 'never':
# SelfContact went offline. Remove him when last pending
# message was read
self.remove_contact(contact.jid, account, backend=True)
@@ -2236,21 +2236,21 @@ class RosterWindow:
uf_show = helpers.get_uf_show(show)
# print status in chat window and update status/GPG image
- ctrl = gajim.interface.msg_win_mgr.get_control(contact.jid, account)
+ ctrl = app.interface.msg_win_mgr.get_control(contact.jid, account)
if ctrl and ctrl.type_id != message_control.TYPE_GC:
- ctrl.contact = gajim.contacts.get_contact_with_highest_priority(
+ ctrl.contact = app.contacts.get_contact_with_highest_priority(
account, contact.jid)
ctrl.update_status_display(name, uf_show, status)
if contact.resource:
- ctrl = gajim.interface.msg_win_mgr.get_control(fjid, account)
+ ctrl = app.interface.msg_win_mgr.get_control(fjid, account)
if ctrl:
ctrl.update_status_display(name, uf_show, status)
# Delete pep if needed
keep_pep = any(c.show not in ('error', 'offline') for c in
contact_instances)
- if not keep_pep and contact.jid != gajim.get_jid_from_account(account) \
+ if not keep_pep and contact.jid != app.get_jid_from_account(account) \
and not contact.is_groupchat():
self.delete_pep(contact.jid, account)
@@ -2262,15 +2262,15 @@ class RosterWindow:
"""
The core tells us that our status has changed
"""
- if account not in gajim.contacts.get_accounts():
+ if account not in app.contacts.get_accounts():
return
child_iterA = self._get_account_iter(account, self.model)
- if gajim.config.get('show_self_contact') == 'always':
- self_resource = gajim.connections[account].server_resource
- self_contact = gajim.contacts.get_contact(account,
- gajim.get_jid_from_account(account), resource=self_resource)
+ if app.config.get('show_self_contact') == 'always':
+ self_resource = app.connections[account].server_resource
+ self_contact = app.contacts.get_contact(account,
+ app.get_jid_from_account(account), resource=self_resource)
if self_contact:
- status = gajim.connections[account].status
+ status = app.connections[account].status
self.chg_contact_status(self_contact, show, status, account)
self.set_account_status_icon(account)
if show == 'offline':
@@ -2284,11 +2284,11 @@ class RosterWindow:
# No need to redraw contacts if we're quitting
if child_iterA:
self.model[child_iterA][Column.AVATAR_PIXBUF] = empty_pixbuf
- if account in gajim.con_types:
- gajim.con_types[account] = None
- for jid in list(gajim.contacts.get_jid_list(account)):
- lcontact = gajim.contacts.get_contacts(account, jid)
- ctrl = gajim.interface.msg_win_mgr.get_gc_control(jid,
+ if account in app.con_types:
+ app.con_types[account] = None
+ for jid in list(app.contacts.get_jid_list(account)):
+ lcontact = app.contacts.get_contacts(account, jid)
+ ctrl = app.interface.msg_win_mgr.get_gc_control(jid,
account)
for contact in [c for c in lcontact if (
(c.show != 'offline' or c.is_transport()) and not ctrl)]:
@@ -2307,15 +2307,15 @@ class RosterWindow:
"""
empty_pep = {'activity': '', 'subactivity': '', 'activity_text': '',
'mood': '', 'mood_text': ''}
- if show in gajim.config.get_per('defaultstatusmsg'):
- if gajim.config.get_per('defaultstatusmsg', show, 'enabled'):
- msg = gajim.config.get_per('defaultstatusmsg', show, 'message')
+ if show in app.config.get_per('defaultstatusmsg'):
+ if app.config.get_per('defaultstatusmsg', show, 'enabled'):
+ msg = app.config.get_per('defaultstatusmsg', show, 'message')
msg = helpers.from_one_line(msg)
on_response(msg, empty_pep)
return
- if not always_ask and ((show == 'online' and not gajim.config.get(
+ if not always_ask and ((show == 'online' and not app.config.get(
'ask_online_status')) or (show in ('offline', 'invisible') and not \
- gajim.config.get('ask_offline_status'))):
+ app.config.get('ask_offline_status'))):
on_response('', empty_pep)
return
@@ -2364,12 +2364,12 @@ class RosterWindow:
liststore.prepend(['SEPARATOR', None, '', True])
status_combobox_text = uf_show + ' (' + _("desync'ed") +')'
liststore.prepend([status_combobox_text,
- gajim.interface.jabber_state_images['16'][show], show, False])
+ app.interface.jabber_state_images['16'][show], show, False])
self.status_combobox.set_active(0)
- gajim.interface.change_awn_icon_status(show)
+ app.interface.change_awn_icon_status(show)
self.combobox_callback_active = True
- if gajim.interface.systray_enabled:
- gajim.interface.systray.change_status(show)
+ if app.interface.systray_enabled:
+ app.interface.systray.change_status(show)
def get_show(self, lcontact):
prio = lcontact[0].priority
@@ -2381,11 +2381,11 @@ class RosterWindow:
return show
def on_message_window_delete(self, win_mgr, msg_win):
- if gajim.config.get('one_message_window') == 'always_with_roster':
+ if app.config.get('one_message_window') == 'always_with_roster':
self.show_roster_vbox(True)
gtkgui_helpers.resize_window(self.window,
- gajim.config.get('roster_width'),
- gajim.config.get('roster_height'))
+ app.config.get('roster_width'),
+ app.config.get('roster_height'))
def close_all_from_dict(self, dic):
"""
@@ -2405,9 +2405,9 @@ class RosterWindow:
Close all the windows from an account. If force is True, do not ask
confirmation before closing chat/gc windows
"""
- if account in gajim.interface.instances:
- self.close_all_from_dict(gajim.interface.instances[account])
- for ctrl in gajim.interface.msg_win_mgr.get_controls(acct=account):
+ if account in app.interface.instances:
+ self.close_all_from_dict(app.interface.instances[account])
+ for ctrl in app.interface.msg_win_mgr.get_controls(acct=account):
ctrl.parent_win.remove_tab(ctrl, ctrl.parent_win.CLOSE_CLOSE_BUTTON,
force=force)
@@ -2415,20 +2415,20 @@ class RosterWindow:
"""
Main window X button was clicked
"""
- if not gajim.config.get('quit_on_roster_x_button') and (
- (gajim.interface.systray_enabled and gajim.config.get('trayicon') != \
- 'on_event') or gajim.config.get('allow_hide_roster')):
- if gajim.config.get('save-roster-position'):
+ if not app.config.get('quit_on_roster_x_button') and (
+ (app.interface.systray_enabled and app.config.get('trayicon') != \
+ 'on_event') or app.config.get('allow_hide_roster')):
+ if app.config.get('save-roster-position'):
x, y = self.window.get_position()
- gajim.config.set('roster_x-position', x)
- gajim.config.set('roster_y-position', y)
+ app.config.set('roster_x-position', x)
+ app.config.set('roster_y-position', y)
self.window.iconify()
- elif gajim.config.get('quit_on_roster_x_button'):
+ elif app.config.get('quit_on_roster_x_button'):
self.on_quit_request()
else:
def on_ok(checked):
if checked:
- gajim.config.set('quit_on_roster_x_button', True)
+ app.config.set('quit_on_roster_x_button', True)
self.on_quit_request()
dialogs.ConfirmationDialogCheck(_('Really quit Gajim?'),
_('Are you sure you want to quit Gajim?'),
@@ -2443,30 +2443,30 @@ class RosterWindow:
# in case show_roster_on_start is False and roster is never shown
# window.window is None
if self.window.get_window() is not None:
- if gajim.config.get('save-roster-position'):
+ if app.config.get('save-roster-position'):
x, y = self.window.get_window().get_root_origin()
- gajim.config.set('roster_x-position', x)
- gajim.config.set('roster_y-position', y)
+ app.config.set('roster_x-position', x)
+ app.config.set('roster_y-position', y)
width, height = self.window.get_size()
- gajim.config.set('roster_width', width)
- gajim.config.set('roster_height', height)
+ app.config.set('roster_width', width)
+ app.config.set('roster_height', height)
if not self.xml.get_object('roster_vbox2').get_property('visible'):
# The roster vbox is hidden, so the message window is larger
# then we want to save (i.e. the window will grow every startup)
# so adjust.
msgwin_width_adjust = -1 * width
- gajim.config.set('last_roster_visible',
+ app.config.set('last_roster_visible',
self.window.get_property('visible'))
- gajim.interface.msg_win_mgr.save_opened_controls()
- gajim.interface.msg_win_mgr.shutdown(msgwin_width_adjust)
+ app.interface.msg_win_mgr.save_opened_controls()
+ app.interface.msg_win_mgr.shutdown(msgwin_width_adjust)
- gajim.config.set('collapsed_rows', '\t'.join(self.collapsed_rows))
- gajim.interface.save_config()
- for account in gajim.connections:
- gajim.connections[account].quit(True)
+ app.config.set('collapsed_rows', '\t'.join(self.collapsed_rows))
+ app.interface.save_config()
+ for account in app.connections:
+ app.connections[account].quit(True)
self.close_all(account)
- if gajim.interface.systray_enabled:
- gajim.interface.hide_systray()
+ if app.interface.systray_enabled:
+ app.interface.hide_systray()
self.save_done = True
def quit_gtkgui_interface(self):
@@ -2482,10 +2482,10 @@ class RosterWindow:
Terminate all sessions and send offline to all connected account. We do
NOT really quit gajim here
"""
- accounts = list(gajim.connections.keys())
+ accounts = list(app.connections.keys())
get_msg = False
for acct in accounts:
- if gajim.connections[acct].connected:
+ if app.connections[acct].connected:
get_msg = True
break
@@ -2493,7 +2493,7 @@ class RosterWindow:
self.quit_on_next_offline = 0
accounts_to_disconnect = []
for acct in accounts:
- if gajim.connections[acct].connected > 1:
+ if app.connections[acct].connected > 1:
self.quit_on_next_offline += 1
accounts_to_disconnect.append(acct)
@@ -2508,8 +2508,8 @@ class RosterWindow:
def on_continue2(message, pep_dict):
# check if there is an active file transfer
- from common.protocol.bytestream import (is_transfer_active)
- files_props = gajim.interface.instances['file_transfers'].\
+ from gajim.common.protocol.bytestream import (is_transfer_active)
+ files_props = app.interface.instances['file_transfers'].\
files_props
transfer_active = False
for x in files_props:
@@ -2531,19 +2531,19 @@ class RosterWindow:
# user pressed Cancel to change status message dialog
return
# check if we have unread messages
- unread = gajim.events.get_nb_events()
- if not gajim.config.get('notify_on_all_muc_messages'):
- unread_not_to_notify = gajim.events.get_nb_events(
+ unread = app.events.get_nb_events()
+ if not app.config.get('notify_on_all_muc_messages'):
+ unread_not_to_notify = app.events.get_nb_events(
['printed_gc_msg'])
unread -= unread_not_to_notify
# check if we have recent messages
recent = False
- for win in gajim.interface.msg_win_mgr.windows():
+ for win in app.interface.msg_win_mgr.windows():
for ctrl in win.controls():
fjid = ctrl.get_full_jid()
- if fjid in gajim.last_message_time[ctrl.account]:
- if time.time() - gajim.last_message_time[ctrl.account][
+ if fjid in app.last_message_time[ctrl.account]:
+ if time.time() - app.last_message_time[ctrl.account][
fjid] < 2:
recent = True
break
@@ -2571,9 +2571,9 @@ class RosterWindow:
if obj.need_add_in_roster:
self.add_contact(jid, account)
- jid_list = gajim.contacts.get_jid_list(account)
- 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:
+ jid_list = app.contacts.get_jid_list(account)
+ if jid in jid_list or jid == app.get_jid_from_account(account):
+ if not app.jid_is_transport(jid) and len(obj.contact_list) == 1:
if obj.old_show == 0 and obj.new_show > 1:
GLib.timeout_add_seconds(5, self.remove_newly_added, jid,
account)
@@ -2585,38 +2585,38 @@ class RosterWindow:
if obj.need_redraw:
self.draw_contact(jid, account)
- if gajim.jid_is_transport(jid) and jid in jid_list:
+ if app.jid_is_transport(jid) and jid in jid_list:
# It must be an agent
# Update existing iter and group counting
self.draw_contact(jid, account)
self.draw_group(_('Transports'), account)
- if obj.new_show > 1 and jid in gajim.transport_avatar[account]:
+ if obj.new_show > 1 and jid in app.transport_avatar[account]:
# transport just signed in.
# request avatars
- for jid_ in gajim.transport_avatar[account][jid]:
+ for jid_ in app.transport_avatar[account][jid]:
obj.conn.request_vcard(jid_)
if obj.contact:
self.chg_contact_status(obj.contact, obj.show, obj.status, account)
if obj.popup:
- ctrl = gajim.interface.msg_win_mgr.search_control(jid, account)
+ ctrl = app.interface.msg_win_mgr.search_control(jid, account)
if 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)):
+ ctrl = app.interface.new_chat(obj.contact, account)
+ if len(app.events.get_events(account, obj.jid)):
ctrl.read_queue()
def _nec_gc_presence_received(self, obj):
account = obj.conn.name
- if obj.room_jid in gajim.interface.minimized_controls[account]:
- gc_ctrl = gajim.interface.minimized_controls[account][obj.room_jid]
+ if obj.room_jid in app.interface.minimized_controls[account]:
+ gc_ctrl = app.interface.minimized_controls[account][obj.room_jid]
else:
return
if obj.nick == gc_ctrl.nick:
- contact = gajim.contacts.get_contact_with_highest_priority(account,
+ contact = app.contacts.get_contact_with_highest_priority(account,
obj.room_jid)
if contact:
contact.show = obj.show
@@ -2630,34 +2630,34 @@ class RosterWindow:
self.fire_up_unread_messages_events(obj.conn.name)
else:
# add self contact
- if gajim.config.get('show_self_contact') == 'always':
+ if app.config.get('show_self_contact') == 'always':
account = obj.conn.name
- self_jid = gajim.get_jid_from_account(account)
- if self_jid not in gajim.contacts.get_jid_list(account):
+ self_jid = app.get_jid_from_account(account)
+ if self_jid not in app.contacts.get_jid_list(account):
resource = ''
- if gajim.connections[account].server_resource:
- resource = gajim.connections[account].server_resource
- contact = gajim.contacts.create_contact(jid=self_jid,
- account=account, name=gajim.nicks[account],
+ if app.connections[account].server_resource:
+ resource = app.connections[account].server_resource
+ contact = app.contacts.create_contact(jid=self_jid,
+ account=account, name=app.nicks[account],
groups=['self_contact'], show='offline', sub='both',
ask='none', resource=resource)
- gajim.contacts.add_contact(account, contact)
+ app.contacts.add_contact(account, contact)
self.add_contact(self_jid, account)
- if gajim.config.get('remember_opened_chat_controls'):
+ if app.config.get('remember_opened_chat_controls'):
account = obj.conn.name
- controls = gajim.config.get_per('accounts', account,
+ controls = app.config.get_per('accounts', account,
'opened_chat_controls')
if controls:
for jid in controls.split(','):
contact = \
- gajim.contacts.get_contact_with_highest_priority(
+ app.contacts.get_contact_with_highest_priority(
account, jid)
if not contact:
contact = self.add_to_not_in_the_roster(account,
jid)
- gajim.interface.on_open_chat_window(None, contact,
+ app.interface.on_open_chat_window(None, contact,
account)
- gajim.config.set_per('accounts', account,
+ app.config.set_per('accounts', account,
'opened_chat_controls', '')
GLib.idle_add(self.refilter_shown_roster_items)
@@ -2672,7 +2672,7 @@ class RosterWindow:
model = self.status_combobox.get_model()
if obj.show == 'offline':
# sensitivity for this menuitem
- if gajim.get_number_of_connected_accounts() == 0:
+ if app.get_number_of_connected_accounts() == 0:
model[self.status_message_menuitem_iter][3] = False
self.application.set_account_actions_state(obj.conn.name)
else:
@@ -2688,7 +2688,7 @@ class RosterWindow:
self.remove_contact(jid, obj.conn.name, backend=True)
def _nec_pep_received(self, obj):
- if obj.jid == common.gajim.get_jid_from_account(obj.conn.name):
+ if obj.jid == app.get_jid_from_account(obj.conn.name):
self.draw_account(obj.conn.name)
if obj.pep_type == 'nickname':
@@ -2703,7 +2703,7 @@ class RosterWindow:
self.draw_avatar(obj.jid, obj.conn.name)
def _nec_gc_subject_received(self, obj):
- contact = gajim.contacts.get_contact_with_highest_priority(
+ contact = app.contacts.get_contact_with_highest_priority(
obj.conn.name, obj.room_jid)
if contact:
contact.status = obj.subject
@@ -2735,7 +2735,7 @@ class RosterWindow:
typ = 'error'
if obj.forwarded and obj.sent:
typ = 'out'
- if obj.jid != gajim.get_jid_from_account(obj.conn.name):
+ if obj.jid != app.get_jid_from_account(obj.conn.name):
xep0184_id = obj.id_
obj.session.control.print_conversation(obj.msgtxt, typ,
@@ -2748,12 +2748,12 @@ class RosterWindow:
end = obj.session.control.was_at_the_end
if not pw or (pw.get_active_control() and obj.session.control \
== pw.get_active_control() and pw.is_active() and end):
- gajim.logger.set_read_messages([obj.msg_log_id])
+ app.logger.set_read_messages([obj.msg_log_id])
elif obj.popup and obj.mtype == 'chat':
- contact = gajim.contacts.get_contact(obj.conn.name, obj.jid)
- obj.session.control = gajim.interface.new_chat(contact,
+ contact = app.contacts.get_contact(obj.conn.name, obj.jid)
+ obj.session.control = app.interface.new_chat(contact,
obj.conn.name, session=obj.session)
- if len(gajim.events.get_events(obj.conn.name, obj.fjid)):
+ if len(app.events.get_events(obj.conn.name, obj.fjid)):
obj.session.control.read_queue()
if obj.show_in_roster:
@@ -2761,11 +2761,11 @@ class RosterWindow:
self.show_title() # we show the * or [n]
# Select the big brother contact in roster, it's visible because it
# has events.
- family = gajim.contacts.get_metacontacts_family(obj.conn.name,
+ family = app.contacts.get_metacontacts_family(obj.conn.name,
obj.jid)
if family:
nearby_family, bb_jid, bb_account = \
- gajim.contacts.get_nearby_family_and_big_brother(family,
+ app.contacts.get_nearby_family_and_big_brother(family,
obj.conn.name)
else:
bb_jid, bb_account = obj.jid, obj.conn.name
@@ -2777,29 +2777,29 @@ class RosterWindow:
################################################################################
def on_bookmark_menuitem_activate(self, widget, account, bookmark):
- gajim.interface.join_gc_room(account, bookmark['jid'], bookmark['nick'],
+ app.interface.join_gc_room(account, bookmark['jid'], bookmark['nick'],
bookmark['password'])
def on_info(self, widget, contact, account):
"""
Call vcard_information_window class to display contact's information
"""
- if gajim.connections[account].is_zeroconf:
+ if app.connections[account].is_zeroconf:
self.on_info_zeroconf(widget, contact, account)
return
- info = gajim.interface.instances[account]['infos']
+ info = app.interface.instances[account]['infos']
if contact.jid in info:
info[contact.jid].window.present()
else:
info[contact.jid] = vcard.VcardWindow(contact, account)
def on_info_zeroconf(self, widget, contact, account):
- info = gajim.interface.instances[account]['infos']
+ info = app.interface.instances[account]['infos']
if contact.jid in info:
info[contact.jid].window.present()
else:
- contact = gajim.contacts.get_first_contact_from_jid(account,
+ contact = app.contacts.get_first_contact_from_jid(account,
contact.jid)
if contact.show in ('offline', 'error'):
# don't show info on offline contacts
@@ -2810,13 +2810,13 @@ class RosterWindow:
"""
When an agent is requested to log in or off
"""
- gajim.connections[account].send_agent_status(jid, state)
+ app.connections[account].send_agent_status(jid, state)
def on_edit_agent(self, widget, contact, account):
"""
When we want to modify the agent registration
"""
- gajim.connections[account].request_register_agent_info(contact.jid)
+ app.connections[account].request_register_agent_info(contact.jid)
def on_remove_agent(self, widget, list_):
"""
@@ -2824,25 +2824,25 @@ class RosterWindow:
account) tuple
"""
for (contact, account) in list_:
- if gajim.config.get_per('accounts', account, 'hostname') == \
+ if app.config.get_per('accounts', account, 'hostname') == \
contact.jid:
# We remove the server contact
# remove it from treeview
- gajim.connections[account].unsubscribe(contact.jid)
+ app.connections[account].unsubscribe(contact.jid)
self.remove_contact(contact.jid, account, backend=True)
return
def remove(list_):
for (contact, account) in list_:
full_jid = contact.get_full_jid()
- gajim.connections[account].unsubscribe_agent(full_jid)
+ app.connections[account].unsubscribe_agent(full_jid)
# remove transport from treeview
self.remove_contact(contact.jid, account, backend=True)
# Check if there are unread events from some contacts
has_unread_events = False
for (contact, account) in list_:
- for jid in gajim.events.get_events(account):
+ for jid in app.events.get_events(account):
if jid.endswith(contact.jid):
has_unread_events = True
break
@@ -2867,7 +2867,7 @@ class RosterWindow:
def _nec_blocking(self, obj):
if obj.unblock_all:
- jids = gajim.contacts.get_jid_list(obj.conn.name)
+ jids = app.contacts.get_jid_list(obj.conn.name)
self._idle_draw_jids_of_account(jids, obj.conn.name)
else:
for jid in obj.blocked_jids + obj.unblocked_jids:
@@ -2882,19 +2882,19 @@ class RosterWindow:
if msg is None:
# user pressed Cancel to change status message dialog
return
- accounts = set(i[1] for i in list_ if (gajim.connections[i[1]].\
- privacy_rules_supported or (group is None and gajim.\
+ accounts = set(i[1] for i in list_ if (app.connections[i[1]].\
+ privacy_rules_supported or (group is None and app.\
connections[i[1]].blocking_supported)))
if group is None:
for acct in accounts:
l_ = [i[0] for i in list_ if i[1] == acct]
- gajim.connections[acct].block_contacts(l_, msg)
+ app.connections[acct].block_contacts(l_, msg)
for contact in l_:
self.draw_contact(contact.jid, acct)
else:
for acct in accounts:
l_ = [i[0] for i in list_ if i[1] == acct]
- gajim.connections[acct].block_group(group, l_, msg)
+ app.connections[acct].block_group(group, l_, msg)
self.draw_group(group, acct)
for contact in l_:
self.draw_contact(contact.jid, acct)
@@ -2902,12 +2902,12 @@ class RosterWindow:
def _block_it(is_checked=None):
if is_checked is not None: # dialog has been shown
if is_checked: # user does not want to be asked again
- gajim.config.set('confirm_block', 'no')
+ app.config.set('confirm_block', 'no')
else:
- gajim.config.set('confirm_block', 'yes')
+ app.config.set('confirm_block', 'yes')
self.get_status_message('offline', on_continue, show_pep=False)
- confirm_block = gajim.config.get('confirm_block')
+ confirm_block = app.config.get('confirm_block')
if confirm_block == 'no':
_block_it()
return
@@ -2922,40 +2922,40 @@ class RosterWindow:
"""
When clicked on the 'unblock' button in context menu.
"""
- accounts = set(i[1] for i in list_ if (gajim.connections[i[1]].\
- privacy_rules_supported or (group is None and gajim.\
+ accounts = set(i[1] for i in list_ if (app.connections[i[1]].\
+ privacy_rules_supported or (group is None and app.\
connections[i[1]].blocking_supported)))
if group is None:
for acct in accounts:
l_ = [i[0] for i in list_ if i[1] == acct]
- gajim.connections[acct].unblock_contacts(l_)
+ app.connections[acct].unblock_contacts(l_)
for contact in l_:
self.draw_contact(contact.jid, acct)
else:
for acct in accounts:
l_ = [i[0] for i in list_ if i[1] == acct]
- gajim.connections[acct].unblock_group(group, l_)
+ app.connections[acct].unblock_group(group, l_)
self.draw_group(group, acct)
for contact in l_:
self.draw_contact(contact.jid, acct)
for acct in accounts:
- if 'privacy_list_block' in gajim.interface.instances[acct]:
- del gajim.interface.instances[acct]['privacy_list_block']
+ if 'privacy_list_block' in app.interface.instances[acct]:
+ del app.interface.instances[acct]['privacy_list_block']
def on_rename(self, widget, row_type, jid, account):
# this function is called either by F2 or by Rename menuitem
- if 'rename' in gajim.interface.instances:
- gajim.interface.instances['rename'].dialog.present()
+ if 'rename' in app.interface.instances:
+ app.interface.instances['rename'].dialog.present()
return
# account is offline, don't allow to rename
- if gajim.connections[account].connected < 2:
+ if app.connections[account].connected < 2:
return
if row_type in ('contact', 'agent'):
# it's jid
title = _('Rename Contact')
message = _('Enter a new nickname for contact %s') % jid
- old_text = gajim.contacts.get_contact_with_highest_priority(account,
+ old_text = app.contacts.get_contact_with_highest_priority(account,
jid).name
elif row_type == 'group':
if jid in helpers.special_groups + (_('General'),):
@@ -2966,22 +2966,22 @@ class RosterWindow:
GLib.markup_escape_text(jid)
def on_renamed(new_text, account, row_type, jid, old_text):
- if 'rename' in gajim.interface.instances:
- del gajim.interface.instances['rename']
+ if 'rename' in app.interface.instances:
+ del app.interface.instances['rename']
if row_type in ('contact', 'agent'):
if old_text == new_text:
return
- contacts = gajim.contacts.get_contacts(account, jid)
+ contacts = app.contacts.get_contacts(account, jid)
for contact in contacts:
contact.name = new_text
- gajim.connections[account].update_contact(jid, new_text, \
+ app.connections[account].update_contact(jid, new_text, \
contacts[0].groups)
self.draw_contact(jid, account)
# Update opened chats
- for ctrl in gajim.interface.msg_win_mgr.get_controls(jid,
+ for ctrl in app.interface.msg_win_mgr.get_controls(jid,
account):
ctrl.update_ui()
- win = gajim.interface.msg_win_mgr.get_window(jid, account)
+ win = app.interface.msg_win_mgr.get_window(jid, account)
win.redraw_tab(ctrl)
win.show_title()
elif row_type == 'group':
@@ -2989,22 +2989,22 @@ class RosterWindow:
self.rename_group(old_text, new_text, account)
def on_canceled():
- if 'rename' in gajim.interface.instances:
- del gajim.interface.instances['rename']
+ if 'rename' in app.interface.instances:
+ del app.interface.instances['rename']
- gajim.interface.instances['rename'] = dialogs.InputDialog(title,
+ app.interface.instances['rename'] = dialogs.InputDialog(title,
message, old_text, False, (on_renamed, account, row_type, jid,
old_text), on_canceled, transient_for=self.window)
def on_remove_group_item_activated(self, widget, group, account):
def on_ok(checked):
- for contact in gajim.contacts.get_contacts_from_group(account,
+ for contact in app.contacts.get_contacts_from_group(account,
group):
if not checked:
self.remove_contact_from_groups(contact.jid, account,
[group])
else:
- gajim.connections[account].unsubscribe(contact.jid)
+ app.connections[account].unsubscribe(contact.jid)
self.remove_contact(contact.jid, account, backend=True)
dialogs.ConfirmationDialogCheck(_('Remove Group'),
@@ -3013,7 +3013,7 @@ class RosterWindow:
on_response_ok=on_ok)
def on_assign_pgp_key(self, widget, contact, account):
- attached_keys = gajim.config.get_per('accounts', account,
+ attached_keys = app.config.get_per('accounts', account,
'attached_gpg_keys').split()
keys = {}
keyID = _('None')
@@ -3021,7 +3021,7 @@ class RosterWindow:
keys[attached_keys[2*i]] = attached_keys[2*i+1]
if attached_keys[2*i] == contact.jid:
keyID = attached_keys[2*i+1]
- public_keys = gajim.connections[account].ask_gpg_keys()
+ public_keys = app.connections[account].ask_gpg_keys()
public_keys[_('None')] = _('None')
def on_key_selected(keyID):
@@ -3035,16 +3035,16 @@ class RosterWindow:
keyID = keyID[0]
keys[contact.jid] = keyID
- ctrl = gajim.interface.msg_win_mgr.get_control(contact.jid, account)
+ ctrl = app.interface.msg_win_mgr.get_control(contact.jid, account)
if ctrl:
ctrl.update_ui()
keys_str = ''
for jid in keys:
keys_str += jid + ' ' + keys[jid] + ' '
- gajim.config.set_per('accounts', account, 'attached_gpg_keys',
+ app.config.set_per('accounts', account, 'attached_gpg_keys',
keys_str)
- for u in gajim.contacts.get_contacts(account, contact.jid):
+ for u in app.contacts.get_contacts(account, contact.jid):
u.keyID = helpers.prepare_and_validate_gpg_keyID(account,
contact.jid, keyID)
@@ -3079,14 +3079,14 @@ class RosterWindow:
msg = str(msg)
dialogs.ErrorDialog(_('Could not load image'), msg)
return
- gajim.interface.save_avatar_files(contact.jid, pixbuf, local=True)
+ app.interface.save_avatar_files(contact.jid, pixbuf, local=True)
dlg.destroy()
self.update_avatar_in_gui(contact.jid, account)
def on_clear(widget):
dlg.destroy()
# Delete file:
- gajim.interface.remove_avatar_files(contact.jid, local=True)
+ app.interface.remove_avatar_files(contact.jid, local=True)
self.update_avatar_in_gui(contact.jid, account)
dlg = dialogs.AvatarChooserDialog(on_response_ok=on_ok,
@@ -3099,19 +3099,19 @@ class RosterWindow:
"""
When history menuitem is activated: call log window
"""
- if 'logs' in gajim.interface.instances:
- gajim.interface.instances['logs'].window.present()
- gajim.interface.instances['logs'].open_history(contact.jid, account)
+ if 'logs' in app.interface.instances:
+ app.interface.instances['logs'].window.present()
+ app.interface.instances['logs'].open_history(contact.jid, account)
else:
- gajim.interface.instances['logs'] = history_window.\
+ app.interface.instances['logs'] = history_window.\
HistoryWindow(contact.jid, account)
def on_disconnect(self, widget, jid, account):
"""
When disconnect menuitem is activated: disconect from room
"""
- if jid in gajim.interface.minimized_controls[account]:
- ctrl = gajim.interface.minimized_controls[account][jid]
+ if jid in app.interface.minimized_controls[account]:
+ ctrl = app.interface.minimized_controls[account][jid]
ctrl.shutdown()
ctrl.got_disconnected()
self.remove_groupchat(jid, account)
@@ -3120,10 +3120,10 @@ class RosterWindow:
"""
When reconnect menuitem is activated: join the room
"""
- if jid in gajim.interface.minimized_controls[account]:
- ctrl = gajim.interface.minimized_controls[account][jid]
- gajim.interface.join_gc_room(account, jid, ctrl.nick,
- gajim.gc_passwords.get(jid, ''))
+ if jid in app.interface.minimized_controls[account]:
+ ctrl = app.interface.minimized_controls[account][jid]
+ app.interface.join_gc_room(account, jid, ctrl.nick,
+ app.gc_passwords.get(jid, ''))
def on_send_single_message_menuitem_activate(self, widget, account,
contact=None):
@@ -3133,13 +3133,13 @@ class RosterWindow:
dialogs.SingleMessageWindow(account, contact, 'send')
else:
jid = contact.jid
- if contact.jid == gajim.get_jid_from_account(account):
+ if contact.jid == app.get_jid_from_account(account):
jid += '/' + contact.resource
dialogs.SingleMessageWindow(account, jid, 'send')
def on_send_file_menuitem_activate(self, widget, contact, account,
resource=None):
- gajim.interface.instances['file_transfers'].show_file_send_request(
+ app.interface.instances['file_transfers'].show_file_send_request(
account, contact)
def on_add_special_notification_menuitem_activate(self, widget, jid):
@@ -3161,17 +3161,17 @@ class RosterWindow:
if account not in account_list:
account_list.append(account)
# transform None in 'jabber'
- type_ = gajim.get_transport_name_from_jid(jid_list[0]) or 'jabber'
+ type_ = app.get_transport_name_from_jid(jid_list[0]) or 'jabber'
for account in account_list:
- if gajim.connections[account].muc_jid[type_]:
+ if app.connections[account].muc_jid[type_]:
# create the room on this muc server
- if 'join_gc' in gajim.interface.instances[account]:
- gajim.interface.instances[account]['join_gc'].window.\
+ if 'join_gc' in app.interface.instances[account]:
+ app.interface.instances[account]['join_gc'].window.\
destroy()
try:
- gajim.interface.instances[account]['join_gc'] = \
+ app.interface.instances[account]['join_gc'] = \
dialogs.JoinGroupchatWindow(account,
- gajim.connections[account].muc_jid[type_],
+ app.connections[account].muc_jid[type_],
automatic = {'invities': jid_list})
except GajimGeneralException:
continue
@@ -3187,8 +3187,8 @@ class RosterWindow:
contact_jid = contact.jid
if resource: # we MUST have one contact only in list_
contact_jid += '/' + resource
- gajim.connections[room_account].send_invite(room_jid, contact_jid)
- gc_control = gajim.interface.msg_win_mgr.get_gc_control(room_jid,
+ app.connections[room_account].send_invite(room_jid, contact_jid)
+ gc_control = app.interface.msg_win_mgr.get_gc_control(room_jid,
room_account)
if gc_control:
gc_control.print_conversation(
@@ -3203,19 +3203,19 @@ class RosterWindow:
"""
When a groupchat is maximized
"""
- if not jid in gajim.interface.minimized_controls[account]:
+ if not jid in app.interface.minimized_controls[account]:
# Already opened?
- gc_control = gajim.interface.msg_win_mgr.get_gc_control(jid,
+ gc_control = app.interface.msg_win_mgr.get_gc_control(jid,
account)
if gc_control:
- mw = gajim.interface.msg_win_mgr.get_window(jid, account)
+ mw = app.interface.msg_win_mgr.get_window(jid, account)
mw.set_active_tab(gc_control)
mw.window.get_window().focus(Gtk.get_current_event_time())
return
- ctrl = gajim.interface.minimized_controls[account][jid]
- mw = gajim.interface.msg_win_mgr.get_window(jid, account)
+ ctrl = app.interface.minimized_controls[account][jid]
+ mw = app.interface.msg_win_mgr.get_window(jid, account)
if not mw:
- mw = gajim.interface.msg_win_mgr.create_window(ctrl.contact,
+ mw = app.interface.msg_win_mgr.create_window(ctrl.contact,
ctrl.account, ctrl.type_id)
id_ = mw.window.connect('motion-notify-event',
ctrl._on_window_motion_notify)
@@ -3228,19 +3228,19 @@ class RosterWindow:
self.remove_groupchat(jid, account)
def on_edit_account(self, widget, account):
- if 'accounts' in gajim.interface.instances:
- gajim.interface.instances['accounts'].window.present()
+ if 'accounts' in app.interface.instances:
+ app.interface.instances['accounts'].window.present()
else:
- gajim.interface.instances['accounts'] = config.AccountsWindow()
- gajim.interface.instances['accounts'].select_account(account)
+ app.interface.instances['accounts'] = config.AccountsWindow()
+ app.interface.instances['accounts'].select_account(account)
def on_open_gmail_inbox(self, widget, account):
- url = gajim.connections[account].gmail_url
+ url = app.connections[account].gmail_url
if url:
helpers.launch_browser_mailer('url', url)
def on_change_status_message_activate(self, widget, account):
- show = gajim.SHOW_LIST[gajim.connections[account].connected]
+ show = app.SHOW_LIST[app.connections[account].connected]
def on_response(message, pep_dict):
if message is None: # None is if user pressed Cancel
return
@@ -3280,7 +3280,7 @@ class RosterWindow:
type_ = model[list_of_paths[0]][Column.TYPE]
account = model[list_of_paths[0]][Column.ACCOUNT]
if type_ in ('account', 'group', 'self_contact') or \
- account == gajim.ZEROCONF_ACC_NAME:
+ account == app.ZEROCONF_ACC_NAME:
return
list_ = []
for path in list_of_paths:
@@ -3288,9 +3288,9 @@ class RosterWindow:
return
jid = model[path][Column.JID]
account = model[path][Column.ACCOUNT]
- if not gajim.account_is_connected(account):
+ if not app.account_is_connected(account):
continue
- contact = gajim.contacts.get_contact_with_highest_priority(
+ contact = app.contacts.get_contact_with_highest_priority(
account, jid)
list_.append((contact, account))
if not list_:
@@ -3344,7 +3344,7 @@ class RosterWindow:
return False
if event.button == 1: # Left click
- if gajim.single_click and not event.get_state() & Gdk.ModifierType.SHIFT_MASK and \
+ if app.single_click and not event.get_state() & Gdk.ModifierType.SHIFT_MASK and \
not event.get_state() & Gdk.ModifierType.CONTROL_MASK:
# Check if button has been pressed on the same row
if self.clicked_path == path:
@@ -3356,16 +3356,16 @@ class RosterWindow:
if modifier & Gdk.ModifierType.CONTROL_MASK:
if keyval == Gdk.KEY_s: # CTRL + s
model = self.status_combobox.get_model()
- accounts = list(gajim.connections.keys())
+ accounts = list(app.connections.keys())
status = model[self.previous_status_combobox_active][2]
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,
+ if not app.config.get_per('accounts', account,
'sync_with_global_status'):
continue
- current_show = gajim.SHOW_LIST[
- gajim.connections[account].connected]
+ current_show = app.SHOW_LIST[
+ app.connections[account].connected]
self.send_status(account, current_show, message)
self.send_pep(account, pep_dict)
dialogs.ChangeStatusMessageDialog(on_response, status)
@@ -3407,7 +3407,7 @@ class RosterWindow:
elif type_ == 'account':
account = model[path][Column.ACCOUNT]
if account != 'all':
- show = gajim.connections[account].connected
+ show = app.connections[account].connected
if show > 1: # We are connected
self.on_change_status_message_activate(widget, account)
return True
@@ -3417,11 +3417,11 @@ class RosterWindow:
def on_response(message, pep_dict):
if message is None:
return True
- for acct in gajim.connections:
- if not gajim.config.get_per('accounts', acct,
+ for acct in app.connections:
+ if not app.config.get_per('accounts', acct,
'sync_with_global_status'):
continue
- current_show = gajim.SHOW_LIST[gajim.connections[acct].\
+ current_show = app.SHOW_LIST[app.connections[acct].\
connected]
self.send_status(acct, current_show, message)
self.send_pep(acct, pep_dict)
@@ -3432,11 +3432,11 @@ class RosterWindow:
model = self.modelfilter
type_ = model[path][Column.TYPE]
# x_min is the x start position of status icon column
- if gajim.config.get('avatar_position_in_roster') == 'left':
- x_min = gajim.config.get('roster_avatar_width')
+ if app.config.get('avatar_position_in_roster') == 'left':
+ x_min = app.config.get('roster_avatar_width')
else:
x_min = 0
- if gajim.single_click and not event.get_state() & Gdk.ModifierType.SHIFT_MASK and \
+ if app.single_click and not event.get_state() & Gdk.ModifierType.SHIFT_MASK and \
not event.get_state() & Gdk.ModifierType.CONTROL_MASK:
# Don't handle double click if we press icon of a metacontact
titer = model.get_iter(path)
@@ -3490,7 +3490,7 @@ class RosterWindow:
remove_auth = False
for (contact, account) in list_:
if _('Not in Roster') not in contact.get_shown_groups():
- gajim.connections[account].unsubscribe(contact.jid,
+ app.connections[account].unsubscribe(contact.jid,
remove_auth)
self.remove_contact(contact.jid, account, backend=True)
if not remove_auth and contact.sub == 'both':
@@ -3499,7 +3499,7 @@ class RosterWindow:
contact.sub = 'from'
# we can't see him, but have to set it manually in contact
contact.show = 'offline'
- gajim.contacts.add_contact(account, contact)
+ app.contacts.add_contact(account, contact)
self.add_contact(contact.jid, account)
def on_ok2(list_):
on_ok(False, list_)
@@ -3556,25 +3556,25 @@ class RosterWindow:
# 1. update status_sent_to_[groups|users] list
if group:
for account in account_list:
- if account not in gajim.interface.status_sent_to_groups:
- gajim.interface.status_sent_to_groups[account] = {}
- gajim.interface.status_sent_to_groups[account][group] = show
+ if account not in app.interface.status_sent_to_groups:
+ app.interface.status_sent_to_groups[account] = {}
+ app.interface.status_sent_to_groups[account][group] = show
else:
for (contact, account) in contact_list:
- if account not in gajim.interface.status_sent_to_users:
- gajim.interface.status_sent_to_users[account] = {}
- gajim.interface.status_sent_to_users[account][contact.jid] \
+ if account not in app.interface.status_sent_to_users:
+ app.interface.status_sent_to_users[account] = {}
+ app.interface.status_sent_to_users[account][contact.jid] \
= show
# 2. update privacy lists if main status is invisible
for account in account_list:
- if gajim.SHOW_LIST[gajim.connections[account].connected] == \
+ if app.SHOW_LIST[app.connections[account].connected] == \
'invisible':
- gajim.connections[account].set_invisible_rule()
+ app.connections[account].set_invisible_rule()
# 3. send directed presence
for (contact, account) in contact_list:
- our_jid = gajim.get_jid_from_account(account)
+ our_jid = app.get_jid_from_account(account)
jid = contact.jid
if jid == our_jid:
jid += '/' + contact.resource
@@ -3583,13 +3583,13 @@ class RosterWindow:
def send_it(is_checked=None):
if is_checked is not None: # dialog has been shown
if is_checked: # user does not want to be asked again
- gajim.config.set('confirm_custom_status', 'no')
+ app.config.set('confirm_custom_status', 'no')
else:
- gajim.config.set('confirm_custom_status', 'yes')
+ app.config.set('confirm_custom_status', 'yes')
self.get_status_message(show, on_response, show_pep=False,
always_ask=True)
- confirm_custom_status = gajim.config.get('confirm_custom_status')
+ confirm_custom_status = app.config.get('confirm_custom_status')
if confirm_custom_status == 'no':
send_it()
return
@@ -3612,7 +3612,7 @@ class RosterWindow:
if not self.combobox_callback_active:
self.previous_status_combobox_active = active
return
- accounts = list(gajim.connections.keys())
+ accounts = list(app.connections.keys())
if len(accounts) == 0:
dialogs.ErrorDialog(_('No account available'),
_('You must create an account before you can chat with other '
@@ -3630,11 +3630,11 @@ class RosterWindow:
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,
+ if not app.config.get_per('accounts', account,
'sync_with_global_status'):
continue
- current_show = gajim.SHOW_LIST[
- gajim.connections[account].connected]
+ current_show = app.SHOW_LIST[
+ app.connections[account].connected]
self.send_status(account, current_show, message)
self.send_pep(account, pep_dict)
self.combobox_callback_active = False
@@ -3647,7 +3647,7 @@ class RosterWindow:
# after user chooses "Change status message" menuitem
# we can return to this show
self.previous_status_combobox_active = active
- connected_accounts = gajim.get_number_of_connected_accounts()
+ connected_accounts = app.get_number_of_connected_accounts()
def on_continue(message, pep_dict):
if message is None:
@@ -3656,13 +3656,13 @@ class RosterWindow:
return
global_sync_accounts = []
for acct in accounts:
- if gajim.config.get_per('accounts', acct,
+ if app.config.get_per('accounts', acct,
'sync_with_global_status'):
global_sync_accounts.append(acct)
global_sync_connected_accounts = \
- gajim.get_number_of_connected_accounts(global_sync_accounts)
+ app.get_number_of_connected_accounts(global_sync_accounts)
for account in accounts:
- if not gajim.config.get_per('accounts', account,
+ if not app.config.get_per('accounts', account,
'sync_with_global_status'):
continue
# we are connected (so we wanna change show and status)
@@ -3670,7 +3670,7 @@ class RosterWindow:
# show and status
if not global_sync_connected_accounts > 0 or \
- gajim.connections[account].connected > 0:
+ app.connections[account].connected > 0:
self.send_status(account, status, message)
self.send_pep(account, pep_dict)
self.update_status_combobox()
@@ -3678,9 +3678,9 @@ class RosterWindow:
if status == 'invisible':
bug_user = False
for account in accounts:
- if connected_accounts < 1 or gajim.account_is_connected(
+ if connected_accounts < 1 or app.account_is_connected(
account):
- if not gajim.config.get_per('accounts', account,
+ if not app.config.get_per('accounts', account,
'sync_with_global_status'):
continue
# We're going to change our status to invisible
@@ -3706,30 +3706,30 @@ class RosterWindow:
def on_publish_tune_toggled(self, widget, account):
active = widget.get_active()
- gajim.config.set_per('accounts', account, 'publish_tune', active)
+ app.config.set_per('accounts', account, 'publish_tune', active)
if active:
- gajim.interface.enable_music_listener()
+ app.interface.enable_music_listener()
else:
- gajim.connections[account].retract_tune()
+ app.connections[account].retract_tune()
# disable music listener only if no other account uses it
- for acc in gajim.connections:
- if gajim.config.get_per('accounts', acc, 'publish_tune'):
+ for acc in app.connections:
+ if app.config.get_per('accounts', acc, 'publish_tune'):
break
else:
- gajim.interface.disable_music_listener()
+ app.interface.disable_music_listener()
helpers.update_optional_features(account)
def on_publish_location_toggled(self, widget, account):
active = widget.get_active()
- gajim.config.set_per('accounts', account, 'publish_location', active)
+ app.config.set_per('accounts', account, 'publish_location', active)
if active:
location_listener.enable()
else:
- gajim.connections[account].retract_location()
+ app.connections[account].retract_location()
# disable music listener only if no other account uses it
- for acc in gajim.connections:
- if gajim.config.get_per('accounts', acc, 'publish_location'):
+ for acc in app.connections:
+ if app.config.get_per('accounts', acc, 'publish_location'):
break
else:
location_listener.disable()
@@ -3737,10 +3737,10 @@ class RosterWindow:
helpers.update_optional_features(account)
def on_pep_services_menuitem_activate(self, widget, account):
- if 'pep_services' in gajim.interface.instances[account]:
- gajim.interface.instances[account]['pep_services'].window.present()
+ if 'pep_services' in app.interface.instances[account]:
+ app.interface.instances[account]['pep_services'].window.present()
else:
- gajim.interface.instances[account]['pep_services'] = \
+ app.interface.instances[account]['pep_services'] = \
config.ManagePEPServicesWindow(account)
def on_add_new_contact(self, widget, account):
@@ -3750,16 +3750,16 @@ class RosterWindow:
"""
When the join gc menuitem is clicked, show the join gc window
"""
- invisible_show = gajim.SHOW_LIST.index('invisible')
- if gajim.connections[account].connected == invisible_show:
+ invisible_show = app.SHOW_LIST.index('invisible')
+ if app.connections[account].connected == invisible_show:
dialogs.ErrorDialog(_('You cannot join a group chat while you are '
'invisible'))
return
- if 'join_gc' in gajim.interface.instances[account]:
- gajim.interface.instances[account]['join_gc'].window.present()
+ if 'join_gc' in app.interface.instances[account]:
+ app.interface.instances[account]['join_gc'].window.present()
else:
try:
- gajim.interface.instances[account]['join_gc'] = \
+ app.interface.instances[account]['join_gc'] = \
dialogs.JoinGroupchatWindow(account)
except GajimGeneralException:
pass
@@ -3768,7 +3768,7 @@ class RosterWindow:
dialogs.NewChatDialog(account)
def on_show_transports_action(self, action, param):
- gajim.config.set('show_transports_group', param.get_boolean())
+ app.config.set('show_transports_group', param.get_boolean())
action.set_state(param)
self.refilter_shown_roster_items()
@@ -3812,15 +3812,15 @@ class RosterWindow:
if self.rfilter_enabled:
self.disable_rfilter()
return True
- if gajim.interface.msg_win_mgr.mode == \
+ if app.interface.msg_win_mgr.mode == \
MessageWindowMgr.ONE_MSG_WINDOW_ALWAYS_WITH_ROSTER and \
- gajim.interface.msg_win_mgr.one_window_opened():
+ app.interface.msg_win_mgr.one_window_opened():
# let message window close the tab
return
list_of_paths = self.tree.get_selection().get_selected_rows()[1]
- if not len(list_of_paths) and not gajim.config.get(
- 'quit_on_roster_x_button') and ((gajim.interface.systray_enabled and\
- gajim.config.get('trayicon') == 'always') or gajim.config.get(
+ if not len(list_of_paths) and not app.config.get(
+ 'quit_on_roster_x_button') and ((app.interface.systray_enabled and\
+ app.config.get('trayicon') == 'always') or app.config.get(
'allow_hide_roster')):
self.window.hide()
elif event.get_state() & Gdk.ModifierType.CONTROL_MASK and event.keyval == \
@@ -3832,7 +3832,7 @@ class RosterWindow:
if type_ in ('contact', 'agent'):
jid = model[path][Column.JID]
account = model[path][Column.ACCOUNT]
- contact = gajim.contacts.get_first_contact_from_jid(account,
+ contact = app.contacts.get_first_contact_from_jid(account,
jid)
self.on_info(widget, contact, account)
elif event.get_state() & Gdk.ModifierType.CONTROL_MASK and event.keyval == \
@@ -3846,7 +3846,7 @@ class RosterWindow:
if type_ in ('contact', 'agent'):
jid = model[path][Column.JID]
account = model[path][Column.ACCOUNT]
- contact = gajim.contacts.get_first_contact_from_jid(account,
+ contact = app.contacts.get_first_contact_from_jid(account,
jid)
self.on_history(widget, contact, account)
@@ -3872,10 +3872,10 @@ class RosterWindow:
GObject.idle_add(self.disable_rfilter)
jid = model[path][Column.JID]
resource = None
- contact = gajim.contacts.get_contact_with_highest_priority(account, jid)
+ contact = app.contacts.get_contact_with_highest_priority(account, jid)
titer = model.get_iter(path)
if contact.is_groupchat():
- first_ev = gajim.events.get_first_event(account, jid)
+ first_ev = app.events.get_first_event(account, jid)
if first_ev and self.open_event(account, jid, first_ev):
# We are invited to a GC
# open event cares about connecting to it
@@ -3885,12 +3885,12 @@ class RosterWindow:
return
# else
- first_ev = gajim.events.get_first_event(account, jid)
+ first_ev = app.events.get_first_event(account, jid)
if not first_ev:
# look in other resources
- for c in gajim.contacts.get_contacts(account, jid):
+ for c in app.contacts.get_contacts(account, jid):
fjid = c.get_full_jid()
- first_ev = gajim.events.get_first_event(account, fjid)
+ first_ev = app.events.get_first_event(account, fjid)
if first_ev:
resource = c.resource
break
@@ -3898,7 +3898,7 @@ class RosterWindow:
child_iter = model.iter_children(titer)
while not first_ev and child_iter:
child_jid = model[child_iter][Column.JID]
- first_ev = gajim.events.get_first_event(account, child_jid)
+ first_ev = app.events.get_first_event(account, child_jid)
if first_ev:
jid = child_jid
else:
@@ -3913,21 +3913,21 @@ class RosterWindow:
if self.open_event(account, fjid, first_ev):
return
# else
- contact = gajim.contacts.get_contact(account, jid, resource)
+ contact = app.contacts.get_contact(account, jid, resource)
if not contact or isinstance(contact, list):
- contact = gajim.contacts.get_contact_with_highest_priority(account,
+ contact = app.contacts.get_contact_with_highest_priority(account,
jid)
- if jid == gajim.get_jid_from_account(account):
+ if jid == app.get_jid_from_account(account):
resource = None
- gajim.interface.on_open_chat_window(None, contact, account, \
+ app.interface.on_open_chat_window(None, contact, account, \
resource=resource, session=session)
def on_roster_treeview_row_activated(self, widget, path, col=0):
"""
When an iter is double clicked: open the first event window
"""
- if not gajim.single_click:
+ if not app.single_click:
self.on_row_activated(widget, path)
def on_roster_treeview_row_expanded(self, widget, titer, path):
@@ -3940,7 +3940,7 @@ class RosterWindow:
child_iter = model.convert_iter_to_child_iter(titer)
if self.regroup: # merged accounts
- accounts = list(gajim.connections.keys())
+ accounts = list(app.connections.keys())
else:
accounts = [model[titer][Column.ACCOUNT]]
@@ -3948,18 +3948,18 @@ class RosterWindow:
if type_ == 'group':
group = model[titer][Column.JID]
child_model[child_iter][Column.IMG] = \
- gajim.interface.jabber_state_images['16']['opened']
+ app.interface.jabber_state_images['16']['opened']
if self.rfilter_enabled:
return
for account in accounts:
- if group in gajim.groups[account]: # This account has this group
- gajim.groups[account][group]['expand'] = True
+ if group in app.groups[account]: # This account has this group
+ app.groups[account][group]['expand'] = True
if account + group in self.collapsed_rows:
self.collapsed_rows.remove(account + group)
- for contact in gajim.contacts.iter_contacts(account):
+ for contact in app.contacts.iter_contacts(account):
jid = contact.jid
if group in contact.groups and \
- gajim.contacts.is_big_brother(account, jid, accounts) and \
+ app.contacts.is_big_brother(account, jid, accounts) and \
account + group + jid not in self.collapsed_rows:
titers = self._get_contact_iter(jid, account)
for titer in titers:
@@ -3971,8 +3971,8 @@ class RosterWindow:
self.collapsed_rows.remove(account)
self.draw_account(account)
# When we expand, groups are collapsed. Restore expand state
- for group in gajim.groups[account]:
- if gajim.groups[account][group]['expand']:
+ for group in app.groups[account]:
+ if app.groups[account][group]['expand']:
titer = self._get_group_iter(group, account)
if titer:
path = model.get_path(titer)
@@ -3981,11 +3981,11 @@ class RosterWindow:
# Metacontact got toggled, update icon
jid = model[titer][Column.JID]
account = model[titer][Column.ACCOUNT]
- contact = gajim.contacts.get_contact(account, jid)
+ contact = app.contacts.get_contact(account, jid)
for group in contact.groups:
if account + group + jid in self.collapsed_rows:
self.collapsed_rows.remove(account + group + jid)
- family = gajim.contacts.get_metacontacts_family(account, jid)
+ family = app.contacts.get_metacontacts_family(account, jid)
nearby_family = \
self._get_nearby_family_and_big_brother(family, account)[0]
# Redraw all brothers to show pending events
@@ -4004,20 +4004,20 @@ class RosterWindow:
child_iter = model.convert_iter_to_child_iter(titer)
if self.regroup: # merged accounts
- accounts = list(gajim.connections.keys())
+ accounts = list(app.connections.keys())
else:
accounts = [model[titer][Column.ACCOUNT]]
type_ = model[titer][Column.TYPE]
if type_ == 'group':
- child_model[child_iter][Column.IMG] = gajim.interface.\
+ child_model[child_iter][Column.IMG] = app.interface.\
jabber_state_images['16']['closed']
if self.rfilter_enabled:
return
group = model[titer][Column.JID]
for account in accounts:
- if group in gajim.groups[account]: # This account has this group
- gajim.groups[account][group]['expand'] = False
+ if group in app.groups[account]: # This account has this group
+ app.groups[account][group]['expand'] = False
if account + group not in self.collapsed_rows:
self.collapsed_rows.append(account + group)
elif type_ == 'account':
@@ -4029,14 +4029,14 @@ class RosterWindow:
# Metacontact got toggled, update icon
jid = model[titer][Column.JID]
account = model[titer][Column.ACCOUNT]
- contact = gajim.contacts.get_contact(account, jid)
+ contact = app.contacts.get_contact(account, jid)
groups = contact.groups
if not groups:
groups = [_('General')]
for group in groups:
if account + group + jid not in self.collapsed_rows:
self.collapsed_rows.append(account + group + jid)
- family = gajim.contacts.get_metacontacts_family(account, jid)
+ family = app.contacts.get_metacontacts_family(account, jid)
nearby_family = \
self._get_nearby_family_and_big_brother(family, account)[0]
# Redraw all brothers to show pending events
@@ -4107,9 +4107,9 @@ class RosterWindow:
def on_service_disco_menuitem_activate(self, widget, account):
- server_jid = gajim.config.get_per('accounts', account, 'hostname')
- if server_jid in gajim.interface.instances[account]['disco']:
- gajim.interface.instances[account]['disco'][server_jid].\
+ server_jid = app.config.get_per('accounts', account, 'hostname')
+ if server_jid in app.interface.instances[account]['disco']:
+ app.interface.instances[account]['disco'][server_jid].\
window.present()
else:
try:
@@ -4123,7 +4123,7 @@ class RosterWindow:
When show offline option is changed: redraw the treeview
"""
action.set_state(param)
- gajim.config.set('showoffline', param.get_boolean())
+ app.config.set('showoffline', param.get_boolean())
self.refilter_shown_roster_items()
if param.get_boolean():
# We need to filter twice to show groups with no contacts inside
@@ -4138,7 +4138,7 @@ class RosterWindow:
When show only active contact option is changed: redraw the treeview
"""
action.set_state(param)
- gajim.config.set('show_only_chat_and_online', param.get_boolean())
+ app.config.set('show_only_chat_and_online', param.get_boolean())
self.refilter_shown_roster_items()
if param.get_boolean():
@@ -4230,8 +4230,8 @@ class RosterWindow:
"""
if gparamspec and gparamspec.name == 'position':
roster_width = pane.get_child1().get_allocation().width
- gajim.config.set('roster_width', roster_width)
- gajim.config.set('roster_hpaned_position', pane.get_position())
+ app.config.set('roster_width', roster_width)
+ app.config.set('roster_hpaned_position', pane.get_position())
################################################################################
### Drag and Drop handling
@@ -4260,14 +4260,14 @@ class RosterWindow:
if c_dest.show not in ('offline', 'error') and c_dest.supports(
NS_ROSTERX):
type_ = 'iq'
- gajim.connections[account_dest].send_contacts([c_source],
+ app.connections[account_dest].send_contacts([c_source],
c_dest.get_full_jid(), type_=type_)
def on_drop_in_contact(self, widget, account_source, c_source, account_dest,
c_dest, was_big_brother, context, etime):
- if not gajim.connections[account_source].private_storage_supported or \
- not gajim.connections[account_dest].private_storage_supported:
+ if not app.connections[account_source].private_storage_supported or \
+ not app.connections[account_dest].private_storage_supported:
dialogs.WarningDialog(_('Metacontacts storage not supported by '
'your server'),
_('Your server does not support storing metacontacts '
@@ -4278,17 +4278,17 @@ class RosterWindow:
contacts = 0
if is_checked is not None: # dialog has been shown
if is_checked: # user does not want to be asked again
- gajim.config.set('confirm_metacontacts', 'no')
+ app.config.set('confirm_metacontacts', 'no')
else:
- gajim.config.set('confirm_metacontacts', 'yes')
+ app.config.set('confirm_metacontacts', 'yes')
# We might have dropped on a metacontact.
# Remove it and readd later with updated family info
- dest_family = gajim.contacts.get_metacontacts_family(account_dest,
+ dest_family = app.contacts.get_metacontacts_family(account_dest,
c_dest.jid)
if dest_family:
self._remove_metacontact_family(dest_family, account_dest)
- source_family = gajim.contacts.get_metacontacts_family(
+ source_family = app.contacts.get_metacontacts_family(
account_source, c_source.jid)
if dest_family == source_family:
n = contacts = len(dest_family)
@@ -4302,7 +4302,7 @@ class RosterWindow:
else:
self._remove_entity(c_dest, account_dest)
- old_family = gajim.contacts.get_metacontacts_family(account_source,
+ old_family = app.contacts.get_metacontacts_family(account_source,
c_source.jid)
old_groups = c_source.groups
@@ -4331,20 +4331,20 @@ class RosterWindow:
_account = data['account']
_jid = data['jid']
- _contact = gajim.contacts.get_first_contact_from_jid(_account,
+ _contact = app.contacts.get_first_contact_from_jid(_account,
_jid)
if not _contact:
# One of the metacontacts may be not connected.
continue
_contact.groups = c_dest.groups[:]
- gajim.contacts.add_metacontact(account_dest, c_dest.jid,
+ app.contacts.add_metacontact(account_dest, c_dest.jid,
_account, _contact.jid, contacts)
- gajim.connections[account_source].update_contact(_contact.jid,
+ app.connections[account_source].update_contact(_contact.jid,
_contact.name, _contact.groups)
# Re-add all and update GUI
- new_family = gajim.contacts.get_metacontacts_family(account_source,
+ new_family = app.contacts.get_metacontacts_family(account_source,
c_source.jid)
brothers = self._add_metacontact_family(new_family, account_source)
@@ -4358,11 +4358,11 @@ class RosterWindow:
self.draw_account(account_source)
context.finish(True, True, etime)
- dest_family = gajim.contacts.get_metacontacts_family(account_dest,
+ dest_family = app.contacts.get_metacontacts_family(account_dest,
c_dest.jid)
- source_family = gajim.contacts.get_metacontacts_family(account_source,
+ source_family = app.contacts.get_metacontacts_family(account_source,
c_source.jid)
- confirm_metacontacts = gajim.config.get('confirm_metacontacts')
+ confirm_metacontacts = app.config.get('confirm_metacontacts')
if confirm_metacontacts == 'no' or dest_family == source_family:
merge_contacts()
return
@@ -4388,14 +4388,14 @@ class RosterWindow:
[grp_source])
else:
# Normal contact or little brother
- family = gajim.contacts.get_metacontacts_family(account,
+ family = app.contacts.get_metacontacts_family(account,
c_source.jid)
if family:
# Little brother
# Remove whole family. Remove us from the family.
# Then re-add other family members.
self._remove_metacontact_family(family, account)
- gajim.contacts.remove_metacontact(account, c_source.jid)
+ app.contacts.remove_metacontact(account, c_source.jid)
for data in family:
if account != data['account'] and not self.regroup:
continue
@@ -4427,7 +4427,7 @@ class RosterWindow:
return True
def move_group(self, old_name, new_name, account):
- for group in list(gajim.groups[account].keys()):
+ for group in list(app.groups[account].keys()):
if group.startswith(old_name):
self.rename_group(group, group.replace(old_name, new_name),
account)
@@ -4462,7 +4462,7 @@ class RosterWindow:
if account_dest == 'all':
return
# nothing can be done, if destination account is offline
- if gajim.connections[account_dest].connected < 2:
+ if app.connections[account_dest].connected < 2:
return
# A file got dropped on the roster
@@ -4471,7 +4471,7 @@ class RosterWindow:
return
if type_dest != 'contact':
return
- c_dest = gajim.contacts.get_contact_with_highest_priority(
+ c_dest = app.contacts.get_contact_with_highest_priority(
account_dest, jid_dest)
if not c_dest.supports(NS_FILE):
return
@@ -4493,12 +4493,12 @@ class RosterWindow:
dialogs.ErrorDialog(_('Invalid file URI:'), '\n'.join(bad_uris))
return
def _on_send_files(account, jid, uris):
- c = gajim.contacts.get_contact_with_highest_priority(account,
+ c = app.contacts.get_contact_with_highest_priority(account,
jid)
for uri in uris:
path = helpers.get_file_path_from_dnd_dropped_uri(uri)
if os.path.isfile(path): # is it file?
- gajim.interface.instances['file_transfers'].send_file(
+ app.interface.instances['file_transfers'].send_file(
account, c, path)
# Popup dialog to confirm sending
prim_text = 'Send file?'
@@ -4522,7 +4522,7 @@ class RosterWindow:
type_source = model[iter_source][Column.TYPE]
account_source = model[iter_source][Column.ACCOUNT]
- if gajim.config.get_per('accounts', account_source, 'is_zeroconf'):
+ if app.config.get_per('accounts', account_source, 'is_zeroconf'):
return
if type_dest == 'self_contact':
@@ -4539,7 +4539,7 @@ class RosterWindow:
# drop on another account
return
grp_source = model[iter_source][Column.JID]
- delimiter = gajim.connections[account_source].nested_group_delimiter
+ delimiter = app.connections[account_source].nested_group_delimiter
grp_source_list = grp_source.split(delimiter)
new_grp = None
if type_dest == 'account':
@@ -4559,7 +4559,7 @@ class RosterWindow:
return
# A contact was dropped
- if gajim.config.get_per('accounts', account_dest, 'is_zeroconf'):
+ if app.config.get_per('accounts', account_dest, 'is_zeroconf'):
# drop on zeroconf account, adding not possible
return
@@ -4579,7 +4579,7 @@ class RosterWindow:
# see below
return
jid_source = data
- c_source = gajim.contacts.get_contact_with_highest_priority(
+ c_source = app.contacts.get_contact_with_highest_priority(
account_source, jid_source)
# Get destination group
@@ -4612,9 +4612,9 @@ class RosterWindow:
return
# Is the contact we drag a meta contact?
- accounts = (self.regroup and gajim.contacts.get_accounts()) or \
+ accounts = (self.regroup and app.contacts.get_accounts()) or \
account_source
- is_big_brother = gajim.contacts.is_big_brother(account_source,
+ is_big_brother = app.contacts.is_big_brother(account_source,
jid_source, accounts)
drop_in_middle_of_meta = False
@@ -4635,7 +4635,7 @@ class RosterWindow:
# Contact drop on another contact, make meta contacts
if position == Gtk.TreeViewDropPosition.INTO_OR_AFTER or \
position == Gtk.TreeViewDropPosition.INTO_OR_BEFORE or drop_in_middle_of_meta:
- c_dest = gajim.contacts.get_contact_with_highest_priority(
+ c_dest = app.contacts.get_contact_with_highest_priority(
account_dest, jid_dest)
if not c_dest:
# c_dest is None if jid_dest doesn't belong to account
@@ -4648,9 +4648,9 @@ class RosterWindow:
c_source, account_dest, c_dest, is_big_brother, context, etime)
menu.append(item)
- dest_family = gajim.contacts.get_metacontacts_family(account_dest,
+ dest_family = app.contacts.get_metacontacts_family(account_dest,
c_dest.jid)
- source_family = gajim.contacts.get_metacontacts_family(
+ source_family = app.contacts.get_metacontacts_family(
account_source, c_source.jid)
if dest_family == source_family and dest_family:
item = Gtk.MenuItem.new_with_label(
@@ -4685,7 +4685,7 @@ class RosterWindow:
transport iconset doesn't contain all icons, so we fall back to jabber
one
"""
- transport = gajim.get_transport_name_from_jid(jid)
+ transport = app.get_transport_name_from_jid(jid)
if transport and size in self.transports_state_images:
if transport not in self.transports_state_images[size]:
# we don't have iconset for this transport loaded yet. Let's do
@@ -4694,13 +4694,13 @@ class RosterWindow:
if transport in self.transports_state_images[size] and \
icon_name in self.transports_state_images[size][transport]:
return self.transports_state_images[size][transport]
- return gajim.interface.jabber_state_images[size]
+ return app.interface.jabber_state_images[size]
def make_transport_state_images(self, transport):
"""
Initialize opened and closed 'transport' iconset dict
"""
- if not gajim.config.get('use_transports_iconsets'):
+ if not app.config.get('use_transports_iconsets'):
return
folder = os.path.join(helpers.get_transport_path(transport), '32x32')
@@ -4726,14 +4726,14 @@ class RosterWindow:
if model[titer][2] != '':
# If it's not change status message iter
# eg. if it has show parameter not ''
- model[titer][1] = gajim.interface.jabber_state_images['16'][
+ model[titer][1] = app.interface.jabber_state_images['16'][
model[titer][2]]
titer = model.iter_next(titer)
# Update the systray
- if gajim.interface.systray_enabled:
- gajim.interface.systray.set_img()
+ if app.interface.systray_enabled:
+ app.interface.systray.set_img()
- for win in gajim.interface.msg_win_mgr.windows():
+ for win in app.interface.msg_win_mgr.windows():
for ctrl in win.controls():
ctrl.update_ui()
win.redraw_tab(ctrl)
@@ -4741,15 +4741,15 @@ class RosterWindow:
self.update_status_combobox()
def set_account_status_icon(self, account):
- status = gajim.connections[account].connected
+ status = app.connections[account].connected
child_iterA = self._get_account_iter(account, self.model)
if not child_iterA:
return
if not self.regroup:
- show = gajim.SHOW_LIST[status]
+ show = app.SHOW_LIST[status]
else: # accounts merged
show = helpers.get_global_show()
- self.model[child_iterA][Column.IMG] = gajim.interface.jabber_state_images[
+ self.model[child_iterA][Column.IMG] = app.interface.jabber_state_images[
'16'][show]
################################################################################
@@ -4757,23 +4757,23 @@ class RosterWindow:
################################################################################
def show_title(self):
- change_title_allowed = gajim.config.get('change_roster_title')
+ change_title_allowed = app.config.get('change_roster_title')
if not change_title_allowed:
return
nb_unread = 0
- for account in gajim.connections:
+ for account in app.connections:
# Count events in roster title only if we don't auto open them
if not helpers.allow_popup_window(account):
- nb_unread += gajim.events.get_nb_events(['chat', 'normal',
+ nb_unread += app.events.get_nb_events(['chat', 'normal',
'file-request', 'file-error', 'file-completed',
'file-request-error', 'file-send-error', 'file-stopped',
'printed_chat'], account)
- if gajim.config.get('one_message_window') == 'always_with_roster':
+ if app.config.get('one_message_window') == 'always_with_roster':
# always_with_roster mode defers to the MessageWindow
- if not gajim.interface.msg_win_mgr.one_window_opened():
+ if not app.interface.msg_win_mgr.one_window_opened():
# No MessageWindow to defer to
self.window.set_title('Gajim')
gtkgui_helpers.set_unset_urgency_hint(self.window, nb_unread)
@@ -4796,17 +4796,17 @@ class RosterWindow:
def change_roster_style(self, option):
self.model.foreach(self._change_style, option)
- for win in gajim.interface.msg_win_mgr.windows():
+ for win in app.interface.msg_win_mgr.windows():
win.repaint_themed_widgets()
def repaint_themed_widgets(self):
"""
Notify windows that contain themed widgets to repaint them
"""
- for win in gajim.interface.msg_win_mgr.windows():
+ for win in app.interface.msg_win_mgr.windows():
win.repaint_themed_widgets()
- for account in gajim.connections:
- for ctrl in list(gajim.interface.minimized_controls[account].values()):
+ for account in app.connections:
+ for ctrl in list(app.interface.minimized_controls[account].values()):
ctrl.repaint_themed_widgets()
def update_avatar_in_gui(self, jid, account):
@@ -4814,7 +4814,7 @@ class RosterWindow:
self.draw_avatar(jid, account)
# Update chat window
- ctrl = gajim.interface.msg_win_mgr.get_control(jid, account)
+ ctrl = app.interface.msg_win_mgr.get_control(jid, account)
if ctrl:
ctrl.show_avatar()
@@ -4859,9 +4859,9 @@ class RosterWindow:
type_ = model[titer][Column.TYPE]
except TypeError:
return
- theme = gajim.config.get('roster_theme')
+ theme = app.config.get('roster_theme')
if type_ == 'account':
- color = gajim.config.get_per('themes', theme, 'accounttextcolor')
+ color = app.config.get_per('themes', theme, 'accounttextcolor')
renderer.set_property('foreground', color or None)
renderer.set_property('font',
gtkgui_helpers.get_theme_font_for_option(theme, 'accountfont'))
@@ -4869,7 +4869,7 @@ class RosterWindow:
renderer.set_property('width', 3)
self._set_account_row_background_color(renderer)
elif type_ == 'group':
- color = gajim.config.get_per('themes', theme, 'grouptextcolor')
+ color = app.config.get_per('themes', theme, 'grouptextcolor')
renderer.set_property('foreground', color or None)
renderer.set_property('font',
gtkgui_helpers.get_theme_font_for_option(theme, 'groupfont'))
@@ -4888,14 +4888,14 @@ class RosterWindow:
account = model[titer][Column.ACCOUNT]
color = None
if type_ == 'groupchat':
- ctrl = gajim.interface.minimized_controls[account].get(jid,
+ ctrl = app.interface.minimized_controls[account].get(jid,
None)
if ctrl and ctrl.attention_flag:
- color = gajim.config.get_per('themes', theme,
+ color = app.config.get_per('themes', theme,
'state_muc_directed_msg_color')
renderer.set_property('foreground', 'red')
if not color:
- color = gajim.config.get_per('themes', theme,
+ color = app.config.get_per('themes', theme,
'contacttextcolor')
if color:
renderer.set_property('foreground', color)
@@ -4953,7 +4953,7 @@ class RosterWindow:
# allocate space for the icon only if needed
if model[titer][Column.AVATAR_PIXBUF] or \
- gajim.config.get('avatar_position_in_roster') == 'left':
+ app.config.get('avatar_position_in_roster') == 'left':
renderer.set_property('visible', True)
if type_:
# prevent type_ = None, see http://trac.gajim.org/ticket/2534
@@ -4966,11 +4966,11 @@ class RosterWindow:
else:
renderer.set_property('visible', False)
if model[titer][Column.AVATAR_PIXBUF] == empty_pixbuf and \
- gajim.config.get('avatar_position_in_roster') != 'left':
+ app.config.get('avatar_position_in_roster') != 'left':
renderer.set_property('visible', False)
- if gajim.config.get('avatar_position_in_roster') == 'left':
- renderer.set_property('width', gajim.config.get(
+ if app.config.get('avatar_position_in_roster') == 'left':
+ renderer.set_property('width', app.config.get(
'roster_avatar_width'))
renderer.set_property('xalign', 0.5)
else:
@@ -4995,25 +4995,25 @@ class RosterWindow:
renderer.set_property('visible', False)
def _set_account_row_background_color(self, renderer):
- theme = gajim.config.get('roster_theme')
- color = gajim.config.get_per('themes', theme, 'accountbgcolor')
+ theme = app.config.get('roster_theme')
+ color = app.config.get_per('themes', theme, 'accountbgcolor')
renderer.set_property('cell-background', color or None)
def _set_contact_row_background_color(self, renderer, jid, account):
- theme = gajim.config.get('roster_theme')
- if jid in gajim.newly_added[account]:
- renderer.set_property('cell-background', gajim.config.get(
+ theme = app.config.get('roster_theme')
+ if jid in app.newly_added[account]:
+ renderer.set_property('cell-background', app.config.get(
'just_connected_bg_color'))
- elif jid in gajim.to_be_removed[account]:
- renderer.set_property('cell-background', gajim.config.get(
+ elif jid in app.to_be_removed[account]:
+ renderer.set_property('cell-background', app.config.get(
'just_disconnected_bg_color'))
else:
- color = gajim.config.get_per('themes', theme, 'contactbgcolor')
+ color = app.config.get_per('themes', theme, 'contactbgcolor')
renderer.set_property('cell-background', color or None)
def _set_group_row_background_color(self, renderer):
- theme = gajim.config.get('roster_theme')
- color = gajim.config.get_per('themes', theme, 'groupbgcolor')
+ theme = app.config.get('roster_theme')
+ color = app.config.get_per('themes', theme, 'groupbgcolor')
renderer.set_property('cell-background', color or None)
################################################################################
@@ -5024,10 +5024,10 @@ class RosterWindow:
def build_account_menu(self, account):
# we have to create our own set of icons for the menu
# using self.jabber_status_images is poopoo
- iconset = gajim.config.get('iconset')
+ iconset = app.config.get('iconset')
path = os.path.join(helpers.get_iconset_path(iconset), '16x16')
- if not gajim.config.get_per('accounts', account, 'is_zeroconf'):
+ if not app.config.get_per('accounts', account, 'is_zeroconf'):
xml = gtkgui_helpers.get_gtk_builder('account_context_menu.ui')
account_context_menu = xml.get_object('account_context_menu')
@@ -5050,7 +5050,7 @@ class RosterWindow:
uf_show = helpers.get_uf_show(show, use_mnemonic=True)
item = Gtk.MenuItem.new_with_mnemonic(uf_show)
sub_menu.append(item)
- con = gajim.connections[account]
+ con = app.connections[account]
if show == 'invisible' and con.connected > 1 and \
not con.privacy_rules_supported:
item.set_sensitive(False)
@@ -5064,7 +5064,7 @@ class RosterWindow:
sub_menu.append(item)
item.connect('activate', self.on_change_status_message_activate,
account)
- if gajim.connections[account].connected < 2:
+ if app.connections[account].connected < 2:
item.set_sensitive(False)
item = Gtk.SeparatorMenuItem.new()
@@ -5076,7 +5076,7 @@ class RosterWindow:
item.connect('activate', self.change_status, account, 'offline')
pep_menuitem = xml.get_object('pep_menuitem')
- if gajim.connections[account].pep_supported:
+ if app.connections[account].pep_supported:
pep_submenu = Gtk.Menu()
pep_menuitem.set_submenu(pep_submenu)
def add_item(label, opt_name, func):
@@ -5085,7 +5085,7 @@ class RosterWindow:
if not dbus_support.supported:
item.set_sensitive(False)
else:
- activ = gajim.config.get_per('accounts', account,
+ activ = app.config.get_per('accounts', account,
opt_name)
item.set_active(activ)
item.connect('toggled', func, account)
@@ -5107,7 +5107,7 @@ class RosterWindow:
else:
pep_menuitem.set_sensitive(False)
- if not gajim.connections[account].gmail_url:
+ if not app.connections[account].gmail_url:
open_gmail_inbox_menuitem.set_no_show_all(True)
open_gmail_inbox_menuitem.hide()
else:
@@ -5116,15 +5116,15 @@ class RosterWindow:
edit_account_menuitem.connect('activate', self.on_edit_account,
account)
- if gajim.connections[account].roster_supported:
+ if app.connections[account].roster_supported:
add_contact_menuitem.connect('activate',
self.on_add_new_contact, account)
else:
add_contact_menuitem.set_sensitive(False)
service_discovery_menuitem.connect('activate',
self.on_service_disco_menuitem_activate, account)
- hostname = gajim.config.get_per('accounts', account, 'hostname')
- contact = gajim.contacts.create_contact(jid=hostname,
+ hostname = app.config.get_per('accounts', account, 'hostname')
+ contact = app.contacts.create_contact(jid=hostname,
account=account) # Fake contact
execute_command_menuitem.connect('activate',
self.on_execute_command, contact, account)
@@ -5137,7 +5137,7 @@ class RosterWindow:
self.add_bookmarks_list(gc_sub_menu, account)
# make some items insensitive if account is offline
- if gajim.connections[account].connected < 2:
+ if app.connections[account].connected < 2:
for widget in (add_contact_menuitem, service_discovery_menuitem,
join_group_chat_menuitem, execute_command_menuitem,
pep_menuitem, start_chat_menuitem):
@@ -5165,7 +5165,7 @@ class RosterWindow:
sub_menu.append(item)
item.connect('activate', self.on_change_status_message_activate,
account)
- if gajim.connections[account].connected < 2:
+ if app.connections[account].connected < 2:
item.set_sensitive(False)
uf_show = helpers.get_uf_show('offline', use_mnemonic=True)
@@ -5189,10 +5189,10 @@ class RosterWindow:
menu = self.build_account_menu(account)
else:
menu = Gtk.Menu()
- iconset = gajim.config.get('iconset')
+ iconset = app.config.get('iconset')
path = os.path.join(helpers.get_iconset_path(iconset), '16x16')
accounts = [] # Put accounts in a list to sort them
- for account in gajim.connections:
+ for account in app.connections:
accounts.append(account)
accounts.sort()
for account in accounts:
@@ -5222,8 +5222,8 @@ class RosterWindow:
show_bookmarked = True
group = model[titer][Column.JID]
- for jid in gajim.contacts.get_jid_list(account):
- contact = gajim.contacts.get_contact_with_highest_priority(account,
+ for jid in app.contacts.get_jid_list(account):
+ contact = app.contacts.get_contact_with_highest_priority(account,
jid)
if group in contact.get_shown_groups():
if contact.show not in ('offline', 'error'):
@@ -5280,7 +5280,7 @@ class RosterWindow:
send_custom_status_menuitem.set_sensitive(False)
status_menuitems = Gtk.Menu()
send_custom_status_menuitem.set_submenu(status_menuitems)
- iconset = gajim.config.get('iconset')
+ iconset = app.config.get('iconset')
path = os.path.join(helpers.get_iconset_path(iconset), '16x16')
for s in ('online', 'chat', 'away', 'xa', 'dnd', 'offline'):
status_menuitem = Gtk.MenuItem.new_with_label(
@@ -5291,11 +5291,11 @@ class RosterWindow:
menu.append(send_custom_status_menuitem)
# there is no singlemessage and custom status for zeroconf
- if gajim.config.get_per('accounts', account, 'is_zeroconf'):
+ if app.config.get_per('accounts', account, 'is_zeroconf'):
send_custom_status_menuitem.set_sensitive(False)
send_group_message_item.set_sensitive(False)
- if gajim.connections[account].connected < 2:
+ if app.connections[account].connected < 2:
send_group_message_item.set_sensitive(False)
invite_menuitem.set_sensitive(False)
send_custom_status_menuitem.set_sensitive(False)
@@ -5313,14 +5313,14 @@ class RosterWindow:
# Block group
is_blocked = False
if self.regroup:
- for g_account in gajim.connections:
+ for g_account in app.connections:
if helpers.group_is_blocked(g_account, group):
is_blocked = True
else:
if helpers.group_is_blocked(account, group):
is_blocked = True
- if is_blocked and gajim.connections[account].\
+ if is_blocked and app.connections[account].\
privacy_rules_supported:
unblock_menuitem = Gtk.MenuItem.new_with_mnemonic(_('_Unblock'))
unblock_menuitem.connect('activate', self.on_unblock, list_,
@@ -5330,7 +5330,7 @@ class RosterWindow:
block_menuitem = Gtk.MenuItem.new_with_mnemonic(_('_Block'))
block_menuitem.connect('activate', self.on_block, list_, group)
menu.append(block_menuitem)
- if not gajim.connections[account].privacy_rules_supported:
+ if not app.connections[account].privacy_rules_supported:
block_menuitem.set_sensitive(False)
# Remove group
@@ -5340,7 +5340,7 @@ class RosterWindow:
group, account)
# unsensitive if account is not connected
- if gajim.connections[account].connected < 2:
+ if app.connections[account].connected < 2:
rename_item.set_sensitive(False)
# General group cannot be changed
@@ -5362,7 +5362,7 @@ class RosterWindow:
model = self.modelfilter
jid = model[titer][Column.JID]
account = model[titer][Column.ACCOUNT]
- contact = gajim.contacts.get_contact_with_highest_priority(account, jid)
+ contact = app.contacts.get_contact_with_highest_priority(account, jid)
menu = gui_menu_builder.get_contact_menu(contact, account)
event_button = gtkgui_helpers.get_possible_button_event(event)
menu.attach_to_widget(self.tree, None)
@@ -5380,11 +5380,11 @@ class RosterWindow:
for titer in iters:
jid = model[titer][Column.JID]
account = model[titer][Column.ACCOUNT]
- if gajim.connections[account].connected < 2:
+ if app.connections[account].connected < 2:
one_account_offline = True
- if not gajim.connections[account].privacy_rules_supported:
+ if not app.connections[account].privacy_rules_supported:
privacy_rules_supported = False
- contact = gajim.contacts.get_contact_with_highest_priority(account,
+ contact = app.contacts.get_contact_with_highest_priority(account,
jid)
if not helpers.jid_is_blocked(account, jid):
is_blocked = False
@@ -5471,7 +5471,7 @@ class RosterWindow:
jid = model[titer][Column.JID]
path = model.get_path(titer)
account = model[titer][Column.ACCOUNT]
- contact = gajim.contacts.get_contact_with_highest_priority(account, jid)
+ contact = app.contacts.get_contact_with_highest_priority(account, jid)
menu = gui_menu_builder.get_transport_menu(contact, account)
event_button = gtkgui_helpers.get_possible_button_event(event)
menu.attach_to_widget(self.tree, None)
@@ -5482,17 +5482,17 @@ class RosterWindow:
jid = model[titer][Column.JID]
account = model[titer][Column.ACCOUNT]
- contact = gajim.contacts.get_contact_with_highest_priority(account, jid)
+ contact = app.contacts.get_contact_with_highest_priority(account, jid)
menu = Gtk.Menu()
- if jid in gajim.interface.minimized_controls[account]:
+ if jid in app.interface.minimized_controls[account]:
maximize_menuitem = Gtk.MenuItem.new_with_mnemonic(_(
'_Maximize'))
maximize_menuitem.connect('activate', self.on_groupchat_maximized, \
jid, account)
menu.append(maximize_menuitem)
- if not gajim.gc_connected[account].get(jid, False):
+ if not app.gc_connected[account].get(jid, False):
connect_menuitem = Gtk.MenuItem.new_with_mnemonic(_(
'_Reconnect'))
connect_menuitem.connect('activate', self.on_reconnect, jid,
@@ -5539,20 +5539,20 @@ class RosterWindow:
xml_console_menuitem.connect('activate',
self.on_xml_console_menuitem_activate, account)
- if gajim.connections[account]:
- if gajim.connections[account].privacy_rules_supported:
+ if app.connections[account]:
+ if app.connections[account].privacy_rules_supported:
privacy_lists_menuitem.connect('activate',
self.on_privacy_lists_menuitem_activate, account)
else:
privacy_lists_menuitem.set_sensitive(False)
- if gajim.connections[account].archiving_313_supported:
+ if app.connections[account].archiving_313_supported:
archiving_preferences_menuitem.connect(
'activate',
self.on_archiving_preferences_menuitem_activate, account)
else:
archiving_preferences_menuitem.set_sensitive(False)
- if gajim.connections[account].is_zeroconf:
+ if app.connections[account].is_zeroconf:
administrator_menuitem.set_sensitive(False)
send_server_message_menuitem.set_sensitive(False)
set_motd_menuitem.set_sensitive(False)
@@ -5597,11 +5597,11 @@ class RosterWindow:
gc_sub_menu.append(item)
# User has at least one bookmark.
- if gajim.connections[account].bookmarks:
+ if app.connections[account].bookmarks:
item = Gtk.SeparatorMenuItem.new()
gc_sub_menu.append(item)
- for bookmark in gajim.connections[account].bookmarks:
+ for bookmark in app.connections[account].bookmarks:
name = bookmark['name']
if not name:
# No name was given for this bookmark.
@@ -5664,8 +5664,8 @@ class RosterWindow:
activated
"""
# find a connected account:
- for account in gajim.connections:
- if gajim.account_is_connected(account):
+ for account in app.connections:
+ if app.account_is_connected(account):
break
self.on_join_gc_activate(None, account)
return True
@@ -5701,7 +5701,7 @@ class RosterWindow:
connected_contacts = []
if typ in ('contact', 'self_contact'):
- contacts = gajim.contacts.get_contacts(account, jid)
+ contacts = app.contacts.get_contacts(account, jid)
for c in contacts:
if c.show not in ('offline', 'error'):
@@ -5710,7 +5710,7 @@ class RosterWindow:
# no connected contacts, show the offline one
connected_contacts = contacts
elif typ == 'groupchat':
- connected_contacts = gajim.contacts.get_contacts(account, jid)
+ connected_contacts = app.contacts.get_contacts(account, jid)
elif typ != 'account':
return False
@@ -5739,7 +5739,7 @@ class RosterWindow:
action = Gio.SimpleAction.new_stateful(
"show-offline", None,
- GLib.Variant.new_boolean(gajim.config.get('showoffline')))
+ GLib.Variant.new_boolean(app.config.get('showoffline')))
action.connect("change-state",
self.on_show_offline_contacts_action)
self.window.add_action(action)
@@ -5747,14 +5747,14 @@ class RosterWindow:
action = Gio.SimpleAction.new_stateful(
"show-active", None,
GLib.Variant.new_boolean(
- gajim.config.get('show_only_chat_and_online')))
+ app.config.get('show_only_chat_and_online')))
action.connect("change-state",
self.on_show_active_contacts_action)
self.window.add_action(action)
action = Gio.SimpleAction.new_stateful(
"show-transports", None,
- GLib.Variant.new_boolean(gajim.config.get('show_transports_group')))
+ GLib.Variant.new_boolean(app.config.get('show_transports_group')))
action.connect("change-state", self.on_show_transports_action)
self.window.add_action(action)
@@ -5762,8 +5762,8 @@ class RosterWindow:
###
################################################################################
- def __init__(self, app: Gtk.Application):
- self.application = app
+ def __init__(self, application: Gtk.Application):
+ self.application = application
self.filtering = False
self.starting = False
self.starting_filtering = False
@@ -5779,14 +5779,14 @@ class RosterWindow:
GdkPixbuf.Pixbuf, GdkPixbuf.Pixbuf]
self.xml = gtkgui_helpers.get_gtk_builder('roster_window.ui')
self.window = self.xml.get_object('roster_window')
- app.add_window(self.window)
+ application.add_window(self.window)
self.add_actions()
self.hpaned = self.xml.get_object('roster_hpaned')
- gajim.interface.msg_win_mgr = MessageWindowMgr(self.window, self.hpaned)
- gajim.interface.msg_win_mgr.connect('window-delete',
+ app.interface.msg_win_mgr = MessageWindowMgr(self.window, self.hpaned)
+ app.interface.msg_win_mgr.connect('window-delete',
self.on_message_window_delete)
self.advanced_menus = [] # We keep them to destroy them
- if gajim.config.get('roster_window_skip_taskbar'):
+ if app.config.get('roster_window_skip_taskbar'):
self.window.set_property('skip-taskbar-hint', True)
self.tree = self.xml.get_object('roster_treeview')
sel = self.tree.get_selection()
@@ -5812,18 +5812,18 @@ class RosterWindow:
#FIXME: When list_accel_closures will be wrapped in pygtk
# no need of this variable
self.have_new_chat_accel = False # Is the "Ctrl+N" shown ?
- self.regroup = gajim.config.get('mergeaccounts')
+ self.regroup = app.config.get('mergeaccounts')
self.clicked_path = None # Used remember on wich row we clicked
- if len(gajim.connections) < 2:
+ if len(app.connections) < 2:
# Do not merge accounts if only one exists
self.regroup = False
gtkgui_helpers.resize_window(self.window,
- gajim.config.get('roster_width'),
- gajim.config.get('roster_height'))
- if gajim.config.get('save-roster-position'):
+ app.config.get('roster_width'),
+ app.config.get('roster_height'))
+ if app.config.get('save-roster-position'):
gtkgui_helpers.move_window(self.window,
- gajim.config.get('roster_x-position'),
- gajim.config.get('roster_y-position'))
+ app.config.get('roster_x-position'),
+ app.config.get('roster_y-position'))
self.popups_notification_height = 0
self.popup_notification_windows = []
@@ -5831,7 +5831,7 @@ class RosterWindow:
# Remove contact from roster when last event opened
# { (contact, account): { backend: boolean }
self.contacts_to_be_removed = {}
- gajim.events.event_removed_subscribe(self.on_event_removed)
+ app.events.event_removed_subscribe(self.on_event_removed)
# when this value become 0 we quit main application. If it's more than 0
# it means we are waiting for this number of accounts to disconnect
@@ -5871,7 +5871,7 @@ class RosterWindow:
for show in ('online', 'chat', 'away', 'xa', 'dnd', 'invisible'):
uf_show = helpers.get_uf_show(show)
liststore.append([uf_show,
- gajim.interface.jabber_state_images['16'][show], show, True])
+ app.interface.jabber_state_images['16'][show], show, True])
# Add a Separator (self._iter_is_separator() checks on string SEPARATOR)
liststore.append(['SEPARATOR', None, '', True])
@@ -5885,7 +5885,7 @@ class RosterWindow:
liststore.append(['SEPARATOR', None, '', True])
uf_show = helpers.get_uf_show('offline')
- liststore.append([uf_show, gajim.interface.jabber_state_images['16'][
+ liststore.append([uf_show, app.interface.jabber_state_images['16'][
'offline'], 'offline', True])
status_combobox_items = ['online', 'chat', 'away', 'xa', 'dnd',
@@ -5903,10 +5903,10 @@ class RosterWindow:
self.previous_status_combobox_active = number_of_menuitem
# Enable/Disable checkboxes at start
- if gajim.config.get('showoffline'):
+ if app.config.get('showoffline'):
self.window.lookup_action('show-active').set_enabled(False)
- if gajim.config.get('show_only_chat_and_online'):
+ if app.config.get('show_only_chat_and_online'):
self.window.lookup_action('show-offline').set_enabled(False)
if self.hpaned.get_child2() is None:
@@ -5932,7 +5932,7 @@ class RosterWindow:
False, 'pixbuf', Column.AVATAR_PIXBUF,
self._fill_avatar_pixbuf_renderer, None))
- if gajim.config.get('avatar_position_in_roster') == 'left':
+ if app.config.get('avatar_position_in_roster') == 'left':
add_avatar_renderer()
self.renderers_list += (
@@ -5958,7 +5958,7 @@ class RosterWindow:
'pixbuf', Column.LOCATION_PIXBUF,
self._fill_pep_pixbuf_renderer, Column.LOCATION_PIXBUF))
- if gajim.config.get('avatar_position_in_roster') == 'right':
+ if app.config.get('avatar_position_in_roster') == 'right':
add_avatar_renderer()
self.renderers_list.append(('padlock', Gtk.CellRendererPixbuf(), False,
@@ -5997,7 +5997,7 @@ class RosterWindow:
self.xml.connect_signals(self)
self.combobox_callback_active = True
- self.collapsed_rows = gajim.config.get('collapsed_rows').split('\t')
+ self.collapsed_rows = app.config.get('collapsed_rows').split('\t')
self.tree.set_has_tooltip(True)
self.tree.set_tooltip_window(tooltips.RosterTooltip(self.window))
self.current_tooltip = None
@@ -6006,32 +6006,32 @@ class RosterWindow:
self._toggeling_row = False
self.setup_and_draw_roster()
- if gajim.config.get('show_roster_on_startup') == 'always':
+ if app.config.get('show_roster_on_startup') == 'always':
self.window.show_all()
- elif gajim.config.get('show_roster_on_startup') == 'never':
- if gajim.config.get('trayicon') != 'always':
+ elif app.config.get('show_roster_on_startup') == 'never':
+ if app.config.get('trayicon') != 'always':
# Without trayicon, user should see the roster!
self.window.show_all()
- gajim.config.set('last_roster_visible', True)
+ app.config.set('last_roster_visible', True)
else:
- if gajim.config.get('last_roster_visible') or \
- gajim.config.get('trayicon') != 'always':
+ if app.config.get('last_roster_visible') or \
+ app.config.get('trayicon') != 'always':
self.window.show_all()
- if not gajim.config.get_per('accounts') or \
- gajim.config.get_per('accounts') == ['Local'] and not \
- gajim.config.get_per('accounts', 'Local', 'active'):
+ if not app.config.get_per('accounts') or \
+ app.config.get_per('accounts') == ['Local'] and not \
+ app.config.get_per('accounts', 'Local', 'active'):
# if we have no account configured or only Local account but not enabled
def _open_wizard():
- gajim.interface.instances['account_creation_wizard'] = \
+ app.interface.instances['account_creation_wizard'] = \
config.AccountCreationWizardWindow()
# Open wizard only after roster is created, so we can make it
# transient for the roster window
GLib.idle_add(_open_wizard)
- if not gajim.ZEROCONF_ACC_NAME in gajim.config.get_per('accounts'):
+ if not app.ZEROCONF_ACC_NAME in app.config.get_per('accounts'):
# Create zeroconf in config file
- from common.zeroconf import connection_zeroconf
- connection_zeroconf.ConnectionZeroconf(gajim.ZEROCONF_ACC_NAME)
+ from gajim.common.zeroconf import connection_zeroconf
+ connection_zeroconf.ConnectionZeroconf(app.ZEROCONF_ACC_NAME)
# Setting CTRL+J to be the shortcut for bringing up the dialog to join a
# conference.
@@ -6058,33 +6058,33 @@ class RosterWindow:
self.rfilter_entry.connect('key-press-event',
self.on_rfilter_entry_key_press_event)
- gajim.ged.register_event_handler('presence-received', ged.GUI1,
+ app.ged.register_event_handler('presence-received', ged.GUI1,
self._nec_presence_received)
# presence has to be fully handled so that contact is added to occupant
# list before roster can be correctly updated
- gajim.ged.register_event_handler('gc-presence-received', ged.GUI2,
+ app.ged.register_event_handler('gc-presence-received', ged.GUI2,
self._nec_gc_presence_received)
- gajim.ged.register_event_handler('roster-received', ged.GUI1,
+ app.ged.register_event_handler('roster-received', ged.GUI1,
self._nec_roster_received)
- gajim.ged.register_event_handler('anonymous-auth', ged.GUI1,
+ app.ged.register_event_handler('anonymous-auth', ged.GUI1,
self._nec_anonymous_auth)
- gajim.ged.register_event_handler('our-show', ged.GUI1,
+ app.ged.register_event_handler('our-show', ged.GUI1,
self._nec_our_show)
- gajim.ged.register_event_handler('connection-type', ged.GUI1,
+ app.ged.register_event_handler('connection-type', ged.GUI1,
self._nec_connection_type)
- gajim.ged.register_event_handler('agent-removed', ged.GUI1,
+ app.ged.register_event_handler('agent-removed', ged.GUI1,
self._nec_agent_removed)
- gajim.ged.register_event_handler('pep-received', ged.GUI1,
+ app.ged.register_event_handler('pep-received', ged.GUI1,
self._nec_pep_received)
- gajim.ged.register_event_handler('vcard-received', ged.GUI1,
+ app.ged.register_event_handler('vcard-received', ged.GUI1,
self._nec_vcard_received)
- gajim.ged.register_event_handler('gc-subject-received', ged.GUI1,
+ app.ged.register_event_handler('gc-subject-received', ged.GUI1,
self._nec_gc_subject_received)
- gajim.ged.register_event_handler('metacontacts-received', ged.GUI2,
+ app.ged.register_event_handler('metacontacts-received', ged.GUI2,
self._nec_metacontacts_received)
- gajim.ged.register_event_handler('signed-in', ged.GUI1,
+ app.ged.register_event_handler('signed-in', ged.GUI1,
self._nec_signed_in)
- gajim.ged.register_event_handler('decrypted-message-received', ged.GUI2,
+ app.ged.register_event_handler('decrypted-message-received', ged.GUI2,
self._nec_decrypted_message_received)
- gajim.ged.register_event_handler('blocking', ged.GUI1,
+ app.ged.register_event_handler('blocking', ged.GUI1,
self._nec_blocking)
diff --git a/gajim/search_window.py b/gajim/search_window.py
index 59037b406..cfdd79b8e 100644
--- a/gajim/search_window.py
+++ b/gajim/search_window.py
@@ -23,15 +23,15 @@ from gi.repository import GLib
from gi.repository import Gtk
from gi.repository import Gdk
-from common import gajim
-from common import dataforms
-from common import ged
+from gajim.common import app
+from gajim.common import dataforms
+from gajim.common import ged
-import gtkgui_helpers
-import dialogs
-import vcard
-import config
-import dataforms_widget
+from gajim import gtkgui_helpers
+from gajim import dialogs
+from gajim import vcard
+from gajim import config
+from gajim import dataforms_widget
class SearchWindow:
def __init__(self, account, jid):
@@ -62,13 +62,13 @@ class SearchWindow:
# Is there a jid column in results ? if -1: no, else column number
self.jid_column = -1
- gajim.ged.register_event_handler('search-form-received', ged.GUI1,
+ app.ged.register_event_handler('search-form-received', ged.GUI1,
self._nec_search_form_received)
- gajim.ged.register_event_handler('search-result-received', ged.GUI1,
+ app.ged.register_event_handler('search-result-received', ged.GUI1,
self._nec_search_result_received)
def request_form(self):
- gajim.connections[self.account].request_search_fields(self.jid)
+ app.connections[self.account].request_search_fields(self.jid)
def pulse_callback(self):
self.progressbar.pulse()
@@ -81,10 +81,10 @@ class SearchWindow:
def on_search_window_destroy(self, widget):
if 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,
+ del app.interface.instances[self.account]['search'][self.jid]
+ app.ged.remove_event_handler('search-form-received', ged.GUI1,
self._nec_search_form_received)
- gajim.ged.remove_event_handler('search-result-received', ged.GUI1,
+ app.ged.remove_event_handler('search-result-received', ged.GUI1,
self._nec_search_result_received)
def on_close_button_clicked(self, button):
@@ -93,13 +93,13 @@ class SearchWindow:
def on_search_button_clicked(self, button):
if self.is_form:
self.data_form_widget.data_form.type_ = 'submit'
- gajim.connections[self.account].send_search_form(self.jid,
+ app.connections[self.account].send_search_form(self.jid,
self.data_form_widget.data_form.get_purged(), True)
else:
infos = self.data_form_widget.get_infos()
if 'instructions' in infos:
del infos['instructions']
- gajim.connections[self.account].send_search_form(self.jid, infos,
+ app.connections[self.account].send_search_form(self.jid, infos,
False)
self.search_vbox.remove(self.data_form_widget)
@@ -122,11 +122,11 @@ class SearchWindow:
if not iter_:
return
jid = model[iter_][self.jid_column]
- if jid in gajim.interface.instances[self.account]['infos']:
- gajim.interface.instances[self.account]['infos'][jid].window.present()
+ if jid in app.interface.instances[self.account]['infos']:
+ app.interface.instances[self.account]['infos'][jid].window.present()
else:
- contact = gajim.contacts.create_contact(jid=jid, account=self.account)
- gajim.interface.instances[self.account]['infos'][jid] = \
+ contact = app.contacts.create_contact(jid=jid, account=self.account)
+ app.interface.instances[self.account]['infos'][jid] = \
vcard.VcardWindow(contact, self.account)
def _nec_search_form_received(self, obj):
diff --git a/gajim/secrets.py b/gajim/secrets.py
index f6e235a9a..7c3f6a02a 100644
--- a/gajim/secrets.py
+++ b/gajim/secrets.py
@@ -19,11 +19,11 @@
## along with Gajim. If not, see .
##
-from common.configpaths import gajimpaths
+from gajim.common.configpaths import gajimpaths
import Crypto
-from common import crypto
-from common import exceptions
+from gajim.common import crypto
+from gajim.common import exceptions
import os
import pickle
diff --git a/gajim/server_info.py b/gajim/server_info.py
index 8109c4ed7..48cc8c9a3 100644
--- a/gajim/server_info.py
+++ b/gajim/server_info.py
@@ -22,9 +22,9 @@ from collections import namedtuple
import nbxmpp
from gi.repository import Gtk
-from common import gajim
-from common import ged
-from gtkgui_helpers import get_icon_pixmap, Color
+from gajim.common import app
+from gajim.common import ged
+from gajim.gtkgui_helpers import get_icon_pixmap, Color
class ServerInfoDialog(Gtk.Dialog):
def __init__(self, account):
@@ -32,7 +32,7 @@ class ServerInfoDialog(Gtk.Dialog):
super().__init__(_('Server Info'), None, flags)
self.account = account
- self.set_transient_for(gajim.interface.roster.window)
+ self.set_transient_for(app.interface.roster.window)
self.set_resizable(False)
grid = Gtk.Grid()
@@ -58,17 +58,17 @@ class ServerInfoDialog(Gtk.Dialog):
self.connect('response', self.on_response)
self.connect('destroy', self.on_destroy)
- gajim.ged.register_event_handler('version-result-received',
+ app.ged.register_event_handler('version-result-received',
ged.CORE,
self._nec_version_result_received)
- gajim.ged.register_event_handler('agent-info-received',
+ app.ged.register_event_handler('agent-info-received',
ged.GUI1,
self._nec_agent_info_received)
self.version = ''
- self.hostname = gajim.get_hostname_from_account(account)
- gajim.connections[account].request_os_info(self.hostname, None)
+ self.hostname = app.get_hostname_from_account(account)
+ app.connections[account].request_os_info(self.hostname, None)
for feature in self.get_features():
self.add_feature(feature)
@@ -111,7 +111,7 @@ class ServerInfoDialog(Gtk.Dialog):
item.get_parent().set_tooltip_text(feature.tooltip)
def get_features(self):
- con = gajim.connections[self.account]
+ con = app.connections[self.account]
Feature = namedtuple('Feature', ['name', 'enabled', 'tooltip'])
return [
@@ -139,12 +139,12 @@ class ServerInfoDialog(Gtk.Dialog):
self.destroy()
def on_destroy(self, *args):
- del gajim.interface.instances[self.account]['server_info']
- gajim.ged.remove_event_handler('version-result-received',
+ del app.interface.instances[self.account]['server_info']
+ app.ged.remove_event_handler('version-result-received',
ged.CORE,
self._nec_version_result_received)
- gajim.ged.remove_event_handler('agent-info-received',
+ app.ged.remove_event_handler('agent-info-received',
ged.GUI1,
self._nec_agent_info_received)
diff --git a/gajim/session.py b/gajim/session.py
index a62bbd2f0..5a44fc260 100644
--- a/gajim/session.py
+++ b/gajim/session.py
@@ -23,30 +23,30 @@
import nbxmpp
-from common import helpers
+from gajim.common import helpers
-from common import events
-from common import exceptions
-from common import gajim
-from common import stanza_session
-from common import contacts
-from common import ged
-from common.connection_handlers_events import ChatstateReceivedEvent, \
+from gajim.common import events
+from gajim.common import exceptions
+from gajim.common import app
+from gajim.common import stanza_session
+from gajim.common import contacts
+from gajim.common import ged
+from gajim.common.connection_handlers_events import ChatstateReceivedEvent, \
InformationEvent
-from common.logger import KindConstant
+from gajim.common.logger import KindConstant
-import message_control
+from gajim import message_control
-import notify
+from gajim import notify
-import dialogs
-import negotiation
+from gajim import dialogs
+from gajim import negotiation
class ChatControlSession(stanza_session.EncryptedStanzaSession):
def __init__(self, conn, jid, thread_id, type_='chat'):
stanza_session.EncryptedStanzaSession.__init__(self, conn, jid, thread_id,
type_='chat')
- gajim.ged.register_event_handler('decrypted-message-received', ged.GUI1,
+ app.ged.register_event_handler('decrypted-message-received', ged.GUI1,
self._nec_decrypted_message_received)
self.control = None
@@ -69,10 +69,10 @@ class ChatControlSession(stanza_session.EncryptedStanzaSession):
"""
if obj.session != self:
return
- contact = gajim.contacts.get_contact(self.conn.name, obj.jid,
+ contact = app.contacts.get_contact(self.conn.name, obj.jid,
obj.resource)
if not contact:
- contact = gajim.contacts.get_gc_contact(self.conn.name, obj.jid,
+ contact = app.contacts.get_gc_contact(self.conn.name, obj.jid,
obj.resource)
if self.resource != obj.resource:
self.resource = obj.resource
@@ -97,7 +97,7 @@ class ChatControlSession(stanza_session.EncryptedStanzaSession):
if obj.forwarded and obj.sent:
log_type = KindConstant.SINGLE_MSG_SENT
- treat_as = gajim.config.get('treat_incoming_messages')
+ treat_as = app.config.get('treat_incoming_messages')
if treat_as:
obj.mtype = treat_as
pm = False
@@ -107,7 +107,7 @@ class ChatControlSession(stanza_session.EncryptedStanzaSession):
obj.mtype = 'pm'
if self.is_loggable() and obj.msgtxt:
- if obj.xhtml and gajim.config.get('log_xhtml_messages'):
+ if obj.xhtml and app.config.get('log_xhtml_messages'):
msg_to_log = obj.xhtml
else:
msg_to_log = obj.msgtxt
@@ -116,7 +116,7 @@ class ChatControlSession(stanza_session.EncryptedStanzaSession):
if not pm:
jid = obj.jid
- obj.msg_log_id = gajim.logger.insert_into_logs(
+ obj.msg_log_id = app.logger.insert_into_logs(
jid, obj.timestamp, log_type,
message=msg_to_log,
subject=obj.subject,
@@ -131,7 +131,7 @@ class ChatControlSession(stanza_session.EncryptedStanzaSession):
contact.chatstate = obj.chatstate
if contact.our_chatstate == 'ask': # we were jep85 disco?
contact.our_chatstate = 'active' # no more
- gajim.nec.push_incoming_event(ChatstateReceivedEvent(None,
+ app.nec.push_incoming_event(ChatstateReceivedEvent(None,
conn=obj.conn, msg_obj=obj))
elif contact.chatstate != 'active':
# got no valid jep85 answer, peer does not support it
@@ -146,12 +146,12 @@ class ChatControlSession(stanza_session.EncryptedStanzaSession):
if not obj.msgtxt: # empty message text
return True
- if gajim.config.get_per('accounts', self.conn.name,
- 'ignore_unknown_contacts') and not gajim.contacts.get_contacts(
+ if app.config.get_per('accounts', self.conn.name,
+ 'ignore_unknown_contacts') and not app.contacts.get_contacts(
self.conn.name, obj.jid) and not pm:
return True
- highest_contact = gajim.contacts.get_contact_with_highest_priority(
+ highest_contact = app.contacts.get_contact_with_highest_priority(
self.conn.name, obj.jid)
# does this resource have the highest priority of any available?
@@ -160,7 +160,7 @@ class ChatControlSession(stanza_session.EncryptedStanzaSession):
'offline'
if not self.control:
- ctrl = gajim.interface.msg_win_mgr.search_control(obj.jid,
+ ctrl = app.interface.msg_win_mgr.search_control(obj.jid,
obj.conn.name, obj.resource)
if ctrl:
self.control = ctrl
@@ -174,8 +174,8 @@ class ChatControlSession(stanza_session.EncryptedStanzaSession):
if not pm:
self.roster_message2(obj)
- if gajim.interface.remote_ctrl:
- gajim.interface.remote_ctrl.raise_signal('NewMessage', (
+ if app.interface.remote_ctrl:
+ app.interface.remote_ctrl.raise_signal('NewMessage', (
self.conn.name, [obj.fjid, obj.msgtxt, obj.timestamp,
obj.encrypted, obj.mtype, obj.subject, obj.chatstate,
obj.msg_log_id, obj.user_nick, obj.xhtml, obj.form_node]))
@@ -193,22 +193,22 @@ class ChatControlSession(stanza_session.EncryptedStanzaSession):
# Try to catch the contact with correct resource
if resource:
fjid = jid + '/' + resource
- contact = gajim.contacts.get_contact(obj.conn.name, jid, resource)
+ contact = app.contacts.get_contact(obj.conn.name, jid, resource)
- highest_contact = gajim.contacts.get_contact_with_highest_priority(
+ highest_contact = app.contacts.get_contact_with_highest_priority(
obj.conn.name, jid)
if not contact:
# If there is another resource, it may be a message from an
# invisible resource
- lcontact = gajim.contacts.get_contacts(obj.conn.name, jid)
+ lcontact = app.contacts.get_contacts(obj.conn.name, jid)
if (len(lcontact) > 1 or (lcontact and lcontact[0].resource and \
lcontact[0].show != 'offline')) and jid.find('@') > 0:
- contact = gajim.contacts.copy_contact(highest_contact)
+ contact = app.contacts.copy_contact(highest_contact)
contact.resource = resource
contact.priority = 0
contact.show = 'offline'
contact.status = ''
- gajim.contacts.add_contact(obj.conn.name, contact)
+ app.contacts.add_contact(obj.conn.name, contact)
else:
# Default to highest prio
@@ -217,11 +217,11 @@ class ChatControlSession(stanza_session.EncryptedStanzaSession):
if not contact:
# contact is not in roster
- contact = gajim.interface.roster.add_to_not_in_the_roster(
+ contact = app.interface.roster.add_to_not_in_the_roster(
obj.conn.name, jid, obj.user_nick)
if not self.control:
- ctrl = gajim.interface.msg_win_mgr.search_control(obj.jid,
+ ctrl = app.interface.msg_win_mgr.search_control(obj.jid,
obj.conn.name, obj.resource)
if ctrl:
self.control = ctrl
@@ -247,7 +247,7 @@ class ChatControlSession(stanza_session.EncryptedStanzaSession):
# Its a Carbon Copied Message we sent
obj.show_in_roster = False
obj.show_in_systray = False
- gajim.events.remove_events(self.conn.name, fjid, types=['chat'])
+ app.events.remove_events(self.conn.name, fjid, types=['chat'])
do_event = False
else:
# Everything else
@@ -269,7 +269,7 @@ class ChatControlSession(stanza_session.EncryptedStanzaSession):
show_in_roster=obj.show_in_roster,
show_in_systray=obj.show_in_systray)
- gajim.events.add_event(self.conn.name, fjid, event)
+ app.events.add_event(self.conn.name, fjid, event)
def roster_message(self, jid, msg, tim, encrypted=False, msg_type='',
subject=None, resource='', msg_log_id=None, user_nick='', xhtml=None,
@@ -286,24 +286,24 @@ class ChatControlSession(stanza_session.EncryptedStanzaSession):
# Try to catch the contact with correct resource
if resource:
fjid = jid + '/' + resource
- contact = gajim.contacts.get_contact(self.conn.name, jid, resource)
+ contact = app.contacts.get_contact(self.conn.name, jid, resource)
- highest_contact = gajim.contacts.get_contact_with_highest_priority(
+ highest_contact = app.contacts.get_contact_with_highest_priority(
self.conn.name, jid)
if not contact:
# If there is another resource, it may be a message from an invisible
# resource
- lcontact = gajim.contacts.get_contacts(self.conn.name, jid)
+ lcontact = app.contacts.get_contacts(self.conn.name, jid)
if (len(lcontact) > 1 or (lcontact and lcontact[0].resource and \
lcontact[0].show != 'offline')) and jid.find('@') > 0:
- contact = gajim.contacts.copy_contact(highest_contact)
+ contact = app.contacts.copy_contact(highest_contact)
contact.resource = resource
if resource:
fjid = jid + '/' + resource
contact.priority = 0
contact.show = 'offline'
contact.status = ''
- gajim.contacts.add_contact(self.conn.name, contact)
+ app.contacts.add_contact(self.conn.name, contact)
else:
# Default to highest prio
@@ -312,11 +312,11 @@ class ChatControlSession(stanza_session.EncryptedStanzaSession):
if not contact:
# contact is not in roster
- contact = gajim.interface.roster.add_to_not_in_the_roster(
+ contact = app.interface.roster.add_to_not_in_the_roster(
self.conn.name, jid, user_nick)
if not self.control:
- ctrl = gajim.interface.msg_win_mgr.get_control(fjid, self.conn.name)
+ ctrl = app.interface.msg_win_mgr.get_control(fjid, self.conn.name)
if ctrl:
self.control = ctrl
self.control.set_session(self)
@@ -324,7 +324,7 @@ class ChatControlSession(stanza_session.EncryptedStanzaSession):
fjid = jid
# Do we have a queue?
- no_queue = len(gajim.events.get_events(self.conn.name, fjid)) == 0
+ no_queue = len(app.events.get_events(self.conn.name, fjid)) == 0
popup = helpers.allow_popup_window(self.conn.name)
@@ -346,7 +346,7 @@ class ChatControlSession(stanza_session.EncryptedStanzaSession):
additional_data=additional_data)
if msg_log_id:
- gajim.logger.set_read_messages([msg_log_id])
+ app.logger.set_read_messages([msg_log_id])
return
@@ -369,30 +369,30 @@ class ChatControlSession(stanza_session.EncryptedStanzaSession):
show_in_roster=show_in_roster, show_in_systray=show_in_systray,
additional_data=additional_data)
- gajim.events.add_event(self.conn.name, fjid, event)
+ app.events.add_event(self.conn.name, fjid, event)
if popup:
if not self.control:
- self.control = gajim.interface.new_chat(contact,
+ self.control = app.interface.new_chat(contact,
self.conn.name, session=self)
- if len(gajim.events.get_events(self.conn.name, fjid)):
+ if len(app.events.get_events(self.conn.name, fjid)):
self.control.read_queue()
else:
if no_queue: # We didn't have a queue: we change icons
- gajim.interface.roster.draw_contact(jid, self.conn.name)
+ app.interface.roster.draw_contact(jid, self.conn.name)
- gajim.interface.roster.show_title() # we show the * or [n]
+ app.interface.roster.show_title() # we show the * or [n]
# Select the big brother contact in roster, it's visible because it has
# events.
- family = gajim.contacts.get_metacontacts_family(self.conn.name, jid)
+ family = app.contacts.get_metacontacts_family(self.conn.name, jid)
if family:
nearby_family, bb_jid, bb_account = \
- gajim.contacts.get_nearby_family_and_big_brother(family,
+ app.contacts.get_nearby_family_and_big_brother(family,
self.conn.name)
else:
bb_jid, bb_account = jid, self.conn.name
- gajim.interface.roster.select_contact(bb_jid, bb_account)
+ app.interface.roster.select_contact(bb_jid, bb_account)
# ---- ESessions stuff ---
@@ -469,13 +469,13 @@ class ChatControlSession(stanza_session.EncryptedStanzaSession):
dialog.destroy()
if is_checked:
- allow_no_log_for = gajim.config.get_per(
+ allow_no_log_for = app.config.get_per(
'accounts', self.conn.name,
'allow_no_log_for').split()
jid = str(self.jid)
if jid not in allow_no_log_for:
allow_no_log_for.append(jid)
- gajim.config.set_per('accounts', self.conn.name,
+ app.config.set_per('accounts', self.conn.name,
'allow_no_log_for', ' '.join(allow_no_log_for))
negotiated.update(ask_user)
@@ -489,7 +489,7 @@ class ChatControlSession(stanza_session.EncryptedStanzaSession):
self.reject_negotiation()
dialog.destroy()
- allow_no_log_for = gajim.config.get_per('accounts',
+ allow_no_log_for = app.config.get_per('accounts',
self.conn.name, 'allow_no_log_for').split()
if str(self.jid) in allow_no_log_for:
dialog = None
@@ -552,17 +552,17 @@ class ChatControlSession(stanza_session.EncryptedStanzaSession):
# around to test my test suite.
if form.getType() == 'form':
if not self.control:
- jid, resource = gajim.get_room_and_nick_from_fjid(str(self.jid))
+ jid, resource = app.get_room_and_nick_from_fjid(str(self.jid))
account = self.conn.name
- contact = gajim.contacts.get_contact(account, str(self.jid),
+ contact = app.contacts.get_contact(account, str(self.jid),
resource)
if not contact:
- contact = gajim.contacts.create_contact(jid=jid, account=account,
+ contact = app.contacts.create_contact(jid=jid, account=account,
resource=resource, show=self.conn.get_status())
- gajim.interface.new_chat(contact, account, resource=resource,
+ app.interface.new_chat(contact, account, resource=resource,
session=self)
negotiation.FeatureNegotiationWindow(account, str(self.jid), self,
diff --git a/gajim/shortcuts_window.py b/gajim/shortcuts_window.py
index dd0bb1f14..49701d530 100644
--- a/gajim/shortcuts_window.py
+++ b/gajim/shortcuts_window.py
@@ -18,9 +18,9 @@
from gi.repository import Gtk
-import gtkgui_helpers
+from gajim import gtkgui_helpers
-from common import helpers
+from gajim.common import helpers
__all__ = ['show']
diff --git a/gajim/statusicon.py b/gajim/statusicon.py
index 4544cb2df..50a745d95 100644
--- a/gajim/statusicon.py
+++ b/gajim/statusicon.py
@@ -27,13 +27,13 @@ from gi.repository import Gtk
from gi.repository import Gdk
import os
-import dialogs
-import config
-import tooltips
-import gtkgui_helpers
+from gajim import dialogs
+from gajim import config
+from gajim import tooltips
+from gajim import gtkgui_helpers
-from common import gajim
-from common import helpers
+from gajim.common import app
+from gajim.common import helpers
class StatusIcon:
"""
@@ -58,15 +58,15 @@ class StatusIcon:
"""
Register listeners to the events class
"""
- gajim.events.event_added_subscribe(self.on_event_added)
- gajim.events.event_removed_subscribe(self.on_event_removed)
+ app.events.event_added_subscribe(self.on_event_added)
+ app.events.event_removed_subscribe(self.on_event_removed)
def unsubscribe_events(self):
"""
Unregister listeners to the events class
"""
- gajim.events.event_added_unsubscribe(self.on_event_added)
- gajim.events.event_removed_unsubscribe(self.on_event_removed)
+ app.events.event_added_unsubscribe(self.on_event_added)
+ app.events.event_removed_unsubscribe(self.on_event_removed)
def on_event_added(self, event):
"""
@@ -141,24 +141,24 @@ class StatusIcon:
image.get_animation().get_static_image())
# self.status_icon.set_from_animation(image.get_animation())
- if not gajim.interface.systray_enabled:
+ if not app.interface.systray_enabled:
return
- if gajim.config.get('trayicon') == 'always':
+ if app.config.get('trayicon') == 'always':
self.status_icon.set_visible(True)
- if gajim.events.get_nb_systray_events():
+ if app.events.get_nb_systray_events():
self.status_icon.set_visible(True)
-# if gajim.config.get('trayicon_blink'):
+# if app.config.get('trayicon_blink'):
# self.status_icon.set_blinking(True)
# else:
image = gtkgui_helpers.load_icon('event')
really_set_img()
return
else:
- if gajim.config.get('trayicon') == 'on_event':
+ if app.config.get('trayicon') == 'on_event':
self.status_icon.set_visible(False)
# self.status_icon.set_blinking(False)
- image = gajim.interface.jabber_state_images[self.statusicon_size][
+ image = app.interface.jabber_state_images[self.statusicon_size][
self.status]
really_set_img()
@@ -172,13 +172,13 @@ class StatusIcon:
self.set_img()
def start_chat(self, widget, account, jid):
- contact = gajim.contacts.get_first_contact_from_jid(account, jid)
- if gajim.interface.msg_win_mgr.has_window(jid, account):
- gajim.interface.msg_win_mgr.get_window(jid, account).set_active_tab(
+ contact = app.contacts.get_first_contact_from_jid(account, jid)
+ if app.interface.msg_win_mgr.has_window(jid, account):
+ app.interface.msg_win_mgr.get_window(jid, account).set_active_tab(
jid, account)
elif contact:
- gajim.interface.new_chat(contact, account)
- gajim.interface.msg_win_mgr.get_window(jid, account).set_active_tab(
+ app.interface.new_chat(contact, account)
+ app.interface.msg_win_mgr.get_window(jid, account).set_active_tab(
jid, account)
def on_single_message_menuitem_activate(self, widget, account):
@@ -218,7 +218,7 @@ class StatusIcon:
join_gc_menuitem.set_submenu(gc_sub_menu)
# We need our own set of status icons, let's make 'em!
- iconset = gajim.config.get('iconset')
+ iconset = app.config.get('iconset')
path = os.path.join(helpers.get_iconset_path(iconset), '16x16')
for show in ('online', 'chat', 'away', 'xa', 'dnd', 'invisible'):
@@ -234,7 +234,7 @@ class StatusIcon:
sub_menu.append(item)
item.connect('activate', self.on_change_status_message_activate)
- connected_accounts = gajim.get_number_of_connected_accounts()
+ connected_accounts = app.get_number_of_connected_accounts()
if connected_accounts < 1:
item.set_sensitive(False)
@@ -249,12 +249,12 @@ class StatusIcon:
item.connect('activate', self.on_show_menuitem_activate, 'offline')
iskey = connected_accounts > 0 and not (connected_accounts == 1 and
- gajim.zeroconf_is_connected())
+ app.zeroconf_is_connected())
chat_with_menuitem.set_sensitive(iskey)
single_message_menuitem.set_sensitive(iskey)
join_gc_menuitem.set_sensitive(iskey)
- accounts_list = sorted(gajim.contacts.get_accounts())
+ accounts_list = sorted(app.contacts.get_accounts())
# items that get shown whether an account is zeroconf or not
if connected_accounts > 1: # 2 or more connections? make submenus
account_menu_for_chat_with = Gtk.Menu()
@@ -262,7 +262,7 @@ class StatusIcon:
self.popup_menus.append(account_menu_for_chat_with)
for account in accounts_list:
- if gajim.account_is_connected(account):
+ if app.account_is_connected(account):
# for chat_with
item = Gtk.MenuItem.new_with_label(
_('using account %s') % account)
@@ -271,8 +271,8 @@ class StatusIcon:
elif connected_accounts == 1: # one account
# one account connected, no need to show 'as jid'
- for account in gajim.connections:
- if gajim.connections[account].connected > 1:
+ for account in app.connections:
+ if app.connections[account].connected > 1:
# for start chat
self.new_chat_handler_id = chat_with_menuitem.connect(
'activate', self.on_new_chat, account)
@@ -280,13 +280,13 @@ class StatusIcon:
# menu items that don't apply to zeroconf connections
if connected_accounts == 1 or (connected_accounts == 2 and \
- gajim.zeroconf_is_connected()):
+ app.zeroconf_is_connected()):
# only one 'real' (non-zeroconf) account is connected, don't need
# submenus
- for account in gajim.connections:
- if gajim.account_is_connected(account) and \
- not gajim.config.get_per('accounts', account, 'is_zeroconf'):
- if gajim.connections[account].private_storage_supported:
+ for account in app.connections:
+ if app.account_is_connected(account) and \
+ not app.config.get_per('accounts', account, 'is_zeroconf'):
+ if app.connections[account].private_storage_supported:
connected_accounts_with_private_storage += 1
# for single message
@@ -295,7 +295,7 @@ class StatusIcon:
connect('activate',
self.on_single_message_menuitem_activate, account)
# join gc
- gajim.interface.roster.add_bookmarks_list(gc_sub_menu,
+ app.interface.roster.add_bookmarks_list(gc_sub_menu,
account)
break # No other account connected
else:
@@ -306,10 +306,10 @@ class StatusIcon:
self.popup_menus.append(account_menu_for_single_message)
for account in accounts_list:
- if gajim.connections[account].is_zeroconf or \
- not gajim.account_is_connected(account):
+ if app.connections[account].is_zeroconf or \
+ not app.account_is_connected(account):
continue
- if gajim.connections[account].private_storage_supported:
+ if app.connections[account].private_storage_supported:
connected_accounts_with_private_storage += 1
# for single message
item = Gtk.MenuItem.new_with_label(
@@ -323,7 +323,7 @@ class StatusIcon:
_('using account %s') % account)
gc_sub_menu.append(gc_item)
gc_menuitem_menu = Gtk.Menu()
- gajim.interface.roster.add_bookmarks_list(gc_menuitem_menu,
+ app.interface.roster.add_bookmarks_list(gc_menuitem_menu,
account)
gc_item.set_submenu(gc_menuitem_menu)
gc_sub_menu.show_all()
@@ -332,14 +332,14 @@ class StatusIcon:
gc_sub_menu.append(newitem)
newitem = Gtk.MenuItem.new_with_mnemonic(_('_Manage Bookmarks…'))
newitem.connect('activate',
- gajim.interface.roster.on_manage_bookmarks_menuitem_activate)
+ app.interface.roster.on_manage_bookmarks_menuitem_activate)
gc_sub_menu.append(newitem)
if connected_accounts_with_private_storage == 0:
newitem.set_sensitive(False)
- sounds_mute_menuitem.set_active(not gajim.config.get('sounds_on'))
+ sounds_mute_menuitem.set_active(not app.config.get('sounds_on'))
- win = gajim.interface.roster.window
+ win = app.interface.roster.window
if self.show_roster_handler_id:
show_roster_menuitem.handler_disconnect(self.show_roster_handler_id)
if win.get_property('has-toplevel-focus'):
@@ -363,35 +363,35 @@ class StatusIcon:
self.systray_context_menu.popup(None, None, None, None, 0, event_time)
def on_show_all_events_menuitem_activate(self, widget):
- events = gajim.events.get_systray_events()
+ events = app.events.get_systray_events()
for account in events:
for jid in events[account]:
for event in events[account][jid]:
- gajim.interface.handle_event(account, jid, event.type_)
+ app.interface.handle_event(account, jid, event.type_)
def on_sounds_mute_menuitem_activate(self, widget):
- gajim.config.set('sounds_on', not widget.get_active())
+ app.config.set('sounds_on', not widget.get_active())
def on_show_roster_menuitem_activate(self, widget):
- win = gajim.interface.roster.window
+ win = app.interface.roster.window
win.present()
def on_hide_roster_menuitem_activate(self, widget):
- win = gajim.interface.roster.window
+ win = app.interface.roster.window
win.hide()
def on_preferences_menuitem_activate(self, widget):
- if 'preferences' in gajim.interface.instances:
- gajim.interface.instances['preferences'].window.present()
+ if 'preferences' in app.interface.instances:
+ app.interface.instances['preferences'].window.present()
else:
- gajim.interface.instances['preferences'] = config.PreferencesWindow()
+ app.interface.instances['preferences'] = config.PreferencesWindow()
def on_quit_menuitem_activate(self, widget):
- gajim.interface.roster.on_quit_request()
+ app.interface.roster.on_quit_request()
def on_left_click(self):
- win = gajim.interface.roster.window
- if len(gajim.events.get_systray_events()) == 0:
+ win = app.interface.roster.window
+ if len(app.events.get_systray_events()) == 0:
# No pending events, so toggle visible/hidden for roster window
if win.get_property('visible') and (win.get_property(
'has-toplevel-focus') or os.name == 'nt'):
@@ -400,42 +400,42 @@ class StatusIcon:
# we could be in another VD right now. eg vd2
# and we want to show it in vd2
if not gtkgui_helpers.possibly_move_window_in_current_desktop(
- win) and gajim.config.get('save-roster-position'):
+ win) and app.config.get('save-roster-position'):
x, y = win.get_position()
- gajim.config.set('roster_x-position', x)
- gajim.config.set('roster_y-position', y)
+ app.config.set('roster_x-position', x)
+ app.config.set('roster_y-position', y)
win.hide() # else we hide it from VD that was visible in
else:
if not win.get_property('visible'):
win.show_all()
- if gajim.config.get('save-roster-position'):
+ if app.config.get('save-roster-position'):
gtkgui_helpers.move_window(win,
- gajim.config.get('roster_x-position'),
- gajim.config.get('roster_y-position'))
- if not gajim.config.get('roster_window_skip_taskbar'):
+ app.config.get('roster_x-position'),
+ app.config.get('roster_y-position'))
+ if not app.config.get('roster_window_skip_taskbar'):
win.set_property('skip-taskbar-hint', False)
win.present_with_time(Gtk.get_current_event_time())
else:
self.handle_first_event()
def handle_first_event(self):
- account, jid, event = gajim.events.get_first_systray_event()
+ account, jid, event = app.events.get_first_systray_event()
if not event:
return
- win = gajim.interface.roster.window
- if not win.get_property('visible') and gajim.config.get(
+ win = app.interface.roster.window
+ if not win.get_property('visible') and app.config.get(
'save-roster-position'):
gtkgui_helpers.move_window(win,
- gajim.config.get('roster_x-position'),
- gajim.config.get('roster_y-position'))
- gajim.interface.handle_event(account, jid, event.type_)
+ app.config.get('roster_x-position'),
+ app.config.get('roster_y-position'))
+ app.interface.handle_event(account, jid, event.type_)
def on_middle_click(self):
"""
Middle click raises window to have complete focus (fe. get kbd events)
but if already raised, it hides it
"""
- win = gajim.interface.roster.window
+ win = app.interface.roster.window
if win.is_active(): # is it fully raised? (eg does it receive kbd events?)
win.hide()
else:
@@ -459,26 +459,26 @@ class StatusIcon:
'CHANGE_STATUS_MSG_MENUITEM', 'SEPARATOR', 'offline']
index = l.index(show)
if not helpers.statuses_unified():
- gajim.interface.roster.status_combobox.set_active(index + 2)
+ app.interface.roster.status_combobox.set_active(index + 2)
return
- current = gajim.interface.roster.status_combobox.get_active()
+ current = app.interface.roster.status_combobox.get_active()
if index != current:
- gajim.interface.roster.status_combobox.set_active(index)
+ app.interface.roster.status_combobox.set_active(index)
def on_change_status_message_activate(self, widget):
- model = gajim.interface.roster.status_combobox.get_model()
- active = gajim.interface.roster.status_combobox.get_active()
+ model = app.interface.roster.status_combobox.get_model()
+ active = app.interface.roster.status_combobox.get_active()
status = model[active][2]
def on_response(message, pep_dict):
if message is None: # None if user press Cancel
return
- accounts = gajim.connections.keys()
+ accounts = app.connections.keys()
for acct in accounts:
- if not gajim.config.get_per('accounts', acct,
+ if not app.config.get_per('accounts', acct,
'sync_with_global_status'):
continue
- show = gajim.SHOW_LIST[gajim.connections[acct].connected]
- gajim.interface.roster.send_status(acct, show, message)
- gajim.interface.roster.send_pep(acct, pep_dict)
+ show = app.SHOW_LIST[app.connections[acct].connected]
+ app.interface.roster.send_status(acct, show, message)
+ app.interface.roster.send_pep(acct, pep_dict)
dlg = dialogs.ChangeStatusMessageDialog(on_response, status)
dlg.dialog.present()
diff --git a/gajim/tooltips.py b/gajim/tooltips.py
index 389260b5d..17da32219 100644
--- a/gajim/tooltips.py
+++ b/gajim/tooltips.py
@@ -37,11 +37,11 @@ import time
from datetime import datetime
from datetime import timedelta
-import gtkgui_helpers
+from gajim import gtkgui_helpers
-from common import gajim
-from common import helpers
-from common.i18n import Q_
+from gajim.common import app
+from gajim.common import helpers
+from gajim.common.i18n import Q_
class BaseTooltip:
"""
@@ -273,7 +273,7 @@ class NotificationAreaTooltip(BaseTooltip, StatusTable):
StatusTable.__init__(self)
def fill_table_with_accounts(self, accounts):
- iconset = gajim.config.get('iconset')
+ iconset = app.config.get('iconset')
if not iconset:
iconset = 'dcraven'
file_path = os.path.join(helpers.get_iconset_path(iconset), '16x16')
@@ -281,8 +281,8 @@ class NotificationAreaTooltip(BaseTooltip, StatusTable):
message = acct['message']
message = helpers.reduce_chars_newlines(message, 100, 1)
message = GLib.markup_escape_text(message)
- if acct['name'] in gajim.con_types and \
- gajim.con_types[acct['name']] in ('tls', 'ssl'):
+ if acct['name'] in app.con_types and \
+ app.con_types[acct['name']] in ('tls', 'ssl'):
show_lock = True
else:
show_lock = False
@@ -381,7 +381,7 @@ class GCTooltip(Gtk.Window):
# Avatar
puny_name = helpers.sanitize_filename(contact.name)
puny_room = helpers.sanitize_filename(contact.room_jid)
- file_ = helpers.get_avatar_path(os.path.join(gajim.AVATAR_PATH,
+ file_ = helpers.get_avatar_path(os.path.join(app.AVATAR_PATH,
puny_room, puny_name))
if file_:
with open(file_, 'rb') as file_data:
@@ -400,13 +400,13 @@ class GCTooltip(Gtk.Window):
formatted = "%s"
color = None
if affiliation.startswith(Q_("?Group Chat Contact Affiliation:None")):
- color = gajim.config.get('tooltip_affiliation_none_color')
+ color = app.config.get('tooltip_affiliation_none_color')
elif affiliation.startswith(_("Member")):
- color = gajim.config.get('tooltip_affiliation_member_color')
+ color = app.config.get('tooltip_affiliation_member_color')
elif affiliation.startswith(_("Administrator")):
- color = gajim.config.get('tooltip_affiliation_administrator_color')
+ color = app.config.get('tooltip_affiliation_administrator_color')
elif affiliation.startswith(_("Owner")):
- color = gajim.config.get('tooltip_affiliation_owner_color')
+ color = app.config.get('tooltip_affiliation_owner_color')
if color:
affiliation = formatted % (color, affiliation)
return affiliation
@@ -451,7 +451,7 @@ class RosterTooltip(Gtk.Window, StatusTable):
self.create_table()
def fill_table_with_accounts(self, accounts):
- iconset = gajim.config.get('iconset')
+ iconset = app.config.get('iconset')
if not iconset:
iconset = 'dcraven'
file_path = os.path.join(helpers.get_iconset_path(iconset), '16x16')
@@ -459,8 +459,8 @@ class RosterTooltip(Gtk.Window, StatusTable):
message = acct['message']
message = helpers.reduce_chars_newlines(message, 100, 1)
message = GLib.markup_escape_text(message)
- if acct['name'] in gajim.con_types and \
- gajim.con_types[acct['name']] in ('tls', 'ssl'):
+ if acct['name'] in app.con_types and \
+ app.con_types[acct['name']] in ('tls', 'ssl'):
show_lock = True
else:
show_lock = False
@@ -496,25 +496,25 @@ class RosterTooltip(Gtk.Window, StatusTable):
return
if typ == 'account':
- jid = gajim.get_jid_from_account(account)
+ jid = app.get_jid_from_account(account)
contacts = []
- connection = gajim.connections[account]
+ connection = app.connections[account]
# get our current contact info
- nbr_on, nbr_total = gajim.\
+ nbr_on, nbr_total = app.\
contacts.get_nb_online_total_contacts(
accounts=[account])
account_name = account
- if gajim.account_is_connected(account):
+ if app.account_is_connected(account):
account_name += ' (%s/%s)' % (repr(nbr_on),
repr(nbr_total))
- contact = gajim.contacts.create_self_contact(jid=jid,
+ contact = app.contacts.create_self_contact(jid=jid,
account=account, name=account_name,
show=connection.get_status(), status=connection.status,
resource=connection.server_resource,
priority=connection.priority)
- if gajim.connections[account].gpg:
- contact.keyID = gajim.config.get_per('accounts',
+ if app.connections[account].gpg:
+ contact.keyID = app.config.get_per('accounts',
connection.name, 'keyid')
contacts.append(contact)
# if we're online ...
@@ -538,7 +538,7 @@ class RosterTooltip(Gtk.Window, StatusTable):
show = roster.getShow(jid + '/' + resource)
if not show:
show = 'online'
- contact = gajim.contacts.create_self_contact(
+ contact = app.contacts.create_self_contact(
jid=jid, account=account, show=show,
status=roster.getStatus(
jid + '/' + resource),
@@ -547,13 +547,13 @@ class RosterTooltip(Gtk.Window, StatusTable):
contacts.append(contact)
# Username/Account/Groupchat
- self.prim_contact = gajim.contacts.get_highest_prio_contact_from_contacts(
+ self.prim_contact = app.contacts.get_highest_prio_contact_from_contacts(
contacts)
self.contact_jid = self.prim_contact.jid
name = GLib.markup_escape_text(self.prim_contact.get_shown_name())
name_markup = '{}'.format(name)
- if gajim.config.get('mergeaccounts'):
- color = gajim.config.get('tooltip_account_name_color')
+ if app.config.get('mergeaccounts'):
+ color = app.config.get('tooltip_account_name_color')
account_name = GLib.markup_escape_text(self.prim_contact.account.name)
name_markup += " ({})".format(
color, account_name)
@@ -562,7 +562,7 @@ class RosterTooltip(Gtk.Window, StatusTable):
name_markup += _(' [blocked]')
try:
- if self.prim_contact.jid in gajim.interface.minimized_controls[account]:
+ if self.prim_contact.jid in app.interface.minimized_controls[account]:
name_markup += _(' [minimized]')
except KeyError:
pass
@@ -583,12 +583,12 @@ class RosterTooltip(Gtk.Window, StatusTable):
contacts_dict[priority] = [contact]
if self.num_resources > 1:
self.status_label.show()
- transport = gajim.get_transport_name_from_jid(self.prim_contact.jid)
+ transport = app.get_transport_name_from_jid(self.prim_contact.jid)
if transport:
file_path = os.path.join(helpers.get_transport_path(transport),
'16x16')
else:
- iconset = gajim.config.get('iconset')
+ iconset = app.config.get('iconset')
if not iconset:
iconset = 'dcraven'
file_path = os.path.join(helpers.get_iconset_path(iconset),
@@ -639,7 +639,7 @@ class RosterTooltip(Gtk.Window, StatusTable):
self.resource.show()
self.resource_label.show()
- if self.prim_contact.jid not in gajim.gc_connected[account]:
+ if self.prim_contact.jid not in app.gc_connected[account]:
if (account and
self.prim_contact.sub and
self.prim_contact.sub != 'both'):
@@ -663,7 +663,7 @@ class RosterTooltip(Gtk.Window, StatusTable):
# Avatar
puny_jid = helpers.sanitize_filename(self.prim_contact.jid)
- file_ = helpers.get_avatar_path(os.path.join(gajim.AVATAR_PATH,
+ file_ = helpers.get_avatar_path(os.path.join(app.AVATAR_PATH,
puny_jid))
if file_:
with open(file_, 'rb') as file_data:
@@ -713,7 +713,7 @@ class RosterTooltip(Gtk.Window, StatusTable):
def _set_idle_time(self, contact):
if contact.idle_time:
- idle_color = gajim.config.get('tooltip_idle_color')
+ idle_color = app.config.get('tooltip_idle_color')
idle_time = contact.idle_time
idle_time = time.localtime(contact.idle_time)
idle_time = datetime(*(idle_time[:6]))
@@ -732,8 +732,8 @@ class RosterTooltip(Gtk.Window, StatusTable):
show = helpers.get_uf_show(contact.show)
# Contact is Groupchat
if (self.account and
- self.prim_contact.jid in gajim.gc_connected[self.account]):
- if gajim.gc_connected[self.account][self.prim_contact.jid]:
+ self.prim_contact.jid in app.gc_connected[self.account]):
+ if app.gc_connected[self.account][self.prim_contact.jid]:
show = _('Connected')
else:
show = _('Disconnected')
@@ -779,7 +779,7 @@ class FileTransfersTooltip(BaseTooltip):
type_ = _('?Noun:Download')
actor = _('Sender: ')
sender = file_props.sender.split('/')[0]
- name = gajim.contacts.get_first_contact_from_jid(
+ name = app.contacts.get_first_contact_from_jid(
file_props.tt_account, sender).get_shown_name()
else:
type_ = _('?Noun:Upload')
@@ -848,17 +848,17 @@ def colorize_status(status):
formatted = "%s"
color = None
if status.startswith(Q_("?user status:Available")):
- color = gajim.config.get('tooltip_status_online_color')
+ color = app.config.get('tooltip_status_online_color')
elif status.startswith(_("Free for Chat")):
- color = gajim.config.get('tooltip_status_free_for_chat_color')
+ color = app.config.get('tooltip_status_free_for_chat_color')
elif status.startswith(_("Away")):
- color = gajim.config.get('tooltip_status_away_color')
+ color = app.config.get('tooltip_status_away_color')
elif status.startswith(_("Busy")):
- color = gajim.config.get('tooltip_status_busy_color')
+ color = app.config.get('tooltip_status_busy_color')
elif status.startswith(_("Not Available")):
- color = gajim.config.get('tooltip_status_na_color')
+ color = app.config.get('tooltip_status_na_color')
elif status.startswith(_("Offline")):
- color = gajim.config.get('tooltip_status_offline_color')
+ color = app.config.get('tooltip_status_offline_color')
if color:
status = formatted % (color, status)
return status
diff --git a/gajim/upower_listener.py b/gajim/upower_listener.py
index 744399689..544dca535 100644
--- a/gajim/upower_listener.py
+++ b/gajim/upower_listener.py
@@ -20,13 +20,13 @@
supported = False
-from common import dbus_support
-from common import gajim
+from gajim.common import dbus_support
+from gajim.common import app
def on_suspend(*args, **kwargs):
- for name, conn in gajim.connections.items():
- if gajim.account_is_connected(name):
- conn.old_show = gajim.SHOW_LIST[conn.connected]
+ for name, conn in app.connections.items():
+ if app.account_is_connected(name):
+ conn.old_show = app.SHOW_LIST[conn.connected]
st = conn.status
conn.change_status('offline', _('Machine going to sleep'))
conn.status = st
@@ -34,7 +34,7 @@ def on_suspend(*args, **kwargs):
if dbus_support.supported:
try:
- from common.dbus_support import system_bus
+ from gajim.common.dbus_support import system_bus
bus = system_bus.bus()
if 'org.freedesktop.UPower' in bus.list_names():
up_object = bus.get_object('org.freedesktop.UPower',
diff --git a/gajim/vcard.py b/gajim/vcard.py
index 033b13283..3791f2d86 100644
--- a/gajim/vcard.py
+++ b/gajim/vcard.py
@@ -40,12 +40,12 @@ import locale
import os
# import logging
-import gtkgui_helpers
+from gajim import gtkgui_helpers
-from common import helpers
-from common import gajim
-from common import ged
-from common.i18n import Q_
+from gajim.common import helpers
+from gajim.common import app
+from gajim.common import ged
+from gajim.common.i18n import Q_
# log = logging.getLogger('gajim.vcard')
@@ -96,7 +96,7 @@ class VcardWindow:
# Get real jid
if gc_contact:
# Don't use real jid if room is (semi-)anonymous
- gc_control = gajim.interface.msg_win_mgr.get_gc_control(
+ gc_control = app.interface.msg_win_mgr.get_gc_control(
gc_contact.room_jid, account)
if gc_contact.jid and not gc_control.is_anonymous:
self.real_jid = gc_contact.jid
@@ -112,7 +112,7 @@ class VcardWindow:
self.real_resource = contact.resource
puny_jid = helpers.sanitize_filename(contact.jid)
- local_avatar_basepath = os.path.join(gajim.AVATAR_PATH, puny_jid) + \
+ local_avatar_basepath = os.path.join(app.AVATAR_PATH, puny_jid) + \
'_local'
for extension in ('.png', '.jpeg'):
local_avatar_path = local_avatar_basepath + extension
@@ -132,15 +132,15 @@ class VcardWindow:
self.update_progressbar_timeout_id = GLib.timeout_add(self.update_intervall,
self.update_progressbar)
- gajim.ged.register_event_handler('version-result-received', ged.GUI1,
+ app.ged.register_event_handler('version-result-received', ged.GUI1,
self.set_os_info)
- gajim.ged.register_event_handler('time-result-received', ged.GUI1,
+ app.ged.register_event_handler('time-result-received', ged.GUI1,
self.set_entity_time)
- gajim.ged.register_event_handler('vcard-received', ged.GUI1,
+ app.ged.register_event_handler('vcard-received', ged.GUI1,
self._nec_vcard_received)
self.fill_jabber_page()
- annotations = gajim.connections[self.account].annotations
+ annotations = app.connections[self.account].annotations
if self.contact.jid in annotations:
buffer_ = self.xml.get_object('textview_annotation').get_buffer()
buffer_.set_text(annotations[self.contact.jid])
@@ -169,19 +169,19 @@ class VcardWindow:
def on_vcard_information_window_destroy(self, widget):
if self.update_progressbar_timeout_id is not None:
GLib.source_remove(self.update_progressbar_timeout_id)
- del gajim.interface.instances[self.account]['infos'][self.contact.jid]
+ del app.interface.instances[self.account]['infos'][self.contact.jid]
buffer_ = self.xml.get_object('textview_annotation').get_buffer()
annotation = buffer_.get_text(buffer_.get_start_iter(),
buffer_.get_end_iter(), True)
- connection = gajim.connections[self.account]
+ connection = app.connections[self.account]
if annotation != connection.annotations.get(self.contact.jid, ''):
connection.annotations[self.contact.jid] = annotation
connection.store_annotations()
- gajim.ged.remove_event_handler('version-result-received', ged.GUI1,
+ app.ged.remove_event_handler('version-result-received', ged.GUI1,
self.set_os_info)
- gajim.ged.remove_event_handler('time-result-received', ged.GUI1,
+ app.ged.remove_event_handler('time-result-received', ged.GUI1,
self.set_entity_time)
- gajim.ged.remove_event_handler('vcard-received', ged.GUI1,
+ app.ged.remove_event_handler('vcard-received', ged.GUI1,
self._nec_vcard_received)
def on_vcard_information_window_key_press_event(self, widget, event):
@@ -298,7 +298,7 @@ class VcardWindow:
if self.gc_contact:
if obj.fjid != self.contact.jid:
return
- elif gajim.get_jid_without_resource(obj.fjid) != self.contact.jid:
+ elif app.get_jid_without_resource(obj.fjid) != self.contact.jid:
return
i = 0
client = ''
@@ -337,7 +337,7 @@ class VcardWindow:
if self.gc_contact:
if obj.fjid != self.contact.jid:
return
- elif gajim.get_jid_without_resource(obj.fjid) != self.contact.jid:
+ elif app.get_jid_without_resource(obj.fjid) != self.contact.jid:
return
i = 0
time_s = ''
@@ -361,7 +361,7 @@ class VcardWindow:
def fill_status_label(self):
if self.xml.get_object('information_notebook').get_n_pages() < 5:
return
- contact_list = gajim.contacts.get_contacts(self.account, self.contact.jid)
+ contact_list = app.contacts.get_contacts(self.account, self.contact.jid)
connected_contact_list = []
for c in contact_list:
if c.show not in ('offline', 'error'):
@@ -442,11 +442,11 @@ class VcardWindow:
self.os_info_arrived = True
else: # Request os info if contact is connected
if self.gc_contact:
- j, r = gajim.get_room_and_nick_from_fjid(self.real_jid)
- GLib.idle_add(gajim.connections[self.account].request_os_info,
+ j, r = app.get_room_and_nick_from_fjid(self.real_jid)
+ GLib.idle_add(app.connections[self.account].request_os_info,
j, r, self.contact.jid)
else:
- GLib.idle_add(gajim.connections[self.account].request_os_info,
+ GLib.idle_add(app.connections[self.account].request_os_info,
self.contact.jid, self.contact.resource)
# do not wait for entity_time if contact is not connected or has error
@@ -456,18 +456,18 @@ class VcardWindow:
self.entity_time_arrived = True
else: # Request entity time if contact is connected
if self.gc_contact:
- j, r = gajim.get_room_and_nick_from_fjid(self.real_jid)
- GLib.idle_add(gajim.connections[self.account].\
+ j, r = app.get_room_and_nick_from_fjid(self.real_jid)
+ GLib.idle_add(app.connections[self.account].\
request_entity_time, j, r, self.contact.jid)
else:
- GLib.idle_add(gajim.connections[self.account].\
+ GLib.idle_add(app.connections[self.account].\
request_entity_time, self.contact.jid, self.contact.resource)
self.os_info = {0: {'resource': self.real_resource, 'client': '',
'os': ''}}
self.time_info = {0: {'resource': self.real_resource, 'time': ''}}
i = 1
- contact_list = gajim.contacts.get_contacts(self.account, self.contact.jid)
+ contact_list = app.contacts.get_contacts(self.account, self.contact.jid)
if contact_list:
for c in contact_list:
if c.resource != self.contact.resource:
@@ -476,9 +476,9 @@ class VcardWindow:
uf_resources += '\n' + c.resource + \
_(' resource with priority ') + str(c.priority)
if c.show not in ('offline', 'error'):
- GLib.idle_add(gajim.connections[self.account].\
+ GLib.idle_add(app.connections[self.account].\
request_os_info, c.jid, c.resource)
- GLib.idle_add(gajim.connections[self.account].\
+ GLib.idle_add(app.connections[self.account].\
request_entity_time, c.jid, c.resource)
self.os_info[i] = {'resource': c.resource, 'client': '',
'os': ''}
@@ -494,10 +494,10 @@ class VcardWindow:
if self.gc_contact:
# If we know the real jid, remove the resource from vcard request
- gajim.connections[self.account].request_vcard(self.real_jid_for_vcard,
+ app.connections[self.account].request_vcard(self.real_jid_for_vcard,
self.gc_contact.get_full_jid())
else:
- gajim.connections[self.account].request_vcard(self.contact.jid)
+ app.connections[self.account].request_vcard(self.contact.jid)
def on_close_button_clicked(self, widget):
self.window.destroy()
@@ -523,7 +523,7 @@ class ZeroconfVcardWindow:
self.window.show_all()
def on_zeroconf_information_window_destroy(self, widget):
- del gajim.interface.instances[self.account]['infos'][self.contact.jid]
+ del app.interface.instances[self.account]['infos'][self.contact.jid]
def on_zeroconf_information_window_key_press_event(self, widget, event):
if event.keyval == Gdk.KEY_Escape:
@@ -561,7 +561,7 @@ class ZeroconfVcardWindow:
def fill_status_label(self):
if self.xml.get_object('information_notebook').get_n_pages() < 2:
return
- contact_list = gajim.contacts.get_contacts(self.account, self.contact.jid)
+ contact_list = app.contacts.get_contacts(self.account, self.contact.jid)
# stats holds show and status message
stats = ''
one = True # Are we adding the first line ?
@@ -603,7 +603,7 @@ class ZeroconfVcardWindow:
self.fill_status_label()
def fill_personal_page(self):
- contact = gajim.connections[gajim.ZEROCONF_ACC_NAME].roster.getItem(self.contact.jid)
+ contact = app.connections[app.ZEROCONF_ACC_NAME].roster.getItem(self.contact.jid)
for key in ('1st', 'last', 'jid', 'email'):
if key not in contact['txt_dict']:
contact['txt_dict'][key] = ''
diff --git a/launch.py b/launch.py
new file mode 100755
index 000000000..d7a031d93
--- /dev/null
+++ b/launch.py
@@ -0,0 +1,12 @@
+#!/usr/bin/python3 -OO
+
+import os
+import sys
+
+if sys.platform != 'win32':
+ if os.geteuid() == 0:
+ sys.exit("You must not launch gajim as root, it is insecure.")
+
+import gajim.gajim as g
+
+g.GajimApplication().run(sys.argv)
diff --git a/launch.sh b/launch.sh
deleted file mode 100755
index b0339c655..000000000
--- a/launch.sh
+++ /dev/null
@@ -1,6 +0,0 @@
-#!/bin/sh
-if [ ! $PYTHON ]; then
- PYTHON="python3";
-fi
-cd "$(dirname $0)/gajim"
-exec $PYTHON -OOt gajim.py "$@"
diff --git a/plugins/acronyms_expander/acronyms_expander.py b/plugins/acronyms_expander/acronyms_expander.py
index 4333c532b..f4f05c532 100644
--- a/plugins/acronyms_expander/acronyms_expander.py
+++ b/plugins/acronyms_expander/acronyms_expander.py
@@ -30,8 +30,8 @@ import os
from gi.repository import Gtk
from gi.repository import GObject
-from plugins import GajimPlugin
-from plugins.helpers import log, log_calls
+from gajim.plugins import GajimPlugin
+from gajim.plugins.helpers import log, log_calls
class AcronymsExpanderPlugin(GajimPlugin):
diff --git a/plugins/dbus_plugin/plugin.py b/plugins/dbus_plugin/plugin.py
index 1f6001e99..22d8a853f 100644
--- a/plugins/dbus_plugin/plugin.py
+++ b/plugins/dbus_plugin/plugin.py
@@ -40,7 +40,7 @@ import types
import gobject
-from common import dbus_support
+from gajim.common import dbus_support
if dbus_support.supported:
import dbus
if dbus_support:
@@ -675,14 +675,14 @@ if dbus_support.supported:
else:
gajim.interface.join_gc_room(account, room_jid, nick, password)
-from common import gajim
-from common import helpers
+from gajim.common import app
+from gajim.common import helpers
from time import time
-from dialogs import AddNewContactWindow, NewChatDialog, JoinGroupchatWindow
+from gajim.dialogs import AddNewContactWindow, NewChatDialog, JoinGroupchatWindow
-from plugins import GajimPlugin
-from plugins.helpers import log_calls, log
-from common import ged
+from gajim.plugins import GajimPlugin
+from gajim.plugins.helpers import log_calls, log
+from gajim.common import ged
class DBusPlugin(GajimPlugin):
diff --git a/plugins/events_dump/plugin.py b/plugins/events_dump/plugin.py
index bd298911c..1ecc83e33 100644
--- a/plugins/events_dump/plugin.py
+++ b/plugins/events_dump/plugin.py
@@ -28,9 +28,9 @@ Dumps info about selected events to console.
import types
from pprint import pformat
-from plugins import GajimPlugin
-from plugins.helpers import log_calls, log
-from common import ged
+from gajim.plugins import GajimPlugin
+from gajim.plugins.helpers import log_calls, log
+from gajim.common import ged
class EventsDumpPlugin(GajimPlugin):
diff --git a/plugins/new_events_example/plugin.py b/plugins/new_events_example/plugin.py
index 67de30c31..bff72cd9c 100644
--- a/plugins/new_events_example/plugin.py
+++ b/plugins/new_events_example/plugin.py
@@ -29,13 +29,13 @@ based on existing one.
#import new # Depricated in python3 for types module
from pprint import pformat
-from common import helpers
-from common import gajim
+from gajim.common import helpers
+from gajim.common import app
-from plugins import GajimPlugin
-from plugins.helpers import log_calls, log
-from common import ged
-from common import nec
+from gajim.plugins import GajimPlugin
+from gajim.plugins.helpers import log_calls, log
+from gajim.common import ged
+from gajim.common import nec
class NewEventsExamplePlugin(GajimPlugin):
@@ -128,10 +128,10 @@ class EnrichedChatMessageReceivedEvent(nec.NetworkIncomingEvent):
self.stanza = self.base_event.stanza
self.conn = self.base_event.conn
self.from_jid = helpers.get_full_jid_from_iq(self.stanza)
- self.from_jid_without_resource = gajim.get_jid_without_resource(
+ self.from_jid_without_resource = app.get_jid_without_resource(
self.from_jid)
self.account = self.conn.name
- self.from_nickname = gajim.get_contact_name_from_jid( self.account,
+ self.from_nickname = app.get_contact_name_from_jid( self.account,
self.from_jid_without_resource)
self.msg_text = ''.join(self.stanza.kids[0].data)
diff --git a/plugins/roster_buttons/plugin.py b/plugins/roster_buttons/plugin.py
index 026658b5e..2a62a1595 100644
--- a/plugins/roster_buttons/plugin.py
+++ b/plugins/roster_buttons/plugin.py
@@ -27,10 +27,10 @@ Roster buttons plug-in.
import sys
import gtk
-from common import gajim
+from gajim.common import app
-from plugins import GajimPlugin
-from plugins.helpers import log, log_calls
+from gajim.plugins import GajimPlugin
+from gajim.plugins.helpers import log, log_calls
class RosterButtonsPlugin(GajimPlugin):
@@ -38,8 +38,8 @@ class RosterButtonsPlugin(GajimPlugin):
def init(self):
self.description = _('Adds quick action buttons to roster window.')
self.GTK_BUILDER_FILE_PATH = self.local_file_path('roster_buttons.ui')
- self.roster_vbox = gajim.interface.roster.xml.get_object('roster_vbox2')
- self.show_offline_contacts_menuitem = gajim.interface.roster.xml.get_object('show_offline_contacts_menuitem')
+ self.roster_vbox = app.interface.roster.xml.get_object('roster_vbox2')
+ self.show_offline_contacts_menuitem = app.interface.roster.xml.get_object('show_offline_contacts_menuitem')
self.config_dialog = None
diff --git a/scripts/gajim-history-manager.in b/scripts/gajim-history-manager.in
new file mode 100644
index 000000000..761adf75e
--- /dev/null
+++ b/scripts/gajim-history-manager.in
@@ -0,0 +1,38 @@
+#!/usr/bin/python3 -OO
+##
+## Copyright (C) 2005 Yann Le Boulanger
+## Copyright (C) 2006 Dimitur Kirov
+## Stefan Bethge
+## Copyright (C) 2008 Jonathan Schleifer
+##
+## This file is part of Gajim.
+##
+## Gajim is free software; you can redistribute it and/or modify
+## it under the terms of the GNU General Public License as published
+## by the Free Software Foundation; version 3 only.
+##
+## Gajim is distributed in the hope that it will be useful,
+## but WITHOUT ANY WARRANTY; without even the implied warranty of
+## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+## GNU General Public License for more details.
+##
+## You should have received a copy of the GNU General Public License
+## along with Gajim. If not, see .
+##
+
+import os
+import sys
+
+if sys.platform != 'win32':
+ if os.geteuid() == 0:
+ sys.exit("You must not launch gajim as root, it is insecure.")
+
+sys.path.append("@PY_SITEDIR@")
+
+import gi
+gi.require_version('Gtk', '3.0')
+from gi.repository import Gtk
+import gajim.history_manager as g
+
+g.HistoryManager()
+Gtk.main()
diff --git a/scripts/gajim-remote.in b/scripts/gajim-remote.in
new file mode 100644
index 000000000..c9d88efd1
--- /dev/null
+++ b/scripts/gajim-remote.in
@@ -0,0 +1,33 @@
+#!/usr/bin/python3 -OO
+##
+## Copyright (C) 2005 Yann Le Boulanger
+## Copyright (C) 2006 Dimitur Kirov
+## Stefan Bethge
+## Copyright (C) 2008 Jonathan Schleifer
+##
+## This file is part of Gajim.
+##
+## Gajim is free software; you can redistribute it and/or modify
+## it under the terms of the GNU General Public License as published
+## by the Free Software Foundation; version 3 only.
+##
+## Gajim is distributed in the hope that it will be useful,
+## but WITHOUT ANY WARRANTY; without even the implied warranty of
+## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+## GNU General Public License for more details.
+##
+## You should have received a copy of the GNU General Public License
+## along with Gajim. If not, see .
+##
+
+import os
+import sys
+
+if os.geteuid() == 0:
+ sys.exit("You must not launch gajim as root, it is insecure.")
+
+sys.path.append("@PY_SITEDIR@")
+
+import gajim.gajim_remote as g
+
+g.GajimRemote()
diff --git a/scripts/gajim.in b/scripts/gajim.in
index e163a9bda..187c59b7c 100644
--- a/scripts/gajim.in
+++ b/scripts/gajim.in
@@ -1,5 +1,4 @@
-#!/bin/sh
-## scripts/gajim.in
+#!/usr/bin/python3 -OO
##
## Copyright (C) 2005 Yann Le Boulanger
## Copyright (C) 2006 Dimitur Kirov
@@ -21,13 +20,15 @@
## along with Gajim. If not, see .
##
-APP=`basename $0`
-if test $(id -u) -eq 0; then
- echo "You must not launch $APP as root, it is INSECURE"
- exit 1
-fi
+import os
+import sys
-[ "$APP" = "gajim-history-manager" ] && APP="history_manager"
+if sys.platform != 'win32':
+ if os.geteuid() == 0:
+ sys.exit("You must not launch gajim as root, it is insecure.")
-cd "@GAJIM_SRCDIR@"
-exec "@PYTHON@" -OO $APP.py "$@"
+sys.path.append("@PY_SITEDIR@")
+
+import gajim.gajim as g
+
+g.GajimApplication().run(sys.argv)
diff --git a/test/integration/test_gui_event_integration.py b/test/integration/test_gui_event_integration.py
index c0a20142c..f7600d8ce 100644
--- a/test/integration/test_gui_event_integration.py
+++ b/test/integration/test_gui_event_integration.py
@@ -8,10 +8,10 @@ lib.setup_env()
import nbxmpp
-from common import gajim
-from common import contacts as contacts_module
-from common import caps_cache
-from gajim import Interface
+from gajim.common import gajim
+from gajim.common import contacts as contacts_module
+from gajim.common import caps_cache
+from gajim.gajim import Interface
from gajim_mocks import *
gajim.logger = MockLogger()
@@ -21,9 +21,9 @@ Interface()
import time
from data import *
-import roster_window
-import plugins
-import notify
+from gajim import roster_window
+from gajim import plugins
+from gajim import notify
class TestStatusChange(unittest.TestCase):
'''tests gajim.py's incredibly complex presence handling'''
diff --git a/test/integration/test_resolver.py b/test/integration/test_resolver.py
index e09d69956..96b283d0b 100644
--- a/test/integration/test_resolver.py
+++ b/test/integration/test_resolver.py
@@ -7,7 +7,7 @@ lib.setup_env()
from gi.repository import GLib
-from common import resolver
+from gajim.common import resolver
from mock import Mock, expectParams
from gajim_mocks import *
diff --git a/test/integration/test_roster.py b/test/integration/test_roster.py
index a45610dd6..8c0e322de 100644
--- a/test/integration/test_roster.py
+++ b/test/integration/test_roster.py
@@ -8,17 +8,17 @@ from data import *
from mock import Mock, expectParams
from gajim_mocks import *
-from common import gajim
-from common import contacts as contacts_module
-import roster_window
+from gajim.common import app
+from gajim.common import contacts as contacts_module
+from gajim import roster_window
-gajim.get_jid_from_account = lambda acc: 'myjid@' + acc
+app.get_jid_from_account = lambda acc: 'myjid@' + acc
class TestRosterWindow(unittest.TestCase):
def setUp(self):
- gajim.interface = MockInterface()
+ app.interface = MockInterface()
self.C_NAME = roster_window.Column.NAME
self.C_TYPE = roster_window.Column.TYPE
@@ -27,13 +27,13 @@ class TestRosterWindow(unittest.TestCase):
# Add after creating RosterWindow
# We want to test the filling explicitly
- gajim.contacts = contacts_module.LegacyContactsAPI()
- gajim.connections = {}
- self.roster = roster_window.RosterWindow(gajim.app)
+ app.contacts = contacts_module.LegacyContactsAPI()
+ app.connections = {}
+ self.roster = roster_window.RosterWindow(app.app)
for acc in contacts:
- gajim.connections[acc] = MockConnection(acc)
- gajim.contacts.add_account(acc)
+ app.connections[acc] = MockConnection(acc)
+ app.contacts.add_account(acc)
### Custom assertions
def assert_all_contacts_are_in_roster(self, acc):
@@ -41,13 +41,13 @@ class TestRosterWindow(unittest.TestCase):
self.assert_contact_is_in_roster(jid, acc)
def assert_contact_is_in_roster(self, jid, account):
- contacts = gajim.contacts.get_contacts(account, jid)
+ contacts = app.contacts.get_contacts(account, jid)
# check for all resources
for contact in contacts:
iters = self.roster._get_contact_iter(jid, account,
model=self.roster.model)
- if jid != gajim.get_jid_from_account(account):
+ if jid != app.get_jid_from_account(account):
# We don't care for groups of SelfContact
self.assertTrue(len(iters) == len(contact.get_shown_groups()),
msg='Contact is not in all his groups')
@@ -55,7 +55,7 @@ class TestRosterWindow(unittest.TestCase):
# Are we big brother?
bb_jid = None
bb_account = None
- family = gajim.contacts.get_metacontacts_family(account, jid)
+ family = app.contacts.get_metacontacts_family(account, jid)
if family:
nearby_family, bb_jid, bb_account = \
self.roster._get_nearby_family_and_big_brother(family, account)
@@ -94,7 +94,7 @@ class TestRosterWindow(unittest.TestCase):
self.assertTrue(p_model[self.C_TYPE] == 'contact',
msg='Little Brother brother has no BigB')
else:
- if jid == gajim.get_jid_from_account(account):
+ if jid == app.get_jid_from_account(account):
self.assertTrue(p_model[self.C_TYPE] == 'account',
msg='SelfContact is not on top')
else:
@@ -118,7 +118,7 @@ class TestRosterWindow(unittest.TestCase):
self.assertEquals(acc_model[self.C_ACCOUNT], acc,
msg='Account not found')
- self_jid = gajim.get_jid_from_account(acc)
+ self_jid = app.get_jid_from_account(acc)
self.assertEquals(acc_model[self.C_JID], self_jid,
msg='Account JID not found in account row')
@@ -132,7 +132,7 @@ class TestRosterWindow(unittest.TestCase):
self.roster.fill_contacts_and_groups_dicts(contacts[acc], acc)
for jid in contacts[acc]:
- instances = gajim.contacts.get_contacts(acc, jid)
+ instances = app.contacts.get_contacts(acc, jid)
# Created a contact for each single jid?
self.assertTrue(len(instances) == 1)
@@ -160,7 +160,7 @@ class TestRosterWindow(unittest.TestCase):
class TestRosterWindowRegrouped(TestRosterWindow):
def setUp(self):
- gajim.config.set('mergeaccounts', True)
+ app.config.set('mergeaccounts', True)
TestRosterWindow.setUp(self)
def test_toggle_regroup(self):
@@ -180,19 +180,19 @@ class TestRosterWindowMetaContacts(TestRosterWindowRegrouped):
for brother in data:
acc = brother['account']
jid = brother['jid']
- gajim.contacts.add_metacontact(t_acc, t_jid, acc, jid)
+ app.contacts.add_metacontact(t_acc, t_jid, acc, jid)
self.roster.setup_and_draw_roster()
def test_connect_new_metacontact(self):
self.test_fill_roster_model()
jid = 'coolstuff@gajim.org'
- contact = gajim.contacts.create_contact(jid, account1)
- gajim.contacts.add_contact(account1, contact)
+ contact = app.contacts.create_contact(jid, account1)
+ app.contacts.add_contact(account1, contact)
self.roster.add_contact(jid, account1)
self.roster.chg_contact_status(contact, 'offline', '', account1)
- gajim.contacts.add_metacontact(account1, 'samejid@gajim.org',
+ app.contacts.add_metacontact(account1, 'samejid@gajim.org',
account1, jid)
self.roster.chg_contact_status(contact, 'online', '', account1)
diff --git a/test/lib/__init__.py b/test/lib/__init__.py
index afae96164..9c10673c6 100644
--- a/test/lib/__init__.py
+++ b/test/lib/__init__.py
@@ -14,7 +14,7 @@ gajim_root = os.path.join(os.path.abspath(os.path.dirname(__file__)), '../..')
# look for modules in the CWD, then gajim/test/lib, then gajim/gajim,
# then everywhere else
-sys.path.insert(1, gajim_root + '/gajim')
+sys.path.insert(1, gajim_root)
sys.path.insert(1, gajim_root + '/test/lib')
# a temporary version of ~/.gajim for testing
@@ -35,20 +35,20 @@ def setup_env():
os.mkdir(configdir)
os.mkdir(pluginsconfigdir)
- import common.configpaths
- common.configpaths.gajimpaths.init(configdir)
+ import gajim.common.configpaths
+ gajim.common.configpaths.gajimpaths.init(configdir)
- # for some reason common.gajim needs to be imported before xmpppy?
- from common import gajim
+ # for some reason gajim.common.app needs to be imported before xmpppy?
+ from gajim.common import app
import logging
logging.basicConfig()
- gajim.DATA_DIR = gajim_root + '/data'
- gajim.use_x = use_x
+ app.DATA_DIR = gajim_root + '/data'
+ app.use_x = use_x
if use_x:
- import gtkgui_helpers
+ from gajim import gtkgui_helpers
gtkgui_helpers.GUI_DIR = gajim_root + '/data/gui'
- from gajim import GajimApplication
- gajim.app = GajimApplication()
+ from gajim.gajim import GajimApplication
+ app.app = GajimApplication()
diff --git a/test/lib/gajim_mocks.py b/test/lib/gajim_mocks.py
index d0a5d058c..dd528cfc7 100644
--- a/test/lib/gajim_mocks.py
+++ b/test/lib/gajim_mocks.py
@@ -3,10 +3,10 @@ Module with dummy classes for Gajim specific unit testing
'''
from mock import Mock
-from common import gajim
-from common import ged
+from gajim.common import app
+from gajim.common import ged
-from common.connection_handlers import ConnectionHandlers
+from gajim.common.connection_handlers import ConnectionHandlers
class MockConnection(Mock, ConnectionHandlers):
def __init__(self, account, *args):
@@ -26,26 +26,26 @@ class MockConnection(Mock, ConnectionHandlers):
self.nested_group_delimiter = '::'
self.server_resource = 'Gajim'
- gajim.interface.instances[account] = {'infos': {}, 'disco': {},
+ app.interface.instances[account] = {'infos': {}, 'disco': {},
'gc_config': {}, 'search': {}, 'sub_request': {}}
- gajim.interface.minimized_controls[account] = {}
- gajim.contacts.add_account(account)
- gajim.groups[account] = {}
- gajim.gc_connected[account] = {}
- gajim.automatic_rooms[account] = {}
- gajim.newly_added[account] = []
- gajim.to_be_removed[account] = []
- gajim.nicks[account] = gajim.config.get_per('accounts', account, 'name')
- gajim.block_signed_in_notifications[account] = True
- gajim.sleeper_state[account] = 0
- gajim.encrypted_chats[account] = []
- gajim.last_message_time[account] = {}
- gajim.status_before_autoaway[account] = ''
- gajim.transport_avatar[account] = {}
- gajim.gajim_optional_features[account] = []
- gajim.caps_hash[account] = ''
+ app.interface.minimized_controls[account] = {}
+ app.contacts.add_account(account)
+ app.groups[account] = {}
+ app.gc_connected[account] = {}
+ app.automatic_rooms[account] = {}
+ app.newly_added[account] = []
+ app.to_be_removed[account] = []
+ app.nicks[account] = app.config.get_per('accounts', account, 'name')
+ app.block_signed_in_notifications[account] = True
+ app.sleeper_state[account] = 0
+ app.encrypted_chats[account] = []
+ app.last_message_time[account] = {}
+ app.status_before_autoaway[account] = ''
+ app.transport_avatar[account] = {}
+ app.gajim_optional_features[account] = []
+ app.caps_hash[account] = ''
- gajim.connections[account] = self
+ app.connections[account] = self
def request_vcard(self, jid):
pass
@@ -103,19 +103,19 @@ class MockChatControl(Mock):
class MockInterface(Mock):
def __init__(self, *args):
Mock.__init__(self, *args)
- gajim.interface = self
+ app.interface = self
self.msg_win_mgr = Mock()
self.roster = Mock()
- gajim.ged = ged.GlobalEventsDispatcher()
+ app.ged = ged.GlobalEventsDispatcher()
import plugins
- gajim.plugin_manager = plugins.PluginManager()
+ app.plugin_manager = plugins.PluginManager()
self.remote_ctrl = None
self.instances = {}
self.minimized_controls = {}
self.status_sent_to_users = Mock()
- if gajim.use_x:
+ if app.use_x:
self.jabber_state_images = {'16': {}, '24': {}, '32': {},
'opened': {}, 'closed': {}}
diff --git a/test/lib/notify.py b/test/lib/notify.py
index 1478879d7..9bf59ea83 100644
--- a/test/lib/notify.py
+++ b/test/lib/notify.py
@@ -1,7 +1,7 @@
# mock notify module
-from common import gajim
-from common import ged
+from gajim.common import app
+from gajim.common import ged
notifications = []
@@ -13,11 +13,11 @@ class Notification:
def clean(self):
global notifications
notifications = []
- gajim.ged.remove_event_handler('notification', ged.GUI2,
+ app.ged.remove_event_handler('notification', ged.GUI2,
self._nec_notification)
def __init__(self):
- gajim.ged.register_event_handler('notification', ged.GUI2,
+ app.ged.register_event_handler('notification', ged.GUI2,
self._nec_notification)
diff --git a/test/test_pluginmanager.py b/test/test_pluginmanager.py
index dba5152f3..fa990b64d 100644
--- a/test/test_pluginmanager.py
+++ b/test/test_pluginmanager.py
@@ -49,14 +49,14 @@ if os.path.isdir(configdir):
os.mkdir(configdir)
-import common.configpaths
-common.configpaths.gajimpaths.init(configdir)
+import gajim.common.configpaths
+gajim.common.configpaths.gajimpaths.init(configdir)
-# for some reason common.gajim needs to be imported before xmpppy?
-from common import gajim
-from common import xmpp
+# for some reason common.app needs to be imported before xmpppy?
+from gajim.common import app
+from gajim.common import xmpp
-gajim.DATA_DIR = gajim_root + '/data'
+app.DATA_DIR = gajim_root + '/data'
from common.stanza_session import StanzaSession
diff --git a/test/unit/test_account.py b/test/unit/test_account.py
index 962403752..40c8d223c 100644
--- a/test/unit/test_account.py
+++ b/test/unit/test_account.py
@@ -6,7 +6,7 @@ import unittest
import lib
lib.setup_env()
-from common.account import Account
+from gajim.common.account import Account
class Test(unittest.TestCase):
diff --git a/test/unit/test_caps_cache.py b/test/unit/test_caps_cache.py
index 853bee448..8ddb7d76f 100644
--- a/test/unit/test_caps_cache.py
+++ b/test/unit/test_caps_cache.py
@@ -7,8 +7,8 @@ import lib
lib.setup_env()
from nbxmpp import NS_MUC, NS_PING, NS_XHTML_IM
-from common import caps_cache as caps
-from common.contacts import Contact
+from gajim.common import caps_cache as caps
+from gajim.common.contacts import Contact
from mock import Mock
diff --git a/test/unit/test_contacts.py b/test/unit/test_contacts.py
index bbab04c9e..a722621c5 100644
--- a/test/unit/test_contacts.py
+++ b/test/unit/test_contacts.py
@@ -6,10 +6,10 @@ import unittest
import lib
lib.setup_env()
-from common.contacts import CommonContact, Contact, GC_Contact, LegacyContactsAPI
+from gajim.common.contacts import CommonContact, Contact, GC_Contact, LegacyContactsAPI
from nbxmpp import NS_MUC
-from common import caps_cache
+from gajim.common import caps_cache
class TestCommonContact(unittest.TestCase):
diff --git a/test/unit/test_gui_interface.py b/test/unit/test_gui_interface.py
index 734a4190c..4f7d97ffc 100644
--- a/test/unit/test_gui_interface.py
+++ b/test/unit/test_gui_interface.py
@@ -6,21 +6,21 @@ import unittest
import lib
lib.setup_env()
-from common import logging_helpers
+from gajim.common import logging_helpers
logging_helpers.set_quiet()
-from common import gajim
+from gajim.common import app
from gajim_mocks import MockLogger
-gajim.logger = MockLogger()
+app.logger = MockLogger()
-from gui_interface import Interface
+from gajim.gui_interface import Interface
class TestInterface(unittest.TestCase):
def test_instantiation(self):
''' Test that we can proper initialize and do not fail on globals '''
- gajim.app.run()
+ app.app.run()
def test_links_regexp_entire(self):
sut = Interface()
diff --git a/test/unit/test_jingle.py b/test/unit/test_jingle.py
index ce9edeb66..ee8d3ff6e 100644
--- a/test/unit/test_jingle.py
+++ b/test/unit/test_jingle.py
@@ -8,13 +8,13 @@ lib.setup_env()
from mock import Mock
-from common.protocol.bytestream import ConnectionIBBytestream, ConnectionSocks5Bytestream
+from gajim.common.protocol.bytestream import ConnectionIBBytestream, ConnectionSocks5Bytestream
from common.xmpp import dispatcher_nb
from common.xmpp import protocol
-from common.jingle import ConnectionJingle
-from common import gajim
-from common.socks5 import SocksQueue
-import common
+from gajim.common.jingle import ConnectionJingle
+from gajim.common import gajim
+from gajim.common.socks5 import SocksQueue
+import gajim.common
session_init = '''
diff --git a/test/unit/test_protocol_caps.py b/test/unit/test_protocol_caps.py
index 02c5a065c..55ec1e579 100644
--- a/test/unit/test_protocol_caps.py
+++ b/test/unit/test_protocol_caps.py
@@ -6,14 +6,14 @@ import unittest
import lib
lib.setup_env()
-from common import gajim
-from common import nec
-from common import ged
-from common import caps_cache
-from common.connection_handlers import ConnectionHandlers
-from common.protocol import caps
-from common.contacts import Contact
-from common.connection_handlers_events import CapsPresenceReceivedEvent
+from gajim.common import app
+from gajim.common import nec
+from gajim.common import ged
+from gajim.common import caps_cache
+from gajim.common.connection_handlers import ConnectionHandlers
+from gajim.common.protocol import caps
+from gajim.common.contacts import Contact
+from gajim.common.connection_handlers_events import CapsPresenceReceivedEvent
from mock import Mock
@@ -45,8 +45,8 @@ class TestableConnectionCaps(ConnectionHandlers, caps.ConnectionCaps):
class TestConnectionCaps(unittest.TestCase):
def setUp(self):
- gajim.nec = nec.NetworkEventsController()
- gajim.ged.register_event_handler('caps-presence-received', ged.GUI2,
+ app.nec = nec.NetworkEventsController()
+ app.ged.register_event_handler('caps-presence-received', ged.GUI2,
self._nec_caps_presence_received)
def _nec_caps_presence_received(self, obj):
diff --git a/test/unit/test_sessions.py b/test/unit/test_sessions.py
index f0d115461..d7ea32b7a 100644
--- a/test/unit/test_sessions.py
+++ b/test/unit/test_sessions.py
@@ -8,22 +8,22 @@ lib.setup_env()
import notify
-from common import gajim
-from common import nec
-from common import ged
-from common.nec import NetworkEvent
-from common.connection_handlers_events import MessageReceivedEvent
-from common.connection_handlers_events import DecryptedMessageReceivedEvent
+from gajim.common import app
+from gajim.common import nec
+from gajim.common import ged
+from gajim.common.nec import NetworkEvent
+from gajim.common.connection_handlers_events import MessageReceivedEvent
+from gajim.common.connection_handlers_events import DecryptedMessageReceivedEvent
import nbxmpp
-from common.stanza_session import StanzaSession
-from session import ChatControlSession
-from roster_window import RosterWindow
+from gajim.common.stanza_session import StanzaSession
+from gajim.session import ChatControlSession
+from gajim.roster_window import RosterWindow
from mock import Mock, expectParams
from gajim_mocks import *
-gajim.interface = MockInterface()
+app.interface = MockInterface()
# name to use for the test account
@@ -88,19 +88,19 @@ class TestChatControlSession(unittest.TestCase):
@classmethod
def setUpClass(cls):
- gajim.nec = nec.NetworkEventsController()
+ app.nec = nec.NetworkEventsController()
cls.conn = MockConnection(account_name, {'send_stanza': None})
- gajim.logger = MockLogger()
- gajim.default_session_type = ChatControlSession
+ app.logger = MockLogger()
+ app.default_session_type = ChatControlSession
def setUp(self):
- gajim.notification = notify.Notification()
+ app.notification = notify.Notification()
# no notifications have been sent
self.assertEqual(0, len(notify.notifications))
def tearDown(self):
- gajim.notification.clean()
+ app.notification.clean()
def receive_chat_msg(self, jid, msgtxt):
'''simulate receiving a chat message from jid'''
@@ -153,12 +153,12 @@ class TestChatControlSession(unittest.TestCase):
sess = self.conn.sessions[jid]['123']
# message was logged
- calls = gajim.logger.mockGetNamedCalls('insert_into_logs')
+ calls = app.logger.mockGetNamedCalls('insert_into_logs')
self.assertEqual(1, len(calls))
# no ChatControl was open and autopopup was off
# so the message goes into the event queue
- self.assertEqual(1, len(gajim.events.get_events(account_name)))
+ self.assertEqual(1, len(app.events.get_events(account_name)))
self.assert_first_message_notification()
@@ -171,7 +171,7 @@ class TestChatControlSession(unittest.TestCase):
jid = 'bct@necronomicorp.com'
fjid = 'bct@necronomicorp.com/Gajim'
msgtxt = 'testing two'
- roster = RosterWindow(gajim.app)
+ roster = RosterWindow(app.app)
sess = self.conn.sessions[jid]['123']
sess.control = MockChatControl(fjid, account_name)
@@ -179,11 +179,11 @@ class TestChatControlSession(unittest.TestCase):
self.receive_chat_msg(fjid, msgtxt)
# message was logged
- calls = gajim.logger.mockGetNamedCalls('insert_into_logs')
+ calls = app.logger.mockGetNamedCalls('insert_into_logs')
self.assertEqual(2, len(calls))
# the message does not go into the event queue
- self.assertEqual(1, len(gajim.events.get_events(account_name)))
+ self.assertEqual(1, len(app.events.get_events(account_name)))
self.assert_not_first_message_notification()
diff --git a/test/unit/test_socks5.py b/test/unit/test_socks5.py
index f137d7aed..63ba1d240 100644
--- a/test/unit/test_socks5.py
+++ b/test/unit/test_socks5.py
@@ -10,8 +10,8 @@ from mock import Mock
import sys
import socket
-from common.socks5 import *
-from common import jingle_xtls
+from gajim.common.socks5 import *
+from gajim.common import jingle_xtls
class fake_sock(Mock):
def __init__(self, sockobj):