From 2704cc2b79525789adc3cd1d65256ecfb51af82f Mon Sep 17 00:00:00 2001 From: Kirill Likhodedov Date: Mon, 23 Jul 2018 12:24:35 +0300 Subject: [PATCH] Display full branch name in MultipleFileMergeDialog columns Shorten it only for calculating the initial width Relates to IDEA-195517 --- .../openapi/vcs/merge/MultipleFileMergeDialog.kt | 10 ++++++++-- .../git4idea/src/git4idea/merge/GitMergeProvider.java | 3 +-- 2 files changed, 9 insertions(+), 4 deletions(-) diff --git a/platform/vcs-impl/src/com/intellij/openapi/vcs/merge/MultipleFileMergeDialog.kt b/platform/vcs-impl/src/com/intellij/openapi/vcs/merge/MultipleFileMergeDialog.kt index 0287c0062965..58530e9ccdcd 100644 --- a/platform/vcs-impl/src/com/intellij/openapi/vcs/merge/MultipleFileMergeDialog.kt +++ b/platform/vcs-impl/src/com/intellij/openapi/vcs/merge/MultipleFileMergeDialog.kt @@ -17,6 +17,7 @@ import com.intellij.openapi.project.Project import com.intellij.openapi.project.ex.ProjectManagerEx import com.intellij.openapi.ui.DialogWrapper import com.intellij.openapi.ui.Messages +import com.intellij.openapi.util.text.StringUtil import com.intellij.openapi.vcs.VcsBundle import com.intellij.openapi.vcs.VcsConfiguration import com.intellij.openapi.vcs.VcsException @@ -193,8 +194,7 @@ open class MultipleFileMergeDialog( for ((index, columnInfo) in tableModel.columns.withIndex()) { val column = columnModel.getColumn(index) columnInfo.maxStringValue?.let { - val width = Math.max(getFontMetrics(font).stringWidth(it), - getFontMetrics(tableHeader.font).stringWidth(columnInfo.name)) + columnInfo.additionalWidth + val width = calcColumnWidth(it, columnInfo) column.preferredWidth = width } } @@ -208,6 +208,12 @@ open class MultipleFileMergeDialog( columnModel.getColumn(fileColumn).preferredWidth = size } + + private fun calcColumnWidth(maxStringValue: String, columnInfo: ColumnInfo): Int { + val columnName = StringUtil.shortenTextWithEllipsis(columnInfo.name, 15, 7, true) + return Math.max(getFontMetrics(font).stringWidth(maxStringValue), + getFontMetrics(tableHeader.font).stringWidth(columnName)) + columnInfo.additionalWidth + } } private fun toggleGroupByDirectory(state: Boolean) { diff --git a/plugins/git4idea/src/git4idea/merge/GitMergeProvider.java b/plugins/git4idea/src/git4idea/merge/GitMergeProvider.java index b86d5598d2fe..fb5dfa171b5a 100644 --- a/plugins/git4idea/src/git4idea/merge/GitMergeProvider.java +++ b/plugins/git4idea/src/git4idea/merge/GitMergeProvider.java @@ -8,7 +8,6 @@ import com.intellij.openapi.project.Project; import com.intellij.openapi.util.Key; import com.intellij.openapi.util.Trinity; import com.intellij.openapi.util.io.FileUtil; -import com.intellij.openapi.util.text.StringUtil; import com.intellij.openapi.vcs.FilePath; import com.intellij.openapi.vcs.VcsException; import com.intellij.openapi.vcs.history.VcsRevisionNumber; @@ -480,7 +479,7 @@ public class GitMergeProvider implements MergeProvider2 { public static String calcColumnName(boolean isTheirs, @Nullable String branchName) { String title = isTheirs ? GitBundle.message("merge.tool.column.theirs.status") : GitBundle.message("merge.tool.column.yours.status"); return branchName != null - ? title + " (" + StringUtil.shortenTextWithEllipsis(branchName, 15, 7, true) + ")" + ? title + " (" + branchName + ")" : title; }