Commit Graph

3199 Commits

Author SHA1 Message Date
704b336899 Make scene statistics to respect locked interface
Interface is being locked when some destructive operations
are called from non-main thread.

This was causing crash with particles in T60065.
2019-01-28 12:49:45 +01:00
c0f88ed8a8 Cleanup: sort forward declarations of enum & struct
Done using:
  source/tools/utils_maintenance/c_sort_blocks.py
2019-01-28 21:17:58 +11:00
d011ae1e03 Fix T59972: UV live unwrap does not pack islands.
Packing was not being called after multi-object editing changes. Includes code
refactoring to make function parameters more clear.
2019-01-24 15:01:55 +01:00
48eed058b1 3D View: draw clipping region
Only for workbench solid/wire modes.
2019-01-23 23:37:25 +11:00
6555e177e9 3D View: add back clipping draw code (disabled)
Disabled for now because of draw-order issues.

Also move clipping test out of view3d_draw_legacy.c
2019-01-23 20:50:43 +11:00
547cb5e264 Fix/workaround: Undo erase all dyntopo changes
Memfile undo isn't compatible with sculpt or edit-mode.

This didn't work in 2.7x, so best disable memfile undo for now in
situations where it's going to loose data or crash.
2019-01-19 00:53:39 +11:00
1a3abc7f79 Preferences: fit a little better when opened in place of properties editor. 2019-01-17 15:04:38 +01:00
45042f6a03 Fix uninitialized cursor w/ setting object origin 2019-01-16 19:57:58 +11:00
88a80fcec8 Cleanup: commas at the end of enums
Without this clang-format may wrap them onto a single line.
2019-01-16 00:03:03 +11:00
b8e8c0e325 Cleanup: comment line length (editors)
Prevents clang-format wrapping text before comments.
2019-01-15 23:30:31 +11:00
0b9a65151d Fix T60410: Crash adjusting torus w/ enter edit-mode preference 2019-01-15 21:36:50 +11:00
e375685e06 Cleanup: pass main instead of context w/ ED_editors_exit/flush_edits
Useful for calling from lower level code.
2019-01-15 21:36:50 +11:00
63ee378fa9 Cleanup: move comments above definitions, use enum
For clang-format not to wrap definitions.
2019-01-14 15:58:40 +11:00
00d2237d2a Fix T57371: Generative modifiers in editmode display vertex group weights
In a better way...

6dbfd7f6d6 would make the final vertex weights always calculated in
edit mode. Now it's only if the option is enabled.
2019-01-11 20:09:42 +01:00
bb9c9d0eaa GP: New Cutter, Constraints and Segment selection
This commit groups a set of new tools that were tested in grease pencil object branch before moving to master. We decide to do all the development in a separated branch because it could break master during days or weeks before the new tools were ready to deploy.

The commit includes:

- New Cutter tool to trim strokes and help cleaning up drawings.

- New set of constraints and guides to draw different types of shapes. All the credits for this development goes to Charlie Jolly (@charlie), thanks for your help!

- Segment selection mode to select strokes between intersections.

- New operator to change strokes cap mode.

- New option to display only keyframed frames. This option is very important when fill strokes with color.

- Multiple small fixes and tweaks.

Thanks to @pepeland and @mendio for their ideas, tests, reviews and support.

Note: Still pending the final icons for Cutter in Toolbar and Segment Selection in Topbar. @billreynish could help us here?
2019-01-11 19:21:56 +01:00
5f3fdee53a UVEdit: Port batches to batch request
This is in order to allow more spaces to have their batches created at the
same time and sharing the batches.

This is part of the effort fo making the drawing code more optimized. This
commit however should not introduce any difference.

This commit bypass the aspect ratio correction for angle stretch display
but this should be fixed in the next commit.
2019-01-11 16:00:23 +01:00
5c6d5cb863 Fix background color use in 3D view
TH_BACK was being used when drawing the 3D view even though
there was no way to set the color in the preferences.

The color was zero'd when moving to the new 2.8x theme.

Having both gradient and background colors was confusing,
especially having to use 'TH_HIGH_GRAD' for the 3D view, 'TH_BACK' for
other views.

Move the background color back to 'TH_BACK', 'TH_BACK_GRAD' is used
when gradients are enabled.
RNA is unchanged so presets don't need updating.
2019-01-11 12:59:19 +11:00
0f1775205e Use proper ID to create FModifier RNA pointer
Allows to do simple DEG tag, without extra checks for ID type.

Will solve possible missing updates when modifying f-curve
modifier of a shared action.
2019-01-10 16:22:53 +01:00
92a081ff83 Fix T60340: Removing f-curve modifier doesn't update animation 2019-01-10 16:05:16 +01:00
fc24d1a974 Keep track of owner of f-curve
This is a part of another which, which needs to tag owner
of f-curve for an update. But since this is too many lines
changed committing separately.

Basically, for f-curve AnimElement we are now storing ID
whih owns the f-curve.
2019-01-10 16:05:16 +01:00
5ce6b344d5 3D View: use faded color for dupli instance wire & points
Similar to 2.7x, so instanced geometry can be differentiated.
2019-01-10 18:28:53 +11:00
11f9938eed Clenaup: remove unused EM_WAITCURSOR 2019-01-10 13:02:07 +11:00
5681631109 Cleanup: ensure header guards come first
Causes clang-format not to detect header guards,
indenting all preprocessor lines in the header.
2019-01-10 08:46:38 +11:00
90e354fd7a Revert/Redo ugly rBd12b3767f81d commit (i.e. add locked sorting option to UIList).
Too many things done wrong in original rBd12b3767f81d to list them all
here, hopefully nothing bad sneaked in again this time :|

Also cleaned up a little the 'sort by name', even though (since we only
have two options by default, sort by index and by name) we can abuse it
as a binary option for now, this is not a bitflag...
2019-01-09 15:51:46 +01:00
Severin
a77b63c569 UI: Preferences Redesign Part 2
(Part 1 was 00963afc14978b)

Does the following changes visible to users:
* Use panels and sub-panels for more structured & logical grouping
* Re-organized options more logically than before (see images in D4148)
* Use flow layout (single column by default).
* New layout uses horizontal margin if there's enough space.
* Change size of Preferences window to suit new layout.
* Move keymap related options from "Input" into own section.
* Own, left-bottom aligned region for Save Preferences button.
* Adjustments of names, tooltips & icons.
* Move buttons from header into the main region (except editor switch).
* Hide Preferences header when opened in temporary window.
* Use full area width for header.
* Don't use slider but regular number widget for UI scale.
* Gray out animation player path option if player isn't "Custom"

Internal changes:
* Rearrange RNA properties to match changed UI structure.
* Introduces new "EXECUTE" region type, see reasoning in D3982.
* Changes to panel layout and AZone code for dynamic panel region.
* Bumps subversion and does versioning for new regions.

RNA changes are documented in the release notes:
https://wiki.blender.org/wiki/Reference/Release_Notes/2.80/Python_API/Preferences_API

Design & implementation mostly done by @billreynish and myself.
I recommend checking out the screenshots posted by William:
https://developer.blender.org/D4148#93787

Reviewed By: brecht

Maniphest Tasks: T54115

Differential Revision: https://developer.blender.org/D4148
2019-01-04 22:18:23 +01:00
Sebastian Parborg
e571f0255f Fix T59946: multiple quit dialogs possible.
Differential Revision: https://developer.blender.org/D4147
2019-01-04 14:45:16 +01:00
2c21e3e35f Fix T60132: Convert hair particles to mesh
Needed to port operator to use evaluated particle system.

But also changed interface to always show Convert button when
draw type is set to Path (Hair particle system is forced to
be draws as path). This avoid rather expensive lookup on every
redraw, but will show Convert button for un-baked particle
emitter.

Probably, an acceptable compromise.
2019-01-04 14:30:34 +01:00
54a4c1cf35 UI: refactor layout vars out of uiFontStyle
Word wrap and alignment layout args only used by UI_fontstyle_draw
were vars in uiFontStyle.
These were written to before drawing, so better pass as an argument.

Pass uiFontStyle & uiWidgetColors as const args.
2019-01-04 11:00:48 +11:00
a30bdcc142 Fix T60022: Crash when adding grease pencil object to a collection disabled in viewport.
See D4163

Thanks to Habib Gahbiche (@zazizizou) for the fix.
2019-01-03 18:12:25 +01:00
a76b045326 UI: add scale option for template_icon_view button
The existing scale option only changed the scale if icons in the popup.
2019-01-02 18:18:54 +11:00
27619d7271 UI: icon set updates by Andrzej Ambroz. 2018-12-31 13:52:45 +01:00
bcf0c71433 Cleanup: remove non-existing function declarations 2018-12-31 00:58:54 +11:00
ff0285c476 Cleanup: use unsigned char (change previous commit) 2018-12-27 12:58:48 +11:00
67dc68d104 Fix T59505: Knife tool cut preview line becomes black
The real reason for the problem is still unknown, but this solution adds less overhead than rBdafaa6f22881.
2018-12-25 14:36:50 -02:00
f1f8859ad5 Cleanup: const cast 2018-12-22 08:14:41 +11:00
c79b849097 Fix T58327: Quick Favorites "Remove from Favorites" missing for added
Modifiers

Since user menu entries from SPACE_BUTS/SPACE_TOPBAR are also shown in
other Editors (SPACE_VIEW3D), also allow these entries to be removed
from Quick Favorites from these Editors.
Match and deduplicate logic from screen_user_menu_draw() and
ui_popup_context_menu_for_button().

Reviewers: campbellbarton, brecht

Maniphest Tasks: T58327

Differential Revision: https://developer.blender.org/D4112
2018-12-21 21:06:52 +01:00
e119868caa GP: Primitive: Changes from gp branch
F-key to change stroke brush size
Fix random bias for jitter
2018-12-21 18:48:57 +00:00
e56aa4ff0c Fix T59668: UV unwrap pinning bugs.
With multi object editing it creates the charts twice, which broke some
logic in the unwrapper.
2018-12-21 16:34:08 +01:00
91240f15c5 UI: add UILayout.direction
Read only attribute, needed for introspection.
2018-12-20 11:59:31 +11:00
756be8f4d8 UI: add method to draw menu contents
This supports expanding menu contents into an existing layout.

Needed to fix T58937.
2018-12-20 11:33:08 +11:00
1fc75dbbce Fix T59595: Grease Pencil and CameraView
The perspective effect deformed the stroke. Now when you are in camera view and the lock axis is not enabled, the stroke is reprojected flat over the view to remove any deformation.

Also fixed reproject operator to use the origin set in topbar and not cursor 3D always.
2018-12-19 17:09:30 +01:00
f7dc6a63fb Gizmo: optional custom orientations for transform
This aims to resolve a conflict where some users want to keep keyboard
axis setting global, even when the orientation is set to something else.

Move/rotate/scale can optionally each have a separate orientation.

Some UI changes will be made next.
2018-12-19 20:57:51 +11:00
12d6c13899 GP: Primitive: Fix flickering when using a noise brush
Previously, the random values were generated every draw, now they are generated once.
2018-12-18 15:51:46 +00:00
d72d2d4133 DNA: clear / remove deprecated flags
- Clear deprecated flags for ID's:
  Scene, Sequence, World, Object & Mesh.
- Clear deprecated flags for Spaces: outliner, 3D view & image.
- Remove unused `Mesh.drawflag`
- Remove unused `USER_ALLWINCODECS`, `USER_MMB_PASTE`.
- Remove `V3D_SOLID_TEX` & `V3D_ZBUF_SELECT` - used in a few areas.
- Flip `Object.empty_image_visibility_flag`
  (avoids do-version on each new flag)
- Rename 'Backside' -> 'Back' in context of drawing - showing 'Back'
  makes sense.
2018-12-17 13:55:06 +11:00
de662e7cd3 NLA: insert keyframes correctly for strips with non-Replace mode.
NLA strips support using the keyframe values in a variety of ways:
adding, subtracting, multiplying, linearly mixing with the result
of strips located below in the stack. This is intended for layering
tweaks on top of a base animation.

However, when inserting keyframes into such strips, it simply inserts
the final value of the property, irrespective of these settings. This
in fact makes the feature nearly useless.

To fix this it is necessary to evaluate the NLA stack below the
edited strip and correctly compute the raw key that would produce
the intended final value, according to the mode and influence.

Differential Revision: https://developer.blender.org/D3927
2018-12-14 22:19:18 +03:00
aca13040da Cleanup: naming 2018-12-14 10:34:12 +11:00
26c8e09cff Fix T59137: Prefs moves header to bottom
Only use a new spaces header alignment when no previous header exists.
2018-12-14 09:09:41 +11:00
cef2a25518 Armature Edit Mode: improve box/lasso select
Mostly rewrite logic which now matches (de)select picking,
share between both operators.

- Support all selection operations (eSelectOp), fixes T59255.

- Add function that selects using 'BONESEL_*' flags & eSelectOp.
  This avoids lasso & box select having to handle selection flushing.

- Fix strange behavior with lasso where selecting a bone in a chain
  would only select the tip (from 2.7x).
2018-12-13 21:11:21 +11:00
0835c224ba Cleanup: de-duplicate active item center access 2018-12-13 10:41:03 +11:00
e79bb957fc User Interface: Add button color for indicating that the value differs from the interpolated one
One issue that especially newer users often run into is that they accidentally reset changes to the scene by switching frame without creating a keyframe first.

Therefore, this commit adds a new color that is used to draw properties if their current value differs from the one that would be set when switching to this frame.
This works both for existing keyframes as well as for currently interpolated frames.

Unfortunately the flags in but->flag are full, so I had to move the new flag to but->drawflag and pass that to all relevant functions.

I went with orange for the color since afaics it fits with the green and yellow that are currently used for keyframe states and since it's somewhat reddish to signify that there might be something to look out for here.

Reviewers: campbellbarton, #user_interface, brecht

Reviewed By: campbellbarton

Subscribers: brecht, predoe

Differential Revision: https://developer.blender.org/D3949
2018-12-08 18:06:23 +01:00