Commit Graph

427 Commits

Author SHA1 Message Date
Campbell Barton
a2b94de539 [#21095] r26789 'copy vertex group to selected' crash blender 2010-02-11 10:41:11 +00:00
Daniel Salazar
15ef07d684 More tooltip editing 2010-02-11 02:03:18 +00:00
Campbell Barton
148435b70a batch remove .'s used with RNA_def_struct_ui_text 2010-02-10 21:15:44 +00:00
Campbell Barton
eabb8e2942 rename Nurb to Spline in RNA since Nurb also stores bezier and poly lines. 2010-02-10 08:53:08 +00:00
Campbell Barton
f22104542b copy vgroups to selected objects as long as they have aligned arrays.
access in the vertex group panel menu.
2010-02-09 22:00:19 +00:00
Brecht Van Lommel
10240261e9 J-key render switching back, now with 10 slots.
Implementation note: this was done by giving each Render a slot number,
and for every slot a new Render will be created. Not sure if this is
ideal, but it ensures that all passes, render info, etc are separate so
you can also compare render layers and passes, in 2.4x only whatever it
was currently displaying was backed up.
2010-02-09 19:37:37 +00:00
Brecht Van Lommel
ec7df03c86 Warning fixes, one actual bug found in sequencer sound wave drawing. Also
changed some malloc to MEM_mallocN while trying to track down a memory leak.
2010-02-08 13:55:31 +00:00
Joshua Leung
40903efe85 Missed a few places in previous constraints commit 2010-02-03 11:43:26 +00:00
Joshua Leung
e5bfbcca02 Bugfix #20902: In PoseMode, ObjectMode constraints can't be deleted or moved up/down 2010-02-03 11:36:09 +00:00
Campbell Barton
2745609ffd [#20905] Blender 2.5 - Crash on drag an drop
Only allow dnd' adding objects in object mode.
2010-02-03 10:16:12 +00:00
Joshua Leung
2c5ef58b8b Bugfix #20942: Unassigned Vertex Groups crash Blender on sort
This commit fixes the crash, but it seems that the sorting doesn't work correctly with or without any vertices assigned.
2010-02-03 02:31:29 +00:00
Campbell Barton
95bfbd470e vertex group sort operator, access from the vgroup panel, sintels mesh has 144 vertex groups which got quite tedious to look through. 2010-02-02 21:43:26 +00:00
Brecht Van Lommel
d121c0153b Fix #20932: add surface operator did not pop up type menu when invoked. 2010-02-02 17:38:56 +00:00
Campbell Barton
11e011b409 error mirrorring weight group, wasnt checking if the mirror vert was the same 2010-02-02 15:18:37 +00:00
Brecht Van Lommel
5e98d8c523 Fix #20876: adjusting the settings after adding a new curve, surface,
or metaball creates duplicates, these did two undo pushes when only
one is needed.
2010-01-30 09:34:54 +00:00
Matt Ebb
6d1895e846 * More tweaks to previous cleaning 2010-01-28 23:45:12 +00:00
Martin Poirier
fb7878a2c2 PROP_ENUM_NO_CONTEXT flag for rna properties, forcing enum item functions to be passed a null context (to return non-contextual items).
This is set on keymap item operator properties and macro definition operator properties to make them non-contextual (since the context at definition time is most likely not the same then at execution time, it's better to have all options visible).

This removes some more errors in keymap export and import.

This commit also sanitize some enum item function, making sure they can cope with null context and have usable defaults in that case.
2010-01-27 21:19:39 +00:00
Ton Roosendaal
f0ec3cb4b1 Two small dragdrop fixes:
- drop material didn't send correct notifiers to refresh view
- drop material gave error print
2010-01-27 15:08:30 +00:00
Campbell Barton
107f6cb269 - duplicate window crasheing when it was full screen
- keymap item was missing NULL check crash
- editmode object in inactive layer crash
2010-01-27 09:16:28 +00:00
Matt Ebb
904665f15b [#20728] "Export UV Layout" overwrites existing files (without feedback)
The 'save over' popup was only appearing based on a string comparison of the operator name ("Save"). Changed this to use a hidden operator property: "check_existing". Python operators must 
have this property for the file selector confirmation too.

This property can also be set to false, to prevent checking for existing files, useful in the File->Save menu item to prevent the dangerously missable confirmation popup.
2010-01-27 02:20:24 +00:00
Ton Roosendaal
b119ce5fcc Drag and drop 2.5 integration! Finally, slashdot regulars can use
Blender too now! :)

** Drag works as follows:

- drag-able items are defined by the standard interface ui toolkit
- each button can get this feature, via uiButSetDragXXX(but, ...).
  There are calls to define drag-able images, ID blocks, RNA paths, 
  file paths, and so on. By default you drag an icon, exceptionally 
  an ImBuf
- Drag items are registered centrally in the WM, it allows more drag 
  items simultaneous too, but not implemented

** Drop works as follows:

- On mouse release, and if drag items exist in the WM, it converts 
  the mouse event to an EVT_DROP type. This event then gets the full 
  drag info as customdata

- drop regions are defined with WM_dropbox_add(), similar to keymaps 
  you can make a "drop map" this way, which become 'drop map handlers' 
  in the queues.
- next to that the UI kit handles some common button types (like 
  accepting ID or names) to be catching a drop event too.

- Every "drop box" has two callbacks:
  - poll() = check if the event drag data is relevant for this box
  - copy() = fill in custom properties in the dropbox to initialize 
    an operator
- The dropbox handler then calls its standard Operator with its 
  dropbox properties.

** Currently implemented

Drag items:
- ID icons in browse buttons
- ID icons in context menu of properties region
- ID icons in outliner and rna viewer
- FileBrowser icons
- FileBrowser preview images

Drag-able icons are subtly visualized by making them brighter a bit 
on mouse-over. In case the icon is a button or UI element too (most 
cases), the drag-able feature will make the item react to 
mouse-release instead of mouse-press. 

Drop options:

- UI buttons: ID and text buttons (paste name)
- View3d: Object ID drop copies object
- View3d: Material ID drop assigns to object under cursor
- View3d: Image ID drop assigns to object UV texture under cursor
- Sequencer: Path drop will add either Image or Movie strip
- Image window: Path drop will open image


** Drag and drop Notes:

- Dropping into another Blender window (from same application) works 
too. I've added code that passes on mousemoves and clicks to other 
windows, without activating them though. This does make using multi-window
Blender a bit friendler.

- Dropping a file path to an image, is not the same as dropping an 
Image ID... keep this in mind. Sequencer for example wants paths to 
be dropped,  textures in 3d window wants an Image ID.

- Although drop boxes could be defined via Python, I suggest they're 
part of the UI and editor design (= how we want an editor to work), and 
not default offered configurable like keymaps. 

- At the moment only one item can be dragged at a time. This is for 
several reasons.... For one, Blender doesn't have a well defined 
uniform way to define "what is selected" (files, outliner items, etc). 
Secondly there's potential conflicts on what todo when you drop mixed 
drag sets on spots. All undefined stuff... nice for later.

- Example to bypass the above: a collection of images that form a strip, 
should be represented in filewindow as a single sequence anyway. 
This then will fit well and gets handled neatly by design.

- Another option to check is to allow multiple options per drop... it 
could show the operator as a sort of menu, allowing arrow or scrollwheel 
to choose. For time being I'd prefer to try to design a singular drop 
though, just offer only one drop action per data type on given spots.

- What does work already, but a tad slow, is to use a function that 
detects an object (type) under cursor, so a drag item's option can be 
further refined (like drop object on object = parent). (disabled)


** More notes

- Added saving for Region layouts (like split points for toolbar)

- Label buttons now handle mouse over

- File list: added full path entry for drop feature.

- Filesel bugfix: wm_operator_exec() got called there and fully handled, 
while WM event code tried same. Added new OPERATOR_HANDLED flag for this. 
Maybe python needs it too?

- Cocoa: added window move event, so multi-win setups work OK (didnt save).

- Interface_handlers.c: removed win->active

- Severe area copy bug: area handlers were not set to NULL

- Filesel bugfix: next/prev folder list was not copied on area copies

** Leftover todos

- Cocoa windows seem to hang on cases still... needs check
- Cocoa 'draw overlap' swap doesn't work
- Cocoa window loses focus permanently on using Spotlight
  (for these reasons, makefile building has Carbon as default atm)

- ListView templates in UI cannot become dragged yet, needs review... 
it consists of two overlapping UI elements, preventing handling icon clicks.

- There's already Ghost library code to handle dropping from OS 
into Blender window. I've noticed this code is unfinished for Macs, but 
seems to be complete for Windows. Needs test... currently, an external 
drop event will print in console when succesfully delivered to Blender's WM.
2010-01-26 18:18:21 +00:00
Campbell Barton
246bcf48ad weight panel editing now supports mirroring
- use mirror when the option is enabled in editmode.
- fliped group names are used when they exist.
- only the setting that is edited will be applied to the mirrored verts group.
- copy value is applied to all mirrored verts of the selection.
- normalize normalizes all vgroups and mirrors.

utility functions defvert_sync and defvert_sync_mapped, similar to defvert_copy but does not remove existing groups and optionally creates groups as needed.
defvert_sync_mapped uses a an int array for mapping the flipped values.
2010-01-26 17:07:47 +00:00
Brecht Van Lommel
8d6a40c016 Fix #19802: tweaking the values of e.g. the add tube operator when
entering editmode on a second mesh would create a duplicate tube.

Cleaning the undo stack from the previous mesh would mess up the redo.
Also, OBJECT_OT_mode_set was causing enter/exit editmode undo push to
be done twice, now it leaves undo push to the operator it calls.
2010-01-26 15:54:42 +00:00
Campbell Barton
e307f6c6a0 rename defgroup functions to be more consistant.
* no functional changes *
2010-01-26 13:50:17 +00:00
Brecht Van Lommel
7c776bc124 Fix for make duplicates real, put new objects on same layers as
duplicator instead of original object.
2010-01-26 11:23:47 +00:00
Brecht Van Lommel
5fe3524ab1 Fix #20803: convert button in particle modifier didn't work
for creating duplis yet.
2010-01-26 11:15:45 +00:00
Brecht Van Lommel
26d8b59864 Assign automatic/envelope weights in weight paint mode is back,
accessible from W key and in new Weights menu in the header.
2010-01-26 11:11:53 +00:00
Campbell Barton
33623ba3a3 panel for adjusting the active vertex groups weights 2010-01-25 23:12:02 +00:00
Martin Poirier
4907e8df20 Remove unneeded notifier data added in revision 26219.
Fix a lot of notifier calls to stop abusing ND_TRANSFORM and use more appropriate data flags.
2010-01-25 19:42:33 +00:00
Matt Ebb
38aacb92f3 Cleaned up some printfs in editors/ - converted some to reports, hid others behind G_DEBUG. 2010-01-22 06:48:29 +00:00
Matt Ebb
0de9b98a31 Fixed newly added group instances not getting any layers assigned. 2010-01-22 04:52:32 +00:00
Campbell Barton
ba8269c5f6 fix for baking crash 2010-01-21 11:49:02 +00:00
Matt Ebb
1ad61f32aa Fix [#20750] adding Lattice object in Local space doesn't appears
Now add object operators take a layer parameter (hidden in UI) to determine their layer when created.
2010-01-21 04:54:52 +00:00
Campbell Barton
e7686b4cdb use a search popup for the add group menu item when there are more then 10. 2010-01-20 13:38:17 +00:00
Joshua Leung
7759fc2983 Motion Paths - (Part 3) Operators, Drawing, and Fixes
This commit makes the new-style Motion Paths work for Objects and Bones. Motion Paths can either be added for Objects (Object buttons) or for Selected Bones in PoseMode (Armature Buttons), and/or removed from these panels too.

Changes:
* Changed the way the baking code worked, since it was better to be able to bake a bunch of objects at once, instead of doing it per object
* Fixed a variety of bugs regarding initialising defaults and reading old files
* Added operators for Objects (like for bones), and replaced the existing code for bones.
* Fixed bug with baking code that was causing it to bake the wrong ranges

Todos:
* Frame number drawing is currently messed up, since the "cached" text drawing takes into account the object transforms.
* The new MotionPath panels currently appear as the first panels in the respective contexts, probably due to the order in which the files are included. This needs some fixing, though not sure what the best way is yet.
2010-01-19 11:31:49 +00:00
Campbell Barton
13f28b6fa4 revert for last commit, this should fix the proplem properly.
- selected bones on hidden layers would be selected for weight painting (confusing to the user). use the 'active' bone instead.
- when no weight group was set, the index used for the bone group was off by 1.
2010-01-18 16:21:23 +00:00
Campbell Barton
8cf6b390e3 fix for weight painting bug, weight painting would fail when entering weight pait mode in some cases. 2010-01-18 15:33:43 +00:00
Campbell Barton
c7dfa96aea bugfix [#20639] BF25_SVN_25888 and below - OBJ and 3DS import fails
blender supports type changing for textures in a way that python doesnt.
add a new general function.

Example usage:
 tex = bpy.data.textures.new("Foo")
 tex.type = 'IMAGE'
 tex = tex.recast_type()

Macro to give the number of users accounting for fake user.
 ID_REAL_USERS(id)
Use this so you can remove a datablock if it has a fake users as well as apply transformations to it in the 3D view.

Move api function bpy.data.add_texture() --> bpy.data.textures.new()/remove()
2010-01-17 20:06:34 +00:00
Campbell Barton
5272991e8b generic operator menu was searching for "type" and using the first enum property if it wasnt found.
this is too arbitrary and could break if roperty order is changed.
store the property in the operator type that is to be used for menu and enum search func's.

python function for searching operator enums on invoke. (just need dynamic python enums now)
 wm.invoke_search_popup(self)
2010-01-15 22:40:33 +00:00
Campbell Barton
ace8d45c1c - particle drawing was using invalid memory with weights.
- particle set weight operator (Shift + K) and from the menu.
- mirror vertex groups operator can also flip weight group names.

a number of utility functions for weight groups added
 int *get_defgroup_flip_map(struct Object *ob);
 void flip_vertexgroup_name (char *name_r, const char *name, int strip_number); // moved from modifier.c 
 void copy_defvert (struct MDeformVert *dvert_r, const struct MDeformVert *dvert);
 void flip_defvert (struct MDeformVert *dvert, int *flip_map);
2010-01-15 17:28:00 +00:00
Campbell Barton
a4732eefa5 a new generic invoke function - WM_enum_search_invoke()
This can search operators enum property.

Make proxy menu could easily get too big. use the new search popup.
2010-01-15 17:23:16 +00:00
Campbell Barton
b0f87935a8 spelling errors, no real changes to code. 2010-01-14 10:59:42 +00:00
Matt Ebb
874ef4c747 Changed 3D View menu Duplicate Linked to use the same
duplicate linked + move macro as in the default key map (alt d).
2010-01-14 04:36:27 +00:00
Matt Ebb
e6c61acb68 Fix [#20644] new curve sets itself to the origin, but the pivot to the cursor
+ Cleaned up the nurbs spin operator and gave it properties rather than 
relying on context
2010-01-12 01:50:34 +00:00
Campbell Barton
a3e461ce1b - player building again
- fix for compiler warnigns
- bpath reporting was incorrect
2010-01-11 10:48:41 +00:00
Matt Ebb
9565322d32 Fix [#20600] First added camera is not made active
Also forced view align on when adding cameras
2010-01-11 06:57:41 +00:00
Matt Ebb
1f12e8c59f * Restored vertex parent
The operator was already there and written, just didn't have a hotkey 
assigned. Gave it an icky popup menu like object mode parent until we 
get a nice non-blocking report viewer.
2010-01-11 05:55:34 +00:00
Campbell Barton
0185e24861 Make linked animdata working again, copies NLA too, as well as ObData animdata where types match 2010-01-10 20:23:59 +00:00
Campbell Barton
b36a05bb7e - fix for crash if drivers were used in the .B.blend
- fix for problem where proxy objects could enter editmode but not exit
2010-01-10 20:01:13 +00:00
Campbell Barton
508371001a [#20624] Creating new shape key always creates from basis, not selected key 2010-01-10 10:33:13 +00:00