Commit Graph

13645 Commits

Author SHA1 Message Date
Ton Roosendaal
2415040b9f 2.5
Patch from Arystan Dyussenov (A624), two operators for armatures;

- select hierarchy up/down, using bracket [ ] with or without
  shift, and for editmode and posemode.

Good work, thanks!
2009-02-16 17:18:24 +00:00
Campbell Barton
46417e1362 WIP, low level python UI functions, so far tested popup menu to work with bpyui.pupMenuBegin, menuItemO and pupMenuEnd functions.
And a popup block with python callback with bpyui.pupBlock, beginBlock, popupBoundsBlock and endBlock funcions.

These functions should not be accessed by scripters directly.
2009-02-16 16:17:20 +00:00
Ton Roosendaal
3b6218405b 2.5
Some small fixes:

- handler operator exec gave too quick a warning for invalid area
  (set area context to NULL is OK :)
- 4-split 3D view with clip option didn't reset clip when 4-split
  was disabled
- creating a new 3d view didn't initialize buttons region correct.
2009-02-16 15:08:06 +00:00
Ton Roosendaal
27d52217ca 2.5
Cleanup of wm_event_types.h, removed all old "allqueue" defines.
2009-02-16 14:28:33 +00:00
Ton Roosendaal
4154e48c05 2.5
Proper integration of File-selecting in WM. The communication
flow was flawed. :) Main problem was that filewindow can change
the screen context entirely, and should not do this directly on
a call inside an operator. Another problem was that the operator
ownership was handed over to SpaceFile, which is asking for 
problems if you want to execute the operator with proper context
later on.

Solution is simple; window handlers already are valid owners of
operators and can manage context, so instead of directly talking
to the 'file space', you give the operator to a new handler this
way:

    WM_event_add_fileselect(C, op);

This handler then listens to events (OPEN, EXEC, CANCEL) sent
by the WM or by the filewindow itself. This way local context
operators (like "open new image in imagewindow") will survive
a full-window fileselector fine, and in future also secondary
windows browsing files.

Two bugfixes included in this commit too:
- Add sequence menus in Sequencer used wrong context.
- When handler executes operators, it sets stored context now
  by first checking if this is still valid.
2009-02-16 12:14:04 +00:00
Joshua Leung
f6df8e1860 F-Curve names: Experimental style 2
In this commit, I've experimented with the way in which F-Curve names (seen in DopeSheet/Graph Editor) are put together. 

Now, F-Curve names are assembled in the form:
<array-index> <property-name> (<struct-name>)
i.e.  "X Location (Bone)", "Y Location (Object)"
"Specularity (VeryLongMaterialName)", etc.  

The goal of this experiment was to hopefully make it quicker to do a left-margin scan and identify the defining differences between closely related F-Curves. 
- This has the benefit of no (potential) need for horizontal scrolling back and forth to see and compare the end portions of names, and also to avoid the important parts of the name getting pushed out of the standard viewable area by some owner-struct long names. 
- The downside is the loss of the clear hierarchial layout closely related to the RNA-paths used internally, that was provided by the old method. Also, this method also looks rather awkward on first glance, but if it improves efficiency of use, why not :)
2009-02-16 09:48:38 +00:00
Joshua Leung
5452c4e146 Tweaked tooltips drawing - the previous correction I applied here for the width was too excessive. That was based on some bug which seems to have disappeared now. 2009-02-16 09:03:32 +00:00
Joshua Leung
7f4fa8971a 2.5: Restoring Auto-Keyframing for Transforms
Auto-Keyframing does not work anywhere else yet, and probably won't for a while.
2009-02-16 03:01:56 +00:00
Joshua Leung
b2c04faa06 Graph Editor Transform Bugfix:
Now grabbing a single handle (auto/aligned) works correctly. One line of missing code mean that the handle recalculations were getting skipped.
2009-02-15 23:48:05 +00:00
Joshua Leung
95207cec00 2.5
Added RNA wrapping for F-Curve colour settings
2009-02-15 23:28:30 +00:00
Campbell Barton
e05742b64d added back sequencer RMB select Ctrl/Alt modifier keys. 2009-02-15 17:24:09 +00:00
Ton Roosendaal
121c8c2584 2.5
Accidentally closed comment twice, that doesnt compile!
2009-02-15 14:01:27 +00:00
Campbell Barton
b35092f03c thought the hashes were my own mistake from typing python in the wrong window but turns out the pre-processor uses them. 2009-02-15 13:53:26 +00:00
Ton Roosendaal
66d3dcf150 2.5
Anim playback now uses "Sync" option, skipping frames to match
real time (as set by the frames/sec button).

This is a quicky for tests with audio. Note that the real time
in seconds to update sound to in ED_update_for_newframe() would be:

(scene->r.cfra / FPS) + screen->animtimer->duration

Also this can have a slight inaccuracy, the time between the timer
handler and the ED_update_for_newframe() notifier is not known,
but in general nearly zero. A better implementation is possible, but
thats for later. :)
2009-02-15 13:09:19 +00:00
Ton Roosendaal
50f789e9e8 2.5
Graph editor: added refresh tagging on initialize; this is called
on browsing space types, as well on read files or switch screens.

(Makes the fancy fluorescent rainbow colors in channels appear!)
2009-02-15 11:41:22 +00:00
Joshua Leung
844db37559 Graph Editor: F-Curve Colouring
Now F-Curve channels in channels region are drawn with the same colour as their respective curve is drawn in the curves area. I've had to make a compromise to store such colour info in F-Curves themselves, which is not terribly ideal if the F-Curve gets reused in some way. However, for now, this will do (special tweaks can be made to make this work better though).

I've also added a colour-determination mode per curve which should in future allow more control over this. By default, all curves still use the old 'rainbow' style. The available types area:
* Old Rainbow - Colour is determined 'automatically' using a magic method which uses curve position + total curves to generate a colour.
* Auto RGB - Color is determined using the 'array index' stored in F-Curve for data-access. An unresolved issue with this is that all the curves with this will end up with exactly the same colour, leading to confusion (i.e. all location.x and scale.x properties could potentially all be the same red colour).
* Custom colour - self explanatory

Currently, there's a minor bug when loading old files where the colours don't get initialised yet. For now, just clicking in the Graph Editor after file-load will solve any of these problems.
Ton: it looks like area->refresh() isn't getting called after file read.
2009-02-15 10:58:24 +00:00
Joshua Leung
394b3fcede Keying Sets: Added 'remove selected from active set' (Alt-K) operator in Outliner
* Cleaned up the helper functions for the Outliner operators which deal with Keying Sets
* Fixed a few minor bugs in the Keying Sets API that won't show up with the current tools, but may crop up later
* Added a new method to find a 'matching' path in a Keying Set. Now adding a new path to a Keying Set will firstly check if there is any similar path already, and skip adding another path.
2009-02-15 07:00:13 +00:00
Michael Fox
c56d635318 2.5
*******
- made the armature selection ops use the new editbone/pchan context loops and a little house cleaning
2009-02-14 23:21:39 +00:00
Shaul Kedem
a0fada6f18 added error reporting to edit mesh 2009-02-14 21:31:34 +00:00
Ton Roosendaal
aba3c36e33 2.5
Test: making screencast movies inside Blender!
Hotkey: CTRL+F3. Stop with ESC

Keep in mind it's unfinished :)

Just nice to see how simple cleaner code with the new event 
system and job manager can be put to work!

- it uses currently output directory and image/movie 
  settings from scene. No buttons for this yet.
- Framerate is hardcoded 10 fps
- Thread job takes care of open/write/close movie
  or save image files.
- For speed it uses glReadPixels from backbuffer. Have
  to consult Brecht for nifty triple buffer trick.
- On file reads it stops now.
2009-02-14 18:31:19 +00:00
Ton Roosendaal
7dce015c90 2.5
Making screenshots back. CTRL+F3 does full window now.
Filewindow doesn't show image type, nor does single-area
work now. Need this commit for test in render crashes... :)
2009-02-14 16:43:02 +00:00
Ton Roosendaal
05cdff9bf1 2.5
FileWindow:

It appeared all load/save went via 1 call, so the 'OK save over' menu
popped up on loading files too.
Added check in the function for saving... bit weak, could become an
argument for ED_fileselect.

Also renamed file operators to conform to others.
2009-02-14 14:25:48 +00:00
Ton Roosendaal
3f425dfc71 2.5
Node editor: adding node sends proper redraw now, and calls
the old 'auto connect' to make it link to active node.
2009-02-14 13:18:18 +00:00
Ton Roosendaal
891a2022c5 2.5
View3D: snap menu (SHIFT+S) back.

All options are own operators, a (temp?) menu collects them all.
Note that the operators have a full name, for the menu it seems
too much; still I'd prefer a way to name operators in a way
it fits everywhere. That will make a unified translation system
possible for example.

Also: this code was needed to get 'center view' (numpad dot) in
editmode to work.

Last note; it uses old transform code to gather vertex info.
This is fully local to this C file, and quite simple to replace 
in future with new transform.
2009-02-14 13:07:09 +00:00
Ton Roosendaal
699f8fe104 2.5
- Localview in 3d window back.
  Note: it puts entire area on localview, so it works nice for
  4-split views as well.

- Added 'save over' menu in filewindow F2 operator. Mostly to
  comply to 2.48... such things can be on the review list.
2009-02-14 10:03:24 +00:00
Joshua Leung
d875386b06 2.5 Bugfixes:
* Removed unnecessary define for context loop (editable posechannels)

* Fixed crash in animation-channel filtering - missing check for no world animation.
2009-02-14 07:52:25 +00:00
Joshua Leung
f3fac33688 2.5 - Adding context iterators for visible/editable (selection is irrelevant) for bones and pose-channels.
I'm not totally sure that these are needed, though it does make some tools simpler.
2009-02-14 07:27:12 +00:00
Joshua Leung
11d96459cf Bugfix: 'Legacy' Insert Keyframe operator works again... It's future is still uncertain though. 2009-02-13 21:40:07 +00:00
Brecht Van Lommel
47b9a44063 2.5: Curve edit mode add vertex and add menus now work. Also
fixed an issue where sublevel menus did not get right operator
context.
2009-02-13 17:37:01 +00:00
Brecht Van Lommel
62494990e6 2.5: update cmake for rna_animation.c. 2009-02-13 16:05:42 +00:00
Brecht Van Lommel
09547c508e 2.5: Keyingsets now can construct rna paths including pointers
and collections, which means keying for example object game
settings or constraint properties should work.
2009-02-13 14:48:38 +00:00
Campbell Barton
d2b1febce1 select left/right of active sequence strip 2009-02-13 14:16:56 +00:00
Ton Roosendaal
023ea476fd 2.5
Bugfix: menus in "screen space" could go wrong because the code
accidentally used window->winid instead of screen->mainwin id.
(the first is window id, the 2nd wm subwindow id. On start both
are one, which made it not appear immediately).
2009-02-13 13:55:57 +00:00
Ton Roosendaal
1d5115c251 2.5
feature restored: window title shows file name, 
if saved/loaded.
2009-02-13 13:33:01 +00:00
Ton Roosendaal
4d0f30f475 2.5
Feature restored: save file for the first time automatically names it
untitled.blend, prevents to accidentally save over last saved
file.
2009-02-13 13:04:48 +00:00
Joshua Leung
8817fb93c4 Keying Sets: Insert/Delete Keyframe Operator Buttons
* Insert/Delete keyframe buttons in the TimeLine work again. These now use two new operators which only insert keyframes for the active Keying Set. 
* Renamed the old insert/delete keyframe operators. These now have the "*_old" postfix on their names. What happens with these temp operators is yet to be seen.
* Added insert/delete keyframe buttons beside the operator buttons for Keying Sets in the Outliner->Datablocks view
2009-02-13 09:46:08 +00:00
Joshua Leung
c8f04eba48 Animato: Various improvements
* Scene and World AnimDatas are now included in animation editors
 
* Keyframes for integer-value settings now get the FCURVE_INT_VALUES flag set for their F-Curves, which restricts those curves to only having integer-values. F-Curve displays have been altered accordingly, but some editing tools may still need tweaks to work with this.

* Fixed notifiers for Insert Keyframe -> Active Keying Set.
2009-02-13 06:33:07 +00:00
Joshua Leung
cec4a29977 Keying Sets: Wrapped KeyingSets in RNA
* The settings of KeyingSets can now be viewed/modified through RNA. 
* Shuffled RNA wrapping for AnimData over to its own file 
* Moved insert-key flags to DNA_anim_types.h, as they're now used for KeyingSets.
2009-02-13 01:51:33 +00:00
Joshua Leung
ed7e211c2d KeyingSets: Fixing crash when adding KeyingSets and no group name is supplied 2009-02-12 23:25:36 +00:00
Joshua Leung
c5d8155aeb Compilation fix: added missing ; 2009-02-12 22:24:51 +00:00
Brecht Van Lommel
763a98f4c0 2.5: Most curve/surface editmode operators back:
* Hide, Reveal
* Separate, Duplicate, Delete
* Set Weight, Set Radius, Set Spline Type, Set Handle Type, Set Smooth
* Tilt, Clear Tilt
* Smooth, Smooth Radius
* De(select) First, De(select) Last, De(select) All, Select Inverse,
  Select Linked, Select Control Point Row, Select Next, Select Previous,
  Select More, Select Less, Select Random, Select Every Nth
* Switch Direction, Subdivide, Make Segment, Spin, Extrude, Toggle Cyclic
* Specials Menu

Not working correct yet:

* Add Vertex (ctrl click)
* Add Menu
2009-02-12 22:12:21 +00:00
Joshua Leung
cfa511ab9e Dummy commit...
* Added comment for what needs to be done to get KeyingSets fully functional
* In previous commit, also made group-locking be taken into account when drawing curves as locked
2009-02-12 11:04:08 +00:00
Joshua Leung
4075c60133 KeyingSets: First working prototype
To use KeyingSets, simply Outliner-select items in the Datablocks view and press K to add to the active KeyingSet. Then keyframes can be inserted by choosing the 'Active Keying Set' option when inserting keyframes.

Important notes on the current implementation:
* Only properties directly inside some ID-block that is close to the root (i.e. main -> objects -> "someobj" -> location, or main -> materials -> "somemat" -> colour) can be accessed for now, as I haven't got the code for building the inner-parts of the paths working yet. Help on getting this working is welcome (hint to Brecht).  
* Properties that can be safely included include simple properties "object -> Dupli Verts", entire arrays "object -> Location" or individual array elements "object -> Location -> y"

---

Also added typo fix for KeyingSet freeing. It was freeing the KeyingSet instead of it's paths.
2009-02-12 10:41:57 +00:00
Ton Roosendaal
517d9b882a 2.5
Bugfix: node editor crashed when using bitmap fonts, still had a 
call commented out, happened during migration to get things linked.
2009-02-12 09:18:35 +00:00
Campbell Barton
48594a3a70 own error in last commit. 2009-02-12 06:36:06 +00:00
Diego Borghetti
a150242f8e Commit to continue tomorrow from work. 2009-02-12 05:02:42 +00:00
Campbell Barton
a5f26d4c14 reveil -> reveal 2009-02-12 03:48:56 +00:00
Campbell Barton
b96180ec17 * Added description string to operator types, should be set along with ot->idname when defining ops.
* User interface uses this as a tooltip when NULL or "" is given.
* Python doc generation includes this description 
* Python defined ops take the description as an argument.

* NULL check to image_ops.c, was crashing on exit when there was an image open.
2009-02-12 03:39:56 +00:00
Joshua Leung
12811a096c Graph Editor: Experimental variations of curve display
* Uneditable F-Curves are drawn with dotted lines (and no handles)
* Muted F-Curves are drawn with a greyish colour. I'm not sure how visible this will be under some other colour schemes. Perhaps this needs as separate theme colour?
2009-02-12 01:47:45 +00:00
Joshua Leung
9733eebd60 KeyingSets: More work on preparing the UI
KeyingSets can now be added/removed. Next up, the code for the operators to add items to Keying Sets.
2009-02-12 01:11:29 +00:00