Ignore:
Timestamp:
Apr 3, 2017, 6:37:21 PM (2 years ago)
Author:
hectorgh
Message:

wip

Location:
lliurex-store/trunk/fuentes/lliurex-store-gui
Files:
9 edited

Legend:

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

    r4099 r4104  
    1 
     1import json
    22
    33class CategoriesManager:
     
    77                self.categories={}
    88               
     9                f=open("sections.json")
     10                self.categories=json.load(f)
     11                f.close()
     12               
     13               
     14               
     15                self.banned_categories=["Qt","GNOME","GTK","KDE"]
     16               
     17               
     18                '''
     19               
    920                self.categories["audio"]={}
     21                self.categories["audio"]["tag"]="Audio"
    1022                self.categories["audio"]["name"]="Audio"
    1123                self.categories["audio"]["small_icon"]="audio.svg"
     
    1426               
    1527                self.categories["development"]={}
     28                self.categories["development"]["tag"]="Development"
    1629                self.categories["development"]["name"]="Development"
    1730                self.categories["development"]["icon"]="clean_icons/development.svg"
     
    2033               
    2134                self.categories["education"]={}
     35                self.categories["education"]["tag"]="Education"
    2236                self.categories["education"]["name"]="Education"
    2337                self.categories["education"]["icon"]="clean_icons/education.svg"
     
    2640               
    2741                self.categories["games"]={}
     42                self.categories["games"]["tag"]="Game"
    2843                self.categories["games"]["name"]="Games"
    2944                self.categories["games"]["icon"]="clean_icons/games.svg"
     
    3247               
    3348                self.categories["graphics"]={}
     49                self.categories["graphics"]["tag"]="Graphics"
    3450                self.categories["graphics"]["name"]="Graphics"
    3551                self.categories["graphics"]["icon"]="clean_icons/graphics.svg"
     
    3854               
    3955                self.categories["internet"]={}
     56                self.categories["internet"]["tag"]="Network"
    4057                self.categories["internet"]["name"]="Internet"
    4158                self.categories["internet"]["icon"]="clean_icons/internet.svg"
     
    4461               
    4562                self.categories["office"]={}
     63                self.categories["office"]["tag"]="Office"
    4664                self.categories["office"]["name"]="Office"
    4765                self.categories["office"]["icon"]="clean_icons/office.svg"
     
    5068               
    5169                self.categories["science"]={}
     70                self.categories["science"]["tag"]="Science"
    5271                self.categories["science"]["name"]="Science"
    5372                self.categories["science"]["icon"]="clean_icons/science.svg"
     
    5675               
    5776                self.categories["system"]={}
     77                self.categories["system"]["tag"]="System"
    5878                self.categories["system"]["name"]="System"
    59                 self.categories["system"]["icon"]="clean_icons/science.svg"
     79                self.categories["system"]["icon"]="clean_icons/system.svg"
    6080                self.categories["system"]["small_icon"]="system.svg"
    6181                self.categories["system"]["small_icon_over"]="system_white.svg"
    6282               
    6383                self.categories["utilities"]={}
     84                self.categories["utilities"]["tag"]="Utility"
    6485                self.categories["utilities"]["name"]="Utilities"
    6586                self.categories["utilities"]["icon"]="clean_icons/utilities.svg"
     
    6889               
    6990                self.categories["video"]={}
     91                self.categories["video"]["tag"]="Video"
    7092                self.categories["video"]["name"]="Video"
    7193                self.categories["video"]["icon"]="clean_icons/video.svg"
     
    7395                self.categories["video"]["small_icon_over"]="video_white.svg"
    7496               
     97                self.categories["lliurex"]={}
     98                self.categories["lliurex"]["tag"]="LliureX"
     99                self.categories["lliurex"]["name"]="LliureX"
     100                self.categories["lliurex"]["icon"]="clean_icons/lliurex.svg"
     101                self.categories["lliurex"]["small_icon"]="lliurex.svg"
     102                self.categories["lliurex"]["small_icon_over"]="lliurex_white.svg"
     103               
     104                '''
     105               
    75106        #def init
  • lliurex-store/trunk/fuentes/lliurex-store-gui/DetailsBox.py

    r4099 r4104  
    277277                info={}
    278278               
     279               
     280                print(pkg["categories"])
     281               
    279282                info["image_url"]=pkg["banner_small"]
    280283                info["image_id"]=pkg["package"]+"_banner_small"
  • lliurex-store/trunk/fuentes/lliurex-store-gui/LliurexStoreManager.py

    r4099 r4104  
    22import time
    33import Package
     4import Core
    45
    56class LliurexStoreManager:
     
    910                self.store=lliurexstore.storeManager.StoreManager(0)
    1011               
     12                self.core=Core.Core.get_core()
     13               
    1114                #http://appstream.ubuntu.com/data/xenial/universe/
     15               
    1216       
    1317        #def init
     
    1822               
    1923                while self.store.is_action_running():
    20                         print(self.store.get_progress())
    2124                        time.sleep(0.2)
    2225               
     
    7073        #def get_info
    7174       
     75        def get_package_list(self,category_tag=None):
     76               
     77                action="list"
     78                self.store.execute_action(action,[category_tag])
     79               
     80                while self.store.is_action_running():
     81                        time.sleep(0.2)
     82               
     83                categories=set()
     84               
     85                banned=set()
     86               
     87                for item in self.core.categories_manager.categories:
     88                        banned.add(item)
     89               
     90                for item in self.core.categories_manager.banned_categories:
     91                        banned.add(item)
     92                       
     93               
     94               
     95               
     96                ret=self.store.get_status(action)
     97                if ret["status"]==0:
     98                        for item in self.store.get_result(action)["list"]:
     99                                p=Package.Package(item)
     100                               
     101                                for category in p["categories"]:
     102                                        if category not in banned and not category.startswith("X-"):
     103                                                categories.add(category)
     104                               
     105                               
     106                print(categories)
     107                print("DONE")
     108               
     109               
     110        #def get_package_list
     111
    72112       
    73113
  • lliurex-store/trunk/fuentes/lliurex-store-gui/MainMenu.py

    r4099 r4104  
    219219                button_size=97
    220220               
    221                 img_list=[("Audio","audio.svg"),("Development","development.svg"),("Education","education.svg"),("Games","games.svg"),("Graphics","graphics.svg"),("Internet","internet.svg"),("Office","office.svg"),("Science","science.svg"),("System","system.svg"),("Utilities","utilities.svg"),("Video","video.svg")]
    222                
    223                
    224                 for x in img_list:
    225                        
    226                         label,icon_name=x
     221                               
     222                for item in sorted(self.core.categories_manager.categories):
     223                       
     224                        icon_name=self.core.categories_manager.categories[item]["icon"]
     225                        label=item
     226               
    227227                        b=Gtk.Button()
    228228                        b.set_name("RELATED_BUTTON")
    229229                        hbox=Gtk.HBox()
    230230                        hbox.set_halign(Gtk.Align.START)
    231                         img_path=RSRC_DIR+"clean_icons/"+icon_name
    232                        
     231                                               
    233232                        s=Screenshot.ScreenshotNeo()
    234233                        i={}
    235                         i["image_path"]=img_path
     234                        i["image_path"]=icon_name
    236235                        i["x"]=button_size
    237236                        i["y"]=button_size
     
    241240                        s.create_banner_from_file(i)
    242241                        b.add(s)
    243                         b.connect("clicked",self.category_clicked,label)
     242                        b.connect("clicked",self.category_clicked,item)
    244243                       
    245244                       
     
    283282        #def banner_clicked
    284283       
    285         def category_clicked(self,widget,category):
    286                
    287                 print(category)
     284        def category_clicked(self,widget,category_tag):
     285               
     286                print(category_tag)
     287                self.core.store.get_package_list(category_tag)
    288288               
    289289        #def category_clicked
  • lliurex-store/trunk/fuentes/lliurex-store-gui/MainWindow.py

    r4099 r4104  
    5151                self.header_box=builder.get_object("header_box")
    5252                self.go_back_button=builder.get_object("go_back_button")
    53                 self.menu_image=builder.get_object("menu_image")
     53               
    5454               
    5555               
     
    127127               
    128128                self.go_back_button.set_name("BACK_BUTTON")
    129                 self.menu_image.set_name("MENU_IMAGE")
     129               
    130130               
    131131        #def set-css_info       
  • lliurex-store/trunk/fuentes/lliurex-store-gui/PopupMenu.py

    r4099 r4104  
    1616                popup_menu_x=400
    1717                popup_menu_y=765
     18                percentage=0.8
    1819                shadow_size=50
    1920               
     
    4243                pixbuf=image.get_pixbuf()
    4344                original_ratio=pixbuf.get_width(),pixbuf.get_height()
    44                 pixbuf=pixbuf.scale_simple(400*0.75,225*0.75,GdkPixbuf.InterpType.BILINEAR)
     45                pixbuf=pixbuf.scale_simple(400*percentage,225*percentage,GdkPixbuf.InterpType.BILINEAR)
    4546                self.popup_image.set_from_pixbuf(pixbuf)
    4647               
     
    136137                        b.icon=self.core.categories_manager.categories[item]["small_icon"]
    137138                        b.icon_over=self.core.categories_manager.categories[item]["small_icon_over"]
    138                         txt=self.core.categories_manager.categories[item]["name"]
     139                        txt=item
    139140                       
    140141                        b.img=Gtk.Image.new_from_file(b.icon)
  • lliurex-store/trunk/fuentes/lliurex-store-gui/SearchBox.py

    r4099 r4104  
    2222               
    2323               
    24                 self.search_box=builder.get_object("search_box")
     24                self.search_box=builder.get_object("search_box2")
    2525                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")
     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")
    2830               
    2931                self.add(self.search_box)
     
    3436        def populate_search_results(self,pkg_list):
    3537               
     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               
    3647                for children in self.results_search_box.get_children():
    3748                        self.results_search_box.remove(children)
     
    4051               
    4152               
     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               
    4283                for pkg in pkg_list:
    4384                       
    4485                        item_hbox=Gtk.HBox()
    45                         item_hbox.set_size_request(650,100)
     86                        #item_hbox.set_size_request(0,80)
    4687                       
    4788                        hbox=Gtk.HBox()
     
    88129                        b.connect("clicked",self.result_clicked,pkg)
    89130                       
    90                         b.set_size_request(715,100)
     131                        b.set_size_request(size_test,80)
    91132                        b.set_halign(Gtk.Align.CENTER)
    92133                        b.set_name("RELATED_BUTTON")
  • lliurex-store/trunk/fuentes/lliurex-store-gui/lliurex-store.css

    r4099 r4104  
    2121                #POPUP_SHADOW_LEFTRIGHT
    2222                {
    23                         background-image: -gtk-gradient (linear,        left top, right top, from (rgba(0,0,0,0.5)), to (rgba(0,0,0,0)));
     23                        background-image:-gtk-gradient (linear, 0 0, 1 0,
     24                       
     25                                color-stop(0, rgba(0,0,0,0.3)),
     26                                color-stop(0.15, rgba(0,0,0,0)),
     27                                color-stop(1, rgba(0,0,0,0))
     28                        );
     29                       
    2430                }
    2531               
     
    9096                #MENU_BUTTON{
    9197                       
    92                         /*background-image: url("file:///tmp/llx-store.svg");*/
     98                        background-image: url("file:///tmp/llx-store.svg");
    9399                        background-color:red;
    94100                        border-color: black;
     
    269275               
    270276               
    271                                
     277                #PKG_BOX {
     278
     279                                background-image: -gtk-gradient (linear,        left top, left bottom, from (rgba(0,95,219,1)),  to (rgba(0,56,134,1)));
     280        }
    272281
    273282
     
    306315                #RELATED_BUTTON:hover {
    307316                        background-image: -gtk-gradient (linear,        left top, left bottom, from (rgba(255,255,255,1)),  to (rgba(255,255,255,1)));
    308                         box-shadow: 0px 0px 5px #66c6ff;
     317                        box-shadow: 0px 0px 5px rgba(102,198,255,1);
    309318                        animation-delay: 250ms;
    310319                        animation: rotate-colors infinite linear 2s;
     
    354363                }
    355364               
    356                 .scrollbar {
    357                         -GtkRange-trough-border: 1;
    358                 }
     365               
     366               
     367               
     368                               
    359369               
    360370                .scrollbar .trough {
    361371                        background-color: transparent;
    362                         border: 0px none #dcdfe3;
     372                        border: 0px;
     373
    363374                }
    364375               
    365376                .scrollbar .slider {
    366                         background-color: rgba(150,150,150,0.2);
    367                 }
    368                
    369                 .scrollbar .slider:prelight:active, .scrollbar .slider:active, .scrollbar .slider:hover {
    370                         background-color: rgba(150,150,150,0.5);
    371                 }
    372                
    373 
    374                
    375                 GtkScrollView {
    376                         color: red;
    377                 }
     377                        background-color: rgba(90,140,220,0.7);
     378                       
     379                }
     380               
     381
     382
     383
    378384               
    379385                GtkButton {
     
    478484               
    479485               
    480                 #PKG_BOX {
    481 
    482                                 background-image: -gtk-gradient (linear,        left top, left bottom, from (rgba(0,95,219,1)),  to (rgba(0,56,134,1)));
    483         }
  • lliurex-store/trunk/fuentes/lliurex-store-gui/lliurex-store.ui

    r4099 r4104  
    369369            <property name="margin_bottom">5</property>
    370370            <child>
    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>
     371              <placeholder/>
    376372            </child>
    377373          </object>
     
    709705    <property name="can_focus">False</property>
    710706    <child>
    711       <object class="GtkBox" id="popup_box_left">
    712         <property name="visible">True</property>
    713         <property name="can_focus">False</property>
    714         <property name="orientation">vertical</property>
    715         <property name="spacing">6</property>
    716         <child>
    717           <object class="GtkBox" id="box1">
    718             <property name="visible">True</property>
    719             <property name="can_focus">False</property>
    720             <property name="orientation">vertical</property>
    721             <child>
    722               <object class="GtkImage" id="popup_image">
     707      <object class="GtkScrolledWindow" id="scrolledwindow2">
     708        <property name="width_request">320</property>
     709        <property name="visible">True</property>
     710        <property name="can_focus">True</property>
     711        <child>
     712          <object class="GtkViewport" id="viewport6">
     713            <property name="visible">True</property>
     714            <property name="can_focus">False</property>
     715            <property name="shadow_type">none</property>
     716            <child>
     717              <object class="GtkBox" id="popup_box_left">
    723718                <property name="visible">True</property>
    724719                <property name="can_focus">False</property>
    725                 <property name="stock">gtk-missing-image</property>
     720                <property name="orientation">vertical</property>
     721                <property name="spacing">6</property>
     722                <child>
     723                  <object class="GtkBox" id="box1">
     724                    <property name="visible">True</property>
     725                    <property name="can_focus">False</property>
     726                    <property name="orientation">vertical</property>
     727                    <child>
     728                      <object class="GtkImage" id="popup_image">
     729                        <property name="visible">True</property>
     730                        <property name="can_focus">False</property>
     731                        <property name="stock">gtk-missing-image</property>
     732                      </object>
     733                      <packing>
     734                        <property name="expand">False</property>
     735                        <property name="fill">False</property>
     736                        <property name="position">0</property>
     737                      </packing>
     738                    </child>
     739                  </object>
     740                  <packing>
     741                    <property name="expand">False</property>
     742                    <property name="fill">False</property>
     743                    <property name="position">0</property>
     744                  </packing>
     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/>
     790                </child>
     791                <child>
     792                  <placeholder/>
     793                </child>
     794                <child>
     795                  <placeholder/>
     796                </child>
     797                <child>
     798                  <placeholder/>
     799                </child>
    726800              </object>
    727               <packing>
    728                 <property name="expand">False</property>
    729                 <property name="fill">False</property>
    730                 <property name="position">0</property>
    731               </packing>
    732             </child>
    733           </object>
    734           <packing>
    735             <property name="expand">False</property>
    736             <property name="fill">False</property>
    737             <property name="position">0</property>
    738           </packing>
    739         </child>
    740         <child>
    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/>
    790         </child>
    791         <child>
    792           <placeholder/>
     801            </child>
     802          </object>
    793803        </child>
    794804      </object>
     
    819829        <property name="visible">True</property>
    820830        <property name="can_focus">False</property>
     831        <property name="hexpand">True</property>
    821832        <child>
    822833          <object class="GtkBox" id="popup_box_right">
     
    882893        <property name="can_focus">False</property>
    883894        <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">
     895          <object class="GtkScrolledWindow" id="categories_scrolledwindow">
     896            <property name="visible">True</property>
     897            <property name="can_focus">True</property>
     898            <property name="overlay_scrolling">False</property>
     899            <child>
     900              <object class="GtkViewport" id="viewport4">
    889901                <property name="visible">True</property>
    890902                <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/>
     903                <property name="shadow_type">none</property>
     904                <child>
     905                  <object class="GtkBox" id="search_categories_box">
     906                    <property name="visible">True</property>
     907                    <property name="can_focus">False</property>
     908                    <property name="halign">center</property>
     909                    <property name="margin_top">10</property>
     910                    <property name="margin_bottom">10</property>
     911                    <property name="orientation">vertical</property>
     912                    <child>
     913                      <placeholder/>
     914                    </child>
     915                  </object>
    897916                </child>
    898917              </object>
     
    906925        </child>
    907926        <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">
     927          <object class="GtkScrolledWindow" id="results_scrolledwindow">
     928            <property name="visible">True</property>
     929            <property name="can_focus">True</property>
     930            <property name="overlay_scrolling">False</property>
     931            <child>
     932              <object class="GtkViewport" id="viewport5">
    913933                <property name="visible">True</property>
    914934                <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/>
     935                <property name="shadow_type">none</property>
     936                <child>
     937                  <object class="GtkBox" id="search_results_box">
     938                    <property name="visible">True</property>
     939                    <property name="can_focus">False</property>
     940                    <property name="halign">center</property>
     941                    <property name="margin_top">10</property>
     942                    <property name="margin_bottom">10</property>
     943                    <property name="orientation">vertical</property>
     944                    <child>
     945                      <placeholder/>
     946                    </child>
     947                  </object>
    922948                </child>
    923949              </object>
Note: See TracChangeset for help on using the changeset viewer.