1
1

Compare commits

...

5 Commits

Author SHA1 Message Date
de94b6baf6 Correct piemenu name 2018-06-07 20:13:14 +02:00
6af169f536 Test fix for drag after release 2018-06-07 18:56:51 +02:00
9eb4a74e9f Move pie menus into the 3D view 2018-06-07 18:48:20 +02:00
15dd7bdf1e Correct enum 2018-06-07 18:31:47 +02:00
e2edea18c9 Try using pie menu for mode switching 2018-06-07 18:23:46 +02:00
9 changed files with 80 additions and 23 deletions

View File

@@ -19,7 +19,10 @@
# <pep8 compliant>
import bpy
from bpy.types import Operator
from bpy.types import (
Operator,
Menu,
)
from bpy.props import (
BoolProperty,
EnumProperty,

View File

@@ -3394,6 +3394,45 @@ class VIEW3D_MT_edit_gpencil_interpolate(Menu):
layout.operator("gpencil.interpolate_sequence", text="Sequence")
class VIEW3D_PIE_object_mode(Menu):
bl_label = "Mode"
def draw(self, context):
layout = self.layout
pie = layout.menu_pie()
pie.operator_enum("OBJECT_OT_mode_set", "mode")
class VIEW3D_PIE_view(Menu):
bl_label = "View"
bl_idname = "VIEW3D_PIE_view"
def draw(self, context):
layout = self.layout
pie = layout.menu_pie()
pie.operator_enum("VIEW3D_OT_viewnumpad", "type")
pie.operator("view3d.view_selected", text="View Selected", icon='ZOOM_SELECTED')
class VIEW3D_PIE_view_more(Menu):
bl_label = "More"
def draw(self, context):
layout = self.layout
pie = layout.menu_pie()
pie.operator("VIEW3D_OT_view_persportho", text="Persp/Ortho", icon='RESTRICT_VIEW_OFF')
pie.operator("VIEW3D_OT_camera_to_view")
pie.operator("VIEW3D_OT_view_selected")
pie.operator("VIEW3D_OT_view_all")
pie.operator("VIEW3D_OT_localview")
pie.operator("SCREEN_OT_region_quadview")
# ********** Panel **********
@@ -4009,6 +4048,8 @@ classes = (
VIEW3D_MT_edit_armature_delete,
VIEW3D_MT_edit_gpencil_transform,
VIEW3D_MT_edit_gpencil_interpolate,
VIEW3D_PIE_object_mode,
VIEW3D_PIE_view,
VIEW3D_PT_grease_pencil,
VIEW3D_PT_grease_pencil_palettecolor,
VIEW3D_PT_view3d_properties,

View File

@@ -335,6 +335,24 @@ void ED_keymap_mesh(wmKeyConfig *keyconf)
RNA_boolean_set(kmi->ptr, "vertex_only", true);
/* selecting */
kmi = WM_keymap_add_item(keymap, "MESH_OT_select_mode", ONEKEY, KM_PRESS, 0, 0);
RNA_enum_set(kmi->ptr, "type", SCE_SELECT_VERTEX);
kmi = WM_keymap_add_item(keymap, "MESH_OT_select_mode", TWOKEY, KM_PRESS, 0, 0);
RNA_enum_set(kmi->ptr, "type", SCE_SELECT_EDGE);
kmi = WM_keymap_add_item(keymap, "MESH_OT_select_mode", THREEKEY, KM_PRESS, 0, 0);
RNA_enum_set(kmi->ptr, "type", SCE_SELECT_FACE);
kmi = WM_keymap_add_item(keymap, "MESH_OT_select_mode", ONEKEY, KM_PRESS, KM_SHIFT, 0);
RNA_enum_set(kmi->ptr, "type", SCE_SELECT_VERTEX);
RNA_boolean_set(kmi->ptr, "use_extend", true);
kmi = WM_keymap_add_item(keymap, "MESH_OT_select_mode", TWOKEY, KM_PRESS, KM_SHIFT, 0);
RNA_enum_set(kmi->ptr, "type", SCE_SELECT_EDGE);
RNA_boolean_set(kmi->ptr, "use_extend", true);
kmi = WM_keymap_add_item(keymap, "MESH_OT_select_mode", THREEKEY, KM_PRESS, KM_SHIFT, 0);
RNA_enum_set(kmi->ptr, "type", SCE_SELECT_FACE);
RNA_boolean_set(kmi->ptr, "use_extend", true);
/* standard mouse selection goes via space_view3d */
kmi = WM_keymap_add_item(keymap, "MESH_OT_loop_select", SELECTMOUSE, KM_PRESS, KM_ALT, 0);
RNA_boolean_set(kmi->ptr, "extend", false);

View File

@@ -289,23 +289,11 @@ void ED_keymap_object(wmKeyConfig *keyconf)
keymap = WM_keymap_find(keyconf, "Object Non-modal", 0, 0);
/* modes */
{
short key_mode_pair[][2] = {
{ONEKEY, OB_MODE_OBJECT},
{TWOKEY, OB_MODE_EDIT},
{THREEKEY, OB_MODE_POSE},
{THREEKEY, OB_MODE_WEIGHT_PAINT},
{FOURKEY, OB_MODE_VERTEX_PAINT},
{FIVEKEY, OB_MODE_TEXTURE_PAINT},
{SIXKEY, OB_MODE_SCULPT},
{SEVENKEY, OB_MODE_PARTICLE_EDIT},
};
kmi = WM_keymap_add_item(keymap, "OBJECT_OT_mode_set", TABKEY, KM_RELEASE, 0, 0);
RNA_enum_set(kmi->ptr, "mode", OB_MODE_EDIT);
RNA_boolean_set(kmi->ptr, "toggle", true);
for (uint i = 0; i < ARRAY_SIZE(key_mode_pair); i++) {
kmi = WM_keymap_add_item(keymap, "OBJECT_OT_mode_set_or_submode", key_mode_pair[i][0], KM_PRESS, 0, 0);
RNA_enum_set(kmi->ptr, "mode", key_mode_pair[i][1]);
}
}
kmi = WM_keymap_add_menu_pie(keymap, "VIEW3D_PIE_object_mode", TABKEY, KM_CLICK_DRAG, 0, 0);
WM_keymap_add_item(keymap, "OBJECT_OT_origin_set", CKEY, KM_PRESS, KM_ALT | KM_SHIFT | KM_CTRL, 0);

View File

@@ -4808,7 +4808,7 @@ void ED_keymap_screen(wmKeyConfig *keyconf)
/* tests */
WM_keymap_add_item(keymap, "SCREEN_OT_region_quadview", QKEY, KM_PRESS, KM_CTRL | KM_ALT, 0);
WM_keymap_verify_item(keymap, "SCREEN_OT_repeat_history", F3KEY, KM_PRESS, 0, 0);
WM_keymap_verify_item(keymap, "SCREEN_OT_repeat_history", RKEY, KM_PRESS, KM_CTRL | KM_ALT, 0);
WM_keymap_add_item(keymap, "SCREEN_OT_repeat_last", RKEY, KM_PRESS, KM_SHIFT, 0);
WM_keymap_verify_item(keymap, "SCREEN_OT_region_flip", F5KEY, KM_PRESS, 0, 0);
WM_keymap_verify_item(keymap, "SCREEN_OT_redo_last", F6KEY, KM_PRESS, 0, 0);

View File

@@ -298,7 +298,7 @@ static void image_keymap(struct wmKeyConfig *keyconf)
WM_keymap_add_item(keymap, "IMAGE_OT_reload", RKEY, KM_PRESS, KM_ALT, 0);
WM_keymap_add_item(keymap, "IMAGE_OT_read_viewlayers", RKEY, KM_PRESS, KM_CTRL, 0);
WM_keymap_add_item(keymap, "IMAGE_OT_save", SKEY, KM_PRESS, KM_ALT, 0);
WM_keymap_add_item(keymap, "IMAGE_OT_save_as", F3KEY, KM_PRESS, 0, 0);
WM_keymap_add_item(keymap, "IMAGE_OT_save_as", SKEY, KM_PRESS, KM_SHIFT, 0);
WM_keymap_add_item(keymap, "IMAGE_OT_properties", NKEY, KM_PRESS, 0, 0);
WM_keymap_add_item(keymap, "IMAGE_OT_toolshelf", TKEY, KM_PRESS, 0, 0);

View File

@@ -301,6 +301,8 @@ void view3d_keymap(wmKeyConfig *keyconf)
kmi = WM_keymap_add_item(keymap, "VIEW3D_OT_view_all", CKEY, KM_PRESS, KM_SHIFT, 0);
RNA_boolean_set(kmi->ptr, "center", true);
WM_keymap_add_menu_pie(keymap, "VIEW3D_PIE_view", ACCENTGRAVEKEY, KM_PRESS, 0, 0);
/* numpad view hotkeys*/
RNA_enum_set(WM_keymap_add_item(keymap, "VIEW3D_OT_viewnumpad", PAD0, KM_PRESS, 0, 0)->ptr, "type", RV3D_VIEW_CAMERA);
RNA_enum_set(WM_keymap_add_item(keymap, "VIEW3D_OT_viewnumpad", PAD1, KM_PRESS, 0, 0)->ptr, "type", RV3D_VIEW_FRONT);

View File

@@ -2557,9 +2557,14 @@ static int wm_handlers_do(bContext *C, wmEvent *event, ListBase *handlers)
/* eventstate stores if previous event was a KM_PRESS, in case that
* wasn't handled, the KM_RELEASE will become a KM_CLICK */
if (win && event->val == KM_PRESS) {
win->eventstate->check_click = true;
win->eventstate->check_drag = true;
if (win) {
if (event->val == KM_PRESS) {
win->eventstate->check_click = true;
win->eventstate->check_drag = true;
}
else if (event->val == KM_RELEASE) {
win->eventstate->check_drag = false;
}
}
if (win && win->eventstate->prevtype == event->type) {

View File

@@ -3989,7 +3989,7 @@ void wm_window_keymap(wmKeyConfig *keyconf)
/* menus that can be accessed anywhere in blender */
WM_keymap_verify_item(keymap, "WM_OT_search_menu", TABKEY, KM_PRESS, 0, 0);
WM_keymap_verify_item(keymap, "WM_OT_search_menu", F3KEY, KM_PRESS, 0, 0);
#ifdef WITH_INPUT_NDOF
WM_keymap_add_menu(keymap, "USERPREF_MT_ndof_settings", NDOF_BUTTON_MENU, KM_PRESS, 0, 0);