Ignore:
Timestamp:
Mar 9, 2017, 12:27:42 PM (3 years ago)
Author:
jrpelegrina
Message:

WIP in gui

File:
1 edited

Legend:

Unmodified
Added
Removed
  • lliurex-gdrive/trunk/fuentes/lliurex-gdrive-gui.install/usr/share/lliurex-gdrive/ProfileBox.py

    r3838 r3845  
    1515import psutil
    1616
    17 _=gettext.gettext
     17import gettext
     18gettext.textdomain('lliurex-gdrive')
     19_ = gettext.gettext
     20
    1821
    1922
     
    2528EDIT_IMAGE=RSRC+"rsrc/edit.svg"
    2629DELETE_IMAGE=RSRC+"rsrc/trash.svg"
    27 MAX_RETRY_INTENTS=90000
     30MAX_RETRY_INTENTS=900
    2831
    2932class ProfileBox(Gtk.VBox):
     
    4447                self.profile_list_vp=builder.get_object("profile_list_viewport")
    4548                self.msg_label=builder.get_object("msg_label")
     49
     50                image = Gtk.Image()
     51                image.set_from_stock(Gtk.STOCK_ADD,Gtk.IconSize.MENU)
    4652                self.add_new_profile_button=builder.get_object("add_new_profile_button")
     53                self.add_new_profile_button.set_image(image)
    4754                self.new_profile_window=builder.get_object("new_profile_window")
    4855                self.profile_label=builder.get_object("profile_label")
     
    5562                self.automount_entry=builder.get_object("automount_entry")
    5663                self.profile_msg=builder.get_object("profile_msg")
    57                 self.profile_pbar_label=builder.get_object("profile_pbar_label")
    5864                self.profile_pbar=builder.get_object("profile_pbar")
    5965                self.accept_add_profile_button=builder.get_object("accept_add_profile_button")
     
    6874                self.edition=False
    6975                self.profile_pbar.hide()
    70                 self.profile_pbar_label.hide()
    7176
    7277                self.init_threads()
     
    114119                self.mountpoint_label.set_name("OPTION_LABEL")
    115120                self.automount_label.set_name("OPTION_LABEL")
    116                 self.msg_label.set_name("OPTION_LABEL")
     121                self.msg_label.set_name("MSG_LABEL")
     122                self.profile_msg.set_name("MSG_LABEL")
     123
    117124               
    118125               
     
    165172                self.init_threads()
    166173               
    167                 self.profile_msg.set_text("")
     174                self.msg_label.hide()
     175                self.profile_msg.hide()
    168176                self.profile_pbar.hide()
    169177                self.new_profile_window.show()
     
    173181        def delete_profile_clicked(self,button,hbox):
    174182
     183                self.msg_label.hide()
    175184                profile=hbox.get_children()[1].get_text().split("\n")[0]
    176185                self.profiles_info.pop(profile)
    177186
    178                 self.core.LliurexGoogleDriveManager.delete_profile(self.profiles_info,profile)
    179                 self.profile_list_box.remove(hbox)
     187                self.profile_msg.set_name("MSG_LABEL")
     188                delete=self.core.LliurexGoogleDriveManager.delete_profile(self.profiles_info,profile)
     189                self.msg_label.show()
     190
     191                if delete:
     192                        self.msg_label.set_text(_("Changes applied successfully"))
     193                        self.profile_list_box.remove(hbox)
     194                else:
     195                        self.msg_label.set_name("MSG_ERROR_LABEl")
     196                        self.msg_label.set_text(_("An error ocurred applying changes. See log file for more information"))
     197
    180198                self.profiles_info=self.core.LliurexGoogleDriveManager.profiles_config.copy()
    181199
     
    186204        def sync_profile_clicked(self,button,hbox):
    187205
     206                self.msg_label.hide()
    188207                profile=hbox.get_children()[1].get_text().split("\n")[0]
    189208                mountpoint=hbox.get_children()[3].get_text()
    190209
    191                 status=self.core.LliurexGoogleDriveManager.sync_profile(profile,mountpoint)
    192 
    193                 if status:
    194                         mount_image=Gtk.Image.new_from_file(MOUNT_ON_IMAGE)
    195                         button.set_tooltip_text(_("Dismount profile"))
     210
     211                status_mod=self.core.LliurexGoogleDriveManager.sync_profile(profile,mountpoint)
     212                self.msg_label.show()
     213                self.profile_msg.set_name("MSG_LABEL")
     214
     215                if status_mod["result"]:
     216                        if status_mod["action"]=="Mount":
     217                                mount_image=Gtk.Image.new_from_file(MOUNT_ON_IMAGE)
     218                                button.set_tooltip_text(_("Dismount profile"))
     219                        else:
     220                                mount_image=Gtk.Image.new_from_file(MOUNT_OFF_IMAGE)
     221                                button.set_tooltip_text(_("Mount profile"))
     222
     223                        self.msg_label.set_text(_("Changes applied successfully"))
     224       
     225                                               
    196226                else:
    197                         mount_image=Gtk.Image.new_from_file(MOUNT_OFF_IMAGE)
    198                         button.set_tooltip_text(_("Mount profile"))
     227                        self.msg_label.set_name("MSG_ERROR_LABEl")
     228                        self.msg_label.set_text(_("An error ocurred applying changes. See log file for more information"))
    199229       
    200230                hbox.get_children()[4].set_image(mount_image)
     
    221251                self.profile_msg.set_text("")
    222252                self.profile_pbar.hide()
     253                self.msg_label.hide()
    223254                self.new_profile_window.show() 
    224255
     
    296327        def accept_add_profile_clicked(self,widget):
    297328
    298 
     329               
    299330                profile=self.profile_entry.get_text()
    300331                self.new_profile=profile.strip(" ")
     
    309340                self.profiles_info[self.new_profile]["automount"]=self.new_automount
    310341
    311                 if self.core.LliurexGoogleDriveManager.check_profile_info(self.new_profile,self.new_mountpoint,self.edition):
    312 
     342                check_form=self.check_profile_info()
     343                self.profile_msg.show()
     344
     345                if check_form["result"]:
    313346                        if not self.edition:
    314347                                if not self.create_profile_t.launched:
    315                                         self.profile_msg.set_text(_("Now a browser window will be open to grant permison\n.When a google-appear close a browser"))
     348                                        self.profile_msg.set_name("MSG_LABEL")
     349                                        self.profile_msg.set_text(_("Connecting with google to get account access..."))
    316350                                        self.profile_pbar.show()
    317351                                        self.retry=0
     
    321355                        else:
    322356                                if not self.edit_profile_t.launched:
     357                                        self.profile_msg.set_text(_("Apply changes"))
     358                                        self.profile_pbar.show()
    323359                                        GLib.timeout_add(100,self.pulsate_edit_profile)
    324360                else:
    325                         self.profile_msg.set_text(_("Error in entry form"))                             
     361                        self.profile_msg.set_name("MSG_ERROR_LABEL")
     362                        self.profile_msg.set_text(check_form["msg"])                           
    326363                               
    327364               
    328365       
    329         #def accept_add_profile_clickedef       
     366        #def accept_add_profile_clicked
     367
     368        def check_profile_info(self):
     369
     370                msg_check=""
     371
     372                check_form=self.core.LliurexGoogleDriveManager.check_profile_info(self.new_profile,self.new_mountpoint,self.edition)
     373
     374                if not check_form["result"]:
     375                        if check_form["code"]==1:
     376                                msg_check=_("You must indicate a profile")
     377
     378                        else:
     379                                if check_form["code"]==2:
     380                                        msg_check=_("Profile already exists")
     381                                else:
     382                                        msg_check=_("Mounting point already used by another profile")   
     383
     384
     385                return {"result":check_form["result"],"msg":msg_check}
     386
     387        #def check_profile_info
    330388
    331389        def pulsate_add_profile(self):
     
    335393               
    336394                if not self.create_profile_t.launched:
     395                        self.accept_add_profile_button.hide()
     396                        self.cancel_add_profile_button.hide()
     397               
    337398                        self.create_profile_t.start()
    338399                        self.create_profile_t.launched=True
     
    340401                if not self.create_profile_t.is_alive():
    341402                        if not self.create_mountpoint_t.launched:
     403                                self.profile_msg.set_text(_("Creating profile... "))
    342404                                self.create_mountpoint_t.start()
    343405                                self.create_mountpoint_t.launched=True
    344406
    345407                        if self.create_mountpoint_t.done:
    346                                 if self.create_result["result"]:
     408                                self.profile_pbar.hide()
     409                                if self.create_result:
    347410                                                self.new_profile_button(self.new_profile,self.new_email,self.new_mountpoint)
    348411                                                self.profiles_info=self.core.LliurexGoogleDriveManager.profiles_config.copy()   
    349                                                 self.new_profile_window.hide() 
     412                                                self.profile_msg.set_text(_("Profile created successfully"))
     413
     414                                                image = Gtk.Image()
     415                                                image.set_from_stock(Gtk.STOCK_CLOSE,Gtk.IconSize.MENU)
     416                                                self.cancel_add_profile_button.set_image(image)
     417                                                self.cancel_add_profile_button.set_label(_("Close"))   
     418                                                self.cancel_add_profile_button.show()
    350419                                else:
    351                                         self.profile_pbar.hide()
    352                                         self.profile_msg.set_text(_("An error ocurrend creating profile:" + str(self.create_result["msg"])))
    353 
    354                                 return False
     420                                       
     421                                        self.profile_msg.set_name("MSG_ERROR_LABEL")
     422                                        self.profile_msg.set_text(_("An error ocurred creating profile. See log file for more information"))
     423                                        self.cancel_add_profile_button.show()
     424                                       
     425                               
     426                                return False   
    355427                                               
    356428                if self.create_profile_t.launched:
    357429                        if self.create_profile_t.is_alive():
    358                                 if self.retry>MAX_RETRY_INTENTS:
    359                                         parent=psutil.Process(self.create_profile_t.pid)
    360                                         for child in parent.children(recursive=True):
    361                                                 child.kill()
    362                                         self.create_profile_t.terminate()       
    363                                         return True
    364                                 else:   
    365                                         return True
    366                                        
     430                                self.kill_create_profile()
     431                                return True     
     432                               
     433
    367434                if self.create_mountpoint_t.launched:
    368435                        if not self.create_mountpoint_t.done:
    369436                                return True                                     
    370437
     438        def kill_create_profile(self):
     439       
     440                if self.retry>MAX_RETRY_INTENTS:
     441                        parent=psutil.Process(self.create_profile_t.pid)
     442                        for child in parent.children(recursive=True):
     443                                child.kill()
     444                                self.create_profile_t.terminate()
     445                                self.profile_msg.set_text(_("Error getting authorization"))
     446
     447                        return True     
     448
     449
    371450        def create_profile(self):
    372451                result=self.core.LliurexGoogleDriveManager.create_profile(self.new_profile)
     
    386465                        self.edit_profile_t.start()
    387466                        self.edit_profile_t.launched=True
     467                        self.accept_add_profile_button.hide()
     468                        self.cancel_add_profile_button.hide()
    388469
    389470                if self.edit_profile_t.done:
    390                         print self.edit_result
    391                         if self.edit_result["result"]:
     471                        self.profile_pbar.hide()
     472                        if self.edit_result:
    392473                                self.profile_to_edit.get_children()[3].set_text(self.new_mountpoint)
    393474                                self.profiles_info=self.core.LliurexGoogleDriveManager.profiles_config.copy()   
    394                                 self.new_profile_window.hide() 
    395                                 return False
    396                                                
    397 
     475                                self.profile_msg.set_text(_("Changes applied successfully"))
     476                                image = Gtk.Image()
     477                                image.set_from_stock(Gtk.STOCK_CLOSE,Gtk.IconSize.MENU)
     478                                self.cancel_add_profile_button.set_image(image)
     479                                self.cancel_add_profile_button.set_label(_("Close"))   
     480                                self.cancel_add_profile_button.show()   
     481                       
     482                        else:
     483                                self.profile_msg.set_name("MSG_ERROR_LABEL")
     484                                self.profile_msg.set_text(_("An error ocurred applying changes. See log file for more information"))
     485                                self.cancel_add_profile_button.show()
     486                        return False
     487                       
    398488
    399489                if self.edit_profile_t.launched:
Note: See TracChangeset for help on using the changeset viewer.