Skip to content

Commit a290ac9

Browse files
committed
Prevent new plugin overwrite top level localized menu
1 parent 3008739 commit a290ac9

File tree

1 file changed

+18
-2
lines changed

1 file changed

+18
-2
lines changed

Localize.py

+18-2
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@
1818
lDir = pDir + os.sep + 'locale'
1919

2020
mExt = '.sublime-menu.json'
21+
mMenu = 'Main.sublime-menu'
2122
sFile = pName + '.sublime-settings'
2223
cFile = pName + '.sublime-commands'
2324

@@ -77,6 +78,8 @@ def setLocale(locale, force = False):
7778
m.update(findMenu(d))
7879

7980
updateMenu(m)
81+
if getSetting('updateTopMenu', True):
82+
updateTopMenu()
8083
sublime.status_message('Locale ' + locale + ' has loaded.')
8184

8285
def getLink(locale):
@@ -181,7 +184,7 @@ def makeMenu(locale, force = False):
181184
},
182185
"caption": caption + ' (' + item + ')'
183186
})
184-
mFile = os.path.join(pDir, 'Main.sublime-menu')
187+
mFile = os.path.join(pDir, mMenu)
185188
saveJson(mFile, menu)
186189

187190
def updateMenu(m):
@@ -191,11 +194,24 @@ def updateMenu(m):
191194
target = os.path.join(dDir, k[:-5])
192195
menu = getJson(m[k])
193196
menu = updateHotkey(menu)
194-
if p == 'osx' and target[-17:].upper() == 'Main.sublime-menu'.upper():
197+
if p == 'osx' and target[-17:] == mMenu:
195198
menu[8]['caption'] = 'Preferences'
196199
menu[8]['mnemonic'] = 'n'
197200
saveJson(target, menu)
198201

202+
def updateTopMenu():
203+
tDir = pkgs + os.sep + 'ZZZZZZZZ-' + pName
204+
if not os.path.isdir(tDir):
205+
os.makedirs(tDir)
206+
topMenu = []
207+
menu = getJson(dDir + os.sep + mMenu)
208+
for idx, subMenu in enumerate(menu):
209+
if isset(subMenu, 'children'):
210+
del(subMenu['children'])
211+
topMenu.append(subMenu)
212+
target = os.path.join(tDir, mMenu)
213+
saveJson(target, topMenu)
214+
199215
def backupMenu():
200216
if not os.path.isdir(dDir):
201217
return

0 commit comments

Comments
 (0)