Changeset 7873


Ignore:
Timestamp:
Aug 1, 2018, 2:39:41 PM (13 months ago)
Author:
Juanma
Message:

add educational resources.

Location:
repoman/trunk/fuentes
Files:
2 added
5 edited

Legend:

Unmodified
Added
Removed
  • repoman/trunk/fuentes/lliurex-po/generate_po.sh

    r7843 r7873  
    88
    99echo '' >> repoman/repoman.pot
    10 for i in ../sources.d/default/*
     10for i in ../sources.d/default/*json
    1111do
    1212        echo "#: json $i" >> repoman/repoman.pot
     
    1717
    1818done
     19for i in ../sources.d/*json
     20do
     21        echo "#: json $i" >> repoman/repoman.pot
     22        a=$(grep \"desc\": $i | cut -d "\"" -f4)
     23        echo 'msgid "'${a}'"' >> repoman/repoman.pot
     24        echo 'msgstr ""'>> repoman/repoman.pot
     25        echo '' >> repoman/repoman.pot
     26
     27done
  • repoman/trunk/fuentes/lliurex-po/repoman/es.po

    r7843 r7873  
    88"Project-Id-Version: \n"
    99"Report-Msgid-Bugs-To: \n"
    10 "POT-Creation-Date: 2018-07-31 11:59+0200\n"
    11 "PO-Revision-Date: 2018-07-31 12:01+0200\n"
     10"POT-Creation-Date: 2018-08-01 14:38+0200\n"
     11"PO-Revision-Date: 2018-08-01 14:39+0200\n"
    1212"Last-Translator: \n"
    1313"Language-Team: \n"
     
    4747msgstr "Fallo al actualizar los repositorios"
    4848
    49 #: ../src/repoman.py:99
     49#: ../src/repoman.py:37
     50msgid "Mirror not availabe"
     51msgstr "Mirror no disponible"
     52
     53#: ../src/repoman.py:113
    5054msgid "Repositories must be updated. Update now?"
    5155msgstr "Hay que actualizar los repositorios. ¿Actualizar ahora?"
    5256
    53 #: ../src/repoman.py:127
     57#: ../src/repoman.py:120
     58msgid "Update repositories"
     59msgstr "Actualizar repositorios"
     60
     61#: ../src/repoman.py:142
    5462msgid "Default repositories"
    5563msgstr "Repositorios por defecto"
    5664
    57 #: ../src/repoman.py:134
     65#: ../src/repoman.py:149
    5866msgid "External repositories"
    5967msgstr "Repositorios externos"
    6068
    61 #: ../src/repoman.py:141
     69#: ../src/repoman.py:156
    6270msgid "Add external repository"
    6371msgstr "Añadir repositorio externo"
    6472
    65 #: ../src/repoman.py:150
     73#: ../src/repoman.py:165
    6674msgid ""
    6775"Welcome to RepoMan.\n"
     
    7280"los repositorios."
    7381
    74 #: ../src/repoman.py:151
     82#: ../src/repoman.py:166
    7583msgid "Repositories Manager"
    7684msgstr "Gestor de repositorios"
    7785
    78 #: ../src/repoman.py:271
     86#: ../src/repoman.py:278
    7987msgid "Name for the repo"
    8088msgstr "Nombre del repo"
    8189
    82 #: ../src/repoman.py:282
     90#: ../src/repoman.py:289
    8391msgid "Description"
    8492msgstr "Descripción"
    8593
    86 #: ../src/repoman.py:292
     94#: ../src/repoman.py:299
    8795msgid "Url"
    8896msgstr "Url"
    8997
    90 #: ../src/repoman.py:322
    91 #, python-format
    92 msgid "%s is yet configured. Overwrite it?"
    93 msgstr "%s ya está configurado. ¿Sobreescribir?"
    94 
    95 #: ../src/repoman.py:332
     98#: ../src/repoman.py:326
    9699msgid "Name is mandatory"
    97100msgstr "El nombre es obligatorio"
    98101
    99 #: ../src/repoman.py:336
     102#: ../src/repoman.py:330
    100103msgid "Name is too long"
    101104msgstr "El nombre es demasiado largo"
    102105
    103 #: ../src/repoman.py:344
     106#: ../src/repoman.py:338
    104107msgid "Description is too long"
    105108msgstr "La descripción es demasiado larga"
    106109
    107 #: ../src/repoman.py:350
     110#: ../src/repoman.py:344
    108111msgid "Url is mandatory"
    109112msgstr "La URL es obligatoria"
    110113
    111 #: ../src/repoman.py:363
     114#: ../src/repoman.py:356
     115#, python-format
     116msgid "%s already exists. Overwrite it?"
     117msgstr "Ya existe %s. ¿Sobreescribirlo?"
     118
     119#: ../src/repoman.py:372
    112120#, python-format
    113121msgid "Added repository %s"
    114122msgstr "Añadido el repositorio %s"
    115123
    116 #: ../src/repoman.py:397 ../src/repoman.py:461
     124#: ../src/repoman.py:407
    117125msgid "Edit sources file"
    118126msgstr "Editar fichero de fuentes"
    119127
    120 #: ../src/repoman.py:513
     128#: ../src/repoman.py:457
    121129msgid "Repositories updated"
    122130msgstr "Repositorios actualizados"
     
    134142msgstr "Repositorios oficiales de Ubuntu Xenial"
    135143
     144#: json ../sources.d/recursos_lliurex.json
     145msgid "Lliurex educational resources"
     146msgstr "Recursos educativos de Lliurex"
     147
     148#~ msgid "%s is yet configured. Overwrite it?"
     149#~ msgstr "%s ya está configurado. ¿Sobreescribir?"
     150
    136151#~ msgid "Added new repository %s"
    137152#~ msgstr "Añadido repositorio %s"
  • repoman/trunk/fuentes/lliurex-po/repoman/repoman.pot

    r7843 r7873  
    99"Project-Id-Version: PACKAGE VERSION\n"
    1010"Report-Msgid-Bugs-To: \n"
    11 "POT-Creation-Date: 2018-07-31 11:58+0200\n"
     11"POT-Creation-Date: 2018-08-01 14:37+0200\n"
    1212"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
    1313"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
     
    4242msgstr ""
    4343
    44 #: ../src/repoman.py:99
     44#: ../src/repoman.py:37
     45msgid "Mirror not availabe"
     46msgstr ""
     47
     48#: ../src/repoman.py:113
    4549msgid "Repositories must be updated. Update now?"
    4650msgstr ""
    4751
    48 #: ../src/repoman.py:127
     52#: ../src/repoman.py:120
     53msgid "Update repositories"
     54msgstr ""
     55
     56#: ../src/repoman.py:142
    4957msgid "Default repositories"
    5058msgstr ""
    5159
    52 #: ../src/repoman.py:134
     60#: ../src/repoman.py:149
    5361msgid "External repositories"
    5462msgstr ""
    5563
    56 #: ../src/repoman.py:141
     64#: ../src/repoman.py:156
    5765msgid "Add external repository"
    5866msgstr ""
    5967
    60 #: ../src/repoman.py:150
     68#: ../src/repoman.py:165
    6169msgid ""
    6270"Welcome to RepoMan.\n"
     
    6472msgstr ""
    6573
    66 #: ../src/repoman.py:151
     74#: ../src/repoman.py:166
    6775msgid "Repositories Manager"
    6876msgstr ""
    6977
    70 #: ../src/repoman.py:271
     78#: ../src/repoman.py:278
    7179msgid "Name for the repo"
    7280msgstr ""
    7381
    74 #: ../src/repoman.py:282
     82#: ../src/repoman.py:289
    7583msgid "Description"
    7684msgstr ""
    7785
    78 #: ../src/repoman.py:292
     86#: ../src/repoman.py:299
    7987msgid "Url"
    8088msgstr ""
    8189
    82 #: ../src/repoman.py:322
    83 #, python-format
    84 msgid "%s is yet configured. Overwrite it?"
    85 msgstr ""
    86 
    87 #: ../src/repoman.py:332
     90#: ../src/repoman.py:326
    8891msgid "Name is mandatory"
    8992msgstr ""
    9093
    91 #: ../src/repoman.py:336
     94#: ../src/repoman.py:330
    9295msgid "Name is too long"
    9396msgstr ""
    9497
    95 #: ../src/repoman.py:344
     98#: ../src/repoman.py:338
    9699msgid "Description is too long"
    97100msgstr ""
    98101
    99 #: ../src/repoman.py:350
     102#: ../src/repoman.py:344
    100103msgid "Url is mandatory"
    101104msgstr ""
    102105
    103 #: ../src/repoman.py:363
     106#: ../src/repoman.py:356
     107#, python-format
     108msgid "%s already exists. Overwrite it?"
     109msgstr ""
     110
     111#: ../src/repoman.py:372
    104112#, python-format
    105113msgid "Added repository %s"
    106114msgstr ""
    107115
    108 #: ../src/repoman.py:397 ../src/repoman.py:461
     116#: ../src/repoman.py:407
    109117msgid "Edit sources file"
    110118msgstr ""
    111119
    112 #: ../src/repoman.py:513
     120#: ../src/repoman.py:457
    113121msgid "Repositories updated"
    114122msgstr ""
     
    126134msgstr ""
    127135
     136#: json ../sources.d/recursos_lliurex.json
     137msgid "Lliurex educational resources"
     138msgstr ""
     139
  • repoman/trunk/fuentes/python3-repomanager/repomanager/RepoManager.py

    r7843 r7873  
    5656                                        removerepos=[]
    5757                                        for r in repodata['repos']:
     58                                                r=r.rstrip()
     59                                                print("Removing %s"%r)
    5860                                                if r.startswith('deb '):
    5961                                                        removerepos.append(r)
     
    6466                                else:
    6567                                        name=reponame.replace(' ','_').lower()
     68                                        name=reponame.replace(' ','_')
    6669                                        if name.endswith(".list"):
    6770                                                wrkfile="%s/%s"%(self.sources_dir,name)
     
    9093                                        with open(wrkfile,'w') as fcontent:
    9194                                                for repo in sorted(repos):
     95                                                        repo=repo.strip()
    9296                                                        if not repo.startswith("deb ") and not repo.startswith("deb-src ") and not repo.startswith('#'):
    9397                                                                repo=("deb %s"%repo)
     
    105109                                default_repos=os.listdir(self.available_repos_dir+'/default/')
    106110                                for repo,repodata in data.items():
    107                                         frepo=repo.replace(' ','_').lower()
     111                                        frepo=repo.replace(' ','_')
    108112                                        if not frepo.endswith('.json'):
    109113                                                frepo=frepo+'.json'
    110                                         if frepo in default_repos:
     114                                        if (frepo.lower() in default_repos) or (frepo in default_repos):
    111115                                                wrkdir=self.available_repos_dir+'/default'
    112116                                        else:
     
    191195                        repos={}
    192196                        for frepo in frepos:
     197                                rname=frepo.replace("_"," ")
     198                                rname=rname.replace(".json","")
    193199                                try:
    194200                                        with open(self.available_repos_dir+'/'+frepo,'r') as fcontent:
    195201                                                repos.update(json.load(fcontent))
    196202                                                f_list_name=frepo.replace(".json",".list")
    197                                                 rname=frepo.replace("_"," ")
    198                                                 rname=rname.replace(".json","")
    199203                                                self._debug("Looking for %s/%s"%(self.sources_dir,f_list_name))
    200                                                 if os.path.isfile("%s/%s"%(self.sources_dir,f_list_name)):
    201                                                         repos[rname]['enabled']="true"
    202                                                 else:
    203                                                         repos[rname]['enabled']="false"
     204                                                repos[rname]['enabled']=self._check_flist_content("%s/%s"%(self.sources_dir,f_list_name))
    204205                                except Exception as e:
    205206                                        self._debug("_list_available_repos error %s: %s"%(frepo,e))
     
    210211                        return sort_repos
    211212                #def list_available_repos
     213
     214                def _check_flist_content(self,flist):
     215                        enabled="false"
     216                        if os.path.isfile(flist):
     217                                try:
     218                                        with open(flist,'r') as fcontent:
     219                                                flines=fcontent.readlines()
     220                                except Exception as e:
     221                                        self._debug("_check_flist_content error: %s"%e)
     222                                if flines:
     223                                        for fline in flines:
     224                                                if fline.strip().startswith('deb'):
     225                                                        enabled="true"
     226                                                        break
     227                        return enabled
     228
    212229
    213230                def add_repo(self,name,desc,url):
  • repoman/trunk/fuentes/src/repoman.py

    r7843 r7873  
    2020RSRC_DIR='/usr/share/repoman/rsrc'
    2121#RSRC_DIR='/home/lliurex/trabajo/repoman/rsrc'
    22 JSON_SRC_DIR='/home/lliurex/trabajo/repoman/sources.d'
     22JSON_SRC_DIR='/usr/share/repoman/sources.d'
    2323APT_SRC_DIR='/etc/apt/sources.list.d'
    2424
     
    3535                                                4:_("Repository not found at given Url"),
    3636                                                5:_("Repositories failed to update"),
     37                                                6:_("Mirror not availabe")
    3738                                                }
    3839                self.result={}         
     
    6667                lbl_question=Gtk.Label()
    6768                lbl_question.set_name("NOTIF_LABEL")
     69                lbl_question.set_halign(Gtk.Align.START)
     70                self.rev_question.props.no_show_all=True
    6871                self.rev_question.get_content_area().add(lbl_question)
    69                 self.rev_question.add_button(Gtk.STOCK_CANCEL,Gtk.ResponseType.CANCEL)
    70                 self.rev_question.add_button(Gtk.STOCK_OK,Gtk.ResponseType.OK)
    71                 self.rev_question.props.no_show_all=True
     72                img_cancel=Gtk.Image()
     73                img_cancel.set_from_icon_name(Gtk.STOCK_CANCEL,Gtk.IconSize.BUTTON)
     74                btn_cancel=Gtk.Button()
     75                btn_cancel.add(img_cancel)
     76                btn_cancel.set_halign(Gtk.Align.END)
     77                btn_cancel.props.no_show_all=False
     78                self.rev_question.add_action_widget(btn_cancel,Gtk.ResponseType.CANCEL)
     79                img_ok=Gtk.Image()
     80                img_ok.set_from_icon_name(Gtk.STOCK_OK,Gtk.IconSize.BUTTON)
     81                btn_ok=Gtk.Button()
     82                btn_ok.props.no_show_all=False
     83                btn_ok.set_halign(Gtk.Align.START)
     84                btn_ok.add(img_ok)
     85                self.rev_question.add_action_widget(btn_ok,Gtk.ResponseType.OK)
    7286                self.rev_question.connect('response',self._manage_response)
    7387                vbox.add(self.rev_question)
     
    104118                btn_info=Gtk.Button()
    105119                btn_info.set_name("BLUEBUTTON")
     120                btn_info.set_tooltip_text(_("Update repositories"))
    106121                btn_info.add(img_info)
    107122                spn_info=Gtk.Spinner()
     
    175190                row=0
    176191                for source,sourcedata in self.repos.items():
    177                         sourcebox=Gtk.Box(True,True)
    178                         repobox=Gtk.VBox(True,True)
    179                         repobox.set_margin_left(MARGIN)
    180                         repobox.set_margin_right(MARGIN)
    181                         repobox.set_margin_bottom(MARGIN)
    182                         repobox.set_margin_top(MARGIN)
    183                         lbl_source=Gtk.Label()
    184                         lbl_source.set_line_wrap(True)
    185                         lbl_source.set_lines(-1)
    186                         lbl_source.props.halign=Gtk.Align.START
    187                         lbl_source.set_markup('<span size="larger">%s</span>'%source)
    188                         lbl_source.set_margin_left(MARGIN)
    189                         lbl_source.set_margin_bottom(MARGIN)
    190                         lbl_source.set_margin_top(MARGIN)
    191                         repobox.add(lbl_source)
    192                         lbl_desc=Gtk.Label()
    193                         lbl_desc.set_line_wrap(True)
    194                         lbl_desc.set_lines(-1)
    195                         repodesc=''
     192                        desc=''
    196193                        if sourcedata['desc']:
    197                                 repodesc=_(sourcedata['desc'])
    198                         lbl_desc.set_markup('<span size="medium">%s</span>'%repodesc)
    199                         lbl_desc.props.halign=Gtk.Align.START
    200                         repobox.add(lbl_desc)
    201                         sourcebox.add(repobox)
    202                         componentbox=Gtk.VBox()
    203                         componentbox.props.halign=Gtk.Align.END
    204                         componentbox.set_margin_top(MARGIN/2)
    205                         removedbox=Gtk.VBox()
    206                         removedbox.props.halign=Gtk.Align.END
    207                         removedbox.set_margin_top(MARGIN/2)
    208                         gridcomponent=Gtk.Grid()
    209                         gridcomponent.set_column_homogeneous(True)
    210                         swt_source=Gtk.Switch()
    211                         swt_source.props.halign=Gtk.Align.END
    212                         swt_source.set_margin_right(MARGIN)
    213                         if sourcedata['enabled'].lower()=="true":
    214                                 swt_source.set_active(True)
    215                         swt_source.connect("state_set",self._repo_state_changed,source)
    216                         gridbox.attach(swt_source,3,row,1,1)
    217                         sourcebox.set_name("MENUITEM")
    218                         sourcebox.set_margin_right(MARGIN)
    219                         sourcebox.set_margin_left(MARGIN)
    220                         gridbox.attach(sourcebox,0,row,1,1)
    221                         row+=1
    222                         gridbox.attach_next_to(Gtk.Separator(),sourcebox,Gtk.PositionType.BOTTOM,4,1)
     194                                desc=_(sourcedata['desc'])
     195                        self._insert_sourceslist_item(gridbox,source,desc,'',sourcedata['enabled'],row)
    223196                        row+=1
    224197                gridbox.set_margin_top(MARGIN)
     
    231204                state=args[-2]
    232205                widget=args[0]
    233                 self.repos[reponame].update({'enabled':str(state)})
    234                 repo={}
    235                 repo={reponame:self.repos[reponame]}
    236                 self._debug("New state: %s"%repo)
    237206                err=0
    238                 self._debug("Saving repo json: %s"%repo)
    239                 if self.sources.write_repo_json(repo):
    240                         if self.sources.write_repo(repo)!=True:
    241                                 err=3
    242                 else:
    243                         err=2
     207                if reponame.lower()=="lliurex mirror":
     208                        ret=subprocess.run(["lliurex-version","-m"],universal_newlines=True,stdout=subprocess.PIPE)
     209                        if ret.stdout.strip()=="False":
     210                                err=6
     211                if err==0:
     212                        self.repos[reponame].update({'enabled':str(state)})
     213                        repo={}
     214                        repo={reponame:self.repos[reponame]}
     215                        self._debug("New state: %s"%repo)
     216                        self._debug("Saving repo json: %s"%repo)
     217                        if self.sources.write_repo_json(repo):
     218                                if self.sources.write_repo(repo)!=True:
     219                                        err=3
     220                        else:
     221                                err=2
    244222                if err:
    245223                        self.stack.set_sensitive(False)
     
    251229                        self.box_info.show_all()
    252230        #def _repo_state_changed
     231
     232        def _render_repolist(self):
     233                scrollbox=Gtk.ScrolledWindow()
     234                scrollbox.set_min_content_height(280)
     235                scrollbox.set_min_content_width(280)
     236                self.repobox=Gtk.Grid()
     237                self.repobox.set_hexpand(True)
     238                self.repobox.set_row_spacing(MARGIN)
     239                self.repobox.set_margin_left(MARGIN)
     240                self.repobox.set_margin_right(MARGIN)
     241                self.repobox.set_margin_top(MARGIN)
     242                self.repobox.set_row_spacing(0)
     243                self.repobox.set_name("WHITE_BACKGROUND")
     244                sourcefiles=self.sources.list_sources()
     245                self.repos.update(sourcefiles)
     246                row=0
     247                for sourcefile,sourcedata in sourcefiles.items():
     248                        desc=''
     249                        if sourcedata['desc']:
     250                                desc=_(sourcedata['desc'])
     251                        edit=True
     252                        if 'protected' in sourcedata.keys():
     253                                if sourcedata['protected'].lower()=='true':
     254                                        edit=False
     255                        self._insert_sourceslist_item(self.repobox,sourcefile,desc,'',sourcedata['enabled'],row,edit)
     256                        row+=1
     257                scrollbox.add(self.repobox)
     258                return scrollbox
     259        #def _render_repolist
    253260
    254261        def _render_newrepo(self):
     
    312319                desc=args[-2].get_text()
    313320                url=args[-1].get_text()
    314                 if os.path.isfile('%s/%s.json'%(JSON_SRC_DIR,name.replace(' ','_'))):
    315                         self.result.pop('response',None)
    316                         try:
    317                                 self.rev_question.disconnect_by_func(self._manage_response)
    318                         except:
    319                                 pass
    320                         self.rev_question.grab_add()
    321                         self.rev_question.connect('response',self._manage_response,"self._add_repo",args)
    322                         self.show_question(_("%s is yet configured. Overwrite it?"%name))
    323                 else:
    324                         self._add_repo(*args)
    325 
    326         def _add_repo(self,*args):
    327321                sw_err=False
    328322                name=args[-3].get_text()
     
    352346                        sw_err=True
    353347                if not sw_err:
    354                         sw_cancel=False
    355                         if sw_cancel:
    356                                 result=None
     348                        if os.path.isfile('%s/%s.json'%(JSON_SRC_DIR,name.replace(' ','_'))):
     349                                self.result.pop('response',None)
     350                                try:
     351                                        self.rev_question.disconnect_by_func(self._manage_response)
     352                                except:
     353                                        pass
     354                                self.rev_question.grab_add()
     355                                self.rev_question.connect('response',self._manage_response,self._add_repo,*args)
     356                                self.show_question(_("%s already exists. Overwrite it?"%name))
    357357                        else:
    358                                 self.stack.set_sensitive(False)
    359                                 self.toolbar.set_sensitive(False)
    360                                 err=self.sources.add_repo(name,desc,url)
    361                         if err==0:
    362                                 self._insert_sourceslist_item(name,desc,url)
    363                                 GLib.timeout_add(2000,self.show_info,(_("Added repository %s"%name)))
    364                         else:
    365                                 #err=1 -> Bad url
    366                                 #err=2 -> Can't write json
    367                                 #err=3 -> Can't write sources
    368                                 #err=4 -> Repository not found at given url
    369                                 GLib.timeout_add(3000,self.show_info,(self.err_msg[err]),"ERROR_LABEL")
     358                                self._add_repo(*args)
     359
     360        def _add_repo(self,*args):
     361                name=args[-3].get_text()
     362                desc=args[-2].get_text()
     363                url=args[-1].get_text()
     364                self.stack.set_sensitive(False)
     365                self.toolbar.set_sensitive(False)
     366                err=self.sources.add_repo(name,desc,url)
     367                if err==0:
     368                        row=(len(self.repos.keys())*2)
     369                        sourcefiles=self.sources.list_sources()
     370                        self.repos.update(sourcefiles)
     371                        self._insert_sourceslist_item(self.repobox,name,desc,url,'true',"false",row,True)
     372                        GLib.timeout_add(2000,self.show_info,(_("Added repository %s"%name)),"NOTIF_LABEL",True)
     373                else:
     374                        #err=1 -> Bad url
     375                        #err=2 -> Can't write json
     376                        #err=3 -> Can't write sources
     377                        #err=4 -> Repository not found at given url
     378                        GLib.timeout_add(3000,self.show_info,(self.err_msg[err]),"ERROR_LABEL")
    370379        #def _add_repo
    371380
    372         def _insert_sourceslist_item(self,name,desc,url):
    373                 index=len(self.repos.keys())*2
    374                 sourcefiles=self.sources.list_sources()
    375                 self.repos.update(sourcefiles)
     381        def _insert_sourceslist_item(self,sourcebox,name,desc,url,enabled='false',index=0,edit=False):
     382                index*=2
    376383                repobox=Gtk.VBox(True,True)
    377384                repobox.set_margin_left(MARGIN)
     
    386393                lbl_source.set_margin_bottom(MARGIN)
    387394                lbl_source.set_margin_top(MARGIN)
     395                lbl_source.props.halign=Gtk.Align.START
    388396                repobox.add(lbl_source)
    389397                lbl_desc=Gtk.Label()
     398                lbl_desc.set_ellipsize(3)
    390399                lbl_desc.set_markup('<span size="medium">%s</span>'%desc)
     400                lbl_desc.set_tooltip_text('%s'%desc)
    391401                lbl_desc.set_halign(Gtk.Align.START)
    392                 lbl_desc.set_hexpand(True)
    393402                repobox.add(lbl_desc)
    394                 img_edit=Gtk.Image.new_from_icon_name(Gtk.STOCK_EDIT,Gtk.IconSize.BUTTON)
    395                 btn_edit=Gtk.Button()
    396                 btn_edit.add(img_edit)
    397                 btn_edit.set_tooltip_text(_("Edit sources file"))
    398                 btn_edit.set_valign(Gtk.Align.CENTER)
    399                 btn_edit.connect("clicked",self._edit_source_file,name)
     403                if edit:
     404                        img_edit=Gtk.Image.new_from_icon_name(Gtk.STOCK_EDIT,Gtk.IconSize.BUTTON)
     405                        btn_edit=Gtk.Button()
     406                        btn_edit.add(img_edit)
     407                        btn_edit.set_tooltip_text(_("Edit sources file"))
     408                        btn_edit.set_valign(Gtk.Align.CENTER)
     409                        btn_edit.connect("clicked",self._edit_source_file,name)
     410                        sourcebox.attach(btn_edit,1,index,1,1)
    400411                swt_repo=Gtk.Switch()
    401412                swt_repo.set_halign(Gtk.Align.END)
    402                 swt_repo.set_active(True)
     413                if enabled.lower()=="true":
     414                        swt_repo.set_active(True)
     415                else:
     416                        swt_repo.set_active(False)
    403417                swt_repo.connect("state_set",self._repo_state_changed,name)
    404                 self.repobox.attach(repobox,0,index,1,1)
    405                 self.repobox.attach(btn_edit,1,index,1,1)
    406                 self.repobox.attach(swt_repo,2,index,1,1)
    407                 self.repobox.attach(Gtk.Separator(),0,index+1,1,1)
    408                 self.repobox.show_all()
     418                sourcebox.attach(repobox,0,index,1,1)
     419                sourcebox.attach(swt_repo,2,index,1,1)
     420                sourcebox.attach(Gtk.Separator(),0,index+1,1,1)
     421                sourcebox.show_all()
    409422        #def _insert_sourceslist_item
    410 
    411         def _render_repolist(self):
    412                 scrollbox=Gtk.ScrolledWindow()
    413                 scrollbox.set_min_content_height(280)
    414                 scrollbox.set_min_content_width(280)
    415                 self.repobox=Gtk.Grid()
    416                 self.repobox.set_hexpand(True)
    417                 self.repobox.set_row_spacing(MARGIN)
    418                 self.repobox.set_margin_left(MARGIN)
    419                 self.repobox.set_margin_right(MARGIN)
    420                 self.repobox.set_margin_top(MARGIN)
    421                 self.repobox.set_row_spacing(0)
    422                 self.repobox.set_name("WHITE_BACKGROUND")
    423                 sourcefiles=self.sources.list_sources()
    424                 self.repos.update(sourcefiles)
    425                 cont=0
    426                 for sourcefile,sourcedata in sourcefiles.items():
    427                         repobox=Gtk.VBox(True,True)
    428                         repobox.set_margin_left(MARGIN)
    429                         repobox.set_margin_right(MARGIN)
    430                         repobox.set_margin_bottom(MARGIN)
    431                         repobox.set_margin_top(MARGIN)
    432                         lbl_source=Gtk.Label()
    433                         lbl_source.set_line_wrap(True)
    434                         lbl_source.set_lines(-1)
    435                         lbl_source.set_single_line_mode(False)
    436                         lbl_source.set_max_width_chars(30)
    437                         lbl_source.set_width_chars(30)
    438                         lbl_source.set_markup('<span size="larger">%s</span>'%sourcefile)
    439                         lbl_source.set_halign(Gtk.Align.START)
    440                         lbl_source.set_hexpand(True)
    441                         lbl_source.set_margin_left(MARGIN)
    442                         lbl_source.set_margin_bottom(MARGIN)
    443                         lbl_source.set_margin_top(MARGIN)
    444                         repobox.add(lbl_source)
    445                         lbl_desc=Gtk.Label()
    446                         lbl_desc.set_line_wrap(True)
    447                         lbl_desc.set_lines(-1)
    448                         lbl_desc.set_max_width_chars(30)
    449                         lbl_desc.set_width_chars(30)
    450                         lbl_desc.set_ellipsize(3)
    451                         repodesc=''
    452                         if sourcedata['desc']:
    453                                 repodesc=_(sourcedata['desc'])
    454                         lbl_desc.set_tooltip_text(repodesc)
    455                         lbl_desc.set_markup('<span size="medium">%s</span>'%repodesc)
    456                         lbl_desc.set_halign(Gtk.Align.START)
    457                         lbl_desc.set_hexpand(True)
    458                         repobox.add(lbl_desc)
    459                         img_edit=Gtk.Image.new_from_icon_name(Gtk.STOCK_EDIT,Gtk.IconSize.BUTTON)
    460                         btn_edit=Gtk.Button()
    461                         btn_edit.set_tooltip_text(_("Edit sources file"))
    462                         btn_edit.add(img_edit)
    463                         btn_edit.set_valign(Gtk.Align.CENTER)
    464                         btn_edit.connect("clicked",self._edit_source_file,sourcefile)
    465                         swt_repo=Gtk.Switch()
    466                         swt_repo.set_halign(Gtk.Align.END)
    467                         if sourcedata['enabled'].lower()=="true":
    468                                 swt_repo.set_active(True)
    469                         swt_repo.connect("state_set",self._repo_state_changed,sourcefile)
    470                         self.repobox.attach(repobox,0,cont,1,1)
    471                         self.repobox.attach(btn_edit,1,cont,1,1)
    472                         self.repobox.attach(swt_repo,2,cont,1,1)
    473                         cont+=1
    474                         self.repobox.attach(Gtk.Separator(),0,cont,1,1)
    475                         cont+=1
    476                 scrollbox.add(self.repobox)
    477                 return scrollbox
    478         #def _render_repolist
    479423
    480424        def _load_screen(self,*args):
     
    539483        #def _edit_source_file
    540484
    541         def show_info(self,msg='',style="NOTIF_LABEL"):
     485        def show_info(self,msg='',style="NOTIF_LABEL",show_info=False):
    542486                if self.rev_info.get_reveal_child():
    543487                        self.rev_info.set_reveal_child(False)
    544488                        self.stack.set_sensitive(True)
    545489                        self.toolbar.set_sensitive(True)
     490                        if show_info:
     491                                self.box_info.show_all()
    546492                        return False
    547493                lbl=None
     
    558504        def show_question(self,msg='',style="NOTIF_LABEL"):
    559505                self.rev_question.grab_add()
    560                 childbox=self.rev_question.get_content_area()
    561                 lbl=''
    562                 for child in childbox:
     506                for child in self.rev_question.get_content_area():
    563507                        if type(child)==type(Gtk.Label()):
    564508                                lbl=child
    565                 lbl.set_name(style)
     509                for child in self.rev_question.get_action_area():
     510                        if type(child)==type(Gtk.Button()):
     511                                child.show_all()
     512
    566513                lbl.set_markup(msg)
     514                lbl.show()
    567515                self.rev_question.show()
    568         #def show_info
     516        #def show_question
    569517
    570518        def _manage_response(self,*args):
    571                 print(args)
     519                self.rev_question.grab_remove()
    572520                response=args[1]
    573521                self.rev_question.hide()
    574522                if response==Gtk.ResponseType.OK:
    575                         eval("%s(%s,%s,%s)"%(args[2],args[-3],args[-2],args[-1]))
     523                        args[2](args[-3],args[-2],args[-1])
    576524                else:
    577525                        return False
     
    594542                GtkLabel {
    595543                        font-family: Roboto;
    596                         color:black;
    597544                }
    598545
Note: See TracChangeset for help on using the changeset viewer.