Changeset 4031


Ignore:
Timestamp:
Mar 24, 2017, 11:23:39 AM (2 years ago)
Author:
jrpelegrina
Message:

WIP in check connection. Edit and Sync Profile gui

Location:
lliurex-gdrive/trunk/fuentes
Files:
4 edited

Legend:

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

    r4021 r4031  
    1010import os
    1111import json
     12import sys
    1213import Core
    1314
     
    6869                self.main_box=builder.get_object("main_box")
    6970                self.exit_button=builder.get_object("exit_button")
     71                self.check_window=builder.get_object("check_window")
     72                self.check_pbar=builder.get_object("check_pbar")
     73                self.check_plabel=builder.get_object("check_plabel")
     74                self.check_window.set_transient_for(self.main_window)
     75
     76
    7077                self.indicator_label=builder.get_object("indicator_label")
    7178                self.indicator_switch=builder.get_object("indicator_switch")
     
    7380                        self.indicator_switch.set_active(False)
    7481                               
     82
    7583                self.profile_box=self.core.profile_box
    7684                self.main_box.add(self.profile_box)
     
    105113                self.main_window.set_name("WINDOW")
    106114                self.indicator_label.set_name("OPTION_LABEL")
     115                self.check_plabel.set_name("MSG_LABEL")
    107116
    108117                               
  • lliurex-gdrive/trunk/fuentes/lliurex-gdrive-gui.install/usr/share/lliurex-gdrive/ProfileBox.py

    r4030 r4031  
    7575                self.cancel_add_profile_button=builder.get_object("cancel_add_profile_button")
    7676               
    77                
    78                
     77                               
    7978                self.pack_start(self.main_box,True,True,0)
    8079                self.connect_signals()
     
    9796                self.edit_profile_t=threading.Thread(target=self.edit_profile)
    9897                #self.delete_profile_t=threading.Thread(target=self.delete_profile)
    99 
     98                self.check_connection_t=threading.Thread(target=self.check_connection)
     99               
    100100               
    101101                self.create_profile_t.daemon=True
     
    103103                self.edit_profile_t.daemon=True
    104104                #self.delete_profile_t.daemon=True
     105                self.check_connection_t.daemon=True
    105106
    106107                self.create_mountpoint_t.done=False
     
    149150        def check_initial_connection(self):
    150151               
    151                 self.initial_connection=self.LliurexGoogleDriveManager.check_google_connection()
     152                self.initial_connection=self.core.LliurexGoogleDriveManager.check_google_connection()
    152153                return
    153154       
     
    259260                        self.delete_profile_t=threading.Thread(target=self.delete_profile,args=(profile,))
    260261                        self.delete_profile_t.daemon=True
    261                         self.delete_profile_t.done=False
    262                         self.delete_profile_t.launched=False
     262                        GObject.threads_init()
     263
    263264                        self.msg_label.set_text("")
    264265                       
     
    266267                        self.delete_profile_t.start()
    267268                        self.delete_profile_t.launched=True
     269                        self.core.lgd.check_plabel.set_text(_("Applying changes..."))
     270                        self.core.lgd.check_window.show()
    268271                        GLib.timeout_add(100,self.pulsate_delete_profile,profile,hbox)
    269272
     
    286289        # def delete_profile_clicked
    287290               
    288         def pulsate_delete_profile(self,profile,hbox)
     291        def pulsate_delete_profile(self,profile,hbox):
    289292
    290293                        if self.delete_profile_t.is_alive():
     294                                self.core.lgd.check_pbar.pulse()
    291295                                return True
    292296
     
    294298                                #delete=self.core.LliurexGoogleDriveManager.delete_profile(self.profiles_info,profile)
    295299                                self.msg_label.show()
    296 
     300                                self.core.lgd.check_window.hide()
    297301                                if self.delete["result"]:
    298                                         print "a boorar"
    299                                         self.profile_msg.set_name("MSG_LABEL")
     302                                        self.msg_label.set_name("MSG_LABEL")
    300303                                        self.msg_label.set_text(MSG_CHANGE_SUCCESS)
    301304                                        self.profile_list_box.remove(hbox)
     
    317320
    318321                self.msg_label.set_text("")
     322                self.sync_profile_t=threading.Thread(target=self.sync_profile,args=(hbox,))
     323                self.sync_profile_t.daemon=True
     324                GObject.threads_init()
     325               
     326                self.sync_profile_t.start()
     327                self.core.lgd.check_plabel.set_text(_("Applying changes..."))
     328                self.core.lgd.check_window.show()
     329                GLib.timeout_add(100,self.pulsate_sync_profile,button,hbox)
     330
     331
     332                # profile=hbox.get_children()[1].get_text().split("\n")[0]
     333                # mountpoint=hbox.get_children()[3].get_text()
     334                # # ENCODING TO UNICODE         
     335                # profile=profile.decode("utf-8")
     336                # mountpoint=mountpoint.decode("utf-8")
     337                # status_info=self.core.LliurexGoogleDriveManager.check_mountpoint_status(mountpoint)
     338                # self.msg_label.show()
     339                # self.msg_label.set_name("MSG_LABEL")
     340                # if self.current_status[profile]==status_info["status"]:
     341
     342                #       status_mod=self.core.LliurexGoogleDriveManager.sync_profile(profile,mountpoint)
     343                #       if status_mod["result"]:
     344                #               status_info=self.core.LliurexGoogleDriveManager.check_mountpoint_status(mountpoint)
     345                #               self.msg_label.set_text(MSG_CHANGE_SUCCESS)
     346                               
     347                #       else:
     348                #               msg_error=self.get_msg_error(status_mod["code"])
     349                #               self.msg_label.set_name("MSG_ERROR_LABEL")
     350                #               self.msg_label.set_text(msg_error)     
     351                               
     352                       
     353
     354                # info=self.item_status_info(status_info)
     355                # self.current_status[profile]=status_info["status"]
     356                # button.set_tooltip_text(info["tooltip"])
     357                # button.set_name(info["css"])         
     358                # hbox.get_children()[4].set_image(info["img"])
     359
     360       
     361        #def sync_profile_cicked
     362
     363        def pulsate_sync_profile(self,button,hbox):
     364
     365                if self.sync_profile_t.is_alive():
     366                        self.core.lgd.check_pbar.pulse()
     367                        return True
     368
     369                else:
     370                        self.core.lgd.check_window.hide()
     371                        if self.status_mod["result"]:
     372                                #status_info=self.core.LliurexGoogleDriveManager.check_mountpoint_status(mountpoint)
     373                                self.msg_label.set_text(MSG_CHANGE_SUCCESS)
     374                               
     375                        else:
     376                                msg_error=self.get_msg_error(self.status_mod["code"])
     377                                self.msg_label.set_name("MSG_ERROR_LABEL")
     378                                self.msg_label.set_text(msg_error)     
     379                       
     380
     381                        info=self.item_status_info(self.status_info)
     382                        profile=hbox.get_children()[1].get_text().split("\n")[0]
     383                        self.current_status[profile]=self.status_info["status"]
     384                        button.set_tooltip_text(info["tooltip"])
     385                        button.set_name(info["css"])           
     386                        hbox.get_children()[4].set_image(info["img"])   
     387
     388                return False                                   
     389
     390
     391        def sync_profile(self,hbox):
     392       
    319393                profile=hbox.get_children()[1].get_text().split("\n")[0]
    320394                mountpoint=hbox.get_children()[3].get_text()
     
    322396                profile=profile.decode("utf-8")
    323397                mountpoint=mountpoint.decode("utf-8")
    324                 status_info=self.core.LliurexGoogleDriveManager.check_mountpoint_status(mountpoint)
    325                 self.msg_label.show()
    326                 self.msg_label.set_name("MSG_LABEL")
    327                 if self.current_status[profile]==status_info["status"]:
    328 
    329                         status_mod=self.core.LliurexGoogleDriveManager.sync_profile(profile,mountpoint)
    330                         if status_mod["result"]:
    331                                 status_info=self.core.LliurexGoogleDriveManager.check_mountpoint_status(mountpoint)
    332                                 self.msg_label.set_text(MSG_CHANGE_SUCCESS)
    333                                
    334                         else:
    335                                 msg_error=self.get_msg_error(status_mod["code"])
     398               
     399                connect=self.core.LliurexGoogleDriveManager.check_google_connection()
     400
     401                if connect:
     402                         self.status_info=self.core.LliurexGoogleDriveManager.check_mountpoint_status(mountpoint)
     403                         if self.current_status[profile]==self.status_info["status"]:
     404                                self.status_mod=self.core.LliurexGoogleDriveManager.sync_profile(profile,mountpoint)   
     405                                if self.status_mod["result"]:
     406                                        self.status_info=self.core.LliurexGoogleDriveManager.check_mountpoint_status(mountpoint)       
     407                                                               
     408                else:
     409                        self.status_mod={}
     410                        self.status_mod["result"]=False
     411                        self.status_mod["code"]=8                       
     412
     413        def edit_profile_clicked(self,button,hbox):
     414
     415                self.edition=True
     416                self.core.lgd.check_plabel.set_text(_("Checking connection to google..."))
     417                self.core.lgd.check_window.show()
     418                self.init_threads()
     419                self.check_connection_t.start()
     420                GLib.timeout_add(100,self.pulsate_connection,hbox)
     421
     422
     423                # self.enable_entry_profile_dialog()
     424                # #ENCODING TO UNICODE
     425
     426                # self.profile_to_edit=hbox             
     427                # profile=self.profile_to_edit.get_children()[1].get_text().split("\n")[0]
     428                # self.profile_entry.set_text(profile)
     429                # email=self.profile_to_edit.get_children()[1].get_text().split("\n")[1]
     430                # self.email_entry.set_text(email)
     431                # mountpoint=self.profile_to_edit.get_children()[3].get_text()
     432                # self.mountpoint_entry.set_filename(mountpoint)
     433                # automount=self.profiles_info[profile.decode("utf-8")]["automount"]
     434                # self.automount_entry.set_active(automount)
     435               
     436
     437                # self.init_threads()
     438
     439                # self.profile_msg.hide()
     440                # self.profile_pbar.hide()
     441                # self.msg_label.set_text("")
     442                # self.init_profile_dialog_button()
     443                # self.new_profile_window.show()       
     444
     445        #def edit_profile_clicked
     446
     447        def pulsate_connection(self,hbox):
     448
     449                if self.check_connection_t.is_alive():
     450                                self.core.lgd.check_pbar.pulse()
     451                                return True
     452
     453                else:
     454                        self.core.lgd.check_window.hide()
     455                        self.enable_entry_profile_dialog()
     456                        #ENCODING TO UNICODE
     457                        if self.connection:
     458                                self.profile_to_edit=hbox               
     459                                profile=self.profile_to_edit.get_children()[1].get_text().split("\n")[0]
     460                                self.profile_entry.set_text(profile)
     461                                email=self.profile_to_edit.get_children()[1].get_text().split("\n")[1]
     462                                self.email_entry.set_text(email)
     463                                mountpoint=self.profile_to_edit.get_children()[3].get_text()
     464                                self.mountpoint_entry.set_filename(mountpoint)
     465                                automount=self.profiles_info[profile.decode("utf-8")]["automount"]
     466                                self.automount_entry.set_active(automount)
     467                               
     468
     469                                self.init_threads()
     470
     471                                self.profile_msg.hide()
     472                                self.profile_pbar.hide()
     473                                self.msg_label.set_text("")
     474                                self.init_profile_dialog_button()
     475                                self.new_profile_window.show()
     476
     477                        else:           
     478                                msg_error=self.get_msg_error(8)
    336479                                self.msg_label.set_name("MSG_ERROR_LABEL")
    337                                 self.msg_label.set_text(msg_error)     
    338                                
    339                        
    340 
    341                 info=self.item_status_info(status_info)
    342                 self.current_status[profile]=status_info["status"]
    343                 button.set_tooltip_text(info["tooltip"])
    344                 button.set_name(info["css"])           
    345                 hbox.get_children()[4].set_image(info["img"])
    346 
    347        
    348         #def mount_profile_clicked
    349 
    350         def edit_profile_clicked(self,button,hbox):
    351 
    352                 self.edition=True
    353                 self.enable_entry_profile_dialog()
    354                 #ENCODING TO UNICODE
    355                 self.profile_to_edit=hbox               
    356                 profile=self.profile_to_edit.get_children()[1].get_text().split("\n")[0]
    357                 self.profile_entry.set_text(profile)
    358                 email=self.profile_to_edit.get_children()[1].get_text().split("\n")[1]
    359                 self.email_entry.set_text(email)
    360                 mountpoint=self.profile_to_edit.get_children()[3].get_text()
    361                 self.mountpoint_entry.set_filename(mountpoint)
    362                 automount=self.profiles_info[profile.decode("utf-8")]["automount"]
    363                 self.automount_entry.set_active(automount)
    364                
    365 
    366                 self.init_threads()
    367 
    368                 self.profile_msg.hide()
    369                 self.profile_pbar.hide()
    370                 self.msg_label.set_text("")
    371                 self.init_profile_dialog_button()
    372                 self.new_profile_window.show() 
    373 
    374         #def edit_profile_clicked
     480                                self.msg_label.set_text(msg_error)             
     481                return False
     482
     483
     484
     485
     486        def check_connection(self):
     487                self.connection=self.core.LliurexGoogleDriveManager.check_google_connection()
    375488
    376489
  • lliurex-gdrive/trunk/fuentes/lliurex-gdrive-gui.install/usr/share/lliurex-gdrive/rsrc/lliurex-gdrive.ui

    r4018 r4031  
    33<interface>
    44  <requires lib="gtk+" version="3.12"/>
     5  <object class="GtkWindow" id="check_window">
     6    <property name="can_focus">False</property>
     7    <property name="type">popup</property>
     8    <property name="resizable">False</property>
     9    <property name="modal">True</property>
     10    <property name="window_position">center-on-parent</property>
     11    <property name="deletable">False</property>
     12    <child>
     13      <object class="GtkBox" id="box6">
     14        <property name="visible">True</property>
     15        <property name="can_focus">False</property>
     16        <property name="orientation">vertical</property>
     17        <child>
     18          <object class="GtkLabel" id="check_plabel">
     19            <property name="visible">True</property>
     20            <property name="can_focus">False</property>
     21            <property name="margin_left">50</property>
     22            <property name="margin_right">50</property>
     23            <property name="margin_top">10</property>
     24            <property name="margin_bottom">5</property>
     25            <property name="justify">center</property>
     26          </object>
     27          <packing>
     28            <property name="expand">False</property>
     29            <property name="fill">True</property>
     30            <property name="position">0</property>
     31          </packing>
     32        </child>
     33        <child>
     34          <object class="GtkProgressBar" id="check_pbar">
     35            <property name="visible">True</property>
     36            <property name="can_focus">False</property>
     37            <property name="margin_left">30</property>
     38            <property name="margin_right">30</property>
     39            <property name="margin_top">5</property>
     40            <property name="margin_bottom">10</property>
     41          </object>
     42          <packing>
     43            <property name="expand">False</property>
     44            <property name="fill">True</property>
     45            <property name="position">1</property>
     46          </packing>
     47        </child>
     48      </object>
     49    </child>
     50  </object>
    551  <object class="GtkWindow" id="main_window">
    652    <property name="width_request">800</property>
  • lliurex-gdrive/trunk/fuentes/python-lliurex-gdrive/lliurex/lliurexgdrive/__init__.py

    r4029 r4031  
    341341                mountpoint=mountpoint.encode("utf-8")
    342342                if len(perror)>0:
     343                        print perror
    343344                        msg_log="Dismount mountpoint: Error dismounted '%s': '%s'"%(mountpoint,str(perror))
    344345                        self.dprint(msg_log)
     
    410411
    411412                if old_mountpoint!=new_mountpoint:
    412                         connect=self.check_google_connection()
    413                         if connect:
    414                                 status=self.check_mountpoint_status(old_mountpoint)
    415 
    416                                 if status["status"]:
    417                                         result=self.dismount_mountpoint(old_mountpoint)
    418 
    419                                         if result["result"]:
    420                                                 result=self.mount_drive(profile,new_mountpoint)
    421                         else:
    422                                 result["result"]=False
    423                                 result["code"]=8                       
     413                        status=self.check_mountpoint_status(old_mountpoint)
     414                       
     415                        if status["status"]:
     416                                result=self.dismount_mountpoint(old_mountpoint)
     417                               
     418                                if result["result"]:
     419                                        result=self.mount_drive(profile,new_mountpoint)
     420                                       
    424421                                       
    425422
Note: See TracChangeset for help on using the changeset viewer.