Commit Graph

193 Commits

Author SHA1 Message Date
cf9b728c6a Color Picker work:
Restored the old Eyedropper tool from the 2.4 colour picker. Now it's an operator, 
working nicely using rna properties (fixes #19475 and some todo items)

This ended up being a bit more work than expected, it involved converting the 
colour picker to use RNA properties directly, rather than temporary values. This has 
several advantages, including being able to type in RGB values greater than 1, 
however there are still some redraw issues with sliders.

Also removed the alternate color pickers after this time spent testing, the current one 
should be sufficient, or alternatives to the wheel can possibly become preferences 
in the current design.

Converting the picker to RNA also made it very trivial to make a cool new 
ColorWheel template, which can be embedded in UI layouts. I've enabled it already 
in texture/vertex paint brush properties and the sequence editor color correction:
http://mke3.net/blender/devel/2.5/colorwheels.jpg
2010-01-07 09:55:11 +00:00
ffe13aeb23 the user interface could access invalid RNA on deleting objects since checking the button ran after freeing the data. 2009-12-26 01:04:46 +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
0af48c227b Copy To Selected
Until we have proper multi-object editing, this adds a Copy To Selected
option to the right mouse button menu for Object and Bone properties, to
copy the value from the active object to the selected objects.

Also includes some implementation changes to reset to default operator.
2009-12-17 17:15:38 +00:00
e3a1d044d6 RNA/UI - Reset Settings to Default Values
Added a new operator for properties which resets RNA-based settings to their 'default' values, as defined in RNA. This currently only works for floats, ints, enums, and booleans (strings and pointers still need to be implemented). 

The current extensions to the RNA API that I've made here seem a bit excessive, and can be toned down if necessary. In short, I've just added accessor functions for the default-values of the property definitions.

For this to be really useful, many properties in RNA will need to get defaults defined, since the current defaults for quite a few properties tested were less than ideal.
2009-12-17 10:47:55 +00:00
91215df5c2 Bugfix: clicking outside of color picker could reset color in some cases. 2009-12-14 14:34:57 +00:00
ee12451463 Revert bunch of changes I should have committed before. 2009-12-10 00:41:03 +00:00
456c11c822 textedit string needs to be one byte longer than maxlen, for terminator. 2009-12-10 00:28:18 +00:00
1601f297c9 Fix #20245: datablock names allowed entering 22 characters but can
only accept 21.
2009-12-09 18:03:44 +00:00
0151be0210 UI: fix trailing tooltips when deactivating window, and when opening
right click menu. Added window deactivate event for this.
2009-12-08 13:02:03 +00:00
f3201f0853 UI: curve widget tweaks
* Make snap ctrl instead of shift
* Only enable snapping after moving a few pixels,
  otherwise too easy to do enable this by accident.
* Deselecting points with shift did not work.
2009-12-04 15:32:26 +00:00
bce687ef36 Menu handlers need to return OUT when clicking outside, not OK
Caused crashes with window type selector and a slew of other unwanted behaviors.
2009-12-02 19:32:21 +00:00
b89138564e Changes to Color Management
After testing and feedback, I've decided to slightly modify the way color 
management works internally. While the previous method worked well for 
rendering, was a smaller transition and had some advantages over this
new method, it was a bit more ambiguous, and was making things difficult 
for other areas such as compositing.

This implementation now considers all color data (with only a couple of 
exceptions such as brush colors) to be stored in linear RGB color space, 
rather than sRGB as previously. This brings it in line with Nuke, which also 
operates this way, quite successfully. Color swatches, pickers, color ramp 
display are now gamma corrected to display gamma so you can see what 
you're doing, but the numbers themselves are considered linear. This 
makes understanding blending modes more clear (a 0.5 value on overlay 
will not change the result now) as well as making color swatches act more 
predictably in the compositor, however bringing over color values from 
applications like photoshop or gimp, that operate in a gamma space, 
will give identical results.

This commit will convert over existing files saved by earlier 2.5 versions to 
work generally the same, though there may be some slight differences with 
things like textures. Now that we're set on changing other areas of shading, 
this won't be too disruptive overall.

I've made a diagram explaining the pipeline here:
http://mke3.net/blender/devel/2.5/25_linear_workflow_pipeline.png

and some docs here:
http://www.blender.org/development/release-logs/blender-250/color-management/
2009-12-02 07:56:34 +00:00
9e6d1705a4 bugfix [#20050] Hex color value fields capped to 2 characters on first paste.
also use memmove rather then a loop for deleting the selected text
2009-11-28 21:45:34 +00:00
510c0facdf operator renaming for more consistent word ordering (_add/_remmove shold be last, ACT_OT_* --> ACTION_OT_*)
ACT_OT_clean --> ACTION_OT_clean
ACT_OT_clickselect --> ACTION_OT_clickselect
ACT_OT_copy --> ACTION_OT_copy
ACT_OT_delete --> ACTION_OT_delete
ACT_OT_duplicate --> ACTION_OT_duplicate
ACT_OT_extrapolation_type --> ACTION_OT_extrapolation_type
ACT_OT_frame_jump --> ACTION_OT_frame_jump
ACT_OT_handle_type --> ACTION_OT_handle_type
ACT_OT_insert_keyframe --> ACTION_OT_insert_keyframe
ACT_OT_insert_keyframe --> ACT_OT_keyframe_insert
ACT_OT_interpolation_type --> ACTION_OT_interpolation_type
ACT_OT_keyframe_type --> ACTION_OT_keyframe_type
ACT_OT_mirror --> ACTION_OT_mirror
ACT_OT_new --> ACTION_OT_new
ACT_OT_paste --> ACTION_OT_paste
ACT_OT_previewrange_set --> ACTION_OT_previewrange_set
ACT_OT_properties --> ACTION_OT_properties
ACT_OT_sample --> ACTION_OT_sample
ACT_OT_select_all_toggle --> ACTION_OT_select_all_toggle
ACT_OT_select_border --> ACTION_OT_select_border
ACT_OT_select_column --> ACTION_OT_select_column
ACT_OT_snap --> ACTION_OT_snap
ACT_OT_test --> ACTION_OT_test
ACT_OT_unlink --> ACTION_OT_unlink
ACT_OT_view_all --> ACTION_OT_view_all
ANIM_OT_add_driver_button --> ANIM_OT_driver_button_add
ANIM_OT_add_keyingset_button --> ANIM_OT_keyingset_button_add
ANIM_OT_delete_keyframe --> ANIM_OT_keyframe_delete
ANIM_OT_delete_keyframe_button --> ANIM_OT_keyframe_delete_button
ANIM_OT_delete_keyframe_v3d --> ANIM_OT_keyframe_delete_v3d
ANIM_OT_insert_keyframe --> ANIM_OT_keyframe_insert
ANIM_OT_insert_keyframe_button --> ANIM_OT_keyframe_insert_button
ANIM_OT_insert_keyframe_menu --> ANIM_OT_keyframe_insert_menu
ANIM_OT_remove_driver_button --> ANIM_OT_driver_button_remove
ANIM_OT_remove_keyingset_button --> ANIM_OT_keyingset_button_remove
FILE_OT_add_bookmark --> FILE_OT_bookmark_add
GRAPH_OT_insert_keyframe --> GRAPH_OT_keyframe_insert
NLA_OT_add_actionclip --> NLA_OT_actionclip_add
NLA_OT_add_meta --> NLA_OT_meta_add
NLA_OT_add_tracks --> NLA_OT_tracks_add
NLA_OT_add_transition --> NLA_OT_transition_add
NLA_OT_remove_meta --> NLA_OT_meta_remove
PARTICLE_OT_remove_target --> PARTICLE_OT_target_remove
PTCACHE_OT_add_new --> PTCACHE_OT_add
2009-11-28 14:37:21 +00:00
7b036e1dcb Splash screen, implemented by Matt.
* Now has documentation links and recent files.
* Click on image or outside splash to make it go away.
* Still has old image, new one will be committed later.
2009-11-23 13:58:55 +00:00
8e09171d5b temp hack to make the popup show wider when running the edit description operator 2009-11-23 00:56:19 +00:00
38e1590fa7 * Removed tablet pressure sensitive number field widget scrubbing, wasn't that useful and I suspect it was the cause of a few bugs
* Added tablet pressure support (size/strength) for weight paint and vertex paint

* Added tablet eraser support for weight paint and vertex paint (inverts the effect of the current tool)

* Removed the old 'soft' option, now weight paint and vertex paint use the influence curve

* Made the default brush use a smooth influence curve, rather than sharp
2009-11-20 01:39:27 +00:00
a1b39ac06c * Fix for RMB keyframe/data path/etc operators not working in sub-regions, was getting the wrong region context to operate on. 2009-11-19 04:11:24 +00:00
849ee94cf9 Partial fixes for #19881: Items existing on the same row as the window dividers are not interactive (selectable, etc.)
The View 2D function for handling scrollbar events now takes into account whether the scrollbar is visible or not, so that it won't block events when the scrollbar isn't visible.

Also, made the UI code take this into account too for its region testing code. Unforunately, there still seems to be something else which is still preventing UI buttons from being processed when they are in those regions.
2009-11-18 10:37:32 +00:00
10e1780cf9 Assorted bugfixes - Sequencer/Preview Range:
* Snapping strips now works with the hotkey  Shift-S   as in the rest of Blender
* Preview Range works in Sequencer now (the operators for setting, clearing, and also drawing)
* Related to the Preview Range for Sequencer, toggling the time-display mode also works
* Preview Range Set operator now works again, after the modal keymaps change for borderselect broke it. Also sends correct notifiers now after bein called.
2009-11-17 10:12:35 +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
43d916c08a Fix bug #19754: alt + scrollwheel to change button values was not
working in popup menus, silly workaround now until this uses modal
keymaps.
2009-11-05 20:32:46 +00:00
ac8480f42a Revert changes committed by accident in 24168
(this was experimental code for "ladder-like" mouse adjustment of float values)
2009-10-30 17:50:45 +00:00
1a8b9e63d9 When transform orientation is not orthogonal (which is often the case with Gimbal), orthogonalize the orientation separately when drawing each rotation circles (this makes sure they really appear perpendicular and not just be that way in the skewed space of the orientation). 2009-10-29 21:34:09 +00:00
e76ce369bb Compiler warning fixes for mingw:
* There's an unresolved error in transform_conversions.c which I've flagged in this commit. I'm not quite sure what the exact intentions of that code were (i.e. was the "void_pointer = 1" really intended)
2009-10-27 09:38:15 +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
180d74ab57 UI: List Template tweaks to get it a bit more usable
* Mouse wheel now scrolls the list.
* Up/down key and alt mouse wheel change the active item.
* Adding/removing items from the list now automatically scrolls so the
  active item is in the view.
* Shift mouse wheel changes the size of the list widget to display more
  items. Lazy replacement for a proper grip.

* Shape key list now displays the influence value next to the name,
* Also fix the range of the value slider to match the defined min/max
  range.
2009-10-21 20:58:10 +00:00
cb8f7fd385 Auto Save
Auto save is now working again in 2.5. It will also remember now what
the location of the original file was when recovering it, so that
library links still work and saving the restored file does not save to
the temp directory. There is also a new Recover Auto Save operator
which will open the filebrowser in the temp directory and show the
auto saved .blends.

Implemenation Notes:

* Timer storage was moved from window to windowmanager, so we can have
  windowmanager level timers too now, doesn't make sense to have
  autosave timer attached to a particular window.
* FileGlobal now has a filename field storing where the file was saved.
  Note that this is only used when loading a file through the recover
  operators, regular file read doesn't use it, so copying the quit.blend
  manually over the original file will still work as expected.
* Jobs timer no longer uses operator now, this seems more like an
  internal thing, changing keymaps should not make it possible to break
  the jobs manager.
* Autosave is postponed by 10 seconds when a modal operator is running,
  e.g. transform or file browsing.
* Moved setting G.sce in setup_app_data before depsgraph updates, these
  can use the filename for pointcaches.
2009-10-20 13:58:53 +00:00
69c6a33ba1 wrap the mouse within the region while grabbing so on release the current view never changes and less likelyhood of loosing the cursor when running blender on 2+ screens. (assuming the 3d view isnt stretched over both) 2009-10-17 19:32:28 +00:00
d11888b470 - wrapping failed with the cursor at the screen edge,
- changed numbuts behavior with continuous grab so dragging back after passing the button limit immediately adjusts the value
2009-10-17 14:54:13 +00:00
91d89c1ff7 Adjustments to continuous grab
- Use an enum for grab modes rather then boolean options.
 -- GHOST_kGrabNormal: continuous grab userpref disabled
 -- GHOST_kGrabWrap: wrap the mouse at the screen bounds *
 -- GHOST_kGrabHide: hide the mouse while grabbing and restore the mouse where it was initially pressed *

GrabWrap is nice for transform and tools where you want some idea where the cursor is, previously I found both restoring the mouse at its original location and restoring at a clamped location was confusing with operators like transform, wrapping is not ideal but IMHO the best of a bad bunch of options.
GrabHide  is for numbuts, where restoring the mouse at the initial location isnt so confusing.
2009-10-17 14:08:01 +00:00
81beef19a3 Add side clicking in sliders.
Hold Alt and click where arrows are in num buttons.
2009-10-15 14:41:21 +00:00
0f6190a19b fix for continuous grab where you couldnt properly click the button for incremental changes or editing 2009-10-14 14:44:21 +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
0c857a4f14 - made ungrab a second function - WM_cursor_ungrab
- ungrab can restore the position of the mouse clamped to the window bounds (much nicer for transform)
2009-10-07 21:19:35 +00:00
77476b294f Experimental option to allow moving the mouse outside the view, "Continuous Grab" in the user-prefs.
- Useful for dragging buttons to the far right when theyd otherwise hit the screen edge.
- Useful for transform though probably NOT what you want when using the transform manipulator (should make an option).
- When enabled, number buttons use this as well as a different conversion of mouse movement
  float numbuts: mouse 1px == 1-clickstep
  int numbuts: 2px == 1 (tried 1:1 but its too jitter prone)

details...
- access as an option to GHOST_SetCursorGrab(grab, warp)
- Currently all operators that grab use this, could be made an operator flag
- only Ghost/X11 supported currently
2009-10-07 07:11:10 +00:00
3fe274b072 Several fixes:
* Code for generating 'Object' summary of Keyframes for DopeSheet (which is also used by the TimeLine for getting keyframes to draw) now considers materials, object data, and particles too.

* Rearranged the way that keyframing-related settings were presented in the User Preferences. The way the settings were grouped was plain confusing, and based on biased views from the old system. For the record, 'needed'+'visual' are always considered when inserting keyframes, 'always' is for autokeyframing, and default interpolation is only used for newly created F-Curves.

* Fixed bug #19472 - Scroll wheel scrolls in the wrong direction for enum-menus that were flipped (i.e. window type menu and 3d-view mode selector).
2009-10-06 03:05:20 +00:00
988e9132b8 Fix #19513: scroll wheel did not work when over disabled buttons. 2009-10-01 12:33:35 +00:00
f16d2b7eaa fix for middle mouse up events not working with modal keymaps (used for fly mode).
With mouse events event->val started as 0/1 for press/release but later the tweak function made LMB and RMB zero value into KM_RELEASE, somehow MMB didnt get used by the tweak function so was left at 0 and the modal keymap function failed when comparing MMB Mouse ups.

now initialize event->val as KM_PRESS/KM_RELEASE
2009-09-24 10:35:04 +00:00
6117d9c6e2 Fix #19361: BGE keyboard sensor allowed to set mouse events
too, should only be keyboard events.
2009-09-21 16:39:07 +00:00
854ea35a24 2.5: Handlers are now evaluated in a different order, fixing some
issues like Shift+R (repeat last) not giving capital R in the text
editor. There is also new modal handler list at the window level,
and the API call will always add it to that one now, since modal
handlers were not used in other levels.

The order used to be:
* window modal + keymap
* area modal + keymap
* region modal + keymap

Now it is:
* window modal
* region keymap
* area keymap
* window keymap
2009-09-18 12:43:36 +00:00
09652d8c05 Fix #19371: vertex group dropdown crash, own fault in commit yesterday. 2009-09-17 14:37:08 +00:00
3a6bf17b3e UI
* Fix problem with curve mapping / color ramps not updating
  things like previews propertly. Now it uses the RNA update
  of the pointer from the material/texture/.. so each of those
  can define their own update, but still share the RNA struct.
* Code for these templates is now in interface_templates.c
* Fix exception for "axis" property, now it always shows normal
  widget with the PROP_DIRECTION subtype.
* Remove context from uiBlockLayoutResolve, no longer needed.
2009-09-16 18:47:42 +00:00
7c5695c801 - bpy.data.sounds was a collection of ID's rather then Sounds
- last commit, missed include for rna_object_api.c & bad args to find_basis_mball
- use enum for GHOST tablet type None/Stylus/Eraser, had duplicate definition for these in C. Only tested X11, may need to cast to an int for other OS's.
2009-09-16 15:55:00 +00:00
be69305d85 2.5 Bugfixes
#19302: the spin operator did not redo correct when changing properties.
Actually the problem was somewhere else, the search menu always did an
unnecessary undo push, which conflicted with an operator undo push with
the same name. Only in the case of "Spin" was this noticed, because it's
name is so short and you actually type it completely.
#19328: swapping areas could crash when dragging mouse outside the window.

Attempted fix for #19331, #19335 as well, where backspace and some other
keys give square characters instead of working as expected. Couldn't
reproducable here, so please test.
2009-09-14 20:48:05 +00:00
725c30f606 2.5 Bugfixes
#19345: can't get out of grayed out pointer field.
#19342: item_pointerR fields can't be cleared with one item.
#19341: fix hanging tooltips when manipulating regions.
#19339: context panel still allowed tabbing, but it has no header.
#19334: editing SSS settings crashed previewrender.
#19330: object mode could not be switched on from the header menu.
2009-09-14 19:12:29 +00:00
15ef88b902 Keying Sets: Added options to add/remove properties from the active Keying Set to the RMB menu (and also via KKEY and ALT-K respectively) 2009-09-04 07:26:32 +00:00
2cb6078900 was crashing when joining in-link to in-link for the logic buttons. 2009-08-30 02:09:57 +00:00
1be67b60fd 2.5: Modifiers & Menus
* Popup menus now remember the last clicked item again.
* Modifier and File Format menus are now organized in multiple
  columns with categories.
* Hook, explode, uv project modifiers have all their buttons
  again with the relevant operators implemented.
* Modifiers that can't be added by the user, or don't work on
  curves for example, are not in the menu anymore.
* Fix search menu overlapping buttons when near the bottom of
  the screen.
* Fix uv layers search menu not working in some modifiers.
* Cleanup popup menu code a bit, layout engine is used in more
  cases now instead of ugly position calculation code.
2009-08-21 02:51:56 +00:00