IO: Option to import each 3DS file on a new collection #105232

Merged
Sebastian Sille merged 6 commits from :roblop-patch-new-collection into main 2024-03-13 13:34:08 +01:00
Showing only changes of commit 8df28c449f - Show all commits

View File

@ -107,10 +107,10 @@ class Import3DS(bpy.types.Operator, ImportHelper):
description="Read the 3D cursor location", description="Read the 3D cursor location",
default=False, default=False,
) )
new_collection: BoolProperty( use_collection: BoolProperty(
RobLop marked this conversation as resolved Outdated

In style guide we have all boolean options to begin with "use", therefore this boolean has to be "use_collection"

In style guide we have all boolean options to begin with "use", therefore this boolean has to be "use_collection"
name="New collection", name="Collection",
RobLop marked this conversation as resolved Outdated

This looks better if we simply call it "Collection"

This looks better if we simply call it "Collection"
description="Include on a new collection", description="Create a new collection",
RobLop marked this conversation as resolved Outdated

Would rename this to "Create a new collection"

Would rename this to "Create a new collection"
default=True, default=False,
RobLop marked this conversation as resolved Outdated

Default should be False to make it optional by default

Default should be False to make it optional by default

I think it's better to make it True by default otherwise it create a mess on the active collection after the importation of multiple 3DS files.

I think it's better to make it True by default otherwise it create a mess on the active collection after the importation of multiple 3DS files.

I think it's better to make it True by default otherwise it create a mess on the active collection after the importation of multiple 3DS files.

It depends on what the user wants, it may be useful for multiple files but the common use of all importers is to add a model to the current collection, thats why I think it should be false by default to match with the other IO scripts

> I think it's better to make it True by default otherwise it create a mess on the active collection after the importation of multiple 3DS files. > It depends on what the user wants, it may be useful for multiple files but the common use of all importers is to add a model to the current collection, thats why I think it should be false by default to match with the other IO scripts
) )
@ -172,11 +172,11 @@ class MAX3DS_PT_import_include(bpy.types.Panel):
layrow.prop(operator, "use_keyframes") layrow.prop(operator, "use_keyframes")
layrow.label(text="", icon='ANIM' if operator.use_keyframes else 'DECORATE_DRIVER') layrow.label(text="", icon='ANIM' if operator.use_keyframes else 'DECORATE_DRIVER')
layrow = layout.row(align=True) layrow = layout.row(align=True)
layrow.prop(operator, "use_collection")
layrow.label(text="", icon='OUTLINER_COLLECTION' if operator.new_collection else 'COLLECTION_NEW')
RobLop marked this conversation as resolved Outdated

one last fix to make, replace this with:
layrow.label(text="", icon='OUTLINER_COLLECTION' if operator.use_collection else 'GROUP')
the GROUP icon looks better because it is the inverse of the collection icon ;)

one last fix to make, replace this with: `layrow.label(text="", icon='OUTLINER_COLLECTION' if operator.use_collection else 'GROUP')` the GROUP icon looks better because it is the inverse of the collection icon ;)
layrow = layout.row(align=True)
RobLop marked this conversation as resolved Outdated

This looks better if we move it up before "use_cursor" (so it looks more the same like the exporter)

This looks better if we move it up before "use_cursor" (so it looks more the same like the exporter)
layrow.prop(operator, "use_cursor") layrow.prop(operator, "use_cursor")
RobLop marked this conversation as resolved Outdated

call it "use_collection" to match with style guide

call it "use_collection" to match with style guide
layrow.label(text="", icon='PIVOT_CURSOR' if operator.use_cursor else 'CURSOR') layrow.label(text="", icon='PIVOT_CURSOR' if operator.use_cursor else 'CURSOR')
layrow = layout.row(align=True)
layrow.prop(operator, "new_collection")
layrow.label(text="", icon='OUTLINER_COLLECTION' if operator.new_collection else 'COLLECTION_NEW')
class MAX3DS_PT_import_transform(bpy.types.Panel): class MAX3DS_PT_import_transform(bpy.types.Panel):