Fixes source control remember tree collapsed state#89313
Merged
joaomoreno merged 7 commits intomicrosoft:masterfrom Nov 4, 2020
Merged
Fixes source control remember tree collapsed state#89313joaomoreno merged 7 commits intomicrosoft:masterfrom
joaomoreno merged 7 commits intomicrosoft:masterfrom
Conversation
jeanp413
commented
Jan 27, 2020
Comment on lines
-52
to
+56
| element = children[0]; | ||
|
|
||
| if (element.incompressible) { | ||
| let childElement: ICompressedTreeElement<T> = children[0]; | ||
| if (childElement.incompressible) { | ||
| break; | ||
| } | ||
| element = childElement; |
Contributor
Author
There was a problem hiding this comment.
|
This has been rotting for more than 8 months. |
joaomoreno
approved these changes
Nov 4, 2020
Member
joaomoreno
left a comment
There was a problem hiding this comment.
@jeanp413 Once again, fantastic work. Thanks a lot of keeping the changes up to date and for your patience! 🙏
Apart from the inline comments I found other issues:
- When using the tree view mode, new folders appeared as collapsed by default. For that reason I've changed the state to store collapsed folders, instead of expanded ones.
I've addressed my own feedback.
| const storageMode = this.storageService.get(`scm.viewMode`, StorageScope.WORKSPACE) as ViewModelMode; | ||
| let treeViewState: ITreeViewState | undefined; | ||
|
|
||
| const raw = this.storageService.get(`scm.viewState`, StorageScope.WORKSPACE); |
Member
There was a problem hiding this comment.
This breaks the scm.viewMode key. Let's keep each state in its separate key.
Comment on lines
-52
to
+56
| element = children[0]; | ||
|
|
||
| if (element.incompressible) { | ||
| let childElement: ICompressedTreeElement<T> = children[0]; | ||
| if (childElement.incompressible) { | ||
| break; | ||
| } | ||
| element = childElement; |
| configurationService.onDidChangeConfiguration(this.onDidChangeConfiguration, this, this.disposables); | ||
| this.onDidChangeConfiguration(); | ||
|
|
||
| this.disposables.add(this.tree.onDidChangeCollapseState(() => this.updateViewState())); |
Member
There was a problem hiding this comment.
This might be too expensive. We really only need to snapshot the view state whenever the view goes invisible or when the workbench shuts down.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to subscribe to this conversation on GitHub.
Already have an account?
Sign in.
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.

This PR fixes #89145