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

Last change on this file since 3946 was 3946, checked in by jrpelegrina, 2 years ago

Fix autostart, reorder bin and connect gui with indicator

File size: 2.2 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
8import gettext
9import signal
10import os
11import json
12import Core
13
14
15signal.signal(signal.SIGINT, signal.SIG_DFL)
16_=gettext.gettext
17
18
19RSRC="/usr/share/lliurex-gdrive/"
20#CONFIG_DIR=os.path.expanduser("~/.config/lliurex-google-drive-profiles/config")
21CSS_FILE="/usr/share/lliurex-gdrive/lliurex-gdrive.css"
22LOCK_PATH="~/.config/lliurex-google-drive-profiles/lgdIndicator.lock"
23
24
25class LliurexGdrive:
26       
27        def __init__(self):
28               
29                self.core=Core.Core.get_core()
30               
31        #def init
32       
33        def load_gui(self):
34               
35                builder=Gtk.Builder()
36                ui_path=RSRC + "rsrc/lliurex-gdrive.ui"
37                builder.add_from_file(ui_path)
38               
39                self.main_window=builder.get_object("main_window")
40                self.main_box=builder.get_object("main_box")
41                self.exit_button=builder.get_object("exit_button")
42                               
43                self.profile_box=self.core.profile_box
44                self.main_box.add(self.profile_box)
45               
46               
47                # Add components
48                       
49
50                self.set_css_info()
51                self.connect_signals()
52                self.load_info()
53               
54                self.main_window.show_all()
55               
56        #def load_gui
57
58        def load_info(self):
59
60               
61                profiles_info=self.core.LliurexGoogleDriveManager.profiles_config.copy()
62                # if os.path.exists(CONFIG_DIR):
63
64                #       f=open(CONFIG_DIR)
65                #       profiles_info=json.load(f)
66                #       f.close()
67               
68               
69                self.profile_box.load_info(profiles_info)
70       
71        def set_css_info(self):
72               
73               
74                self.style_provider=Gtk.CssProvider()
75                f=Gio.File.new_for_path(CSS_FILE)
76                self.style_provider.load_from_file(f)
77                Gtk.StyleContext.add_provider_for_screen(Gdk.Screen.get_default(),self.style_provider,Gtk.STYLE_PROVIDER_PRIORITY_APPLICATION)
78                self.main_window.set_name("WINDOW")
79               
80                               
81                       
82        def connect_signals(self):
83               
84                self.main_window.connect("destroy",self.quit)
85                self.exit_button.connect("clicked",self.quit)
86       
87               
88        #def connect_signals
89
90        def launch_indicator(self):
91
92                self.lockpath=R=os.path.expanduser(LOCK_PATH)
93                if not os.path.exists(self.lockpath):
94                        cmd="lliurexGdriveIndicator.py" + "&"
95                        os.system(cmd)
96
97
98        def quit(self,widget):
99
100                self.launch_indicator()
101
102                Gtk.main_quit() 
103       
104        def start_gui(self):
105               
106                GObject.threads_init()
107                Gtk.main()
108               
109        #def start_gui
110
111       
112       
113
114       
115#class LliurexRemoteInstaller
116
117
118if __name__=="__main__":
119       
120        lgd=LliurexGdrive()
121        lgd.start_gui()
122       
Note: See TracBrowser for help on using the repository browser.