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-01-19Outliner: Change All Scenes to Scenes and make it focus on compositingDalai Felinto
We have different ways of explore the scene objects, namely View Layer and Collections. This change let us focus on compositing elements only such as: * View Layers ** Collections ** Render Passes * Freestyle * Grease Pencil? Not included in this commit is an option to handle filtering of collections passes, ... Not sure if we would like, though. Since they are all properly nested under a "Collections" / "Passes" parent.
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-18Outliner: Fix parenting clear pollDalai Felinto
2018-01-18Outliner: Rename "Active View Layer" > "View Layer"Dalai Felinto
The original name came from a cheap conversion of the "active layer" option to "active render layer" and then "active view layer".
2017-12-15Fix missing refresh of editors when changing workspace view-layerJulian Eisel
Needs to use new messaging system.
2017-12-04Cleanup: whitespaceCampbell Barton
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-08Farewell Scene->baseDalai Felinto
While getting rid of Scene->base we got the following fixes: * Fix "Convert To" operator * Fix "NLA allowing to selected objects that are not selectable * Fix scene.objects (readonly, no option to link/unlink) Note: Collada needs to use the context SceneLayer for adding objects however I added a placeholder, so Collada maintainers can fix this properly.
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-05-02Add scene argument for notifiersCampbell Barton
From workspaces branch
2017-03-01Fix collection renaming not checking for unique name in entire hierarchyJulian Eisel
Only checked for unique name in direct children of the master collection. Also added missing listener for outliner.
2017-03-01Outliner: Support dragging object into collectionJulian Eisel
Doing this will add the object to the collection.
2016-10-16Fix missing outliner redraw when adding VSE stripJulian Eisel
Needed for outliner "Sequence" display mode.
2016-06-22ID-Remap - Step one: core work (cleanup and rework of generic ID datablock ↵Bastien Montagne
handling). This commit changes a lot of how IDs are handled internally, especially the unlinking/freeing processes. So far, this was very fuzy, to summarize cleanly deleting or replacing a datablock was pretty much impossible, except for a few special cases. Also, unlinking was handled by each datatype, in a rather messy and prone-to-errors way (quite a few ID usages were missed or wrongly handled that way). One of the main goal of id-remap branch was to cleanup this, and fatorize ID links handling by using library_query utils to allow generic handling of those, which is now the case (now, generic ID links handling is only "knwon" from readfile.c and library_query.c). This commit also adds backends to allow live replacement and deletion of datablocks in Blender (so-called 'remapping' process, where we replace all usages of a given ID pointer by a new one, or NULL one in case of unlinking). This will allow nice new features, like ability to easily reload or relocate libraries, real immediate deletion of datablocks in blender, replacement of one datablock by another, etc. Some of those are for next commits. A word of warning: this commit is highly risky, because it affects potentially a lot in Blender core. Though it was tested rather deeply, being totally impossible to check all possible ID usage cases, it's likely there are some remaining issues and bugs in new code... Please report them! ;) Review task: D2027 (https://developer.blender.org/D2027). Reviewed by campbellbarton, thanks a bunch.
2015-11-28Cleanup: 'area' vs 'region'Julian Eisel
Apparently this is the result of some sloppiness during 2.5 project and since then it confused people who were trying to understand the area-region relation (myself included). Sorry if this causes merge conflicts for anyone, but at some point we really had to do it :/
2015-04-07Cleanup: rename treehash -> outliner_treehashCampbell Barton
This is an API specifically for the outliner, not some generic hierarchical hash structure.
2015-02-17Fix for another missing update from GPencil in OutlinerJulian Eisel
2015-02-09GPencil: Viewport visbility and editability toggles for layers in OutlinerJoshua Leung
* Viewport visibility and locking are currently exposed * Later on, visibility in renders can also be included
2015-02-06Outliner: DragDrop objects to groupsCampbell Barton
Support drag&drop objects to groups in the outliner. D989 by @lichtwerk
2015-02-06cleanup: use bool args & redundant castsCampbell Barton
2014-07-19Defines: replace ELEM3-16 with ELEM(...), that can take varargsCampbell Barton
2014-05-20Fix part of T35600: Outliner did not update when renaming armature bone names.Bastien Montagne
2014-04-30Code cleanup: remove unused includesCampbell Barton
Opted to keep includes if they are used indirectly (even if removing is possible).
2014-04-01Code cleanup: remove TRUE/FALSE & WITH_BOOL_COMPAT defineCampbell Barton
2014-02-07ListBase API: add utility api funcs for clearing and checking emptyCampbell Barton
2013-11-05Bugfix [#37304] Arrow Keys Stop Working When Mouse Over OutlinerJoshua Leung
Frame change hotkeys now work in the following places: 1) Outliner - Main region 2) Action/NLA Editors - Channels Region 3) Info View - Reports region Other places identified by the bugreport (but which I've decided to leave alone): - Text Editor (when no file open) - The way the keymaps work here means that this can't be done without affecting normal text editing - File Browser - What's the point of changing frames when you're about to open/save the file? - User Prefs - Is there any real point here either? Also, this is usually shown in a separate window.
2013-08-24Fix state losses for recursive outliner trees (e.g. datablocks editor)Sv. Lockal
In previous optimization in outliner I assumed that order in treehash was not important. But testing outliner in datablocks mode revealed a problem: when user expands multiple recursive levels and then closes any element, it always closed the top level of recursion. Now it should work fine with recursive trees. Now treehash contains groups of elements indexed by (id,nr,type). Adding an element with the same (id,nr,type) results in appending it to existing group. No duplicates are possible in treehash. This commit should also make lookups a little bit faster, because searching in small arrays by "used" is faster than searching in hashtable with duplicates by "id,nr,type,used".
2013-08-13Fix crash happening when clearing parent in outliner modes which doesn't ↵Sergey Sharybin
support this.
2013-08-12Fix [#36439] Switching windows on Win7 x64 under certain outliner conditions ↵Sv. Lockal
will cause crash
2013-08-03fix for [#36260] 2,300 Objects Makes Blender UnresponsiveSv. Lockal
- performance of outliner was low because of unoptimal data structures. - now it uses BLI_mempool instead of custom mempool and GHash to make searches for duplicates faster. - also fix undesired behaviour of BLI_mempool_as_arrayN thanks to Campbell Barton and Lukas Tönne for helping me get a better fix put together.
2013-06-25Fix unnecessary 3D viewport redraws in various cases, in particular when editingBrecht Van Lommel
node materials. Area and region listener callbacks now get the screen and area pointers passed, so they can do more fine grained checks to see if redraw is really needed, for example depending on the 3D view drawtype.
2013-05-08code cleanup: remove references to BLI_rand.hCampbell Barton
2013-04-03Cleanup outliner_dropzone codeDan Eicher
* deduplicated a bunch of code and moved it into outliner_dropzone_find() * moved all the per-dropzone checks into the poll functions * one functional change, disable drop parenting on self & self->parent The basic assumption: if poll() == true then outliner_dropzone_find() will return a valid TreeElement
2013-03-13code cleanup: use const events for modal and invoke operators.Campbell Barton
2013-03-11Fix for [#34598] Modifier-Icon in Outliner does not appearThomas Dinges
* OBJECT_OT_make_links_scene did only trigger an 3D View update which was insufficient for Outliner (modifiers for example) and also some parts inside the Properties Editor (Mesh Data, Material Data).
2012-12-26Region scrollbar fix!Ton Roosendaal
Now scrollbars correctly hide and show, making space for the actual contents in a region. It solves several old hacks, and puts view2d code a bit more back in control as well. Implementation notes: - The view2d mask feature is working again - The #define V2D_SCROLL_HORIZONTAL_HIDE means: "turn on hiding". - Code for UI_view2d_region_reinit() is enforcing better standard view settings But... two hack/patches needed to be added: - Region panel drawing: if after generating the button panels it appears a scroller hides or reveils, it calls all the generating code again. (a simple scale doesn't work due to rounding differences in layout code) - View2d code that maps 'tot' and 'cur' rects: if this code detects that the mask changes, it calcs the map code again. Also a bugfix (issue in 2.65) - The left/bottom area split widget was drawing 1 pixel too large sometimes, leaving bad trails on moving area dividers.
2012-11-26Fix #33310: unnecessary redraw of outliner when editing materials and textures.Brecht Van Lommel
2012-11-25Fix #33296: uv editing did unnecessary outliner redraw, giving slowdown.Brecht Van Lommel
2012-08-24Gave the spacetype time region header malloc a more descriptive text, ↵Nicholas Rishel
consistent with other header mallocs.
2012-06-11OUTLINER_OT_material_drop -- Drag & Drop materials onto objects in the outlinerDan Eicher
Adds the material at materials + 1 unlike the DnD view3d one which replaces the first one
2012-06-05Fix #31702: Drag and Drop parenting crashes BlenderSergey Sharybin
Crash was caused by recent changes in parent drop operator which were aimed to prevent parenting objects between different scenes (which probably makes sense). The problem was how it was checked if objects belongs to the same scene -- outliner tree with type ID_SCE was used for this which works pretty nice for All Scenes outliner view. But in other view modes there is no scene element in outliner tree which lead to some NULL pointer dereferences. Currently resolved this by assuming that if there's no Scene parent element in outliner tree parent and child belongs to the same scene which is active scene. This is truth for current view modes of outliner but if it'll be changed in the future this assumption shall be updated and re-implemented with some smarter checks of which scene object from outliner belongs to.
2012-05-29Outliner Drag & Drop fixesDan Eicher
OUTLINER_OT_parent_drop * use scene of child instead of active scene * poll to check if parent and child are in same scene OUTLINER_OT_parent_clear * get scene from child instead of only working on active scene * poll to check if no parent OUTLINER_OT_scene_drop && OBJECT_OT_make_links_scene * memory leak on error * would only link some objects on error
2012-05-29OUTLINER_OT_scene_drop -- "Drag object to scene in Outliner" operatorDan Eicher
Refactored the two (well, three now) other places where an object is linked to a scene into ED_object_scene_link()
2012-05-07style cleanup: outlinerCampbell Barton
2012-04-28style cleanup: changes to brace placement / newlines - for/while/if/switchCampbell Barton
2012-03-24style cleanup: follow style guide for formatting of if/for/while loops, and ↵Campbell Barton
else if's
2012-03-24style cleanup: mainly for mesh code, also some WM function use.Campbell Barton
2012-02-12Fix for outliner notifiers for inserting keyframes on ↵Sergey Sharybin
visibility/selectivity/renderability flags and toggling renderability from shortcut.
2012-01-22error in outliner parent patch - was using set string on an enum property.Campbell Barton
2012-01-22Patch [#27790] Drag and drop parenting in outlinerJoshua Leung
Submitted by Perry Parks (scuey) From the patch: This patch enables drag and drop parenting for objects in the outliner. Drag and drop is supported for a selection of multiple objects as well. Also, all of the "special" parenting tasks (armature, curve, lattice) are possible through the usual parenting context menus. For example, drag a mesh object onto an armature and you are prompted for using bone envelopes, automatic weights, etc. Demonstration on Vimeo: http://vimeo.com/25698606