From 4f8ef8d87dceb1e76c9c1b1e459a6b134c8fa478 Mon Sep 17 00:00:00 2001 From: AlexZ005 Date: Sun, 22 Dec 2024 10:03:36 +0200 Subject: [PATCH 1/4] display hierarchy for Object3D and Mesh types --- src/components/menu/Objects.svelte | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/components/menu/Objects.svelte b/src/components/menu/Objects.svelte index 6fe3c62d..c048fcf2 100644 --- a/src/components/menu/Objects.svelte +++ b/src/components/menu/Objects.svelte @@ -110,7 +110,7 @@ -{#if element.type === 'Group'} +{#if element.type === 'Group' || element.type === 'Object3D' || element.type === 'Mesh'}

{#if !isExpanded} @@ -146,7 +146,7 @@ {#if isExpanded} {#each element.children as item}

- {#if item.type === 'Group'} + {#if item.type === 'Group' || item.type === 'Object3D' || item.type === 'Mesh'} {:else}

From 9b40a48db6383ef4e4617e6a042f29c6f9f9e96a Mon Sep 17 00:00:00 2001 From: AlexZ005 Date: Sun, 22 Dec 2024 10:06:51 +0200 Subject: [PATCH 2/4] [fix] conditionally render expand/collapse icons based on children presence --- src/components/menu/Objects.svelte | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/src/components/menu/Objects.svelte b/src/components/menu/Objects.svelte index c048fcf2..0c196c7a 100644 --- a/src/components/menu/Objects.svelte +++ b/src/components/menu/Objects.svelte @@ -116,7 +116,9 @@ {#if !isExpanded}

{ select(element.uuid); }}> - isExpanded = !isExpanded}> + {#if element.children.length > 0} + isExpanded = !isExpanded}> + {/if}

{element.name}

{#if $lockedObjects.find((lockedUuid) => lockedUuid[1] === element.uuid)} @@ -136,8 +138,10 @@
{:else}
{ select(element.uuid); }}> - isExpanded = !isExpanded}> -

{element.name}

+ {#if element.children.length > 0} + isExpanded = !isExpanded}> + {/if} +

{element.name}

{/if} From 3de9e7302fa770e450b1bc881e62350c71d8e463 Mon Sep 17 00:00:00 2001 From: AlexZ005 Date: Sun, 22 Dec 2024 12:06:09 +0200 Subject: [PATCH 3/4] [feat] object icons for collapsible --- src/components/menu/Objects.svelte | 103 +++++++---------------------- 1 file changed, 25 insertions(+), 78 deletions(-) diff --git a/src/components/menu/Objects.svelte b/src/components/menu/Objects.svelte index 0c196c7a..2b8b9083 100644 --- a/src/components/menu/Objects.svelte +++ b/src/components/menu/Objects.svelte @@ -110,14 +110,24 @@ -{#if element.type === 'Group' || element.type === 'Object3D' || element.type === 'Mesh'} +

{#if !isExpanded}

{ select(element.uuid); }}> {#if element.children.length > 0} - isExpanded = !isExpanded}> + isExpanded = !isExpanded}> + {:else} + + {/if} + + {#if element.type.endsWith('Group')} + + {:else if element.type.endsWith('Light')} + + {:else} + {/if}

{element.name}

@@ -137,11 +147,17 @@ {/if}
{:else} -
{ select(element.uuid); }}> - {#if element.children.length > 0} - isExpanded = !isExpanded}> - {/if} -

{element.name}

+
+ isExpanded = !isExpanded}> + + {#if element.type.endsWith('Group')} + + {:else if element.type.endsWith('Light')} + + {:else} + + {/if} +

{element.name}

{/if} @@ -149,78 +165,9 @@ {#if isExpanded} {#each element.children as item} -

- {#if item.type === 'Group' || item.type === 'Object3D' || item.type === 'Mesh'} - - {:else} -

- -

-
{ select(item.uuid); }}> - {#if item.type.endsWith('Light')} - - {:else} - - {/if} -

{item.name}

-
- - {#if $lockedObjects.find((lockedUuid) => lockedUuid[1] === item.uuid)} -
-
  • 🔒
  • -

    ⚙️

    -

    ✖️

    -
    - Locked by {$lockedObjects.find((lockedUuid) => lockedUuid[1] === item.uuid)[0]} - {:else} -
    - -

    configure(item)}>⚙️

    -

    deleteItem(item)}>✖️

    -
    - {/if} -
    - -

    - {/if} - +

    +

    {/each} {/if} -{:else} - - -

    -

    { select(element.uuid); }}> - -

    -
    - {#if element.type.endsWith('Light')} - - {:else} - - {/if} -

    {element.name}

    -
    - - {#if $lockedObjects.find((lockedUuid) => lockedUuid[1] === element.uuid)} -
    -
  • 🔒
  • -

    ⚙️

    -

    ✖️

    -
    - Locked by {$lockedObjects.find((lockedUuid) => lockedUuid[1] === element.uuid)[0]} - {:else} -
    - -

    configure(element)}>⚙️

    -

    deleteItem(element)}>✖️

    -
    - {/if} -
    - -

    - - -{/if} \ No newline at end of file From d23fc83c6c78492bd0815c7c5ec9bce833706718 Mon Sep 17 00:00:00 2001 From: AlexZ005 Date: Sun, 22 Dec 2024 12:08:56 +0200 Subject: [PATCH 4/4] [fix] settings for expandable items --- src/components/menu/Objects.svelte | 21 ++++----------------- 1 file changed, 4 insertions(+), 17 deletions(-) diff --git a/src/components/menu/Objects.svelte b/src/components/menu/Objects.svelte index 2b8b9083..baa885aa 100644 --- a/src/components/menu/Objects.svelte +++ b/src/components/menu/Objects.svelte @@ -113,13 +113,14 @@

    - {#if !isExpanded}

    { select(element.uuid); }}> - {#if element.children.length > 0} + {#if !isExpanded && element.children.length > 0} isExpanded = !isExpanded}> + {:else if element.children.length > 0} + isExpanded = !isExpanded}> {:else} - + {/if} {#if element.type.endsWith('Group')} @@ -146,20 +147,6 @@
    {/if}
    - {:else} -
    - isExpanded = !isExpanded}> - - {#if element.type.endsWith('Group')} - - {:else if element.type.endsWith('Light')} - - {:else} - - {/if} -

    {element.name}

    -
    - {/if}