source: first-aid-kit/trunk/fuentes/first-aid-kit.install/usr/share/first-aid-kit/EpoptesBox.py @ 8474

Last change on this file since 8474 was 8474, checked in by daduve, 3 months ago

Adding new files for initial release

File size: 3.7 KB
Line 
1import gi
2gi.require_version('Gtk', '3.0')
3from gi.repository import Gtk, Pango, GdkPixbuf, Gdk, Gio, GObject,GLib
4
5import copy
6import gettext
7import Core
8
9#import Dialog
10import time
11import threading
12import sys
13import os
14import time
15
16gettext.textdomain('first-aid-kit-gui')
17_=gettext.gettext
18
19
20RSRC="./rsrc/"
21
22
23class EpoptesBox(Gtk.VBox):
24       
25       
26        def __init__(self):
27               
28                Gtk.VBox.__init__(self)
29               
30                self.core=Core.Core.get_core()
31               
32                builder=Gtk.Builder()
33                builder.set_translation_domain('first-aid-kit-gui')
34                ui_path=RSRC + "first-aid-kit.ui"
35                builder.add_from_file(ui_path)
36               
37               
38                self.epoptes_box=builder.get_object("epoptes_box")
39                self.epoptes_box3=builder.get_object("box3")
40                self.renew_button=builder.get_object("renew_button")
41                self.renew_spinner=builder.get_object("renew_spinner")
42                self.txt_check_epoptes=builder.get_object("txt_check_epoptes")
43                self.spinner_netfiles=builder.get_object("spinner_epoptes")
44                self.section_label_3=builder.get_object("section_label_3")
45                self.label3=builder.get_object("label3")
46                self.info_box=builder.get_object("info_epoptes")
47                self.info_box_into=builder.get_object("box23")
48
49                self.add(self.epoptes_box)
50               
51                self.connect_signals()
52                self.set_css_info()
53
54               
55                self.info_box_stack=Gtk.Stack()
56                self.info_box_stack.set_transition_type(Gtk.StackTransitionType.CROSSFADE)
57                self.info_box_stack.set_transition_duration(500)
58                hbox_epoptes=Gtk.HBox()
59                hbox_epoptes.show()
60                self.info_box_stack.add_titled(hbox_epoptes,"empty_box_epoptes","Empty Box Epoptes")
61                self.info_box_stack.add_titled(self.info_box,"infobox","InfoBox")
62
63                self.wawabox2=Gtk.HBox()
64                self.wawabox2.pack_start(self.info_box_stack,True,True,0)
65
66                self.epoptes_box.pack_start(self.wawabox2,False,False,5)
67
68
69                self.info_box.set_margin_bottom(20)
70                self.info_box.set_margin_left(5)
71                self.info_box.set_margin_right(5)
72
73                self.info_box_stack.set_visible_child_name("empty_box_epoptes")
74                               
75               
76        #def __init__
77       
78       
79
80
81        def set_css_info(self):
82               
83                self.style_provider=Gtk.CssProvider()
84                f=Gio.File.new_for_path("first-aid-kit.css")
85                self.style_provider.load_from_file(f)
86                Gtk.StyleContext.add_provider_for_screen(Gdk.Screen.get_default(),self.style_provider,Gtk.STYLE_PROVIDER_PRIORITY_APPLICATION)
87               
88                self.renew_button.set_name("EXECUTE_BUTTON")
89                self.epoptes_box3.set_name("PKG_BOX")
90                self.info_box.set_name("PKG_BOX")
91
92                self.label3.set_name("OPTION_LABEL")
93                self.txt_check_epoptes.set_name("INFO_LABEL")
94                self.section_label_3.set_name("SECTION_LABEL")
95                       
96        #def set-css_info
97
98
99
100
101
102        def connect_signals(self):
103               
104                self.renew_button.connect("clicked",self.renew_button_clicked)
105               
106        #def connect_signals
107
108
109
110
111
112        def renew_button_clicked(self,widget):
113               
114                self.thread=threading.Thread(target=self.renew_button_thread)
115                self.renew_button.set_sensitive(False)
116                self.thread.daemon=True
117                self.thread.start()
118               
119                allocation=self.renew_button.get_allocation()
120                w=allocation.width
121                h=allocation.height
122
123                self.renew_button.hide()
124                self.renew_spinner.start()
125                self.renew_spinner.set_size_request(w,h)
126                self.renew_spinner.show()
127
128                GLib.timeout_add(500,self.check_renew_thread)
129       
130        #def_gparted_button_clicked
131
132
133
134        def renew_button_thread(self):
135       
136                try:
137                        self.core.dprint("renewing the certificate of the epoptes....")
138                        os.system('epoptes-client -c')
139                        time.sleep(1)
140                        self.thread_ret={"status":True,"msg":"BROKEN"}
141                       
142                except Exception as e:
143                        print e
144                        return False
145                       
146        #def gparted_button_thread
147
148
149        def check_renew_thread(self):
150               
151                if self.thread.is_alive():
152                        return True
153               
154
155                self.renew_spinner.hide()
156                self.renew_button.show()
157                self.renew_button.set_sensitive(True)
158                self.info_box_stack.set_visible_child_name("infobox")
159                self.txt_check_epoptes.set_text("The Epoptes certificate has been renewed")
160               
161        #check_gparted_thread
Note: See TracBrowser for help on using the repository browser.