Commit Graph

453 Commits

Author SHA1 Message Date
Brecht Van Lommel
59db9a4061 Bugfix: multires save external was not working. Just disabled operator poll
for now, but there's actually a deeper issue here, the modifier is no longer
in context after the file browser, not sure how to solve this.
2010-03-08 15:44:26 +00:00
Sergey Sharybin
17975400e0 Send object's modifiers were changed in conversion operator.
This will prevent displaying data on modifiers page after conversion is over.
2010-03-08 14:35:38 +00:00
Sergey Sharybin
38f3b8ab92 Fixed segmentation fault when converting mesh to mesh with non-empty modifiers stack. 2010-03-08 13:49:05 +00:00
Sergey Sharybin
3ad1bfa69e Fix for convert_exec()
"Keep original" option now works for all objects' types
2010-03-07 05:04:22 +00:00
Sergey Sharybin
d0c70ad1d5 Constructive modifiers for curves and surfaces
Used approach with creating DerivedMesh for curves whet they've got such modifiers.

Available modifiers are: array, edge split, mirror, solidify, subsurf.
2010-03-05 16:47:52 +00:00
Campbell Barton
ef0dd615c6 select roots of the hair verts when converting hair into a mesh. 2010-03-03 19:22:02 +00:00
Campbell Barton
5de69e9545 [#21436] Do not set BASACT to NULL when new base wasn't created in convert_exec
by Sergey Sharybin (nazgul)

(from the patch)
When new base wasn't created in convert_exec() function. BASACT will set to NULL, which is not convenient. For example,
u can't enter edit mode after converting curve to mesh. Now BASACT changes only if base for active object was changed.
2010-03-03 18:49:26 +00:00
Campbell Barton
cb22649e0b convert to mesh (Alt+C), was failing in cases when MDef was used. make the mesh from the original rather then the copy. 2010-03-02 15:33:33 +00:00
Campbell Barton
0b33be5a7b select parent/child in object mode with [] keys, like pose mode.
also needed to extend the RNA api to allow C to set enums without meaningful values.
2010-02-25 15:41:46 +00:00
Campbell Barton
0cc59b9bb7 generic modal operator to make adjusting almost any rna property with the mouse possible with a few lines.
Example which is similar to interactive lamp adjusting in 2.4x ...
  wm.context_modal_mouse(path_iter="selected_editable_objects", path_item="data.spot_size")

Added lamp Wkey menu back.
2010-02-21 14:05:02 +00:00
Joshua Leung
ddc0c68a5c Bugfix #21234: Autokey "insert only available" userpref inserts keys for all bones in an armature
-- 

Bugfix: When autokey is enabled, notifiers to refresh the animation editors *after* transforms finished for objects were missing.
While I understand the need to limit these to not doing this during transform, after transform, this lead to lag/inconsistent UI problems.

-- 

* Added 'Damped Track' Option to 'Make Track' Operator
* Improved the code of the 'Clear Track' operator to include other types of tracking constraint too
2010-02-21 11:42:32 +00:00
Joshua Leung
f3b9ea066e Bugfix #21245: "Track to" (Ctrl + T) operator was missing notifier updates
Bugfix #21255: Clear track operator did not remove TrackTo constraints too. This could still be made to do Locked Track and other tracking constraints later too, but for now this will do.
2010-02-21 11:05:52 +00:00
Campbell Barton
3b9fdfa9e1 dont allow linking an object into a linked scene. 2010-02-19 14:08:41 +00:00
Campbell Barton
3142c4367c another speedup to constraint checking, skip the bone list and only lookup pose channels that have constraints. 2010-02-18 16:41:47 +00:00
Campbell Barton
f4b3d2dc9c constraints were being checked twice (once from rna property update function and once from the constraint panel callback)
comment the update call in the panel function.
also avoid one bone lookup which was taking a fair bit of CPU when profiling.
2010-02-18 16:05:01 +00:00
Campbell Barton
04035b81b7 [#21207] bpy.ops.object.vertex_group_sort() sorts group names, but not group data
support for vertex group sorting in editmode
2010-02-17 22:26:50 +00:00
Campbell Barton
df4d7b041e fix for make proxy, was checking dupligroup when it wasnt needed. 2010-02-16 19:41:44 +00:00
Brecht Van Lommel
ad01c90ee3 Revert render slots commit for release, I can't find the bug or even redo
it myself, there will still be render slots just old implementation.
2010-02-16 19:24:04 +00:00
Campbell Barton
2036a2638e [#21182] Make proxy for object without group crash Blender.
from Banlu Kemiyatorn (suchness), modified with more error messages.
2010-02-16 16:32:25 +00:00
Brecht Van Lommel
2061f91741 Render Slots: change the implementation by moving it from the render to the
image code, this should be clearer and makes reusing the Render struct later
on easier.
2010-02-16 15:49:22 +00:00
Campbell Barton
56b8e37864 bugfix [#20938] Moving shape keys doest not correct the blend basis. 2010-02-16 13:57:23 +00:00
Campbell Barton
9a6332bea9 bugfix [#21161] Multiresolution Reshape causes crash
disallow reshape running when the multires mesh isnt available.
2010-02-16 10:06:44 +00:00
Brecht Van Lommel
f41660cfd0 GLSL: fix some notifiers for scene settings and remove unneeded check. 2010-02-15 09:03:22 +00:00
Campbell Barton
3917691297 [#21130] Fix segmentation fault when adding Empty object in Blender rev26870
from Sergey Sharybin (nazgul)
2010-02-13 15:50:46 +00:00
Brecht Van Lommel
d125f17db8 Fix #19736: GLSL viewport materials are not updated on all changes. 2010-02-13 13:49:27 +00:00
Campbell Barton
081c1205a3 correct fsf address 2010-02-12 13:34:04 +00:00
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