Commit 036a981b authored by Yann Leboulanger's avatar Yann Leboulanger

Correctly register gajim-remote with xmpp: URIs

parent be023980
[Desktop Entry]
Categories=Network;InstantMessaging;RemoteAccess;ConsoleOnly;
_Name=Gajim Remote
_Keywords=chat;messaging;im;jabber;xmpp;bonjour;voip
Version=1.0
Exec=gajim-remote handle_uri %u
TryExec=gajim-remote
StartupNotify=false
Terminal=false
Type=Application
MimeType=x-scheme-handler/xmpp
......@@ -2753,22 +2753,6 @@ to discover one from server.</property>
<property name="position">0</property>
</packing>
</child>
<child>
<object class="GtkCheckButton" id="check_default_client_checkbutton">
<property name="label" translatable="yes">Check on startup if Gajim is the _default Jabber client</property>
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="receives_default">False</property>
<property name="use_underline">True</property>
<property name="draw_indicator">True</property>
<signal name="toggled" handler="on_check_default_client_checkbutton_toggled"/>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">False</property>
<property name="position">1</property>
</packing>
</child>
</object>
</child>
</object>
......
......@@ -9451,7 +9451,7 @@ msgstr ""
"адпраўлены на ўсе рахункі"
#: ../src/gajim-remote.py:278
msgid "Handle a xmpp:/ uri"
msgid "Handle a xmpp: uri"
msgstr "Апрацоўваць спасылкі xmpp:/"
#: ../src/gajim-remote.py:280
......
......@@ -9483,7 +9483,7 @@ msgstr ""
"dasłany na ŭsie konty"
#: ../src/gajim-remote.py:278
msgid "Handle a xmpp:/ uri"
msgid "Handle a xmpp: uri"
msgstr "Absłuhoŭvaj spasyłki xmpp:/"
#: ../src/gajim-remote.py:280
......
......@@ -9403,7 +9403,7 @@ msgstr ""
"акаунти"
#: ../src/gajim-remote.py:278
msgid "Handle a xmpp:/ uri"
msgid "Handle a xmpp: uri"
msgstr "Обработка на адрес тип xmpp://"
#: ../src/gajim-remote.py:280
......
......@@ -9450,7 +9450,7 @@ msgid ""
msgstr ""
#: ../src/gajim-remote.py:278
msgid "Handle a xmpp:/ uri"
msgid "Handle a xmpp: uri"
msgstr ""
#: ../src/gajim-remote.py:280
......
......@@ -9316,7 +9316,7 @@ msgstr ""
"ze všech účtů"
#: ../src/gajim-remote.py:278
msgid "Handle a xmpp:/ uri"
msgid "Handle a xmpp: uri"
msgstr "Obsluhovat xmpp:/ uri"
#: ../src/gajim-remote.py:280
......
......@@ -9347,7 +9347,7 @@ msgstr ""
"blive sendt til alle kontoer"
#: ../src/gajim-remote.py:278
msgid "Handle a xmpp:/ uri"
msgid "Handle a xmpp: uri"
msgstr "Håndter en xmpp:/ uri"
#: ../src/gajim-remote.py:280
......
......@@ -9448,7 +9448,7 @@ msgstr ""
"Avatar allen Konten zugewiesen"
#: ../src/gajim-remote.py:278
msgid "Handle a xmpp:/ uri"
msgid "Handle a xmpp: uri"
msgstr "Verarbeite einen xmpp:/-URI"
#: ../src/gajim-remote.py:280
......
......@@ -9546,7 +9546,7 @@ msgstr ""
#: ../src/gajim-remote.py:278
#, fuzzy
msgid "Handle a xmpp:/ uri"
msgid "Handle a xmpp: uri"
msgstr "Το URI \"%s\" δεν είναι έγκυρο."
#: ../src/gajim-remote.py:280
......
......@@ -9283,8 +9283,8 @@ msgstr ""
"all accounts"
#: ../src/gajim-remote.py:278
msgid "Handle a xmpp:/ uri"
msgstr "Handle a xmpp:/ uri"
msgid "Handle a xmpp: uri"
msgstr "Handle a xmpp: uri"
#: ../src/gajim-remote.py:280
msgid "?CLI:uri"
......
......@@ -9447,7 +9447,7 @@ msgstr ""
"kontoj"
#: ../src/gajim-remote.py:278
msgid "Handle a xmpp:/ uri"
msgid "Handle a xmpp: uri"
msgstr "Prilabori xmpp:/ uri"
#: ../src/gajim-remote.py:280
......
......@@ -9249,7 +9249,7 @@ msgstr ""
"el avatar en todas las cuentas"
#: ../src/gajim-remote.py:278
msgid "Handle a xmpp:/ uri"
msgid "Handle a xmpp: uri"
msgstr "Manejar una uri xmpp:/"
#: ../src/gajim-remote.py:280
......
......@@ -9469,7 +9469,7 @@ msgstr ""
"Xml-a bidaliko den kontua ez badako zehaztuta, kontu guztietara bidaliko da"
#: ../src/gajim-remote.py:278
msgid "Handle a xmpp:/ uri"
msgid "Handle a xmpp: uri"
msgstr ""
#: ../src/gajim-remote.py:280
......
......@@ -9332,7 +9332,7 @@ msgstr ""
"envoyé à tous les comptes"
#: ../src/gajim-remote.py:278
msgid "Handle a xmpp:/ uri"
msgid "Handle a xmpp: uri"
msgstr "Gère une URI du type xmpp:"
#: ../src/gajim-remote.py:280
......
......@@ -9506,7 +9506,7 @@ msgstr ""
"a todas as contas"
#: ../src/gajim-remote.py:278
msgid "Handle a xmpp:/ uri"
msgid "Handle a xmpp: uri"
msgstr ""
#: ../src/gajim-remote.py:280
......
......@@ -9525,7 +9525,7 @@ msgstr "cli"
#: ../src/gajim-remote.py:278
#, fuzzy
msgid "Handle a xmpp:/ uri"
msgid "Handle a xmpp: uri"
msgstr "cli"
#: ../src/gajim-remote.py:280
......
......@@ -9339,7 +9339,7 @@ msgstr ""
"na sve račune"
#: ../src/gajim-remote.py:278
msgid "Handle a xmpp:/ uri"
msgid "Handle a xmpp: uri"
msgstr "Rukuj xmpp:/ adresama"
#: ../src/gajim-remote.py:280
......
......@@ -9490,7 +9490,7 @@ msgstr ""
"be set for all accounts"
#: ../src/gajim-remote.py:278
msgid "Handle a xmpp:/ uri"
msgid "Handle a xmpp: uri"
msgstr "Egy xmpp:/ uri kezelése"
#: ../src/gajim-remote.py:280
......
......@@ -9329,7 +9329,7 @@ msgstr ""
"verrà impostato per tutti gli account"
#: ../src/gajim-remote.py:278
msgid "Handle a xmpp:/ uri"
msgid "Handle a xmpp: uri"
msgstr "Gestisci un uri xmpp:/"
#: ../src/gajim-remote.py:280
......
......@@ -9203,7 +9203,7 @@ msgstr ""
"に設定されます"
#: ../src/gajim-remote.py:278
msgid "Handle a xmpp:/ uri"
msgid "Handle a xmpp: uri"
msgstr "xmpp:/ の URI を取り扱います"
#: ../src/gajim-remote.py:280
......
......@@ -9251,7 +9251,7 @@ msgstr ""
"орнатылады"
#: ../src/gajim-remote.py:278
msgid "Handle a xmpp:/ uri"
msgid "Handle a xmpp: uri"
msgstr "\"xmpp:/\" түріндегі сілтемені өңдеу"
#: ../src/gajim-remote.py:280
......
......@@ -9071,8 +9071,8 @@ msgstr ""
"all accounts"
#: ../src/gajim-remote.py:278
msgid "Handle a xmpp:/ uri"
msgstr "Handle a xmpp:/ uri"
msgid "Handle a xmpp: uri"
msgstr "Handle a xmpp: uri"
#: ../src/gajim-remote.py:280
msgid "?CLI:uri"
......
......@@ -9321,7 +9321,7 @@ msgstr ""
"til alle kontoer"
#: ../src/gajim-remote.py:278
msgid "Handle a xmpp:/ uri"
msgid "Handle a xmpp: uri"
msgstr "Håndtere en xmpp:/ uri"
#: ../src/gajim-remote.py:280
......
......@@ -9190,7 +9190,7 @@ msgid ""
msgstr ""
#: ../src/gajim-remote.py:278
msgid "Handle a xmpp:/ uri"
msgid "Handle a xmpp: uri"
msgstr ""
#: ../src/gajim-remote.py:280
......
......@@ -9320,7 +9320,7 @@ msgstr ""
"til alle kontoer"
#: ../src/gajim-remote.py:278
msgid "Handle a xmpp:/ uri"
msgid "Handle a xmpp: uri"
msgstr "Håndtere en xmpp:/ uri"
#: ../src/gajim-remote.py:280
......
......@@ -8979,7 +8979,7 @@ msgid "Account in which the avatar will be set; if not specified, the avatar wil
msgstr "Konto, dla którego ma być ustawiony awatar; jeżeli nie jest określone, awatar zostanie ustawiony dla wszystkich kont"
#: ../src/gajim-remote.py:278
msgid "Handle a xmpp:/ uri"
msgid "Handle a xmpp: uri"
msgstr "Obsługuj URI xmpp:/"
#: ../src/gajim-remote.py:280
......
......@@ -9484,7 +9484,7 @@ msgid ""
msgstr ""
#: ../src/gajim-remote.py:278
msgid "Handle a xmpp:/ uri"
msgid "Handle a xmpp: uri"
msgstr ""
#: ../src/gajim-remote.py:280
......
......@@ -9369,7 +9369,7 @@ msgstr ""
"para todas as contas"
#: ../src/gajim-remote.py:278
msgid "Handle a xmpp:/ uri"
msgid "Handle a xmpp: uri"
msgstr "Manipular uma URI xmpp:/"
#: ../src/gajim-remote.py:280
......
......@@ -9268,7 +9268,7 @@ msgstr ""
"будет назначен всем учетным записям."
#: ../src/gajim-remote.py:278
msgid "Handle a xmpp:/ uri"
msgid "Handle a xmpp: uri"
msgstr "Обработать ссылку формата «xmpp:/»"
#: ../src/gajim-remote.py:280
......
......@@ -9212,7 +9212,7 @@ msgstr ""
"všetkým účtom"
#: ../src/gajim-remote.py:278
msgid "Handle a xmpp:/ uri"
msgid "Handle a xmpp: uri"
msgstr ""
#: ../src/gajim-remote.py:280
......
......@@ -9315,7 +9315,7 @@ msgstr ""
"све налоге"
#: ../src/gajim-remote.py:278
msgid "Handle a xmpp:/ uri"
msgid "Handle a xmpp: uri"
msgstr "Управља xmpp:/ uri-јем"
#: ../src/gajim-remote.py:280
......
......@@ -9326,7 +9326,7 @@ msgstr ""
"sve naloge"
#: ../src/gajim-remote.py:278
msgid "Handle a xmpp:/ uri"
msgid "Handle a xmpp: uri"
msgstr "Upravlja xmpp:/ uri-jem"
#: ../src/gajim-remote.py:280
......
......@@ -9243,7 +9243,7 @@ msgstr ""
"skickas till alla konton"
#: ../src/gajim-remote.py:278
msgid "Handle a xmpp:/ uri"
msgid "Handle a xmpp: uri"
msgstr "Hantera en xmpp:/ URI"
#: ../src/gajim-remote.py:280
......
......@@ -9218,7 +9218,7 @@ msgstr ""
#: ../src/gajim-remote.py:278
#, fuzzy
msgid "Handle a xmpp:/ uri"
msgid "Handle a xmpp: uri"
msgstr "Adres verilmedi"
#: ../src/gajim-remote.py:280
......
......@@ -9331,7 +9331,7 @@ msgstr ""
"аватар буде встановлено до всіх облікових записів"
#: ../src/gajim-remote.py:278
msgid "Handle a xmpp:/ uri"
msgid "Handle a xmpp: uri"
msgstr "Обробка xmpp:/ uri"
#: ../src/gajim-remote.py:280
......
......@@ -9036,7 +9036,7 @@ msgid ""
msgstr "要设置为这个头像的账户; 如果不指定, 所有账户都将被设置为这个头像。"
#: ../src/gajim-remote.py:278
msgid "Handle a xmpp:/ uri"
msgid "Handle a xmpp: uri"
msgstr "处理一个 xmpp:/ uri"
#: ../src/gajim-remote.py:280
......
......@@ -9044,7 +9044,7 @@ msgid ""
msgstr "要設定為這個頭像的帳號; 如果不指定,所有帳號都將被設定為這個頭像。"
#: ../src/gajim-remote.py:278
msgid "Handle a xmpp:/ uri"
msgid "Handle a xmpp: uri"
msgstr "處理一個 xmpp:/ uri"
#: ../src/gajim-remote.py:280
......
......@@ -245,7 +245,6 @@ class Config:
'notification_avatar_height': [opt_int, 48],
'muc_highlight_words': [opt_str, '', _('A semicolon-separated list of words that will be highlighted in group chats.')],
'quit_on_roster_x_button': [opt_bool, False, _('If True, quits Gajim when X button of Window Manager is clicked. This setting is taken into account only if notification icon is used.')],
'check_if_gajim_is_default': [opt_bool, True, _('If True, Gajim will check if it\'s the default jabber client on each startup.')],
'show_unread_tab_icon': [opt_bool, False, _('If True, Gajim will display an icon on each tab containing unread messages. Depending on the theme, this icon may be animated.')],
'show_status_msgs_in_roster': [opt_bool, True, _('If True, Gajim will display the status message, if not empty, for every contact under the contact name in roster window.'), True],
'show_avatars_in_roster': [opt_bool, True, '', True],
......
......@@ -608,6 +608,7 @@ class Sign(TextHandler):
__bool__ = __nonzero__
def handle_status(self, key, value):
self.status = ''
if key in ("USERID_HINT", "NEED_PASSPHRASE", "BAD_PASSPHRASE",
"GOOD_PASSPHRASE", "BEGIN_SIGNING", "CARDCTRL", "INV_SGNR",
"NO_SGNR", "MISSING_PASSPHRASE", "NEED_PASSPHRASE_PIN",
......
......@@ -555,10 +555,6 @@ class PreferencesWindow:
self.update_proxy_list()
# check if gajm is default
st = gajim.config.get('check_if_gajim_is_default')
self.xml.get_object('check_default_client_checkbutton').set_active(st)
# Ignore messages from unknown contacts
w = self.xml.get_object('ignore_events_from_unknown_contacts_checkbutton')
st = self.get_per_account_option('ignore_unknown_contacts')
......@@ -1177,9 +1173,6 @@ class PreferencesWindow:
widget.set_inconsistent(False)
self.on_per_account_checkbutton_toggled(widget, 'send_idle_time')
def on_check_default_client_checkbutton_toggled(self, widget):
self.on_checkbutton_toggled(widget, 'check_if_gajim_is_default')
def on_notify_gmail_checkbutton_toggled(self, widget):
self.on_checkbutton_toggled(widget, 'notify_on_new_gmail_email')
......
......@@ -688,93 +688,6 @@ def decode_filechooser_file_paths(file_paths):
return file_paths_list
def possibly_set_gajim_as_xmpp_handler():
"""
Register (by default only the first time) 'xmmp:' to Gajim
"""
path_to_dot_kde = os.path.expanduser('~/.kde')
if os.path.exists(path_to_dot_kde):
path_to_kde_file = os.path.join(path_to_dot_kde,
'share/services/xmpp.protocol')
else:
path_to_kde_file = None
def set_gajim_as_xmpp_handler(is_checked=None):
if is_checked is not None:
# come from confirmation dialog
gajim.config.set('check_if_gajim_is_default', is_checked)
path_to_gajim_script, typ = get_abspath_for_script('gajim-remote', True)
if path_to_gajim_script:
if typ == 'svn':
command = path_to_gajim_script + ' handle_uri %s'
else: # 'installed'
command = 'gajim-remote handle_uri %s'
# setting for GNOME/Gconf
client.set_bool('/desktop/gnome/url-handlers/xmpp/enabled', True)
client.set_string('/desktop/gnome/url-handlers/xmpp/command',
command)
client.set_bool('/desktop/gnome/url-handlers/xmpp/needs_terminal',
False)
# setting for KDE
if path_to_kde_file is not None: # user has run kde at least once
try:
f = open(path_to_kde_file, 'a')
f.write('''\
[Protocol]
exec=%s "%%u"
protocol=xmpp
input=none
output=none
helper=true
listing=false
reading=false
writing=false
makedir=false
deleting=false
icon=gajim
Description=xmpp
''' % command)
f.close()
except IOError:
log.debug("I/O Error writing settings to %s",
repr(path_to_kde_file), exc_info=True)
else: # no gajim remote, stop ask user everytime
gajim.config.set('check_if_gajim_is_default', False)
try:
__import__('gconf')
# in try because daemon may not be there
client = gconf.client_get_default()
except Exception:
return
old_command = client.get_string('/desktop/gnome/url-handlers/xmpp/command')
if not old_command or old_command.endswith(' open_chat %s'):
# first time (GNOME/GCONF) or old Gajim version
we_set = True
elif path_to_kde_file is not None and not os.path.exists(path_to_kde_file):
# only the first time (KDE)
we_set = True
else:
we_set = False
if we_set:
set_gajim_as_xmpp_handler()
elif old_command and not old_command.endswith(' handle_uri %s'):
# xmpp: is currently handled by another program, so ask the user
pritext = _('Gajim is not the default Jabber client')
sectext = _('Would you like to make Gajim the default Jabber client?')
checktext = _('Always check to see if Gajim is the default Jabber '
'client on startup')
def on_cancel(checked):
gajim.config.set('check_if_gajim_is_default', checked)
dlg = dialogs.ConfirmationDialogCheck(pritext, sectext, checktext,
set_gajim_as_xmpp_handler, on_cancel)
if gajim.config.get('check_if_gajim_is_default'):
dlg.checkbutton.set_active(True)
def escape_underscore(s):
"""
Escape underlines to prevent them from being interpreted as keyboard
......
......@@ -1212,6 +1212,8 @@ class Interface:
file_props = None
# get the file_props of our session
file_props = FilesProp.getFileProp(obj.conn.name, obj.sid)
if not file_props:
return
ft.set_status(file_props, 'stop')
file_props.error = -4 # is it the right error code?
ft.show_stopped(obj.jid, file_props, 'Peer cancelled ' +
......@@ -2792,10 +2794,6 @@ class Interface:
if gajim.config.get('verbose'):
logging_helpers.set_verbose()
# Is Gajim default app?
if os.name != 'nt' and gajim.config.get('check_if_gajim_is_default'):
gtkgui_helpers.possibly_set_gajim_as_xmpp_handler()
for account in gajim.config.get_per('accounts'):
if gajim.config.get_per('accounts', account, 'is_zeroconf'):
gajim.ZEROCONF_ACC_NAME = account
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment