changeset 76201ae6c611 in /home/hg/repos/gajim-plugins

author: Denis Fomin <[email protected]>
branches: 
details:gajim-plugins?cmd=changeset;node=76201ae6c611
description: JuickPlugin.UrlImagePreviewPlugin. support latest gajim

diffstat:

 juick/plugin.py                        |  31 ++++++++++++++++++-------------
 url_image_preview/url_image_preview.py |   2 +-
 2 файлов изменено, 19 вставок(+), 14 удалений(-)

различия (91 строк):

diff -r 3c625f96aafb -r 76201ae6c611 juick/plugin.py
--- a/juick/plugin.py   Mon Sep 16 21:46:41 2013 +0400
+++ b/juick/plugin.py   Tue Sep 17 12:51:59 2013 +0400
@@ -378,32 +378,36 @@
                 if not pixbuf:
                     self.textview.plugin_modified = True
                     return
-                end_iter = buffer_.get_iter_at_mark(mark)
-                anchor = buffer_.create_child_anchor(end_iter)
-                img = TextViewImage(anchor, nick)
-                img.set_from_pixbuf(pixbuf)
-                img.show()
-                self.textview.tv.add_child_at_anchor(img, anchor)
+                gobject.idle_add(self.set_avatar, mark, nick, pixbuf)
                 self.textview.plugin_modified = True
                 return
             else:
                 # nick not in the db
                 gobject.idle_add(self.get_new_avatar, mark, nick)
+                self.textview.plugin_modified = True
                 return
         if gajim.interface.juick_pic_re.match(special_text) and \
             self.plugin.config['SHOW_PREVIEW']:
             # show pics preview
             buffer_, iter_, tag = self.get_iter_and_tag('url')
-            mark = buffer_.create_mark(None, iter__, True)
-            buffer_.insert_with_tags(iter__, special_text, tag)
+            mark = buffer_.create_mark(None, buffer_.get_end_iter(), True)
             uid = special_text.split('/')[-1]
             url = "http://i.juick.com/photos-512/%s"; % uid
             gajim.thread_interface(self.insert_pic_preview, [mark, 
special_text,
-                url])
+                url, tag])
             self.textview.plugin_modified = True
             return
 
-    def insert_pic_preview(self, mark, special_text, url):
+    def set_avatar(self, mark, nick, pixbuf):
+        buffer_ = mark.get_buffer()
+        end_iter = buffer_.get_iter_at_mark(mark)
+        anchor = buffer_.create_child_anchor(end_iter)
+        img = TextViewImage(anchor, nick)
+        img.set_from_pixbuf(pixbuf)
+        img.show()
+        self.textview.tv.add_child_at_anchor(img, anchor)
+
+    def insert_pic_preview(self, mark, special_text, url, tag):
         pixbuf = self.get_pixbuf_from_url( url, self.plugin.config[
             'PREVIEW_SIZE'])
         if pixbuf:
@@ -415,6 +419,9 @@
             img.set_from_pixbuf(pixbuf)
             img.show()
             self.textview.tv.add_child_at_anchor(img, anchor)
+        buffer_ = mark.get_buffer()
+        end_iter = buffer_.get_iter_at_mark(mark)
+        buffer_.insert_with_tags(end_iter, special_text, tag)
 
     def get_iter_and_tag(self, tag_name):
         buffer_ = self.textview.tv.get_buffer()
@@ -430,17 +437,15 @@
             _id = str(j[0]['uid'])
         except urllib2.HTTPError, e:
             return
+        pixbuf = self.get_avatar(_id, nick)
         buffer_ = mark.get_buffer()
         end_iter = buffer_.get_iter_at_mark(mark)
-        pixbuf = self.get_avatar(_id, nick)
         anchor = buffer_.create_child_anchor(end_iter)
         img = TextViewImage(anchor, nick)
         img.set_from_pixbuf(pixbuf)
         img.show()
         self.textview.tv.add_child_at_anchor(img, anchor)
 
-
-
     def get_avatar(self, uid, nick, need_check=None):
         # search avatar in cache or download from juick.com
         pic = uid + '.png'
diff -r 3c625f96aafb -r 76201ae6c611 url_image_preview/url_image_preview.py
--- a/url_image_preview/url_image_preview.py    Mon Sep 16 21:46:41 2013 +0400
+++ b/url_image_preview/url_image_preview.py    Tue Sep 17 12:51:59 2013 +0400
@@ -50,7 +50,7 @@
                 iter_=None)
 
     def print_special_text1(self, chat_control, special_text, other_tags=None,
-        graphics=True):
+        graphics=True, iter_=None):
         for control in self.controls:
             if control.chat_control == chat_control:
                 control.disconnect_from_chat_control()
_______________________________________________
Commits mailing list
[email protected]
http://lists.gajim.org/cgi-bin/listinfo/commits

Reply via email to