From 1e62bf731594c593d7f0e7fab2db73875db4130f Mon Sep 17 00:00:00 2001
From: Denis Fomin <fominde@gmail.com>
Date: Sun, 21 Jul 2013 23:34:42 +0400
Subject: [PATCH] QuickRepliesPlugin,GuiForMePlugin.change buttons state when
 the status has changed. Fixes #60

---
 gui_for_me/gui_for_me.py   | 13 +++++++++++--
 gui_for_me/manifest.ini    |  2 +-
 quick_replies/manifest.ini |  2 +-
 quick_replies/plugin.py    | 11 ++++++++++-
 4 files changed, 23 insertions(+), 5 deletions(-)

diff --git a/gui_for_me/gui_for_me.py b/gui_for_me/gui_for_me.py
index 97744e09..3ba9b1e8 100644
--- a/gui_for_me/gui_for_me.py
+++ b/gui_for_me/gui_for_me.py
@@ -14,8 +14,10 @@ class GuiForMe(GajimPlugin):
         self.description = _('Gui for the \'/me\' command.')
         self.config_dialog = None  # GuiForMePluginConfigDialog(self)
         self.gui_extension_points = {
-                'chat_control_base': (self.connect_with_chat_control,
-                                       self.disconnect_from_chat_control)}
+            'chat_control_base': (self.connect_with_chat_control,
+                                  self.disconnect_from_chat_control),
+            'chat_control_base_update_toolbar': (self.update_button_state,
+                                                None)}
         self.controls = []
 
     @log_calls('GuiForMePlugin')
@@ -34,6 +36,13 @@ class GuiForMe(GajimPlugin):
             control.disconnect_from_chat_control()
         self.controls = []
 
+    @log_calls('GuiForMePlugin')
+    def update_button_state(self, chat_control):
+        for base in self.controls:
+            if base.chat_control != chat_control:
+                continue
+            base.button.set_sensitive(chat_control.msg_textview.get_sensitive())
+
 
 class Base(object):
     def __init__(self, plugin, chat_control):
diff --git a/gui_for_me/manifest.ini b/gui_for_me/manifest.ini
index 8591a259..0b29a4cc 100644
--- a/gui_for_me/manifest.ini
+++ b/gui_for_me/manifest.ini
@@ -1,7 +1,7 @@
 [info]
 name: GUI For Me
 short_name: gui_for_me
-version: 0.1
+version: 0.2
 description: Gui for the '/me' command.
 authors: BomberMan
  copper
diff --git a/quick_replies/manifest.ini b/quick_replies/manifest.ini
index c05b41c5..6f1c8f92 100644
--- a/quick_replies/manifest.ini
+++ b/quick_replies/manifest.ini
@@ -1,7 +1,7 @@
 [info]
 name: Quick replies
 short_name: quick_replies
-version: 0.0.1
+version: 0.0.2
 description: Plugin for quick insert template message and add your own template messages
 authors = Evgeniy Popov <evgeniypopov@gmail.com>
 homepage = http://trac-plugins.gajim.org/wiki/QuickRepliesPlugin
diff --git a/quick_replies/plugin.py b/quick_replies/plugin.py
index 185781c2..f0650bb9 100644
--- a/quick_replies/plugin.py
+++ b/quick_replies/plugin.py
@@ -16,7 +16,9 @@ class QuickRepliesPlugin(GajimPlugin):
         self.chat_control = None
         self.gui_extension_points = {
             'chat_control_base': (self.connect_with_chat_control,
-                                    self.disconnect_from_chat_control), }
+                                    self.disconnect_from_chat_control),
+            'chat_control_base_update_toolbar': (self.update_button_state,
+                                    None)}
         self.config_default_values = {
             'entry1': ('Hello!', ''),
             'entry2': ('How are you?', ''),
@@ -45,6 +47,13 @@ class QuickRepliesPlugin(GajimPlugin):
             control.disconnect_from_chat_control()
         self.controls = []
 
+    @log_calls('GuiForMePlugin')
+    def update_button_state(self, chat_control):
+        for base in self.controls:
+            if base.chat_control != chat_control:
+                continue
+            base.button.set_sensitive(chat_control.msg_textview.get_sensitive())
+
 
 class Base(object):
 
-- 
GitLab