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

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

wip

File size: 3.3 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_box2")
25                self.search_box.set_name("DETAILS_BOX")
26                self.results_search_box=builder.get_object("search_results_box")
27                self.search_sw=builder.get_object("results_scrolledwindow")
28                self.search_categories_box=builder.get_object("search_categories_box")
29                self.categories_sw=builder.get_object("categories_scrolledwindow")
30               
31                self.add(self.search_box)
32                self.show_all()
33               
34        #def init
35       
36        def populate_search_results(self,pkg_list):
37               
38                x,y=self.core.main_window.window.get_size()
39               
40                size_test=x-80
41               
42                size_test-=100
43               
44                print(x,y)
45               
46               
47                for children in self.results_search_box.get_children():
48                        self.results_search_box.remove(children)
49                       
50                self.search_sw.get_vadjustment().set_value(0)
51               
52               
53                for x in range(0,50):
54               
55                        hbox=Gtk.HBox()
56                        hbox.set_name("PKG_BOX")
57                       
58                        label=Gtk.Label("Hola")
59                        label.set_name("SHORT_DESCRIPTION")
60                       
61                        hbox.pack_start(label,True,True,5)
62                       
63                       
64                        b=Gtk.Button()
65                        b.set_name("RELATED_BUTTON")
66                        b.add(hbox)
67                        b.show_all()
68                       
69                        b.set_size_request(150,0)
70                       
71                        x,y=b.get_size_request()
72                       
73                        x2,y2=self.categories_sw.get_size_request()
74                       
75                        if x > x2:
76                                self.categories_sw.set_size_request(x+30,0)
77                       
78                       
79                        self.search_categories_box.pack_start(b,False,False,5)
80                       
81                #self.categories_sw.hide()
82               
83                for pkg in pkg_list:
84                       
85                        item_hbox=Gtk.HBox()
86                        #item_hbox.set_size_request(0,80)
87                       
88                        hbox=Gtk.HBox()
89                        hbox.set_name("PKG_BOX")
90                       
91                        vbox=Gtk.VBox()
92                       
93                        b=Gtk.Button()
94                        s=Screenshot.ScreenshotNeo()
95                        s.set_margin_left(10)
96                        label=Gtk.Label(pkg["name"])
97                        label.set_name("RELATED_LABEL")
98                        label.set_halign(Gtk.Align.START)
99                        label.set_valign(Gtk.Align.END)
100                        label.set_ellipsize(Pango.EllipsizeMode.END)
101                        label.set_max_width_chars(self.label_max_width)
102                       
103                        description=Gtk.Label(pkg["summary"])
104                        description.set_halign(Gtk.Align.START)
105                        description.set_valign(Gtk.Align.START)
106                        description.set_name("SHORT_DESCRIPTION")
107                        description.set_ellipsize(Pango.EllipsizeMode.END)
108                        description.set_max_width_chars(self.label_max_width)
109                       
110                        vbox.pack_start(label,False,False,0)
111                        vbox.pack_start(description,False,False,0)
112                        vbox.set_valign(Gtk.Align.CENTER)
113                       
114                        hbox.pack_start(s,False,False,5)
115                        hbox.pack_start(vbox,False,False,5)
116                       
117                        i={}
118                        i["x"]=64
119                        i["y"]=64
120                        i["aspect_ratio"]=True
121                        i["image_path"]=pkg["icon_uri"]
122                        i["name"]=pkg["name"]
123                        i["image_id"]=pkg["package"]+"_icon"
124
125                       
126                        s.set_from_file(i)
127                        b.add(hbox)
128                       
129                        b.connect("clicked",self.result_clicked,pkg)
130                       
131                        b.set_size_request(size_test,80)
132                        b.set_halign(Gtk.Align.CENTER)
133                        b.set_name("RELATED_BUTTON")
134                        item_hbox.pack_start(b,True,True,0)
135                       
136                       
137                        self.results_search_box.pack_start(item_hbox,False,False,5)
138                       
139                self.results_search_box.show_all()
140               
141               
142        #def populate_search_results
143       
144        def result_clicked(self,widget,pkg_data):
145               
146                self.core.main_window.load_pkg_data(pkg_data["package"])
147
148
149#class SearchBox
Note: See TracBrowser for help on using the repository browser.