mirror of
https://github.com/nextcloud/desktop.git
synced 2024-11-25 14:36:01 +03:00
Nautilus Shell Integration: Only show menu entry for item state OK
If the file is ignored or errornous, do not add the sharing menu item to the context menu. This is (a partly) solution to bug ä2775
This commit is contained in:
parent
b07ab14c31
commit
b012fae144
1 changed files with 13 additions and 9 deletions
|
@ -48,6 +48,8 @@ class SocketConnect(GObject.GObject):
|
||||||
self._sock = None
|
self._sock = None
|
||||||
self._listeners = [self._update_registered_paths]
|
self._listeners = [self._update_registered_paths]
|
||||||
self._remainder = ''
|
self._remainder = ''
|
||||||
|
self.nautilusVFSFile_table = {} # not needed in this object actually but shared
|
||||||
|
# all over the other objects.
|
||||||
|
|
||||||
# returns true when one should try again!
|
# returns true when one should try again!
|
||||||
if self._connectToSocketServer():
|
if self._connectToSocketServer():
|
||||||
|
@ -156,7 +158,9 @@ class MenuExtension(GObject.GObject, Nautilus.MenuProvider):
|
||||||
syncedFile = False
|
syncedFile = False
|
||||||
for reg_path in socketConnect.registered_paths:
|
for reg_path in socketConnect.registered_paths:
|
||||||
filename = get_local_path(file.get_uri())
|
filename = get_local_path(file.get_uri())
|
||||||
if filename.startswith(reg_path):
|
# only show the menu extension if the file is synced and the sync
|
||||||
|
# status is ok. Not for ignored files etc.
|
||||||
|
if filename.startswith(reg_path) and socketConnect.nautilusVFSFile_table[filename]['state'] == 'OK':
|
||||||
syncedFile = True
|
syncedFile = True
|
||||||
|
|
||||||
# if it is neither in a synced folder or is a directory
|
# if it is neither in a synced folder or is a directory
|
||||||
|
@ -183,12 +187,12 @@ class SyncStateExtension(GObject.GObject, Nautilus.ColumnProvider, Nautilus.Info
|
||||||
def __init__(self):
|
def __init__(self):
|
||||||
GObject.GObject.__init__(self)
|
GObject.GObject.__init__(self)
|
||||||
|
|
||||||
self.nautilusVFSFile_table = {}
|
socketConnect.nautilusVFSFile_table = {}
|
||||||
socketConnect.addListener(self.handle_commands)
|
socketConnect.addListener(self.handle_commands)
|
||||||
|
|
||||||
def find_item_for_file(self, path):
|
def find_item_for_file(self, path):
|
||||||
if path in self.nautilusVFSFile_table:
|
if path in socketConnect.nautilusVFSFile_table:
|
||||||
return self.nautilusVFSFile_table[path]
|
return socketConnect.nautilusVFSFile_table[path]
|
||||||
else:
|
else:
|
||||||
return None
|
return None
|
||||||
|
|
||||||
|
@ -202,12 +206,12 @@ class SyncStateExtension(GObject.GObject, Nautilus.ColumnProvider, Nautilus.Info
|
||||||
|
|
||||||
def invalidate_items_underneath(self, path):
|
def invalidate_items_underneath(self, path):
|
||||||
update_items = []
|
update_items = []
|
||||||
if not self.nautilusVFSFile_table:
|
if not socketConnect.nautilusVFSFile_table:
|
||||||
self.askForOverlay(path)
|
self.askForOverlay(path)
|
||||||
else:
|
else:
|
||||||
for p in self.nautilusVFSFile_table:
|
for p in socketConnect.nautilusVFSFile_table:
|
||||||
if p == path or p.startswith(path):
|
if p == path or p.startswith(path):
|
||||||
item = self.nautilusVFSFile_table[p]['item']
|
item = socketConnect.nautilusVFSFile_table[p]['item']
|
||||||
update_items.append(item)
|
update_items.append(item)
|
||||||
|
|
||||||
for item in update_items:
|
for item in update_items:
|
||||||
|
@ -240,7 +244,7 @@ class SyncStateExtension(GObject.GObject, Nautilus.ColumnProvider, Nautilus.Info
|
||||||
item = itemStore['item']
|
item = itemStore['item']
|
||||||
item.add_emblem(emblem)
|
item.add_emblem(emblem)
|
||||||
# print "Setting emblem on " + args[1]+ "<>"+emblem+"<>"
|
# print "Setting emblem on " + args[1]+ "<>"+emblem+"<>"
|
||||||
self.nautilusVFSFile_table[args[1]] = {'item': item, 'state':newState}
|
socketConnect.nautilusVFSFile_table[args[1]] = {'item': item, 'state':newState}
|
||||||
|
|
||||||
elif action == 'UPDATE_VIEW':
|
elif action == 'UPDATE_VIEW':
|
||||||
# Search all items underneath this path and invalidate them
|
# Search all items underneath this path and invalidate them
|
||||||
|
@ -262,7 +266,7 @@ class SyncStateExtension(GObject.GObject, Nautilus.ColumnProvider, Nautilus.Info
|
||||||
|
|
||||||
for reg_path in socketConnect.registered_paths:
|
for reg_path in socketConnect.registered_paths:
|
||||||
if filename.startswith(reg_path):
|
if filename.startswith(reg_path):
|
||||||
self.nautilusVFSFile_table[filename] = {'item': item, 'state':''}
|
socketConnect.nautilusVFSFile_table[filename] = {'item': item, 'state':''}
|
||||||
|
|
||||||
# item.add_string_attribute('share_state', "share state")
|
# item.add_string_attribute('share_state', "share state")
|
||||||
self.askForOverlay(filename)
|
self.askForOverlay(filename)
|
||||||
|
|
Loading…
Reference in a new issue