ability to show HTML in plugin descriptions
This commit is contained in:
parent
e4edeb0f15
commit
5809aa2b5a
|
@ -296,23 +296,12 @@
|
||||||
</packing>
|
</packing>
|
||||||
</child>
|
</child>
|
||||||
<child>
|
<child>
|
||||||
<object class="GtkScrolledWindow" id="scrolledwindow">
|
<object class="GtkScrolledWindow" id="scrolledwindow2">
|
||||||
<property name="visible">True</property>
|
<property name="visible">True</property>
|
||||||
<property name="can_focus">True</property>
|
<property name="can_focus">True</property>
|
||||||
<property name="shadow_type">in</property>
|
<property name="shadow_type">in</property>
|
||||||
<child>
|
<child>
|
||||||
<object class="GtkTextView" id="plugin_description_textview">
|
<placeholder/>
|
||||||
<property name="visible">True</property>
|
|
||||||
<property name="sensitive">False</property>
|
|
||||||
<property name="can_focus">True</property>
|
|
||||||
<property name="pixels_above_lines">6</property>
|
|
||||||
<property name="editable">False</property>
|
|
||||||
<property name="wrap_mode">word</property>
|
|
||||||
<property name="left_margin">6</property>
|
|
||||||
<property name="right_margin">6</property>
|
|
||||||
<property name="indent">1</property>
|
|
||||||
<property name="buffer">textbuffer1</property>
|
|
||||||
</object>
|
|
||||||
</child>
|
</child>
|
||||||
</object>
|
</object>
|
||||||
<packing>
|
<packing>
|
||||||
|
|
|
@ -34,6 +34,7 @@ import os
|
||||||
|
|
||||||
import gtkgui_helpers
|
import gtkgui_helpers
|
||||||
from dialogs import WarningDialog, YesNoDialog, ArchiveChooserDialog
|
from dialogs import WarningDialog, YesNoDialog, ArchiveChooserDialog
|
||||||
|
from htmltextview import HtmlTextView
|
||||||
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 conversation_textview import ConversationTextview
|
||||||
|
@ -61,13 +62,15 @@ class PluginsWindow(object):
|
||||||
|
|
||||||
widgets_to_extract = ('plugins_notebook', 'plugin_name_label',
|
widgets_to_extract = ('plugins_notebook', 'plugin_name_label',
|
||||||
'plugin_version_label', 'plugin_authors_label',
|
'plugin_version_label', 'plugin_authors_label',
|
||||||
'plugin_homepage_linkbutton', 'plugin_description_textview',
|
'plugin_homepage_linkbutton', 'uninstall_plugin_button',
|
||||||
'uninstall_plugin_button', 'configure_plugin_button',
|
'configure_plugin_button', 'installed_plugins_treeview')
|
||||||
'installed_plugins_treeview')
|
|
||||||
|
|
||||||
for widget_name in widgets_to_extract:
|
for widget_name in widgets_to_extract:
|
||||||
setattr(self, widget_name, self.xml.get_object(widget_name))
|
setattr(self, widget_name, self.xml.get_object(widget_name))
|
||||||
|
|
||||||
|
self.plugin_description_textview = HtmlTextView()
|
||||||
|
sw = self.xml.get_object('scrolledwindow2')
|
||||||
|
sw.add(self.plugin_description_textview)
|
||||||
self.installed_plugins_model = Gtk.ListStore(object, str, bool, bool,
|
self.installed_plugins_model = Gtk.ListStore(object, str, bool, bool,
|
||||||
GdkPixbuf.Pixbuf)
|
GdkPixbuf.Pixbuf)
|
||||||
self.installed_plugins_treeview.set_model(self.installed_plugins_model)
|
self.installed_plugins_treeview.set_model(self.installed_plugins_model)
|
||||||
|
@ -146,15 +149,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)
|
||||||
|
|
||||||
|
sw = self.xml.get_object('scrolledwindow2')
|
||||||
|
old_tv = sw.get_children()[0]
|
||||||
|
old_tv.destroy()
|
||||||
|
self.plugin_description_textview = HtmlTextView()
|
||||||
|
sw.add(self.plugin_description_textview)
|
||||||
|
sw.show_all()
|
||||||
txt = plugin.description
|
txt = plugin.description
|
||||||
|
txt.replace('</body>', '')
|
||||||
if plugin.available_text:
|
if plugin.available_text:
|
||||||
txt += '\n\n' + _('Warning: %s') % plugin.available_text
|
txt += '<br/><br/>' + _('Warning: %s') % plugin.available_text
|
||||||
if not txt.startswith('<body '):
|
if not txt.startswith('<body '):
|
||||||
txt = '<body xmlns=\'http://www.w3.org/1999/xhtml\'>' + \
|
txt = '<body xmlns=\'http://www.w3.org/1999/xhtml\'>' + txt
|
||||||
txt + ' </body>'
|
txt += ' </body>'
|
||||||
txt = txt.replace('\n', '<br/>')
|
self.plugin_description_textview.tv.display_html(txt,
|
||||||
self.plugin_description_textview.tv.display_html(
|
self.plugin_description_textview, None)
|
||||||
txt, self.plugin_description_textview)
|
|
||||||
|
|
||||||
self.plugin_description_textview.tv.set_property('sensitive', True)
|
self.plugin_description_textview.tv.set_property('sensitive', True)
|
||||||
self.uninstall_plugin_button.set_property('sensitive',
|
self.uninstall_plugin_button.set_property('sensitive',
|
||||||
|
|
Loading…
Reference in New Issue