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 9d2089eefb - Show all commits

View File

@ -107,6 +107,12 @@ 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(
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",
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",
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,
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
)
def execute(self, context): def execute(self, context):
from . import import_3ds from . import import_3ds
@ -168,6 +174,9 @@ class MAX3DS_PT_import_include(bpy.types.Panel):
layrow = layout.row(align=True) layrow = layout.row(align=True)
layrow.prop(operator, "use_cursor") layrow.prop(operator, "use_cursor")
layrow.label(text="", icon='PIVOT_CURSOR' if operator.use_cursor else 'CURSOR') layrow.label(text="", icon='PIVOT_CURSOR' if operator.use_cursor else 'CURSOR')
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, "new_collection")
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='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):