-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathapplet.py
51 lines (44 loc) · 1.75 KB
/
applet.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
import gobject
import gtk
from add_service import AddServiceDialog
from settings import Settings
class Applet:
def saveNewAccount(self, service, account_object):
print "SAVE", service
self._addMenuItem(service, self.editAccount)
self.addNewService(account_object)
self.mounter.mount(self.settings, account_object)
self.accounts[service] = account_object
self.settings.accounts = self.accounts
def addNewService(self, service_object):
service_name = service_object["service"]
if not service_name in self.services:
self.services[service_name] = {
"path": service_object["path"]
}
self.settings.services = self.services
def addNewAccount(self, w, buf):
self._dialog = AddServiceDialog(self.services, self.saveNewAccount)
def editAccount(self, w, buf):
pass
def quitSoftRaid(self, w, buf):
self.mounter.umount_all()
exit(0)
def _addMenuItem(self, text, callback):
menu_items = gtk.MenuItem(text)
menu_items.connect("activate", callback, None)
self.menu.append(menu_items)
menu_items.show()
def __init__(self, mounter):
self.mounter = mounter
self.settings = Settings()
self.accounts = self.settings.accounts
self.services = self.settings.services
# create a menu
self.menu = gtk.Menu()
self._addMenuItem("Add service", self.addNewAccount)
self._addMenuItem("Quit SoftRaid", self.quitSoftRaid)
for account_name in self.accounts:
print "load ", account_name
mounter.mount(self.settings, self.accounts[account_name])
self._addMenuItem(account_name, self.editAccount)