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

Last change on this file was 8676, checked in by daduve, 3 weeks ago

translations

File size: 3.9 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')
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')
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                self.separator9=builder.get_object("separator9")
49
50                self.add(self.epoptes_box)
51               
52                self.connect_signals()
53                self.set_css_info()
54
55               
56                self.info_box_stack=Gtk.Stack()
57                self.info_box_stack.set_transition_type(Gtk.StackTransitionType.CROSSFADE)
58                self.info_box_stack.set_transition_duration(500)
59                hbox_epoptes=Gtk.HBox()
60                hbox_epoptes.show()
61                self.info_box_stack.add_titled(hbox_epoptes,"empty_box_epoptes","Empty Box Epoptes")
62                self.info_box_stack.add_titled(self.info_box,"infobox","InfoBox")
63
64                self.wawabox2=Gtk.HBox()
65                self.wawabox2.pack_start(self.info_box_stack,True,True,0)
66
67                self.epoptes_box.pack_start(self.wawabox2,False,False,5)
68
69
70                self.info_box.set_margin_bottom(20)
71                self.info_box.set_margin_left(5)
72                self.info_box.set_margin_right(5)
73
74                self.info_box_stack.set_visible_child_name("empty_box_epoptes")
75                               
76               
77        #def __init__
78       
79       
80
81
82        def set_css_info(self):
83               
84                self.style_provider=Gtk.CssProvider()
85                f=Gio.File.new_for_path("first-aid-kit.css")
86                self.style_provider.load_from_file(f)
87                Gtk.StyleContext.add_provider_for_screen(Gdk.Screen.get_default(),self.style_provider,Gtk.STYLE_PROVIDER_PRIORITY_APPLICATION)
88               
89                self.renew_button.set_name("EXECUTE_BUTTON")
90                self.epoptes_box3.set_name("PKG_BOX")
91                self.info_box.set_name("PKG_BOX")
92                self.separator9.set_name("SEPARATOR_MAIN")
93
94                self.label3.set_name("OPTION_LABEL")
95                self.txt_check_epoptes.set_name("INFO_LABEL")
96                self.section_label_3.set_name("SECTION_LABEL")
97                       
98        #def set-css_info
99
100
101
102
103
104        def connect_signals(self):
105               
106                self.renew_button.connect("clicked",self.renew_button_clicked)
107               
108        #def connect_signals
109
110
111
112
113
114        def renew_button_clicked(self,widget):
115               
116                self.thread=threading.Thread(target=self.renew_button_thread)
117                self.renew_button.set_sensitive(False)
118                self.thread.daemon=True
119                self.thread.start()
120               
121                allocation=self.renew_button.get_allocation()
122                w=allocation.width
123                h=allocation.height
124
125                self.renew_button.hide()
126                self.renew_spinner.start()
127                self.renew_spinner.set_size_request(w,h)
128                self.renew_spinner.show()
129
130                GLib.timeout_add(500,self.check_renew_thread)
131       
132        #def_gparted_button_clicked
133
134
135
136        def renew_button_thread(self):
137       
138                try:
139                        self.core.working=True
140                        self.core.dprint("renewing the certificate of the epoptes....","[StarBarBox]")
141                        os.system('epoptes-client -c')
142                        time.sleep(1)
143                        self.thread_ret={"status":True,"msg":"BROKEN"}
144                       
145                except Exception as e:
146                        self.core.dprint("(renew_button_thread)Error: %s"%e,"[EpoptesBox]")
147                        return False
148                       
149        #def gparted_button_thread
150
151
152        def check_renew_thread(self):
153               
154                if self.thread.is_alive():
155                        return True
156               
157                self.core.working=False
158
159                self.renew_spinner.hide()
160                self.renew_button.show()
161                self.renew_button.set_sensitive(True)
162                self.info_box_stack.set_visible_child_name("infobox")
163                self.txt_check_epoptes.set_text(_("The Epoptes certificate has been renewed"))
164               
165        #check_gparted_thread
Note: See TracBrowser for help on using the repository browser.