Commit Graph

3240 Commits

Author SHA1 Message Date
William Reynish 6cee5201ec Third widget commit ;)
Thanks to Broken for finding the bug.
2009-09-14 12:28:59 +00:00
Matt Ebb d0aa03737e * Fix for typo in icon_only commit, causing RNA property buttons text to be doubled up
brecht: I think this is right now...? :)
2009-09-14 11:25:33 +00:00
Joshua Leung 69496abf1d Crash Fix: Sequencer Add->Effects->... menu crashed.
Unfortunately, this menu is now empty, but this shows that the sequencer code is probably doing something funky...

http://dpaste.com/92865/
2009-09-13 03:56:30 +00:00
Brecht Van Lommel 042d3e5956 2.5: fix for merge, forward_diff_bezier needed to be updated. 2009-09-11 14:56:54 +00:00
Brecht Van Lommel cfb6f35f9f UI:
* layout.itemR now has icon_only option to show only icon
  in e.g. enums buttons, for uv editor header.
* Automatic key shortcuts in menus now show the shortcut even if
  operator properties don't match. Not sure this will work well
  everywhere, but seems to be working ok for now.
* Open recent now show shorter filenames instead of the whole
  file path.
* Tweak object Duplicate menu item.
2009-09-10 14:20:21 +00:00
Joseph Eagar 4c072f85d9 commit of transform pinning patch by Fabian Fricke (frigi). wip hotkey is enter/alt-enter to pin/unpin verts. pinned verts aren't affected by transform, e.g. grab, rotate, etc. this could probably work nicer for proportional editing, but that can be done later. also the UI for this probably needs reviewing and feedback. still, very nice patch by Fabian, something I for one will probably find very useful :) 2009-09-10 03:59:12 +00:00
Brecht Van Lommel 9e7c4ce806 2.5: Layer Buttons
* Added RNA subtype for layers.
* Shift-click works again.
* uiItemR can now also handle armature/bone layers.
* Also makes Move to Layer popup work as expected.
2009-09-09 17:39:19 +00:00
Campbell Barton f5e80e7a80 Operator docstring patch from Ron Walker, added console operator docs too. 2009-09-07 04:52:42 +00:00
Nathan Letwory fb649d5824 * cleaning up warnings (mostly windows). A collection of other warning fixes too (undefined function, assuming int, etc.)
This compiled fine with scons/msvc and scons/mingw (gcc 4.4.0). Please test and report any problems.
2009-09-06 13:20:05 +00:00
Brecht Van Lommel d3e35f0968 2.5: increase subversion to init new sound userpref variables. 2009-09-04 21:34:17 +00:00
Brecht Van Lommel 5dd9f7635a 2.5
Make local and make single user are back for ID template.

Internally these calls got unified, id_make_local and
id_copy are now used to do these operations for all types
that support it. Also reveals that for some ID types the
implementation is still missing.

Further, some small changes:

* unlink_text is now in blenkernel.
* copy_group was implemented.
* ID template now has an open operator again.
* fix preview to not change material reference count,
  even if temporary it shows up with threaded preview.
* id_unlink unifies unlink for text, object and group.
2009-09-04 21:02:43 +00:00
Brecht Van Lommel 7df35db1b1 2.5
Notifiers
---------

Various fixes for wrong use of notifiers, and some new notifiers
to make things a bit more clear and consistent, with two notable
changes:

* Geometry changes are now done with NC_GEOM, rather than
  NC_OBJECT|ND_GEOM_, so an object does need to be available.
* Space data now use NC_SPACE|ND_SPACE_*, instead of data
  notifiers or even NC_WINDOW in some cases. Note that NC_SPACE
  should only be used for notifying about changes in space data,
  we don't want to go back to allqueue(REDRAW..).

Depsgraph
---------

The dependency graph now has a different flush call:

DAG_object_flush_update(scene, ob, flag)
is replaced by:
DAG_id_flush_update(id, flag)

It still works basically the same, one difference is that it now
also accepts object data (e.g. Mesh), again to avoid requiring an
Object to be available. Other ID types will simply do nothing at
the moment.

Docs
----

I made some guidelines for how/when to do which kinds of updates
and notifiers. I can't specify totally exact how to make these
decisions, but these are basically the guidelines I use. So, new
and updated docs are here:

http://wiki.blender.org/index.php/BlenderDev/Blender2.5/NotifiersUpdates
http://wiki.blender.org/index.php/BlenderDev/Blender2.5/DataNotifiers
2009-09-04 20:51:09 +00:00
Joshua Leung 1e6efcc965 2.5 - KeyingSet fixes
* Fixed warnings in console about missing (removed) property
* Fixed update problems after creating a new keyingset
2009-09-04 10:41:02 +00:00
Joshua Leung 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
Joshua Leung a819ef1bf2 2.5 - Keyframing Bugfixes + Code Cleanups
* DopeSheet + Graph Editor - 'Sample Keyframes' option now tags newly created keyframes as being breakdowns. Also moved reduced the code duplication here by moving the core code for this to the animation module.

* Keyframing (Standard/Auto) - Added proper 'replace' option
Keyframes can now be rekeyed non-destructively when the INSERTKEY_REPLACE flag is provided to the keyframing API functions, since this option will make sure that only the values of the handles get altered.

For the Auto-Keyframing 'Replace/Edit Keys' option, this means that it truly works as it describes now, since it will now only replace the values of the keyframes on the current frame, and won't create new keyframes in the process or destroy the tangents already created for those keys.

For things like the sliders in animation editors, keyframes changing the value won't destroy existing tangents.
2009-09-04 04:27:06 +00:00
Ton Roosendaal 3bc5d87e50 2.5
Bugfix: new ALT+LMB pan in 2d windows hanged eternally; the modal keymaps
didnt support this yet. Is on todo; but fix is easy for now.

Also don't know if this is the right way to do it... systems with MMB can
also get it as macro (like action mouse, select mouse).
2009-09-01 17:31:33 +00:00
Campbell Barton 2cb6078900 was crashing when joining in-link to in-link for the logic buttons. 2009-08-30 02:09:57 +00:00
Joshua Leung 4893cdc338 2.5 - Warning cleanups (for mingw+scons)
Also, made the Outliner's horizontal scrollbar work better for keymaps view. It's still using an approximation of the width, but at least you can scroll now.
2009-08-26 00:38:43 +00:00
Arystanbek Dyussenov 706a4c22b5 Implemented dynamic and multidimensional array support in RNA.
Example code: http://www.pasteall.org/7332/c.
New API functions: http://www.pasteall.org/7330/c.

Maximum number of dimensions is currently limited to 3, but can be increased arbitrarily if needed.

What this means for ID property access:

* MeshFace.verts - dynamic array, size 3 or 4 depending on MFace.v4
* MeshTextureFace.uv - dynamic, 2-dimensional array, size depends on MFace.v4
* Object.matrix - 2-dimensional array

What this means for functions:

* more intuitive API possibility, for example:
  Mesh.add_vertices([(x, y, z), (x, y, z), ...])
  Mesh.add_faces([(1, 2, 3), (4, 5, 6), ...])

Python part is not complete yet, e.g. it is possible to:

MeshFace.verts = (1, 2, 3) # even if Mesh.verts is (1, 2, 3, 4) and vice-versa
MeshTextureFace.uv = [(0.0, 0.0)] * 4 # only if a corresponding MFace is a quad

but the following won't work:

MeshTextureFace.uv[3] = (0.0, 0.0) # setting uv[3] modifies MTFace.uv[1][0] instead of MTFace.uv[3]
2009-08-25 17:06:36 +00:00
Joshua Leung 33343fced5 2.5 - Action Editor
New Actions can now be added again from the Action Editor. 

There are no guarantees that this works totally safely yet (reference counting may be quite off), so you've been warned.
2009-08-25 04:32:40 +00:00
Joshua Leung b33b6babbd 2.5 - Sliders in Animation Editors
The 'Show Sliders' option for DopeSheet and Graph Editors now works again. When this option is enabled (it is disabled by default), a slider (or combobox) is shown beside the mute/lock toggles for F-Curves. Editing the slider will result in a new keyframe being added on the current frame. 

So, for all the (ex)-Maya animators out there, you can now animate in a channelbox-like way. :)

Also in this commit:
* Fixed some warnings in modifier.c from previous commits there
* Fixed some refresh problems with DopeSheet channel list (which were only obvious after adding back the sliders)
* Removed the old/unrestored and nasty slider code used in the past by the Action Editor only.
2009-08-24 04:31:13 +00:00
William Reynish 3eed35ada1 Adjusted spacing of header items.
Made toggle buttons less wide, with less extra space around them
Made number widgets wider to allow larger numbers, such as the current frame field in the timeline.
2009-08-23 22:22:58 +00:00
William Reynish 7da7103d1a UI
Changed the rounding of action buttons. The round style looked pleasing when they were isolated, viewed by themselves, but looked terrible when grouped, or at small sizes with icons as it was often used. The old Filebrowse or Render This Window buttons were examples of how badly they looked with an icon, and the rounding in the tools area made for some weird visual shapes. When combined in groups of widgets, such as the datablock selectors it looked even weirder, because one side of the group would be square and the other would be round, causing some spatial clashes. 

http://www.reynish.com/files/blender25/actionbuttons_new.png

Also tweaked the tools sub-area color which stood out as being much brighter than the rest of the UI. When the tools area was open in the default layout, the overall impression was asymmetrical, non-harmonic.
2009-08-23 21:56:32 +00:00
Brecht Van Lommel 1c614f6cf6 2.5: layout.itemO now returns OperatorProperties to be filled in,
when passing properties=True as argument.

Other changes:
* uiItemR, uiItemFullR, uiItemFullO now accept a flag argument rather
  than multiple different "boolean" arguments, but still exposed as
  booleans to python.
* Fix RNA to support setting PROP_RNAPTR for return values.
2009-08-21 12:57:47 +00:00
Brecht Van Lommel 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
Brecht Van Lommel aace6ef551 2.5: Restored statistics in the info header.
Implementation:
* NC_SCENE or NC_OBJECT cause scene->stats to be cleared.
* NC_INFO is sent to tag info headers for redraw.
* In UI scene.statistics() creates scene->stats if it is
  NULLd, and then returns the string.
2009-08-19 12:35:40 +00:00
Brecht Van Lommel 184ac26dd0 2.5: Headers
* Fix header menu spacing bug, and make it consistent for all headers.
* For consistency, always put menus first in the header, then any enums
  to switch the type of data displayed.
* Node editor header ported to python layout. Still quite a few
  operators missing to make the menus complete.
* RNA wrapped node editor, and added use_nodes property to material
  and scene.
2009-08-19 00:55:30 +00:00
Robin Allen c9795eae45 Fixed the texture preview to work with multi-output node-based textures. 2009-08-18 19:58:27 +00:00
Brecht Van Lommel 990dcd0f7f 2.5:
* Split Info and User preferences into two separate spaces.
* Renamed Buttons Window to Properties also in RNA identifiers.
2009-08-18 12:58:51 +00:00
Brecht Van Lommel ac2451c6be 2.5: RNA. Default values were not set when calling functions, this
is fixed now. Also added option for spaces without menus in the
header in uiTemplateHeader.
2009-08-18 12:56:43 +00:00
Nicholas Bishop 64fb0667b2 2.5:
Fixed a crasher reported in IRC by DingTo (bad pointer dereference)
2009-08-16 21:05:57 +00:00
Brecht Van Lommel 55edb016b1 2.5: Sound
* Move sound_init to make sure it gets called everytime user
  preferences is reloaded.
* Merged sound_reinit and sound_init. One used user preferences
  while the other did not, don't see the point of this, so just
  made it always use user preferences now.
* Timeline header audio sync option now controls scene flag
  rather than timeline flag. Since it uses the same playback
  operator now, there is no distinction anymore.
* Added boolean property sync to animation play operator, to sync
  with audio or not. Uses scene setting if property is not set.
* Playback stop button in info header now calls operator, so sounds
  stop playing too.
2009-08-16 20:37:22 +00:00
Brecht Van Lommel 19babf988d 2.5: Added operator ui() callback for defining own ui layout
to show properties.

* One problem is that we currently have 3 different kinds of
  property layouts, single column, two column, and single column
  with text inside button, probably best to reduce this..
* Last operator panel now shows operator name in the header.
* Fix extrude operator to not include transform properties
  anymore, since they are already there now due to macro system.
2009-08-16 20:23:34 +00:00
Nicholas Bishop afa0fa5e29 2.5 Sculpt:
* Added a new Paint type in scene DNA. This is now the base struct for Sculpt.
* The Paint type contains a list of Brushes, you can add or remove these much like material and texture slots.
* Modified the UI for the new Paint type, now shows the list of brushes active for this mode
* Added a New Brush operator, shows in the UI as a list of brush tool types to add
* Made the sculpt tool property UI smaller and not expanded, expectation is that we will have a number of preset brushes that will cover the basic sculpt brush types

TODO:
* Vertex paint, weight paint, texture paint need to be converted to this system next
* Add brush presets to the default blend
2009-08-16 19:50:00 +00:00
Nicholas Bishop f250a92808 2.5/RNA:
* Added Context access to RNA_property_as_string. This is needed for doing a Python call to the object mode set operator, which has a dynamic enum property that needs context.
2009-08-16 14:43:08 +00:00
Ton Roosendaal d823172d6d 2.5
Flaw in python UI for headers: code missing to correctly set the total
width of header, plus obsolete call in view3d header template to set width.

Now MMB scroll of view3d header works again.
2009-08-16 13:01:40 +00:00
Campbell Barton d776dcf795 - added RNA_struct_free_extension rather then having the funcs in each unregister func.
- use RNA_struct_blender_type_set to set the type to NULL before its freed

There is a memory error here when reloading scripts - ui_handler_panel_region, need to look into theis further.
2009-08-16 07:26:29 +00:00
Nicholas Bishop 177956a3a7 2.5/Posemode:
* Pose mode was already object-localized, but moved the flag from object->flag to object->mode, with all the other modes.
* Updated object mode RNA
* Commented out some dubious use of base->flag with the posemode flag. So far as I could see the value was only being set, not read, so a hopefully safe change.
2009-08-16 03:24:23 +00:00
Nicholas Bishop 88294d7fa2 2.5/Particle edit:
* Made particle edit object-localized.
2009-08-16 02:35:44 +00:00
Brecht Van Lommel 41dc419dcb 2.5: fix for layout engine, increase default size of number buttons
in headers.
2009-08-15 19:31:49 +00:00
Brecht Van Lommel 9059639df4 2.5: Screen/Scene New/Delete operators.
Implementation Note:
* Moved the scene copy/unlink code back into blenkernel, with
  the exception of the copy single user stuff which is still in
  object_edit.c.
* Uses SCREENDELETE notifier like SCREENBROWSE, seems only clean
  way to do this now.
2009-08-15 16:43:03 +00:00
Andrea Weikert 75af1a7f9e MSVC compile fix.
* replaced snprintf with BLI_snprintf 
* in unit.c used the #define hack used in several places already to avoid adding additional dependency.
2009-08-13 18:26:15 +00:00
Campbell Barton 52a6a07d67 added string max length option for unit functions bUnit_AsString and bUnit_ReplaceString 2009-08-13 17:05:27 +00:00
Joshua Leung 79a928682c 2.5 - Fix for segfaults with entering text in normal number buttons (i.e. frame buttons in timeline header). 2009-08-13 11:54:12 +00:00
Campbell Barton d916c25616 - moved unit settings from user prefs into the scene.
- use the scene context for the unit settings since there isn't a better place for it currently.
- added 'chain' to imperial units
- set more rna props to be distances and angles.
2009-08-13 07:37:41 +00:00
Campbell Barton 45ba3d31c0 when units are enabled use them for 3d viewport grid drawing, display the dimension for the smallest grid cell.
still need to make this work with grid snapping.
2009-08-12 14:11:53 +00:00
Campbell Barton 8641833b57 Set the clickstep for unit buttons to each click moves 1 unit. 2009-08-12 08:16:10 +00:00
Campbell Barton 63b276efbf - was displaying 1cm as 10mm because of double precission problem.
- typing in numbers without any units will use the units displayed before editing the value.
- fixed some errors
2009-08-12 07:23:10 +00:00
Campbell Barton d1085715a3 fix for errors evaluating user input when units are disabled 2009-08-12 05:53:12 +00:00
Campbell Barton 23e0571853 added time units, currently only used when metric or imperial are enabled.
long/short units...
day,d,  hour,hr,h,  minute,min,m, second,sec,s,  millisecond,ms,  microsecond,us

Also may fix some bugs that were reported.

Note, to convert fps to time evil_C needs to be used to get the scene.
2009-08-12 05:20:16 +00:00