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

dev.gajim.org/gajim/gajim-plugins.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPhilipp Hörist <forenjunkie@chello.at>2017-07-02 23:57:16 +0300
committerPhilipp Hörist <forenjunkie@chello.at>2017-07-02 23:57:16 +0300
commit1866cdfd7e4e0bbb43d680d35365f46f2aa56a64 (patch)
tree490daec4d7d59f106a8d25169ccb1594441b949d
parentfabfa3e7fdd78fef1a80b52d5bc634a8360e4ac4 (diff)
Remove EmoticonsPackPlugin
-rw-r--r--emoticons_pack/__init__.py1
-rw-r--r--emoticons_pack/config_dialog.ui377
-rw-r--r--emoticons_pack/contents.ini89
-rw-r--r--emoticons_pack/emoticons_pack.pngbin840 -> 0 bytes
-rw-r--r--emoticons_pack/emoticons_pack.py338
-rw-r--r--emoticons_pack/emoticons_pack.zipbin3012694 -> 0 bytes
-rw-r--r--emoticons_pack/manifest.ini8
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">&lt;empty&gt;</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">&lt;empty&gt;</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
deleted file mode 100644
index 7aec288..0000000
--- a/emoticons_pack/emoticons_pack.png
+++ /dev/null
Binary files differ
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
deleted file mode 100644
index a5fb1e8..0000000
--- a/emoticons_pack/emoticons_pack.zip
+++ /dev/null
Binary files differ
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