Changeset 8487


Ignore:
Timestamp:
Mar 15, 2019, 1:57:01 PM (8 days ago)
Author:
daduve
Message:

Adding install/delete kernel with check/uncheck

File:
1 edited

Legend:

Unmodified
Added
Removed
  • first-aid-kit/trunk/fuentes/first-aid-kit.install/usr/share/first-aid-kit/KernelBox.py

    r8484 r8487  
    9292                        self.kernel_filter=''
    9393
    94                         self.load_kernels()
     94                        self.flag_installed=False
    9595                        self.connect_signals()
    9696                        self.set_css_info()
     97                        self.load_kernels()
    9798
    9899                       
     
    312313                                                                if  not 'i386' in str(i):
    313314                                                                        if self.cache[str(i)].is_installed:
    314                                                                                 self.installed.append((version,str(i)))
     315                                                                                self.installed.append(version)
    315316                                                                                self.avaiable.append((version,str(i),True))
    316317                                                                                #print ('%s is installed'%version)
     
    322323                                                                if 'i386' in str(i):
    323324                                                                        if self.cache[str(i)].is_installed:
    324                                                                                 self.installed.append((version,str(i)))
     325                                                                                self.installed.append(version)
    325326                                                                                self.avaiable.append((version,str(i),True))
    326327                                                                                #print ('%s is installed'%version)
     
    377378                                hbox.checkbutton=cb
    378379                                hbox.label=label.get_text()
     380                                hbox.data=kernel
    379381                                if kernel[2]:
    380382                                        hbox.checkbutton.set_active(True)
     
    398400                        self.apply_kernel_button.set_sensitive(True)
    399401                        self.entry_kernel.set_can_focus(True)
    400                         self.info_box_stack.set_visible_child_name("empty_box_kernel")
     402                       
     403                        if not self.flag_installed:
     404                                self.info_box_stack.set_visible_child_name("empty_box_kernel")
     405                        else:
     406                                self.info_box_stack.set_visible_child_name("info_kernel")
     407                                self.txt_check_kernel.set_text(_("INSTALLED!! Your new kernel list:\n%s"%self.installed))
     408                                self.flag_installed=False
    401409
    402410                except Exception as e:
     
    419427                        self.filter_kernels_button.set_sensitive(False)
    420428                        self.apply_kernel_button.set_sensitive(False)
     429                        self.kernel_label_selected=[]
    421430                        self.kernel_selected=[]
     431                        self.kernel_label_delete=[]
     432                        self.kernel_delete=[]
     433                        flag_install=False
    422434                        for item in self.kernel_list_box:
    423435                                if type(item) == Gtk.HBox:
    424436                                        if item.checkbutton.get_active():
    425                                                 flag_installed=False
    426                                                 for inst in self.installed:
    427                                                         #print 'Comparando label: %s *** inst: %s'%(item.label,inst[0])
    428                                                         if item.label==inst[0]:
    429                                                                 flag_installed=True
    430 
    431                                                 if not flag_installed:
    432                                                         #print('Adding to install %s'%item.label)
    433                                                         self.kernel_selected.append(item.label)
    434                                                                
    435 
    436                         mw=self.core.lri.main_window
    437                         d=Dialog.QuestionDialog(mw,"First Aid Kit","Do you want to install this kernel list?\n%s"%self.kernel_selected)
    438                         response=d.run()
    439                         d.destroy()
    440 
    441                         if response== Gtk.ResponseType.OK:
    442                                 self.info_box_stack.set_visible_child_name("info_kernel")
    443                                 self.txt_check_kernel.set_text(_("Kernels installed: %s"%self.kernel_selected))
    444                                 self.core.dprint("Kernels installed: %s"%self.kernel_selected)
    445                                 #spinner
    446                                 #install
    447                                 #update_cache
    448                                 #load_kernels
    449                                 #panel_kernels
     437                                                if not (item.data[2]):
     438                                                        self.kernel_label_selected.append(item.label)
     439                                                        self.kernel_selected.append(item.data)
     440                                                        flag_install=True
     441
     442                                        else:
     443                                                if (item.data[2]):
     444                                                        #Aqui guardare los Kernels que deben borrarse
     445                                                        self.kernel_delete.append(item.data)
     446                                                        self.kernel_label_delete.append(item.label)
     447                                                        flag_install=True
     448
     449                        if flag_install:
     450                                mw=self.core.lri.main_window
     451                                d=Dialog.QuestionDialog(mw,"First Aid Kit","Do you want to INSTALL this kernel list?\n%s\nDo you want to DELETE this kernel list?\n%s"%(self.kernel_label_selected,self.kernel_label_delete))
     452                                response=d.run()
     453                                d.destroy()
     454                                if response== Gtk.ResponseType.OK:
     455                                        self.info_box_stack.set_visible_child_name("info_kernel")
     456                                        self.kernel_install()
     457                                       
     458                                else:
     459                                        self.info_box_stack.set_visible_child_name("info_kernel")
     460                                        self.txt_check_kernel.set_text(_("You cancel to install kernels"))
     461                                        self.core.dprint("You cancel to install kernels")
     462                                        self.update_kernels_button.set_sensitive(True)
     463                                        self.filter_kernels_button.set_sensitive(True)
     464                                        self.apply_kernel_button.set_sensitive(True)
     465                                        self.entry_kernel.set_can_focus(True)
    450466                        else:
    451                                 self.info_box_stack.set_visible_child_name("info_kernel")
    452                                 self.txt_check_kernel.set_text(_("You cancel to install kernels"))
    453                                 self.core.dprint("You cancel to install kernels")
    454 
    455                         self.update_kernels_button.set_sensitive(True)
    456                         self.filter_kernels_button.set_sensitive(True)
    457                         self.apply_kernel_button.set_sensitive(True)
    458                         self.entry_kernel.set_can_focus(True)
    459 
    460                        
     467                                mw=self.core.lri.main_window
     468                                d=Dialog.InfoDialog(mw,"First Aid Kit","Sorry but you don have programmed any action\please select/unselect one kernel")
     469                                d.run()
     470                                d.destroy()
     471                                self.update_kernels_button.set_sensitive(True)
     472                                self.filter_kernels_button.set_sensitive(True)
     473                                self.apply_kernel_button.set_sensitive(True)
     474                                self.entry_kernel.set_can_focus(True)
     475               
    461476
    462477                except Exception as e:
     
    465480
    466481        #def get_checked_kernesl
    467 
     482       
     483       
     484       
     485       
     486        def kernel_install(self):
     487                try:
     488                        for app in self.kernel_selected:
     489                                pkg=self.cache[app[1]]
     490                                pkg.mark_install()
     491                               
     492                        for app in self.kernel_delete:
     493                                pkg=self.cache[app[1]]
     494                                pkg.mark_delete()
     495                       
     496                        self.info_box_stack.set_visible_child_name("info_kernel")
     497                        self.txt_check_kernel.set_text(_("Installing: %s\nDeleting: %s\nPlease wait........"%(self.kernel_label_selected,self.kernel_label_delete)))
     498                        self.core.dprint("Installing: %s\n[CORE] Deleting: %s\nPlease wait........"%(self.kernel_label_selected,self.kernel_label_delete))
     499                       
     500                        self.thread_install=threading.Thread(target=self.kernel_install_thread)
     501                        self.thread_install.daemon=True
     502                        self.thread_install.start()
     503
     504                        GLib.timeout_add(500,self.check_kernel_install_thread)
     505                       
     506                       
     507                except Exception as e:
     508                        self.core.dprint("Error in kernel_install: %s"%e)
     509               
     510        #def kernel_install
     511       
     512       
     513        def kernel_install_thread(self):
     514
     515                try:
     516                        self.cache.commit()
     517                        #time.sleep(3) 
     518                except Exception as e:
     519                        self.core.dprint("Error in kernel_install_thread: %s"%e)       
     520
     521        #def kernel_install_thread
     522
     523
     524
     525        def check_kernel_install_thread(self):
     526               
     527                try:
     528                        if self.thread_install.is_alive():
     529                                return True
     530                               
     531                        self.flag_installed=True
     532                        self.load_kernels()
     533                        self.core.dprint("Finished!!")
     534
     535                except Exception as e:
     536                        self.core.dprint("Error in check_kernel_install_thread: %s"%e)
     537
     538        #def check_kernel_install_thread
     539       
     540       
     541       
     542       
     543       
     544
Note: See TracChangeset for help on using the changeset viewer.