Skip to content

Commit

Permalink
Improve string-based Icon deprecation (#555)
Browse files Browse the repository at this point in the history
Adding the PathIconKey import and param names to the ReplaceWith makes
the auto-upgrade seamless. It would result in red code otherwise.

Upgrade Icon in SwingComparisonTabPanel to new style.
  • Loading branch information
rock3r authored Aug 22, 2024
1 parent 9e136d9 commit 0a43abe
Show file tree
Hide file tree
Showing 3 changed files with 27 additions and 10 deletions.
5 changes: 3 additions & 2 deletions samples/ide-plugin/src/main/kotlin/icons/IdeSampleIconKeys.kt
Original file line number Diff line number Diff line change
@@ -1,7 +1,8 @@
package icons

import org.jetbrains.jewel.ui.icon.IntelliJIconKey
import org.jetbrains.jewel.ui.icon.PathIconKey

object IdeSampleIconKeys {
val gitHub = IntelliJIconKey("icons/github.svg", "icons/github.svg", IdeSampleIconKeys::class.java)
val gitHub = PathIconKey("icons/github.svg", IdeSampleIconKeys::class.java)
val jewelToolWindow = PathIconKey("icons/jewel-tool-window.svg", IdeSampleIconKeys::class.java)
}
Original file line number Diff line number Diff line change
Expand Up @@ -30,6 +30,7 @@ import com.intellij.ui.dsl.builder.panel
import com.intellij.util.ui.JBFont
import com.intellij.util.ui.JBUI
import com.intellij.util.ui.components.BorderLayoutPanel
import icons.IdeSampleIconKeys
import icons.JewelIcons
import org.jetbrains.jewel.bridge.JewelComposePanel
import org.jetbrains.jewel.bridge.medium
Expand Down Expand Up @@ -107,10 +108,9 @@ internal class SwingComparisonTabPanel : BorderLayoutPanel() {

compose {
Icon(
"icons/jewel-tool-window.svg",
null,
this@SwingComparisonTabPanel.javaClass,
Modifier.border(1.dp, Color.Red),
key = IdeSampleIconKeys.jewelToolWindow,
contentDescription = null,
modifier = Modifier.border(1.dp, Color.Red),
)
}
}.layout(RowLayout.PARENT_GRID)
Expand Down
24 changes: 20 additions & 4 deletions ui/src/main/kotlin/org/jetbrains/jewel/ui/component/Icon.kt
Original file line number Diff line number Diff line change
Expand Up @@ -42,7 +42,11 @@ import java.io.InputStream

@Deprecated(
"Use the IconKey-based API instead",
ReplaceWith("Icon(PathIconKey(resource, iconClass), contentDescription, colorFilter, modifier, hints)"),
ReplaceWith(
"key = Icon(PathIconKey(resource, iconClass), contentDescription = contentDescription, " +
"colorFilter = colorFilter, modifier = modifier, hints)",
"org.jetbrains.jewel.ui.icon.PathIconKey",
),
)
@Composable
public fun Icon(
Expand All @@ -66,7 +70,11 @@ public fun Icon(

@Deprecated(
"Use the IconKey-based API instead",
ReplaceWith("Icon(PathIconKey(resource, iconClass), contentDescription, colorFilter, modifier, hint)"),
ReplaceWith(
"key = Icon(PathIconKey(resource, iconClass), contentDescription = contentDescription, " +
"colorFilter = colorFilter, modifier = modifier, hint = hint)",
"org.jetbrains.jewel.ui.icon.PathIconKey",
),
)
@Composable
public fun Icon(
Expand All @@ -90,7 +98,11 @@ public fun Icon(

@Deprecated(
"Use the IconKey-based API instead",
ReplaceWith("Icon(PathIconKey(resource, iconClass), contentDescription, tint, modifier, hints)"),
ReplaceWith(
"Icon(key = PathIconKey(resource, iconClass), contentDescription = contentDescription, " +
"tint = tint, modifier = modifier, hints = hints)",
"org.jetbrains.jewel.ui.icon.PathIconKey",
),
)
@Composable
public fun Icon(
Expand All @@ -114,7 +126,11 @@ public fun Icon(

@Deprecated(
"Use the IconKey-based API instead",
ReplaceWith("Icon(PathIconKey(resource, iconClass), contentDescription, tint, modifier, hints)"),
ReplaceWith(
"Icon(key = PathIconKey(resource, iconClass), contentDescription = contentDescription, " +
"tint = tint, modifier = modifier, hint = hint)",
"org.jetbrains.jewel.ui.icon.PathIconKey",
),
)
@Composable
public fun Icon(
Expand Down

0 comments on commit 0a43abe

Please sign in to comment.