make gotr plugin visible but not activatable if potr is missing
This commit is contained in:
@@ -74,13 +74,11 @@ try:
|
|||||||
import potr
|
import potr
|
||||||
if not hasattr(potr, 'VERSION') or potr.VERSION < MINVERSION:
|
if not hasattr(potr, 'VERSION') or potr.VERSION < MINVERSION:
|
||||||
raise ImportError('old / unsupported python-otr version')
|
raise ImportError('old / unsupported python-otr version')
|
||||||
except ImportError:
|
|
||||||
HAS_POTR = False
|
|
||||||
|
|
||||||
def get_jid_from_fjid(fjid):
|
def get_jid_from_fjid(fjid):
|
||||||
return gajim.get_room_and_nick_from_fjid(fjid)[0]
|
return gajim.get_room_and_nick_from_fjid(fjid)[0]
|
||||||
|
|
||||||
class GajimContext(potr.context.Context):
|
class GajimContext(potr.context.Context):
|
||||||
# self.peer is fjid
|
# self.peer is fjid
|
||||||
# self.jid does not contain resource
|
# self.jid does not contain resource
|
||||||
__slots__ = ['smpWindow', 'jid']
|
__slots__ = ['smpWindow', 'jid']
|
||||||
@@ -148,7 +146,7 @@ class GajimContext(potr.context.Context):
|
|||||||
log.debug('getPolicy(key=%s) = %s', key, ret)
|
log.debug('getPolicy(key=%s) = %s', key, ret)
|
||||||
return ret
|
return ret
|
||||||
|
|
||||||
class GajimOtrAccount(potr.context.Account):
|
class GajimOtrAccount(potr.context.Account):
|
||||||
contextclass = GajimContext
|
contextclass = GajimContext
|
||||||
def __init__(self, plugin, accountname):
|
def __init__(self, plugin, accountname):
|
||||||
global PROTOCOL, MMS
|
global PROTOCOL, MMS
|
||||||
@@ -215,7 +213,8 @@ class GajimOtrAccount(potr.context.Account):
|
|||||||
except IOError, e:
|
except IOError, e:
|
||||||
log.exception('IOError occurred when loading fpr file for %s',
|
log.exception('IOError occurred when loading fpr file for %s',
|
||||||
self.name)
|
self.name)
|
||||||
|
except ImportError:
|
||||||
|
HAS_POTR = False
|
||||||
|
|
||||||
def otr_dialog_destroy(widget, *args, **kwargs):
|
def otr_dialog_destroy(widget, *args, **kwargs):
|
||||||
widget.destroy()
|
widget.destroy()
|
||||||
@@ -236,7 +235,11 @@ class OtrPlugin(GajimPlugin):
|
|||||||
self.gui_extension_points = {
|
self.gui_extension_points = {
|
||||||
'chat_control' : (self.cc_connect, self.cc_disconnect)
|
'chat_control' : (self.cc_connect, self.cc_disconnect)
|
||||||
}
|
}
|
||||||
|
if not HAS_POTR:
|
||||||
|
self.activatable = False
|
||||||
|
self.available_text = 'potr is not installed. Get it from %s' % \
|
||||||
|
'https://github.com/afflux/pure-python-otr'
|
||||||
|
else:
|
||||||
for acc in gajim.contacts.get_accounts():
|
for acc in gajim.contacts.get_accounts():
|
||||||
self.us[acc] = GajimOtrAccount(self, acc)
|
self.us[acc] = GajimOtrAccount(self, acc)
|
||||||
self.us[acc].loadTrusts()
|
self.us[acc].loadTrusts()
|
||||||
|
|||||||
@@ -24,7 +24,11 @@ from common import gajim
|
|||||||
from plugins.gui import GajimPluginConfigDialog
|
from plugins.gui import GajimPluginConfigDialog
|
||||||
|
|
||||||
import otrmodule
|
import otrmodule
|
||||||
import potr
|
HAS_PORT = True
|
||||||
|
try:
|
||||||
|
import potr
|
||||||
|
except:
|
||||||
|
HAS_POTR = False
|
||||||
|
|
||||||
|
|
||||||
class OtrPluginConfigDialog(GajimPluginConfigDialog):
|
class OtrPluginConfigDialog(GajimPluginConfigDialog):
|
||||||
|
|||||||
Reference in New Issue
Block a user