From 123d1b29be9ebf43d948d70d8889a28dd4952bb0 Mon Sep 17 00:00:00 2001 From: nik Date: Thu, 23 Nov 2017 12:15:44 +0300 Subject: [PATCH] project configuration: improve 'Convert to Repository Library' action Hide 'Synchronize' actions in 'Library Diff' dialog (it makes no sense because content of a repository library cannot be modified). --- .../ui/configuration/projectRoot/LibraryJarsDiffDialog.kt | 5 ++++- .../diff-api/src/com/intellij/ide/diff/DirDiffSettings.java | 2 ++ .../intellij/openapi/diff/impl/dir/DirDiffTableModel.java | 2 +- 3 files changed, 7 insertions(+), 2 deletions(-) diff --git a/java/idea-ui/src/com/intellij/openapi/roots/ui/configuration/projectRoot/LibraryJarsDiffDialog.kt b/java/idea-ui/src/com/intellij/openapi/roots/ui/configuration/projectRoot/LibraryJarsDiffDialog.kt index 467c21c92b6d..16c311674c88 100644 --- a/java/idea-ui/src/com/intellij/openapi/roots/ui/configuration/projectRoot/LibraryJarsDiffDialog.kt +++ b/java/idea-ui/src/com/intellij/openapi/roots/ui/configuration/projectRoot/LibraryJarsDiffDialog.kt @@ -48,7 +48,10 @@ class LibraryJarsDiffDialog(libraryFile: VirtualFile, setOKButtonText("Replace") val request: ContentDiffRequest = DiffRequestFactory.getInstance().createFromFiles(project, libraryFile, downloadedFile) panel = DiffManager.getInstance().createRequestPanel(project, disposable, window) - panel.putContextHints(DirDiffSettings.KEY, DirDiffSettings().apply { enableChoosers = false }) + panel.putContextHints(DirDiffSettings.KEY, DirDiffSettings().apply { + enableChoosers = false + enableOperations = false + }) panel.setRequest(request) init() } diff --git a/platform/diff-api/src/com/intellij/ide/diff/DirDiffSettings.java b/platform/diff-api/src/com/intellij/ide/diff/DirDiffSettings.java index 6d44531206c3..ea28119409b9 100644 --- a/platform/diff-api/src/com/intellij/ide/diff/DirDiffSettings.java +++ b/platform/diff-api/src/com/intellij/ide/diff/DirDiffSettings.java @@ -42,6 +42,8 @@ public class DirDiffSettings { public boolean showNewOnTarget = true; public boolean showCompareModes = true; public boolean enableChoosers = true; + /** If {@code true} it's allowed to synchronize the left and the right parts by copying and deleting files directly in the diff viewer */ + public boolean enableOperations = true; public CompareMode compareMode = CompareMode.CONTENT; public double compareTimestampAccuracy = 0; public CustomSourceChooser customSourceChooser; diff --git a/platform/diff-impl/src/com/intellij/openapi/diff/impl/dir/DirDiffTableModel.java b/platform/diff-impl/src/com/intellij/openapi/diff/impl/dir/DirDiffTableModel.java index 130ca9c1393b..f2fccfede9f3 100644 --- a/platform/diff-impl/src/com/intellij/openapi/diff/impl/dir/DirDiffTableModel.java +++ b/platform/diff-impl/src/com/intellij/openapi/diff/impl/dir/DirDiffTableModel.java @@ -177,7 +177,7 @@ public class DirDiffTableModel extends AbstractTableModel implements DirDiffMode } public boolean isOperationsEnabled() { - return !myDisposed && mySource.isOperationsEnabled() && myTarget.isOperationsEnabled(); + return !myDisposed && mySettings.enableOperations && mySource.isOperationsEnabled() && myTarget.isOperationsEnabled(); } public List getElements() {