From 804d82938c61678aabbc9d38912ec41bd7b2c732 Mon Sep 17 00:00:00 2001 From: Aleksey Pivovarov Date: Mon, 9 Sep 2024 14:10:46 +0200 Subject: [PATCH] IJPL-161823 lvcs: implement 'Copy to Clipboard' for Local History entries GitOrigin-RevId: 539d0161d8c8a7fd3426a16e5fb38da2e1e11452 --- .../platform/lvcs/impl/ChangeSetActivityItem.kt | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/platform/lvcs-impl/src/com/intellij/platform/lvcs/impl/ChangeSetActivityItem.kt b/platform/lvcs-impl/src/com/intellij/platform/lvcs/impl/ChangeSetActivityItem.kt index 617655d989a4..59d949aa1ff1 100644 --- a/platform/lvcs-impl/src/com/intellij/platform/lvcs/impl/ChangeSetActivityItem.kt +++ b/platform/lvcs-impl/src/com/intellij/platform/lvcs/impl/ChangeSetActivityItem.kt @@ -10,6 +10,7 @@ import com.intellij.history.integration.CommonActivity import com.intellij.history.integration.LocalHistoryBundle import com.intellij.openapi.util.NlsContexts import com.intellij.openapi.util.NlsSafe +import com.intellij.util.text.DateFormatUtil import org.jetbrains.annotations.ApiStatus @ApiStatus.Internal @@ -17,6 +18,7 @@ abstract class ChangeSetActivityItem(changeSet: ChangeSet) : ActivityItem { override val timestamp: Long = changeSet.timestamp val id = changeSet.id val activityId: ActivityId? = changeSet.activityId + open val fullName: @NlsSafe String? get() = name abstract val name: @NlsSafe String? override fun equals(other: Any?): Boolean { @@ -26,6 +28,12 @@ abstract class ChangeSetActivityItem(changeSet: ChangeSet) : ActivityItem { } override fun hashCode(): Int = id.hashCode() + + override fun toString(): String { + val fullName = fullName.orEmpty() + return DateFormatUtil.formatDateTime(timestamp) + + if (fullName.isNotBlank()) ": $fullName" else "" + } } val ChangeSetActivityItem?.revisionId: RevisionId get() = if (this != null) RevisionId.ChangeSet(id) else RevisionId.Current @@ -69,7 +77,8 @@ private fun ChangeSet.presentableNameFromPaths(): @NlsContexts.Label String? { } internal class LabelActivityItem(changeSet: ChangeSet) : ChangeSetActivityItem(changeSet) { - override val name = shorten(changeSet.label ?: changeSet.name) + override val fullName = changeSet.label ?: changeSet.name + override val name get() = shorten(fullName) val color = changeSet.labelColor private fun shorten(name: String?): String? {