source: lliurex-gdrive/trunk/fuentes/lliurex-gdrive-gui.install/usr/share/lliurex-gdrive/LliurexGdrive.py @ 4021

Last change on this file since 4021 was 4021, checked in by jrpelegrina, 4 years ago

Fix log file and msg error

File size: 3.6 KB
Line 
1#!/usr/bin/env python
2
3import gi
4gi.require_version('Gtk', '3.0')
5from gi.repository import Gtk, Pango, GdkPixbuf, Gdk, Gio, GObject,GLib
6
7
8
9import signal
10import os
11import json
12import Core
13
14
15signal.signal(signal.SIGINT, signal.SIG_DFL)
16
17import gettext
18gettext.textdomain('lliurex-gdrive')
19_ = gettext.gettext
20
21RSRC="/usr/share/lliurex-gdrive/"
22#CONFIG_DIR=os.path.expanduser("~/.config/lliurex-google-drive-profiles/config")
23CSS_FILE="/usr/share/lliurex-gdrive/lliurex-gdrive.css"
24LOCK_INDICATOR="/tmp/lgdIndicator.lock"
25LOCK_GUI="/tmp/lgdGUI.lock"
26DISABLE_INDICATOR="~/.config/lliurex-google-drive-profiles/disableIndicator"
27
28
29class LliurexGdrive:
30       
31        def __init__(self):
32
33                self.islgd_running()
34                self.core=Core.Core.get_core()
35                self.disable_indicator=os.path.expanduser(DISABLE_INDICATOR)
36                self.createLockToken()
37
38        #def init
39
40       
41        def islgd_running(self):
42
43                if os.path.exists(LOCK_GUI):
44                        dialog = Gtk.MessageDialog(None,0,Gtk.MessageType.ERROR, Gtk.ButtonsType.CANCEL, "Lliurex GDrive")
45                        dialog.format_secondary_text(_("Lliurex GDrive is now running."))
46                        dialog.run()
47                        sys.exit(1)
48       
49
50        def createLockToken(self):
51
52                if not os.path.exists(LOCK_GUI):
53                        f=open(LOCK_GUI,'w')
54                        f.close
55
56        #def createLockToken   
57       
58        def load_gui(self):
59               
60                builder=Gtk.Builder()
61                builder.set_translation_domain('lliurex-gdrive')
62                ui_path=RSRC + "rsrc/lliurex-gdrive.ui"
63                builder.add_from_file(ui_path)
64               
65               
66                self.main_window=builder.get_object("main_window")
67                self.main_window.set_title("Lliurex GDrive")
68                self.main_box=builder.get_object("main_box")
69                self.exit_button=builder.get_object("exit_button")
70                self.indicator_label=builder.get_object("indicator_label")
71                self.indicator_switch=builder.get_object("indicator_switch")
72                if os.path.exists(self.disable_indicator):
73                        self.indicator_switch.set_active(False)
74                               
75                self.profile_box=self.core.profile_box
76                self.main_box.add(self.profile_box)
77               
78               
79                # Add components
80                       
81                self.set_css_info()
82                self.connect_signals()
83                self.load_info()
84               
85                self.main_window.show_all()
86               
87        #def load_gui
88
89
90               
91        def load_info(self):
92
93                profiles_info=self.core.LliurexGoogleDriveManager.profiles_config.copy()
94                               
95                self.profile_box.load_info(profiles_info)
96
97               
98        def set_css_info(self):
99               
100               
101                self.style_provider=Gtk.CssProvider()
102                f=Gio.File.new_for_path(CSS_FILE)
103                self.style_provider.load_from_file(f)
104                Gtk.StyleContext.add_provider_for_screen(Gdk.Screen.get_default(),self.style_provider,Gtk.STYLE_PROVIDER_PRIORITY_APPLICATION)
105                self.main_window.set_name("WINDOW")
106                self.indicator_label.set_name("OPTION_LABEL")
107
108                               
109                       
110        def connect_signals(self):
111               
112                self.main_window.connect("destroy",self.quit)
113                self.exit_button.connect("clicked",self.quit)
114       
115               
116        #def connect_signals
117
118        def launch_indicator(self):
119
120
121                #self.lockpath=R=os.path(LOCK_INDICATOR)
122                if not os.path.exists(LOCK_INDICATOR):
123                        cmd="/usr/bin/lliurexGdriveIndicator" + "&"
124                        os.system(cmd)
125
126        #def launch_indicator
127       
128        def config_indicator(self):
129
130                if self.show_indicator:
131                        if os.path.exists(self.disable_indicator):
132                                os.remove(self.disable_indicator)       
133                else:
134                        if not os.path.exists(self.disable_indicator):
135                                f=open(self.disable_indicator,'w')
136                                f.close
137
138
139        def cleanLockToken(self):
140
141                if os.path.exists(LOCK_GUI):
142                        os.remove(LOCK_GUI)
143
144        #def cleanIndicatorLock                 
145
146        def quit(self,widget):
147
148                self.show_indicator=self.indicator_switch.get_state()
149                self.config_indicator()
150
151                if self.show_indicator:
152                        self.launch_indicator()
153
154                self.cleanLockToken()
155                Gtk.main_quit() 
156       
157        def start_gui(self):
158               
159                GObject.threads_init()
160                Gtk.main()
161               
162        #def start_gui
163
164       
165       
166
167       
168#class LliurexRemoteInstaller
169
170
171if __name__=="__main__":
172       
173        lgd=LliurexGdrive()
174        lgd.start_gui()
175       
Note: See TracBrowser for help on using the repository browser.