source: home-eraser/trunk/fuentes/home-eraser.install/usr/share/home-eraser/HomeEraser.py @ 7454

Last change on this file since 7454 was 7454, checked in by daduve, 17 months ago

Creating glade

File size: 2.6 KB
Line 
1#!/usr/bin/env python
2# -*- coding: utf-8 -*
3
4import gi
5gi.require_version('Gtk', '3.0')
6from gi.repository import Gtk,GObject, GLib
7
8import signal
9import gettext
10import sys
11import threading
12import copy
13import subprocess
14import os
15
16signal.signal(signal.SIGINT, signal.SIG_DFL)
17gettext.textdomain('lliurex-pefilreset')
18_ = gettext.gettext
19
20import time
21
22
23class Spinner:
24    busy = False
25    delay = 0.1
26
27    @staticmethod
28    def spinning_cursor():
29        while 1: 
30            for cursor in '|/-\\': yield cursor
31
32    def __init__(self, delay=None):
33        self.spinner_generator = self.spinning_cursor()
34        if delay and float(delay): self.delay = delay
35
36    def spinner_task(self):
37        while self.busy:
38            sys.stdout.write(next(self.spinner_generator))
39            sys.stdout.flush()
40            time.sleep(self.delay)
41            sys.stdout.write('\b')
42            sys.stdout.flush()
43
44    def start(self):
45        self.busy = True
46        threading.Thread(target=self.spinner_task).start()
47
48    def stop(self):
49        self.busy = False
50        time.sleep(self.delay)
51
52class HomeEraser:
53       
54        def __init__(self,args_dic):
55               
56                self.perfilreset_bin="/usr/sbin/home-eraser"
57               
58                if args_dic["gui"]:
59                       
60                        self.start_gui()
61                        GObject.threads_init()
62                        Gtk.main()
63               
64        #def __init__(self):
65       
66       
67        def start_gui(self):
68
69                builder=Gtk.Builder()
70                builder.set_translation_domain('home-eraser')
71                builder.add_from_file("/usr/share/home-eraser/rsrc/home-eraser.ui")
72                self.main_window=builder.get_object("main_window")
73                self.main_window.set_icon_from_file('/usr/share/home-eraser/rsrc/home-eraser-icon.svg')
74               
75                self.main_box=builder.get_object("main_box")
76               
77                self.apply_button=builder.get_object("apply_button")
78               
79               
80                self.connect_signals()
81                self.main_window.show()
82               
83        #def start_gui
84       
85       
86        def connect_signals(self):
87               
88                self.main_window.connect("destroy",Gtk.main_quit)
89               
90                self.apply_button.connect("clicked",self.apply_button_clicked)
91                #self.reset_button.connect("clicked",self.reset_button_clicked)
92               
93        #def connect_signals
94       
95       
96        # SIGNALS ########################################################
97       
98       
99        def apply_button_clicked(self,widget=True):
100               
101                print ("Process closed")
102                Gtk.main_quit()
103                sys.exit(0)
104               
105        #def check_changes
106       
107       
108       
109       
110        def reset_button_clicked(self,widget):
111                spinner = Spinner()
112                spinner.start()
113                subprocess.call("/usr/sbin/lliurex-perfilreset 1", shell=True)
114                os.system("pkill mate-panel")
115                time.sleep(3)
116                spinner.stop()
117                #print ("hola")
118               
119        #def reset_clicked
120       
121        # ##################### ##########################################
122       
123       
124       
125#class LliurexPerfilreset
126
127
128if __name__=="__main__":
129       
130        pass
131       
Note: See TracBrowser for help on using the repository browser.