提交 f734680a 编写于 作者: J Johannes Rieken

migrate showActivity call

上级 f2be74a6
......@@ -6,7 +6,7 @@
'use strict';
import { localize } from 'vs/nls';
import { IDisposable, dispose, empty as EmptyDisposable } from 'vs/base/common/lifecycle';
import { IDisposable, dispose, empty as EmptyDisposable, OneDisposable } from 'vs/base/common/lifecycle';
import { VIEWLET_ID } from 'vs/workbench/parts/scm/common/scm';
import { ISCMService, ISCMProvider } from 'vs/workbench/services/scm/common/scm';
import { IActivityBarService, NumberBadge } from 'vs/workbench/services/activity/common/activityBarService';
......@@ -17,6 +17,7 @@ export class StatusUpdater implements IWorkbenchContribution {
static ID = 'vs.scm.statusUpdater';
private providerChangeDisposable: IDisposable = EmptyDisposable;
private badgeHandle = new OneDisposable();
private disposables: IDisposable[] = [];
constructor(
......@@ -25,6 +26,7 @@ export class StatusUpdater implements IWorkbenchContribution {
) {
this.scmService.onDidChangeProvider(this.setActiveProvider, this, this.disposables);
this.setActiveProvider(this.scmService.activeProvider);
this.disposables.push(this.badgeHandle);
}
getId(): string {
......@@ -40,9 +42,14 @@ export class StatusUpdater implements IWorkbenchContribution {
private update(): void {
const provider = this.scmService.activeProvider;
const count = provider ? provider.resources.reduce<number>((r, g) => r + g.resources.length, 0) : 0;
const badge = count > 0 ? new NumberBadge(count, num => localize('scmPendingChangesBadge', '{0} pending changes', num)) : null;
this.activityBarService.showActivity(VIEWLET_ID, badge, 'scm-viewlet-label');
if (count > 0) {
const badge = new NumberBadge(count, num => localize('scmPendingChangesBadge', '{0} pending changes', num));
this.badgeHandle.value = this.activityBarService.showActivity(VIEWLET_ID, badge, 'scm-viewlet-label');
} else {
this.badgeHandle.value = null;
}
}
dispose(): void {
......
......@@ -12,7 +12,7 @@ import { TPromise } from 'vs/base/common/winjs.base';
import { chain } from 'vs/base/common/event';
import { Throttler } from 'vs/base/common/async';
import { domEvent } from 'vs/base/browser/event';
import { IDisposable, dispose, empty as EmptyDisposable, OneDisposable } from 'vs/base/common/lifecycle';
import { IDisposable, dispose, empty as EmptyDisposable } from 'vs/base/common/lifecycle';
import { Builder, Dimension } from 'vs/base/browser/builder';
import { Viewlet } from 'vs/workbench/browser/viewlet';
import { append, $, toggleClass } from 'vs/base/browser/dom';
......@@ -156,7 +156,6 @@ export class SCMViewlet extends Viewlet {
private list: List<ISCMResourceGroup | ISCMResource>;
private menus: SCMMenus;
private providerChangeDisposable: IDisposable = EmptyDisposable;
private badgeHandle = new OneDisposable();
private disposables: IDisposable[] = [];
constructor(
......@@ -174,7 +173,7 @@ export class SCMViewlet extends Viewlet {
super(VIEWLET_ID, telemetryService);
this.menus = this.instantiationService.createInstance(SCMMenus);
this.disposables.push(this.menus, this.badgeHandle);
this.disposables.push(this.menus);
}
private setActiveProvider(activeProvider: ISCMProvider | undefined): void {
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册