diff options
author | Philipp Hörist <forenjunkie@chello.at> | 2017-07-02 23:57:16 +0300 |
---|---|---|
committer | Philipp Hörist <forenjunkie@chello.at> | 2017-07-02 23:57:16 +0300 |
commit | 1866cdfd7e4e0bbb43d680d35365f46f2aa56a64 (patch) | |
tree | 490daec4d7d59f106a8d25169ccb1594441b949d | |
parent | fabfa3e7fdd78fef1a80b52d5bc634a8360e4ac4 (diff) |
Remove EmoticonsPackPlugin
-rw-r--r-- | emoticons_pack/__init__.py | 1 | ||||
-rw-r--r-- | emoticons_pack/config_dialog.ui | 377 | ||||
-rw-r--r-- | emoticons_pack/contents.ini | 89 | ||||
-rw-r--r-- | emoticons_pack/emoticons_pack.png | bin | 840 -> 0 bytes | |||
-rw-r--r-- | emoticons_pack/emoticons_pack.py | 338 | ||||
-rw-r--r-- | emoticons_pack/emoticons_pack.zip | bin | 3012694 -> 0 bytes | |||
-rw-r--r-- | emoticons_pack/manifest.ini | 8 |
7 files changed, 0 insertions, 813 deletions
diff --git a/emoticons_pack/__init__.py b/emoticons_pack/__init__.py deleted file mode 100644 index 496821a..0000000 --- a/emoticons_pack/__init__.py +++ /dev/null @@ -1 +0,0 @@ -from .emoticons_pack import EmoticonsPackPlugin diff --git a/emoticons_pack/config_dialog.ui b/emoticons_pack/config_dialog.ui deleted file mode 100644 index 2235ac9..0000000 --- a/emoticons_pack/config_dialog.ui +++ /dev/null @@ -1,377 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<interface> - <!-- interface-requires gtk+ 3.0 --> - <object class="GtkTextBuffer" id="textbuffer1"> - <property name="text">Plug-in decription should be displayed here. This text will be erased during PluginsWindow initialization.</property> - </object> - <object class="GtkWindow" id="window1"> - <property name="can_focus">False</property> - <child> - <object class="GtkHPaned" id="hpaned2"> - <property name="width_request">600</property> - <property name="height_request">350</property> - <property name="visible">True</property> - <property name="can_focus">True</property> - <property name="position">340</property> - <property name="position_set">True</property> - <child> - <object class="GtkVBox" id="vbox1"> - <property name="visible">True</property> - <property name="can_focus">False</property> - <child> - <object class="GtkScrolledWindow" id="scrolledwindow2"> - <property name="visible">True</property> - <property name="can_focus">True</property> - <property name="border_width">6</property> - <property name="hscrollbar_policy">never</property> - <child> - <object class="GtkTreeView" id="available_treeview"> - <property name="visible">True</property> - <property name="can_focus">True</property> - <property name="search_column">1</property> - <child internal-child="selection"> - <object class="GtkTreeSelection" id="treeview-selection1"> - <property name="mode">none</property> - </object> - </child> - </object> - </child> - </object> - <packing> - <property name="expand">True</property> - <property name="fill">True</property> - <property name="position">0</property> - </packing> - </child> - <child> - <placeholder/> - </child> - </object> - <packing> - <property name="resize">False</property> - <property name="shrink">False</property> - </packing> - </child> - <child> - <object class="GtkVBox" id="vbox4"> - <property name="visible">True</property> - <property name="can_focus">False</property> - <property name="border_width">5</property> - <property name="spacing">6</property> - <child> - <object class="GtkLabel" id="set_name"> - <property name="visible">True</property> - <property name="can_focus">False</property> - <property name="xalign">0</property> - <property name="label">empty</property> - <property name="selectable">True</property> - <property name="ellipsize">end</property> - <attributes> - <attribute name="weight" value="bold"/> - </attributes> - </object> - <packing> - <property name="expand">False</property> - <property name="fill">True</property> - <property name="position">0</property> - </packing> - </child> - <child> - <object class="GtkHBox" id="hbox8"> - <property name="visible">True</property> - <property name="can_focus">False</property> - <property name="spacing">6</property> - <child> - <object class="GtkLabel" id="label8"> - <property name="visible">True</property> - <property name="can_focus">False</property> - <property name="label" translatable="yes">Authors:</property> - </object> - <packing> - <property name="expand">False</property> - <property name="fill">True</property> - <property name="position">0</property> - </packing> - </child> - <child> - <object class="GtkLabel" id="authors_label"> - <property name="visible">True</property> - <property name="can_focus">False</property> - <property name="xalign">0</property> - <property name="xpad">6</property> - <property name="label"><empty></property> - <property name="selectable">True</property> - <property name="ellipsize">end</property> - </object> - <packing> - <property name="expand">True</property> - <property name="fill">True</property> - <property name="position">1</property> - </packing> - </child> - </object> - <packing> - <property name="expand">False</property> - <property name="fill">True</property> - <property name="position">1</property> - </packing> - </child> - <child> - <object class="GtkHBox" id="hbox3"> - <property name="visible">True</property> - <property name="can_focus">False</property> - <property name="spacing">6</property> - <child> - <object class="GtkLabel" id="label3"> - <property name="visible">True</property> - <property name="can_focus">False</property> - <property name="label" translatable="yes">Converted by:</property> - </object> - <packing> - <property name="expand">False</property> - <property name="fill">True</property> - <property name="position">0</property> - </packing> - </child> - <child> - <object class="GtkLabel" id="converter_label"> - <property name="visible">True</property> - <property name="can_focus">False</property> - <property name="xalign">0</property> - <property name="xpad">6</property> - <property name="label"><empty></property> - <property name="selectable">True</property> - <property name="ellipsize">end</property> - </object> - <packing> - <property name="expand">True</property> - <property name="fill">True</property> - <property name="position">1</property> - </packing> - </child> - </object> - <packing> - <property name="expand">False</property> - <property name="fill">True</property> - <property name="position">2</property> - </packing> - </child> - <child> - <object class="GtkHBox" id="hbox9"> - <property name="visible">True</property> - <property name="can_focus">False</property> - <child> - <object class="GtkLabel" id="label9"> - <property name="visible">True</property> - <property name="can_focus">False</property> - <property name="label" translatable="yes">Homepage:</property> - </object> - <packing> - <property name="expand">False</property> - <property name="fill">True</property> - <property name="position">0</property> - </packing> - </child> - <child> - <object class="GtkLinkButton" id="homepage_linkbutton"> - <property name="label">button</property> - <property name="use_action_appearance">False</property> - <property name="visible">True</property> - <property name="can_focus">True</property> - <property name="receives_default">True</property> - <property name="use_action_appearance">False</property> - <property name="relief">none</property> - <property name="focus_on_click">False</property> - <property name="xalign">0</property> - </object> - <packing> - <property name="expand">True</property> - <property name="fill">True</property> - <property name="position">1</property> - </packing> - </child> - </object> - <packing> - <property name="expand">False</property> - <property name="fill">True</property> - <property name="position">3</property> - </packing> - </child> - <child> - <object class="GtkVBox" id="vbox5"> - <property name="visible">True</property> - <property name="can_focus">False</property> - <child> - <object class="GtkHBox" id="hbox10"> - <property name="visible">True</property> - <property name="can_focus">False</property> - <child> - <object class="GtkLabel" id="label10"> - <property name="visible">True</property> - <property name="can_focus">False</property> - <property name="label" translatable="yes">Description:</property> - </object> - <packing> - <property name="expand">False</property> - <property name="fill">True</property> - <property name="position">0</property> - </packing> - </child> - <child> - <object class="GtkAlignment" id="alignment4"> - <property name="visible">True</property> - <property name="can_focus">False</property> - <child> - <placeholder/> - </child> - </object> - <packing> - <property name="expand">True</property> - <property name="fill">True</property> - <property name="position">1</property> - </packing> - </child> - </object> - <packing> - <property name="expand">False</property> - <property name="fill">True</property> - <property name="position">0</property> - </packing> - </child> - <child> - <object class="GtkScrolledWindow" id="scrolledwindow1"> - <property name="visible">True</property> - <property name="can_focus">True</property> - <child> - <placeholder/> - </child> - </object> - <packing> - <property name="expand">True</property> - <property name="fill">True</property> - <property name="position">1</property> - </packing> - </child> - </object> - <packing> - <property name="expand">True</property> - <property name="fill">True</property> - <property name="position">4</property> - </packing> - </child> - <child> - <object class="GtkHBox" id="hbox15"> - <property name="visible">True</property> - <property name="can_focus">False</property> - <property name="homogeneous">True</property> - <child> - <object class="GtkButton" id="inslall_upgrade_button"> - <property name="use_action_appearance">False</property> - <property name="visible">True</property> - <property name="sensitive">False</property> - <property name="can_focus">False</property> - <property name="receives_default">True</property> - <property name="use_action_appearance">False</property> - <signal name="clicked" handler="on_inslall_upgrade_clicked" swapped="no"/> - <child> - <object class="GtkHBox" id="hbox1"> - <property name="visible">True</property> - <property name="can_focus">False</property> - <child> - <object class="GtkImage" id="image1"> - <property name="visible">True</property> - <property name="can_focus">False</property> - <property name="stock">gtk-refresh</property> - </object> - <packing> - <property name="expand">True</property> - <property name="fill">True</property> - <property name="position">0</property> - </packing> - </child> - <child> - <object class="GtkLabel" id="label1"> - <property name="visible">True</property> - <property name="can_focus">False</property> - <property name="xalign">0</property> - <property name="label" translatable="yes">Install/Upgrade</property> - </object> - <packing> - <property name="expand">True</property> - <property name="fill">True</property> - <property name="position">1</property> - </packing> - </child> - </object> - </child> - </object> - <packing> - <property name="expand">True</property> - <property name="fill">True</property> - <property name="position">0</property> - </packing> - </child> - <child> - <object class="GtkButton" id="legend_button"> - <property name="use_action_appearance">False</property> - <property name="visible">True</property> - <property name="can_focus">False</property> - <property name="receives_default">True</property> - <property name="margin_left">22</property> - <property name="use_action_appearance">False</property> - <signal name="clicked" handler="on_legend_button_clicked" swapped="no"/> - <child> - <object class="GtkHBox" id="hbox2"> - <property name="visible">True</property> - <property name="can_focus">False</property> - <child> - <object class="GtkImage" id="image2"> - <property name="visible">True</property> - <property name="can_focus">False</property> - <property name="stock">gtk-info</property> - </object> - <packing> - <property name="expand">True</property> - <property name="fill">True</property> - <property name="position">0</property> - </packing> - </child> - <child> - <object class="GtkLabel" id="label2"> - <property name="visible">True</property> - <property name="can_focus">False</property> - <property name="xalign">0</property> - <property name="label" translatable="yes">Legend</property> - </object> - <packing> - <property name="expand">True</property> - <property name="fill">True</property> - <property name="position">1</property> - </packing> - </child> - </object> - </child> - </object> - <packing> - <property name="expand">True</property> - <property name="fill">True</property> - <property name="position">1</property> - </packing> - </child> - </object> - <packing> - <property name="expand">False</property> - <property name="fill">True</property> - <property name="position">5</property> - </packing> - </child> - </object> - <packing> - <property name="resize">True</property> - <property name="shrink">False</property> - </packing> - </child> - </object> - </child> - </object> -</interface> diff --git a/emoticons_pack/contents.ini b/emoticons_pack/contents.ini deleted file mode 100644 index 7524e51..0000000 --- a/emoticons_pack/contents.ini +++ /dev/null @@ -1,89 +0,0 @@ -[MacThemes2] -icon: Smile.png -description: <body xmlns='http://www.w3.org/1999/xhtml'> - Mac Themes 2 Smilies <br/> - <img src="preview.image"/> - </body> -authors: David Lanham -homepage: https://trac.gajim.org/wiki/MacThemes2 - -[Citters Emoticons from Psi] -icon: smile.png -description: <body xmlns='http://www.w3.org/1999/xhtml'> - Citters Emoticons from Psi<br/> - <img src="preview.image"/> - </body> -converter: churchyard (JID: churchyard@njs.netlab.cz) -homepage: https://trac.gajim.org/wiki/cittersemoticons - -[Google Talk Emoticons] -icon: equal_smile.gif -description: <body xmlns='http://www.w3.org/1999/xhtml'> - Google Talk Emoticons<br/> - <img src="preview.image"/> - </body> -converter: Chris Cook -homepage: https://trac.gajim.org/wiki/gtalkemoticons - -[ICQ6 Emoticons] -icon: Smiley1.gif -description: <body xmlns='http://www.w3.org/1999/xhtml'> - ICQ6 Emoticons<br/> - <img src="preview.image"/> - </body> -homepage: https://trac.gajim.org/wiki/ICQ6-emotions - -[Kolobok Animated Emoticons] -icon: ab.gif -description: <body xmlns='http://www.w3.org/1999/xhtml'> - Kolobok Animated Emoticons<br/> - <img src="preview.image"/> - </body> -homepage: https://trac.gajim.org/wiki/kolobok-animated-emoticons - -[Pidgin Emoticons] -icon: smile.png -description: <body xmlns='http://www.w3.org/1999/xhtml'> - Pidgin Emoticons<br/> - <img src="preview.image"/> - </body> -homepage: https://trac.gajim.org/wiki/PidginEmoticons - -[Psynova qip's theme] -icon: ab.gif -authors: zOrg -description: <body xmlns='http://www.w3.org/1999/xhtml'> - Psynova qip's theme<br/> - <img src="preview.image"/> - </body> -homepage: https://trac.gajim.org/wiki/psynovaemoticons - -[Yahoo Emoticons] -icon: equal_smile.gif -description: <body xmlns='http://www.w3.org/1999/xhtml'> - Yahoo Emoticons<br/> - <img src="preview.image"/> - </body> -homepage: https://trac.gajim.org/wiki/YahooEmoticons - -[Nekomoticons] -icon: s01.jpg -authors: somik (http://somik.deviantart.com/) -converter: Dotterian (http://dotterian.ru/) -description: <body xmlns='http://www.w3.org/1999/xhtml'> - Nekomoticons<br/> - <img src="preview.image"/> - </body> -homepage: https://trac.gajim.org/wiki/Nekomoticons - -[Trollicons] -icon: Happy-EverythingWentBetterThanExpected.png -authors: Sagar Pandya - Chris Li - Jonathan E. Chen -converter: Matthieu L. -description: <body xmlns='http://www.w3.org/1999/xhtml'> - Trollicons (Rage Icons for Gajim)<br/> - <img src="preview.image"/> - </body> -homepage: https://github.com/sagargp/trollicons/blob/master/readme.md#downloads diff --git a/emoticons_pack/emoticons_pack.png b/emoticons_pack/emoticons_pack.png Binary files differdeleted file mode 100644 index 7aec288..0000000 --- a/emoticons_pack/emoticons_pack.png +++ /dev/null diff --git a/emoticons_pack/emoticons_pack.py b/emoticons_pack/emoticons_pack.py deleted file mode 100644 index 6978ff8..0000000 --- a/emoticons_pack/emoticons_pack.py +++ /dev/null @@ -1,338 +0,0 @@ -# -*- coding: utf-8 -*- -## - -from gi.repository import Gtk -from gi.repository import GdkPixbuf -from gi.repository import Pango -from gi.repository import GObject -import configparser -import os -import zipfile -import tempfile -from shutil import rmtree -import sys -import imp -import posixpath -from enum import IntEnum -from common import gajim -from plugins import GajimPlugin -from plugins.helpers import log_calls -from htmltextview import HtmlTextView -from dialogs import WarningDialog, HigDialog - - -class Column(IntEnum): - PIXBUF = 0 - NAME = 1 - DESCRIPTION = 2 - AUTHORS = 3 - CONVERTER = 4 - HOMEPAGE = 5 - UPGRADE = 6 - - -class EmoticonsPackPlugin(GajimPlugin): - - @log_calls('EmoticonsPackPlugin') - def init(self): - self.description = _('Install, update and view detailed legend ' - 'of emoticons') - self.config_dialog = None # EmoticonsPackPluginConfigDialog(self) - self.gui_extension_points = {'plugin_window': (self.on_activate, None)} - self.window = None - self.model = None - self.connected_ids = {} - self.tmp_dir = '' - - @log_calls('EmoticonsPackPlugin') - def activate(self): - if 'plugins' in gajim.interface.instances: - self.on_activate(gajim.interface.instances['plugins']) - - @log_calls('EmoticonsPackPlugin') - def deactivate(self): - if hasattr(self, 'page_num'): - self.notebook.remove_page(self.notebook.page_num(self.hpaned)) - self.notebook.set_current_page(0) - for id_, widget in list(self.connected_ids.items()): - widget.disconnect(id_) - del self.page_num - - def on_activate(self, plugin_win): - if hasattr(self, 'page_num'): - # 'Available' tab exists - return - self.notebook = plugin_win.plugins_notebook - id_ = self.notebook.connect( - 'switch-page', self.on_notebook_switch_page) - self.connected_ids[id_] = self.notebook - self.window = plugin_win.window - id_ = self.window.connect('destroy', self.on_win_destroy) - self.connected_ids[id_] = self.window - self.Gtk_BUILDER_FILE_PATH = self.local_file_path('config_dialog.ui') - self.xml = Gtk.Builder() - self.xml.set_translation_domain('gajim_plugins') - self.xml.add_objects_from_file(self.Gtk_BUILDER_FILE_PATH, ['hpaned2']) - self.hpaned = self.xml.get_object('hpaned2') - self.page_num = self.notebook.append_page(self.hpaned, Gtk.Label(_( - 'Emoticons'))) - - widgets_to_extract = ( - 'set_name', 'available_treeview', 'homepage_linkbutton', - 'inslall_upgrade_button', 'authors_label', 'converter_label',) - - for widget_name in widgets_to_extract: - setattr(self, widget_name, self.xml.get_object(widget_name)) - - self.model = Gtk.ListStore( - GdkPixbuf.Pixbuf, GObject.TYPE_STRING, - GObject.TYPE_STRING, GObject.TYPE_STRING, - GObject.TYPE_STRING, GObject.TYPE_STRING, GObject.TYPE_BOOLEAN) - self.available_treeview.set_model(self.model) - self.available_treeview.set_rules_hint(True) - self.model.set_sort_column_id(1, Gtk.SortType.ASCENDING) - - renderer = Gtk.CellRendererText() - col = Gtk.TreeViewColumn(_('Name')) - cell = Gtk.CellRendererPixbuf() - col.pack_start(cell, False) - col.add_attribute(cell, 'pixbuf', Column.PIXBUF) - col.pack_start(renderer, True) - col.add_attribute(renderer, 'text', Column.NAME) - col.set_property('expand', True) - col.set_sizing(Gtk.TreeViewColumnSizing.GROW_ONLY) - self.available_treeview.append_column(col) - - renderer = Gtk.CellRendererToggle() - renderer.set_property('activatable', True) - renderer.connect('toggled', self.available_emoticons_toggled_cb) - col = Gtk.TreeViewColumn( - _('Install /\nUpgrade'), renderer, active=Column.UPGRADE) - col.set_property('expand', False) - col.set_resizable(False) - self.available_treeview.append_column(col) - - selection = self.available_treeview.get_selection() - selection.connect('changed', self.emoticons_treeview_selection_changed) - selection.set_mode(Gtk.SelectionMode.SINGLE) - - self.emoticons_description_textview = HtmlTextView() - sw = self.xml.get_object('scrolledwindow1') - sw.add(self.emoticons_description_textview) - self.xml.connect_signals(self) - self.window.show_all() - - def on_legend_button_clicked(self, widget): - treeview_selection = self.available_treeview.get_selection() - model, iter = treeview_selection.get_selected() - name = model.get_value(iter, Column.NAME) - - self.emoticons_description_textview.get_buffer().set_text('') - - label = self.xml.get_object('label2') - if label.get_text() == _('Legend'): - label.set_text(_('Description')) - sys.path.append(os.path.join(self.tmp_dir, name)) - - import emoticons - imp.reload(emoticons) - - buff = self.emoticons_description_textview.get_buffer() - for icon in emoticons.emoticons: - icon_file = os.path.join(self.tmp_dir, name, icon) - with open(icon_file, 'rb') as _file: - data = _file.read() - pbl = GdkPixbuf.PixbufLoader() - pbl.write(data) - pbl.close() - if icon.endswith('.gif'): - img = Gtk.Image() - img.set_from_animation(pbl.get_animation()) - img.show() - anchor = buff.create_child_anchor(buff.get_end_iter()) - self.emoticons_description_textview.add_child_at_anchor( - img, anchor) - else: - buff.insert_pixbuf(buff.get_end_iter(), pbl.get_pixbuf()) - text = ' , '.join(emoticons.emoticons[icon]) - buff.insert(buff.get_end_iter(), text + '\n', -1) - - self.emoticons_description_textview.set_property('sensitive', True) - sys.path.remove(os.path.join(self.tmp_dir, name)) - - else: - label.set_text(_('Legend')) - desc = _(model.get_value(iter, Column.DESCRIPTION)) - if not desc.startswith('<body '): - desc = '<body xmlns=\'http://www.w3.org/1999/xhtml\'>' + \ - desc + ' </body>' - desc = desc.replace('preview.image', ('file:' + os.path.join( - self.tmp_dir, name, 'preview.png'))).replace('\n', '<br/>') - self.emoticons_description_textview.display_html( - desc, self.emoticons_description_textview, None) - self.emoticons_description_textview.set_property( - 'sensitive', True) - - def on_inslall_upgrade_clicked(self, widget): - self.inslall_upgrade_button.set_property('sensitive', False) - self.errors = '' - - def on_error(func, path, error): - if func == os.path.islink: - # if symlink - os.unlink(path) - return - # access is denied or other - # WarningDialog(_('Can\'t remove dir'), error[1], self.window) - self.errors += str(error[1]) - - name_list = [] - for i in range(len(self.model)): - if self.model[i][Column.UPGRADE]: - name_list.append(self.model[i][Column.NAME]) - for name in name_list: - # remove dirs - target_dir = os.path.join(gajim.MY_EMOTS_PATH, name) - if os.path.isdir(target_dir): - rmtree(target_dir, False, on_error) - - # unzip new files - zip_file = os.path.join(self.__path__, 'emoticons_pack.zip') - with zipfile.ZipFile(zip_file, 'r') as myzip: - namelist = myzip.namelist() - for n in namelist: - if not n.startswith(name): - continue - try: - icon_file = myzip.extract(n, path=gajim.MY_EMOTS_PATH) - except Exception as e: - self.errors += str(e) - # unset all checkbattons - for i in range(len(self.model)): - self.model[i][Column.UPGRADE] = False - - if self.errors: - WarningDialog( - _('Not fully installed'), - 'Access is denied or other', self.window) - else: - # show dialog - dialog = HigDialog( - None, Gtk.MessageType.INFO, Gtk.ButtonsType.OK, '', - _('All selected emoticons installed(upgraded)')) - dialog.set_modal(False) - dialog.set_transient_for(self.window) - dialog.popup() - - def on_win_destroy(self, widget): - if hasattr(self, 'page_num'): - del self.page_num - - def available_emoticons_toggled_cb(self, cell, path): - is_active = self.model[path][Column.UPGRADE] - self.model[path][Column.UPGRADE] = not is_active - dir_list = [] - for i in range(len(self.model)): - if self.model[i][Column.UPGRADE]: - dir_list.append(self.model[i][Column.NAME]) - if not dir_list: - self.inslall_upgrade_button.set_property('sensitive', False) - else: - self.inslall_upgrade_button.set_property('sensitive', True) - - def on_notebook_switch_page(self, widget, page, page_num): - tab_label_text = self.notebook.get_tab_label_text(page) - if tab_label_text != (_('Emoticons')): - return - if len(self.model): - return - - self.model.clear() - self.fill_table() - self.select_root_iter() - - def fill_table(self): - conf = configparser.ConfigParser() - # read metadata from contents.ini - contents_path = os.path.join(self.__path__, 'contents.ini') - with open(contents_path) as _file: - conf.read_file(_file) - for section in conf.sections(): - # get icon - filename = posixpath.join(section, conf.get(section, 'icon')) - zip_file = os.path.join(self.__path__, 'emoticons_pack.zip') - with zipfile.ZipFile(zip_file, 'r') as myzip: - icon_file = myzip.open(filename, mode='r') - data = icon_file.read() - pbl = GdkPixbuf.PixbufLoader() - pbl.set_size(16, 16) - pbl.write(data) - pbl.close() - icon = pbl.get_pixbuf() - - self.model.append( - [icon, section, - conf.get(section, 'description'), - conf.get(section, 'authors', fallback=_('Unknown')), - conf.get(section, 'converter', fallback=_('Unknown')), - conf.get(section, 'homepage'), False]) - conf.remove_section(section) - - def emoticons_treeview_selection_changed(self, treeview_selection): - model, iter = treeview_selection.get_selected() - label = self.xml.get_object('label2') - label.set_text(_('Legend')) - if iter: - set_name = model.get_value(iter, Column.NAME) - if os.path.isdir(self.tmp_dir): - rmtree(self.tmp_dir, True) - self.tmp_dir = tempfile.mkdtemp() - # unzip new files - zip_file = os.path.join(self.__path__, 'emoticons_pack.zip') - with zipfile.ZipFile(zip_file, 'r') as myzip: - namelist = myzip.namelist() - for n in namelist: - if not n.startswith(set_name): - continue - myzip.extract(n, path=self.tmp_dir) - - self.set_name.set_text(set_name) - self.authors_label.set_text(model.get_value(iter, Column.AUTHORS)) - self.converter_label.set_text(model.get_value(iter, Column.CONVERTER)) - self.homepage_linkbutton.set_uri( - model.get_value(iter, Column.HOMEPAGE)) - self.homepage_linkbutton.set_label( - model.get_value(iter, Column.HOMEPAGE)) - label = self.homepage_linkbutton.get_children()[0] - label.set_ellipsize(Pango.EllipsizeMode.END) - self.homepage_linkbutton.set_property('sensitive', True) - - self.emoticons_description_textview.get_buffer().set_text('') - desc = _(model.get_value(iter, Column.DESCRIPTION)) - if not desc.startswith('<body '): - desc = '<body xmlns=\'http://www.w3.org/1999/xhtml\'>' + \ - desc + ' </body>' - else: - desc = desc.replace('preview.image', ('file:' + os.path.join( - self.tmp_dir, set_name, 'preview.png'))) - self.emoticons_description_textview.display_html( - desc, self.emoticons_description_textview, None) - self.emoticons_description_textview.set_property( - 'sensitive', True) - else: - self.set_name.set_text('') - self.authors_label.set_text('') - self.homepage_linkbutton.set_uri('') - self.homepage_linkbutton.set_label('') - self.homepage_linkbutton.set_property('sensitive', False) - - def select_root_iter(self): - if hasattr(self, 'page_num'): - selection = self.available_treeview.get_selection() - if selection.count_selected_rows() == 0: - root_iter = self.model.get_iter_first() - selection.select_iter(root_iter) - scr_win = self.xml.get_object('scrolledwindow2') - vadjustment = scr_win.get_vadjustment() - if vadjustment: - vadjustment.set_value(0) diff --git a/emoticons_pack/emoticons_pack.zip b/emoticons_pack/emoticons_pack.zip Binary files differdeleted file mode 100644 index a5fb1e8..0000000 --- a/emoticons_pack/emoticons_pack.zip +++ /dev/null diff --git a/emoticons_pack/manifest.ini b/emoticons_pack/manifest.ini deleted file mode 100644 index f96cc83..0000000 --- a/emoticons_pack/manifest.ini +++ /dev/null @@ -1,8 +0,0 @@ -[info] -name: Emoticons pack -short_name: emoticons_pack -version: 2.0.0 -description: Install, update and view detailed legend of emoticons -authors: Denis Fomin <fominde@gmail.com> -homepage: https://dev.gajim.org/gajim/gajim-plugins/wikis/EmoticonPackPlugin -min_gajim_version: 0.16.10 |