Commit Graph

5006 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
907ee73e23 2 small view navigation features stolen from other apps :)
* Now, while rotating a 3D view with MMB held down, you can hold shift to switch to Pan or ctrl to switch to Zoom, without having to let go of MMB. While it sounds simple it makes things really smooth to use and eases repeated presses of MMB. One thing I liked from Max. It's also in the modal key maps, so you can change it to whatever you like.

* A similar thing, when panning a 2D View, you can hold LMB to switch to zoom, effectively making MMB+LMB zoom. This is not very useful on a mouse, but it's very nice for tablet use, being able to navigate with one hand (side switch+stylus press) very easily. This one's from Fusion.
2010-01-06 12:22:59 +00:00
7ec67dd43d Fix for PROP_MATRIX auto UI layout 2010-01-06 01:41:00 +00:00
67ff197cb1 Merge with trunk/2.5 at r25563
Most likely will not compile for others, I'd appreciate any build errors
and missing files reports (I can never seem to get everything committed
and all the build systems working without help).

Porting over the sculpt/multires tools was a breeze,
thanks goes to brecht for a design that didn't exclude
ngons and was easy to port.

Note that I've not tested externally-backed multires
file support yet.  Also, I still need to write version
patch code for some cases.

Some notes:

* Like trunk, topological changes don't update multires right,
  so e.g. subdivide will duplicate multires data on the new faces,
  instead of subdividing it.
* If you set the debug value (ctrl-alt-d) to 1 it'll turn on
  my experiments in speeding up sculpting on higher-res multires
  meshes (but note it makes partial redraw not completely accurate).
* There's a bug where you have to go through editmode to get out
  of sculpt mode, not sure if I inherited or created this myself.
2010-01-05 22:33:41 +00:00
3398dd032b Added render layer 'enable' toggles for render layer list view 2010-01-05 03:09:11 +00:00
29f90af19c Fix: curve reset for brushes now gives proper smooth curve as default,
also moved brush curve presets code into curvemapping code.
2010-01-04 17:28:37 +00:00
4494ec8019 * Fix tooltip for reset default values
* Redraw 3D View tool shelf on texture changes (to reflect new brush textures)
2010-01-03 23:46:19 +00:00
251ef0a47f Changes to Brush texture workflow
This changes how textures are accessed from Brushes, with the intention of simplifying 
the workflow, and reducing the amount of clicking. Rather than the previous texture slots 
(which didn't work as a stack anyway), brushes now have a single texture linked. Rather 
than taking time having to set up your slots in advance, you can now select and change 
textures directly as you sculpt/paint on the fly. For complex brushes, node textures can 
be used, or for fast access, it's easy to make a duplicate of your brush with the texture 
you like and assign a hotkey.

Brush textures can now be chosen from a new Textures panel in the brush tool 
properties - click on the thumbnail to open a texture selector. This is done using a new 
variation on the ID template - the number of rows and columns to display in the popup 
can be customised in the UI scripts.
2010-01-03 08:37:18 +00:00
5cd837a562 * speedup for animating bones, in one scene with sintel and a dragon animated its over 4x faster.
* utility function BLI_findstring to avoid listbase lookup loops everywhere.
  eg: 
    ListBase *lb= objects= &CTX_data_main(C)->object;
    Object *ob= BLI_findstring(lb, name, offsetof(ID, name) + 2);

* made some more math functions use const's, (fix warnings I made in previous commits)
2009-12-29 15:40:26 +00:00
8db1349c2c Modifier Drawing Tweaks:
* Reorganised the (template) drawing code for modifiers, removing some old/commented out code, and grouping related sets of info to draw

* Separated the render/realtime/editmode toggles into a separate row below the modifier name so that the layout is less compressed with narrow properties windows (i.e. on the default setup).
2009-12-29 10:25:14 +00:00
fa01205d9a Fix for [#19519] Dope sheet scrollbar goes out of bounds 2009-12-28 08:01:19 +00:00
f9ee03f1b1 Got rid of some dead code 2009-12-28 05:14:32 +00:00
78aa924206 Change to the way brush/tool selection works, as discussed a while ago
Now, there are preset brushes made for each tool type (eg. for sculpt mode, Grab, 
Draw, Inflate, etc), and the recommended method for changing sculpt tools is to 
change between Brushes. The shortcut keys for changing between tools have 
now been changed to change between named brushes - the G key in sculpt 
mode now changes to any brush named 'Grab'.

The advantages of this are:
* Changing between brushes remembers the strength/size/texture etc settings for 
each brush. This means that for example, you can draw with a strong textured 
Clay brush, but then switch quickly to a weaker, untextured Smooth brush, 
without having to re-do your settings each time.
* You can now add your own custom shortcut keys to your own custom brushes - 
just add a keymap entry similar to the existing ones, that references your own 
custom brush names.

To bring over these new default brushes to an existing B.blend setup, just 
append them in from the new B.blend in svn.
2009-12-28 01:27:05 +00:00
be55097353 Mesh Animation + Depsgraph Tweaks:
* Mesh data/settings can now be animated. It is not recommended that geometry be animated directly, but other settings such as autosmooth, etc. can be...

* Code cleanups for depsgraph, making sure that drivers get included for all object data types.
2009-12-28 00:52:31 +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
266271d65a - closing the user prefs accessed the temp screen after removing it.
- colorband drawing could use un-initialized vars (probably wouldnt crash)
2009-12-26 00:17:45 +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
0606dbe291 Fix #20433: make single user doesn't work from menu. Popup menus for
operators were not passing along properties.
2009-12-22 11:59:30 +00:00
5c3879f8fb zoom to mouse for 2D view
note: this works in all views except for nodes which seem to use the view bounds differently
2009-12-22 08:39:59 +00:00
959e0486cf SVN maintenance. 2009-12-17 19:23:25 +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
8d996df7ce Adding POINTER_GRAB flag to view 2d pan operator, to make it use continuous grab. 2009-12-17 01:19:50 +00:00
3455261e17 First version of updated key map editor UI (in User Preferences)
Now the key maps are displayed in a hierarchical list which you can 
browse through. As well as in the main list, modal key maps are also 
available in context, for example, if you unfold out a Transform key 
map item, you'll be able to fold out and access its modal key map underneath.

More work to do, including search, better operator browsing, etc.
Still need to revise the ordering/hierarchy and clean up naming to be 
consistent too, it's a bit of an 'evolved' mess right now.

Thanks to theeth for some initial work here too.
2009-12-16 10:13:26 +00:00
91215df5c2 Bugfix: clicking outside of color picker could reset color in some cases. 2009-12-14 14:34:57 +00:00
b1a39375e5 Keyframing Bugfixes and Feature Requests:
* Added a User-Pref option for the "XYZ to RGB" colour-mode setting for new F-Curves to compliment the one used for Keying Sets. With this option enabled, the builtin Keying Sets also can obey this option.

* Made all places that were previously manually checking the flags for keyframing to use a standard API function to do this now.

* Fixed bug introduced earlier today in commit 25353 by reverting the changes to keyingsets.c. Forgot that delete_keyframe doesn't handle do the "entire array" hack with array_index = -1

* Fixed bug with the insert-keyframe code for the array_index = -1 case, where too many channels were being keyed (i.e. an imaginary channel was often keyed in addition to the valid ones)
2009-12-14 12:09:20 +00:00
3f612b6ea5 Description and more presets for animation players (rv / framecycler).
Also put a bit more logic for guessing player paths based on my system. 
If anyone can make this a bit more clever/bulletproof, please feel free to 
get involved in it, it's all python!
2009-12-13 23:30:18 +00:00
d6bee7da75 use rna buttons for color ramps colors so keyframes can be added/deleted. 2009-12-11 02:14:10 +00:00
2576268fb8 missed a header last commit, added custom exceptions to rigify so they can be caught and converted into reports and have normal errors display the stack trace as useual. 2009-12-10 18:28:22 +00:00
0779f2c425 Double Click event value.
Timeout between both clicks is user configurable, should be taken from the OS when possible.
2009-12-10 17:41:03 +00:00
959ac68914 align option for split 2009-12-10 14:47:07 +00:00
b5740b0e77 remove ICON prefix from the enum, for python this is redundant eg.
layout.prop("setting", icon='ICON_BLAH_BLAH')

Also reverted previous commit, the cursor subtype just needed to be added to the switch statement.
2009-12-10 10:23:53 +00:00
653593b574 Fix for [#20216] Search List is unordered
This sorts RNA collection (bones, vgroups, etc) search lists alphabetically like ID data search lists are already.
2009-12-10 01:29:43 +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
16ec4cc186 Sound system should only default to OpenAL if it is built (SDL if built otherwise). 2009-12-07 20:38:09 +00:00
fc69c54c4c Particles: bugfixes
* Don't show Apply as Shape for particle modifiers.
* Fix particles disappearing after exiting particle mode.
* Fix free edit not redrawing the 3d view.
* Fix use of uninitialized variable in layers template.
2009-12-07 18:17:39 +00:00
c1c5acae14 Porting of Graph Editor's UI to python, just header done for now.
Brecht, I added a Layout template function, template_dopesheet_filter -> uiTemplateDopeSheetFilter, this creates the group of buttons for filtering ID type (and some other options) for animation editors (Graph, NLA and Dopesheet). I hope this is all right, if not, we can move this maybe to a .py file as a function for reuse.
2009-12-07 11:50:05 +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
d56324b254 UI: remove unnecessary colon on toggle array buttons. 2009-12-02 13:21:22 +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
b911d83091 better not process events early, could cause troubles later.
added a function - wm_window_get_size_ghost(), which looks into the ghost window directly so events dont need processing first.
2009-11-30 14:10:46 +00:00
46e1abeda7 UI:
* Finished fixing the layer UI template. It's now used in the 3dview header rather than the custom layer grid.
2009-11-29 06:04:39 +00:00
65edb6e55f UI:
* Moved more of 3dview header to python
* Fixed the layout of the ui layers template to show the correct number of buttons
* Added support for layer icons (active layer, used layers)
2009-11-29 02:42:47 +00:00
abd16aac5a ok, apparently didn't commit this either. apparently includes a merge with trunk/2.5 at r24811 I thought I'd committed but did not, yeek. 2009-11-29 00:53:23 +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
cd574f32e6 experemental UI introspection added for mindrones,
in python this gives a map of the ui...
 ui_dict = eval(layout.introspect())
2009-11-28 17:45:23 +00:00