mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-27 10:03:11 +07:00
vcs: fix "Preview Diff" state in Local Changes
* remove unnecessary inner state, that could differ from the real one
This commit is contained in:
@@ -73,7 +73,6 @@ import java.awt.event.KeyEvent;
|
||||
import java.util.Collection;
|
||||
import java.util.List;
|
||||
|
||||
import static com.intellij.util.ObjectUtils.assertNotNull;
|
||||
import static java.util.stream.Collectors.toList;
|
||||
|
||||
@State(
|
||||
@@ -83,7 +82,7 @@ import static java.util.stream.Collectors.toList;
|
||||
public class ChangesViewManager implements ChangesViewI, ProjectComponent, PersistentStateComponent<ChangesViewManager.State> {
|
||||
|
||||
private static final Logger LOG = Logger.getInstance("#com.intellij.openapi.vcs.changes.ChangesViewManager");
|
||||
public static final String CHANGES_VIEW_PREVIEW_SPLITTER_PROPORTION = "ChangesViewManager.DETAILS_SPLITTER_PROPORTION";
|
||||
private static final String CHANGES_VIEW_PREVIEW_SPLITTER_PROPORTION = "ChangesViewManager.DETAILS_SPLITTER_PROPORTION";
|
||||
|
||||
@NotNull private final ChangesListView myView;
|
||||
private JPanel myProgressLabel;
|
||||
@@ -478,10 +477,14 @@ public class ChangesViewManager implements ChangesViewI, ProjectComponent, Persi
|
||||
private class ToggleDetailsAction extends ShowDiffPreviewAction {
|
||||
@Override
|
||||
public void setSelected(AnActionEvent e, boolean state) {
|
||||
super.setSelected(e, state);
|
||||
assertNotNull(mySplitterComponent).setDetailsOn(state);
|
||||
mySplitterComponent.setDetailsOn(state);
|
||||
VcsConfiguration.getInstance(myProject).LOCAL_CHANGES_DETAILS_PREVIEW_SHOWN = state;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean isSelected(AnActionEvent e) {
|
||||
return VcsConfiguration.getInstance(myProject).LOCAL_CHANGES_DETAILS_PREVIEW_SHOWN;
|
||||
}
|
||||
}
|
||||
|
||||
private class MyChangeProcessor extends ChangeViewDiffRequestProcessor {
|
||||
|
||||
-13
@@ -16,24 +16,11 @@
|
||||
package com.intellij.openapi.vcs.changes.actions;
|
||||
|
||||
import com.intellij.icons.AllIcons;
|
||||
import com.intellij.openapi.actionSystem.AnActionEvent;
|
||||
import com.intellij.openapi.actionSystem.ToggleAction;
|
||||
import com.intellij.openapi.project.DumbAware;
|
||||
|
||||
public abstract class ShowDiffPreviewAction extends ToggleAction implements DumbAware {
|
||||
private boolean myState;
|
||||
|
||||
public ShowDiffPreviewAction() {
|
||||
super("Preview Diff", null, AllIcons.Actions.DiffPreview);
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean isSelected(AnActionEvent e) {
|
||||
return myState;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void setSelected(AnActionEvent e, boolean state) {
|
||||
myState = state;
|
||||
}
|
||||
}
|
||||
|
||||
+17
-13
@@ -108,6 +108,7 @@ public class ShelvedChangesViewManager implements ProjectComponent {
|
||||
|
||||
private static final Logger LOG = Logger.getInstance(ShelvedChangesViewManager.class);
|
||||
@NonNls static final String SHELF_CONTEXT_MENU = "Vcs.Shelf.ContextMenu";
|
||||
private static final String SHELVE_PREVIEW_SPLITTER_PROPORTION = "ShelvedChangesViewManager.DETAILS_SPLITTER_PROPORTION";
|
||||
|
||||
private final ChangesViewContentManager myContentManager;
|
||||
private final ShelveChangesManager myShelveChangesManager;
|
||||
@@ -247,21 +248,11 @@ public class ShelvedChangesViewManager implements ProjectComponent {
|
||||
|
||||
DefaultActionGroup actionGroup = new DefaultActionGroup();
|
||||
actionGroup.addAll((ActionGroup)ActionManager.getInstance().getAction("ShelvedChangesToolbar"));
|
||||
ShowDiffPreviewAction diffPreviewAction = new ShowDiffPreviewAction() {
|
||||
@Override
|
||||
public void setSelected(AnActionEvent e, boolean state) {
|
||||
super.setSelected(e, state);
|
||||
assertNotNull(mySplitterComponent).setDetailsOn(state);
|
||||
VcsConfiguration.getInstance(myProject).SHELVE_DETAILS_PREVIEW_SHOWN = state;
|
||||
}
|
||||
};
|
||||
actionGroup.add(diffPreviewAction, new Constraints(AFTER, "ShelvedChanges.ShowHideDeleted"));
|
||||
actionGroup.add(new MyToggleDetailsAction(), new Constraints(AFTER, "ShelvedChanges.ShowHideDeleted"));
|
||||
|
||||
MyShelvedPreviewProcessor changeProcessor = new MyShelvedPreviewProcessor(myProject);
|
||||
mySplitterComponent =
|
||||
new PreviewDiffSplitterComponent(pane, changeProcessor, "ShelvedChangesViewManager.DETAILS_SPLITTER_PROPORTION",
|
||||
VcsConfiguration.getInstance(myProject).SHELVE_DETAILS_PREVIEW_SHOWN);
|
||||
diffPreviewAction.setSelected(null, mySplitterComponent.isDetailsOn());
|
||||
mySplitterComponent = new PreviewDiffSplitterComponent(pane, changeProcessor, SHELVE_PREVIEW_SPLITTER_PROPORTION,
|
||||
VcsConfiguration.getInstance(myProject).SHELVE_DETAILS_PREVIEW_SHOWN);
|
||||
ActionToolbar toolbar = ActionManager.getInstance().createActionToolbar("ShelvedChanges", actionGroup, false);
|
||||
|
||||
JPanel rootPanel = new JPanel(new BorderLayout());
|
||||
@@ -742,6 +733,19 @@ public class ShelvedChangesViewManager implements ProjectComponent {
|
||||
return new DnDImage(image, new Point(-image.getWidth(null), -image.getHeight(null)));
|
||||
}
|
||||
|
||||
private class MyToggleDetailsAction extends ShowDiffPreviewAction {
|
||||
@Override
|
||||
public void setSelected(AnActionEvent e, boolean state) {
|
||||
mySplitterComponent.setDetailsOn(state);
|
||||
VcsConfiguration.getInstance(myProject).SHELVE_DETAILS_PREVIEW_SHOWN = state;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean isSelected(AnActionEvent e) {
|
||||
return VcsConfiguration.getInstance(myProject).SHELVE_DETAILS_PREVIEW_SHOWN;
|
||||
}
|
||||
}
|
||||
|
||||
private class MyShelvedPreviewProcessor extends CacheDiffRequestProcessor<ShelvedWrapper> implements DiffPreviewUpdateProcessor {
|
||||
|
||||
@NotNull private final DiffShelvedChangesActionProvider.PatchesPreloader myPreloader;
|
||||
|
||||
Reference in New Issue
Block a user