nautilus shell integration: Fix when there are several branded client installed
authorOlivier Goffart <ogoffart@woboq.com>
Mon, 4 Jun 2018 11:48:31 +0000 (13:48 +0200)
committerKevin Ottens <kevin.ottens@nextcloud.com>
Tue, 15 Dec 2020 09:57:55 +0000 (10:57 +0100)
It appears that several extension can be loaded at the same time, but their
classname for the extension need to be different, otherwise only the last
loaded one would be active.

Issue #6524

shell_integration/nautilus/setappname.sh
shell_integration/nautilus/syncstate.py

index d59c3110e761d2ab0493ff74b336c9610173c048..6e8d5f3f7a9a3110a5339d09c1eeed8076cc70e6 100755 (executable)
@@ -3,4 +3,6 @@
 # this script replaces the line
 #  appname = 'Nextcloud'
 # with the correct branding name in the syncstate.py script
-sed -i.org -e 's/appname\s*=\s*'"'"'Nextcloud'"'/appname = '$1'/" syncstate.py
+# It also replaces the occurences in the class name so several
+# branding can be loaded (see #6524)
+sed -i.org -e "s/Nextcloud/$1/g" syncstate.py
index a3ff9f4f28f7048fb7687019fc09f76da0ab4097..c4dacb5b0f503487507f1f6103a7bb929b09aba9 100644 (file)
@@ -28,10 +28,8 @@ import time
 
 from gi.repository import GObject, Nautilus
 
-# Please do not touch the following line.
-# The reason is that we use a script to adopt this file for branding
-# by replacing this line with the branding app name. If the following
-# line is changed, the script can not match the pattern and fails.
+# Note: setappname.sh will search and replace 'ownCloud' on this file to update this line and other
+# occurrences of the name
 appname = 'Nextcloud'
 
 print("Initializing "+appname+"-client-nautilus extension")
@@ -177,7 +175,7 @@ class SocketConnect(GObject.GObject):
 socketConnect = SocketConnect()
 
 
-class MenuExtension(GObject.GObject, Nautilus.MenuProvider):
+class MenuExtension_ownCloud(GObject.GObject, Nautilus.MenuProvider):
     def __init__(self):
         GObject.GObject.__init__(self)
 
@@ -348,7 +346,7 @@ class MenuExtension(GObject.GObject, Nautilus.MenuProvider):
         socketConnect.sendCommand(action + ":" + filename + "\n")
 
 
-class SyncStateExtension(GObject.GObject, Nautilus.InfoProvider):
+class SyncStateExtension_ownCloud(GObject.GObject, Nautilus.InfoProvider):
     def __init__(self):
         GObject.GObject.__init__(self)