From 97c2ecd1409389bb586b481f0115ecfe4e2c73cf Mon Sep 17 00:00:00 2001 From: Ivan Morgillo Date: Mon, 21 Oct 2024 16:10:24 +0200 Subject: [PATCH 1/2] Revert Rework SelectableLazyColumn (#654) Revert "Rework SelectableLazyColumn (#620)" This reverts commit 75d45702f113bf5bbf85cac5a844e0b884c3cc18. --- foundation/api/foundation.api | 8 +-- ...eLazyColumn.kt => SelectableLazyColumn.kt} | 2 +- .../foundation/lazy/tree/BasicLazyTree.kt | 4 +- .../lazy/SelectableLazyColumnTest.kt | 10 ++-- .../releasessample/ReleasesSampleCompose.kt | 2 +- .../standalone/view/component/ChipsAndTree.kt | 2 +- ui/api/ui.api | 4 -- .../ui/component/SelectableLazyColumn.kt | 55 ------------------- 8 files changed, 14 insertions(+), 73 deletions(-) rename foundation/src/main/kotlin/org/jetbrains/jewel/foundation/lazy/{BasicSelectableLazyColumn.kt => SelectableLazyColumn.kt} (99%) delete mode 100644 ui/src/main/kotlin/org/jetbrains/jewel/ui/component/SelectableLazyColumn.kt diff --git a/foundation/api/foundation.api b/foundation/api/foundation.api index 2dcf608d0b..3db9a7e794 100644 --- a/foundation/api/foundation.api +++ b/foundation/api/foundation.api @@ -254,10 +254,6 @@ public final class org/jetbrains/jewel/foundation/code/highlighting/NoOpCodeHigh public fun highlight-C7ITchA (Ljava/lang/String;Ljava/lang/String;)Lkotlinx/coroutines/flow/Flow; } -public final class org/jetbrains/jewel/foundation/lazy/BasicSelectableLazyColumnKt { - public static final fun BasicSelectableLazyColumn (Landroidx/compose/ui/Modifier;Lorg/jetbrains/jewel/foundation/lazy/SelectionMode;Lorg/jetbrains/jewel/foundation/lazy/SelectableLazyListState;Landroidx/compose/foundation/layout/PaddingValues;ZLkotlin/jvm/functions/Function1;Landroidx/compose/foundation/layout/Arrangement$Vertical;Landroidx/compose/ui/Alignment$Horizontal;Landroidx/compose/foundation/gestures/FlingBehavior;Lorg/jetbrains/jewel/foundation/lazy/tree/KeyActions;Lorg/jetbrains/jewel/foundation/lazy/tree/PointerEventActions;Landroidx/compose/foundation/interaction/MutableInteractionSource;Lkotlin/jvm/functions/Function1;Landroidx/compose/runtime/Composer;III)V -} - public class org/jetbrains/jewel/foundation/lazy/DefaultMacOsSelectableColumnKeybindings : org/jetbrains/jewel/foundation/lazy/DefaultSelectableColumnKeybindings { public static final field $stable I public static final field Companion Lorg/jetbrains/jewel/foundation/lazy/DefaultMacOsSelectableColumnKeybindings$Companion; @@ -376,6 +372,10 @@ public final class org/jetbrains/jewel/foundation/lazy/SelectableColumnOnKeyEven public static fun onSelectPreviousItem (Lorg/jetbrains/jewel/foundation/lazy/SelectableColumnOnKeyEvent;Ljava/util/List;Lorg/jetbrains/jewel/foundation/lazy/SelectableLazyListState;)V } +public final class org/jetbrains/jewel/foundation/lazy/SelectableLazyColumnKt { + public static final fun SelectableLazyColumn (Landroidx/compose/ui/Modifier;Lorg/jetbrains/jewel/foundation/lazy/SelectionMode;Lorg/jetbrains/jewel/foundation/lazy/SelectableLazyListState;Landroidx/compose/foundation/layout/PaddingValues;ZLkotlin/jvm/functions/Function1;Landroidx/compose/foundation/layout/Arrangement$Vertical;Landroidx/compose/ui/Alignment$Horizontal;Landroidx/compose/foundation/gestures/FlingBehavior;Lorg/jetbrains/jewel/foundation/lazy/tree/KeyActions;Lorg/jetbrains/jewel/foundation/lazy/tree/PointerEventActions;Landroidx/compose/foundation/interaction/MutableInteractionSource;Lkotlin/jvm/functions/Function1;Landroidx/compose/runtime/Composer;III)V +} + public abstract interface class org/jetbrains/jewel/foundation/lazy/SelectableLazyItemScope : androidx/compose/foundation/lazy/LazyItemScope { public abstract fun isActive ()Z public abstract fun isSelected ()Z diff --git a/foundation/src/main/kotlin/org/jetbrains/jewel/foundation/lazy/BasicSelectableLazyColumn.kt b/foundation/src/main/kotlin/org/jetbrains/jewel/foundation/lazy/SelectableLazyColumn.kt similarity index 99% rename from foundation/src/main/kotlin/org/jetbrains/jewel/foundation/lazy/BasicSelectableLazyColumn.kt rename to foundation/src/main/kotlin/org/jetbrains/jewel/foundation/lazy/SelectableLazyColumn.kt index db18789547..2ea0c70a7c 100644 --- a/foundation/src/main/kotlin/org/jetbrains/jewel/foundation/lazy/BasicSelectableLazyColumn.kt +++ b/foundation/src/main/kotlin/org/jetbrains/jewel/foundation/lazy/SelectableLazyColumn.kt @@ -43,7 +43,7 @@ import org.jetbrains.jewel.foundation.lazy.tree.PointerEventActions /** A composable that displays a scrollable and selectable list of items in a column arrangement. */ @Composable -public fun BasicSelectableLazyColumn( +public fun SelectableLazyColumn( modifier: Modifier = Modifier, selectionMode: SelectionMode = SelectionMode.Multiple, state: SelectableLazyListState = rememberSelectableLazyListState(), diff --git a/foundation/src/main/kotlin/org/jetbrains/jewel/foundation/lazy/tree/BasicLazyTree.kt b/foundation/src/main/kotlin/org/jetbrains/jewel/foundation/lazy/tree/BasicLazyTree.kt index ff981a778f..28f81cc39a 100644 --- a/foundation/src/main/kotlin/org/jetbrains/jewel/foundation/lazy/tree/BasicLazyTree.kt +++ b/foundation/src/main/kotlin/org/jetbrains/jewel/foundation/lazy/tree/BasicLazyTree.kt @@ -26,7 +26,7 @@ import androidx.compose.ui.unit.Dp import androidx.compose.ui.unit.dp import kotlin.time.Duration import kotlin.time.Duration.Companion.milliseconds -import org.jetbrains.jewel.foundation.lazy.BasicSelectableLazyColumn +import org.jetbrains.jewel.foundation.lazy.SelectableLazyColumn import org.jetbrains.jewel.foundation.lazy.SelectableLazyItemScope import org.jetbrains.jewel.foundation.lazy.SelectionMode import org.jetbrains.jewel.foundation.lazy.itemsIndexed @@ -109,7 +109,7 @@ public fun BasicLazyTree( ) } - BasicSelectableLazyColumn( + SelectableLazyColumn( modifier = modifier, state = treeState.delegate, selectionMode = selectionMode, diff --git a/foundation/src/test/kotlin/org/jetbrains/jewel/foundation/lazy/SelectableLazyColumnTest.kt b/foundation/src/test/kotlin/org/jetbrains/jewel/foundation/lazy/SelectableLazyColumnTest.kt index b6b2366aef..d48790a392 100644 --- a/foundation/src/test/kotlin/org/jetbrains/jewel/foundation/lazy/SelectableLazyColumnTest.kt +++ b/foundation/src/test/kotlin/org/jetbrains/jewel/foundation/lazy/SelectableLazyColumnTest.kt @@ -33,7 +33,7 @@ internal class SelectableLazyColumnTest { val scrollState = SelectableLazyListState(LazyListState()) composeRule.setContent { Box(modifier = Modifier.requiredHeight(100.dp)) { - BasicSelectableLazyColumn(state = scrollState) { + SelectableLazyColumn(state = scrollState) { items(items1.size, key = { items1[it] }) { val itemText = "Item ${items1[it]}" BasicText(itemText, modifier = Modifier.testTag(itemText)) @@ -59,7 +59,7 @@ internal class SelectableLazyColumnTest { val state = SelectableLazyListState(LazyListState()) composeRule.setContent { Box(modifier = Modifier.requiredHeight(300.dp)) { - BasicSelectableLazyColumn(state = state, modifier = Modifier.testTag("list")) { + SelectableLazyColumn(state = state, modifier = Modifier.testTag("list")) { items(items.size, key = { items[it] }) { val itemText = "Item ${items[it]}" BasicText(itemText, modifier = Modifier.testTag(itemText)) @@ -115,7 +115,7 @@ internal class SelectableLazyColumnTest { val state = SelectableLazyListState(LazyListState()) composeRule.setContent { Box(modifier = Modifier.requiredHeight(300.dp)) { - BasicSelectableLazyColumn(state = state, modifier = Modifier.testTag("list")) { + SelectableLazyColumn(state = state, modifier = Modifier.testTag("list")) { items(items.size, key = { items[it] }) { val itemText = "Item ${items[it]}" BasicText(itemText, modifier = Modifier.testTag(itemText)) @@ -179,7 +179,7 @@ internal class SelectableLazyColumnTest { val state = SelectableLazyListState(LazyListState()) composeRule.setContent { Box(modifier = Modifier.requiredHeight(300.dp)) { - BasicSelectableLazyColumn(state = state, modifier = Modifier.testTag("list")) { + SelectableLazyColumn(state = state, modifier = Modifier.testTag("list")) { items(items.size, key = { items[it] }) { val itemText = "Item ${items[it]}" BasicText(itemText, modifier = Modifier.testTag(itemText)) @@ -226,7 +226,7 @@ internal class SelectableLazyColumnTest { composeRule.setContent { Box(modifier = Modifier.requiredHeight(300.dp)) { val items = currentItems.value - BasicSelectableLazyColumn(state = state, modifier = Modifier.testTag("list")) { + SelectableLazyColumn(state = state, modifier = Modifier.testTag("list")) { items(items.size, key = { items[it] }) { val itemText = "Item ${items[it]}" BasicText(itemText, modifier = Modifier.testTag(itemText)) diff --git a/samples/ide-plugin/src/main/kotlin/org/jetbrains/jewel/samples/ideplugin/releasessample/ReleasesSampleCompose.kt b/samples/ide-plugin/src/main/kotlin/org/jetbrains/jewel/samples/ideplugin/releasessample/ReleasesSampleCompose.kt index 3432fb692e..eb63152eee 100644 --- a/samples/ide-plugin/src/main/kotlin/org/jetbrains/jewel/samples/ideplugin/releasessample/ReleasesSampleCompose.kt +++ b/samples/ide-plugin/src/main/kotlin/org/jetbrains/jewel/samples/ideplugin/releasessample/ReleasesSampleCompose.kt @@ -69,6 +69,7 @@ import org.jetbrains.jewel.bridge.medium import org.jetbrains.jewel.bridge.regular import org.jetbrains.jewel.bridge.retrieveColorOrUnspecified import org.jetbrains.jewel.bridge.toComposeColor +import org.jetbrains.jewel.foundation.lazy.SelectableLazyColumn import org.jetbrains.jewel.foundation.lazy.SelectionMode import org.jetbrains.jewel.foundation.lazy.items import org.jetbrains.jewel.foundation.lazy.rememberSelectableLazyListState @@ -78,7 +79,6 @@ import org.jetbrains.jewel.ui.component.HorizontalSplitLayout import org.jetbrains.jewel.ui.component.Icon import org.jetbrains.jewel.ui.component.IconButton import org.jetbrains.jewel.ui.component.PopupMenu -import org.jetbrains.jewel.ui.component.SelectableLazyColumn import org.jetbrains.jewel.ui.component.Text import org.jetbrains.jewel.ui.component.TextField import org.jetbrains.jewel.ui.component.Typography diff --git a/samples/standalone/src/main/kotlin/org/jetbrains/jewel/samples/standalone/view/component/ChipsAndTree.kt b/samples/standalone/src/main/kotlin/org/jetbrains/jewel/samples/standalone/view/component/ChipsAndTree.kt index b1a74064e7..28666f988a 100644 --- a/samples/standalone/src/main/kotlin/org/jetbrains/jewel/samples/standalone/view/component/ChipsAndTree.kt +++ b/samples/standalone/src/main/kotlin/org/jetbrains/jewel/samples/standalone/view/component/ChipsAndTree.kt @@ -29,6 +29,7 @@ import androidx.compose.ui.unit.dp import kotlin.random.Random import kotlinx.coroutines.Dispatchers import kotlinx.coroutines.launch +import org.jetbrains.jewel.foundation.lazy.SelectableLazyColumn import org.jetbrains.jewel.foundation.lazy.SelectionMode import org.jetbrains.jewel.foundation.lazy.rememberSelectableLazyListState import org.jetbrains.jewel.foundation.lazy.tree.buildTree @@ -40,7 +41,6 @@ import org.jetbrains.jewel.ui.component.GroupHeader import org.jetbrains.jewel.ui.component.LazyTree import org.jetbrains.jewel.ui.component.OutlinedButton import org.jetbrains.jewel.ui.component.RadioButtonChip -import org.jetbrains.jewel.ui.component.SelectableLazyColumn import org.jetbrains.jewel.ui.component.Text import org.jetbrains.jewel.ui.component.ToggleableChip import org.jetbrains.jewel.ui.theme.colorPalette diff --git a/ui/api/ui.api b/ui/api/ui.api index 534ed2e2f4..c2babb8bcf 100644 --- a/ui/api/ui.api +++ b/ui/api/ui.api @@ -721,10 +721,6 @@ public final class org/jetbrains/jewel/ui/component/SelectableIconButtonState$Co public static synthetic fun of-z9lnavA$default (Lorg/jetbrains/jewel/ui/component/SelectableIconButtonState$Companion;ZZZZZZILjava/lang/Object;)J } -public final class org/jetbrains/jewel/ui/component/SelectableLazyColumnKt { - public static final fun SelectableLazyColumn (Landroidx/compose/ui/Modifier;Lorg/jetbrains/jewel/foundation/lazy/SelectionMode;Lorg/jetbrains/jewel/foundation/lazy/SelectableLazyListState;Landroidx/compose/foundation/layout/PaddingValues;ZLkotlin/jvm/functions/Function1;Landroidx/compose/foundation/layout/Arrangement$Vertical;Landroidx/compose/ui/Alignment$Horizontal;Landroidx/compose/foundation/gestures/FlingBehavior;Lorg/jetbrains/jewel/foundation/lazy/tree/KeyActions;Lorg/jetbrains/jewel/foundation/lazy/tree/PointerEventActions;Landroidx/compose/foundation/interaction/MutableInteractionSource;Lkotlin/jvm/functions/Function1;Landroidx/compose/runtime/Composer;III)V -} - public final class org/jetbrains/jewel/ui/component/SliderKt { public static final fun Slider (FLkotlin/jvm/functions/Function1;Landroidx/compose/ui/Modifier;ZLkotlin/ranges/ClosedFloatingPointRange;ILkotlin/jvm/functions/Function0;Landroidx/compose/foundation/interaction/MutableInteractionSource;Lorg/jetbrains/jewel/ui/component/styling/SliderStyle;Landroidx/compose/runtime/Composer;II)V } diff --git a/ui/src/main/kotlin/org/jetbrains/jewel/ui/component/SelectableLazyColumn.kt b/ui/src/main/kotlin/org/jetbrains/jewel/ui/component/SelectableLazyColumn.kt deleted file mode 100644 index 65f156484b..0000000000 --- a/ui/src/main/kotlin/org/jetbrains/jewel/ui/component/SelectableLazyColumn.kt +++ /dev/null @@ -1,55 +0,0 @@ -package org.jetbrains.jewel.ui.component - -import androidx.compose.foundation.gestures.FlingBehavior -import androidx.compose.foundation.gestures.ScrollableDefaults -import androidx.compose.foundation.interaction.MutableInteractionSource -import androidx.compose.foundation.layout.Arrangement -import androidx.compose.foundation.layout.PaddingValues -import androidx.compose.runtime.Composable -import androidx.compose.runtime.remember -import androidx.compose.ui.Alignment -import androidx.compose.ui.Modifier -import androidx.compose.ui.unit.dp -import org.jetbrains.jewel.foundation.lazy.BasicSelectableLazyColumn -import org.jetbrains.jewel.foundation.lazy.SelectableLazyListScope -import org.jetbrains.jewel.foundation.lazy.SelectableLazyListState -import org.jetbrains.jewel.foundation.lazy.SelectionMode -import org.jetbrains.jewel.foundation.lazy.rememberSelectableLazyListState -import org.jetbrains.jewel.foundation.lazy.tree.DefaultSelectableLazyColumnEventAction -import org.jetbrains.jewel.foundation.lazy.tree.DefaultSelectableLazyColumnKeyActions -import org.jetbrains.jewel.foundation.lazy.tree.KeyActions -import org.jetbrains.jewel.foundation.lazy.tree.PointerEventActions - -@Composable -public fun SelectableLazyColumn( - modifier: Modifier = Modifier, - selectionMode: SelectionMode = SelectionMode.Multiple, - state: SelectableLazyListState = rememberSelectableLazyListState(), - contentPadding: PaddingValues = PaddingValues(0.dp), - reverseLayout: Boolean = false, - onSelectedIndexesChanged: (List) -> Unit = {}, - verticalArrangement: Arrangement.Vertical = if (!reverseLayout) Arrangement.Top else Arrangement.Bottom, - horizontalAlignment: Alignment.Horizontal = Alignment.Start, - flingBehavior: FlingBehavior = ScrollableDefaults.flingBehavior(), - keyActions: KeyActions = DefaultSelectableLazyColumnKeyActions, - pointerEventActions: PointerEventActions = DefaultSelectableLazyColumnEventAction(), - interactionSource: MutableInteractionSource = remember { MutableInteractionSource() }, - // TODO: We will add support for styling in the near future - content: SelectableLazyListScope.() -> Unit, -) { - BasicSelectableLazyColumn( - modifier = modifier, - selectionMode = selectionMode, - state = state, - contentPadding = contentPadding, - reverseLayout = reverseLayout, - onSelectedIndexesChanged = onSelectedIndexesChanged, - verticalArrangement = verticalArrangement, - horizontalAlignment = horizontalAlignment, - flingBehavior = flingBehavior, - keyActions = keyActions, - pointerEventActions = pointerEventActions, - interactionSource = interactionSource, - content = content, - ) -} From 9bf43ee944bfc5c8867c6b277c94a023ff831c09 Mon Sep 17 00:00:00 2001 From: Sebastiano Poggi Date: Mon, 21 Oct 2024 14:57:52 +0200 Subject: [PATCH 2/2] Bump version to 0.26.0 --- gradle.properties | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gradle.properties b/gradle.properties index 77d86a6da6..67ccca2659 100644 --- a/gradle.properties +++ b/gradle.properties @@ -7,4 +7,4 @@ org.jetbrains.intellij.platform.buildFeature.useBinaryReleases=false jdk.level=17 ijp.target=243 -jewel.release.version=0.25.0 +jewel.release.version=0.26.0