mirror of
https://github.com/gryf/pygtktalog.git
synced 2025-12-17 19:40:21 +01:00
* Added widget for so called "tag cloud".
This commit is contained in:
@@ -669,4 +669,30 @@ class MainController(Controller):
|
||||
else:
|
||||
self.view['thumb'].hide()
|
||||
return
|
||||
|
||||
def __tag_cloud(self):
|
||||
"""generate tag cloud"""
|
||||
# TODO: checkit!
|
||||
def tag_cloud_click(tag, textview, event, iter, e):
|
||||
"""react on click on connected tag items"""
|
||||
if event.type == gtk.gdk.BUTTON_RELEASE:
|
||||
print tag.get_property('name')
|
||||
|
||||
def insert_blank(b, iter):
|
||||
if b.is_end() and b.is_start():
|
||||
iter = b.get_end_iter()
|
||||
else:
|
||||
b.insert(iter, " ")
|
||||
iter = b.get_end_iter()
|
||||
return iter
|
||||
|
||||
if len(self.model.tag_cloud) > 0:
|
||||
buff = self.view['keyword_textview'].get_buffer()
|
||||
for cloud in self.model.tag_cloud:
|
||||
iter = insert_blank(buff, buff.get_end_iter())
|
||||
tag = buff.create_tag(cloud['id'])
|
||||
tag.set_property('size-points', cloud['size'])
|
||||
tag.connect('event', foo, tag)
|
||||
buff.insert_with_tags(iter, cloud['name'], tag)
|
||||
self.view['keyword_textview'].set_buffer(buff)
|
||||
pass # end of class
|
||||
|
||||
@@ -259,10 +259,7 @@ class MainModel(ModelMT):
|
||||
gobject.TYPE_UINT64,
|
||||
gobject.TYPE_STRING, gobject.TYPE_INT,
|
||||
gobject.TYPE_STRING, str)
|
||||
# Tag list: id, name, count
|
||||
self.tags_list = gtk.ListStore(gobject.TYPE_INT, gobject.TYPE_STRING,
|
||||
gobject.TYPE_UINT64, str)
|
||||
|
||||
self.tag_cloud = []
|
||||
return
|
||||
|
||||
def cleanup(self):
|
||||
@@ -475,15 +472,8 @@ class MainModel(ModelMT):
|
||||
|
||||
# private class functions
|
||||
def __clear_trees(self):
|
||||
self.__clear_tags_tree()
|
||||
self.__clear_files_tree()
|
||||
self.__clear_discs_tree()
|
||||
|
||||
def __clear_tags_tree(self):
|
||||
try:
|
||||
self.tags_list.clear()
|
||||
except:
|
||||
pass
|
||||
|
||||
def __clear_discs_tree(self):
|
||||
try:
|
||||
|
||||
Reference in New Issue
Block a user