Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2018-02-06Outliner: Add object(s) to new collectionDalai Felinto
Suggested by Pablo Vazquez (venomgfx). The idea here is that it should be easy to work in the outliner by picking a bunch of objects and adding them to a new collection. Where is the new collection? In the same level as the "outliner active" object. Note, since the outliner has no pure concept of an active object, I'm using the highlight tag for this. Hopefully it works fine. It should work in "Collections", "View Layer", and "Groups". Only when collections are not filtered out.
2018-02-06Rename OUTLINER_OT_collection_object_remove > _object_remove_from_collectionDalai Felinto
Better make it clear it is different than OUTLINER_OT_collection_objects_remove.
2018-02-06Outliner: Operator to delete outliner selected elements from collectionDalai Felinto
Suggested by Pablo Vazquez (venomgfx).
2018-02-06Object Mode: pass eval_ctx in outliner functionsCampbell Barton
2018-02-02Collections: Operator to duplicate a collectionDalai Felinto
When duplicating a layer collection directly linked to the view layer we copy the collection and link it. For all the not directly linked layer collectionns, we try to sync the layer collection flags, overrides, ... Also we make sure the new collection is right after the original collection. We also expose this in RNA, via collection.duplicate().
2018-02-02Collections: Operator to select collection objectsDalai Felinto
This is only supported by layer collections (the ones accessible in the outliner when you see "View Layer").
2018-01-26Outliner: Tooltips for reorder operatorsDalai Felinto
I really would prefer if we were to use the dropbox API for this. That said, we now have some tooltips that work. I'm using the new draw callback draw API for outliner tooltips. Reviewers: mont29 Subscribers: venomgfx, mano-wii, Severin Differential Revision: https://developer.blender.org/D3020
2018-01-26Outliner: Implement Add (Ctrl) when moving objects inside collectionDalai Felinto
Note there is no "text" explaining to users what is going on. I will address this shortly in an upcoming commit.
2018-01-22Collections/Layer cleanup: Remove placeholder for de/select objectsDalai Felinto
No need for placeholders bloating the source code. They can come back once we decide to implement them.
2018-01-22Collections/Layer cleanup: Remove TODO_LAYER_OVERRIDE from most placesDalai Felinto
This was originally a good idea. However we will need to pay special attention to this when doing the dynamic overrides anyways. The placeholders won't be enough to spare us that job. That said I left the ones on layer.c because we are actually calling these BKE_override_*_add() functions from doversion, yet they don't do anything.
2018-01-19Outliner Filtering System + CleanupDalai Felinto
User notes: The outliner so far was a great system to handle the object oriented workflow we had in Blender prior to 2.8. However with the introduction of collections the bloated ammount of data we were exposed at a given time was eventually getting on the way of fully utilizing the outliner to manage collections and their objects. We hope that with this filtering system the user can put together the outliner with whichever options he or she seem fit for a given task. Features: * Collection filter: In case users are only focused on objects. * Object filter: Allow users to focus on collections only. * (Object) content filter: Modifiers, mesh, contrainst, materials, ... * (Object) children filter: Hide object children [1]. * Object State (visible, active, selected). * Compact header: hide search options under a search toggle. * Preserve scrolling position before/after filtering [2]. [1] - Note we still need to be able to tell if a children of an object is in a collection, or if the parent object is the only one in the collection. This in fact was one of the first motivations for this patch. But it is to be addressed separately now that we can at least hide children away. [2] - We look at the top-most collection in the outliner, and try to find it again after the filtering and make sure it is in the same position as before. This works nice now. But to work REALLY, REALLY nice we need to also store the previous filter options to be sure the element we try to keep on top was valid for both old and new filters. I would rather do this later though since this smell a lot like feature creeping ;) Remove no longer needed display options: * Current Scene (replaced by View Layer/Collections) * Visible (replaced by filter) * Selected (same) * Active (same) * Same Type (same-ish) How about All Scenes? I have a patch that will come next to replace the current behaviour and focus only on compositing. So basically stop showing the objects and show only view layers, their passes and collections, besides freestyle. Also, while at this I'm also reorganizing the menu to keep View Layer and Collections on top. Developer notes: * Unlike the per-object filtering, for collections we need to filter at tree creation time, to prevent duplication of objects in the outliner. Acknowledgements: Thanks Pablo Vazquez for helping testing, thinking some design questions together and pushing this to its final polished state as you see here. Thanks Sergey Sharybin and Julian Eisel for code review. Julian couldn't do a final review pass after I addressed his concerns. So blame is on me for any issue I may be introducing here. Sergey was the author of the "preserve scrolling position" idea. I'm happy with how it is working, thank you. Reviewers: sergey, Severin, venomgfx Subscribers: lichtwerk, duarteframos Differential Revision: https://developer.blender.org/D2992
2018-01-11Fix crash when deleting collectionsJulian Eisel
With factory settings, steps to reproduce were: * Select "Collection 1" (in "RenderLayer") * Delete It might crash at this point, although maybe this crash is ASAN only. However, this was also doing some weird things that I've corrected now. It called outliner_build_tree in an operator callback. This should only be called in the main redraw function or so, not in regular handlers. Instead, we manually cleanup the tree to keep it valid.
2018-01-05Outliner: Support multiple-objects drag'n'drop into collectionsDalai Felinto
We now can drag multiple objects at once in the outliner. You we restricted to working within a single outliner. Be sure to drag from the objects name, not from its icon (otherwise it will try to parent it). We don't use the same drag'n'drop system as IDs here. Which although I dislike allowed for this solution to be local, and not dependent on the entire drag'n'drop system of Blender. This is a feature Andy Goralczyk has requested a long time ago. Kudos for him for his request.
2018-01-05Outliner: Fix for restriction columnsDalai Felinto
This is a partial revert of 1f5106de610b115b87. First and firemost, for groups I was checking the wrong flag (soops->flag & SO_GROUPS) instead of (soops->outlinevis == SO_GROUPS). Second, the columns were entirely broken for things like Orphan Data. Third, I tried to have different columns for different `outlinevis`, but we have bones with only visible and select, modifiers with visible and render, render passes with enable and another value ... I would rather stay away from this mess at the moment, and stick to the more obvious bug fix. Finally, there is a bug (not addressed here) where the whole line is selected, regardless of the restriction column area. It should be fixed separately.
2018-01-03Outliner/Collections: Add selected objects operatorDalai Felinto
This is part of T53495.
2017-12-29Outliner/Collection: Operator to delete selected collectionsDalai Felinto
This is part of T53495. This operator is actually using existing code. The only new thing about it is that it has a shortcut. It will be exposed in the UI soon together with the nested collection operator.
2017-12-29Outliner/Collection: Operator to create (nested) collectionsDalai Felinto
This is part of T53495. This operator is intended for the outliner when viewing Collections (at the moment, Master Collection Tree). It has a shortcut "C", and will be added to a menu shortly.
2017-12-15Group collection viewport/render options and remove collection visibilityDalai Felinto
Users can change the group collection visibility in the outliner when looking at groups. Regular collections on the other hand don't have any special visibility control, if you need a collection to be invisible during render, either don't link it into the view layer used for F12, or disable it. This includes: * Updated unittests - update your lib/tests/layers folder. * Subversion bump - branches be aware of that. Note: Although we are using eval_ctx to determine the visibility of a group collection when rendering, the depsgraph is still using the same depsgraph for the viewport and the render engine, so at the moment the render visibility is ignored. Following next is a workaround for this separately to tag the groups before and after rendering to tackle that.
2017-12-13Fix T51461: Outliner: Problems removing multiple collections in sequenceDanrae Pray
We now select the LayerCollection at index 0 for the active ViewLayer after a collection deletion operation. Added some functions to query outliner tree data & get LayerCollection by index using a similar approach as we do for SceneCollection indexing. With warning and style cleanups by Dalai Felinto. Reviewers: dfelinto Tags: #bf_blender_2.8 Differential Revision: https://developer.blender.org/D2942
2017-12-01Groups and collection: initial integrationDalai Felinto
Since we are ditching layers from Blender (2.8) we need a replacement to control groups visibility. This commit introduces collections as the building blocks for groups, allowing users to control visibility as well as overrides for groups. Features ======== * Groups now have collections This way you can change the visibility of a collection inside a group, and add overrides which are part of the group and are prioritized over other overrides. * Outliner Groups can inspect their collections, change visibility, and add/remove members. To change an override of a group collection, you need to select an instance of the group, and then you can choose "group" in the collection properties editor to edit this group active collection instead of the view layer one. * Dupli groups overrides We can now have multiple instances of the same group with an original "override" and different overrides depending on the collection the instanced object is part of. Technical ========= * Layers We use the same api for groups and scene as much as possible. Reviewers: sergey (depsgraph), mont29 (read/write and user count) Differential Revision: https://developer.blender.org/D2892
2017-11-23Cleanup: Rename ViewLayer *sl > ViewLayer *view_layerDalai Felinto
2017-11-23Rename any instance of scene layer or render layer in code with view layerDalai Felinto
The RenderResult struct still has a listbase of RenderLayer, but that's ok since this is strictly for rendering. * Subversion bump (to 2.80.2) * DNA low level doversion (renames) - only for .blend created since 2.80 started Note: We can't use DNA_struct_elem_find or get file version in init_structDNA, so we are manually iterating over the array of the SDNA elements instead. Note 2: This doversion change with renames can be reverted in a few months. But so far it's required for 2.8 files created between October 2016 and now. Reviewers: campbellbarton, sergey Differential Revision: https://developer.blender.org/D2927
2017-11-20Merge branch 'master' into blender2.8Campbell Barton
2017-11-20Fix T53342: Outliner 'select hierarchy' brokenCampbell Barton
Was using cursor position from within menu, clicking on the same position for every selected item (toggling). Now operate on each selected outliner element, without toggling.
2017-09-20Layer collection enable flagDalai Felinto
Right now this is exposed in the outliner, though all this (visible/selectable/enable) should be moved to a new panel soon. This removes objects from the depsgraph when the collection is disabled. It allows you to "hide" lamps but still having them lighting the scene. Same for light probes and other support objects. Pending tasks: * Have depsgraph to include invisible objects in the DEG_OBJECTS_ITER, and then have Eevee and other engines to make a distinction between an invisible and a visible object. (for example, we probably want invisible objects to not show in the viewport, but cast shadows and show up in light probes). * Change how we evaluate collection settings so that an invisible collection can force an object to be invisible. Reviewers: campbellbarton Subscribers: sergey Differential Revision: https://developer.blender.org/D2848
2017-06-12Rename probe to light-probeCampbell Barton
Probe is a real general term, the new name is used often in docs online.
2017-06-09Probe: Add new object datablockClément Foucault
We went for a new datablock because blending probe functionality with empties was going to be messy.
2017-06-01Main Workspace IntegrationJulian Eisel
This commit does the main integration of workspaces, which is a design we agreed on during the 2.8 UI workshop (see https://wiki.blender.org/index.php/Dev:2.8/UI/Workshop_Writeup) Workspaces should generally be stable, I'm not aware of any remaining bugs (or I've forgotten them :) ). If you find any, let me know! (Exception: mode switching button might get out of sync with actual mode in some cases, would consider that a limitation/ToDo. Needs to be resolved at some point.) == Main Changes/Features * Introduces the new Workspaces as data-blocks. * Allow storing a number of custom workspaces as part of the user configuration. Needs further work to allow adding and deleting individual workspaces. * Bundle a default workspace configuration with Blender (current screen-layouts converted to workspaces). * Pressing button to add a workspace spawns a menu to select between "Duplicate Current" and the workspaces from the user configuration. If no workspaces are stored in the user configuration, the default workspaces are listed instead. * Store screen-layouts (`bScreen`) per workspace. * Store an active screen-layout per workspace. Changing the workspace will enable this layout. * Store active mode in workspace. Changing the workspace will also enter the mode of the new workspace. (Note that we still store the active mode in the object, moving this completely to workspaces is a separate project.) * Store an active render layer per workspace. * Moved mode switch from 3D View header to Info Editor header. * Store active scene in window (not directly workspace related, but overlaps quite a bit). * Removed 'Use Global Scene' User Preference option. * Compatibility with old files - a new workspace is created for every screen-layout of old files. Old Blender versions should be able to read files saved with workspace support as well. * Default .blend only contains one workspace ("General"). * Support appending workspaces. Opening files without UI and commandline rendering should work fine. Note that the UI is temporary! We plan to introduce a new global topbar that contains the workspace options and tabs for switching workspaces. == Technical Notes * Workspaces are data-blocks. * Adding and removing `bScreen`s should be done through `ED_workspace_layout` API now. * A workspace can be active in multiple windows at the same time. * The mode menu (which is now in the Info Editor header) doesn't display "Grease Pencil Edit" mode anymore since its availability depends on the active editor. Will be fixed by making Grease Pencil an own object type (as planned). * The button to change the active workspace object mode may get out of sync with the mode of the active object. Will either be resolved by moving mode out of object data, or we'll disable workspace modes again (there's a `#define USE_WORKSPACE_MODE` for that). * Screen-layouts (`bScreen`) are IDs and thus stored in a main list-base. Had to add a wrapper `WorkSpaceLayout` so we can store them in a list-base within workspaces, too. On the long run we could completely replace `bScreen` by workspace structs. * `WorkSpace` types use some special compiler trickery to allow marking structs and struct members as private. BKE_workspace API should be used for accessing those. * Added scene operators `SCENE_OT_`. Was previously done through screen operators. == BPY API Changes * Removed `Screen.scene`, added `Window.scene` * Removed `UserPreferencesView.use_global_scene` * Added `Context.workspace`, `Window.workspace` and `BlendData.workspaces` * Added `bpy.types.WorkSpace` containing `screens`, `object_mode` and `render_layer` * Added Screen.layout_name for the layout name that'll be displayed in the UI (may differ from internal name) == What's left? * There are a few open design questions (T50521). We should find the needed answers and implement them. * Allow adding and removing individual workspaces from workspace configuration (needs UI design). * Get the override system ready and support overrides per workspace. * Support custom UI setups as part of workspaces (hidden panels, hidden buttons, customizable toolbars, etc). * Allow enabling add-ons per workspace. * Support custom workspace keymaps. * Remove special exception for workspaces in linking code (so they're always appended, never linked). Depends on a few things, so best to solve later. * Get the topbar done. * Workspaces need a proper icon, current one is just a placeholder :) Reviewed By: campbellbarton, mont29 Tags: #user_interface, #bf_blender_2.8 Maniphest Tasks: T50521 Differential Revision: https://developer.blender.org/D2451
2017-04-25Outliner: Re-build depsgraph when reordering collectionsDalai Felinto
Otherwise if we create a new collection, and drag a collection into it we either get a crash, or at the very least we dont get the visibility flags correct.
2017-03-10Improve outliner drag&drop feedback by using drop poll callbacksJulian Eisel
This way we can ensure the overlay to indicate where the item would be placed if it was dropped now is always at the correct place and doesn't mislead the user.
2017-03-10Support drag & drop of collections across multiple hierarchy levelsJulian Eisel
Two issues are remaining, they'll be fixed separately: * Graphical feedback when dragging within the master collection is wrong * There's some bug where collections swap places instead, Dalai will investigate
2017-03-02Get UI ready for using drag & drop to nest a collection into another oneJulian Eisel
Nothing happen yet when it's supposed to insert the collection into another one, that part will be handled by @dfelinto. See gif for demo of how it works UI wise: {F500337} Also fixed off-by-one error in utility function.
2017-03-01Outliner: Support dragging object into collectionJulian Eisel
Doing this will add the object to the collection.
2017-03-01Cleanup: Rename outliner enumJulian Eisel
2017-02-28Cleanup: Add outliner_utils.c, move functions into itJulian Eisel
2017-02-28Outliner: Delete all selected collections, not just active oneJulian Eisel
There were some issues with how we store outliner tree elements: Apparently the only removable elements have been data-blocks so far. When recreating the TreeElements, their TreeStoreElem instances were mainly identified by their ID pointer. However non-data-blocks mostly depend on an index. For collections, such an index isn't a reliable measure though if we want to allow removing items. Depending on it for identifying the TreeStoreElem instance would cause some quite noticeable glitches (wrong highlights, two elements sharing highlight, etc). For now I've solved that by actually removing the TreeStoreElem that represents the removed element. A little limitation of this is that after undoing the removal, some information might get lost, like flags to store selection, or opened/closed state. A better solution that would also fix this issue would be having a real unique identifier for each non-data-block element, like an idname or even its data-pointer. Not sure if we can get those to work reliable with file read/write though, would have to investigate... Also added a general Outliner tree traversal utility.
2017-02-22UI: Support drag & drop reordering of collectionsJulian Eisel
This adds initial support for reordering collections from the Outliner using drag & drop. Although drag & drop support is limited to collections for now, this lays most foundations for general drag & drop reordering support in the Outliner. There are some design questions to be answered though: * Would reordering of other data types (like objects) be a purely visual change or would it affect the order in which they are stored? (Would that make a difference for the user?) * Should/can we allow mixing of different data types? (e.g. mixing render layers with objects) * How could we realize this technically? Notes: * "Sort Alphabetically" has to be disabled to use this ("View" menu). * Reordering only works with collections on the same hierarchy level. * Added some visual feedback that should work quite well, it's by far not a final design though: {F493806} * Modified collection orders are stored in .blends. * Reordering can be undone. * Did minor cleanups here and there.
2017-02-17Layer/Outliner: add a few operators that I need for the video demoDalai Felinto
2017-02-16Outliner collection operators, all but collection linkDalai Felinto
Note: It may be missing a notifier to prevent Outliner from crashing when deleting collections.
2017-02-15Revert "Collection Editor based on patch by Julian Eisel"Dalai Felinto
This reverts commit 3da834e83ce9d7056c033148dab04885a6d3b1b7. We will use the outliner for this now. I'm also moving the collections_ops.c to outliner_collections.c
2017-02-09Main fix for outliner, but still need changesDalai Felinto
Fix outliner related crashes. Basically in some functions bContext was not passed around, so CTX_data_scene_layer(C) was crashing. Right now we still rely on ob->flag SELECT in some places. In order to use the base flag we will need to bring back the Bases to the outliner.
2017-02-07Render Layers and Collections (merge from render-layers)Dalai Felinto
Design Documents ---------------- * https://wiki.blender.org/index.php/Dev:2.8/Source/Layers * https://wiki.blender.org/index.php/Dev:2.8/Source/DataDesignRevised User Commit Log --------------- * New Layer and Collection system to replace render layers and viewport layers. * A layer is a set of collections of objects (and their drawing options) required for specific tasks. * A collection is a set of objects, equivalent of the old layers in Blender. A collection can be shared across multiple layers. * All Scenes have a master collection that all other collections are children of. * New collection "context" tab (in Properties Editor) * New temporary viewport "collections" panel to control per-collection visibility Missing User Features --------------------- * Collection "Filter" Option to add objects based on their names * Collection Manager operators The existing buttons are placeholders * Collection Manager drawing The editor main region is empty * Collection Override * Per-Collection engine settings This will come as a separate commit, as part of the clay-engine branch Dev Commit Log -------------- * New DNA file (DNA_layer_types.h) with the new structs We are replacing Base by a new extended Base while keeping it backward compatible with some legacy settings (i.e., lay, flag_legacy). Renamed all Base to BaseLegacy to make it clear the areas of code that still need to be converted Note: manual changes were required on - deg_builder_nodes.h, rna_object.c, KX_Light.cpp * Unittesting for main syncronization requirements - read, write, add/copy/remove objects, copy scene, collection link/unlinking, context) * New Editor: Collection Manager Based on patch by Julian Eisel This is extracted from the layer-manager branch. With the following changes: - Renamed references of layer manager to collections manager - I doesn't include the editors/space_collections/ draw and util files - The drawing code itself will be implemented separately by Julian * Base / Object: A little note about them. Original Blender code would try to keep them in sync through the code, juggling flags back and forth. This will now be handled by Depsgraph, keeping Object and Bases more separated throughout the non-rendering code. Scene.base is being cleared in doversion, and the old viewport drawing code was poorly converted to use the new bases while the new viewport code doesn't get merged and replace the old one. Python API Changes ------------------ ``` - scene.layers + # no longer exists - scene.objects + scene.scene_layers.active.objects - scene.objects.active + scene.render_layers.active.objects.active - bpy.context.scene.objects.link() + bpy.context.scene_collection.objects.link() - bpy_extras.object_utils.object_data_add(context, obdata, operator=None, use_active_layer=True, name=None) + bpy_extras.object_utils.object_data_add(context, obdata, operator=None, name=None) - bpy.context.object.select + bpy.context.object.select = True + bpy.context.object.select = False + bpy.context.object.select_get() + bpy.context.object.select_set(action='SELECT') + bpy.context.object.select_set(action='DESELECT') -AddObjectHelper.layers + # no longer exists ```
2016-12-28Revert particle system and point cache removal in blender2.8 branch.Lukas Tönne
This reverts commit 5aa19be91263a249ffae75573e3b32f24269d890 and b4a721af694817fa921b119df83d33ede7d7fed0. Due to postponement of particle system rewrite it was decided to put particle code back into the 2.8 branch for the time being.
2016-10-16Merge branch 'master' into blender2.8Julian Eisel
Conflicts: source/blender/editors/space_outliner/outliner_draw.c source/blender/editors/space_outliner/outliner_edit.c source/blender/editors/space_outliner/outliner_intern.h source/blender/editors/space_outliner/outliner_select.c
2016-10-16Cleanup: Unused parameters in OutlinerJulian Eisel
These were only passed to own recursion calls.
2016-10-16Outliner: Rework element selection behaviorJulian Eisel
* LMB now replaces selection instead of adding to it. Shift+LMB adds to selection (or removes if already selected). This is usual selection behavior Blender. * Outliner selection isn't completely separate from object/sequencer-strip/render-layer/... selection anymore, when selecting an outliner item we now always try to select (and activate) the object it belongs to. Previously you had to click the name or icon of an item to select the object (or whatever) and on empty space within the row to set outliner selection. * Collapsed items may show click-able icons for their children (nothing new). Clicking on such an icon will also select the hidden item it represents now, you'll notice after opening the parent. This valid from a technical POV, I'm not sure if this is wanted from user POV though. Changing would be easy, feedback welcome! * Code cleanup. Part of T37430.
2016-10-15Outliner: Element mouse hover feedbackJulian Eisel
Some little UI polish to get familiar with outliner code (but also because it's a useful feature). Committing to blender2.8 branch but can also port to master (2.7) if wanted. This basically causes the mouse hovered element to be highlighted. Contrast of the highlight should be fine, even with a non-default theme. Also did some minor cleanup.
2016-09-26Merge branch 'master' into blender2.8Bastien Montagne
WARNING! Full build is broken, alembic has not been merged in correctly and has some references to particle stuff. Don't have time to tackle this now (and probably would be better if someone knowing what he's doing does it anyway). Conflicts: release/scripts/startup/bl_ui/properties_particle.py source/blender/blenkernel/intern/library_remap.c source/blender/blenkernel/intern/smoke.c source/blender/editors/physics/particle_object.c source/blender/editors/physics/physics_intern.h source/blender/editors/physics/physics_ops.c source/blender/editors/space_outliner/outliner_intern.h source/blender/editors/space_view3d/drawvolume.c source/blender/makesrna/intern/rna_smoke.c
2016-09-23Outliner: Fix assert failure with palette IDSergey Sharybin
2016-08-06Merge branch 'master' into blender2.8Bastien Montagne
Conflicts: release/scripts/startup/bl_ui/properties_particle.py release/scripts/startup/bl_ui/properties_physics_cloth.py release/scripts/startup/bl_ui/properties_physics_dynamicpaint.py release/scripts/startup/bl_ui/properties_physics_softbody.py source/blender/blenkernel/BKE_library.h source/blender/blenkernel/BKE_particle.h source/blender/blenkernel/intern/cloth.c source/blender/blenkernel/intern/library.c source/blender/blenkernel/intern/library_query.c source/blender/blenkernel/intern/particle_system.c source/blender/blenkernel/intern/scene.c source/blender/blenkernel/intern/softbody.c source/blender/blenloader/intern/readfile.c source/blender/blenloader/intern/versioning_270.c source/blender/editors/space_file/filesel.c source/blender/editors/space_outliner/outliner_intern.h source/blender/makesdna/DNA_ID.h source/blender/makesdna/DNA_object_force.h source/blender/makesdna/DNA_particle_types.h source/blender/makesrna/intern/rna_particle.c source/blender/makesrna/intern/rna_sculpt_paint.c source/blender/makesrna/intern/rna_smoke.c source/blender/makesrna/intern/rna_space.c