Welcome to mirror list, hosted at ThFree Co, Russian Federation.

dev.gajim.org/gajim/gajim.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorPhilipp Hörist <forenjunkie@chello.at>2017-06-27 21:51:55 +0300
committerPhilipp Hörist <forenjunkie@chello.at>2017-06-27 21:51:55 +0300
commit55889d045fb0fffebb8f9d4e2b60380be6f8a36a (patch)
tree1fe9e79d6c10c49c79e99c8f5ea8455301e9ac9c /src
parent1a2d32fca522fc3eb43c2bdce07d15b70d2bc76d (diff)
Add new extension point method
Diffstat (limited to 'src')
-rw-r--r--src/chat_control.py8
-rw-r--r--src/chat_control_base.py2
-rw-r--r--src/common/connection.py4
-rw-r--r--src/common/connection_handlers.py2
-rw-r--r--src/conversation_textview.py6
-rw-r--r--src/groupchat_control.py6
-rw-r--r--src/plugins/pluginmanager.py20
7 files changed, 33 insertions, 15 deletions
diff --git a/src/chat_control.py b/src/chat_control.py
index cb727fdeb..b85719f65 100644
--- a/src/chat_control.py
+++ b/src/chat_control.py
@@ -851,7 +851,7 @@ class ChatControl(ChatControlBase):
'authenticated': False}
if self.encryption:
- gajim.plugin_manager.gui_extension_point(
+ gajim.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.gui_extension_point(
+ gajim.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.gui_extension_point(
+ gajim.plugin_manager.extension_point(
'send_message' + self.encryption, self)
if not self.sendmessage:
return
@@ -1399,7 +1399,7 @@ 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.gui_extension_point(
+ gajim.plugin_manager.extension_point(
'typing' + self.encryption, self)
if (not self.session or not self.session.status) and \
gajim.connections[self.account].archiving_136_supported:
diff --git a/src/chat_control_base.py b/src/chat_control_base.py
index da7aff3a2..1550ac551 100644
--- a/src/chat_control_base.py
+++ b/src/chat_control_base.py
@@ -527,8 +527,6 @@ class ChatControlBase(MessageControl, ChatCommandProcessor, CommandTools):
self)
gajim.plugin_manager.remove_gui_extension_point(
'chat_control_base_draw_banner', self)
- gajim.plugin_manager.remove_gui_extension_point('print_special_text',
- self)
gajim.ged.remove_event_handler('our-show', ged.GUI1,
self._nec_our_status)
diff --git a/src/common/connection.py b/src/common/connection.py
index 4fb178eec..d77cfa7cf 100644
--- a/src/common/connection.py
+++ b/src/common/connection.py
@@ -2039,7 +2039,7 @@ class Connection(CommonConnection, ConnectionHandlers):
config_key = '%s-%s' % (self.name, obj.jid)
encryption = gajim.config.get_per('encryption', config_key, 'encryption')
if encryption:
- gajim.plugin_manager.gui_extension_point(
+ gajim.plugin_manager.extension_point(
'encrypt' + encryption, self, obj, self.send_message)
else:
self.send_message(obj)
@@ -2646,7 +2646,7 @@ class Connection(CommonConnection, ConnectionHandlers):
config_key = '%s-%s' % (self.name, obj.jid)
encryption = gajim.config.get_per('encryption', config_key, 'encryption')
if encryption:
- gajim.plugin_manager.gui_extension_point(
+ gajim.plugin_manager.extension_point(
'gc_encrypt' + encryption, self, obj, self.send_gc_message)
else:
self.send_gc_message(obj)
diff --git a/src/common/connection_handlers.py b/src/common/connection_handlers.py
index 7ac2b8a94..fe024b54b 100644
--- a/src/common/connection_handlers.py
+++ b/src/common/connection_handlers.py
@@ -1084,7 +1084,7 @@ class ConnectionHandlersBase:
if obj.conn.name != self.name:
return
- gajim.plugin_manager.gui_extension_point(
+ gajim.plugin_manager.extension_point(
'decrypt', self, obj, self._on_message_received)
if not obj.encrypted:
self._on_message_received(obj)
diff --git a/src/conversation_textview.py b/src/conversation_textview.py
index db481044d..6a1a49444 100644
--- a/src/conversation_textview.py
+++ b/src/conversation_textview.py
@@ -822,7 +822,7 @@ class ConversationTextview(GObject.GObject):
return True
else:
self.plugin_modified = False
- gajim.plugin_manager.gui_extension_point(
+ gajim.plugin_manager.extension_point(
'hyperlink_handler', word, kind, self,
self.tv.get_toplevel())
if self.plugin_modified:
@@ -920,7 +920,7 @@ class ConversationTextview(GObject.GObject):
# PluginSystem: adding GUI extension point for ConversationTextview
self.plugin_modified = False
- gajim.plugin_manager.gui_extension_point('print_special_text', self,
+ gajim.plugin_manager.extension_point('print_special_text', self,
special_text, other_tags, graphics, additional_data)
if self.plugin_modified:
return
@@ -1397,7 +1397,7 @@ class ConversationTextview(GObject.GObject):
# PluginSystem: adding GUI extension point for ConversationTextview
self.plugin_modified = False
- gajim.plugin_manager.gui_extension_point('print_real_text', self,
+ gajim.plugin_manager.extension_point('print_real_text', self,
text, text_tags, graphics, iter_, additional_data)
if self.plugin_modified:
diff --git a/src/groupchat_control.py b/src/groupchat_control.py
index ea0eff4f7..0baa07490 100644
--- a/src/groupchat_control.py
+++ b/src/groupchat_control.py
@@ -776,7 +776,7 @@ class GroupchatControl(ChatControlBase):
'authenticated': False}
if self.encryption:
- gajim.plugin_manager.gui_extension_point(
+ gajim.plugin_manager.extension_point(
'encryption_state' + self.encryption, self, encryption_state)
self._show_lock_image(**encryption_state)
@@ -802,7 +802,7 @@ class GroupchatControl(ChatControlBase):
self.lock_image.set_sensitive(visible)
def _on_authentication_button_clicked(self, widget):
- gajim.plugin_manager.gui_extension_point(
+ gajim.plugin_manager.extension_point(
'encryption_dialog' + self.encryption, self)
def _change_style(self, model, path, iter_, option):
@@ -2022,7 +2022,7 @@ class GroupchatControl(ChatControlBase):
if self.encryption:
self.sendmessage = True
- gajim.plugin_manager.gui_extension_point(
+ gajim.plugin_manager.extension_point(
'send_message' + self.encryption, self)
if not self.sendmessage:
return
diff --git a/src/plugins/pluginmanager.py b/src/plugins/pluginmanager.py
index 13c64b499..bba599ce1 100644
--- a/src/plugins/pluginmanager.py
+++ b/src/plugins/pluginmanager.py
@@ -158,6 +158,26 @@ class PluginManager(metaclass=Singleton):
return None
@log_calls('PluginManager')
+ def extension_point(self, gui_extpoint_name, *args):
+ '''
+ Invokes all handlers (from plugins) for a particular extension point, but
+ doesnt add it to collection for further processing.
+ For example if you pass a message for encryption via extension point to a
+ plugin, its undesired that the call is stored and replayed on activating the
+ plugin. For example after an update.
+
+ :param gui_extpoint_name: name of GUI extension point.
+ :type gui_extpoint_name: str
+ :param args: parameters to be passed to extension point handlers
+ (typically and object that invokes `gui_extension_point`;
+ however, this can be practically anything)
+ :type args: tuple
+ '''
+
+ self._execute_all_handlers_of_gui_extension_point(gui_extpoint_name,
+ *args)
+
+ @log_calls('PluginManager')
def gui_extension_point(self, gui_extpoint_name, *args):
'''
Invokes all handlers (from plugins) for particular GUI extension point