From e455536943a862334a765fdef7edfd16b2e9b5b1 Mon Sep 17 00:00:00 2001 From: Aaron Carlisle Date: Sat, 4 Apr 2020 12:41:58 -0400 Subject: UI: 3D Viewport text edit menus - Adds select menu - Removes undo/redo controls - Adds delete menu - Refactor - Combines font and text menu The goal is to match other edit menus better and match the text editor. --- .../keyconfig/keymap_data/blender_default.py | 2 +- .../keymap_data/industry_compatible_data.py | 2 +- release/scripts/startup/bl_ui/space_view3d.py | 160 ++++++++++++--------- 3 files changed, 97 insertions(+), 67 deletions(-) (limited to 'release') diff --git a/release/scripts/presets/keyconfig/keymap_data/blender_default.py b/release/scripts/presets/keyconfig/keymap_data/blender_default.py index 7ee42fc4dc4..3944f8f0817 100644 --- a/release/scripts/presets/keyconfig/keymap_data/blender_default.py +++ b/release/scripts/presets/keyconfig/keymap_data/blender_default.py @@ -4782,7 +4782,7 @@ def km_font(params): ("font.text_insert", {"type": 'TEXTINPUT', "value": 'ANY', "any": True}, None), ("font.text_insert", {"type": 'BACK_SPACE', "value": 'PRESS', "alt": True}, {"properties": [("accent", True)]}), - *_template_items_context_menu("VIEW3D_MT_edit_text_context_menu", params.context_menu_event), + *_template_items_context_menu("VIEW3D_MT_edit_font_context_menu", params.context_menu_event), ]) return keymap diff --git a/release/scripts/presets/keyconfig/keymap_data/industry_compatible_data.py b/release/scripts/presets/keyconfig/keymap_data/industry_compatible_data.py index 46beda12033..729a1987ab7 100644 --- a/release/scripts/presets/keyconfig/keymap_data/industry_compatible_data.py +++ b/release/scripts/presets/keyconfig/keymap_data/industry_compatible_data.py @@ -3747,7 +3747,7 @@ def km_font(params): ("font.text_insert", {"type": 'TEXTINPUT', "value": 'ANY', "any": True}, None), ("font.text_insert", {"type": 'BACK_SPACE', "value": 'PRESS', "alt": True}, {"properties": [("accent", True)]}), - *_template_items_context_menu("VIEW3D_MT_edit_text_context_menu", {"type": 'RIGHTMOUSE', "value": 'PRESS'}), + *_template_items_context_menu("VIEW3D_MT_edit_font_context_menu", {"type": 'RIGHTMOUSE', "value": 'PRESS'}), ]) diff --git a/release/scripts/startup/bl_ui/space_view3d.py b/release/scripts/startup/bl_ui/space_view3d.py index c3245b943da..88b94a86f00 100644 --- a/release/scripts/startup/bl_ui/space_view3d.py +++ b/release/scripts/startup/bl_ui/space_view3d.py @@ -1706,60 +1706,33 @@ class VIEW3D_MT_select_edit_surface(Menu): layout.operator("curve.select_less") -class VIEW3D_MT_edit_text_context_menu(Menu): - bl_label = "Text Context Menu" - - def draw(self, _context): - layout = self.layout - - layout.operator_context = 'INVOKE_DEFAULT' - - layout.operator("font.text_cut", text="Cut") - layout.operator("font.text_copy", text="Copy", icon='COPYDOWN') - layout.operator("font.text_paste", text="Paste", icon='PASTEDOWN') - - layout.separator() - - layout.operator("font.select_all") - - layout.separator() - - layout.menu("VIEW3D_MT_edit_font") - - class VIEW3D_MT_select_edit_text(Menu): - # intentional name mismatch - # select menu for 3d-text doesn't make sense - bl_label = "Edit" + bl_label = "Select" def draw(self, _context): layout = self.layout - layout.operator("ed.undo") - layout.operator("ed.redo") - - layout.separator() - - layout.operator("font.text_cut", text="Cut") - layout.operator("font.text_copy", text="Copy", icon='COPYDOWN') - layout.operator("font.text_paste", text="Paste", icon='PASTEDOWN') + layout.operator("font.select_all", text="All") layout.separator() - layout.operator("font.text_paste_from_file") + layout.operator("font.move_select", text="Previous Block").type = 'PREVIOUS_PAGE' + layout.operator("font.move_select", text="Next Block").type = 'NEXT_PAGE' layout.separator() - layout.operator("font.select_all") + layout.operator("font.move_select", text="Line Begin").type = 'LINE_BEGIN' + layout.operator("font.move_select", text="Line End").type = 'LINE_END' layout.separator() - layout.operator("font.case_set", text="To Uppercase").case = 'UPPER' - layout.operator("font.case_set", text="To Lowercase").case = 'LOWER' + layout.operator("font.move_select", text="Previous Line").type = 'PREVIOUS_LINE' + layout.operator("font.move_select", text="Next Line").type = 'NEXT_LINE' layout.separator() - layout.menu("VIEW3D_MT_edit_text_chars") + layout.operator("font.move_select", text="Previous Word").type = 'PREVIOUS_WORD' + layout.operator("font.move_select", text="Next Word").type = 'NEXT_WORD' class VIEW3D_MT_select_edit_metaball(Menu): @@ -4512,18 +4485,44 @@ class VIEW3D_MT_edit_surface(Menu): draw = draw_curve -class VIEW3D_MT_edit_font(Menu): - bl_label = "Font" +class VIEW3D_MT_edit_font_chars(Menu): + bl_label = "Special Characters" def draw(self, _context): layout = self.layout - layout.operator("font.style_toggle", text="Toggle Bold", icon='BOLD').style = 'BOLD' - layout.operator("font.style_toggle", text="Toggle Italic", icon='ITALIC').style = 'ITALIC' - layout.operator("font.style_toggle", text="Toggle Underline", icon='UNDERLINE').style = 'UNDERLINE' - layout.operator("font.style_toggle", text="Toggle Small Caps", icon='SMALL_CAPS').style = 'SMALL_CAPS' + layout.operator("font.text_insert", text="Copyright").text = "\u00A9" + layout.operator("font.text_insert", text="Registered Trademark").text = "\u00AE" - layout.menu("VIEW3D_MT_edit_font_kerning") + layout.separator() + + layout.operator("font.text_insert", text="Degree Sign").text = "\u00B0" + layout.operator("font.text_insert", text="Multiplication Sign").text = "\u00D7" + layout.operator("font.text_insert", text="Circle").text = "\u008A" + + layout.separator() + + layout.operator("font.text_insert", text="Superscript 1").text = "\u00B9" + layout.operator("font.text_insert", text="Superscript 2").text = "\u00B2" + layout.operator("font.text_insert", text="Superscript 3").text = "\u00B3" + + layout.separator() + + layout.operator("font.text_insert", text="Double >>").text = "\u00BB" + layout.operator("font.text_insert", text="Double <<").text = "\u00AB" + layout.operator("font.text_insert", text="Promillage").text = "\u2030" + + layout.separator() + + layout.operator("font.text_insert", text="Dutch Florin").text = "\u00A4" + layout.operator("font.text_insert", text="British Pound").text = "\u00A3" + layout.operator("font.text_insert", text="Japanese Yen").text = "\u00A5" + + layout.separator() + + layout.operator("font.text_insert", text="German S").text = "\u00DF" + layout.operator("font.text_insert", text="Spanish Question Mark").text = "\u00BF" + layout.operator("font.text_insert", text="Spanish Exclamation Mark").text = "\u00A1" class VIEW3D_MT_edit_font_kerning(Menu): @@ -4541,44 +4540,74 @@ class VIEW3D_MT_edit_font_kerning(Menu): layout.operator("font.change_spacing", text="Reset Kerning").delta = -kerning -class VIEW3D_MT_edit_text_chars(Menu): - bl_label = "Special Characters" +class VIEW3D_MT_edit_font_delete(Menu): + bl_label = "Delete" def draw(self, _context): layout = self.layout - layout.operator("font.text_insert", text="Copyright").text = "\u00A9" - layout.operator("font.text_insert", text="Registered Trademark").text = "\u00AE" + layout.operator("font.delete", text="Previous Character").type = 'PREVIOUS_CHARACTER' + layout.operator("font.delete", text="Next Character").type = 'NEXT_CHARACTER' + layout.operator("font.delete", text="Previous Word").type = 'PREVIOUS_WORD' + layout.operator("font.delete", text="Next Word").type = 'NEXT_WORD' + + +class VIEW3D_MT_edit_font(Menu): + bl_label = "Text" + + def draw(self, _context): + layout = self.layout + + layout.operator("font.text_cut", text="Cut") + layout.operator("font.text_copy", text="Copy", icon='COPYDOWN') + layout.operator("font.text_paste", text="Paste", icon='PASTEDOWN') layout.separator() - layout.operator("font.text_insert", text="Degree Sign").text = "\u00B0" - layout.operator("font.text_insert", text="Multiplication Sign").text = "\u00D7" - layout.operator("font.text_insert", text="Circle").text = "\u008A" + layout.operator("font.text_paste_from_file") layout.separator() - layout.operator("font.text_insert", text="Superscript 1").text = "\u00B9" - layout.operator("font.text_insert", text="Superscript 2").text = "\u00B2" - layout.operator("font.text_insert", text="Superscript 3").text = "\u00B3" + layout.operator("font.case_set", text="To Uppercase").case = 'UPPER' + layout.operator("font.case_set", text="To Lowercase").case = 'LOWER' layout.separator() - layout.operator("font.text_insert", text="Double >>").text = "\u00BB" - layout.operator("font.text_insert", text="Double <<").text = "\u00AB" - layout.operator("font.text_insert", text="Promillage").text = "\u2030" + layout.menu("VIEW3D_MT_edit_font_chars") layout.separator() - layout.operator("font.text_insert", text="Dutch Florin").text = "\u00A4" - layout.operator("font.text_insert", text="British Pound").text = "\u00A3" - layout.operator("font.text_insert", text="Japanese Yen").text = "\u00A5" + layout.operator("font.style_toggle", text="Toggle Bold", icon='BOLD').style = 'BOLD' + layout.operator("font.style_toggle", text="Toggle Italic", icon='ITALIC').style = 'ITALIC' + layout.operator("font.style_toggle", text="Toggle Underline", icon='UNDERLINE').style = 'UNDERLINE' + layout.operator("font.style_toggle", text="Toggle Small Caps", icon='SMALL_CAPS').style = 'SMALL_CAPS' + + layout.menu("VIEW3D_MT_edit_font_kerning") layout.separator() - layout.operator("font.text_insert", text="German S").text = "\u00DF" - layout.operator("font.text_insert", text="Spanish Question Mark").text = "\u00BF" - layout.operator("font.text_insert", text="Spanish Exclamation Mark").text = "\u00A1" + layout.menu("VIEW3D_MT_edit_font_delete") + + +class VIEW3D_MT_edit_font_context_menu(Menu): + bl_label = "Text Context Menu" + + def draw(self, _context): + layout = self.layout + + layout.operator_context = 'INVOKE_DEFAULT' + + layout.operator("font.text_cut", text="Cut") + layout.operator("font.text_copy", text="Copy", icon='COPYDOWN') + layout.operator("font.text_paste", text="Paste", icon='PASTEDOWN') + + layout.separator() + + layout.operator("font.select_all") + + layout.separator() + + layout.menu("VIEW3D_MT_edit_font") class VIEW3D_MT_edit_meta(Menu): @@ -7351,7 +7380,6 @@ classes = ( VIEW3D_MT_select_edit_mesh, VIEW3D_MT_select_edit_curve, VIEW3D_MT_select_edit_surface, - VIEW3D_MT_edit_text_context_menu, VIEW3D_MT_select_edit_text, VIEW3D_MT_select_edit_metaball, VIEW3D_MT_edit_lattice_context_menu, @@ -7465,8 +7493,10 @@ classes = ( VIEW3D_MT_edit_curve_showhide, VIEW3D_MT_edit_surface, VIEW3D_MT_edit_font, + VIEW3D_MT_edit_font_chars, VIEW3D_MT_edit_font_kerning, - VIEW3D_MT_edit_text_chars, + VIEW3D_MT_edit_font_delete, + VIEW3D_MT_edit_font_context_menu, VIEW3D_MT_edit_meta, VIEW3D_MT_edit_meta_showhide, VIEW3D_MT_edit_lattice, -- cgit v1.2.3