Commit Graph

2338 Commits

Author SHA1 Message Date
9fcc1a32df Pie menus: Confirm threshold
This commit adds a confirm threshold property to pie menus.

Basically, this will confirm the pie menu automatically when
the distance from the center of the pie exceeds that threshold without
a need to release the pie button.

The confirm threshold will only work if it is larger than the pie
threshold.

The confirmation actually occur when the mouse stops moving, to
allow multiple pie menus to be better linked together, (see below)

This functionality also facilitates the ability for chained pie menus by
dragging. Basically, a pie menu item can be a call_menu_pie operator and
the new pie menu will still use the original pie menu release event for
confirmation. This should allow for quick, gesture based navigation in
pie menu hierarchies (going back in the hierarchy is still not supported
though)

There will be a demonstration pie in the official add-on soon
2014-10-13 14:35:41 +02:00
0a738280e1 Cleanup 2014-10-11 11:44:28 +02:00
585d2f31a9 Fix T32209 quitting not saving latest data if you are in edit or sculpt mode on
quit.blend.

This will use a slower file write if an object is in edit or sculpt
mode.

Autosaving will explicitly not be supported to keep it fast.
Added a tooltip warning.
2014-10-10 12:04:44 +02:00
0ba84b7124 Operator to define render border from rendered image editor
This way it is possible to define render border directly from the image editor,
which is useful for at least three things:

- If viewport is really optimized out (simplified etc) then it might be hard to
  guess which exact area you're mainly interested now.

- No need to switch to the viewport to do render border tweaks, could be useful
  when doing compositing.

- If one need to look at particular pixel(s) which is real handy for debugging
  render engines (both Cycles and BI).

Reviewers: campbellbarton, venomgfx

Reviewed By: venomgfx

Differential Revision: https://developer.blender.org/D820
2014-10-08 18:02:49 +02:00
e36cc29a69 Fix T42137: Keymap editing is broken
Own mistake in previous fix here, was too greedy in finding an existing kmi of UserPref add diff kmi, we only want
to ignore exact same kmi's here.
2014-10-07 23:39:56 +02:00
8d084e8c8f Ghost Context Refactor
https://developer.blender.org/D643
Separates graphics context creation from window code in Ghost so that they can vary separately.
2014-10-07 15:47:32 -05:00
0d8a007c69 Fix T42088: Creating new keybinds can cause duplicates when saving key config profile
When patching a keymap with a 'UserPref' diff one, do not add keymap items from diff
if they already exists in patched keymap.
2014-10-06 22:08:37 +02:00
a1d80b9c56 Update link to the Support an Animation Movie link
This is to be in the final release.
2014-10-02 20:47:24 +02:00
5f948fb77f Anim Playback: Optionally draw flipped
useful to view animations from different POV.
FKey: X, Shift+FKey: Y
2014-10-01 22:01:01 +10:00
b8f6941776 Cleanup: de-duplicate playanim matrix 2014-10-01 22:01:00 +10:00
6fa46ad315 Support for "virtual pixelsize" on 4k screens.
On 4k devices the default pixel size leads to tiny OpenGL drawing
that is hardly usable without doubling the DPI. The retina system
on OSX aims to alleviate this problem by introducing a general 2x
pixel size.

No equivalent feature exists on other platforms so far. However,
to emulate the effect this patch introduces a "virtual" pixel size
factor for OpenGL drawing.

Note that the user currently has to enable this manually by selecting
the "Virtual Pixel Mode" in the user preferences (defaults to native).
All windows of a Blender instance share the same virtual pixel size as well.
It may be possible to handle this on a per-window basis and automate
the selection somewhat (if enabled by the user), so working with
multiple screens becomes more convenient, but technical limitations
make this a bit difficult (on X11 with nvidia drivers the actual screen size
is not reported correctly).

Reviewers: ton, campbellbarton

Differential Revision: https://developer.blender.org/D669
2014-09-30 18:29:32 +02:00
cbe68f70a8 Cleanup: spelling 2014-09-29 15:51:47 +10:00
3a40aed3d5 Cleanup: use float versions of functions when in/output are floats 2014-09-24 14:55:02 +10:00
98a78963be Fix crashes with timers.
Incorrectly accessing the menu pointer, set it to NULL before doing the
tests.

We don't restore the menu pointer because it is invalid by the time the operator ends.
2014-09-18 16:02:40 +02:00
1e948b251d Fix T41818: Missing refresh on Undo for nodes (mask example)
Added a special notifier now NC_WM|ND_UNDO in order to deal with such cases
and now compositor/image will refresh when undo happens.

There are much more ways to fail compo to update the resul, like undoing
while it's not visible and so, but as mont29 said -- let's at least fix
obvious crap in the workflow.
2014-09-16 14:44:47 +06:00
432d274990 Cleanup & typo in assignment 2014-09-14 17:27:31 +10:00
fdb12ff564 Fix T41811: unreachable code in wm_keymap.c
There was also an issue with passing sl->spacetype here, for some reason...
2014-09-13 15:49:53 +02:00
1b94b3d49c WM: Add utility wmOrtho2_*** funcs
Currently there are inconsistencies with pixel alignment.
but this commit has no functional changes.

- wmOrtho2_region_ui for UI/Text.
- wmOrtho2_region_pixelspace for 2D drawing.
- wmOrtho2_pixelspace - when the region isn't used.
2014-09-10 13:37:53 +10:00
3fec3f0bce Fix T41737 using append from menu will result in error message
message in terminal was: RNA_boolean_get: WM_OT_append.relative_path not found.
Added check for existence of the relative path property which was removed from append
since it is not needed and used.
2014-09-07 16:05:44 +02:00
a7f87cfc0d Cleanup: de-duplicate link/append props 2014-09-05 10:16:11 +10:00
61914883ff Separate operators for Link and Append.
Since the choice to link or append has been removed in the file browser operator panel,
there was no way to tell whether as a user you were linking or appending.
To fix this the proposed patch separates the operators.

Reviewers: campbellbarton, carter2422, venomgfx

Subscribers: fsiddi

Maniphest Tasks: T41593

Differential Revision: https://developer.blender.org/D770
2014-09-04 19:35:18 +02:00
0c1ff4b75b Hacky fixes can apply to more then one compiler.
TODO: really get rid of any and all bare #include <windows.h> in
the codebase in favour of central BLI_winstuff.h.
2014-09-02 13:42:00 +02:00
daa17ef402 Hacky fix for cleanup rBc23733d290c095ab77310b55c75293465891d5b8 2014-09-02 12:22:55 +02:00
1979ae3a42 Events: Fix ISKEYBOARD macro seeing INPUTCHANGE, WINDEACTIVATE and TIMER events
as keyboard ones!!!

Note: better solution would be to move those 'internal' events to the 0x5xxx area,
but need to talk with the team to be sure this won't break something first.
2014-09-01 17:18:30 +02:00
c23733d290 Cleanup: Event defines -> enums.
Also made all event type values as hexadecimal (mixing decimal, hexa and char values
is a nice way to make mistakes)!
2014-09-01 17:08:33 +02:00
21a7433faa Fix T41473: Cycles volume rendering is too dark
The issue was caused by the changed defaults from the Cycles side.
Because of those properties being saved as an IDProp and not being
saved to the file, every change to the defaults would ruin someone's
day updating the values.

Added a bpy.app.handler.version_update which is run after the regular
do_versions() are done and could be sued by the scripts to apply
versioning code on their settings.

Reviewers: campbellbarton

Reviewed By: campbellbarton

Differential Revision: https://developer.blender.org/D761
2014-08-28 18:59:24 +06:00
fa6080bf33 Support better precision mode for angle properties in radial operator
(holding down shift key) by using the new dial functionality.
2014-08-27 17:47:37 +02:00
47ad1a9720 Comments 2014-08-26 15:21:12 +10:00
f5538fe2a6 Replace strstr with STRPREFIX
No need to search the whole string.
2014-08-20 08:38:40 +10:00
28c6982b37 Fix T41477: Some UI op buttons have no more option to edit shortcuts.
`WM_keymap_guess_opname()` was missing a bunch of op 'types'/familly. Now all are there,
either trying to find a matching keymap, or explicitely listed in a comment as skipped for now.

Note matching might not be perfect in all case, but we can easily tweak that later if needed.
2014-08-19 14:50:59 +02:00
71ce415f4a Fix T41462: "Reload from trusted" button not prompting for confirmation.
Made 'revert_mainfile' op also handle the 'use scripts' option, and use it
for this feature (since it has a nice simple invoke confirmation popup).
2014-08-18 14:13:55 +02:00
513b8ddf06 Fix T41421
Don't store selection properties, if those are set in the keymap we can
end uo locking one state forever.
2014-08-15 17:32:05 +02:00
f7dcec1f69 Fix part of T41297.
Add precision mode to radial operator by keeping the shift key pressed.
Precision mode works by checking difference between absolute window
coordinates and the point where shift was pressed and adding those to
the distance between that point and the radial center. This allows
bigger negative/positive range than using a strict radial scheme.
2014-08-14 11:40:10 +02:00
f8a39dad63 Minor cleanup 2014-08-11 11:55:16 +02:00
028fd29eeb Pie Menus C code backend.
This commit merges the code in the pie-menu branch.

As per decisions taken the last few days, there are no pie menus
included and there will be an official add-on including overrides of
some keys with pie menus. However, people will now be able to use the
new code in python.

Full Documentation is in http://wiki.blender.org/index.php/Dev:Ref/

Thanks:
Campbell Barton, Dalai Felinto and Ton Roosendaal for the code review
and design comments

Jonathan Williamson, Pawel Lyczkowski, Pablo Vazquez among others for
suggestions during the development.

Special Thanks to Sean Olson, for his support, suggestions, testing and
merciless bugging so that I would finish the pie menu code. Without him
we wouldn't be here. Also to the rest of the developers of the original
python add-on, Patrick Moore and Dan Eicher and finally to Matt Ebb, who
did the research and first implementation and whose code I used to get
started.
2014-08-11 11:02:26 +02:00
f82dda557c Experimental gooseberry request:
Expose radial control properties. That way, the operator can be tweaked
in the input preferences to tweak other properties as well.
2014-08-07 12:29:50 +02:00
f88593df69 Fix for mixup in startup.blend data init when userprefs.blend was missing
Rename UI_init_userdef_factory to BLO_update_defaults_userpref_blend
This closely matches BLO_update_defaults_startup_blend so makes sense for them to be together.
2014-07-23 20:23:05 +10:00
5215ab0acf Code cleanup, unneeded variable, always true when used, not used when
set
2014-07-22 11:57:03 +02:00
f745564e4e GSOC 2013 paint
Yep, at last it's here!

There are a few minor issues remaining but development can go on in
master after discussion at blender institute.

For full list of features see:

http://wiki.blender.org/index.php/Dev:Ref/Release_Notes/2.72/Painting

Thanks to Sergey and Campbell for the extensive review and to the
countless artists that have given their input and reported issues during
development.
2014-07-21 12:02:05 +02:00
13a8f650df Cleanup 2014-07-21 10:53:07 +10:00
00b29156e0 Defines: replace ELEM3-16 with ELEM(...), that can take varargs 2014-07-20 01:33:40 +10:00
48eececdba Follow up to previous commit.
* Expose is_tablet property to events to determine if event contains
tablet data.
* Expose tablet tilt for events as a 2D vector in python
2014-07-14 17:49:00 +03:00
45f0bd6eb1 Feature request:
Expose pressure from event system to python. This will return the tablet
pressure, if a tablet is present, or 1.0 if not.
2014-07-14 17:06:53 +03:00
d419e2e90c WM: add WM_operator_properties_create_ptr
Call operator types directly and avoid a lookup when their known.
2014-07-11 15:07:55 +10:00
414c70435d T39690: Modifications to Blender's 'temp dir' system.
Current temporary data of Blender suffers one major issue - default 'temp' dir on Windows is never
automatically cleaned up, and can end being quite big when used by Blender, especially when we have
to store per-process data (using getpid() in file names).

To address this, this patch:
* Divides tempdir paths in two, one for 'base' temp dir (the same as previous unique tempdir path),
  the other is a mkdtemp-generated sub-dir, specific to each Blender instance.
* Only uses base tempdir when we need some shallow persistance accross Blender sessions - and we always
  reuse the same filename (quit.blend...) or generate small file (crash reports...).
* Uses temp sub-dir for heavy files like pointcache or renderEXRs (Save Buffer option).
* Erases temp sub-dir on quit or crash.

To get this working it also adds a working 'recursive delete' to BLI_delete() under Windows.

Note that, as in current code, the 'recover render result' hack-feature that was possible
with SaveBuffer option is still removed. A real renderresult cache feature will be added
soon, though.

Reviewers: campbellbarton, brecht, sergey

Reviewed By: campbellbarton, sergey

CC: sergey

Differential Revision: https://developer.blender.org/D531
2014-06-23 13:42:54 +02:00
d1b45f7f7c Fix release notes link in splash.
Auto-generate this link from Blender version, as done for e.g.py API link.

This commit should be backported to 2.71 branch.
2014-06-20 10:21:39 +02:00
b16bf6c3d4 Resolve memory leask with reports on initialization 2014-06-18 15:49:40 +10:00
2886f75f46 Fix T40639: operators ignore win.cursor_warp() 2014-06-17 14:11:15 +10:00
716430ab64 Code cleanup: comments 2014-06-15 12:15:53 +10:00
ea2043eb3a UI: Add support for popups to refresh their layput (D578)
This is needed for popups to chance state once activated,
currently it makes use of operators `check` callback, after values are modified,
as the file selector does already.
2014-06-15 01:42:31 +10:00