30
30
def __init__(self, applet, vfs_uri, icon_size):
31
31
Backend.__init__(self, applet, icon_size)
32
32
self.backend_uri = vfs_uri
33
mode = gnomevfs.OPEN_WRITE | gnomevfs.OPEN_READ | gnomevfs.OPEN_RANDOM
34
if not gnomevfs.exists(self.backend_uri.as_uri()):
33
uri = self.backend_uri.as_uri()
34
if not uri.query_exists():
36
path = self.backend_uri.as_uri().parent.path
37
uri = self.backend_uri.as_uri().resolve_relative("/")
38
for folder in path.split("/"):
41
uri = uri.append_string(folder)
43
gnomevfs.make_directory(uri, 0777)
44
except gnomevfs.FileExistsError:
37
uri.get_parent().make_directory_with_parents(gio.Cancellable())
47
self.handle = gnomevfs.create(self.backend_uri.as_uri(), mode)
41
self.handle = uri.create()
49
self.handle = gnomevfs.Handle(self.backend_uri.as_uri(), mode)
43
self.handle = uri.append_to()
52
45
def remove(self,vfs_uris):
54
content = gnomevfs.read_entire_file(self.backend_uri.as_string())
47
content, length, etag = self.backend_uri.as_uri().load_contents()
55
48
lines = content.splitlines()
57
50
for vfs_uri in vfs_uris:
65
58
self.handle.write(buffer)
66
59
return Backend.remove(self, vfs_uris)
69
61
def add(self, vfs_uris, action=None):
70
62
if action is not None:
71
63
for vfs_uri in vfs_uris:
72
self.handle.seek(0, gnomevfs.SEEK_END)
64
self.handle.seek(0, 2) # hopefully 2 is SEEK_END
73
65
self.handle.write(vfs_uri.as_string() + os.linesep)
74
66
return Backend.add(self, vfs_uris)
78
content = gnomevfs.read_entire_file(
79
self.backend_uri.as_string())
69
content, length, etag = self.backend_uri.as_uri().load_contents()
80
70
lines = content.splitlines()
93
82
self.handle.truncate(0)
94
83
Backend.clear(self)
97
85
# Do nothing on "open"; not really useful
102
89
def get_type(self):
103
90
return BACKEND_TYPE_FILE
106
92
def _clear_cb(self, widget):
110
95
def get_menu_items(self):
112
97
clear_item = gtk.ImageMenuItem(stock_id=gtk.STOCK_CLEAR)