Changeset 3981 for lliurex-gdrive


Ignore:
Timestamp:
Mar 16, 2017, 12:11:37 PM (2 years ago)
Author:
jrpelegrina
Message:

Add disable indicator option

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

Legend:

Unmodified
Added
Removed
  • lliurex-gdrive/trunk/fuentes/lliurex-gdrive-core.install/usr/bin/lliurex-gdrive-autostart

    r3946 r3981  
    33import lliurex.lliurexgdrive
    44import os
     5
     6DISABLE_INDICATOR="~/.config/lliurex-google-drive-profiles/disableIndicator"
    57
    68
     
    1012               
    1113                self.LliurexGoogleDriveManager=lliurex.lliurexgdrive.LliurexGoogleDriveManager()
    12 
     14                self.disable_indicator=os.path.expanduser(DISABLE_INDICATOR)
    1315               
    1416               
     
    1820       
    1921        def launch_indicator(self):
    20                 os.system("lliurexGdriveIndicator")
     22                if not os.path.exists(self.disable_indicator):
     23                        os.system("lliurexGdriveIndicator")
    2124               
    2225
  • lliurex-gdrive/trunk/fuentes/lliurex-gdrive-gui.install/usr/share/lliurex-gdrive/LliurexGdrive.py

    r3959 r3981  
    2121CSS_FILE="/usr/share/lliurex-gdrive/lliurex-gdrive.css"
    2222LOCK_PATH="~/.config/lliurex-google-drive-profiles/lgdIndicator.lock"
     23DISABLE_INDICATOR="~/.config/lliurex-google-drive-profiles/disableIndicator"
    2324
    2425
     
    2829               
    2930                self.core=Core.Core.get_core()
    30                
     31                self.disable_indicator=os.path.expanduser(DISABLE_INDICATOR)
     32
    3133        #def init
    3234       
     
    4042                self.main_box=builder.get_object("main_box")
    4143                self.exit_button=builder.get_object("exit_button")
     44                self.indicator_label=builder.get_object("indicator_label")
     45                self.indicator_switch=builder.get_object("indicator_switch")
     46                if os.path.exists(self.disable_indicator):
     47                        self.indicator_switch.set_active(False)
    4248                               
    4349                self.profile_box=self.core.profile_box
     
    4753                # Add components
    4854                       
    49 
    5055                self.set_css_info()
    5156                self.connect_signals()
     
    5863        def load_info(self):
    5964
    60                
    6165                profiles_info=self.core.LliurexGoogleDriveManager.profiles_config.copy()
    6266                # if os.path.exists(CONFIG_DIR):
     
    6872               
    6973                self.profile_box.load_info(profiles_info)
    70        
     74
     75               
    7176        def set_css_info(self):
    7277               
     
    7782                Gtk.StyleContext.add_provider_for_screen(Gdk.Screen.get_default(),self.style_provider,Gtk.STYLE_PROVIDER_PRIORITY_APPLICATION)
    7883                self.main_window.set_name("WINDOW")
    79                
     84                self.indicator_label.set_name("OPTION_LABEL")
     85
    8086                               
    8187                       
     
    9096        def launch_indicator(self):
    9197
     98
    9299                self.lockpath=R=os.path.expanduser(LOCK_PATH)
    93100                if not os.path.exists(self.lockpath):
     
    95102                        os.system(cmd)
    96103
     104        #def launch_indicator
     105       
     106        def config_indicator(self):
     107
     108                if self.show_indicator:
     109                        if os.path.exists(self.disable_indicator):
     110                                os.remove(self.disable_indicator)       
     111                else:
     112                        if not os.path.exists(self.disable_indicator):
     113                                f=open(self.disable_indicator,'w')
     114                                f.close
     115
    97116
    98117        def quit(self,widget):
    99118
    100                 self.launch_indicator()
     119                self.show_indicator=self.indicator_switch.get_state()
     120                self.config_indicator()
     121
     122                if self.show_indicator:
     123                        self.launch_indicator()
    101124
    102125                Gtk.main_quit()
  • lliurex-gdrive/trunk/fuentes/lliurex-gdrive-gui.install/usr/share/lliurex-gdrive/ProfileBox.py

    r3977 r3981  
    3535MSG_CHANGE_SUCCESS=_("Changes applied successfully")
    3636MSG_CHANGE_ERROR=_("An error ocurred applying changes. See log file for more information")
     37#DISABLE_INDICATOR="~/.config/lliurex-google-drive-profiles/disableIndicator"
     38
    3739
    3840class ProfileBox(Gtk.VBox):
     
    5658                image = Gtk.Image()
    5759                image.set_from_stock(Gtk.STOCK_ADD,Gtk.IconSize.MENU)
     60                #self.indicator_label=builder.get_object("indicator_label")
     61                #self.indicator_switch=builder.get_object("indicator_switch")
     62
     63                #self.disable_indicator=os.path.expanduser(DISABLE_INDICATOR)
     64                #if os.path.exists(self.disable_indicator):
     65                        #self.indicator_switch.set_active(False)
     66
     67
    5868                self.add_new_profile_button=builder.get_object("add_new_profile_button")
    5969                self.add_new_profile_button.set_image(image)
     
    128138                self.msg_label.set_name("MSG_LABEL")
    129139                self.profile_msg.set_name("MSG_LABEL")
    130 
    131140               
    132141                       
     
    366375               
    367376                status_info=self.core.LliurexGoogleDriveManager.check_mountpoint_status(mountpoint)
    368                 self.current_status[profile_name]=status_info["status"]
     377                self.current_status[profile_name.encode("utf-8")]=status_info["status"]
    369378                print self.current_status
    370379                info=self.item_status_info(status_info)
     
    427436                profile=self.profile_entry.get_text()
    428437
    429                 self.new_profile=profile.strip(" ").decode("utf-8")
     438                self.new_profile=profile.strip().decode("utf-8")
    430439                email=self.email_entry.get_text()
    431                 self.new_email=email.strip(" ")
     440                self.new_email=email.strip()
    432441                self.new_mountpoint=self.mountpoint_entry.get_filename().decode("utf-8")
    433442                self.new_automount=self.automount_entry.get_state()
     
    475484                                msg_check=_("You must indicate a profile")
    476485
     486                        elif check_form["code"]==2:
     487                                msg_check=_("Profile can not contain blanks")
     488
     489                        elif check_form["code"]==3 :
     490                                msg_check=_("Profile already exists")
     491                       
    477492                        else:
    478                                 if check_form["code"]==2:
    479                                         msg_check=_("Profile already exists")
    480                                 else:
    481                                         msg_check=_("Mounting point already used by another profile")   
     493                                msg_check=_("Mounting point already used by another profile")   
    482494
    483495
  • lliurex-gdrive/trunk/fuentes/lliurex-gdrive-gui.install/usr/share/lliurex-gdrive/rsrc/lliurex-gdrive.ui

    r3886 r3981  
    1313        <property name="visible">True</property>
    1414        <property name="can_focus">False</property>
     15        <property name="margin_bottom">5</property>
    1516        <property name="orientation">vertical</property>
    1617        <child>
     
    4546        </child>
    4647        <child>
    47           <object class="GtkButton" id="exit_button">
    48             <property name="label">gtk-close</property>
    49             <property name="visible">True</property>
    50             <property name="can_focus">True</property>
    51             <property name="receives_default">True</property>
    52             <property name="halign">end</property>
    53             <property name="margin_right">10</property>
    54             <property name="margin_top">10</property>
    55             <property name="margin_bottom">10</property>
    56             <property name="use_stock">True</property>
    57           </object>
    58           <packing>
    59             <property name="expand">False</property>
    60             <property name="fill">False</property>
     48          <object class="GtkBox" id="box4">
     49            <property name="visible">True</property>
     50            <property name="can_focus">False</property>
     51            <child>
     52              <object class="GtkLabel" id="indicator_label">
     53                <property name="visible">True</property>
     54                <property name="can_focus">False</property>
     55                <property name="margin_left">10</property>
     56                <property name="label" translatable="yes">Show indicator in menu bar at login:</property>
     57              </object>
     58              <packing>
     59                <property name="expand">False</property>
     60                <property name="fill">True</property>
     61                <property name="position">0</property>
     62              </packing>
     63            </child>
     64            <child>
     65              <object class="GtkSwitch" id="indicator_switch">
     66                <property name="visible">True</property>
     67                <property name="can_focus">True</property>
     68                <property name="halign">center</property>
     69                <property name="active">True</property>
     70              </object>
     71              <packing>
     72                <property name="expand">False</property>
     73                <property name="fill">True</property>
     74                <property name="position">1</property>
     75              </packing>
     76            </child>
     77            <child>
     78              <object class="GtkButton" id="exit_button">
     79                <property name="label">gtk-close</property>
     80                <property name="visible">True</property>
     81                <property name="can_focus">True</property>
     82                <property name="receives_default">True</property>
     83                <property name="halign">end</property>
     84                <property name="margin_right">10</property>
     85                <property name="margin_top">10</property>
     86                <property name="margin_bottom">10</property>
     87                <property name="use_stock">True</property>
     88              </object>
     89              <packing>
     90                <property name="expand">False</property>
     91                <property name="fill">False</property>
     92                <property name="pack_type">end</property>
     93                <property name="position">2</property>
     94              </packing>
     95            </child>
     96          </object>
     97          <packing>
     98            <property name="expand">False</property>
     99            <property name="fill">True</property>
     100            <property name="padding">3</property>
    61101            <property name="pack_type">end</property>
    62102            <property name="position">3</property>
     
    378418        </child>
    379419        <child>
    380           <object class="GtkButton" id="add_new_profile_button">
    381             <property name="label" translatable="yes">Add profile</property>
    382             <property name="visible">True</property>
    383             <property name="can_focus">True</property>
    384             <property name="receives_default">True</property>
    385             <property name="halign">end</property>
    386             <property name="valign">end</property>
    387           </object>
    388           <packing>
    389             <property name="expand">False</property>
    390             <property name="fill">False</property>
    391             <property name="position">1</property>
     420          <object class="GtkBox" id="box3">
     421            <property name="visible">True</property>
     422            <property name="can_focus">False</property>
     423            <child>
     424              <placeholder/>
     425            </child>
     426            <child>
     427              <object class="GtkButton" id="add_new_profile_button">
     428                <property name="label" translatable="yes">Add profile</property>
     429                <property name="visible">True</property>
     430                <property name="can_focus">True</property>
     431                <property name="receives_default">True</property>
     432                <property name="halign">end</property>
     433                <property name="valign">end</property>
     434              </object>
     435              <packing>
     436                <property name="expand">False</property>
     437                <property name="fill">False</property>
     438                <property name="pack_type">end</property>
     439                <property name="position">1</property>
     440              </packing>
     441            </child>
     442            <child>
     443              <placeholder/>
     444            </child>
     445          </object>
     446          <packing>
     447            <property name="expand">False</property>
     448            <property name="fill">True</property>
     449            <property name="position">2</property>
    392450          </packing>
    393451        </child>
  • lliurex-gdrive/trunk/fuentes/lliurex-gdrive-indicator.install/usr/bin/lliurexGdriveIndicator

    r3977 r3981  
    44gi.require_version('Gtk', '3.0')
    55from gi.repository import Gtk, Pango, GdkPixbuf, Gdk, Gio, GObject, GLib
    6 gi.require_version('AppIMOUNT_ON_IMAGEndicator3', '0.1')
     6gi.require_version('AppIndicator3', '0.1')
    77from gi.repository import AppIndicator3 as appindicator
    88
     
    3232class LlliurexGdriveIndicator:
    3333
    34         WATCH_DIR=os.path.expanduser("~/.config/lliurex-google-drive-profiles/config")
     34        WATCH_DIR=os.path.expanduser("~/.config/lliurex-google-drive-profiles/config_profiles")
    3535       
    3636        def __init__(self,icon_name):
     
    5959        def createLockToken(self):
    6060
    61                 self.lockpath=R=os.path.expanduser(LOCK_PATH)
     61                self.lockpath=os.path.expanduser(LOCK_PATH)
    6262                if not os.path.exists(self.lockpath):
    6363                        f=open(self.lockpath,'w')
  • lliurex-gdrive/trunk/fuentes/python-lliurex-gdrive/lliurex/lliurexgdrive/__init__.py

    r3977 r3981  
    8787                                msg_log="Check config: '%s' not configured"%profile
    8888                                self.dprint(msg_log)
    89                                 self.log(msg_log)
     89                                #self.log(msg_log)
    9090
    9191                                return False
     
    9797                        msg_log="Check config: '%s' not yet create"%profile
    9898                        self.dprint(msg_log)
    99                         self.log(msg_log)
     99                        #self.log(msg_log)
    100100
    101101                        return False
     
    134134                                                                msg_log="Mount drive: Unable to create '%s' mount destination"%mountpoint
    135135                                                                self.dprint(msg_log)
    136                                                                 self.log(msg_log)
     136                                                                #self.log(msg_log)
    137137                                                                return False
    138138                                                       
     
    144144                                                        poutput,perror=p.communicate()
    145145                                                        if len(perror)==0:
    146                                                                 msg_log="Mount drive: drive '%s' mounted sucessfully:"%(mountpoint.encode("utf-8"))
     146                                                                msg_log="Mount drive: drive '%s' mounted sucessfully:"%mountpoint
    147147                                                                self.dprint(msg_log)
    148                                                                 self.log(msg_log)
     148                                                                #self.log(msg_log)
    149149                                                                return True
    150150
    151151                                                        else:
    152                                                                 msg_log="Mount drive: Error mount '%s': %s"%(mountpoint.encode("utf-8"),str(perror))
     152                                                                msg_log="Mount drive: Error mount '%s': %s"%(mountpoint,str(perror))
    153153                                                                self.dprint(msg_log)
    154                                                                 self.log(msg_log)
     154                                                                #self.log(msg_log)
    155155                                                                                                                               
    156156                                                else:
    157157                                                        msg_log="Mount drive: Mount drive: '%s' mount destination is not owned by user"%mountpoint
    158158                                                        self.dprint(msg_log)
    159                                                         self.log(msg_log)
     159                                                        #self.log(msg_log)
    160160                                                       
    161161                                        else:
    162162                                                msg_log="Mount drive: '%s' mountpoint not configured"%profile
    163163                                                self.dprint(msg_log)
    164                                                 self.log(msg_log)
     164                                                #self.log(msg_log)
    165165                        else:
    166166                                msg_log="Mount drive: '%s' profile unknown"%profile
    167167                                self.dprint(msg_log)
    168                                 self.log(msg_log)
     168                                #self.log(msg_log)
    169169                else:
    170170                        msg_log="Mount drive: '%s' GDrive profile path does not exist"%profile.encode("utf-8")
    171171                        self.dprint(msg_log)
    172                         self.log(msg_log)
     172                        #self.log(msg_log)
    173173                       
    174174                       
     
    240240                        code=0: Form OK
    241241                        code=1: Profile empty
    242                         code=2: Profile duplicate
    243                         code=3: Mountpoint duplicate
     242                        code=2: Profile with blanck spaces
     243                        code=3: Profile duplicate
     244                        code=4: Mountpoint duplicate
    244245
    245246                '''     
     
    254255                        if profile=="":
    255256                                return {"result":False,"code":1}
     257
     258                        if ' ' in profile:
     259                                return {"result":False,"code":2}
     260       
    256261                        else:
    257262                                for item in self.profiles_config:
    258263                                        if profile==item:
    259                                                 return {"result":False,"code":2}
     264                                                return {"result":False,"code":3}
    260265
    261266                for item in self.profiles_config:
    262267                        if profile!=item:
    263268                                if mountpoint==self.profiles_config[item]["mountpoint"]:
    264                                         return {"result":False,"code":3}
     269                                        return {"result":False,"code":4}
    265270
    266271                return {"result":True,"code":0}                                                         
     
    278283                        os.system("google-drive-ocamlfuse -label %s"%profile)
    279284                        msg_log=("'%s' profile has been create")%profile
    280                         self.log(msg_log)
     285                        #self.log(msg_log)
    281286                        self.dprint(msg_log)
    282287
     
    315320                if len(perror)>0:
    316321                        msg_log="Dismount mountpoint: Error dismounted '%s': '%s'"%(mountpoint,str(perror))
    317                         self.log(msg_log)
     322                        #self.log(msg_log)
    318323                        self.dprint(msg_log)
    319324                        result=False
    320325                else:
    321                         msg_log=("Dismount mountpoint:'%s' mountpoint has been dismounted"%mountpoint)
    322                         self.log(msg_log)
     326                        msg_log="Dismount mountpoint:'%s' mountpoint has been dismounted"%mountpoint
     327                        #self.log(msg_log)
    323328                        self.dprint(msg_log)
    324329                        result=True                                     
     
    347352                                if profile!="":
    348353                                        shutil.rmtree(os.path.join(GDRIVE_CONFIG_DIR+profile))
    349                                         msg_log=("Delete profile: '%s' profile has been delete"%profile)
    350                                         self.log(msg_log)
     354                                        msg_log="Delete profile: '%s' profile has been delete"%profile
     355                                        #self.log(msg_log)
    351356                                        self.dprint(msg_log)
    352357                                self.save_profiles(info)
     
    356361                        self.save_profiles(info)
    357362                        msg_log="Delete profile: '%s' GDrive profile path does not exist"%profile
    358                         self.log(msg_log)
     363                        #self.log(msg_log)
    359364                        self.dprint(msg_log)
    360365                       
     
    387392                if result:
    388393                        self.save_profiles(info)
    389                         msg_log=("Edit profile: '%s' profile has been edited"%profile)
    390                         self.log(msg_log)
     394                        msg_log="Edit profile: '%s' profile has been edited"%profile
     395                        #self.log(msg_log)
    391396                        self.dprint(msg_log)
    392397
Note: See TracChangeset for help on using the changeset viewer.