Skip to content

Commit

Permalink
Updated shortcuts, reorganized menu, improved logic for ordering the …
Browse files Browse the repository at this point in the history
…menu items
  • Loading branch information
onecrayon committed Dec 8, 2009
1 parent e77ef31 commit 6f94b2f
Show file tree
Hide file tree
Showing 2 changed files with 82 additions and 36 deletions.
78 changes: 51 additions & 27 deletions TEAforCoda.py
Original file line number Diff line number Diff line change
Expand Up @@ -60,35 +60,32 @@ def initWithPlugInController_bundle_(self, controller, bundle):
self.bundle = bundle

# Loop over the actions and add them to the menus
keys = actions.keys()
rootlevel = {}
submenus = {}
# Extract out our submenus and root items
for key, value in actions.iteritems():
if 'submenu' in value:
if not str(value['submenu']) in submenus:
submenus[str(value['submenu'])] = {}
submenus[str(value['submenu'])][key] = value
else:
rootlevel[key] = value
# Process the submenus
submenu_keys = submenus.keys()
submenu_keys.sort()
for menu in submenu_keys:
menu_actions = submenus[menu]
temp_keys = menu_actions.keys()
temp_keys.sort()
for title in temp_keys:
action = menu_actions[title]
self.register_action(controller, action, title)
# Process the root level items
keys = rootlevel.keys()
keys.sort()
for title in keys:
action = actions[title]
if 'action' not in action:
NSLog('TEA: module missing `action` entry')
continue
# Required items
actionname = action['action']
# Set up defaults
submenu = action['submenu'] if 'submenu' in action else None
shortcut = action['shortcut'] if 'shortcut' in action else ''
options = action['options'] if 'options' in action else NSDictionary.dictionary()

rep = NSDictionary.dictionaryWithObjectsAndKeys_(
actionname,
'actionname',
options,
'options'
)
controller.registerActionWithTitle_underSubmenuWithTitle_target_selector_representedObject_keyEquivalent_pluginName_(
title,
submenu,
self,
'act:',
rep,
shortcut,
'TEA for Coda'
)
action = rootlevel[title]
self.register_action(controller, action, title)

# Add the Support/Scripts folder to the Python import path
sys.path.append(os.path.join(bundle.bundlePath(), "Support/Scripts"))
Expand All @@ -111,3 +108,30 @@ def act_(self, sender):
else:
target = mod
target.act(self.controller, self.bundle, sender.representedObject().objectForKey_('options'))

def register_action(self, controller, action, title):
if 'action' not in action:
NSLog('TEA: module missing `action` entry')
return False
# Required items
actionname = action['action']
# Set up defaults
submenu = action['submenu'] if 'submenu' in action else None
shortcut = action['shortcut'] if 'shortcut' in action else ''
options = action['options'] if 'options' in action else NSDictionary.dictionary()

rep = NSDictionary.dictionaryWithObjectsAndKeys_(
actionname,
'actionname',
options,
'options'
)
controller.registerActionWithTitle_underSubmenuWithTitle_target_selector_representedObject_keyEquivalent_pluginName_(
title,
submenu,
self,
'act:',
rep,
shortcut,
'TEA for Coda'
)
40 changes: 31 additions & 9 deletions src/Contents/Resources/English.lproj/TextActions.plist
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@
<dict>
<key>TEATextActions</key>
<dict>
<key>Balance</key>
<key>Balanced Tag</key>
<dict>
<key>action</key>
<string>TEABalance</string>
Expand All @@ -14,9 +14,11 @@
<string>out</string>
</dict>
<key>shortcut</key>
<string>^d</string>
<string>^b</string>
<key>submenu</key>
<string>Select</string>
</dict>
<key>Balance Inward</key>
<key>Balanced Tag (Inward)</key>
<dict>
<key>action</key>
<string>TEABalance</string>
Expand All @@ -26,7 +28,9 @@
<string>in</string>
</dict>
<key>shortcut</key>
<string>^$D</string>
<string>^$B</string>
<key>submenu</key>
<string>Select</string>
</dict>

<key>Emphasize</key>
Expand All @@ -47,9 +51,9 @@
<false/>
</dict>
<key>shortcut</key>
<string>^i</string>
<string>^~i</string>
<key>submenu</key>
<string>Formatting</string>
<string>HTML</string>
</dict>
<key>Expand Abbreviation</key>
<dict>
Expand All @@ -70,6 +74,8 @@
</dict>
<key>shortcut</key>
<string>^,</string>
<key>submenu</key>
<string>Zen</string>
</dict>
<key>Indent New Line</key>
<dict>
Expand All @@ -87,6 +93,8 @@
<key>shortcut</key>
<string>^$
</string>
<key>submenu</key>
<string>General</string>
</dict>
<key>Insert Linebreak</key>
<dict>
Expand All @@ -108,6 +116,8 @@
<key>shortcut</key>
<string>^
</string>
<key>submenu</key>
<string>HTML</string>
</dict>
<key>Line</key>
<dict>
Expand Down Expand Up @@ -167,9 +177,9 @@
<false/>
</dict>
<key>shortcut</key>
<string>^b</string>
<string>^~b</string>
<key>submenu</key>
<string>Formatting</string>
<string>HTML</string>
</dict>
<key>Trim Line(s)</key>
<dict>
Expand All @@ -190,6 +200,8 @@
</dict>
<key>shortcut</key>
<string></string>
<key>submenu</key>
<string>General</string>
</dict>
<key>Word</key>
<dict>
Expand Down Expand Up @@ -230,6 +242,8 @@
</dict>
<key>shortcut</key>
<string>@$^W</string>
<key>submenu</key>
<string>HTML</string>
</dict>
<key>Wrap Selection In Link</key>
<dict>
Expand All @@ -244,6 +258,8 @@
</dict>
<key>shortcut</key>
<string>^$L</string>
<key>submenu</key>
<string>HTML</string>
</dict>
<key>Wrap Selection In Tag</key>
<dict>
Expand All @@ -264,20 +280,26 @@
</dict>
<key>shortcut</key>
<string>^$W</string>
<key>submenu</key>
<string>HTML</string>
</dict>
<key>Wrap With Abbreviation</key>
<dict>
<key>action</key>
<string>TEAWrapWithAbbreviation</string>
<key>shortcut</key>
<string>@$W</string>
<string>^$A</string>
<key>submenu</key>
<string>Zen</string>
</dict>
<key>Update &lt;img&gt; Size</key>
<dict>
<key>action</key>
<string>TEAUpdateImageSize</string>
<key>shortcut</key>
<string>@I</string>
<key>submenu</key>
<string>HTML</string>
</dict>
</dict>

Expand Down

0 comments on commit 6f94b2f

Please sign in to comment.