PluginSystem. xhtml in available tab
This commit is contained in:
		
							parent
							
								
									123c6e4d53
								
							
						
					
					
						commit
						ddbac25e19
					
				
					 2 changed files with 38 additions and 24 deletions
				
			
		| 
						 | 
					@ -1,9 +1,6 @@
 | 
				
			||||||
<?xml version="1.0" encoding="UTF-8"?>
 | 
					<?xml version="1.0" encoding="UTF-8"?>
 | 
				
			||||||
<interface>
 | 
					<interface>
 | 
				
			||||||
  <!-- interface-requires gtk+ 3.0 -->
 | 
					  <!-- interface-requires gtk+ 3.0 -->
 | 
				
			||||||
  <object class="GtkTextBuffer" id="textbuffer1">
 | 
					 | 
				
			||||||
    <property name="text" translatable="yes">Plug-in decription should be displayed here. This text will be erased during PluginsWindow initialization.</property>
 | 
					 | 
				
			||||||
  </object>
 | 
					 | 
				
			||||||
  <object class="GtkWindow" id="plugins_window">
 | 
					  <object class="GtkWindow" id="plugins_window">
 | 
				
			||||||
    <property name="width_request">650</property>
 | 
					    <property name="width_request">650</property>
 | 
				
			||||||
    <property name="height_request">500</property>
 | 
					    <property name="height_request">500</property>
 | 
				
			||||||
| 
						 | 
					@ -298,6 +295,11 @@
 | 
				
			||||||
                            <property name="position">0</property>
 | 
					                            <property name="position">0</property>
 | 
				
			||||||
                          </packing>
 | 
					                          </packing>
 | 
				
			||||||
                        </child>
 | 
					                        </child>
 | 
				
			||||||
 | 
					                        <child>
 | 
				
			||||||
 | 
					                          <object class="GtkScrolledWindow" id="scrolledwindow">
 | 
				
			||||||
 | 
					                            <property name="visible">True</property>
 | 
				
			||||||
 | 
					                            <property name="can_focus">True</property>
 | 
				
			||||||
 | 
					                            <property name="shadow_type">in</property>
 | 
				
			||||||
                            <child>
 | 
					                            <child>
 | 
				
			||||||
                              <object class="GtkTextView" id="plugin_description_textview">
 | 
					                              <object class="GtkTextView" id="plugin_description_textview">
 | 
				
			||||||
                                <property name="visible">True</property>
 | 
					                                <property name="visible">True</property>
 | 
				
			||||||
| 
						 | 
					@ -311,6 +313,8 @@
 | 
				
			||||||
                                <property name="indent">1</property>
 | 
					                                <property name="indent">1</property>
 | 
				
			||||||
                                <property name="buffer">textbuffer1</property>
 | 
					                                <property name="buffer">textbuffer1</property>
 | 
				
			||||||
                              </object>
 | 
					                              </object>
 | 
				
			||||||
 | 
					                            </child>
 | 
				
			||||||
 | 
					                          </object>
 | 
				
			||||||
                          <packing>
 | 
					                          <packing>
 | 
				
			||||||
                            <property name="expand">True</property>
 | 
					                            <property name="expand">True</property>
 | 
				
			||||||
                            <property name="fill">True</property>
 | 
					                            <property name="fill">True</property>
 | 
				
			||||||
| 
						 | 
					@ -493,4 +497,7 @@
 | 
				
			||||||
      </object>
 | 
					      </object>
 | 
				
			||||||
    </child>
 | 
					    </child>
 | 
				
			||||||
  </object>
 | 
					  </object>
 | 
				
			||||||
 | 
					  <object class="GtkTextBuffer" id="textbuffer1">
 | 
				
			||||||
 | 
					    <property name="text" translatable="yes">Plug-in decription should be displayed here. This text will be erased during PluginsWindow initialization.</property>
 | 
				
			||||||
 | 
					  </object>
 | 
				
			||||||
</interface>
 | 
					</interface>
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -36,6 +36,7 @@ import gtkgui_helpers
 | 
				
			||||||
from dialogs import WarningDialog, YesNoDialog, ArchiveChooserDialog
 | 
					from dialogs import WarningDialog, YesNoDialog, ArchiveChooserDialog
 | 
				
			||||||
from common import gajim
 | 
					from common import gajim
 | 
				
			||||||
from plugins.helpers import log_calls, log
 | 
					from plugins.helpers import log_calls, log
 | 
				
			||||||
 | 
					from conversation_textview import ConversationTextview
 | 
				
			||||||
from plugins.helpers import GajimPluginActivateException
 | 
					from plugins.helpers import GajimPluginActivateException
 | 
				
			||||||
from common.exceptions import PluginsystemError
 | 
					from common.exceptions import PluginsystemError
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					@ -99,7 +100,7 @@ class PluginsWindow(object):
 | 
				
			||||||
            self.installed_plugins_treeview_selection_changed)
 | 
					            self.installed_plugins_treeview_selection_changed)
 | 
				
			||||||
        selection.set_mode(Gtk.SelectionMode.SINGLE)
 | 
					        selection.set_mode(Gtk.SelectionMode.SINGLE)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        self._clear_installed_plugin_info()
 | 
					        #self._clear_installed_plugin_info()
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        self.fill_installed_plugins_model()
 | 
					        self.fill_installed_plugins_model()
 | 
				
			||||||
        root_iter = self.installed_plugins_model.get_iter_first()
 | 
					        root_iter = self.installed_plugins_model.get_iter_first()
 | 
				
			||||||
| 
						 | 
					@ -121,6 +122,11 @@ class PluginsWindow(object):
 | 
				
			||||||
    @log_calls('PluginsWindow')
 | 
					    @log_calls('PluginsWindow')
 | 
				
			||||||
    def installed_plugins_treeview_selection_changed(self, treeview_selection):
 | 
					    def installed_plugins_treeview_selection_changed(self, treeview_selection):
 | 
				
			||||||
        model, iter = treeview_selection.get_selected()
 | 
					        model, iter = treeview_selection.get_selected()
 | 
				
			||||||
 | 
					        self.xml.get_object('scrolledwindow').get_children()[0].destroy()
 | 
				
			||||||
 | 
					        self.plugin_description_textview = ConversationTextview(None)
 | 
				
			||||||
 | 
					        sw = self.xml.get_object('scrolledwindow')
 | 
				
			||||||
 | 
					        sw.add(self.plugin_description_textview.tv)
 | 
				
			||||||
 | 
					        sw.show_all()
 | 
				
			||||||
        if iter:
 | 
					        if iter:
 | 
				
			||||||
            plugin = model.get_value(iter, PLUGIN)
 | 
					            plugin = model.get_value(iter, PLUGIN)
 | 
				
			||||||
            plugin_name = model.get_value(iter, NAME)
 | 
					            plugin_name = model.get_value(iter, NAME)
 | 
				
			||||||
| 
						 | 
					@ -131,6 +137,7 @@ class PluginsWindow(object):
 | 
				
			||||||
            self._clear_installed_plugin_info()
 | 
					            self._clear_installed_plugin_info()
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    def _display_installed_plugin_info(self, plugin):
 | 
					    def _display_installed_plugin_info(self, plugin):
 | 
				
			||||||
 | 
					        from plugins.plugins_i18n import _
 | 
				
			||||||
        self.plugin_name_label.set_text(plugin.name)
 | 
					        self.plugin_name_label.set_text(plugin.name)
 | 
				
			||||||
        self.plugin_version_label.set_text(plugin.version)
 | 
					        self.plugin_version_label.set_text(plugin.version)
 | 
				
			||||||
        self.plugin_authors_label.set_text(plugin.authors)
 | 
					        self.plugin_authors_label.set_text(plugin.authors)
 | 
				
			||||||
| 
						 | 
					@ -140,19 +147,21 @@ class PluginsWindow(object):
 | 
				
			||||||
        label.set_ellipsize(Pango.EllipsizeMode.END)
 | 
					        label.set_ellipsize(Pango.EllipsizeMode.END)
 | 
				
			||||||
        self.plugin_homepage_linkbutton.set_property('sensitive', True)
 | 
					        self.plugin_homepage_linkbutton.set_property('sensitive', True)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        desc_textbuffer = self.plugin_description_textview.get_buffer()
 | 
					 | 
				
			||||||
        from plugins.plugins_i18n import _
 | 
					 | 
				
			||||||
        txt = plugin.description
 | 
					        txt = plugin.description
 | 
				
			||||||
        if plugin.available_text:
 | 
					        if plugin.available_text:
 | 
				
			||||||
            txt += '\n\n' + _('Warning: %s') % plugin.available_text
 | 
					            txt += '\n\n' + _('Warning: %s') % plugin.available_text
 | 
				
			||||||
        desc_textbuffer.set_text(txt)
 | 
					        if not txt.startswith('<body '):
 | 
				
			||||||
        self.plugin_description_textview.set_property('sensitive', True)
 | 
					            txt = '<body  xmlns=\'http://www.w3.org/1999/xhtml\'>' + \
 | 
				
			||||||
 | 
					                txt + ' </body>'
 | 
				
			||||||
 | 
					            txt = txt.replace('\n', '<br/>')
 | 
				
			||||||
 | 
					        self.plugin_description_textview.tv.display_html(
 | 
				
			||||||
 | 
					            txt, self.plugin_description_textview)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        self.plugin_description_textview.tv.set_property('sensitive', True)
 | 
				
			||||||
        self.uninstall_plugin_button.set_property('sensitive',
 | 
					        self.uninstall_plugin_button.set_property('sensitive',
 | 
				
			||||||
            gajim.PLUGINS_DIRS[1] in plugin.__path__)
 | 
					            gajim.PLUGINS_DIRS[1] in plugin.__path__)
 | 
				
			||||||
        if plugin.config_dialog is None:
 | 
					        self.configure_plugin_button.set_property(
 | 
				
			||||||
            self.configure_plugin_button.set_property('sensitive', False)
 | 
					            'sensitive', not plugin.config_dialog is None)
 | 
				
			||||||
        else:
 | 
					 | 
				
			||||||
            self.configure_plugin_button.set_property('sensitive', True)
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
    def _clear_installed_plugin_info(self):
 | 
					    def _clear_installed_plugin_info(self):
 | 
				
			||||||
        self.plugin_name_label.set_text('')
 | 
					        self.plugin_name_label.set_text('')
 | 
				
			||||||
| 
						 | 
					@ -162,9 +171,7 @@ class PluginsWindow(object):
 | 
				
			||||||
        self.plugin_homepage_linkbutton.set_label('')
 | 
					        self.plugin_homepage_linkbutton.set_label('')
 | 
				
			||||||
        self.plugin_homepage_linkbutton.set_property('sensitive', False)
 | 
					        self.plugin_homepage_linkbutton.set_property('sensitive', False)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        desc_textbuffer = self.plugin_description_textview.get_buffer()
 | 
					        self.plugin_description_textview.tv.set_property('sensitive', False)
 | 
				
			||||||
        desc_textbuffer.set_text('')
 | 
					 | 
				
			||||||
        self.plugin_description_textview.set_property('sensitive', False)
 | 
					 | 
				
			||||||
        self.uninstall_plugin_button.set_property('sensitive', False)
 | 
					        self.uninstall_plugin_button.set_property('sensitive', False)
 | 
				
			||||||
        self.configure_plugin_button.set_property('sensitive', False)
 | 
					        self.configure_plugin_button.set_property('sensitive', False)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Loading…
	
	Add table
		
		Reference in a new issue