Ignore:
Timestamp:
Apr 5, 2017, 6:39:24 PM (2 years ago)
Author:
hectorgh
Message:

wip

File:
1 edited

Legend:

Unmodified
Added
Removed
  • lliurex-store/trunk/fuentes/lliurex-store-gui/SearchBox.py

    r4104 r4109  
    1919                builder.add_from_file(ui_path)
    2020               
    21                 self.label_max_width=65
     21                self.label_max_width=53
    2222               
     23                self.current_category=""
     24                self.current_pkg_list=[]
    2325               
    2426                self.search_box=builder.get_object("search_box2")
     
    2931                self.categories_sw=builder.get_object("categories_scrolledwindow")
    3032               
     33                #self.search_categories_box.set_name("LIGHT_BLUE_BOX")
     34               
    3135                self.add(self.search_box)
    3236                self.show_all()
     
    3438        #def init
    3539       
    36         def populate_search_results(self,pkg_list):
     40       
     41        def populate_search_results(self,pkg_list,categories=None):
    3742               
    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)
     43
     44                for child in self.results_search_box.get_children():
     45                        self.results_search_box.remove(child)
     46       
     47                for child in self.search_categories_box.get_children():
     48                        self.search_categories_box.remove(child)
    4949                       
     50                # restore scroll bar to top
    5051                self.search_sw.get_vadjustment().set_value(0)
    5152               
     53                self.current_pkg_list=pkg_list
     54       
    5255               
    53                 for x in range(0,50):
     56       
    5457               
    55                         hbox=Gtk.HBox()
    56                         hbox.set_name("PKG_BOX")
     58       
     59                if categories!=None:
    5760                       
    58                         label=Gtk.Label("Hola")
    59                         label.set_name("SHORT_DESCRIPTION")
    60                        
    61                         hbox.pack_start(label,True,True,5)
     61                        found_categories=set()
     62       
     63                        for pkg in pkg_list:
     64                                for category in categories:
     65                                        if category in pkg["categories"]:
     66                                                found_categories.add(category)
     67                                                break
    6268                       
    6369                       
    64                         b=Gtk.Button()
    65                         b.set_name("RELATED_BUTTON")
    66                         b.add(hbox)
    67                         b.show_all()
     70               
     71                        found_categories=list(sorted(found_categories))
     72                        found_categories.insert(0,"All")
    6873                       
    69                         b.set_size_request(150,0)
     74                        counter=0
     75               
     76                        for c in found_categories:
    7077                       
    71                         x,y=b.get_size_request()
     78                                hbox=Gtk.HBox()
     79                                hbox.set_name("PKG_BOX")
     80                               
     81                                label=Gtk.Label(c)
     82                                label.set_name("SHORT_DESCRIPTION")
     83                               
     84                                hbox.pack_start(label,True,True,5)
     85                               
     86                               
     87                                b=Gtk.Button()
     88                                b.set_name("RELATED_BUTTON")
     89                                b.add(hbox)
     90                                b.show_all()
     91                               
     92                                #b.set_size_request(150,10)
     93                                b.set_halign(Gtk.Align.FILL)
     94                               
     95                                if counter==0:
     96                                        c=None
     97                               
     98                                b.connect("clicked",self.filter_by,c)
     99                                self.search_categories_box.pack_start(b,False,False,3)
     100                                counter+=1
    72101                       
    73                         x2,y2=self.categories_sw.get_size_request()
     102                        self.categories_sw.show()
    74103                       
    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()
     104                else:
     105                        self.categories_sw.hide()
    82106               
    83107                for pkg in pkg_list:
    84108                       
    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)
     109                        self.add_pkg_to_list(pkg)
    135110                       
    136111                       
    137                         self.results_search_box.pack_start(item_hbox,False,False,5)
    138                        
     112                #self.results_search_box.set_size_request(50,0)
     113                self.results_search_box.set_halign(Gtk.Align.FILL)
    139114                self.results_search_box.show_all()
    140115               
    141116               
    142117        #def populate_search_results
     118       
     119       
     120        def add_pkg_to_list(self,pkg):
     121               
     122                item_box=Gtk.HBox()
     123                item_box.set_name("PKG_BOX")
     124                       
     125                i={}
     126                i["x"]=64
     127                i["y"]=64
     128                i["aspect_ratio"]=True
     129                i["image_path"]=pkg["icon_uri"]
     130                i["name"]=pkg["name"]
     131                i["image_id"]=pkg["package"]+"_icon"
     132                s=Screenshot.ScreenshotNeo()
     133                s.set_from_file(i)
     134                       
     135                vbox=Gtk.VBox()
     136                       
     137                label=Gtk.Label(pkg["name"])
     138                label.set_name("RELATED_LABEL")
     139                label.set_valign(Gtk.Align.END)
     140                label.set_halign(Gtk.Align.START)
     141                       
     142                description=Gtk.Label(pkg["summary"])
     143                description.set_name("SHORT_DESCRIPTION")
     144                description.set_valign(Gtk.Align.START)
     145                description.set_halign(Gtk.Align.START)
     146                description.set_ellipsize(Pango.EllipsizeMode.END)
     147                description.set_max_width_chars(self.label_max_width)
     148                       
     149                vbox.pack_start(label,True,True,1)
     150                vbox.pack_start(description,True,True,1)
     151                vbox.set_halign(Gtk.Align.START)
     152                       
     153                item_box.pack_start(s,False,False,5)
     154                item_box.pack_start(vbox,True,True,5)
     155                       
     156                b=Gtk.Button()
     157                b.add(item_box)
     158                b.set_name("RELATED_BUTTON")
     159                b.set_valign(Gtk.Align.START)
     160                b.set_halign(Gtk.Align.FILL)
     161                b.connect("clicked",self.result_clicked,pkg)
     162                       
     163                b.set_size_request(0,80)
     164                       
     165                self.results_search_box.pack_start(b,False,False,3)
     166               
     167               
     168               
     169        #def create_item
     170       
     171        def filter_by(self,widget,filter):
     172               
     173                for child in self.results_search_box.get_children():
     174                        self.results_search_box.remove(child)
     175               
     176                                       
     177                for pkg in self.current_pkg_list:
     178                       
     179                        if filter==None:
     180                                self.add_pkg_to_list(pkg)
     181                                continue
     182                        if filter in pkg["categories"]:
     183                                self.add_pkg_to_list(pkg)
     184                       
     185                self.results_search_box.show_all()
     186                       
     187               
     188               
     189        #def filter_by
    143190       
    144191        def result_clicked(self,widget,pkg_data):
Note: See TracChangeset for help on using the changeset viewer.