Commit Graph

128 Commits

Author SHA1 Message Date
Nathan Letwory
ca63b15131 Apply [#26364] New Windows keyboard handling
Submitted by Alexander Kuznetsov

Fixes [#25279] Shift-Numpad Combinations fail to align view to selected
and addresses [#26328] Blender uses global keyboard message hook which hurts system responsiveness on Windows

A whole new way of handling keyboard input improves greatly both code readability and event handling. Thanks for the great patch, Alexander!
2011-03-09 22:10:51 +00:00
Nathan Letwory
95100afc12 doxygen: blender/editors tagged. 2011-02-27 20:29:51 +00:00
Nathan Letwory
5b607701a7 doxygen: prevent GPL license block from being parsed as doxygen comment. 2011-02-23 10:52:22 +00:00
9349374359 add back view 1:1 operator from 2.4x (Shift+PadEnter) 2011-02-23 06:48:47 +00:00
8f21a43535 split BKE_utildefines.h, now it only has blender specific defines like GS() MAKE_ID, FILE_MAXDIR, moved the generic defines to BLI_utildefines.h.
no functional changes.
2011-01-07 18:36:47 +00:00
Nathan Letwory
de55b7897c Workaround for [#25279] Shift-Numpad combinations fail to align view to selected.
On Windows shift+numpad triggers extra ctrl event, making this fail. For now, use Alt as modifier on Windows (other platforms remain with Shift).
2010-12-27 09:56:05 +00:00
04590d86e7 fix for keymap error with renaming rna. 2010-12-17 14:49:38 +00:00
1622385445 pedantic word ordering change.
- wm.add_modal_handler -> modal_handler_add
- wm.add_fileselect -> fileselect_add
- ob.add_shape_key -> shape_key_add
- VIEW3D_OT_add_background_image -> VIEW3D_OT_background_image_add (same for remove)

Also made 2 internal cmake vars hidden.
2010-12-08 11:42:11 +00:00
27fff49335 revert keymap name commit, matt says everything should be '2D View', '3D View...' etc, so for now just go back to what we had.
reverse merge:
 svn merge -r31774:31773 .
2010-09-06 05:40:52 +00:00
0106b00a2a rename '3D View' keymap, since its know as 'View 3D' for other areas of the keymap editor. 2010-09-06 05:20:05 +00:00
8e388a8f49 fixes for recent renaming 2010-08-19 14:43:52 +00:00
b9d99b9c5b apply all rna naming changes for rna_space.c 2010-08-17 07:49:53 +00:00
d1759639dc - remove unused includes IMB_*, BIF_* & MEM_*
- remove MEM_guardedalloc.h from header files (include directly)
2010-08-16 05:46:10 +00:00
f2d77e4496 remove unused includes from editors/space_* 2010-08-08 08:14:07 +00:00
f148aa696e bugfix [#22769] Undo Looses Active Camera
The problem was that the v3d could have a different camera to the scene even when locked.
VIEW3D_OT_viewnumpad was ignoring v3d->scenelock option and allowing an invalid state.
2010-07-24 01:32:03 +00:00
c9627f7883 home key to center the camera offset. 2010-07-03 20:47:03 +00:00
c2f36a4d6a naming changes
path -> filepath (for rna and operators, as agreed on with elubie)
 path -> data_path (for windowmanager context functions, this was alredy used in many places)
2010-06-14 03:52:10 +00:00
58a38bfc08 Fix [#21760] Snap to Origin doesn't work
Removed the 'Snap selected to origin' operator, it was dysfunctional and other operators 
contain better functionality to do the same things.
2010-04-07 00:43:06 +00:00
824be96dc0 More work on Drag Immediate:
- Rename option and flag to something more sane
- Add property to manipulator operator and set true by default

Confirm on Release can now be forced true or false per operator, in which case it won't use the default value (the user preference).
2010-04-03 17:38:43 +00:00
f743b583bf more lint includes
Only source/blender/editors/ dir, should not give errors on different platforms
Only removing:  UI_*.h, ED_*.h, WM_*.h, DNA_*.h, IMB_*.h, RNA_*.h, PIL_*.h
2010-03-23 14:09:09 +00:00
1e9bf0cfdb spaces -> tabs, (4 spaces == 1 tab, only for white space preceding text) 2010-03-22 09:30:00 +00:00
42ac4a3e7d Fix syntax for ID keyword. 2010-03-21 01:14:04 +00:00
081c1205a3 correct fsf address 2010-02-12 13:34:04 +00:00
ccb6e1904a patch from Bjørnar Hansen (anachron)
Multiple background images displaying each on a different axis.

Changes made from the original patch.
- Use an enum rather then multiple booleans.
- Reduced the space taken up by the user interface.
- Made the image template compact display not show fields & premul options.
- Added readfile.c lines so old blendfile images are loaded.
- Option to hide BGpic UI (like modifiers & constraints)
- Use the index rather then a bgpic from the context for the remove operator.

note: could be good to use 1 image for both left+right, for eg, but for this to work as intended we would need to add image flipping depending on the axis so left this commented out for now.
2010-01-19 22:44:43 +00:00
72b14be460 * Added an 'enable manipulator' operator, with boolean properties for each of
translate/rotate/scale, for people to bind to shortcut keys.

wm.context_set doesn't work well here since it just toggles each component on/off.

Fixes [#19730] Missing/conflicting keymaps for "Change Manipulator Mode" function

Good defaults for this can be decided on for an updated 2.5 key layout.
2010-01-14 05:29:25 +00:00
109f719f46 ctrl +/- should be in default keymap for 3d view zoom in/out, probably other views too 2010-01-14 05:22:16 +00:00
0befa75009 [#20583] Snap Cursor to Center and more View edits
Patches by Jonathan Smith (jaydez) 

Add a Cursor Center entry in the snap menu (Shift-S) to reset the cursor to 0,0,0. Also rename the view_center operator to view_selected to reflect better what it does (in the code only, description and name were already ok).
2010-01-13 22:17:56 +00:00
926cdffaf3 Renamed toolbar to Tool Shelf all over 2010-01-12 07:50:14 +00:00
4a011a99cb Multitouch trackpad 2 fingers gestures implementation
- 2 fingers scroll (MOUSEPAN / GHOST_kTrackpadEventScroll event) pans/scrolls the view
- 2 fingers pinch (MOUSEZOOM / GHOST_kTrackpadEventMagnify event) zooms the view
And in 3D view:
- alt + 2 fingers scroll rotates the view
- 2 fingers rotation (MOUSEROTATE / GHOST_kTrackpadEventRotate) orbits the view.

The implementation uses a new GHOST event type: GHOST_kEventTrackpad, that is then dispatched as Blender MOUSEPAN, MOUSEZOOM
or MOUSEROTATE events.

This is currently fully implemented for OSX (GHOST Cocoa fires the new events), with auto-detection of the source peripheral, so that a regular mouse still sends MOUSEWHEEL events.
2010-01-11 11:14:36 +00:00
a37aa8d11d * Added back some shortcuts from 2.4x using ctrl/alt/shift/etc mouse wheel to scrub frames, pan view, etc.
* Redraw the 3D View on brush edit changes (for [ and ] keys)
2010-01-04 00:39:55 +00:00
73c62183f8 Removed a few operators that were just used to generate popup menus and replaced with python defined menus. 2009-12-24 10:39:30 +00:00
980e97923b Key map related things:
* Moved 'change shortcut' (previously directly RMB on menu items) to a context-menu item, and added Remove Shortcut and Add Shortcut. This is all available now in a RMB context menu for operator buttons and menu entries.
* Renamed a bunch of key maps to be consistent with UI names, and human-readable. Since these key map names are now being directly used in the UI for people to find things, they should be understandable and in plain language.

This renaming may break some older saved key map setups - though previously saved .b25.blends should convert over ok. Exported .py files may need some find/replacing - in this commit check the changes in resources.c to see what's changed.
2009-12-24 09:26:06 +00:00
62639a55d9 Keymap conflict detection operator.
Takes into account the hierarchical structures of keymaps as well as wildcards (KM_ANY) in event definitions, user remaps (emulate numpad, action/select mouse buttons, ...) and event values that overlap (click, press and release)

For now, doesn't do anything other than print conflicts in the console.

As a result, I cleaned up a lot of keymaps that had double definitions, moved some keymap items in more appropriate places, fixed wrong definitions and removed kmi that were added for testing a long long time ago.

Out of all the remaining conflicts, after removing obvious non-issues, here's what remains: http://www.pasteall.org/9898
2009-12-17 22:14:43 +00:00
fabdde675a reference to INDIVIDUAL_CENTERS causing error 2009-12-09 00:03:18 +00:00
cbfb8fbd7f Fix for [#19921] pressing NumpadDot on isolated mode centers the 3D cursor 2009-12-04 04:41:32 +00:00
03c897da1b [#20103] Shortcut (Ctrl Space) not working for to show 3d transform manipulator 2009-11-29 00:13:34 +00:00
e96bd73513 Shaded view toggle key (Shift-Z) not needed anymore. 2009-11-27 21:15:01 +00:00
215acdd803 * Changed default shortcut key for 'center view to cursor' to ctrl numpad . 2009-11-22 23:57:06 +00:00
c4a71795f5 Bugfixes:
* Restored Center View to 3D Cursor. For now, I've mapped this to QKEY since all other nice combinations of CKEY have been taken now.

* Fixed bug introduced in commit last night where parenting lattice to armatures with deforms would no longer work.
2009-11-22 23:11:32 +00:00
966b01665b use number keys to set the current brush in paint modes 2009-11-17 16:04:17 +00:00
20681f4980 Shift click on modifier works again.
For some reason, adding a keymap entry with KM_SHIFT didn't work, had to use KM_ANY and passthrough invalid modifiers.

Left a note to investigate later.
2009-11-12 19:42:53 +00:00
37e4a311b0 Math Lib
* Convert all code to use new functions.
* Branch maintainers may want to skip this commit, and run this
  conversion script instead, if they use a lot of math functions
  in new code:
  http://www.pasteall.org/9052/python
2009-11-10 20:43:45 +00:00
d4fe2595f7 bring back align to view to object
- In 2.4x this was numpad *, however that would only align on the Z axis.
- New behavior for VIEW3D_OT_viewnumpad, holding Shift with Numpad 1/3/7 sets the left/top/front etc on the normal axis.
- Uses active bone, face, edge, vert, curve handel & object (just like the view manipulator with 'Normal' selected).
2009-11-06 10:38:00 +00:00
1c1659eb28 - Right click menu can open links directly to API reference docs (rna and operators)
- Generated and uploaded api docs - http://www.blender.org/documentation/250PythonDoc
- Added Edit docs menu item & operators as discussed with Mindrones, Brecht, Stani & Letterip @ bconf, needs some web backend. python operator can aparently use xml/rpc to upload docstrings.
- Added operator invoke function - context.manager.invoke_props_popup(self.__operator__, event)
  this calls a popup for invoke by default (which intern calls execute())

- Own recent commit to game framing applied to non-camera views too.
- v3d->persp is deprecated but still used in some places.

- Transforming strips could overlap 1 frame if moving them below frame 0
- Transforming overlapping strips could go into an eternal loop (though overlapping strips should not exist)
2009-10-27 02:54:25 +00:00
7bed5e35b4 added operators for setting rna for each type, this avoids having double "'quoted'" strings from C which is ugly. 2009-10-14 20:09:21 +00:00
a9cf4bbf02 Use new operator to toggle view3d draw type. 2009-10-13 23:15:34 +00:00
edfe78aec9 Context operators for adjusting context values directly to avoid adding operators for adjusting single values which also need duplicate notifiers.
wm.context_set(path="scene.tool_settings.someattr", somevalue)
wm.context_toggle(path="scene.tool_settings.somebool")
wm.context_toggle_values(path="scene.tool_settings.some_enum", value_1="somevalue", value_2="othervalue") # switch between 2 values
wm.context_cycle_enum(path="scene.tool_settings.some_enum", reverse=False)

the path value is taken from the context so the full path is 
context.scene.tool_settings...

This means in keymaps you can cycle draw modes, change PET- anything with rna access.
If its not so nice to map keys to operators like wm.context_set we could use macro's to wrap it and have its own name

Use this for PET and setting pivot options

- Made userpref key shortcut Ctrl+Alt+U since its not used in 2.4x
- added pivot_point_align (Alt+Comma)
- added PET wasnt rna wrapped correctly.
2009-10-13 15:30:19 +00:00
3ebd58673f Key Configuration
Keymaps are now saveable and configurable from the user preferences, note
that editing one item in a keymap means the whole keymap is now defined by
the user and will not be updated by Blender, an option for syncing might be
added later. The outliner interface is still there, but I will probably
remove it.

There's actually 3 levels now:

* Default builtin key configuration.
* Key configuration loaded from .py file, for configs like Blender 2.4x
  or other 3D applications.
* Keymaps edited by the user and saved in .B.blend. These can be saved
  to .py files as well to make creating distributable configurations
  easier.

Also, user preferences sections were reorganized a bit, now there is:
Interface, Editing, Input, Files and System.


Implementation notes:
* wmKeyConfig was added which represents a key configuration containing
  keymaps.
* wmKeymapItem was renamed to wmKeyMapItem for consistency with wmKeyMap.
* Modal maps are not wrapped yet.
* User preferences DNA file reading did not support newdataadr() yet,
  added this now for reading keymaps.
* Key configuration related settings are now RNA wrapped.
* is_property_set and is_property_hidden python methods were added.
2009-10-08 18:40:03 +00:00
d28d3194f4 * Added 'set object as camera' operator
3D View: View -> Cameras -> Set Object as Camera  (Ctrl Numpad 0)
2009-10-06 02:45:42 +00:00
40c175f8f6 modal kaymaps for view3d rotate/move/zoom removed redundant 'view' prefix from these operators. 2009-09-25 10:24:42 +00:00