source: lliurex-gdrive/trunk/fuentes/lliurex-gdrive-gui.install/usr/share/lliurex-gdrive/ProfileBox.py @ 3781

Last change on this file since 3781 was 3781, checked in by jrpelegrina, 3 years ago

Reorder folder and add svg

File size: 5.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
9import Dialog
10import time
11import threading
12import sys
13import os
14
15_=gettext.gettext
16
17
18RSRC="./"
19PROFILE_IMAGE=RSRC+"rsrc/profile.svg"
20FOLDER_IMAGE=RSRC+"rsrc/folder.svg"
21MOUNT_ON_IMAGE=RSRC+"rsrc/mount_on.svg"
22MOUNT_OFF_IMAGE=RSRC+"rsrc/mount_off.svg"
23EDIT_IMAGE=RSRC+"rsrc/edit.svg"
24DELETE_IMAGE=RSRC+"rsrc/trash.svg"
25
26class ProfileBox(Gtk.VBox):
27       
28        def __init__(self):
29               
30                Gtk.VBox.__init__(self)
31               
32                self.core=Core.Core.get_core()
33               
34                builder=Gtk.Builder()
35                ui_path=RSRC + "/rsrc/lliurex-gdrive.ui"
36                builder.add_from_file(ui_path)
37                self.main_box=builder.get_object("profile_data_box")
38                self.counts_label=builder.get_object("counts_label")
39                self.profile_list_box=builder.get_object("profile_list_box")
40                self.profile_list_vp=builder.get_object("profile_list_viewport")
41                self.add_new_profile_button=builder.get_object("add_new_profile_button")
42                self.exit_button=builder.get_object("exit_button")
43                self.new_profile_window=builder.get_object("new_profile_window")
44                self.profile_label=builder.get_object("profile_label")
45                self.profile_entry=builder.get_object("profile_entry")
46                self.email_entry=builder.get_object("email_entry")
47                self.mountpoint_entry=builder.get_object("mountpoint_entry")
48                self.automount_entry=builder.get_object("automount_entry")
49                self.accept_add_profile_button=builder.get_object("accept_add_profile_button")
50                self.cancel_add_profile_button=builder.get_object("cancel_add_profile_button")
51               
52               
53               
54               
55               
56                self.pack_start(self.main_box,True,True,0)
57                       
58                self.connect_signals()
59                self.set_css_info()
60               
61                #self.current_var=None
62                #self.current_id=None
63               
64                #self.thread=threading.Thread()
65                #self.thread_ret=None
66               
67        #def __init__
68       
69       
70        def set_css_info(self):
71               
72                self.style_provider=Gtk.CssProvider()
73                f=Gio.File.new_for_path("lliurex-gdrive.css")
74                self.style_provider.load_from_file(f)
75                Gtk.StyleContext.add_provider_for_screen(Gdk.Screen.get_default(),self.style_provider,Gtk.STYLE_PROVIDER_PRIORITY_APPLICATION)
76                self.profile_label.set_name("OPTION_LABEL")
77               
78               
79               
80                       
81        #def set-css_info
82       
83               
84        def connect_signals(self):
85
86                self.add_new_profile_button.connect("clicked",self.add_new_profile_button_clicked)
87                #self.exit_button.connect("clicked",self.quit)
88                self.accept_add_profile_button.connect("clicked",self.accept_add_profile_clicked)
89                #self.cancel_add_profile_button.connect("clicked",self.cancel_add_profile_button)
90                self.new_profile_window.connect("delete_event",self.hide_window)
91
92
93        #def connect_signals
94       
95        def load_info(self,info):
96
97                for item in info:
98                        profile=item
99                        email=info[item]["email"]
100                        mountpoint=info[item]["mountpoint"]
101                        self.new_profile_button(profile,email,mountpoint)
102
103        def hide_window(self,widget,event):
104               
105                widget.hide()
106                return True
107
108        def add_new_profile_button_clicked(self,widget):
109               
110                self.profile_entry.set_text("")
111                self.email_entry.set_text("")
112                self.mountpoint_entry.set_filename(os.environ["HOME"])
113                self.automount_entry.set_state(False)
114                self.new_profile_window.show()
115
116
117        def new_profile_button(self,profile_name,email,mountpoint):
118               
119                hbox=Gtk.HBox()
120                profile_image=Gtk.Image.new_from_file(PROFILE_IMAGE)
121                profile_image.set_margin_left(10)
122                profile_image.set_halign(Gtk.Align.CENTER)
123                profile_image.set_valign(Gtk.Align.CENTER)
124                profile_info="<span><b>"+profile_name+"</b></span>\n"+"<span>"+email+"</span>"
125                profile=Gtk.Label()
126                profile.set_markup(profile_info)
127                folder_image=Gtk.Image.new_from_file(FOLDER_IMAGE)
128                folder_image.set_margin_left(20)
129                folder_image.set_halign(Gtk.Align.CENTER)
130                folder_image.set_valign(Gtk.Align.CENTER)
131                #profile_info="<span><b>"+profile_name+"</b></span>\n"+"<span>"+email+"</span>"
132                folder=Gtk.Label()
133                folder.set_markup(mountpoint)
134                folder.set_margin_left(10)
135                delete=Gtk.Button()
136                delete_image=Gtk.Image.new_from_file(DELETE_IMAGE)
137                delete.add(delete_image)
138                delete.set_halign(Gtk.Align.CENTER)
139                delete.set_valign(Gtk.Align.CENTER)
140                delete.set_name("DELETE_ITEM_BUTTON")
141                delete.connect("clicked",self.delete_profile_clicked,hbox)
142                edit=Gtk.Button()
143                edit_image=Gtk.Image.new_from_file(EDIT_IMAGE)
144                edit.add(edit_image)
145                edit.set_halign(Gtk.Align.CENTER)
146                edit.set_valign(Gtk.Align.CENTER)
147                edit.set_name("EDIT_ITEM_BUTTON")
148                edit.connect("clicked",self.edit_profile_clicked,hbox)
149                mount=Gtk.Button()
150                mount_image=Gtk.Image.new_from_file(MOUNT_ON_IMAGE)
151                mount.add(mount_image)
152                mount.set_halign(Gtk.Align.CENTER)
153                mount.set_valign(Gtk.Align.CENTER)
154                mount.set_name("MOUNT_ITEM_BUTTON")
155                mount.connect("clicked",self.mount_profile_clicked,hbox)
156                hbox.pack_start(profile_image,False,False,0)
157                hbox.pack_start(profile,False,False,0)
158                hbox.pack_start(folder_image,False,False,0)
159                hbox.pack_start(folder,False,False,0)
160                hbox.pack_end(delete,False,False,10)
161                hbox.pack_end(edit,False,False,10)
162                hbox.pack_end(mount,False,False,10)
163                hbox.show_all()
164                profile.set_margin_right(20)
165                profile.set_margin_left(10)
166                profile.set_margin_top(20)
167                profile.set_margin_bottom(20)
168                hbox.set_name("PROFILE_BOX")
169                self.profile_list_box.pack_start(hbox,False,False,5)
170                self.profile_list_box.queue_draw()
171                hbox.queue_draw()
172               
173        #def new_package_button
174
175        def accept_add_profile_clicked(self,widget):
176               
177                profile=self.profile_entry.get_text()
178                profile=profile.strip(" ")
179                email=self.email_entry.get_text()
180                email=email.strip(" ")
181                       
182                self.new_profile_button(profile,email)
183                       
184                self.new_profile_window.hide()
185               
186
187        def delete_profile_clicked(self,button,hbox):   
188                print "BORRANDO"
189
190        def mount_profile_clicked(self,button,hbox):
191                print "SINCRONIZANDO"
192                mount_image=Gtk.Image.new_from_file(MOUNT_OFF_IMAGE)
193                hbox.get_children()[4].set_image(mount_image)
194
195        def edit_profile_clicked(self,button,hbox):
196                print "EDITANDO"       
197               
198#class profilebox
Note: See TracBrowser for help on using the repository browser.