Page MenuHome

Collection Manager
Confirmed, NormalPublicDESIGN

Tokens
"Love" token, awarded by Alumx."Mountain of Wealth" token, awarded by CobraA."Yellow Medal" token, awarded by 1D_Inc."Love" token, awarded by Tetone."Love" token, awarded by MetinSeven."Like" token, awarded by jfmatheu."Love" token, awarded by amonpaike."Like" token, awarded by duarteframos.
Authored By

Description


Location3D View (Object Mode)
ShortcutM

BlenderArtists feedback thread:
https://blenderartists.org/t/release-addon-collection-manager-feedback/1186198

Latest Zip Downloads:

Blender 2.82:

Current Development (will go into Blender 2.83+):


Overview of Current Features:
  • Interactive treeview display of collections in an autosized popup window in the 3D View.
  • View Layer integration and management.
  • Add, rename, and remove collections and sub-collections.
  • Active collection is synced to treeview selection.
  • Simple display and modification of the relationship of objects with collections.
  • Restriction Toggle state with advanced manipulation.
  • Filtering display of collections (filter by name, filter by selected objects).
  • Phantom Mode – All visibility changes made in this mode will be discarded when it’s disabled.
Modifier Shortcuts:

Expansion Operator:
LMB - Expand/Collapse sub-collections.
Shift-LMB - Isolate collection tree. (Not Yet Implemented)

Set Object Collection Operator:
LMB - Move object(s) to collection.
Shift+LMB - Add/Remove object(s) to/from collection.

Local RTOs:
LMB - Toggle collection RTO on/off
Shift+LMB - Isolate collection RTO/Restore previous state.
Shift+Ctrl+LMB - Isolate collection RTO leaving children unchanged/Restore previous state. (2.83+ Only)
Ctrl+LMB - Toggle collection+children RTOs on/off.

Remove Operator:
LMB - Remove collection.
Ctrl - LMB Remove collection+children. (Not Yet Implemented)

Global RTOs:
LMB - Enable RTO for all collections/Restore previous state.
Shift+LMB - Invert RTO state for all collections.
Ctrl+LMB - Copy/Paste RTO state from/to all collections. (Not Yet Implemented)
Alt+LMB - Swap RTO states for all collections. (Not Yet Implemented)
Ctrl+RMB - Discard history. (Not Yet Implemented)

Planned Features:
  • Isolate tree – collapses all collections not part of the current tree.
  • Discard history for the restore toggles. (CTRL+RMB)
  • Swapping Restriction Toggle states.
  • Copying/Pasting Restriction Toggle states.
  • Clone View Layer
  • Remove child collections.
  • Reorder collections.
Potential Planned Features:
  • Grey out rows when collections not visible.
  • Condense UI.
  • Full support of objects and their Restriction Toggle states.
  • "Find and replace" renaming for collections.

Original Concept:

This is a collection manager that I created for my larger addon Advanced UI Menus (https://blenderartists.org/t/addon-advanced-ui-menus/592865). I believe I read somewhere that blender was looking for a better way to work with collections in the 3D Viewport; so, this is my solution to that problem.

This addon provides a popup window that includes a treeview (made out of a UIList and operators) with functions to add collections and subcollections, rename collections, move objects to collections, exclude collections, restrict selection on collections, hide collections, and remove collections. It correctly handles collection chains and allows you to isolate collections by shift-clicking, and you can move objects to multiple collections via shift-clicking as well. The addon will also show you what collections are visible and what collections the selected objects are in. In addition it will not allow objects to be removed from all collections entirely. All of the functionality is documented by tooltips, so if you open the collection manager and just hover over stuff you will be able to easily learn all of it's advanced functionality. And as a final note, the window will size itself based on the depth of collections so nothing gets squished.

Related Objects

Mentioned In
rBA05994562fc71: Collection Manager: Add nested isolation. Task: T69577
rBAe7a8ab248112: Collection Manager: Improve width calculation. Task: T69577
rBA4e3539fa890a: Collection Manager: Fix selection bug. Task: T69577
rBA8b202fb6dccb: Collection Manager: Improve remove collection operator. Task: T69577
rBAdc0def220d6f: Collection Manager: Improve SetCollection Operator. Task: T69577
rBA42d5e009be49: Collection Manager: Fix send_report error. Task: T69577
rBA4d6d1f7eed8b: Collection Manager: Fix popup sizing. Task: T69577
rBA9f12957bf2a3: Collection Manager: Fix Phantom Mode bugs. Task: T69577
rBA441f30bbe359: Collection Manager: Small cleanup. Task: T69577
rBAa7acf9e1d3ac: Collection Manager: Fix bug with enabling toggle. Task: T69577
rBAf72fce5e82ff: Collection Manager: Add to release. Task: T69577
rBAC6e651fabf38a: Collection Manager: Remove from contrib. Task: T69577
rBAC7e1b58a42678: Collection Manager: Add highlighting to isolation toggle. Task: T69577
rBACde11dda9208f: Collection Manager: Add Filter By Selected. Task: T69577
rBACffbaca558a27: Collection Manager: Add toggle children to RTs. Task: T69577
rBACaf1d8170e6fb: Collection Manager: Update Tooltips. Task: T69577
rBAC6d71a2739dc2: Collection Manager: Add invert to restore toggles. Task: T69577
rBACa7fe2ba6378e: Collection Manager: Added proper view layer support. Task: T69577
rBACf3beaf241996: Collection Manager: Made filtering case-insensitive. Task: T69577
rBAC4c21cd164790: Collection Manager: Fixed filtering bug. Task: T69577
T71560: Blender 2.82 New Addons Proposals
rBAC29ab8a6b7e5c: Collection Manager: Add Phantom Mode. Task: T69577
rBACc4e727c026dd: Collection Manager: Fix bug with sync selection. Task: T69577 Prevent syncing…
rBAC0e5b7c2b9e5e: Collection Manager: fix operator undo. Task: T69577
rBAC454288034df3: Collection Manager: sync list selection to active collection. Task: T69577
rBACef6ef414d22c: Collection Manager: Add shortcut to bl_info. Task: T69577
rBACf14a0237875e: Collection Manager: Fix exclusion toggle/isolation. Task: T69577
rBAC4820186bcf9c: Collection Manager: move location of remove op to far right. Task: T69577
rBACbb5649a845a2: collection_manager: add to contrib. Task: T69577
T68974: Collection usability
Mentioned Here
T71560: Blender 2.82 New Addons Proposals
T72084: Restriction Toggle Settings Are Not Unique To View Layers and Are Lost When Switching
T72086: Performance Setting Collection Attributes Degrades The More Collections Are Stored In A bpy_prop_collection (e.g. bpy.context.view_layer.layer_collection.children)
T71112: UI: support 'activate_init' for popups which refresh
T18565: 4mm Layer Manager 1.3.1: Named layers, multiple configurations by layer group, & more

Event Timeline

There are a very large number of changes, so older changes are hidden. Show Older Changes

Initially I was looking for a replacement for the older Layer Manager addon. We had this in Blender from 2.4x to 2.7x to fill a gap, improve usability and offer functionality until we moved on to collections.

Well, here is a huge problem of a system type definition.
The problem is that Collections system and Layers/QCD are completely different types of systems.

In 2.79 there are only Layers/QCD - so there are only RAM system, that was designed to be a RAM system and works nice like a RAM system, just like any Quick Content Display system (QCD).
The old Layer manager add-on was an attempt to remake RAM system into some limited HDD system, giving static names to dynamic context slots.
You know, sometimes HDD systems in computers are used as a RAM, for swap files, so there was a reverse example, and this is always a compromise solution.

At some point a lot of people started thinking, that Layers/QCD is nothing more than a bad limited HDD system, because they never used it properly - for handling dynamic context during complex multi-referenced modeling in combinational access way, as far as Layers/QCD was the only system for making scene setup - that is completely different goal, that differs from complex multi-referenced modeling.

So a strange thing happened in 2.8 - HDD (Collections) system replaced RAM (Layers/QCD) system, instead of adding HDD to a RAM=)
Here is an explanation between differences of purposes of those systems, and how they are usually combined together.
https://devtalk.blender.org/t/layers-maniphest/6578/115?u=1d_inc

In this topic, we are trying to improve the Collections system so that it better matches its main goal - the complex scene setup.

@Paul Kotelevets (1D_Inc) Here's the test of nested isolation. It's implemented for all the toggles.

Oh, yes, it works just awesome)
Now we can isolate not only single collection, but also entire branch, or subbranch of collections in toggle way)
So, we has got the ability to explore collections scene setup in much more deep and flexible way)

Also like shortcuts, I think it was a nice idea to assign simple isolation to Shift+LMB, nested isolation to Shift+Ctrl+LMB, and control nested to Ctrl+LMB.
I tried it, it feels natural, and, on my mind, is pretty much easy to remember, as complex action requires more complex shortcut, and everything, that contain Shift is about isolations.
It also makes me doubt Shift + LMB for enabling invertion, because we are definitely forcing Shift for isolation actions.

That's why I was proposing Ctrl+LMB for enabling invertion. This is not critical, but will look more appropriate in my opinion.
Currently it takes some additional memory to remember, that Shift key modificator behaves differently for local and global RTOs.
Do you feel the same?

Oh, yes, it works just awesome)

Excellent! :)

Also like shortcuts ... I tried it, it feels natural

Good. I agree.

That's why I was proposing Ctrl+LMB for enabling invertion.
Do you feel the same?

I don't really have a preference. Something else to think about is that currently everything that uses Shift as a hotkey remembers history, while if you Ctrl-Click on an isolation toggle it's a permanent action.

A good point)
I will think about relevancy)

Well, anyway, it seems, we has got free CTRL+LMB shortcut for Global RTOs.
How about to fill it with something breakthrough?

As you may know, currently it is pretty much hard to predict what will be rendered after you press the render button, because RR state is totally implicit - there is no way to see it in viewport.
From other side, VV is totally explicit, as it is dislayed in viewport, and also is controllable by hotkeys there - H, Alt+H, Shift+H hotkeys allow to setup VV states directly.
But VV is not renderable at all, excluding preview render, so VV is temporal by it's nature.
So, RTOs like RR has got only renderability, while VV - flexible setup and display without any influence to renderability.

I think, that would be nice to have ability to view, setup and control implicit RTOs (RR, HH, IO) with states of explicit one (VV, DV, EC).
The workflow I propose is pretty much simple - setup scene visibility, and then just copy it to renderability to get predictable result on final render.
And all we need for this is the ability to copy RTO values between columns, and I think it is nice ability to fill CTRL+LMB shortcut.
Basically, this is the Photoshop eyedropper tool used to manage global RTOs setups:

I can see here a couple of troubles, for example,

  • chaining implicit RTOs can be expressed fully only with chaining explicit RTOs, (chaining RR -> with chaining VV, non-chaining IO -> with non-chaining EC ) but it is not critical, it is possible to remember such a things, or read from our typing scheme.
  • Some of RTOs are applicable ont only to collections but also to objects, so it would be nice to copy also object's values as well.
  • We have only blue highlighting, that can visually mix with invertion. Copying is almost immediate action (you copy - you paste), so highlighting that lasts a long time is definitely an inversion.
  • Copying erases column values, but we can store them with swap columns values action . Maybe, CTRL+ALT+LMB action for swap Global column values alongside with CTRL+LMB for copy will help with this. It would be nice to see both swapped buttons highlighted in red, but, I guess, it is impossible (yet).

But, in general, I think the ability to see just immediately in viewport what you will get after pressing render button deserves that research)
What do you think?

How about to fill it with something breakthrough?

I like breakthrough things. :)

There's some interesting ideas here.

I think having the option to copy is a great idea, but I wouldn't use highlighting for it. Copy - Paste is such a quick operation that you don't need an indication, plus it could be confused with a history state.

I don't see a use for swapping, but if you have a use for it I can add it. Swapping brings up another potential issue - applying states. Currently, when you isolate something, or do an enable all, it sort of locks in the history of the last state. And while you can clear this by clicking on a toggle, it would be nice to be able to use e.g. ALT+RMB to forget history/apply state. Also, with the multi-color highlighting, it would be nice, but I don't think it's currently possible. And with the "Tracker Curfew" in effect I doubt a patch to allow it would get accepted right now (but if you do come across a way to get multi-color highlighting, let me know).

As you may know, currently it is pretty much hard to predict what will be rendered after you press the render button, because RR state is totally implicit - there is no way to see it in viewport.

For this, I think it would be better to have a "show what will be rendered" function, rather than copying and pasting. The problem with this, at the moment, is the application to objects - like you mentioned. Objects aren't really supported right now, but they may be in the future. For now I would suggest the Collection Manager should only operate on collections, except for special cases like removing collections with objects, and if/when objects get proper support we can include them in things like "show what will be rendered" and copying.

On a slightly different topic, I need to spend some time bug fixing and polishing what will go into 2.82, so I won't get to the stuff above for a bit. But I think things are developing nicely. :)

I like breakthrough things. :)
There's some interesting ideas here.

Thanks)

Copy - Paste is such a quick operation that you don't need an indication, plus it could be confused with a history state.

Yes, I also think it would not be critical, because such kind of actions are too quick.

I don't see a use for swapping, but if you have a use for it I can add it.

Aw, let me explain this technique.
The difference between copy and swap actions is the same, that between destructive and non-destructive actions.

  • Copy action rewrites entire column, so it works in destuctive way, that is suitable for setups that are made from scratch, or any other case when existing setup of expicit RTO doesnot matter.
  • Swap action allow to temporairly keep all values of both columns without using any buffer, so it allow to explore and edit existing implicit setup, preserving explicit setup for recovery.

Copy action is a single direct action = setup > copypaste.
Swap is a double action = swap to see > setup > swap back.

Here is a scheme with all possible actions with copy and swap.
As you can see here, swap allow to make changes to implicit RTO, keeping explicit RTO values untouched:

And with the "Tracker Curfew" in effect I doubt a patch to allow it would get accepted right now (but if you do come across a way to get multi-color highlighting, let me know).

Well, we will do our best - I will propose this and explain the concept behind it.

For this, I think it would be better to have a "show what will be rendered" function, rather than copying and pasting.

Well, that is a nice idea for separate mode, I guess)
But the goal of copy/swap is a bit deeper, than to see what will be rendered.
The main goal of this tool is the ability to observe and edit implicit RTOs as explicit RTOs, including such unobvios things like HH and IO, and, of course, without loosing an actual setup, due to the swap ability.

The problem with this, at the moment, is the application to objects - like you mentioned. Objects aren't really supported right now, but they may be in the future. For now I would suggest the Collection Manager should only operate on collections, except for special cases like removing collections with objects, and if/when objects get proper support we can include them in things like "show what will be rendered" and copying.

I understand.
Is it possible to reach objects RTOs, if to make a separate addon, that contains only global RTOs with copy and swap abilities, for concept testing purposes?
We will need some realization as proof of concept at some point, just to show that it would be useful to have such abilities.

On a slightly different topic, I need to spend some time bug fixing and polishing what will go into 2.82, so I won't get to the stuff above for a bit. But I think things are developing nicely. :)

For sure, it is going great!
Since copy/swap is a sandbox research, we can't have any deadlines for that, unlike the situation with 2.82.
So the only thing I would like to know if you like such kind of idea.

I made a gif about swap action.
Hope it will explain the mechanics behind it.
We are making implicit setup temporarily visible with first swap, then editing setup while it is visible, and then deploying it back with second swap, keeping things non-destructive.

Thanks. That clears things up nicely. I'll put swapping on my new features list.

Ryan Inch (Imaginer) added a comment.EditedJan 18 2020, 3:28 AM

Update.
Unless any major bugs are found, here is a zip of the version that will be in the official release of 2.82. 😁

Bugs fixed/polish added since the last zip (v1_8_2):
Fixed the popup window’s auto-sizing when it’s first opened.
Fixed an error when popping up info notices.
Simplified the remove operator.
Fixed a minor error regarding selection.

Thanks to everyone who provided feedback/reported bugs. Now it’s on to 2.83. 🙂

Updated the task description here to better suit a Design task. Let me know if it works or not.

Such a gorgeous news!
So much work has been done here.

I like new description, so accurate, short and consistent now)
I would like to propose to add a appropriate hotkey modifier to functions description, because most of such functions can be accessible only that way.
Maybe, as separate list of shortcuts in Shortcut - Description form to keep basic description clean, like that:

Local RTOs:
LMB - simple collection on/off operation
Shift+LMB - single isolation toggle
Shift+Ctrl+LMB - nesting isolation toggle
Ctrl+LMB - nesting control

Global RTOs:
LMB - Global enabling toggle
Shift+LMB - Global inverting toggle
[ Ctrl+LMB - Copypaste column values ]
[ Alt+LMB - Swap column values ]

[...]- planned / to do

Such list will be also short, useful, pretty much consistent, and will allow new users to dive into the addon's functionality.

About bugs - I keeping testing, but already found that nesting local isolation on Shift+Ctrl isnt working on 2.82 beta, it makes just single isolation.
Can you confirm that?

I would like to propose to add a appropriate hotkey modifier to functions description

Good idea. I'll add that.

About bugs - I keeping testing, but already found that nesting local isolation on Shift+Ctrl isnt working on 2.82 beta, it makes just single isolation.

Probably my fault. The latest zip (v1_8_8) I posted is what will be in 2.82 and doesn't include nested isolation. And I forgot to include the zip for v1_9_0, which does include it, under the current download section of the task. But v1_9_0 and any zips with new features will be for 2.83 and beyond. I'll update the task to better reflect this.

If you are referring to v1_9_0, I did find a bug in it regarding isolation and I hope to have a fix out soon.

Okay.
About description - it can be a bit unobvious what are, actually, local RTOs, global RTOs, expansion operator and so on, so I guess it would be helpful to mark with frames and sign them on a special addon's screenshot.

Maybe it will be better to put clean screenshot with downloads in the begining of a description before overview (to see it without scrolling, as far as it is a face of the the addon), and add a special screenshot in the end, righ after shortcuts, to explain the anatomy of the addon.
How do you think?

Let me try it with having small cutouts next to the categories and see if that works. If that's clear enough I don't see a problem just having the screenshot at the bottom with the downloads.

Well, here is a problem - a lot of things are visually doubling each other.
For examle, all RTOs, select object collection operator versus filter collection by selection, and all those 50 shades of gray crosses over inteface ...

I think it is important to show exact location

I would like to propose it that way

I'll admit, that looks better. I'll add it to the task description with a few tweaks, for example, what you term "filter by name" actually inverts the filtering.

Yes, with this screenshot it looks more loud and clear)
I am not sure about red Invert filtering, because we have invert actions that works in other way, that can be confusing.
Also, it is name-related one, so it is more like "search by name", or "find by string" or maybe simlpy "search" or "find"?

Nope. It's a built in blender function we get for free and when you press it it inverts the UIList's filter. So for example if you're filtering collections by selected objects and you press the invert filter button it will show you all the collections that don't have the selected objects. The text field before it is what filters by name, so maybe it needs some red text in the image too.

Aw. Maybe, I got something wrong, I will check it)

By the way, I've seen a request for "find and replace" renaming function for collections, because new default find and replace works with objects names only.
It can be fixed one day, but anyway such functionality can be interesting in terms of collections management.

Aw. Maybe, I got something wrong, I will check it)

No worries!

By the way, I've seen a request for "find and replace" renaming function for collections

Not sure how exactly that'll work, but I'll add it to the list of potential features.

Yes, it will be a nice place for it.
At least, it deserves to be kept in mind this way)

Update for 2.82:

Changes:
Fixed tooltip for local render RTO.
Fixed bug with isolate/restore state when there is only one RTO to restore.

Cool!
Meanwhile, we are trying to hack cloning view layer concept, to define possibility conditions and obtain some kind of a realization in research way.
It is tough one, so we decided to make it separately from CM addon paradigm at this point.
I will tell, if we will get some nice results)

Also known issue - view layers are not preserved when copying a scene.
Maybe, problem of copying view layers influences a bit deeper...

Cool. Sounds like you'll have an interesting time ;)
Let me know what you find out.

Ryan Inch (Imaginer) added a comment.EditedJan 25 2020, 7:12 AM

Update:
Official addition of nested isolation.
Integrated fixes from the 2.82 release branch.
Fixed bug from previous 1.9 version with setting RTO isolation status.

This will be going into official blender 2.83+:

This will be going into official blender 2.83+:

Hooray!
That's awesome news)

Sounds like you'll have an interesting time ;)

Hard to say, we are also trying to get Blender 2.8x selection finally fixed.
It is completely offtopic, but here is a solution we've found.
It can be interesting since it influence almost any kind of mesh editing.

Continuing our view layer cloning research as well as part of a MASC addon
https://youtu.be/REfhZMdqV8k

Hooray!
That's awesome news)

Remember that we have v1.8.9 in 2.82 already. It's just the new development that's now all going into 2.83+. But yes, I think what we end up with for 2.83 will be a real powerhouse. :)

It is completely offtopic, but here is a solution we've found.
It can be interesting since it influence almost any kind of mesh editing.

Yes, that is interesting. I'll have to remember that. And it occurs to me that Ctrl-Right Mouse (extrude to cursor) would benefit from being a press event as well.

Continuing our view layer cloning research as well as part of a MASC addon

Looking good.

And it occurs to me that Ctrl-Right Mouse (extrude to cursor) would benefit from being a press event as well.

Exactly! But unfortunately, it breaks lasso selection.
I using it with press event, and thinking about proper proposal. Maybe, delay threshold to lasso.

Looking good

Thanks. Since QCD system is almost completely destroyed, and there is no more ability to control slots combinations with perception speed providden by the subitizing ability, people are trying to retrieve combinational control even with such unobvious way.
It is pretty much weak concept, in comparison with a proper QCD system, since you cannot control what is actually hidden in view layer (by obtaining combination information directly, without scrolling all that lists in outliner), and useful view layers number is very limited (more than 5-7 is hard to use, remember and control), but such an implementation at least raises the issue of copying view layers to explore.

Ryan Inch (Imaginer) added a comment.EditedJan 26 2020, 9:01 AM

Exactly! But unfortunately, it breaks lasso selection.
I using it with press event, and thinking about proper proposal. Maybe, delay treshold to lasso.

Ah, I see. Try setting it to a release event then. That should work. I actually don't know why the click event is causing trouble; I suspect it's a bug.

Since QCD system is almost completely destroyed,

I'm actually working on a test implementation of a QCD system for the Collection Manager in a separate branch. Thank's for reminding me, I'd kinda forgotten about it with everything else going on recently.

@Paul Kotelevets (1D_Inc) Here is a test implementation for QCD to try out. It has hotkeys and allows you to manage QCD Layers to some degree from the QCD tab in the collection manager. This is just a basic proof of concept for now.

Hotkeys:

  • 123 etc. / Alt+123 etc. -- View QCD Layer (toggles between layers)
  • Ctrl+123 etc. / Ctrl+Alt+123 etc. -- View QCD Layer (enables/disables layers)
  • Shift+123 etc. / Shift+Alt+123 etc. -- Move Object to QCD Layer

Wow.

  • Maya users animating visibility just to get combinations of 2 objects. It tooks 3 frames. For 5 objects it will be U(5) = 2^5-1 = 31 (combinations or frames or view layers)
  • Pablo Vasquez made a concept but it is completely out of any scope.
  • AutoCAD has got laywalk command that works more like collections list.
  • Blender 2.7 has got 20 slots + hiding + isolation, so it is U(22) = 2^22-1 = 4194303 hiding information combinations fully controllable at perception speed in blender scene.

I didn't found more examples of successfull implementation of such a system in entire industry.

A QCD system research? I think it will be definitely just as epic as tough one. I am glad to hear even that it is going)

Blender 2.8 already have a QCD system (when pressing number corresponding collection is displayed)
Everything that has a limit of 20 - refers to the QCD system (hotkeys, autonumeration, widgets, etc)
There are ruins, but they works, and it has got some huge inconsistences.

For example

  • Sending number differs from invoke number - M5 issue. When you selecting an object with pressing M5 in default collection management gui, it sends it to a list number. It cannot be found by pressing number 5 to invoke slot 5 - object has gone to another collection and is lost.
  • Numeric input operates on VV instead EC, that makes slots manipulations hierarchy-dependent, which is messy. You cannot strightly isolate a slot without viewing all its nesting.
  • There is no proper slots GUI to figure out combination, and collection-based workflow breaks ability to work in fullscreen and completely concentrate on a model.
  • Collections are assigned to slots with autonumeration, and there were attempts to make it more complex.

Those things cannot be fixed with addons, it is a core workflow design problem, and it is completely separate task, considering dynamic context management.

All I can propose at the moment is to try to fix M5 issue, to make objects sending to a collection that is invoked by pressing correspondig number in CM.
That will help to solve that issue, that just ruins our workflow.

Test example - open a new scene, create a cube and 6 simple flatlist collections.
Disable CM addon.
Select cube, press M5 - cube has gone
Press 5 - collection 5 appears, there is no cube
Press 4 - collection 4 appears, here is a cube. It has gone to a wrong collection.

Correct behaviour should be - press M5 to send a cube, press 5 to view collection to see a cube.

That's M5 issue.

You currently made a separate"layers", that can contain objects, but it will be hard to control them, since such "layers" is a completely separate paradigm.
QCD is better to build on a collection engine - it already works like this (some collections has got predictable numbers, assigned by autonumeration, you can access them with those numbers, and it is ok), such a system is just needed to be polished, clarified, specified, and get proper GUI to shine in glory.

In short - you've tried to build it on much deeper level than it actually needs)

It is not a problem to build a proper QCD system in current Blender 2.8 realization - we already have some significant part of it that works.
It is a problem to take a few simple right steps to make it work properly, so it is more workflow design issue than, actually, development problem.
Just like clunky LMB selection issue that can be fixed with couple of lines, but breaks any kind of organic hardsufrace modeling, and lasts a year.

Did you know that SS, DV and RR are, actualy, not stored in view layer?

A QCD system research? I think it will be definitely just as epic as tough one. I am glad to hear even that it is going)

Yes, I'm looking forward to it.

  • Sending number differs from invoke number - M5 issue. When you selecting an object with pressing M5 in default collection management gui, it sends it to a list number. It cannot be found by pressing number 5 to invoke slot 5 - object has gone to another collection and is lost.
  • Numeric input operates on VV instead EC, that makes slots manipulations hierarchy-dependent, which is messy. You cannot strightly isolate a slot without viewing all its nesting.
  • There is no proper slots GUI to figure out combination, and collection-based workflow breaks ability to work in fullscreen and completely concentrate on a model.
  • Collections are assigned to slots with autonumeration, and there were attempts to make it more complex.

Those things cannot be fixed with addons

I think these can be fixed fairly easily with an addon, actually.

You currently made a separate"layers", that can contain objects, but it will be hard to control them, since such "layers" is a completely separate paradigm.
QCD is better to build on a collection engine

I'll try a second approach more closely built off of collections.

In short - you've tried to build it on much deeper level than it actually needs)

Well my first approach allows for a lot of flexibility, so maybe it's more than needed, but it might prove useful. We can compare once I've built the second.

Did you know that SS, DV and RR are, actualy, not stored in view layer?

Yes. That's why I've been a bit hesitant with cloning and it's related to my bug report: T72084

New version of first QCD test:

Look in the top right corner of the 3D View for the new ui. See tooltips for instructions. It's based off of that link to collection_quickies you mentioned earlier, so thank's for that :)

@noki paike (amonpaike) You might be interested in this latest QCD test as well.

I've tried it)
Well, I am not sure that there should be a dedicated QCD mode - default behavior is nice.

Let me explain why.

Almost every kind of work in CG contains or even consists from converting a dynamic context (ideas, concepts, sketches, references, versions and other temporal data) to a static context (final models, scenes or products):
So, basically, every production process can be expressed using this scheme:

QCD as a system is needed for very a special task - complex multirefrenced modeling, and Collections management is needed for complex scene setups.
And, as it is shown on a sheme, this is completely different steps of a production.
When you modeling a complex asset you don't care about scene setup to get slot access speed, and when you assembling final scene, you don't care about slot access speed to get scene setup.
So those production steps are made in different files.

Complex modeling requires a lot of reference trash around to navigate between them, such as pictures, photoscans, drawings, LODs, variations, model parts, retopology objects, that should never get the final scene.
This way, making a separate QCD mode makes no sense, it just have nothing to presevre, as far as scene is prerared exclusevly for such kind of a modeling.

From other side, complex scene sometimes needs a cleanups, so QCD there is used for qick sending objects to a specified prepared collection, that will be placed somewhere in complex scene setup later.
Like sorting content or filtering it out. This way, dedicated QCD mode is harmful for that purpose.

So I would like to propose to split QCD and CM addons, because they are needed for different steps of production, and have completely different requirements to a realization.
I believe, the best way of making proper QCD system is focusing on default QCD abilities, providden by default numeric input and autonumeration - we were fighting to preserve its best realization a lot,
because switching modes is pretty much distracting, and it will be hard to design a invoke keymap behavior better than we has got.

The only thing I would like to propose for Collection Manager is to try to fix M5 issue, to provide ability to send an object to a proper collection.
So do you have an access to autonumeration result in API?
Can you obtain a name of a collection, that is isolated when pressing number 5, for example?

GUI is nice by the way, its like meetin old good friend that helped a lot)
But Alt keys are swapped. It is needed to be fixed for consistency - alt+3 should be under 3, alt+8 should be under 8.
It is needed for excluding counting them from a workflow.

When you modeling a complex asset you don't care about scene setup to get slot access speed, and when you assembling final scene, you don't care about slot access speed to get scene setup.
So those production steps are made in different files.

I've only done small scenes, but I have often just done everything in one. So I think we should try for something that allows you to work with whatever level of detail is needed at the time.

So I would like to propose to split QCD and CM addons, because they are needed for different steps of production, and have completely different requirements to a realization.

For now it's of more benefit to keep them together. If, when we decide on the final implementation, it makes sense to separate them we can do it then.

So do you have an access to autonumeration result in API?

I don't think so. But I can probably calculate the correct numeration myself. I'm actually not really a fan of autonumeration.

Can you obtain a name of a collection, that is isolated when pressing number 5, for example?

Potentially. I'd need more information on what you're hoping to do.

But Alt keys are swapped. It is needed to be fixed for consistency - alt+3 should be under 3, alt+8 should be under 8.

Sorry, I'm not sure what you mean here.

Overall you've made some good points, I'm not sure I agree with all of them, but this is still just the beginning of development. Let me do my second implementation and then we'll hopefully have a better idea how to go forward.

And I'm glad you like the GUI :)

Well, I currently thinking about QCD abilities, trying to design proper workflow.
Some of my thoughts at the moment:

  1. I like we are trying to make QCD system in a separate CM research. It is definitely a sandbox task that will require a lot of design.
  2. Special mode is awkward, and breaks shortcuts.

For example, you can invoke some slot with N(number) and Alt+N
but can't add slots to visible with Shift+N and Alt+Shift+N to quickly form or modify a Combination of slots, that is our main goal.
We are making QCD to setup and control combinations.

So, I would like to propose just make a QCD Collection with 20 numeric collections in it without any kind of special mode.
It will be clean as concept, slots will be easy to access both from Nums (because of fixed addresses) and Outliner, and accesible in Blender even if addon is not installed.
Special button will create such Collection.

  1. About QCD structure. I would like to propose the default one, because it is very profound.

Let me explain a beautiful logic behind that.
First five are hot slots - they are commonly used, have smallest integers and the best key locations.
First Alt+five slots are cold slots - it’s nice to store here some data corresponding to hot slots.

Hot slot is above cold, so it is a pair, and it is fluent to set or invoke them.
For example, if hot slot 2 contains mesh, cold slot /2 (alt+2) contains it's retopo or base mesh, or reference, or part that may be needed - some data corresponding to the hot slot.
This way, QCD system consists from 10 pairs of 20 slots.

Other 10 slots (6-0, /6 -/0) are reserved slots.
They also have pairs, so slot 8 is above slot /8, and it is fluent, but they are used mostly for keeping everything that is not that important, due to less accessible keys.
So you can move pair from hot+cold (for example 2/2) to reserved (for example, 9/9) without losing the logical connection between them, if it is not urgently needed anymore.

As a result, pairs are extremely easy to set with numbers and detect visually.
This is the way it works)

But Alt keys are swapped. It is needed to be fixed for consistency - alt+3 should be under 3, alt+8 should be under 8.

  1. About QCD structure. I would like to propose the default one, because it is very profound.

Ah, I see now. Thanks. I've fixed this for both implementations now. (And yes it is beautiful)

So, I would like to propose just make a QCD Collection with 20 numeric collections in it without any kind of special mode.

I'm not going to do this right now because it's functionality is very close to the first implementation.

Here is implementation #2 (which I think I prefer). I believe it solves most of your problems, except maybe auto-numeration could use some work. :)
Features:

  • a QCD system based on collections.
  • N(number)/Alt-N - isolate QCD Layer.
  • Shift-N/Shift-Alt-N - toggle QCD Layer on/off.
  • M-N/Alt-M-N - Add/Remove object from QCD Layer. (allows you to keep M pressed down and type multiple numbers with or without alt to move to any number of collections quickly)
  • M - still calls the collection manager.
  • In the collection manager there is a QCD Layer field for each collection that allows you to specify which QCD Layer that collection should represent (initially set by auto-numeration, allows manual setting).
  • Auto-numeration sets QCD Layers in what I believe is a combination B2 + A system (doesn't match blender default). Auto-numeration will not re-use numbers (so if you have one top level collection, add 5 children, then add another top level collection the second top level collection will have a blank QCD Layer because #2 has already been used).
  • You can discard your changes and redo auto-numeration with the "Re-numerate QCD Layers" button (this feels a little clumsy to me, but I can't think of anything better to allow auto-numeration + user defined. Maybe typing in -1 to a QCD field instead of the button).
  • You can filter only collections that are QCD Layers with the new "Q" filter toggle on the filter row.

Here is implementation #2 (which I think I prefer)

Wow! That is, actually, a very close solution!!
I need to use it for some time, but I already love how much direct it is.
Yes, since we are using EC, which can be stored in View Layer, we can use QCD system even in complex scenes, just creating empty VL for QCD session, keeping scene setup untouched, if it is needed at some point)
Awww, that feeling of combinational control... like feeling power ))

I need to dive in it, but the only thing I can propose already is about holding M.
What about to left M completely for collection manager, and use V for assigninig QCD slots, with separate domino GUI and keys reading?
It looks unoccupied and innocent in object mode, since vertex paint has gone from it.
CM and QCD systems are both content management systems, but they are semanically separated, as far as they follows different goals. I think that semantic difference can be also realized as hotkey difference, because both systems are used for different ways of content management.

Ryan Inch (Imaginer) added a comment.EditedThu, Jan 30, 8:23 AM

Wow! That is, actually, a very close solution!!
I need to use it for some time, but I already love how much direct it is.

😀

What about to left M completely for collection manager, and use V for assigning QCD slots, with separate domino GUI and keys reading?

Switching hotkeys is easy. I can separate it out to two different ones. Having it all on M maybe has little more meaning as a hold over from 2.7 and it's one less key to remember, but I'm not set on it. And I'm not exactly sure what you mean by domino GUI.

Aw, domino GUI is a QCD GUI. It was called domino, because it also using subitizing ability to percept numbers.

When we are using CM we assigning collections with boxes

Via pressing V we can bring a separate window with QCD GUI to assign slots to a selection.
Because it is a bit... complex to set, for example, 2 3 /5 slots to a selection via holding M and pressing 2 3 alt+5 buttons.
This is definitely a two-handed type of operation, I would like to propose to avoid that.

Ryan Inch (Imaginer) added a comment.EditedThu, Jan 30, 8:46 AM

ok, that's clearer. But why not just Shift-Click on the QCD GUI in the 3D View, that will move objects, rather than bringing up a new window? And I know Shift-Click is probably a bad hotkey for that, we can change it later.

Well, here we need to build an actions map.
I will make it to show all possible cases of interactions with a system (assigning slots, invoking slots), and we will place it to a relevance tree (because speed of access is important for QCD systems), to clearly see what we can get mathematically.
That will show us if we can do such a thing without loss.

Well, since QCD systems belongs to quick access systems, their action maps are pretty much simple. That's why we love it.
We will monitor the integrity of access to slots using the mouse and keyboard, using an example of cold Alt slots, and this way we will satisfy hot slots as well, because they are just simpler.

There are two groups of actions - Vew and Set
View - We are starting from simplest one - View slots in order to get familiar with its content. It is simplest isolation action. So, this way we are figuring combination of slots we want to obtain, looking throug them.
Add to View - Then we add slots to the view to get the combination that we figured out - this way we are forming desired combination to work with it.
Same behavior can be extended to Set actions, this way we can send object to a slot, or send it to a combinations of slots (like if we need a single image reference for multiple objects in different slots)

I greyed out hotkeys for Set in case if we don't use V popup for this mode, and here is a problem.
We have to add Ctrl modifier in order to satisfy all cases, and, as you can see, we run out of possible hotkeys combinations, ending with monstrous Ctrl+Shift+Alt+N to send object to a multiple cold slots.
For sure, it is possible to make so, but it will be definitely not the best way of using it)

Also, as you can see, V popup menu mode allow Set mode just copy View mode corresponding shortcuts for the same types of actions, that is pretty much fluent as part of the quick access paradigm.

Now I feel myself like Numberphile =)
What do you think about such solution?

Your action map does a good job showing the different ways of interaction. For the mouse shortcuts I'll agree that having a popup come up under the mouse would provide a slight improvement of speed. The number shortcuts, however, have a problem. I can see that doing it from M is a bad idea because it requires two hands (plus some keyboards may not correctly send all the key combinations. Mine doesn't send M-Alt-6 and M-Alt-7 correctly), and if we try to just use the regular modifier keys it becomes very hard to accommodate the move object operations (even Shift+Alt is somewhat difficult). So your option of V, Alt+3 (just like the widget in 2.7) makes a lot of sense, but now we come to the problem: the widget in 2.7 is custom and not built in python with a regular UI. I can have a regular widget pop up, but I can't think of any way to override the view shortcuts with move object shortcuts while the widget is up and return the shortcuts back to normal when it closes. One thing that might be possible is to draw it all with Blender's OpenGL, but that's outside my current skill set. Now, maybe someone else knows how to achieve this, so I'll ask around, but for the time being I think the best option is to forget the move object shortcuts and just use the mouse on the V popup.

New version that more closely matches your action map.

Your action map does a good job showing the different ways of interaction.

Thank you. As an engineer, I love ways to see systems transparently.

So your option of V, Alt+3 (just like the widget in 2.7) makes a lot of sense, but now we come to the problem: the widget in 2.7 is custom and not built in python with a regular UI.

Yeah, this is exactly the problem I'm trying to fix.
There is not so much needed to obtain proper QCD system for multirefrenced modeling workflow, so I'm trying to overcome it directly.

You provided Crtl modifier hotkey for Set actions, and it is the best you can do, because it makes such system complete and useful.
So, you are a life saver!
A great job, thank you so much for this!!

p.s. I will test a solution for some time before showing it to other users that need it)

p.s. I will test a solution for some time before showing it to other users that need it)

Good idea. Let me know if you find any bugs or think of any improvements.

You provided Crtl modifier hotkey for Set actions, and it is the best you can do, because it makes such system complete and useful.
So, you are a life saver!
A great job, thank you so much for this!!

Thanks! My pleasure! :)
And who knows in time I may find a way to recreate that widget and workflow. Regardless, now we have a reference implementation that we can point to and say: this is the general idea. And it's already a good QCD system for anyone who wants to use it.

A couple things I think potentially need further development are: auto-numeration (Does the system I chose work well for you, and should we stick with a button to re-numerate?) and move to (Should we allow objects to be moved again after they're moved to a non-visible layer). And one final thing I need to add is saving the QCD layers to blend files, but I'm working on that plus saving the other isolation/enable all histories (Do these need to be saved?).

Once we're happy with the above I think it's worth it to include the QCD system in the next official release (2.83).
Thoughts?

I am in testing process.

You already made so much to allow our company to survive.
Can you answer pesonal question on BA?

Yes. Done.
I'm happy I could help. :D

Hi!
Sorry for delay, I am deadly busy with my animation project.

I think I've got an interesting solution - what if to add a button near widget that will swap widget mode from View to Set and back, with ability to assign V shortcut to it.
This way we will not need a separate menu with separate gui, we will be able to use existing one, but for clearly splitted modes.
For example, to send selection to /2 slot it will be needed to press V, Alt+2, V (to enter and exit Set mode respectively)
Also it will be possible to use widget with only Shift and LMB for both modes and any possible cases.
I would definitely like to give a chance and test such a solution.

Do you think this is possible?

Sorry for delay, I am deadly busy with my animation project.

No problem. I've been busy with stuff as well.

As to your solution, I think it's possible. I'll work on it.

I've been thinking more about the possibility of recreating the move widget from 2.7, and I think that it is possible with a modal operator and OpenGL. The main problem here is my unfamiliarity with OpenGL, but in time I think I can do it. It probably won't be done soon though, so I'll work on it slowly in the background.

@Paul Kotelevets (1D_Inc) Here is a test of your most recent suggestion/solution.
Enjoy!

Aw, that's so more fluent now!
Addiction will take some time, but the same short shortcuts in both modes succeeded)
Keeping testing, I think about visibility problems - for example, do we have to operate on EC if we are using enumerated list, or should we see a collection we send object to.
Sending to a single turned off slot feels a bit clunky, since we are loosing selection from sight of view.
I try to investigate if it is reasonable to keep the receiving slot disabled if it was (for single or multiple sending)

Can we make such test for research purposes - add slot to visible when we are sending objects to it?

Aw, that's so more fluent now!
Addiction will take some time, but the same short shortcuts in both modes succeeded)

Good!

Sending to a single turned off slot feels a bit clunky, since we are loosing selection from sight of view.

I've felt that as well, but I haven't known which direction to go with a solution or whether a solution to that is actually needed.

Can we make such test for research purposes - add slot to visible when we are sending objects to it?

Sure, that's easy, but I think it will quickly mess up your viewing state.

Another possibility would be to allow movement regardless of whether they can seen.
I'm about 90% sure this can be done, but I haven't tested it yet.

Just found out about this great addon from the 2.82 release page,I wish if we could have something similar for "Bone Layers", cheers.

cheers.

Hi. We are currently trying to cover complex production needs. We are working on Quck Content Display system.

Sure, that's easy, but I think it will quickly mess up your viewing state.

Yes it will.
But it is hard to say if it will be that harmful.
I think this problem occurs because its easy to loose an active object due to indication limits, so it is hard to say if selection has gone to correct slot if a few are already taken.
Maybe another button for additive sending next to mode switch to test a solution?

Also nice design with crosses on nonexisting slot, didn't thought that is possible)

@CobraA (CobraA)
Something similar for Bone Layers has always been in the back of my mind and it's been requested before, so I'll probably end up doing something, but it may end up as a separate addon. I'm also not quite sure how it should look and work, so if you have any ideas let me know. Glad you like the addon! 🙂

@Paul Kotelevets (1D_Inc)

Also nice design with crosses on nonexisting slot, didn't thought that is possible)

Thanks. I needed something to keep everything aligned properly, so I thought an X would work nicely, but it could be anything. 🙂

Maybe another button for additive sending next to mode switch to test a solution?

I'd prefer to keep buttons to a minimum, but I have got a new version that adds the view layer when you move the object for you to test.
I'm thinking from my limited use that it's not great, but it does allow you unlimited movement. I'll see if I can find a solution to let you move selected objects from non-visible collections.

Thanks)
For sure, we will try to reach minimum ui elements, so such buttons are temporal, just for testing solutions without reinstalling addons versions back and forth)

I've tested for some time. Suddenly, such behavior feels... smoother)
I need to test this some more time to understand why the slot display seems to be better.
I would like to propose to turn off a slot from where selection has gone (in which the number of objects was reduced after the Set operation),
this will make possible to find appropriable slot to a selection via several switches, if it is possible to reproduce.

Also, it seems, you removed Ctrl hotkey modifier for Set operations.
I don't think it is needed to be removed - it is pretty much clean alternative way to work with ui widget directly.
When objects are sent with mouse operations, slot is selected directly with mouse, so it is possible to afford Ctrl and Ctrl+Shift hotkeys modifiers in that case, to get ability to Set without entering special mode.
QCD mode button (with V key assigned) is handy for numeric input to indicate Set and View modes split to keep shortcuts the same for that type of input, and also get around the separate popup ui problem.
It is also possible to use this button for mouse input operations, but operations with Ctrl hotkey modifier can be faster in some cases.

I would like to propose to turn off a slot from where selection has gone (in which the number of objects was reduced after the Set operation),
this will make possible to find appropriable slot to a selection via several switches, if it is possible to reproduce.

So, when objects are moved out of a layer and the layer has no objects in it we hide it? That could be done, I think.

Also, it seems, you removed Ctrl hotkey modifier for Set operations.

Yeah, I did it to unify it with the keyboard state and present a clear representation of the modes to the user, but I can easily add the Ctrl modifier back to the GUI.

The separate modes may not be required anyway. I've been doing some experimenting with OpenGL (turns out blender's python bindings of it are fairly simple) and I think I'll be able to recreate the functionality of the widget from 2.7
The main problem I'm seeing is the loss of selection when moving objects to hidden QCD layers. I'm hoping I can find a way to preserve them, but we'll just have to see.

There are also a couple bugs I found when I downloaded a couple of the new demo files blender released, so I'll be fixing those, but other than that the Collection Manager and QCD system worked really nicely with one of the scenes from Spring.
Speaking of test files, do you know of any good ones I could download so I can get a feel of how the Collection Manager/QCD will handles in real world scenarios?

Hopefully I'll have some good stuff for you to test soon.

So, when objects are moved out of a layer and the layer has no objects in it we hide it? That could be done, I think.

I think, that it will be interisting to hide slot that will still contain objects but has got lesser objects after Set operation - that will mean that objects has gone from it.

Yeah, I did it to unify it with the keyboard state and present a clear representation of the modes to the user, but I can easily add the Ctrl modifier back to the GUI.

That would be nice)
It is a shortcut, that also don't take any space, so if to chose between have it or don't, it will be nice to have it)

The separate modes may not be required anyway. I've been doing some experimenting with OpenGL (turns out blender's python bindings of it are fairly simple) and I think I'll be able to recreate the functionality of the widget from 2.7
The main problem I'm seeing is the loss of selection when moving objects to hidden QCD layers. I'm hoping I can find a way to preserve them, but we'll just have to see.

Yes, losing active/selection is definitely the issue. That's why I thought about switching back from EC to VV operations, but VV is not stored in View layer, so we are trying to make EC behavior better providing unhiding/hiding slots on Set opertions.
I already feel how tricky recreating 2.7 functionality can be)
So I tried to ask devs to make some API improvements to make it easier, but with no luck.

There are also a couple bugs I found when I downloaded a couple of the new demo files blender released, so I'll be fixing those, but other than that the Collection Manager and QCD system worked really nicely with one of the scenes from Spring.
Speaking of test files, do you know of any good ones I could download so I can get a feel of how the Collection Manager/QCD will handles in real world scenarios?
Hopefully I'll have some good stuff for you to test soon.

Well, we are using 2.79 on most product-dependent tasks since January, to avoid workflow issues of 2.8X to ruin our production process, 2.8X is banned in our company.
The good news is that there is no rush, and we have enough time to evolve solutions, proper design and testing.

About QCD using scenarios - it is intended "for handling dynamic context", and this range of tasks indeed is pretty much abstract.
But a nice case example to feel how it works is multirefrenced modeling, that covers almost every critical need of using such a system.
This post contains GIF of using QCD in a real production multirefrenced modeling workflow.
So, to simulate this case you need to get some simultaneous references in one place (like photoes, drawings, photoscans, laser scans, retopology objects, basemeshes, etc)
and try to navigate between them and their combinations as fast as possible, trying to concentrate on a model, it's references, and differences between them in fullscreen because of details.
I am thinking about example scenes, because I can't share our working files because of NDA, and placing 5-7 random objects in one place just can be far away from self-explanatory.

It just heavily depends on workflow process, since it is a workflow issue =)
In fact, the QCD system is the answer to the question "how complex model can you build in your software without getting ripped"

Yes, losing active/selection is definitely the issue.

Good news, I've fixed it so this doesn't matter anymore. I can now move objects to multiple non-visible layers in sequence, just like 2.7x.

I think, that it will be interisting to hide slot that will still contain objects but has got lesser objects after Set operation - that will mean that objects has gone from it.

Interesting. I don't think this will be necessary anymore with the above solution, but we may want it as well.

The good news is that there is no rush, and we have enough time to evolve solutions, proper design and testing.

Excellent.

Well, we are using 2.79 on most product-dependent tasks since January, to avoid workflow issues of 2.8X to ruin our production process, 2.8X is banned in our company.

Hopefully collections and QCD will soon no longer be an obstacle anymore :)

I am thinking about example scenes, because I can't share our working files because of NDA

Yeah, I suspected NDA might be an issue. I'll just have to keep my eyes out for complex scenes. Maybe I'll try blendswap. Because the thing is, I think I understand the abstract concepts quite well, but it's a different thing to get a feel for how well a technology implements those concepts, what it feels like to actually use the addon on a production scene, what works well and what little problems you run into that you wouldn't expect. This is for the whole addon of course, not just QCD.
But no worries. For the most part things are easy enough to test.

Interesting. I don't think this will be necessary anymore with the above solution, but we may want it as well.

Yes. I also see no obstacles here)
A kind of syntactic sugar applied to a workflow.

But no worries. For the most part things are easy enough to test.

For sure. It is mostly about speed of access, just in heavily distracting modeling conditions, so there should not be problems with testing process.
We also have time-tested 2.7 example which works pretty well.

Good news, I've fixed it so this doesn't matter anymore. I can now move objects to multiple non-visible layers in sequence, just like 2.7x.
Hopefully collections and QCD will soon no longer be an obstacle anymore :)

You really give us hope)

Alright, here is a new version with the selection problem fixed and a QCD move widget drawn in OpenGL with hotkey support. Let me know what you think and if, after trying it out, you still want to try out the auto enabling/disabling of QCD layers on move. Fair warning, the OpenGL widget is crude (I'll see about refining it later), but it should serve as a good prototype for the functionality, and proof that it's possible. Moving objects via V, LMB, V, Shift+LMB, V, Alt+3 and V, Shift+Alt+3 is now possible.

Alright, here is a new version with the selection problem fixed and a QCD move widget drawn in OpenGL with hotkey support. Let me know what you think and if, after trying it out, you still want to try out the auto enabling/disabling of QCD layers on move. Fair warning, the OpenGL widget is crude (I'll see about refining it later), but it should serve as a good prototype for the functionality, and proof that it's possible. Moving objects via V, LMB, V, Shift+LMB, V, Alt+3 and V, Shift+Alt+3 is now possible.

Wow!
It looks nice enough and it works!
I love bigger size of slots, it is better for mouse operations, square shape make it better for subitizing, but maybe gaps between them is a bit huge. 1px gap should be enough, since they are bigger.
I would like to propose to grey out slots indicators that don't contain a selection, if it is possible. Yeah, I think we will face those detecting/indicating active/selection problem many more times)
Also love Ctrl direct combinations back, indeed, works like a syntactic sugar. It is definitely "nice to have" feature!
Switch mode button has gone, and I think we made enough to get rid of it)

In general, this GUI It is definitely a step forward in terms of usability)
Nice to see such realization)

Wow!
It looks nice enough and it works!

Thanks! I'm probably going to keep it a fairly simple flat theme, but hopefully it'll get a little more stylish. :)

I would like to propose to grey out slots indicators that don't contain a selection, if it is possible. Yeah, I think we will face those detecting/indicating active/selection problem many more times)

Not exactly sure what you're asking here. Do you mean you want the button greyed out if there are no objects in that layer or is it that it should be greyed out if there are objects but none are selected?
If it's the latter I was planning on doing a filled circle/outline circle for selected objects/not selected objects similar to how it's represented on the widget in the 3D View header.
And actually, now that I think of it, I think I'm going to change the 3D View header widget so that you get a filled circle for all selected objects instead of just the active object.

Also love Ctrl direct combinations back, indeed, works like a syntactic sugar. It is definitely "nice to have" feature!
Switch mode button has gone, and I think we made enough to get rid of it)

As you might have noticed from the version number, I actually just went back to the branch with the regular popup and switched it out for my custom OpenGL one, so no need for modes and I got the Ctrl combination back without any extra work! :)

Here's a new version to test with a few improvements to the OpenGL drawing, and a new feature/bug fix that allows you to mark collections as non QCD Layers. The re-numerate button on the collection manager now will respect user defined non QCD Layers by default, and so won't assign them a number, and it now has a hotkey (Ctrl) to allow complete re-numeration discarding user defined non QCD layers. Plus a bug fix with the integration of QCD with the Collection Manager histories.

Aw. I need to think about this concept for a while.

Upon further consideration I'm going to keep the filled circle to indicate the active object, because you need that indication to work properly when adding objects to a layer as opposed to moving them.
I've done some polishing of the OpenGL widget and the object indication, and I think it works really well now. Oh, and if I didn't mention it before, we can technically draw just about anything in opengl for the popup move widget.
Another thing I think I forgot to mention is that you can move objects to whatever layers you want now (and keep moving them) regardless of whether the layers are visible.

Not trying to push you, feel free to think about stuff for as long as you want. :)
And if you could keep an eye out for any hangs or performance problems with the new OpenGL widget that would be great.