diff --git a/plugins/git4idea/src/git4idea/GitVcs.java b/plugins/git4idea/src/git4idea/GitVcs.java index e4fffdff6da5..4f69c496b5c5 100644 --- a/plugins/git4idea/src/git4idea/GitVcs.java +++ b/plugins/git4idea/src/git4idea/GitVcs.java @@ -207,6 +207,11 @@ public class GitVcs extends AbstractVcs { * The reference tracker */ private GitReferenceTracker myReferenceTracker; + /** + * If true, the vcs was activated + */ + private boolean isActivated; + public static GitVcs getInstance(@NotNull Project project) { return (GitVcs)ProjectLevelVcsManager.getInstance(project).findVcsByName(NAME); @@ -496,6 +501,7 @@ public class GitVcs extends AbstractVcs { */ @Override protected void activate() { + isActivated = true; if (!myProject.isDefault() && myRootTracker == null) { myRootTracker = new GitRootTracker(this, myProject, myRootListeners.getMulticaster()); } @@ -519,6 +525,7 @@ public class GitVcs extends AbstractVcs { */ @Override protected void deactivate() { + isActivated = false; GitBranchConfigurations.getInstance(myProject).deactivate(); if (myRootTracker != null) { myRootTracker.dispose(); @@ -768,4 +775,11 @@ public class GitVcs extends AbstractVcs { final VirtualFile vcsRoot = GitUtil.getGitRoot(file); return GitChangeUtils.getRevisionChanges(project, vcsRoot, revision.getRevisionNumber().asString(), false); } + + /** + * @return true if vcs was activated + */ + public boolean isActivated() { + return isActivated; + } } diff --git a/plugins/git4idea/src/git4idea/checkout/branches/GitBranchConfigurations.java b/plugins/git4idea/src/git4idea/checkout/branches/GitBranchConfigurations.java index 35cdcb832a12..ef2bc44d9d85 100644 --- a/plugins/git4idea/src/git4idea/checkout/branches/GitBranchConfigurations.java +++ b/plugins/git4idea/src/git4idea/checkout/branches/GitBranchConfigurations.java @@ -49,6 +49,7 @@ import git4idea.vfs.GitReferenceListener; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; +import javax.swing.*; import java.util.*; /** @@ -147,6 +148,10 @@ public class GitBranchConfigurations implements PersistentStateComponent cs = new ArrayList(myConfigurations.size()); for (GitBranchConfiguration ci : myConfigurations.values()) { @@ -363,9 +389,54 @@ public class GitBranchConfigurations implements PersistentStateComponent
- + @@ -10,107 +10,150 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + - + - + + + - + - + + + + + + - + - - - - - - - - - - + - + - + + + + + + + + + + + + + + + + + + + + - + - + - + - + + + + + + - + + - + - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/plugins/git4idea/src/git4idea/config/GitVcsPanel.java b/plugins/git4idea/src/git4idea/config/GitVcsPanel.java index 128a0d4cb5be..8e5bbf8e5b57 100644 --- a/plugins/git4idea/src/git4idea/config/GitVcsPanel.java +++ b/plugins/git4idea/src/git4idea/config/GitVcsPanel.java @@ -22,6 +22,7 @@ import com.intellij.openapi.ui.Messages; import com.intellij.openapi.ui.TextFieldWithBrowseButton; import com.intellij.openapi.vcs.VcsException; import git4idea.GitVcs; +import git4idea.checkout.branches.GitBranchConfigurations; import git4idea.i18n.GitBundle; import org.jetbrains.annotations.NotNull; @@ -57,6 +58,10 @@ public class GitVcsPanel { * The confirmation checkbox */ private JCheckBox myAskBeforeConversionsCheckBox; + /** + * The if selected, the branches widget is enabled in the status bar + */ + private JCheckBox myEnableBranchesWidgetCheckBox; /** * The project */ @@ -107,6 +112,7 @@ public class GitVcsPanel { myConvertTextFilesComboBox.setSelectedItem(CRLF_CONVERT_TO_PROJECT); myGitField.addBrowseFolderListener(GitBundle.getString("find.git.title"), GitBundle.getString("find.git.description"), project, new FileChooserDescriptor(true, false, false, false, false, false)); + myEnableBranchesWidgetCheckBox.setSelected(GitBranchConfigurations.getInstance(myProject).isWidgetEnabled()); } /** @@ -148,6 +154,7 @@ public class GitVcsPanel { mySSHExecutableComboBox.setSelectedItem(settings.isIdeaSsh() ? IDEA_SSH : NATIVE_SSH); myAskBeforeConversionsCheckBox.setSelected(settings.askBeforeLineSeparatorConversion()); myConvertTextFilesComboBox.setSelectedItem(crlfPolicyItem(settings)); + myEnableBranchesWidgetCheckBox.setSelected(GitBranchConfigurations.getInstance(myProject).isWidgetEnabled()); } /** @@ -181,7 +188,8 @@ public class GitVcsPanel { return !settings.getGitExecutable().equals(myGitField.getText()) || (settings.isIdeaSsh() != IDEA_SSH.equals(mySSHExecutableComboBox.getSelectedItem())) || !crlfPolicyItem(settings).equals(myConvertTextFilesComboBox.getSelectedItem()) || - settings.askBeforeLineSeparatorConversion() != myAskBeforeConversionsCheckBox.isSelected(); + settings.askBeforeLineSeparatorConversion() != myAskBeforeConversionsCheckBox.isSelected() || + GitBranchConfigurations.getInstance(myProject).isWidgetEnabled() != myEnableBranchesWidgetCheckBox.isSelected(); } /** @@ -205,5 +213,6 @@ public class GitVcsPanel { } settings.setLineSeparatorsConversion(conversionPolicy); settings.setAskBeforeLineSeparatorConversion(myAskBeforeConversionsCheckBox.isSelected()); + GitBranchConfigurations.getInstance(myProject).setWidgetEnabled(myEnableBranchesWidgetCheckBox.isSelected()); } }