Commit Graph

427 Commits

Author SHA1 Message Date
4f6ea2b683 Ghost/Compiz bug:
Sometimes, events for window size or move are sent even when the window hasn't changed. This triggers unneeded refreshes.

As a precaution, we now ignore all such events (eventually, it should be done in Ghost X11, but I don't know that code well enough).
2009-09-20 17:24:56 +00:00
9435727712 Handlers/keymaps, some tweaks for previous commits:
* Screen keymap is now split up in two, some of the area/region
  manipulation operators here need to be handled before others.
* Moved paint/sculpt/sketch out of the 3d view keymap, these were
  there as a workaround, now with keymap poll no longer needed.
* Also fixes #19297, 3d cursor moves when combing in particle mode.
2009-09-18 15:48:49 +00:00
26836bf44f 2.5: Python operators now have a working poll() function,
solved by wrapping all polling in WM_operator_poll and
adding a special callback for python.
2009-09-18 13:02:20 +00:00
854ea35a24 2.5: Handlers are now evaluated in a different order, fixing some
issues like Shift+R (repeat last) not giving capital R in the text
editor. There is also new modal handler list at the window level,
and the API call will always add it to that one now, since modal
handlers were not used in other levels.

The order used to be:
* window modal + keymap
* area modal + keymap
* region modal + keymap

Now it is:
* window modal
* region keymap
* area keymap
* window keymap
2009-09-18 12:43:36 +00:00
69e919530e Keymaps now have a poll() function, rather than adding/removing
their handlers based on notifiers, which is simpler and more
reliable.

This fixes for example editmode or uv edit keymaps not working
when creating a new 3dview or image space.
2009-09-17 21:36:02 +00:00
7c5695c801 - bpy.data.sounds was a collection of ID's rather then Sounds
- last commit, missed include for rna_object_api.c & bad args to find_basis_mball
- use enum for GHOST tablet type None/Stylus/Eraser, had duplicate definition for these in C. Only tested X11, may need to cast to an int for other OS's.
2009-09-16 15:55:00 +00:00
fd664970f1 Completely move freeing flag to report, operator flag is uneeded.
Also bugfix for py operators. Reports need to be kept alive when operator is registered.
2009-09-15 16:25:53 +00:00
be69305d85 2.5 Bugfixes
#19302: the spin operator did not redo correct when changing properties.
Actually the problem was somewhere else, the search menu always did an
unnecessary undo push, which conflicted with an operator undo push with
the same name. Only in the case of "Spin" was this noticed, because it's
name is so short and you actually type it completely.
#19328: swapping areas could crash when dragging mouse outside the window.

Attempted fix for #19331, #19335 as well, where backspace and some other
keys give square characters instead of working as expected. Couldn't
reproducable here, so please test.
2009-09-14 20:48:05 +00:00
ba5df38d66 use static functions where possible for some local functions. 2009-09-14 16:52:06 +00:00
a3ce413f44 Bugfix with py operator api and modal operators. Modal operators would keep a reference to Reports locally allocated in the api functions, which would crash and burn later when the operator would actually stop.
This commit introduces a flag at the Reports level that can be used to indicate that it needs to be freed (on top of the flag already existing in the operator, which I guess could be removed).

Reports for operators called through python are only persisted if they indicate that they are running modal.
2009-09-14 16:00:42 +00:00
4539bb9a98 Link/Append, small changes:
* Added separate menu items for Link and Append.
* Change some OPERATOR_FINISHED to OPERATOR_CANCELLED.
* Remove some IPO specific hacks, these are no longer ID blocks,
  so not necessary to take into account.
* Some comment and code formatting tweaks.
2009-09-14 12:30:49 +00:00
f896b905ac Bugfixes:
* #19338: Crash when using Convert operator
Uninitialised var (basact)

* Spacebar when in 3D-View EditMode for Text gets overridden by Search Menu. I've tried adding a fix there, but it doesn't seem to work. Woraround for now is shift-space for entering text.

* Fixed some compiled warnings in wm_operators.c about naming of var named 'main'
2009-09-14 10:56:40 +00:00
a11ef8030a 2.5 mesh cleanup: merge tools all work again 2009-09-14 05:00:03 +00:00
b1e418db20 2.5 filebrowser
fix operator property name 'type' was used by sequencer for strip effect type. Changed to 'filemode' for file browser.
2009-09-13 07:00:44 +00:00
5ac5988448 Bugfix: Append crashed because of wrong parameters passed. 2009-09-12 20:18:54 +00:00
9a25d22326 2.5 filebrowser
Appending and Linking 
* Linking Operator, invokes filebrowser for Append/Link
* Separated the append/link function into three parts:
** BLO_library_append_begin finds main for appending
** BLO_library_append_named_part appends one Object,Group, Material, ...
** BLO_library_append_end actually reads and expands the libraries

NOTE 1:
I also changed the returned properties for the filebrowser operators to the following convention:
"path" - the full path to a file or directory, means what is in directory + filename buttons in filebrowser
"directory" - the content of the directory button in filebrowser
"filename" - the content of the filename button in filebrowser
Usually only path should be required, but in some cases it might be more convenient to retrieve the parts separately.

Ton, Brecht: If you have time to take a look, let me know if anything needs to be fixed.
2009-09-12 19:54:39 +00:00
f9eb93bc7b many docstrings from Ron Walker and Luca (mindrones on IRC),
only did a spot check on these, may need adjusting later.
2009-09-12 17:16:12 +00:00
f0eb02a36b 2.5
Revert some changes from commit 23090. Make sure you update SVN before you commit!!
2009-09-11 21:02:31 +00:00
d5009eb142 2.5 Rotations: As a experiment, enabling Axis-Angle for Bones
The support for this is really quite hacky, and I might disable this later if we cannot get some parts to work nicely. 

Some notes:
* This is currently stored in the same variable that quaternions are stored in, since they both have 4 components. However, in RNA, I've added 2 properties specially for this. 
* There are some shearing issues using certain axes - i.e. (1,1,0) - that will need to be checked on.
* Transform code is really quite temporary for this. Just a quick demo of what can be done...
2009-09-11 12:05:09 +00:00
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
a3a414a631 Keyboard shortcuts
Made Mac-specific keys only appear on the Mac. This has the added benefit that it shows the Mac key shortcuts in menus.
2009-09-09 19:43:05 +00:00
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
d4a69283a6 2.5: fix for recent file operator opening wrong item. 2009-09-09 17:34:14 +00:00
11c5cb452c Keyboard shortcuts
Moved to modern OS standards for opening, saving, copying, pasting, cutting (text), new document, undo and redo.
For Mac users, Cmd is used in addition to the Ctrl-based shortcuts.

These changes are made according to an agreement among developers on IRC.
2009-09-09 15:45:12 +00:00
3daa283604 2.5: Object module
* Split object_edit.c into multiple files:
  object_add.c, object_edit.c, object_hook.c, object_relations.c,
  object_select.c, object_transform.c.
* Rename files to have consistent object_ and mball_ prefix:
  object_shapekey.c, object_lattice.c, object_vgroup.c, mball_edit.c.
* Added operators:
  * vertex group menu and set active
  * apply location, rotation, scale, visual transform (location is new)
  * make local
  * make vertex parent
  * move to layer
  * convert to curve/mesh (not finished yet)
* Many small fixes for marked issues, but still much code to be cleaned
  up here...
2009-09-09 11:52:56 +00:00
8878c30b9b 2.5: WM_menu_invoke now uses the first enum property it can find,
if no enum property named "type" is available.
2009-09-09 11:10:28 +00:00
6808e15c8d 2.5 - Mode Switching Bugfixes
This commit some of the many bugs here (it's still not perfect now, but much better than it was):
* Moving in/out of Object, Edit, and Pose Modes for Armatures should now work smoothly. Operators should work nicely in the appropriate modes now (select linked might be a bit tempermental still, since it uses mouse-position).

* Fixed the 'mysterious' memory leaks when changing modes. These were only caused when using the mode switching menu in the 3D-View.

* Went through bullet-proofing some of the operator calling functions against NULL operator id-name strings.
2009-09-08 02:09:14 +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
0a3694cd6e white space commit. (2 spaces -> tab).
Was annoying to use a different editor for cmake only.
theeth says this should be ok with gsoc and merges from branches.
2009-09-06 01:51:23 +00:00
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
02f951c3a0 allow execution mode to be given as an argument to operators from python (requested by algorith)
example. bpy.ops.tfm.rotate('INVOKE_REGION_WIN', pivot=(0,1,2), ......)

bpy_array.c - was too strict with types, 0 should be allowed as well as 0.0 in a float array.
2009-09-03 22:37:09 +00:00
21af438ef8 Blender 2.5
* recent files now just write content of G.recent_files, was adding untitled.blend!
* removed unused and now superfluous code reading the .Bfs file (is done in fsmenu now)
2009-09-02 17:13:47 +00:00
47beb68a0f Open recent list was arseabout, only adding files on save, rather then open.
This is problematic for a few reasons...
* I'd often save a blendfile only so it would appier in the open recent menu.
* Saving files (when you dont need to) makes access times less useful.
* binary diff's in SVN dont give any useful info. Sometimes I wasnt sure if I actually edited or saves for fast re-opening.
* Testing 2.4x files with animation data in 2.5 can loose info.
* Its not logical and other apps dont work this way.

Also made the recent file list in the file browser display the most recent item first (like the open recent menu).
2009-09-01 00:52:03 +00:00
65b7d58fa2 Grease Pencil: Bugfixes
* Realtime updates now work again
* Fixed problems with clicks to start drawing resulting in a stroke being ended.
* Changed the hotkeys to Ctrl-Alt-Shift-LMB (draw) and Ctrl-Alt-Shift-RMB (erase). Still very temporary stuff, will probably change these a few more times as I experiment with new approaches.
2009-08-27 01:01:13 +00:00
7793848db2 Reverted some keymap changes.
Moving to standards for opening/saving etc was causing uproar in IRC.
2009-08-24 21:45:09 +00:00
2ed155b98a spacebar for the search menu was overriding space in the text editor 2009-08-23 07:33:29 +00:00
9e3ac3c1f2 Added extra padding for OS X at the top of the screen when opening user prefs. The window header was still getting clipped slightly behind the menu bar. 2009-08-22 08:06:54 +00:00
2355130c3a Added standard hotkeys for standard features like copying, cutting, pasting, saving, loading.
Saving/Loading:
Save - Ctrl S / Cmd S
Save As - Ctrl+Shift S / Cmd+Shift S
Open - Ctrl O / Cmd O
Open Recent - Ctrl+Shift O / Cmd+Shift O
New File - Ctrl N / Cmd N

Text:
Copy- Ctrl+C / Cmd+C
Cut- Ctrl+C / Cmd+C
Paste- Ctrl+V / Cmd+V
Select text- Ctrl+A / Cmd+A

Misc:
Repeat Last Op - Ctrl+R / Cmd+R
Render - Ctrl+Return / Cmd+Return
Render Animation- Shift+Ctrl+Return / Shift+Cmd+Return
User Preferences - Ctrl+Comma / Cmd+Comma
Changed the important search menu to Space key.

Old hotkeys are still preserved, at least for now.
2009-08-22 00:19:24 +00:00
bc41c845f3 2.5: Animation playback without sync option was slightly slower
than expected time, even when it could keep up. Changed the WM
timer logic a bit to always target the next frame time exactly,
2009-08-21 16:28:49 +00:00
f2e7ca0de3 2.5: Load UI is now an operator property, and a user preference to
define what the default is, just like file compression for saving.
2009-08-21 14:33:53 +00:00
46fb2d37e3 have texture paint use the curve rather then the falloff setting (falloff gave ugly center area of 100% opacity) 2009-08-21 07:19:06 +00:00
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
7dfc1317ac 2.5/Paint:
* Converted vertex paint to use the new stroke system. Now supports the same smooth stroke and stroke spacing as sculpt mode.
* Refactored the paint cursor a bit, just sculpt for now but other modes soon.
* A couple warning fixes
2009-08-20 05:13:07 +00:00
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
c3041ae7cd - fix for BGE warnings
- when C++ uses guardedalloc SYS_DeleteSystem was called after MEM_printmemlist(), making it look like there was a leak.
2009-08-19 10:26:43 +00:00
360235a5f4 cmake cleanup (remove unused includes, make some within IF checks) 2009-08-19 07:48:56 +00:00
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
b51ebdf0ba 2.5: Middle mouse button emulation with alt + left mouse button
works again, implemented at windowmanager level this time.
2009-08-18 16:11:53 +00:00
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
9f973bca78 units with no separator can now be typed into number buttons - eg, 5'7" 2km4m 2009-08-17 12:48:56 +00:00