Changeset 4099 for lliurex-store


Ignore:
Timestamp:
Apr 3, 2017, 9:03:32 AM (3 years ago)
Author:
hectorgh
Message:

wip

Location:
lliurex-store/trunk/fuentes/lliurex-store-gui
Files:
2 added
13 edited

Legend:

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

    r3817 r4099  
    11import random
    22import string
     3
     4
    35import MainWindow
    46import MainMenu
     
    1012import LliurexStoreManager
    1113import ResourcesManager
     14import CategoriesManager
    1215
    1316
     
    5356        def init(self):
    5457               
     58                self.dprint("Creating categories manager...")
     59                self.categories_manager=CategoriesManager.CategoriesManager()
    5560                self.dprint("Creating resources manager...")
    5661                self.resources=ResourcesManager.ResourcesManager()
  • lliurex-store/trunk/fuentes/lliurex-store-gui/DetailsBox.py

    r3841 r4099  
    1414import time
    1515import threading
     16import os
    1617import html2text
    1718
    1819_=gettext.gettext
     20
     21TMP_STORE_DIR="/tmp/.lliurex-store/"
    1922
    2023class DetailsBox(Gtk.VBox):
     
    3639               
    3740                self.full_info_box=Gtk.HBox()
     41                #self.full_info_box.set_valign(Gtk.Align.CENTER)
     42                #self.full_info_box.set_halign(Gtk.Align.CENTER)
    3843                self.pack_start(self.full_info_box,True,True,5)
     44                #self.set_valign(Gtk.Align.CENTER)
     45                #self.set_halign(Gtk.Align.CENTER)
     46               
     47                #self.set_size_request(800,0)
    3948               
    4049                # ####### LEFT SIDE ######
     
    189198                self.full_description_label.set_line_wrap(True)
    190199                self.full_description_label.set_valign(Gtk.Align.START)
     200                self.full_description_label.set_halign(Gtk.Align.FILL)
    191201               
    192202               
     
    197207                vp=Gtk.Viewport()
    198208                sw.add(vp)
     209                sw.set_size_request(0,100)
    199210                vp.add(self.full_description_label)
    200211               
     
    204215                self.description_divider=Gtk.HBox()
    205216                self.description_divider.set_size_request(0,1)
     217                self.description_divider.set_valign(Gtk.Align.START)
    206218                self.app_details_r.pack_start(self.description_divider,False,False,5)
    207219               
     
    218230                vbox.pack_start(self.screenshots_box,True,False,0)
    219231                ss_vp.add(vbox)
     232                self.app_details_r.set_valign(Gtk.Align.FILL)
    220233                self.app_details_r.pack_start(ss_sw,False,False,5)
    221234               
     
    276289                        self.app_banner.download_image(info)
    277290                else:
    278                        
    279                         info["image_path"]=self.core.resources.get_icon(pkg)
    280291                        info["name"]=None
    281                         #self.app_banner.set_from_file(info)
    282                         self.app_banner.create_banner_from_file(info)
     292                        if os.path.exists(TMP_STORE_DIR+info["image_id"]):
     293                               
     294                                info["image_path"]=TMP_STORE_DIR+info["image_id"]
     295                                self.app_banner.set_from_file(info)
     296                        else:
     297                                info["image_path"]=self.core.resources.get_icon(pkg)
     298                       
     299                                self.app_banner.create_banner_from_file(info)
    283300               
    284301                self.version_value_label.set_text(pkg["version"])
    285302                self.category_value_label.set_text(pkg["category"])
    286303                self.license_value_label.set_text(pkg["license"])
    287                 self.size_value_label.set_text(pkg["size"])
     304                try:
     305                        size= "{:.2f} MB".format(float(pkg["size"])/1000000)
     306                        self.size_value_label.set_text(size)
     307                except:
     308                        pass
    288309                self.website_value_label.set_markup("<a href=\"%s\">%s</a>"%(pkg["homepage"],pkg["homepage"]))
    289310                self.app_name_label.set_text(pkg["name"])
    290311                self.short_description_label.set_text(pkg["summary"])
    291312                h=html2text.HTML2Text()
     313                h.body_width=500
    292314                self.full_description_label.set_text(h.handle(pkg["description"]))
    293                 self.core.main_window.location_label.set_text(pkg["category"])
     315                #self.full_description_label.set_text(pkg["description"])
     316               
    294317               
    295318                if info["installed"]:
     
    340363                        i={}
    341364                       
    342                         i["image_url"]=s.replace("http://metadata.tanglu.org/appstream/media/xenial/","")
     365                        #s=s.replace("http://metadata.tanglu.org/appstream/media/xenial/","")
     366                        i["image_url"]=s
    343367                        i["image_id"]=pkg["package"]+"_screenshot_"+str(count)
    344368                        i["x"]=self.screenshot_small
  • lliurex-store/trunk/fuentes/lliurex-store-gui/ImageManager.py

    r3849 r4099  
    5151       
    5252        reduction_percentage=0.65
     53        if not frame:
     54                reduction_percentage=0.9
     55               
    5356        offset_x= (size_x - (size_x*reduction_percentage)) /2
    5457        offset_y= (size_y - (size_y*reduction_percentage)) /2
    55        
    56         if not frame:
    57                 reduction_percentage=1.0
    5858       
    5959        image=scale_image(icon_file,size_x*reduction_percentage,size_y*reduction_percentage,frame)
     
    8686        img_offset_y=offset_y
    8787       
    88         if not frame:
    89                 img_offset_x=0
    90                 img_offset_y=0
     88        #if not frame:
     89        #       img_offset_x=0
     90        #       img_offset_y=0
    9191       
    9292       
     
    9898        ctx.paint()
    9999       
    100         if txt!=None:
     100        if txt!=None and len(txt) >1:
    101101               
    102102                ctx.set_source_rgba( 0,0,0,0.7 )
  • lliurex-store/trunk/fuentes/lliurex-store-gui/LliurexStoreManager.py

    r3849 r4099  
    99                self.store=lliurexstore.storeManager.StoreManager(0)
    1010               
    11                 self.list_sections()
    12                
    1311                #http://appstream.ubuntu.com/data/xenial/universe/
    1412       
     
    1614       
    1715        def list_sections(self):
    18                 action="list"
     16                action="list_sections"
    1917                self.store.execute_action(action,True)
    2018               
     
    4947                               
    5048                                p=Package.Package(item)
    51                                 packages.append(item)
     49                                packages.append(p)
    5250               
    5351                return packages
     
    6563               
    6664                if ret["status"]==0:
     65                       
    6766                        data=self.store.get_result(action)
    68                         print(data)
    6967                        p=Package.Package(data["info"][0])
    7068                        return p
  • lliurex-store/trunk/fuentes/lliurex-store-gui/MainMenu.py

    r3840 r4099  
    2323
    2424HOME_CONTENT_URL="http://svn.lliurex.net/xenial/lliurex-store/trunk/fuentes/lliurex-store-gui/home_content.json"
    25 #HOME_CONTENT_URL="file:///srv/svn/xenial/lliurex-store/trunk/fuentes/lliurex-store-gui/home_content.json"
     25HOME_CONTENT_URL="file:///srv/svn/xenial/lliurex-store/trunk/fuentes/lliurex-store-gui/home_content.json"
    2626TMP_STORE_DIR="/tmp/.lliurex-store/"
    2727
     
    6666                self.image_stack.set_margin_left(10)
    6767                self.image_stack.set_size_request(self.banner_large_x,self.banner_large_y)
     68                self.image_stack.set_halign(Gtk.Align.CENTER)
    6869               
    6970                self.main_view_box.pack_start(self.image_stack,False,False,10)
     
    116117                        self.home_info=json.load(f)
    117118
    118 
     119                        '''
    119120                        for pkg in self.home_info["large"]:
    120121                                data=self.core.store.search_package(pkg["package"])
     
    130131                                        for key in data:
    131132                                                pkg[key]=data[key]
     133                        '''
    132134                       
    133135                        f.close()
  • lliurex-store/trunk/fuentes/lliurex-store-gui/MainWindow.py

    r3840 r4099  
    2727                self.search_aborted=False
    2828                self.last_search=""
     29                self.path_followed=["main"]
    2930                self.load_gui()
    3031               
     
    4950                self.main_box=builder.get_object("main_box")
    5051                self.header_box=builder.get_object("header_box")
     52                self.go_back_button=builder.get_object("go_back_button")
     53                self.menu_image=builder.get_object("menu_image")
     54               
    5155               
    5256                self.main_menu=self.core.main_menu
     
    104108               
    105109                self.window.show_all()
     110                #self.location_label.hide()
    106111               
    107112        #def load_gui
     
    121126                self.fade_box.set_name("FADE_BOX")
    122127               
     128                self.go_back_button.set_name("BACK_BUTTON")
     129                self.menu_image.set_name("MENU_IMAGE")
     130               
    123131        #def set-css_info       
    124132
     
    131139                self.search_entry.connect("changed",self.search_entry_changed)
    132140                self.search_entry.connect("activate",self.entries_press_event)
     141                self.go_back_button.connect("clicked",self.go_back)
    133142               
    134143        #def connect_signals
     
    148157        # #### STACK FAST ACCESS FUNCTIONS # #################
    149158       
     159        def go_back(self,widget=None):
     160               
     161                if len(self.path_followed)>1:
     162                       
     163                       
     164                        current_txt=self.location_label.get_text().split(" > ")
     165                        current_txt=" > ".join(current_txt[0:-1])
     166                        self.location_label.set_text(current_txt)
     167                        dest=self.path_followed[-2]
     168                        self.stack.set_visible_child_name(dest)
     169                        self.path_followed.pop(-1)
     170                       
     171                        if dest=="main":
     172                                self.search_entry.set_text("")
     173                       
     174                       
     175               
     176        #def go_back
     177       
    150178        def show_loading(self):
    151179               
     
    159187                self.thread_aborted=True
    160188                self.search_aborted=True
     189                current_txt=self.location_label.get_text()
     190                self.location_label.set_text(current_txt + " > " + "Details")
     191                self.path_followed.append("details")
    161192                self.stack.set_visible_child_name("details")
    162193               
     
    168199                self.thread_aborted=True
    169200                self.search_aborted=True
    170                 self.search_entry.set_text("")
     201               
    171202                self.location_label.set_text("Home")
     203                self.path_followed=["main"]
    172204                self.stack.set_visible_child_name("main")
    173205               
     
    176208        def show_search_results(self):
    177209               
    178                 self.location_label.set_text("Search")
     210                current_txt=self.location_label.get_text()
     211                if self.path_followed[-1]!="search":
     212                        self.location_label.set_text(current_txt + " > " + "Search")
     213                        self.path_followed.append("search")
    179214                self.stack.set_visible_child_name("search")
    180215               
     
    235270                self.current_pkg=Package.Package(pkg)
    236271                self.details_box.set_package_info(self.current_pkg)
    237                 self.stack.set_visible_child_name("details")
     272                self.show_details_box()
     273                #self.stack.set_visible_child_name("details")
    238274               
    239275        #def set_data
     
    270306                if self.current_pkg!=None:
    271307                        self.details_box.set_package_info(self.current_pkg)
    272                         self.stack.set_visible_child_name("details")
     308                        self.show_details_box()
     309                        #self.stack.set_visible_child_name("details")
    273310               
    274311                return False
     
    317354               
    318355                self.current_search_id=self.core.get_random_id()
     356                self.counter=0
    319357                self.search_queue=multiprocessing.Queue()
    320358                self.search_process=multiprocessing.Process(target=self.search_package_thread,args=(pkg_id,self.search_queue,))
     359                #self.search_process=threading.Thread(target=self.search_package_thread,args=(pkg_id,self.search_queue,))
    321360               
    322361                self.search_process.daemon=True
     
    340379                '''
    341380               
    342                
    343                
    344381                search_queue.put(ret)
     382               
     383
    345384               
    346385        #def search_package_thread
     
    352391               
    353392                if self.search_aborted:
     393                        self.core.dprint("Search aborted [!]")
    354394                        self.thread_aborted=False
    355395                        return False
    356396               
    357397                if self.search_process.is_alive():
    358                         return True
    359                        
     398                        self.counter+=1
     399                       
     400                        if self.search_queue.empty():
     401                                return True
    360402                       
    361403                search_result=self.search_queue.get()
     404               
     405               
    362406                if search_result!=None:
    363407                        self.core.search_box.populate_search_results(search_result)
  • lliurex-store/trunk/fuentes/lliurex-store-gui/Package.py

    r3840 r4099  
     1import Core
     2
    13class Package(dict):
    24       
     
    7678                        r["icon"]=r.setdefault("icon","")
    7779                        r["component"]=r.setdefault("component","main")
    78                        
    7980               
     81               
     82                self["icon_uri"]=Core.Core.get_core().resources.get_icon(self)
    8083               
    8184        #def fix_info
  • lliurex-store/trunk/fuentes/lliurex-store-gui/PopupMenu.py

    r3807 r4099  
    3131                self.popup_image=builder.get_object("popup_image")
    3232                self.popup_menu=builder.get_object("popup_box")
    33                 popup_menu_left=builder.get_object("popup_box_left")
     33                self.popup_menu_left=builder.get_object("popup_box_left")
    3434                self.popup_shadow=builder.get_object("popup_box_right")
     35                decorator_bar=builder.get_object("decoration_bar_box")
     36               
    3537                eventbox=builder.get_object("eventbox1")
    3638                eventbox.add_events(Gdk.EventMask.BUTTON_PRESS_MASK)
    3739                eventbox.connect("button-press-event",self.hide_revealer)
    3840               
    39                 label1=builder.get_object("label1")
    40                 label2=builder.get_object("label2")
    41                 label3=builder.get_object("label3")
    42                 label4=builder.get_object("label4")
    43                 label5=builder.get_object("label5")
    44                 label6=builder.get_object("label6")
    45                 label7=builder.get_object("label7")
    46                
    47                 button2=builder.get_object("button2")
    48                 button3=builder.get_object("button3")
    49                 button4=builder.get_object("button4")
    50                 button5=builder.get_object("button5")
    51                 button6=builder.get_object("button6")
    52                 button7=builder.get_object("button7")
    53                 self.home_button=builder.get_object("button1")
    54                
    55                 separator=builder.get_object("separator1")
    56 
    57                 decorator_bar=builder.get_object("decoration_bar_box")
    58                
    5941                image=Gtk.Image.new_from_file("lliurex-default-background.png")
    6042                pixbuf=image.get_pixbuf()
    6143                original_ratio=pixbuf.get_width(),pixbuf.get_height()
    62                 pixbuf=pixbuf.scale_simple(400,225,GdkPixbuf.InterpType.BILINEAR)
     44                pixbuf=pixbuf.scale_simple(400*0.75,225*0.75,GdkPixbuf.InterpType.BILINEAR)
    6345                self.popup_image.set_from_pixbuf(pixbuf)
    6446               
     
    6648                self.add(self.revealer)
    6749               
     50
    6851                self.popup_menu.set_name("TRANSPARENT")
    6952                self.popup_shadow.set_name("POPUP_SHADOW_LEFTRIGHT")
    7053                self.revealer.set_name("TRANSPARENT")
    71                 popup_menu_left.set_name("DROPMENU")
    72                
    73                 label1.set_name("POPUP_FONT")
    74                 label2.set_name("POPUP_FONT")
    75                 label3.set_name("POPUP_FONT")
    76                 label4.set_name("POPUP_FONT")
    77                 label5.set_name("POPUP_FONT")
    78                 label6.set_name("POPUP_FONT")
    79                 label7.set_name("POPUP_FONT")
    80                
    81                 button2.set_name("SECTION_BOX")
    82                 button3.set_name("SECTION_BOX")
    83                 button4.set_name("SECTION_BOX")
    84                 button5.set_name("SECTION_BOX")
    85                 button6.set_name("SECTION_BOX")
    86                 button7.set_name("SECTION_BOX")
    87                 self.home_button.set_name("SECTION_BOX")
    88                
    89                 separator.set_name("SECTION_DIVIDER")
     54                self.popup_menu_left.set_name("DROPMENU")
    9055                decorator_bar.set_name("DECORATOR_BAR")
    9156               
    92                 self.home_button.connect("clicked",self.go_home)
    93                
     57                self.populate_menu()
    9458               
    9559        #def init
    9660       
     61        def populate_menu(self):
     62               
     63                #for item in self.popup_menu_left.get_children():
     64                #       self.popup_menu_left.remove(item)
     65               
     66               
     67                b=Gtk.Button()
     68                hbox=Gtk.HBox()
     69               
     70                b.icon="home.svg"
     71                b.icon_over="home_white.svg"
     72                txt="Home"
     73                       
     74                b.img=Gtk.Image.new_from_file(b.icon)
     75                b.img.set_margin_left(5)
     76                b.label=Gtk.Label(txt)
     77                b.label.set_halign(Gtk.Align.START)
     78                       
     79                hbox.pack_start(b.img,False,False,0)
     80                hbox.pack_start(b.label,False,False,20)
     81                b.add(hbox)
     82                       
     83                b.add_events( Gdk.EventMask.POINTER_MOTION_MASK | Gdk.EventMask.LEAVE_NOTIFY_MASK )
     84                b.connect("motion-notify-event",self.mouse_over)
     85                b.connect("leave_notify_event",self.mouse_left)
     86                b.connect("clicked",self.go_home)
     87                       
     88                b.show_all()
     89                b.set_name("SECTION_BOX")
     90                self.popup_menu_left.pack_start(b,True,True,0)
     91               
     92
     93                b=Gtk.Button()
     94                hbox=Gtk.HBox()
     95               
     96                b.icon="favorite.svg"
     97                b.icon_over="favorite_white.svg"
     98                txt="My applications"
     99                       
     100                b.img=Gtk.Image.new_from_file(b.icon)
     101                b.img.set_margin_left(5)
     102                b.label=Gtk.Label(txt)
     103                b.label.set_halign(Gtk.Align.START)
     104                       
     105                hbox.pack_start(b.img,False,False,0)
     106                hbox.pack_start(b.label,False,False,20)
     107                b.add(hbox)
     108                       
     109                b.add_events( Gdk.EventMask.POINTER_MOTION_MASK | Gdk.EventMask.LEAVE_NOTIFY_MASK )
     110                b.connect("motion-notify-event",self.mouse_over)
     111                b.connect("leave_notify_event",self.mouse_left)
     112                b.connect("clicked",self.go_home)
     113                       
     114                b.show_all()
     115                b.set_name("SECTION_BOX")
     116                self.popup_menu_left.pack_start(b,False,False,0)
     117
     118               
     119               
     120               
     121                separator=Gtk.Separator()
     122                separator.set_name("SECTION_DIVIDER")
     123                self.popup_menu_left.pack_start(separator,False,False,0)
     124               
     125               
     126                for item in sorted(self.core.categories_manager.categories):
     127                       
     128                        #self.categories["audio"]["name"]="Audio"
     129                        #self.categories["audio"]["icon"]="audio.svg"
     130                        #self.categories["audio"]["icon_over"]="audio_white.svg"
     131                       
     132               
     133                        b=Gtk.Button()
     134                        hbox=Gtk.HBox()
     135               
     136                        b.icon=self.core.categories_manager.categories[item]["small_icon"]
     137                        b.icon_over=self.core.categories_manager.categories[item]["small_icon_over"]
     138                        txt=self.core.categories_manager.categories[item]["name"]
     139                       
     140                        b.img=Gtk.Image.new_from_file(b.icon)
     141                        b.img.set_margin_left(5)
     142                        b.label=Gtk.Label(txt)
     143                        b.label.set_halign(Gtk.Align.START)
     144                       
     145                        hbox.pack_start(b.img,False,False,0)
     146                        hbox.pack_start(b.label,False,False,20)
     147                        b.add(hbox)
     148                       
     149                        b.add_events( Gdk.EventMask.POINTER_MOTION_MASK | Gdk.EventMask.LEAVE_NOTIFY_MASK )
     150                        b.connect("motion-notify-event",self.mouse_over)
     151                        b.connect("leave_notify_event",self.mouse_left)
     152                       
     153                        b.show_all()
     154                        b.set_name("SECTION_BOX")
     155                        self.popup_menu_left.pack_start(b,True,True,0)
     156               
     157       
     158        def mouse_over(self,widget,event):
     159               
     160                widget.img.set_from_file(widget.icon_over)
     161               
     162                #widget.get_children()[0].get_children()[0].set_from_file("favorite_white.svg")
     163               
     164        #def mouse_over
     165       
     166        def mouse_left(self,widget,event):
     167               
     168                widget.img.set_from_file(widget.icon)
     169               
     170                #widget.get_children()[0].get_children()[0].set_from_file("favorite.svg")
     171               
     172        #def mouse_left
    97173
    98174        def hide_revealer(self,widget,event):
  • lliurex-store/trunk/fuentes/lliurex-store-gui/ResourcesManager.py

    r3840 r4099  
    3030               
    3131                self.distro_name="ubuntu"
    32                 self.icons_path="/tmp/lliurex-store-cache/icons/"
     32                #self.icons_path="/tmp/lliurex-store-cache/icons/"
     33               
     34                self.icon_db=Gtk.IconTheme()
     35                self.icon_db.set_custom_theme("Vibrancy-Dark-Orange")
     36                self.package_icon=self.icon_db.lookup_icon("package",256,Gtk.IconLookupFlags.FORCE_SVG ).get_filename()
    3337               
    3438        #def init
    3539
    3640        def get_icon(self,pkg_info):
     41               
    3742               
    3843                debian_name=pkg_info["package"]
    3944                icon=pkg_info["icon"]
     45                if icon==None:
     46                        icon=""
     47               
    4048                component=pkg_info["component"]
    4149               
    42                
    43                 icon_db=Gtk.IconTheme()
    44                 icon_db.set_custom_theme("Vibrancy-Dark-Orange")
    45                 ret_icon=icon_db.lookup_icon(debian_name,256,Gtk.IconLookupFlags.FORCE_SVG)
     50                ret_icon=self.icon_db.lookup_icon(debian_name,256,Gtk.IconLookupFlags.FORCE_SVG)
    4651                if ret_icon!=None:
    4752                        return ret_icon.get_filename()
     
    5863                                        if "pyromaths" in icon:
    5964                                                icon="64x64/pyromaths_pyromaths.png"
    60                                         print(icon)
     65                                       
    6166                                ret_icon=self.icons_path+"%s/%s"%(component,icon)
    6267                                if os.path.exists(ret_icon):
     68                                       
    6369                                        return ret_icon
    64                
    65                 ret_icon=icon_db.lookup_icon("package",256,Gtk.IconLookupFlags.FORCE_SVG ).get_filename()
     70                               
     71                ret_icon=self.package_icon
    6672                return ret_icon
    6773               
  • lliurex-store/trunk/fuentes/lliurex-store-gui/Screenshot.py

    r3840 r4099  
    191191                       
    192192                                self.image_info["image_path"]=self.image_dir+self.image_info["image_id"]
    193                        
    194193                                req=urllib2.Request(self.image_info["image_url"],headers=header)
    195194                                res=urllib2.urlopen(req)
     
    207206                                self.image_info["name"]=None
    208207                               
    209                                 self.image_info["image_path"]="/usr/share/icons/Vibrancy-Colors/mimetypes/256/package.svg"
     208                                self.image_info["image_path"]="/usr/share/icons/Vibrancy-Colors/status/96/image-missing.png"
    210209                                if self.image_info["video_url"] !=None:
    211210                                        self.image_info["image_path"]="clean_icons/video.svg"
     
    227226                y=image_info.setdefault("y")
    228227                custom_frame=image_info.setdefault("custom_frame",False)
    229                 txt=image_info.setdefault("name","")
     228                txt=image_info.setdefault("name",None)
     229                if txt==None:
     230                        txt=image_info.setdefault("pkg_name",None)
    230231               
    231232                ret=ImageManager.create_banner(file_name,x,y,txt,custom_frame,output_file)
    232                
    233233               
    234234                if output_file ==None:
     
    250250       
    251251        def set_video_info(self,video_info):
    252                
    253                 print("e0e0e0e")
    254252               
    255253                video_info.setdefault("video_url","")
  • lliurex-store/trunk/fuentes/lliurex-store-gui/SearchBox.py

    r3840 r4099  
    2525                self.search_box.set_name("DETAILS_BOX")
    2626                self.results_search_box=builder.get_object("results_search_box")
     27                self.search_sw=builder.get_object("search_scrolledwindow")
    2728               
    2829                self.add(self.search_box)
     
    3637                        self.results_search_box.remove(children)
    3738                       
     39                self.search_sw.get_vadjustment().set_value(0)
     40               
     41               
    3842                for pkg in pkg_list:
    3943                       
    4044                        item_hbox=Gtk.HBox()
    4145                        item_hbox.set_size_request(650,100)
    42                        
    43                         print(pkg)
    4446                       
    4547                        hbox=Gtk.HBox()
     
    7678                        i["y"]=64
    7779                        i["aspect_ratio"]=True
    78                         i["image_path"]=self.core.resources.get_icon(pkg)
     80                        i["image_path"]=pkg["icon_uri"]
    7981                        i["name"]=pkg["name"]
    8082                        i["image_id"]=pkg["package"]+"_icon"
  • lliurex-store/trunk/fuentes/lliurex-store-gui/lliurex-store.css

    r3814 r4099  
    11                #MAIN_BOX {
    22                        background-image:-gtk-gradient (linear, right top, left bottom, from (#001031),  to (#0060dc));
    3                         /*background-image:-gtk-gradient (linear,       right top, left bottom, from (#EEEEEE),  to (#777777));*/
    43               
    54                }
     
    1110                #DETAILS_BOX {
    1211                        background-image:-gtk-gradient (linear, left top, left bottom, from (rgba(0,0,0,0.2)), to (rgba(0,0,0,0.6)));
    13                         /*background-image: url("/home/lliurex/store/rsrc/ardour_ss01.png");*/
    14                        
    1512                       
    1613                }
     
    5653                #SECTION_BOX {
    5754                       
     55
    5856                        border:0;
    5957                        border-radius: 0;
     
    6664                #SECTION_BOX .label
    6765                {
    68                         color:rgba(0,0,0,0.9);
    69                         font: Roboto 15;
     66                        color:rgba(0,0,0,0.8);
     67                        font: Roboto 11;
    7068                        text-shadow: 0px 0px 1px white;
    7169                       
     
    9189
    9290                #MENU_BUTTON{
    93                         /*background-image: -gtk-gradient(linear,left top, right top, from (black), to (black));*/
    94                         background-image: url("file:///tmp/llx-store.svg");
     91                       
     92                        /*background-image: url("file:///tmp/llx-store.svg");*/
     93                        background-color:red;
    9594                        border-color: black;
     95                        border: 0px;
    9696                        outline-color: black;
    97                         border-radius: 0;
     97                        border-radius: 0%;
     98                        box-shadow: none;
     99                       
    98100                }
    99101               
    100102                #MENU_BUTTON:hover  {
    101                         background-image: url("file:///tmp/llx-store_over.svg");
    102                        
    103                 }
    104                
     103                        /*background-image: url("file:///tmp/llx-store_over.svg");*/
     104                        /*animation: testing infinite linear 2s;*/
     105                        animation: spin2 1 linear 1s;
     106                       
     107                       
     108               
     109                }
     110               
     111       
     112                #MENU_IMAGE {
     113                       
     114                         -gtk-icon-source:  url("file:///tmp/llx-store.svg");
     115                        animation: spin 1 linear 1s;
     116                       
     117                }
     118               
     119                #MENU_IMAGE:hover {
     120                        animation: spin2 1 linear 1s;
     121                }
     122
     123                @keyframes spin {
     124                        0% {-gtk-icon-transform: rotate(-90deg); }
     125                        100% { }
     126               
     127                }
     128
     129                @keyframes spin2 {
     130                        0% {-gtk-icon-transform: rotate(90deg); }
     131                        100% { }
     132               
     133                }
    105134
    106135
    107136                #DROPMENU {
    108                         /*background-color: rgba(5,14,43,0.8);*/
    109                         /*background-image: -gtk-gradient (linear,      left top, right top, from (rgba(5,14,43,0.8)), to (rgba(0,5,30,0.8)));*/
    110                        
     137                               
    111138                        background-image: -gtk-gradient (linear,        left top, right top, from (rgba(255,255,255,1)), to (rgba(255,255,255,1)));
    112139                       
     
    115142
    116143                #DIVIDER {
    117                         /*background-image:-gtk-gradient (linear,       left top, right top, from (rgba(90.5%,90.5%,90.5%,0.8)), to (rgba(100%,100%,100%,0.8)));*/
    118                        
     144                                       
    119145                        background-image:-gtk-gradient (linear, 0 0, 1 0,
    120146                       
     
    180206                        color: white;
    181207                        font: Roboto 14;
    182                         background-image:-gtk-gradient (linear, left top, left bottom, from (#3366cc),  to (#3366cc));
     208                        background-image:-gtk-gradient (linear, left top, left bottom, from (#5294e2),  to (#5294e2));
    183209                        text-shadow: none;
    184210                       
     
    198224                        color: white;
    199225                        font: Roboto 16;
    200                         background-image:-gtk-gradient (linear, left top, left bottom, from (#448AFF),  to (#448AFF));
     226                        background-image:-gtk-gradient (linear, left top, left bottom, from (#5294e2),  to (#5294e2));
    201227                        text-shadow: none;
    202228                       
     
    204230               
    205231                #INSTALL_BUTTON:hover {
    206                         background-image:-gtk-gradient (linear, left top, left bottom, from (#449fff),  to (#449fff));;
     232                        background-image:-gtk-gradient (linear, left top, left bottom, from (#52ade2),  to (#52ade2));;
    207233                }
    208234               
     
    222248               
    223249                #UNINSTALL_BUTTON:hover {
    224                         background-color: #E57373;
     250                        background-color: #f45936;
    225251                }
    226252               
     
    295321                #MEDIA_BUTTON {
    296322                        border-radius: 0px;
    297                 }
    298 
     323                        background-color: white;
     324                }
     325               
     326                #BACK_BUTTON {
     327                        border-radius: 0%;
     328                        box-shadow: none;
     329                       
     330                       
     331                        background-color: transparent;
     332                       
     333                }
     334
     335                #BACK_BUTTON:hover {
     336                        border-radius: 0%;
     337                        background-color: rgba(34,69,128,1);
     338                }
     339               
     340                #BACK_BUTTON:active {
     341                        border-radius: 100%;
     342                        background-color: rgb(50,101,187);
     343                        transition: 200ms ease-out;
     344                }
     345
     346               
    299347
    300348                #BANNER_BACK_TRANSPARENT{
     
    323371                }
    324372               
    325                 GtkImage {
    326                         background-color: transparent;
    327                         border: 0;
    328                         box-shadow: none;
    329                         border-color: transparent;
    330                         border-width:10px;
    331                 }
     373
    332374               
    333375                GtkScrollView {
    334376                        color: red;
     377                }
     378               
     379                GtkButton {
     380                       
     381                        box-shadow: none;
     382                        background-color: transparent;
     383                        background-image: none;
     384                        border: 0px;
    335385                }
    336386               
     
    431481
    432482                                background-image: -gtk-gradient (linear,        left top, left bottom, from (rgba(0,95,219,1)),  to (rgba(0,56,134,1)));
    433                
    434                                 /* 0/255.0, 95/255.0, 219/255.0 */
    435                                 /* 0/255.0, 56/255.0, 134/255.0 */
    436                 /*box-shadow: -0.5px 3px 2px #cdcdcd;*/
    437 
    438483        }
  • lliurex-store/trunk/fuentes/lliurex-store-gui/lliurex-store.ui

    r3830 r4099  
    88    <property name="step_increment">1</property>
    99    <property name="page_increment">10</property>
    10     <property name="page_size">24.139999996870756</property>
     10    <property name="page_size">24.140000000000001</property>
    1111  </object>
    1212  <object class="GtkBox" id="box9">
     
    369369            <property name="margin_bottom">5</property>
    370370            <child>
    371               <placeholder/>
     371              <object class="GtkSpinner" id="menu_image">
     372                <property name="visible">True</property>
     373                <property name="can_focus">False</property>
     374                <property name="active">True</property>
     375              </object>
    372376            </child>
    373377          </object>
     
    404408            <property name="pack_type">end</property>
    405409            <property name="position">2</property>
     410          </packing>
     411        </child>
     412        <child>
     413          <object class="GtkButton" id="go_back_button">
     414            <property name="visible">True</property>
     415            <property name="can_focus">True</property>
     416            <property name="receives_default">True</property>
     417            <property name="halign">end</property>
     418            <property name="valign">center</property>
     419            <property name="margin_right">5</property>
     420            <child>
     421              <object class="GtkImage" id="media_forward_image1">
     422                <property name="visible">True</property>
     423                <property name="can_focus">False</property>
     424                <property name="pixbuf">back.svg</property>
     425              </object>
     426            </child>
     427          </object>
     428          <packing>
     429            <property name="expand">False</property>
     430            <property name="fill">False</property>
     431            <property name="pack_type">end</property>
     432            <property name="position">3</property>
    406433          </packing>
    407434        </child>
     
    478505        <property name="visible">True</property>
    479506        <property name="can_focus">False</property>
     507        <property name="halign">center</property>
    480508        <property name="spacing">5</property>
    481509        <child>
    482510          <object class="GtkBox" id="mv_divider2">
     511            <property name="width_request">600</property>
    483512            <property name="height_request">1</property>
    484513            <property name="visible">True</property>
     
    687716        <child>
    688717          <object class="GtkBox" id="box1">
    689             <property name="height_request">200</property>
    690718            <property name="visible">True</property>
    691719            <property name="can_focus">False</property>
     
    698726              </object>
    699727              <packing>
    700                 <property name="expand">True</property>
    701                 <property name="fill">True</property>
     728                <property name="expand">False</property>
     729                <property name="fill">False</property>
    702730                <property name="position">0</property>
    703731              </packing>
     
    706734          <packing>
    707735            <property name="expand">False</property>
    708             <property name="fill">True</property>
     736            <property name="fill">False</property>
    709737            <property name="position">0</property>
    710738          </packing>
    711739        </child>
    712740        <child>
    713           <object class="GtkButton" id="button1">
    714             <property name="visible">True</property>
    715             <property name="can_focus">True</property>
    716             <property name="receives_default">True</property>
    717             <child>
    718               <object class="GtkBox" id="box2">
    719                 <property name="visible">True</property>
    720                 <property name="can_focus">False</property>
    721                 <property name="spacing">30</property>
    722                 <child>
    723                   <object class="GtkImage" id="image2">
    724                     <property name="visible">True</property>
    725                     <property name="can_focus">False</property>
    726                     <property name="yalign">1</property>
    727                     <property name="pixbuf">clean_icons/office.svg</property>
    728                     <property name="pixel_size">24</property>
    729                   </object>
    730                   <packing>
    731                     <property name="expand">False</property>
    732                     <property name="fill">True</property>
    733                     <property name="position">0</property>
    734                   </packing>
    735                 </child>
    736                 <child>
    737                   <object class="GtkLabel" id="label1">
    738                     <property name="visible">True</property>
    739                     <property name="can_focus">False</property>
    740                     <property name="label" translatable="yes">Home</property>
    741                     <property name="xalign">0</property>
    742                   </object>
    743                   <packing>
    744                     <property name="expand">False</property>
    745                     <property name="fill">True</property>
    746                     <property name="position">1</property>
    747                   </packing>
    748                 </child>
    749               </object>
    750             </child>
    751           </object>
    752           <packing>
    753             <property name="expand">False</property>
    754             <property name="fill">True</property>
    755             <property name="position">1</property>
    756           </packing>
    757         </child>
    758         <child>
    759           <object class="GtkButton" id="button2">
    760             <property name="visible">True</property>
    761             <property name="can_focus">True</property>
    762             <property name="receives_default">True</property>
    763             <child>
    764               <object class="GtkBox" id="box3">
    765                 <property name="visible">True</property>
    766                 <property name="can_focus">False</property>
    767                 <property name="spacing">30</property>
    768                 <child>
    769                   <object class="GtkImage" id="image3">
    770                     <property name="visible">True</property>
    771                     <property name="can_focus">False</property>
    772                     <property name="yalign">1</property>
    773                     <property name="pixbuf">clean_icons/favorite.svg</property>
    774                     <property name="pixel_size">24</property>
    775                   </object>
    776                   <packing>
    777                     <property name="expand">False</property>
    778                     <property name="fill">True</property>
    779                     <property name="position">0</property>
    780                   </packing>
    781                 </child>
    782                 <child>
    783                   <object class="GtkLabel" id="label2">
    784                     <property name="visible">True</property>
    785                     <property name="can_focus">False</property>
    786                     <property name="label" translatable="yes">My applications</property>
    787                     <property name="xalign">0</property>
    788                   </object>
    789                   <packing>
    790                     <property name="expand">False</property>
    791                     <property name="fill">True</property>
    792                     <property name="position">1</property>
    793                   </packing>
    794                 </child>
    795               </object>
    796             </child>
    797           </object>
    798           <packing>
    799             <property name="expand">False</property>
    800             <property name="fill">True</property>
    801             <property name="position">2</property>
    802           </packing>
    803         </child>
    804         <child>
    805           <object class="GtkSeparator" id="separator1">
    806             <property name="visible">True</property>
    807             <property name="can_focus">False</property>
    808             <property name="margin_left">10</property>
    809             <property name="margin_right">10</property>
    810           </object>
    811           <packing>
    812             <property name="expand">False</property>
    813             <property name="fill">True</property>
    814             <property name="padding">5</property>
    815             <property name="position">3</property>
    816           </packing>
    817         </child>
    818         <child>
    819           <object class="GtkButton" id="button3">
    820             <property name="visible">True</property>
    821             <property name="can_focus">True</property>
    822             <property name="receives_default">True</property>
    823             <child>
    824               <object class="GtkBox" id="box4">
    825                 <property name="visible">True</property>
    826                 <property name="can_focus">False</property>
    827                 <property name="spacing">30</property>
    828                 <child>
    829                   <object class="GtkImage" id="image4">
    830                     <property name="visible">True</property>
    831                     <property name="can_focus">False</property>
    832                     <property name="yalign">1</property>
    833                     <property name="pixbuf">clean_icons/audio.svg</property>
    834                     <property name="pixel_size">24</property>
    835                   </object>
    836                   <packing>
    837                     <property name="expand">False</property>
    838                     <property name="fill">True</property>
    839                     <property name="position">0</property>
    840                   </packing>
    841                 </child>
    842                 <child>
    843                   <object class="GtkLabel" id="label3">
    844                     <property name="visible">True</property>
    845                     <property name="can_focus">False</property>
    846                     <property name="label" translatable="yes">Section 1</property>
    847                     <property name="xalign">0</property>
    848                   </object>
    849                   <packing>
    850                     <property name="expand">False</property>
    851                     <property name="fill">True</property>
    852                     <property name="position">1</property>
    853                   </packing>
    854                 </child>
    855               </object>
    856             </child>
    857           </object>
    858           <packing>
    859             <property name="expand">False</property>
    860             <property name="fill">True</property>
    861             <property name="position">4</property>
    862           </packing>
    863         </child>
    864         <child>
    865           <object class="GtkButton" id="button4">
    866             <property name="visible">True</property>
    867             <property name="can_focus">True</property>
    868             <property name="receives_default">True</property>
    869             <child>
    870               <object class="GtkBox" id="box5">
    871                 <property name="visible">True</property>
    872                 <property name="can_focus">False</property>
    873                 <property name="spacing">30</property>
    874                 <child>
    875                   <object class="GtkImage" id="image5">
    876                     <property name="visible">True</property>
    877                     <property name="can_focus">False</property>
    878                     <property name="yalign">1</property>
    879                     <property name="pixbuf">clean_icons/games.svg</property>
    880                     <property name="pixel_size">24</property>
    881                   </object>
    882                   <packing>
    883                     <property name="expand">False</property>
    884                     <property name="fill">True</property>
    885                     <property name="position">0</property>
    886                   </packing>
    887                 </child>
    888                 <child>
    889                   <object class="GtkLabel" id="label4">
    890                     <property name="visible">True</property>
    891                     <property name="can_focus">False</property>
    892                     <property name="label" translatable="yes">Section 1</property>
    893                     <property name="xalign">0</property>
    894                   </object>
    895                   <packing>
    896                     <property name="expand">False</property>
    897                     <property name="fill">True</property>
    898                     <property name="position">1</property>
    899                   </packing>
    900                 </child>
    901               </object>
    902             </child>
    903           </object>
    904           <packing>
    905             <property name="expand">False</property>
    906             <property name="fill">True</property>
    907             <property name="position">5</property>
    908           </packing>
    909         </child>
    910         <child>
    911           <object class="GtkButton" id="button5">
    912             <property name="visible">True</property>
    913             <property name="can_focus">True</property>
    914             <property name="receives_default">True</property>
    915             <child>
    916               <object class="GtkBox" id="box6">
    917                 <property name="visible">True</property>
    918                 <property name="can_focus">False</property>
    919                 <property name="spacing">30</property>
    920                 <child>
    921                   <object class="GtkImage" id="image6">
    922                     <property name="visible">True</property>
    923                     <property name="can_focus">False</property>
    924                     <property name="yalign">1</property>
    925                     <property name="pixbuf">clean_icons/video.svg</property>
    926                     <property name="pixel_size">24</property>
    927                   </object>
    928                   <packing>
    929                     <property name="expand">False</property>
    930                     <property name="fill">True</property>
    931                     <property name="position">0</property>
    932                   </packing>
    933                 </child>
    934                 <child>
    935                   <object class="GtkLabel" id="label6">
    936                     <property name="visible">True</property>
    937                     <property name="can_focus">False</property>
    938                     <property name="label" translatable="yes">Section 1</property>
    939                     <property name="xalign">0</property>
    940                   </object>
    941                   <packing>
    942                     <property name="expand">False</property>
    943                     <property name="fill">True</property>
    944                     <property name="position">1</property>
    945                   </packing>
    946                 </child>
    947               </object>
    948             </child>
    949           </object>
    950           <packing>
    951             <property name="expand">False</property>
    952             <property name="fill">True</property>
    953             <property name="position">6</property>
    954           </packing>
    955         </child>
    956         <child>
    957           <object class="GtkButton" id="button6">
    958             <property name="visible">True</property>
    959             <property name="can_focus">True</property>
    960             <property name="receives_default">True</property>
    961             <child>
    962               <object class="GtkBox" id="box7">
    963                 <property name="visible">True</property>
    964                 <property name="can_focus">False</property>
    965                 <property name="spacing">30</property>
    966                 <child>
    967                   <object class="GtkImage" id="image7">
    968                     <property name="visible">True</property>
    969                     <property name="can_focus">False</property>
    970                     <property name="yalign">1</property>
    971                     <property name="pixel_size">24</property>
    972                     <property name="icon_name">preferences-desktop-accessibility</property>
    973                   </object>
    974                   <packing>
    975                     <property name="expand">False</property>
    976                     <property name="fill">True</property>
    977                     <property name="position">0</property>
    978                   </packing>
    979                 </child>
    980                 <child>
    981                   <object class="GtkLabel" id="label5">
    982                     <property name="visible">True</property>
    983                     <property name="can_focus">False</property>
    984                     <property name="label" translatable="yes">Section 1</property>
    985                     <property name="xalign">0</property>
    986                   </object>
    987                   <packing>
    988                     <property name="expand">False</property>
    989                     <property name="fill">True</property>
    990                     <property name="position">1</property>
    991                   </packing>
    992                 </child>
    993               </object>
    994             </child>
    995           </object>
    996           <packing>
    997             <property name="expand">False</property>
    998             <property name="fill">True</property>
    999             <property name="position">7</property>
    1000           </packing>
    1001         </child>
    1002         <child>
    1003           <object class="GtkButton" id="button7">
    1004             <property name="visible">True</property>
    1005             <property name="can_focus">True</property>
    1006             <property name="receives_default">True</property>
    1007             <child>
    1008               <object class="GtkBox" id="box8">
    1009                 <property name="visible">True</property>
    1010                 <property name="can_focus">False</property>
    1011                 <property name="spacing">30</property>
    1012                 <child>
    1013                   <object class="GtkImage" id="image8">
    1014                     <property name="visible">True</property>
    1015                     <property name="can_focus">False</property>
    1016                     <property name="yalign">1</property>
    1017                     <property name="pixel_size">24</property>
    1018                     <property name="icon_name">preferences-desktop-multimedia</property>
    1019                   </object>
    1020                   <packing>
    1021                     <property name="expand">False</property>
    1022                     <property name="fill">True</property>
    1023                     <property name="position">0</property>
    1024                   </packing>
    1025                 </child>
    1026                 <child>
    1027                   <object class="GtkLabel" id="label7">
    1028                     <property name="visible">True</property>
    1029                     <property name="can_focus">False</property>
    1030                     <property name="label" translatable="yes">Section 1</property>
    1031                     <property name="xalign">0</property>
    1032                   </object>
    1033                   <packing>
    1034                     <property name="expand">False</property>
    1035                     <property name="fill">True</property>
    1036                     <property name="position">1</property>
    1037                   </packing>
    1038                 </child>
    1039               </object>
    1040             </child>
    1041           </object>
    1042           <packing>
    1043             <property name="expand">False</property>
    1044             <property name="fill">True</property>
    1045             <property name="position">8</property>
    1046           </packing>
     741          <placeholder/>
     742        </child>
     743        <child>
     744          <placeholder/>
     745        </child>
     746        <child>
     747          <placeholder/>
     748        </child>
     749        <child>
     750          <placeholder/>
     751        </child>
     752        <child>
     753          <placeholder/>
     754        </child>
     755        <child>
     756          <placeholder/>
     757        </child>
     758        <child>
     759          <placeholder/>
     760        </child>
     761        <child>
     762          <placeholder/>
     763        </child>
     764        <child>
     765          <placeholder/>
     766        </child>
     767        <child>
     768          <placeholder/>
     769        </child>
     770        <child>
     771          <placeholder/>
     772        </child>
     773        <child>
     774          <placeholder/>
     775        </child>
     776        <child>
     777          <placeholder/>
     778        </child>
     779        <child>
     780          <placeholder/>
     781        </child>
     782        <child>
     783          <placeholder/>
     784        </child>
     785        <child>
     786          <placeholder/>
     787        </child>
     788        <child>
     789          <placeholder/>
    1047790        </child>
    1048791        <child>
     
    1100843    <property name="orientation">vertical</property>
    1101844    <child>
    1102       <object class="GtkScrolledWindow" id="scrolledwindow2">
     845      <object class="GtkScrolledWindow" id="search_scrolledwindow">
    1103846        <property name="visible">True</property>
    1104847        <property name="can_focus">True</property>
     
    1130873    </child>
    1131874  </object>
     875  <object class="GtkBox" id="search_box2">
     876    <property name="visible">True</property>
     877    <property name="can_focus">False</property>
     878    <property name="orientation">vertical</property>
     879    <child>
     880      <object class="GtkBox" id="box3">
     881        <property name="visible">True</property>
     882        <property name="can_focus">False</property>
     883        <child>
     884          <object class="GtkViewport" id="viewport5">
     885            <property name="visible">True</property>
     886            <property name="can_focus">False</property>
     887            <child>
     888              <object class="GtkBox" id="categories_box">
     889                <property name="visible">True</property>
     890                <property name="can_focus">False</property>
     891                <property name="halign">center</property>
     892                <property name="margin_top">10</property>
     893                <property name="margin_bottom">10</property>
     894                <property name="orientation">vertical</property>
     895                <child>
     896                  <placeholder/>
     897                </child>
     898              </object>
     899            </child>
     900          </object>
     901          <packing>
     902            <property name="expand">False</property>
     903            <property name="fill">True</property>
     904            <property name="position">0</property>
     905          </packing>
     906        </child>
     907        <child>
     908          <object class="GtkViewport" id="viewport4">
     909            <property name="visible">True</property>
     910            <property name="can_focus">False</property>
     911            <child>
     912              <object class="GtkBox" id="results_search_box1">
     913                <property name="visible">True</property>
     914                <property name="can_focus">False</property>
     915                <property name="margin_left">10</property>
     916                <property name="margin_right">10</property>
     917                <property name="margin_top">10</property>
     918                <property name="margin_bottom">10</property>
     919                <property name="orientation">vertical</property>
     920                <child>
     921                  <placeholder/>
     922                </child>
     923              </object>
     924            </child>
     925          </object>
     926          <packing>
     927            <property name="expand">True</property>
     928            <property name="fill">True</property>
     929            <property name="position">1</property>
     930          </packing>
     931        </child>
     932      </object>
     933      <packing>
     934        <property name="expand">True</property>
     935        <property name="fill">True</property>
     936        <property name="position">0</property>
     937      </packing>
     938    </child>
     939  </object>
    1132940  <object class="GtkWindow" id="window1">
    1133941    <property name="can_focus">False</property>
Note: See TracChangeset for help on using the changeset viewer.