提交 4d255172 编写于 作者: P Pine Wu

Open viewlet/switch to default viewlet when toggling extension

上级 06b82f52
......@@ -129,6 +129,8 @@ export class ActivitybarPart extends Part implements IActivityService {
const index = Object.keys(this.compositeIdToActions).indexOf(viewletId);
const action = this.compositeIdToActions[viewletId];
const actionItem = this.activityActionItems[action.id];
delete this.compositeIdToActions[viewletId];
delete this.activityActionItems[action.id];
action.dispose();
actionItem.dispose();
this.viewletSwitcherBar.pull(index);
......
......@@ -8,6 +8,7 @@ import { localize } from 'vs/nls';
import { TPromise } from 'vs/base/common/winjs.base';
import { Registry } from 'vs/platform/platform';
import { IWorkbenchActionRegistry, Extensions as ActionExtensions } from 'vs/workbench/common/actionRegistry';
import { ViewletRegistry, Extensions as ViewletExtensions } from 'vs/workbench/browser/viewlet';
import { SyncActionDescriptor } from 'vs/platform/actions/common/actions';
import { Action } from 'vs/base/common/actions';
import { IQuickOpenService, IPickOpenEntry } from 'vs/workbench/services/quickopen/common/quickOpenService';
......@@ -39,16 +40,24 @@ export class ToggleExtViewletAction extends Action {
const actionLabel = isEnabled ? localize('disable', 'Disable') : localize('enable', 'Enable');
picks.push({
id: viewlet.id,
label: `${actionLabel} ${viewlet.name}`
label: `${actionLabel} ${viewlet.name}`,
run: () => {
this.viewletService.toggleViewlet(viewlet.id).then(() => {
if (isEnabled) {
// To disable, so open default viewlet
const defaultViewletId = (<ViewletRegistry>Registry.as(ViewletExtensions.Viewlets)).getDefaultViewletId();
this.viewletService.openViewlet(defaultViewletId);
} else {
// To enable, so open the viewlet to be enabled
this.viewletService.openViewlet(viewlet.id);
}
});
}
});
});
return TPromise.timeout(50 /* quick open is sensitive to being opened so soon after another */).then(() => {
this.quickOpenService.pick(picks, { placeHolder: 'Select Custom Explorer to toggle' }).then(pick => {
if (pick) {
this.viewletService.toggleViewlet(pick.id);
}
});
this.quickOpenService.pick(picks, { placeHolder: 'Select Custom Explorer to toggle' }).done();
});
}
}
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册