Changeset 4114


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

wip

Location:
lliurex-store/trunk/fuentes
Files:
12 edited

Legend:

Unmodified
Added
Removed
  • lliurex-store/trunk/fuentes/debian/control

    r3856 r4114  
    1818Depends: ${misc:Depends}, ${python3:Depends}, gir1.2-appstreamglib-1.0 (>=0.5.13), appstream (>=0.9.4), libappstream3 (>=0.9.4),python3-aptdaemon.pkcompat
    1919Description: Libs for the LliureX Software Store
     20
  • lliurex-store/trunk/fuentes/debian/lliurex-store.install

    r3647 r4114  
    11lliurex-store-cli/* /
     2lliurex-store-gui/usr/* /usr
  • lliurex-store/trunk/fuentes/lliurex-store-cli/usr/share/lliurex-store/lliurex-store-cli.py

    r4020 r4114  
    120120                actions.append('list')
    121121                parms['list']=args.list
     122                print(args.list,type(args.list))
    122123        if args.list_sections:
    123124                actions.append('list_sections')
  • lliurex-store/trunk/fuentes/lliurex-store-gui/CategoriesManager.py

    r4104 r4114  
    1111                f.close()
    1212               
    13                
    14                
    1513                self.banned_categories=["Qt","GNOME","GTK","KDE"]
    1614               
    17                
    18                 '''
    19                
    20                 self.categories["audio"]={}
    21                 self.categories["audio"]["tag"]="Audio"
    22                 self.categories["audio"]["name"]="Audio"
    23                 self.categories["audio"]["small_icon"]="audio.svg"
    24                 self.categories["audio"]["icon"]="clean_icons/audio.svg"
    25                 self.categories["audio"]["small_icon_over"]="audio_white.svg"
    26                
    27                 self.categories["development"]={}
    28                 self.categories["development"]["tag"]="Development"
    29                 self.categories["development"]["name"]="Development"
    30                 self.categories["development"]["icon"]="clean_icons/development.svg"
    31                 self.categories["development"]["small_icon"]="development.svg"
    32                 self.categories["development"]["small_icon_over"]="development_white.svg"
    33                
    34                 self.categories["education"]={}
    35                 self.categories["education"]["tag"]="Education"
    36                 self.categories["education"]["name"]="Education"
    37                 self.categories["education"]["icon"]="clean_icons/education.svg"
    38                 self.categories["education"]["small_icon"]="education.svg"
    39                 self.categories["education"]["small_icon_over"]="education_white.svg"
    40                
    41                 self.categories["games"]={}
    42                 self.categories["games"]["tag"]="Game"
    43                 self.categories["games"]["name"]="Games"
    44                 self.categories["games"]["icon"]="clean_icons/games.svg"
    45                 self.categories["games"]["small_icon"]="games.svg"
    46                 self.categories["games"]["small_icon_over"]="games_white.svg"
    47                
    48                 self.categories["graphics"]={}
    49                 self.categories["graphics"]["tag"]="Graphics"
    50                 self.categories["graphics"]["name"]="Graphics"
    51                 self.categories["graphics"]["icon"]="clean_icons/graphics.svg"
    52                 self.categories["graphics"]["small_icon"]="graphics.svg"
    53                 self.categories["graphics"]["small_icon_over"]="graphics_white.svg"
    54                
    55                 self.categories["internet"]={}
    56                 self.categories["internet"]["tag"]="Network"
    57                 self.categories["internet"]["name"]="Internet"
    58                 self.categories["internet"]["icon"]="clean_icons/internet.svg"
    59                 self.categories["internet"]["small_icon"]="internet.svg"
    60                 self.categories["internet"]["small_icon_over"]="internet_white.svg"
    61                
    62                 self.categories["office"]={}
    63                 self.categories["office"]["tag"]="Office"
    64                 self.categories["office"]["name"]="Office"
    65                 self.categories["office"]["icon"]="clean_icons/office.svg"
    66                 self.categories["office"]["small_icon"]="office.svg"
    67                 self.categories["office"]["small_icon_over"]="office_white.svg"
    68                
    69                 self.categories["science"]={}
    70                 self.categories["science"]["tag"]="Science"
    71                 self.categories["science"]["name"]="Science"
    72                 self.categories["science"]["icon"]="clean_icons/science.svg"
    73                 self.categories["science"]["small_icon"]="science.svg"
    74                 self.categories["science"]["small_icon_over"]="science_white.svg"
    75                
    76                 self.categories["system"]={}
    77                 self.categories["system"]["tag"]="System"
    78                 self.categories["system"]["name"]="System"
    79                 self.categories["system"]["icon"]="clean_icons/system.svg"
    80                 self.categories["system"]["small_icon"]="system.svg"
    81                 self.categories["system"]["small_icon_over"]="system_white.svg"
    82                
    83                 self.categories["utilities"]={}
    84                 self.categories["utilities"]["tag"]="Utility"
    85                 self.categories["utilities"]["name"]="Utilities"
    86                 self.categories["utilities"]["icon"]="clean_icons/utilities.svg"
    87                 self.categories["utilities"]["small_icon"]="utilities.svg"
    88                 self.categories["utilities"]["small_icon_over"]="utilities_white.svg"
    89                
    90                 self.categories["video"]={}
    91                 self.categories["video"]["tag"]="Video"
    92                 self.categories["video"]["name"]="Video"
    93                 self.categories["video"]["icon"]="clean_icons/video.svg"
    94                 self.categories["video"]["small_icon"]="video.svg"
    95                 self.categories["video"]["small_icon_over"]="video_white.svg"
    96                
    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                
    10615        #def init
  • lliurex-store/trunk/fuentes/lliurex-store-gui/DetailsBox.py

    r4109 r4114  
    1111signal.signal(signal.SIGINT, signal.SIG_DFL)
    1212
    13 import gettext
    1413import time
    1514import threading
     
    1716import html2text
    1817
    19 _=gettext.gettext
     18import gettext
     19gettext.textdomain('zero-center')
     20_ = gettext.gettext
    2021
    2122TMP_STORE_DIR="/tmp/.lliurex-store/"
     23TMP_STORE_DIR=os.path.expanduser("~/.cache/")
    2224
    2325class DetailsBox(Gtk.VBox):
     
    3941               
    4042                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)
    4343                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)
    4844               
    4945                # ####### LEFT SIDE ######
     
    6056                self.app_details.pack_start(self.app_banner,False,False,0)
    6157                self.install_button=Gtk.Button()
    62                 self.install_button_label=Gtk.Label("Install")
     58                self.install_button_label=Gtk.Label(_("Install"))
    6359                self.install_button.add(self.install_button_label)
    6460                self.install_button.connect("clicked",self.install_clicked)
    6561               
    6662                vbox=Gtk.VBox()
    67                 self.install_label=Gtk.Label("Installing...")
     63                self.install_label=Gtk.Label(_("Installing..."))
    6864                vbox.pack_start(self.install_label,False,False,0)
    6965                vbox.set_valign(Gtk.Align.FILL)
     
    7773
    7874                hbox=Gtk.HBox()
    79                 self.uninstall_button=Gtk.Button("Uninstall")
     75                self.uninstall_button=Gtk.Button(_("Uninstall"))
    8076                self.uninstall_button.connect("clicked",self.uninstall_clicked)
    81                 self.open_button=Gtk.Button("Open")
     77                self.open_button=Gtk.Button(_("Open"))
    8278                self.open_button.connect("clicked",self.open_clicked)
    8379                self.open_button.set_margin_right(10)
    8480                hbox.pack_start(self.open_button,True,True,0)
    8581                hbox.pack_start(self.uninstall_button,True,True,0)
    86                
    87                
    8882               
    8983                self.install_stack=Gtk.Stack()
     
    9387                self.install_stack.add_titled(vbox,"progress","Progress")
    9488                self.install_stack.add_titled(hbox,"installed","Open/Uninstall")
    95                
    9689               
    9790                self.app_details.pack_start(self.install_stack,False,False,10)
     
    372365                self.screenshots_box.show_all()
    373366               
    374                
    375                
     367
    376368                for p in self.related_box.get_children():
    377369                        self.related_box.remove(p)
    378370                       
    379371
    380                
    381                        
    382372                for p in pkg["related_packages"]:
    383373                       
  • lliurex-store/trunk/fuentes/lliurex-store-gui/LliurexStoreManager.py

    r4109 r4114  
    6767                ret=self.store.get_status(action)
    6868               
    69                 print(ret)
    7069               
    7170                if ret["status"]==0:
     
    8584                                        categories.remove(item)                 
    8685               
    87 
    88                         random_id=int(random.random()*len(categories))
    89                         random_category=categories[random_id]
    90                         pkgs,categories=self.get_package_list_from_category(random_category)
    91                        
    92                         if len(pkgs) >=10:
    93                                 samples=10
    94                         else:
    95                                 samples=len(pkgs)
    96                        
    97                         for item in random.sample(pkgs,samples):
    98                                 if item["package"]!=pkg_id:
    99                                         p["related_packages"].append(item)
    100                                
    101                         p.fix_info()
     86               
     87                        if len(categories)>0:
     88
     89                                random_id=int(random.random()*len(categories))
     90                               
     91                                random_category=categories[random_id]
     92                                pkgs,categories=self.get_package_list_from_category(random_category)
     93                               
     94                                if len(pkgs) >=10:
     95                                        samples=10
     96                                else:
     97                                        samples=len(pkgs)
     98                               
     99                                for item in random.sample(pkgs,samples):
     100                                        if item["package"]!=pkg_id:
     101                                                p["related_packages"].append(item)
     102                                       
     103                                p.fix_info()
    102104                       
    103105                        return p
  • lliurex-store/trunk/fuentes/lliurex-store-gui/LoadingBox.py

    r3773 r4114  
    1111signal.signal(signal.SIGINT, signal.SIG_DFL)
    1212
     13
    1314import gettext
    14 
    15 _=gettext.gettext
     15gettext.textdomain('zero-center')
     16_ = gettext.gettext
    1617
    1718
     
    3839               
    3940                self.loading_label=builder.get_object("loading_label")
    40                
    4141                self.add(self.loading_box)
    4242               
     
    4444                self.show_all()
    4545               
    46                
    47                
    48                
    49                
    5046        #def init
     47
    5148       
    5249        def set_css_info(self):
  • lliurex-store/trunk/fuentes/lliurex-store-gui/MainMenu.py

    r4109 r4114  
    77signal.signal(signal.SIGINT, signal.SIG_DFL)
    88
    9 import gettext
    109import urllib.request as urllib2
    1110import shutil
     
    1716import ImageManager
    1817import Package
    19 
    20 _=gettext.gettext
     18import os
     19
     20import gettext
     21gettext.textdomain('zero-center')
     22_ = gettext.gettext
    2123
    2224RSRC_DIR="./"
     
    2527HOME_CONTENT_URL="file:///srv/svn/xenial/lliurex-store/trunk/fuentes/lliurex-store-gui/home_content.json"
    2628TMP_STORE_DIR="/tmp/.lliurex-store/"
     29TMP_STORE_DIR=os.path.expanduser("~/.cache/")
    2730
    2831class MainMenu(Gtk.VBox):
     
    7275               
    7376                '''
     77               
     78                # MIGHT OR MIGHT NOT DO THIS IN THE FUTURE
     79               
    7480                self.categories_flowbox = Gtk.FlowBox()
    7581                self.categories_flowbox.set_max_children_per_line(30)
     
    119125                        f=open(TMP_STORE_DIR+"home_content.json")
    120126                        self.home_info=json.load(f)
    121 
    122                         '''
    123                         for pkg in self.home_info["large"]:
    124                                 data=self.core.store.search_package(pkg["package"])
    125                                 if len(data)>0:
    126                                         data=data[0]
    127                                         for key in data:
    128                                                 pkg[key]=data[key]
    129                                                
    130                         for pkg in self.home_info["small"]:
    131                                 data=self.core.store.search_package(pkg["package"])
    132                                 if len(data)>0:
    133                                         data=data[0]
    134                                         for key in data:
    135                                                 pkg[key]=data[key]
    136                         '''
    137127                       
    138128                        f.close()
     
    221211                w_counter=0
    222212                h_counter=0
    223                
    224213                button_size=97
    225214               
     
    227216                for item in sorted(self.core.categories_manager.categories):
    228217                       
    229                        
    230                        
    231218                        icon_name=self.core.categories_manager.categories[item]["icon"]
    232                         label=item
     219                        label=_(item)
    233220               
    234221                        b=Gtk.Button()
     
    248235                        b.add(s)
    249236                        b.connect("clicked",self.category_clicked,item)
    250                        
    251                        
    252                         #self.categories_flowbox.add(b)
    253                        
     237
     238                        '''
     239                        self.categories_flowbox.add(b)
     240                        '''
    254241                        self.categories_grid.attach(b,w_counter,h_counter,1,1)
    255242                        w_counter+=1
     
    257244                                w_counter=0
    258245                                h_counter+=1
    259                                
    260                        
    261                         '''
    262                        
    263                         icon_name=self.core.categories_manager.categories[item]["icon"]
    264                         label=item
    265                
    266                         b=Gtk.Button()
    267                         b.set_name("RELATED_BUTTON")
    268                         hbox=Gtk.HBox()
    269                         hbox.set_halign(Gtk.Align.START)
    270                                                
    271                         s=Screenshot.ScreenshotNeo()
    272                         i={}
    273                         i["image_path"]=icon_name
    274                         i["x"]=button_size
    275                         i["y"]=button_size
    276                         i["custom_frame"]=True
    277                         i["name"]=label
    278                        
    279                         s.create_banner_from_file(i)
    280                         b.add(s)
    281                         b.connect("clicked",self.category_clicked,item)
    282                        
    283                         b.set_halign(Gtk.Align.CENTER)
    284                         b.set_valign(Gtk.Align.CENTER)
    285                        
    286                         self.categories_flowbox.add(b)
    287                        
    288                         '''
    289246                       
    290247                self.categories_grid.show_all()
    291                 #self.categories_flowbox.show_all()
    292                
    293                
    294                
    295                
     248               
     249                '''
     250                self.categories_flowbox.show_all()
     251                '''
    296252               
    297253        #def build_categories
     
    310266                self.forward_button.set_name("MEDIA_BUTTON")
    311267               
    312                
    313268        #def set_css_info
    314269       
     
    317272               
    318273                p=Package.Package(pkg)
    319                
    320274                self.core.main_window.load_pkg_data(p["package"])
    321275               
    322                
    323276        #def banner_clicked
     277
    324278       
    325279        def category_clicked(self,widget,category_tag):
    326280               
    327                 self.core.search_box.current_category=category_tag
     281                self.core.search_box.current_category=_(category_tag)
    328282                self.core.main_window.search_category(category_tag)
    329283               
     
    359313               
    360314        #def next_image
     315
    361316       
    362317        def rewind_clicked(self,widget):
     
    367322               
    368323        #def rewind_clicked
     324
    369325       
    370326        def play_clicked(self,widget):
     
    378334               
    379335        #def rewind_clicked
     336
    380337       
    381338        def forward_clicked(self,widget):
  • lliurex-store/trunk/fuentes/lliurex-store-gui/MainWindow.py

    r4109 r4114  
    88import threading
    99import multiprocessing
    10 import gettext
    1110import signal
    1211import time
    1312
    1413signal.signal(signal.SIGINT, signal.SIG_DFL)
    15 _=gettext.gettext
     14
     15
     16import gettext
     17gettext.textdomain('zero-center')
     18_ = gettext.gettext
    1619
    1720
     
    189192                current_txt=self.location_label.get_text()
    190193                if self.path_followed[-1]!="details":
    191                         self.location_label.set_text(current_txt + " > " + "Details")
     194                        self.location_label.set_text(current_txt + " > " + _("Details"))
    192195                        self.path_followed.append("details")
    193196                self.stack.set_visible_child_name("details")
     
    202205               
    203206                self.search_entry.set_text("")
    204                 self.location_label.set_text("Home")
     207                self.location_label.set_text(_("Home"))
    205208                self.path_followed=["main"]
    206209                self.stack.set_visible_child_name("main")
     
    383386                ret=self.core.store.search_package(pkg_id)
    384387                self.core.dprint("Search complete")
    385                 '''
    386                 for p in ret:
    387                         pkg["icon_url"]=self.core.resources.get_icon(p.dic)
    388                         pkg["name"]=p.dic["name"]
    389                         pkg["package"]=pkg_id
    390                         pkg["short_description"]="Package that does a lot of things very well done askdjlaskl jdaklsdjkl asjkl dasjkl djkl asdjkl asdjkl asdjkl asdjkl asdjkl asdjkl asd"
    391                         ret.append(pkg)
    392                 '''
    393                
    394388                search_queue.put(ret)
    395                
    396 
    397389               
    398390        #def search_package_thread
  • lliurex-store/trunk/fuentes/lliurex-store-gui/PopupMenu.py

    r4109 r4114  
    55
    66import Core
     7
     8import gettext
     9gettext.textdomain('zero-center')
     10_ = gettext.gettext
    711
    812class PopupMenu(Gtk.EventBox):
     
    7175                b.icon="home.svg"
    7276                b.icon_over="home_white.svg"
    73                 txt="Home"
     77                txt=_("Home")
    7478                       
    7579                b.img=Gtk.Image.new_from_file(b.icon)
     
    97101                b.icon="favorite.svg"
    98102                b.icon_over="favorite_white.svg"
    99                 txt="My applications"
     103                txt=_("My applications")
    100104                       
    101105                b.img=Gtk.Image.new_from_file(b.icon)
     
    137141                        b.icon=self.core.categories_manager.categories[item]["small_icon"]
    138142                        b.icon_over=self.core.categories_manager.categories[item]["small_icon_over"]
    139                         txt=item
     143                        txt=_(item)
    140144                       
    141145                        b.img=Gtk.Image.new_from_file(b.icon)
  • lliurex-store/trunk/fuentes/lliurex-store-gui/SearchBox.py

    r4109 r4114  
    11import gi
    22gi.require_version('Gtk', '3.0')
    3 from gi.repository import Gtk,GdkPixbuf,GLib,GObject, Pango
     3from gi.repository import Gtk,GdkPixbuf,GLib,GObject, Pango, Gdk
    44
    55import os
     
    88import Screenshot
    99
     10import gettext
     11gettext.textdomain('zero-center')
     12_ = gettext.gettext
     13
     14
    1015class SearchBox(Gtk.VBox):
    1116
     
    1924                builder.add_from_file(ui_path)
    2025               
    21                 self.label_max_width=53
     26                self.label_max_width=1
     27               
     28                self.description_label_ratio=0.091
    2229               
    2330                self.current_category=""
     
    7986                                hbox.set_name("PKG_BOX")
    8087                               
    81                                 label=Gtk.Label(c)
     88                                label=Gtk.Label(_(c))
    8289                                label.set_name("SHORT_DESCRIPTION")
    8390                               
     
    97104                               
    98105                                b.connect("clicked",self.filter_by,c)
     106                               
    99107                                self.search_categories_box.pack_start(b,False,False,3)
    100108                                counter+=1
     
    105113                        self.categories_sw.hide()
    106114               
     115                connect_size_request=True
     116               
    107117                for pkg in pkg_list:
    108118                       
    109                         self.add_pkg_to_list(pkg)
     119                        self.add_pkg_to_list(pkg,connect_size_request)
     120                        connect_size_request=False
    110121                       
    111122                       
     
    118129       
    119130       
    120         def add_pkg_to_list(self,pkg):
     131        def add_pkg_to_list(self,pkg,connect_size_request=False):
    121132               
    122133                item_box=Gtk.HBox()
     
    158169                b.set_name("RELATED_BUTTON")
    159170                b.set_valign(Gtk.Align.START)
    160                 b.set_halign(Gtk.Align.FILL)
     171                #b.set_halign(Gtk.Align.FILL)
    161172                b.connect("clicked",self.result_clicked,pkg)
    162173                       
    163174                b.set_size_request(0,80)
     175               
     176                if connect_size_request:
     177                        b.connect("draw",self.search_item_size_request)
    164178                       
    165179                self.results_search_box.pack_start(b,False,False,3)
    166                
     180                self.results_search_box.queue_draw()
    167181               
    168182               
    169183        #def create_item
     184       
     185        def search_item_size_request(self,widget,data=None):
     186               
     187                allocation=widget.get_allocation()
     188                self.label_max_width=int(allocation.width*self.description_label_ratio)
     189               
     190                for child in self.results_search_box.get_children():
     191                        child.get_child().get_children()[1].get_children()[1].set_max_width_chars(self.label_max_width)
     192                       
     193                if type(data)!=Gdk.Rectangle:
     194                        widget.disconnect_by_func(self.search_item_size_request)
     195                        widget.connect("size-allocate",self.search_item_size_request)
     196               
     197        #def search_item_size_request
     198       
    170199       
    171200        def filter_by(self,widget,filter):
     
    174203                        self.results_search_box.remove(child)
    175204               
    176                                        
     205                connect_size_request=True
    177206                for pkg in self.current_pkg_list:
    178207                       
     
    181210                                continue
    182211                        if filter in pkg["categories"]:
    183                                 self.add_pkg_to_list(pkg)
     212                               
     213                                self.add_pkg_to_list(pkg,connect_size_request)
     214                                connect_size_request=False
    184215                       
    185216                self.results_search_box.show_all()
    186217                       
    187                
    188                
    189218        #def filter_by
    190219       
     220       
    191221        def result_clicked(self,widget,pkg_data):
    192222               
     223                a=widget.get_allocation()
    193224                self.core.main_window.load_pkg_data(pkg_data["package"])
     225               
     226        #def result_clicked
     227
    194228
    195229
  • lliurex-store/trunk/fuentes/lliurex-store-gui/lliurex-store.ui

    r4109 r4114  
    932932            <property name="visible">True</property>
    933933            <property name="can_focus">True</property>
     934            <property name="hscrollbar_policy">never</property>
    934935            <child>
    935936              <object class="GtkViewport" id="viewport5">
     
    943944                    <property name="visible">True</property>
    944945                    <property name="can_focus">False</property>
    945                     <property name="halign">center</property>
    946946                    <property name="margin_left">5</property>
    947947                    <property name="margin_right">5</property>
Note: See TracChangeset for help on using the changeset viewer.