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

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

WIP in check connection. Edit and Sync Profile gui

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