Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender-addons.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorlijenstina <lijenstina@gmail.com>2018-04-02 14:10:46 +0300
committerlijenstina <lijenstina@gmail.com>2018-04-02 14:10:46 +0300
commit8f2fd7e23f0b5ce023440182f51c40e88d663325 (patch)
treeb637089f423793a8db480bd54c8e8ea6135c9d78 /development_iskeyfree.py
parentd20b2acfd52e1159fb05178fa82419a565a01585 (diff)
Is key Free: Add export shortcuts into a text block
Bump version to 1.1.1 Some style tweaks Use register_class instead of register_module Add operator to export all shortcuts into a text block
Diffstat (limited to 'development_iskeyfree.py')
-rw-r--r--development_iskeyfree.py545
1 files changed, 315 insertions, 230 deletions
diff --git a/development_iskeyfree.py b/development_iskeyfree.py
index 0408a648..7851afee 100644
--- a/development_iskeyfree.py
+++ b/development_iskeyfree.py
@@ -21,33 +21,33 @@
bl_info = {
"name": "Is key Free",
"author": "Antonio Vazquez (antonioya)",
- "version": (1, 0, 2),
+ "version": (1, 1, 1),
"blender": (2, 6, 9),
"location": "Text Editor > Props Shelf (Ctrl/t > IsKeyFree Tools",
- "description": "Find free shortcuts and inform of used keys",
+ "description": "Find free shortcuts, inform about used and print a key list",
"wiki_url": "https://wiki.blender.org/index.php/Extensions:2.6"
"/Py/Scripts/Development/IsKeyFree",
- "category": "Development"}
+ "category": "Development"
+}
import bpy
from bpy.props import (
- StringProperty,
- BoolProperty,
- EnumProperty,
- PointerProperty,
- )
+ BoolProperty,
+ EnumProperty,
+ StringProperty,
+ PointerProperty,
+)
from bpy.types import (
- Operator,
- Panel,
- PropertyGroup,
- )
+ Operator,
+ Panel,
+ PropertyGroup,
+)
# ------------------------------------------------------
# Class to find keymaps
# ------------------------------------------------------
-
class MyChecker():
lastfind = None
lastkey = None
@@ -191,16 +191,11 @@ mychecker = MyChecker() # Global class handler
# ------------------------------------------------------
# Button: Class for search button
# ------------------------------------------------------
-
-
class RunActionCheck(Operator):
bl_idname = "iskeyfree.action_check"
bl_label = ""
bl_description = "Verify if the selected shortcut is free"
- # ------------------------------
- # Execute
- # ------------------------------
# noinspection PyUnusedLocal
def execute(self, context):
scene = context.scene.is_keyfree
@@ -239,6 +234,8 @@ class UIControlPanel(Panel):
row = layout.row()
row.prop(scene, "numpad")
+ layout.operator("iskeyfree.run_export_keys", icon="FILE_TEXT")
+
global mychecker
mylist = mychecker.getlist()
oldcontext = None
@@ -270,8 +267,6 @@ class UIControlPanel(Panel):
# ------------------------------------------------------
# Update key (special values) event handler
# ------------------------------------------------------
-
-
# noinspection PyUnusedLocal
def update_data(self, context):
scene = context.scene.is_keyfree
@@ -281,230 +276,320 @@ def update_data(self, context):
class IskeyFreeProperties(PropertyGroup):
data = StringProperty(
- name="Key", maxlen=32,
- description="Shortcut to verify"
- )
+ name="Key", maxlen=32,
+ description="Shortcut to verify"
+ )
use_crtl = BoolProperty(
- name="Ctrl",
- description="Ctrl key used in shortcut",
- default=False
- )
+ name="Ctrl",
+ description="Ctrl key used in shortcut",
+ default=False
+ )
use_alt = BoolProperty(
- name="Alt",
- description="Alt key used in shortcut",
- default=False
- )
+ name="Alt",
+ description="Alt key used in shortcut",
+ default=False
+ )
use_shift = BoolProperty(
- name="Shift",
- description="Shift key used in shortcut",
- default=False
- )
+ name="Shift",
+ description="Shift key used in shortcut",
+ default=False
+ )
use_oskey = BoolProperty(
- name="OsKey",
- description="Operating system key used in shortcut",
- default=False
- )
+ name="OsKey",
+ description="Operating system key used in shortcut",
+ default=False
+ )
numpad = EnumProperty(
- items=(('NONE', "Select key", ""),
- ("LEFTMOUSE", "LEFTMOUSE", ""),
- ("MIDDLEMOUSE", "MIDDLEMOUSE", ""),
- ("RIGHTMOUSE", "RIGHTMOUSE", ""),
- ("BUTTON4MOUSE", "BUTTON4MOUSE", ""),
- ("BUTTON5MOUSE", "BUTTON5MOUSE", ""),
- ("BUTTON6MOUSE", "BUTTON6MOUSE", ""),
- ("BUTTON7MOUSE", "BUTTON7MOUSE", ""),
- ("ACTIONMOUSE", "ACTIONMOUSE", ""),
- ("SELECTMOUSE", "SELECTMOUSE", ""),
- ("MOUSEMOVE", "MOUSEMOVE", ""),
- ("INBETWEEN_MOUSEMOVE", "INBETWEEN_MOUSEMOVE", ""),
- ("TRACKPADPAN", "TRACKPADPAN", ""),
- ("TRACKPADZOOM", "TRACKPADZOOM", ""),
- ("MOUSEROTATE", "MOUSEROTATE", ""),
- ("WHEELUPMOUSE", "WHEELUPMOUSE", ""),
- ("WHEELDOWNMOUSE", "WHEELDOWNMOUSE", ""),
- ("WHEELINMOUSE", "WHEELINMOUSE", ""),
- ("WHEELOUTMOUSE", "WHEELOUTMOUSE", ""),
- ("EVT_TWEAK_L", "EVT_TWEAK_L", ""),
- ("EVT_TWEAK_M", "EVT_TWEAK_M", ""),
- ("EVT_TWEAK_R", "EVT_TWEAK_R", ""),
- ("EVT_TWEAK_A", "EVT_TWEAK_A", ""),
- ("EVT_TWEAK_S", "EVT_TWEAK_S", ""),
- ("A", "A", ""),
- ("B", "B", ""),
- ("C", "C", ""),
- ("D", "D", ""),
- ("E", "E", ""),
- ("F", "F", ""),
- ("G", "G", ""),
- ("H", "H", ""),
- ("I", "I", ""),
- ("J", "J", ""),
- ("K", "K", ""),
- ("L", "L", ""),
- ("M", "M", ""),
- ("N", "N", ""),
- ("O", "O", ""),
- ("P", "P", ""),
- ("Q", "Q", ""),
- ("R", "R", ""),
- ("S", "S", ""),
- ("T", "T", ""),
- ("U", "U", ""),
- ("V", "V", ""),
- ("W", "W", ""),
- ("X", "X", ""),
- ("Y", "Y", ""),
- ("Z", "Z", ""),
- ("ZERO", "ZERO", ""),
- ("ONE", "ONE", ""),
- ("TWO", "TWO", ""),
- ("THREE", "THREE", ""),
- ("FOUR", "FOUR", ""),
- ("FIVE", "FIVE", ""),
- ("SIX", "SIX", ""),
- ("SEVEN", "SEVEN", ""),
- ("EIGHT", "EIGHT", ""),
- ("NINE", "NINE", ""),
- ("LEFT_CTRL", "LEFT_CTRL", ""),
- ("LEFT_ALT", "LEFT_ALT", ""),
- ("LEFT_SHIFT", "LEFT_SHIFT", ""),
- ("RIGHT_ALT", "RIGHT_ALT", ""),
- ("RIGHT_CTRL", "RIGHT_CTRL", ""),
- ("RIGHT_SHIFT", "RIGHT_SHIFT", ""),
- ("OSKEY", "OSKEY", ""),
- ("GRLESS", "GRLESS", ""),
- ("ESC", "ESC", ""),
- ("TAB", "TAB", ""),
- ("RET", "RET", ""),
- ("SPACE", "SPACE", ""),
- ("LINE_FEED", "LINE_FEED", ""),
- ("BACK_SPACE", "BACK_SPACE", ""),
- ("DEL", "DEL", ""),
- ("SEMI_COLON", "SEMI_COLON", ""),
- ("PERIOD", "PERIOD", ""),
- ("COMMA", "COMMA", ""),
- ("QUOTE", "QUOTE", ""),
- ("ACCENT_GRAVE", "ACCENT_GRAVE", ""),
- ("MINUS", "MINUS", ""),
- ("SLASH", "SLASH", ""),
- ("BACK_SLASH", "BACK_SLASH", ""),
- ("EQUAL", "EQUAL", ""),
- ("LEFT_BRACKET", "LEFT_BRACKET", ""),
- ("RIGHT_BRACKET", "RIGHT_BRACKET", ""),
- ("LEFT_ARROW", "LEFT_ARROW", ""),
- ("DOWN_ARROW", "DOWN_ARROW", ""),
- ("RIGHT_ARROW", "RIGHT_ARROW", ""),
- ("UP_ARROW", "UP_ARROW", ""),
- ("NUMPAD_1", "NUMPAD_1", ""),
- ("NUMPAD_2", "NUMPAD_2", ""),
- ("NUMPAD_3", "NUMPAD_3", ""),
- ("NUMPAD_4", "NUMPAD_4", ""),
- ("NUMPAD_5", "NUMPAD_5", ""),
- ("NUMPAD_6", "NUMPAD_6", ""),
- ("NUMPAD_7", "NUMPAD_7", ""),
- ("NUMPAD_8", "NUMPAD_8", ""),
- ("NUMPAD_9", "NUMPAD_9", ""),
- ("NUMPAD_0", "NUMPAD_0", ""),
- ("NUMPAD_PERIOD", "NUMPAD_PERIOD", ""),
- ("NUMPAD_SLASH", "NUMPAD_SLASH", ""),
- ("NUMPAD_ASTERIX", "NUMPAD_ASTERIX", ""),
- ("NUMPAD_MINUS", "NUMPAD_MINUS", ""),
- ("NUMPAD_ENTER", "NUMPAD_ENTER", ""),
- ("NUMPAD_PLUS", "NUMPAD_PLUS", ""),
- ("F1", "F1", ""),
- ("F2", "F2", ""),
- ("F3", "F3", ""),
- ("F4", "F4", ""),
- ("F5", "F5", ""),
- ("F6", "F6", ""),
- ("F7", "F7", ""),
- ("F8", "F8", ""),
- ("F9", "F9", ""),
- ("F10", "F10", ""),
- ("F11", "F11", ""),
- ("F12", "F12", ""),
- ("F13", "F13", ""),
- ("F14", "F14", ""),
- ("F15", "F15", ""),
- ("F16", "F16", ""),
- ("F17", "F17", ""),
- ("F18", "F18", ""),
- ("F19", "F19", ""),
- ("PAUSE", "PAUSE", ""),
- ("INSERT", "INSERT", ""),
- ("HOME", "HOME", ""),
- ("PAGE_UP", "PAGE_UP", ""),
- ("PAGE_DOWN", "PAGE_DOWN", ""),
- ("END", "END", ""),
- ("MEDIA_PLAY", "MEDIA_PLAY", ""),
- ("MEDIA_STOP", "MEDIA_STOP", ""),
- ("MEDIA_FIRST", "MEDIA_FIRST", ""),
- ("MEDIA_LAST", "MEDIA_LAST", ""),
- ("TEXTINPUT", "TEXTINPUT", ""),
- ("WINDOW_DEACTIVATE", "WINDOW_DEACTIVATE", ""),
- ("TIMER", "TIMER", ""),
- ("TIMER0", "TIMER0", ""),
- ("TIMER1", "TIMER1", ""),
- ("TIMER2", "TIMER2", ""),
- ("TIMER_JOBS", "TIMER_JOBS", ""),
- ("TIMER_AUTOSAVE", "TIMER_AUTOSAVE", ""),
- ("TIMER_REPORT", "TIMER_REPORT", ""),
- ("TIMERREGION", "TIMERREGION", ""),
- ("NDOF_MOTION", "NDOF_MOTION", ""),
- ("NDOF_BUTTON_MENU", "NDOF_BUTTON_MENU", ""),
- ("NDOF_BUTTON_FIT", "NDOF_BUTTON_FIT", ""),
- ("NDOF_BUTTON_TOP", "NDOF_BUTTON_TOP", ""),
- ("NDOF_BUTTON_BOTTOM", "NDOF_BUTTON_BOTTOM", ""),
- ("NDOF_BUTTON_LEFT", "NDOF_BUTTON_LEFT", ""),
- ("NDOF_BUTTON_RIGHT", "NDOF_BUTTON_RIGHT", ""),
- ("NDOF_BUTTON_FRONT", "NDOF_BUTTON_FRONT", ""),
- ("NDOF_BUTTON_BACK", "NDOF_BUTTON_BACK", ""),
- ("NDOF_BUTTON_ISO1", "NDOF_BUTTON_ISO1", ""),
- ("NDOF_BUTTON_ISO2", "NDOF_BUTTON_ISO2", ""),
- ("NDOF_BUTTON_ROLL_CW", "NDOF_BUTTON_ROLL_CW", ""),
- ("NDOF_BUTTON_ROLL_CCW", "NDOF_BUTTON_ROLL_CCW", ""),
- ("NDOF_BUTTON_SPIN_CW", "NDOF_BUTTON_SPIN_CW", ""),
- ("NDOF_BUTTON_SPIN_CCW", "NDOF_BUTTON_SPIN_CCW", ""),
- ("NDOF_BUTTON_TILT_CW", "NDOF_BUTTON_TILT_CW", ""),
- ("NDOF_BUTTON_TILT_CCW", "NDOF_BUTTON_TILT_CCW", ""),
- ("NDOF_BUTTON_ROTATE", "NDOF_BUTTON_ROTATE", ""),
- ("NDOF_BUTTON_PANZOOM", "NDOF_BUTTON_PANZOOM", ""),
- ("NDOF_BUTTON_DOMINANT", "NDOF_BUTTON_DOMINANT", ""),
- ("NDOF_BUTTON_PLUS", "NDOF_BUTTON_PLUS", ""),
- ("NDOF_BUTTON_MINUS", "NDOF_BUTTON_MINUS", ""),
- ("NDOF_BUTTON_ESC", "NDOF_BUTTON_ESC", ""),
- ("NDOF_BUTTON_ALT", "NDOF_BUTTON_ALT", ""),
- ("NDOF_BUTTON_SHIFT", "NDOF_BUTTON_SHIFT", ""),
- ("NDOF_BUTTON_CTRL", "NDOF_BUTTON_CTRL", ""),
- ("NDOF_BUTTON_1", "NDOF_BUTTON_1", ""),
- ("NDOF_BUTTON_2", "NDOF_BUTTON_2", ""),
- ("NDOF_BUTTON_3", "NDOF_BUTTON_3", ""),
- ("NDOF_BUTTON_4", "NDOF_BUTTON_4", ""),
- ("NDOF_BUTTON_5", "NDOF_BUTTON_5", ""),
- ("NDOF_BUTTON_6", "NDOF_BUTTON_6", ""),
- ("NDOF_BUTTON_7", "NDOF_BUTTON_7", ""),
- ("NDOF_BUTTON_8", "NDOF_BUTTON_8", ""),
- ("NDOF_BUTTON_9", "NDOF_BUTTON_9", ""),
- ("NDOF_BUTTON_10", "NDOF_BUTTON_10", ""),
- ("NDOF_BUTTON_A", "NDOF_BUTTON_A", ""),
- ("NDOF_BUTTON_B", "NDOF_BUTTON_B", ""),
- ("NDOF_BUTTON_C", "NDOF_BUTTON_C", "")
- ),
- name="Quick Type",
- description="Enter key code in find text",
- update=update_data
- )
+ items=(
+ ('NONE', "Select key", ""),
+ ("LEFTMOUSE", "LEFTMOUSE", ""),
+ ("MIDDLEMOUSE", "MIDDLEMOUSE", ""),
+ ("RIGHTMOUSE", "RIGHTMOUSE", ""),
+ ("BUTTON4MOUSE", "BUTTON4MOUSE", ""),
+ ("BUTTON5MOUSE", "BUTTON5MOUSE", ""),
+ ("BUTTON6MOUSE", "BUTTON6MOUSE", ""),
+ ("BUTTON7MOUSE", "BUTTON7MOUSE", ""),
+ ("ACTIONMOUSE", "ACTIONMOUSE", ""),
+ ("SELECTMOUSE", "SELECTMOUSE", ""),
+ ("MOUSEMOVE", "MOUSEMOVE", ""),
+ ("INBETWEEN_MOUSEMOVE", "INBETWEEN_MOUSEMOVE", ""),
+ ("TRACKPADPAN", "TRACKPADPAN", ""),
+ ("TRACKPADZOOM", "TRACKPADZOOM", ""),
+ ("MOUSEROTATE", "MOUSEROTATE", ""),
+ ("WHEELUPMOUSE", "WHEELUPMOUSE", ""),
+ ("WHEELDOWNMOUSE", "WHEELDOWNMOUSE", ""),
+ ("WHEELINMOUSE", "WHEELINMOUSE", ""),
+ ("WHEELOUTMOUSE", "WHEELOUTMOUSE", ""),
+ ("EVT_TWEAK_L", "EVT_TWEAK_L", ""),
+ ("EVT_TWEAK_M", "EVT_TWEAK_M", ""),
+ ("EVT_TWEAK_R", "EVT_TWEAK_R", ""),
+ ("EVT_TWEAK_A", "EVT_TWEAK_A", ""),
+ ("EVT_TWEAK_S", "EVT_TWEAK_S", ""),
+ ("A", "A", ""),
+ ("B", "B", ""),
+ ("C", "C", ""),
+ ("D", "D", ""),
+ ("E", "E", ""),
+ ("F", "F", ""),
+ ("G", "G", ""),
+ ("H", "H", ""),
+ ("I", "I", ""),
+ ("J", "J", ""),
+ ("K", "K", ""),
+ ("L", "L", ""),
+ ("M", "M", ""),
+ ("N", "N", ""),
+ ("O", "O", ""),
+ ("P", "P", ""),
+ ("Q", "Q", ""),
+ ("R", "R", ""),
+ ("S", "S", ""),
+ ("T", "T", ""),
+ ("U", "U", ""),
+ ("V", "V", ""),
+ ("W", "W", ""),
+ ("X", "X", ""),
+ ("Y", "Y", ""),
+ ("Z", "Z", ""),
+ ("ZERO", "ZERO", ""),
+ ("ONE", "ONE", ""),
+ ("TWO", "TWO", ""),
+ ("THREE", "THREE", ""),
+ ("FOUR", "FOUR", ""),
+ ("FIVE", "FIVE", ""),
+ ("SIX", "SIX", ""),
+ ("SEVEN", "SEVEN", ""),
+ ("EIGHT", "EIGHT", ""),
+ ("NINE", "NINE", ""),
+ ("LEFT_CTRL", "LEFT_CTRL", ""),
+ ("LEFT_ALT", "LEFT_ALT", ""),
+ ("LEFT_SHIFT", "LEFT_SHIFT", ""),
+ ("RIGHT_ALT", "RIGHT_ALT", ""),
+ ("RIGHT_CTRL", "RIGHT_CTRL", ""),
+ ("RIGHT_SHIFT", "RIGHT_SHIFT", ""),
+ ("OSKEY", "OSKEY", ""),
+ ("GRLESS", "GRLESS", ""),
+ ("ESC", "ESC", ""),
+ ("TAB", "TAB", ""),
+ ("RET", "RET", ""),
+ ("SPACE", "SPACE", ""),
+ ("LINE_FEED", "LINE_FEED", ""),
+ ("BACK_SPACE", "BACK_SPACE", ""),
+ ("DEL", "DEL", ""),
+ ("SEMI_COLON", "SEMI_COLON", ""),
+ ("PERIOD", "PERIOD", ""),
+ ("COMMA", "COMMA", ""),
+ ("QUOTE", "QUOTE", ""),
+ ("ACCENT_GRAVE", "ACCENT_GRAVE", ""),
+ ("MINUS", "MINUS", ""),
+ ("SLASH", "SLASH", ""),
+ ("BACK_SLASH", "BACK_SLASH", ""),
+ ("EQUAL", "EQUAL", ""),
+ ("LEFT_BRACKET", "LEFT_BRACKET", ""),
+ ("RIGHT_BRACKET", "RIGHT_BRACKET", ""),
+ ("LEFT_ARROW", "LEFT_ARROW", ""),
+ ("DOWN_ARROW", "DOWN_ARROW", ""),
+ ("RIGHT_ARROW", "RIGHT_ARROW", ""),
+ ("UP_ARROW", "UP_ARROW", ""),
+ ("NUMPAD_1", "NUMPAD_1", ""),
+ ("NUMPAD_2", "NUMPAD_2", ""),
+ ("NUMPAD_3", "NUMPAD_3", ""),
+ ("NUMPAD_4", "NUMPAD_4", ""),
+ ("NUMPAD_5", "NUMPAD_5", ""),
+ ("NUMPAD_6", "NUMPAD_6", ""),
+ ("NUMPAD_7", "NUMPAD_7", ""),
+ ("NUMPAD_8", "NUMPAD_8", ""),
+ ("NUMPAD_9", "NUMPAD_9", ""),
+ ("NUMPAD_0", "NUMPAD_0", ""),
+ ("NUMPAD_PERIOD", "NUMPAD_PERIOD", ""),
+ ("NUMPAD_SLASH", "NUMPAD_SLASH", ""),
+ ("NUMPAD_ASTERIX", "NUMPAD_ASTERIX", ""),
+ ("NUMPAD_MINUS", "NUMPAD_MINUS", ""),
+ ("NUMPAD_ENTER", "NUMPAD_ENTER", ""),
+ ("NUMPAD_PLUS", "NUMPAD_PLUS", ""),
+ ("F1", "F1", ""),
+ ("F2", "F2", ""),
+ ("F3", "F3", ""),
+ ("F4", "F4", ""),
+ ("F5", "F5", ""),
+ ("F6", "F6", ""),
+ ("F7", "F7", ""),
+ ("F8", "F8", ""),
+ ("F9", "F9", ""),
+ ("F10", "F10", ""),
+ ("F11", "F11", ""),
+ ("F12", "F12", ""),
+ ("F13", "F13", ""),
+ ("F14", "F14", ""),
+ ("F15", "F15", ""),
+ ("F16", "F16", ""),
+ ("F17", "F17", ""),
+ ("F18", "F18", ""),
+ ("F19", "F19", ""),
+ ("PAUSE", "PAUSE", ""),
+ ("INSERT", "INSERT", ""),
+ ("HOME", "HOME", ""),
+ ("PAGE_UP", "PAGE_UP", ""),
+ ("PAGE_DOWN", "PAGE_DOWN", ""),
+ ("END", "END", ""),
+ ("MEDIA_PLAY", "MEDIA_PLAY", ""),
+ ("MEDIA_STOP", "MEDIA_STOP", ""),
+ ("MEDIA_FIRST", "MEDIA_FIRST", ""),
+ ("MEDIA_LAST", "MEDIA_LAST", ""),
+ ("TEXTINPUT", "TEXTINPUT", ""),
+ ("WINDOW_DEACTIVATE", "WINDOW_DEACTIVATE", ""),
+ ("TIMER", "TIMER", ""),
+ ("TIMER0", "TIMER0", ""),
+ ("TIMER1", "TIMER1", ""),
+ ("TIMER2", "TIMER2", ""),
+ ("TIMER_JOBS", "TIMER_JOBS", ""),
+ ("TIMER_AUTOSAVE", "TIMER_AUTOSAVE", ""),
+ ("TIMER_REPORT", "TIMER_REPORT", ""),
+ ("TIMERREGION", "TIMERREGION", ""),
+ ("NDOF_MOTION", "NDOF_MOTION", ""),
+ ("NDOF_BUTTON_MENU", "NDOF_BUTTON_MENU", ""),
+ ("NDOF_BUTTON_FIT", "NDOF_BUTTON_FIT", ""),
+ ("NDOF_BUTTON_TOP", "NDOF_BUTTON_TOP", ""),
+ ("NDOF_BUTTON_BOTTOM", "NDOF_BUTTON_BOTTOM", ""),
+ ("NDOF_BUTTON_LEFT", "NDOF_BUTTON_LEFT", ""),
+ ("NDOF_BUTTON_RIGHT", "NDOF_BUTTON_RIGHT", ""),
+ ("NDOF_BUTTON_FRONT", "NDOF_BUTTON_FRONT", ""),
+ ("NDOF_BUTTON_BACK", "NDOF_BUTTON_BACK", ""),
+ ("NDOF_BUTTON_ISO1", "NDOF_BUTTON_ISO1", ""),
+ ("NDOF_BUTTON_ISO2", "NDOF_BUTTON_ISO2", ""),
+ ("NDOF_BUTTON_ROLL_CW", "NDOF_BUTTON_ROLL_CW", ""),
+ ("NDOF_BUTTON_ROLL_CCW", "NDOF_BUTTON_ROLL_CCW", ""),
+ ("NDOF_BUTTON_SPIN_CW", "NDOF_BUTTON_SPIN_CW", ""),
+ ("NDOF_BUTTON_SPIN_CCW", "NDOF_BUTTON_SPIN_CCW", ""),
+ ("NDOF_BUTTON_TILT_CW", "NDOF_BUTTON_TILT_CW", ""),
+ ("NDOF_BUTTON_TILT_CCW", "NDOF_BUTTON_TILT_CCW", ""),
+ ("NDOF_BUTTON_ROTATE", "NDOF_BUTTON_ROTATE", ""),
+ ("NDOF_BUTTON_PANZOOM", "NDOF_BUTTON_PANZOOM", ""),
+ ("NDOF_BUTTON_DOMINANT", "NDOF_BUTTON_DOMINANT", ""),
+ ("NDOF_BUTTON_PLUS", "NDOF_BUTTON_PLUS", ""),
+ ("NDOF_BUTTON_MINUS", "NDOF_BUTTON_MINUS", ""),
+ ("NDOF_BUTTON_ESC", "NDOF_BUTTON_ESC", ""),
+ ("NDOF_BUTTON_ALT", "NDOF_BUTTON_ALT", ""),
+ ("NDOF_BUTTON_SHIFT", "NDOF_BUTTON_SHIFT", ""),
+ ("NDOF_BUTTON_CTRL", "NDOF_BUTTON_CTRL", ""),
+ ("NDOF_BUTTON_1", "NDOF_BUTTON_1", ""),
+ ("NDOF_BUTTON_2", "NDOF_BUTTON_2", ""),
+ ("NDOF_BUTTON_3", "NDOF_BUTTON_3", ""),
+ ("NDOF_BUTTON_4", "NDOF_BUTTON_4", ""),
+ ("NDOF_BUTTON_5", "NDOF_BUTTON_5", ""),
+ ("NDOF_BUTTON_6", "NDOF_BUTTON_6", ""),
+ ("NDOF_BUTTON_7", "NDOF_BUTTON_7", ""),
+ ("NDOF_BUTTON_8", "NDOF_BUTTON_8", ""),
+ ("NDOF_BUTTON_9", "NDOF_BUTTON_9", ""),
+ ("NDOF_BUTTON_10", "NDOF_BUTTON_10", ""),
+ ("NDOF_BUTTON_A", "NDOF_BUTTON_A", ""),
+ ("NDOF_BUTTON_B", "NDOF_BUTTON_B", ""),
+ ("NDOF_BUTTON_C", "NDOF_BUTTON_C", "")
+ ),
+ name="Quick Type",
+ description="Enter key code in find text",
+ update=update_data
+ )
+
+
+class IsKeyFreeRunExportKeys(Operator):
+ bl_idname = "iskeyfree.run_export_keys"
+ bl_label = "List all Shortcuts"
+ bl_description = ("List all existing shortcuts in a text block\n"
+ "The newly generated list will be made active in the Text Editor\n"
+ "To access the previous ones, select them from the Header dropdown")
+
+ def all_shortcuts_name(self, context):
+ new_name, def_name, ext = "", "All_Shortcuts", ".txt"
+ suffix = 1
+ try:
+ # first slap a simple linear count + 1 for numeric suffix, if it fails
+ # harvest for the rightmost numbers and append the max value
+ list_txt = []
+ data_txt = bpy.data.texts
+ list_txt = [txt.name for txt in data_txt if txt.name.startswith("All_Shortcuts")]
+ new_name = "{}_{}{}".format(def_name, len(list_txt) + 1, ext)
+
+ if new_name in list_txt:
+ from re import findall
+ test_num = [findall("\d+", words) for words in list_txt]
+ suffix += max([int(l[-1]) for l in test_num])
+ new_name = "{}_{}{}".format(def_name, suffix, ext)
+ return new_name
+ except:
+ return None
+
+ def execute(self, context):
+ wm = bpy.context.window_manager
+ from collections import defaultdict
+ mykeys = defaultdict(list)
+ file_name = self.all_shortcuts_name(context) or "All_Shortcut.txt"
+ start_note = "# Note: Some of the shortcuts entries don't have a name. Mostly Modal stuff\n"
+ col_width, col_shortcuts = 2, 2
+
+ for ctx_type, keyboardmap in wm.keyconfigs.user.keymaps.items():
+ for myitem in keyboardmap.keymap_items:
+ padding = len(myitem.name)
+ col_width = padding + 2 if padding > col_width else col_width
+
+ short_type = myitem.type if myitem.type else "UNKNOWN"
+ is_ctrl = " Ctrl" if myitem.ctrl is True else ""
+ is_alt = " Alt" if myitem.alt is True else ""
+ is_shift = " Shift" if myitem.shift is True else ""
+ is_oskey = " OsKey" if myitem.oskey is True else ""
+ short_cuts = "{}{}{}{}{}".format(short_type, is_ctrl, is_alt, is_shift, is_oskey)
+
+ t = (
+ myitem.name if myitem.name else "No Name",
+ short_cuts,
+ )
+ mykeys[ctx_type].append(t)
+ padding_s = len(short_cuts) + 2
+ col_shortcuts = padding_s if padding_s > col_shortcuts else col_shortcuts
+
+ max_line = col_shortcuts + col_width + 4
+ textblock = bpy.data.texts.new(file_name)
+ total = sum([len(mykeys[ctxs]) for ctxs in mykeys])
+ textblock.write('# %d Total Shortcuts\n\n' % total)
+ textblock.write(start_note)
+
+ for ctx in mykeys:
+ textblock.write("\n[%s]\nEntries: %s\n\n" % (ctx, len(mykeys[ctx])))
+ line_k = sorted(mykeys[ctx])
+ for keys in line_k:
+ add_ticks = "-" * (max_line - (len(keys[0]) + len(keys[1])))
+ entries = "{ticks} {entry}".format(ticks=add_ticks, entry=keys[1])
+ textblock.write("{name} {entry}\n".format(name=keys[0], entry=entries))
+
+ textblock.write("\n\n")
+
+ # try to set the created text block to active
+ if context.area.type in {"TEXT_EDITOR"}:
+ bpy.context.space_data.text = bpy.data.texts[file_name]
+
+ self.report({'INFO'}, "See %s textblock" % file_name)
+
+ return {"FINISHED"}
# -----------------------------------------------------
# Registration
# ------------------------------------------------------
+classes = (
+ IskeyFreeProperties,
+ RunActionCheck,
+ UIControlPanel,
+ IsKeyFreeRunExportKeys,
+)
+
def register():
- bpy.utils.register_module(__name__)
+ for cls in classes:
+ bpy.utils.register_class(cls)
bpy.types.Scene.is_keyfree = PointerProperty(type=IskeyFreeProperties)
def unregister():
- bpy.utils.unregister_module(__name__)
+ for cls in classes:
+ bpy.utils.unregister_class(cls)
del bpy.types.Scene.is_keyfree