source: lliurex-store/trunk/fuentes/lliurex-store-gui/SearchBox.py @ 3830

Last change on this file since 3830 was 3830, checked in by hectorgh, 3 years ago

wuo

File size: 2.4 KB
Line 
1import gi
2gi.require_version('Gtk', '3.0')
3from gi.repository import Gtk,GdkPixbuf,GLib,GObject, Pango
4
5import os
6import ImageManager
7import Core
8import Screenshot
9
10class SearchBox(Gtk.VBox):
11
12        def __init__(self):
13               
14                Gtk.VBox.__init__(self)
15               
16                self.core=Core.Core.get_core()
17                ui_path=self.core.ui_path
18                builder=Gtk.Builder()
19                builder.add_from_file(ui_path)
20               
21                self.label_max_width=65
22               
23               
24                self.search_box=builder.get_object("search_box")
25                self.search_box.set_name("DETAILS_BOX")
26                self.results_search_box=builder.get_object("results_search_box")
27               
28                self.add(self.search_box)
29                self.show_all()
30               
31        #def init
32       
33        def populate_search_results(self,pkg_list):
34               
35                for children in self.results_search_box.get_children():
36                        self.results_search_box.remove(children)
37                       
38                for pkg in pkg_list:
39                       
40                        item_hbox=Gtk.HBox()
41                        item_hbox.set_size_request(650,100)
42                       
43                       
44                        hbox=Gtk.HBox()
45                        hbox.set_name("PKG_BOX")
46                       
47                        vbox=Gtk.VBox()
48                       
49                        b=Gtk.Button()
50                        s=Screenshot.ScreenshotNeo()
51                        s.set_margin_left(10)
52                        label=Gtk.Label(pkg["name"])
53                        label.set_name("RELATED_LABEL")
54                        label.set_halign(Gtk.Align.START)
55                        label.set_valign(Gtk.Align.END)
56                        label.set_ellipsize(Pango.EllipsizeMode.END)
57                        label.set_max_width_chars(self.label_max_width)
58                       
59                        description=Gtk.Label(pkg["summary"])
60                        description.set_halign(Gtk.Align.START)
61                        description.set_valign(Gtk.Align.START)
62                        description.set_name("SHORT_DESCRIPTION")
63                        description.set_ellipsize(Pango.EllipsizeMode.END)
64                        description.set_max_width_chars(self.label_max_width)
65                       
66                        vbox.pack_start(label,False,False,0)
67                        vbox.pack_start(description,False,False,0)
68                        vbox.set_valign(Gtk.Align.CENTER)
69                       
70                        hbox.pack_start(s,False,False,5)
71                        hbox.pack_start(vbox,False,False,5)
72                       
73                        i={}
74                        i["x"]=64
75                        i["y"]=64
76                        i["aspect_ratio"]=True
77                        i["image_path"]=self.core.resources.get_icon(pkg)
78                        i["name"]=pkg["name"]
79                        i["image_id"]=pkg["package"]+"_icon"
80
81                       
82                        s.set_from_file(i)
83                        b.add(hbox)
84                       
85                        b.connect("clicked",self.result_clicked,pkg)
86                       
87                        b.set_size_request(715,100)
88                        b.set_halign(Gtk.Align.CENTER)
89                        b.set_name("RELATED_BUTTON")
90                        item_hbox.pack_start(b,True,True,0)
91                       
92                       
93                        self.results_search_box.pack_start(item_hbox,False,False,5)
94                       
95                self.results_search_box.show_all()
96               
97               
98        #def populate_search_results
99       
100        def result_clicked(self,widget,pkg_data):
101               
102                self.core.main_window.set_pkg_data(pkg_data)
103
104
105#class SearchBox
Note: See TracBrowser for help on using the repository browser.