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

Last change on this file since 4099 was 4099, checked in by hectorgh, 4 years ago

wip

File size: 2.5 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                self.search_sw=builder.get_object("search_scrolledwindow")
28               
29                self.add(self.search_box)
30                self.show_all()
31               
32        #def init
33       
34        def populate_search_results(self,pkg_list):
35               
36                for children in self.results_search_box.get_children():
37                        self.results_search_box.remove(children)
38                       
39                self.search_sw.get_vadjustment().set_value(0)
40               
41               
42                for pkg in pkg_list:
43                       
44                        item_hbox=Gtk.HBox()
45                        item_hbox.set_size_request(650,100)
46                       
47                        hbox=Gtk.HBox()
48                        hbox.set_name("PKG_BOX")
49                       
50                        vbox=Gtk.VBox()
51                       
52                        b=Gtk.Button()
53                        s=Screenshot.ScreenshotNeo()
54                        s.set_margin_left(10)
55                        label=Gtk.Label(pkg["name"])
56                        label.set_name("RELATED_LABEL")
57                        label.set_halign(Gtk.Align.START)
58                        label.set_valign(Gtk.Align.END)
59                        label.set_ellipsize(Pango.EllipsizeMode.END)
60                        label.set_max_width_chars(self.label_max_width)
61                       
62                        description=Gtk.Label(pkg["summary"])
63                        description.set_halign(Gtk.Align.START)
64                        description.set_valign(Gtk.Align.START)
65                        description.set_name("SHORT_DESCRIPTION")
66                        description.set_ellipsize(Pango.EllipsizeMode.END)
67                        description.set_max_width_chars(self.label_max_width)
68                       
69                        vbox.pack_start(label,False,False,0)
70                        vbox.pack_start(description,False,False,0)
71                        vbox.set_valign(Gtk.Align.CENTER)
72                       
73                        hbox.pack_start(s,False,False,5)
74                        hbox.pack_start(vbox,False,False,5)
75                       
76                        i={}
77                        i["x"]=64
78                        i["y"]=64
79                        i["aspect_ratio"]=True
80                        i["image_path"]=pkg["icon_uri"]
81                        i["name"]=pkg["name"]
82                        i["image_id"]=pkg["package"]+"_icon"
83
84                       
85                        s.set_from_file(i)
86                        b.add(hbox)
87                       
88                        b.connect("clicked",self.result_clicked,pkg)
89                       
90                        b.set_size_request(715,100)
91                        b.set_halign(Gtk.Align.CENTER)
92                        b.set_name("RELATED_BUTTON")
93                        item_hbox.pack_start(b,True,True,0)
94                       
95                       
96                        self.results_search_box.pack_start(item_hbox,False,False,5)
97                       
98                self.results_search_box.show_all()
99               
100               
101        #def populate_search_results
102       
103        def result_clicked(self,widget,pkg_data):
104               
105                self.core.main_window.load_pkg_data(pkg_data["package"])
106
107
108#class SearchBox
Note: See TracBrowser for help on using the repository browser.