mirror of
https://github.com/ckaczor/azuredatastudio.git
synced 2026-02-16 18:46:40 -05:00
Set tab color default off and add config for fill/border (#452)
This commit is contained in:
@@ -29,6 +29,7 @@ import * as TelemetryUtils from 'sql/common/telemetryUtilities';
|
|||||||
import { warn } from 'sql/base/common/log';
|
import { warn } from 'sql/base/common/log';
|
||||||
import { IResourceProviderService } from 'sql/parts/accountManagement/common/interfaces';
|
import { IResourceProviderService } from 'sql/parts/accountManagement/common/interfaces';
|
||||||
import { IAngularEventingService, AngularEventType } from 'sql/services/angularEventing/angularEventingService';
|
import { IAngularEventingService, AngularEventType } from 'sql/services/angularEventing/angularEventingService';
|
||||||
|
import * as QueryConstants from 'sql/parts/query/common/constants';
|
||||||
|
|
||||||
import * as data from 'data';
|
import * as data from 'data';
|
||||||
|
|
||||||
@@ -1331,7 +1332,7 @@ export class ConnectionManagementService implements IConnectionManagementService
|
|||||||
}
|
}
|
||||||
|
|
||||||
public getTabColorForUri(uri: string): string {
|
public getTabColorForUri(uri: string): string {
|
||||||
if (!WorkbenchUtils.getSqlConfigValue<string>(this._workspaceConfigurationService, 'enableTabColors')) {
|
if (WorkbenchUtils.getSqlConfigValue<string>(this._workspaceConfigurationService, 'tabColorMode') === QueryConstants.tabColorModeOff) {
|
||||||
return undefined;
|
return undefined;
|
||||||
}
|
}
|
||||||
let connectionProfile = this.getConnectionProfile(uri);
|
let connectionProfile = this.getConnectionProfile(uri);
|
||||||
|
|||||||
@@ -10,3 +10,6 @@ export const configShowBatchTime = 'showBatchTime';
|
|||||||
export const querySection = 'query';
|
export const querySection = 'query';
|
||||||
export const shortcutStart = 'shortcut';
|
export const shortcutStart = 'shortcut';
|
||||||
|
|
||||||
|
export const tabColorModeOff = 'off';
|
||||||
|
export const tabColorModeBorder = 'border';
|
||||||
|
export const tabColorModeFill = 'fill';
|
||||||
|
|||||||
@@ -31,6 +31,7 @@ import * as gridActions from 'sql/parts/grid/views/gridActions';
|
|||||||
import * as gridCommands from 'sql/parts/grid/views/gridCommands';
|
import * as gridCommands from 'sql/parts/grid/views/gridCommands';
|
||||||
import { QueryPlanEditor } from 'sql/parts/queryPlan/queryPlanEditor';
|
import { QueryPlanEditor } from 'sql/parts/queryPlan/queryPlanEditor';
|
||||||
import { QueryPlanInput } from 'sql/parts/queryPlan/queryPlanInput';
|
import { QueryPlanInput } from 'sql/parts/queryPlan/queryPlanInput';
|
||||||
|
import * as Constants from 'sql/parts/query/common/constants';
|
||||||
import { localize } from 'vs/nls';
|
import { localize } from 'vs/nls';
|
||||||
|
|
||||||
const gridCommandsWeightBonus = 100; // give our commands a little bit more weight over other default list/tree commands
|
const gridCommandsWeightBonus = 100; // give our commands a little bit more weight over other default list/tree commands
|
||||||
@@ -240,10 +241,16 @@ let registryProperties = {
|
|||||||
'description': localize('sql.showBatchTime', '[Optional] Should execution time be shown for individual batches'),
|
'description': localize('sql.showBatchTime', '[Optional] Should execution time be shown for individual batches'),
|
||||||
'default': false
|
'default': false
|
||||||
},
|
},
|
||||||
'sql.enableTabColors': {
|
'sql.tabColorMode': {
|
||||||
'type': 'boolean',
|
'type': 'string',
|
||||||
'description': localize('sql.enableTabColors', 'True to color tabs based on the server group of their active connection, false otherwise'),
|
'enum': [Constants.tabColorModeOff, Constants.tabColorModeBorder, Constants.tabColorModeFill],
|
||||||
'default': true
|
'enumDescriptions': [
|
||||||
|
localize('tabColorMode.off', "Tab coloring will be disabled"),
|
||||||
|
localize('tabColorMode.border', "The top border of each editor tab will be colored to match the relevant server group"),
|
||||||
|
localize('tabColorMode.fill', "Each editor tab's background color will match the relevant server group"),
|
||||||
|
],
|
||||||
|
'default': Constants.tabColorModeOff,
|
||||||
|
'description': localize('tabColorMode', "Controls how to color tabs based on the server group of their active connection")
|
||||||
},
|
},
|
||||||
'mssql.intelliSense.enableIntelliSense': {
|
'mssql.intelliSense.enableIntelliSense': {
|
||||||
'type': 'boolean',
|
'type': 'boolean',
|
||||||
|
|||||||
@@ -774,7 +774,7 @@ suite('SQL ConnectionManagementService tests', () => {
|
|||||||
|
|
||||||
test('getTabColorForUri returns the group color corresponding to the connection for a URI', done => {
|
test('getTabColorForUri returns the group color corresponding to the connection for a URI', done => {
|
||||||
// Set up the connection store to give back a group for the expected connection profile
|
// Set up the connection store to give back a group for the expected connection profile
|
||||||
configResult['enableTabColors'] = true;
|
configResult['tabColorMode'] = 'border';
|
||||||
let expectedColor = 'red';
|
let expectedColor = 'red';
|
||||||
connectionStore.setup(x => x.getGroupFromId(connectionProfile.groupId)).returns(() => <IConnectionProfileGroup> {
|
connectionStore.setup(x => x.getGroupFromId(connectionProfile.groupId)).returns(() => <IConnectionProfileGroup> {
|
||||||
color: expectedColor
|
color: expectedColor
|
||||||
|
|||||||
@@ -47,6 +47,9 @@ import { IWorkspacesService } from 'vs/platform/workspaces/common/workspaces';
|
|||||||
|
|
||||||
// {{SQL CARBON EDIT}} -- Display the editor's tab color
|
// {{SQL CARBON EDIT}} -- Display the editor's tab color
|
||||||
import { Color } from 'vs/base/common/color';
|
import { Color } from 'vs/base/common/color';
|
||||||
|
import { IWorkspaceConfigurationService } from 'vs/workbench/services/configuration/common/configuration';
|
||||||
|
import * as QueryConstants from 'sql/parts/query/common/constants';
|
||||||
|
import * as WorkbenchUtils from 'sql/workbench/common/sqlWorkbenchUtils';
|
||||||
|
|
||||||
interface IEditorInputLabel {
|
interface IEditorInputLabel {
|
||||||
name: string;
|
name: string;
|
||||||
@@ -80,7 +83,9 @@ export class TabsTitleControl extends TitleControl {
|
|||||||
@IWindowsService private windowsService: IWindowsService,
|
@IWindowsService private windowsService: IWindowsService,
|
||||||
@IThemeService themeService: IThemeService,
|
@IThemeService themeService: IThemeService,
|
||||||
@IFileService private fileService: IFileService,
|
@IFileService private fileService: IFileService,
|
||||||
@IWorkspacesService private workspacesService: IWorkspacesService
|
@IWorkspacesService private workspacesService: IWorkspacesService,
|
||||||
|
// {{SQL CARBON EDIT}} -- Display the editor's tab color
|
||||||
|
@IWorkspaceConfigurationService private workspaceConfigurationService: IWorkspaceConfigurationService
|
||||||
) {
|
) {
|
||||||
super(contextMenuService, instantiationService, editorService, editorGroupService, contextKeyService, keybindingService, telemetryService, messageService, menuService, quickOpenService, themeService);
|
super(contextMenuService, instantiationService, editorService, editorGroupService, contextKeyService, keybindingService, telemetryService, messageService, menuService, quickOpenService, themeService);
|
||||||
|
|
||||||
@@ -866,16 +871,20 @@ export class TabsTitleControl extends TitleControl {
|
|||||||
// {{SQL CARBON EDIT}} -- Display the editor's tab color
|
// {{SQL CARBON EDIT}} -- Display the editor's tab color
|
||||||
private setEditorTabColor(editor: IEditorInput, tabContainer: HTMLElement, isTabActive: boolean) {
|
private setEditorTabColor(editor: IEditorInput, tabContainer: HTMLElement, isTabActive: boolean) {
|
||||||
let sqlEditor = editor as any;
|
let sqlEditor = editor as any;
|
||||||
if (sqlEditor.tabColor && this.themeService.getTheme().type !== HIGH_CONTRAST) {
|
let tabColorMode = WorkbenchUtils.getSqlConfigValue<string>(this.workspaceConfigurationService, 'tabColorMode');
|
||||||
tabContainer.style.borderTopColor = sqlEditor.tabColor;
|
if (tabColorMode === QueryConstants.tabColorModeOff || (tabColorMode !== QueryConstants.tabColorModeBorder && tabColorMode !== QueryConstants.tabColorModeFill)
|
||||||
tabContainer.style.borderTopWidth = isTabActive ? '2px' : '1px';
|
|| this.themeService.getTheme().type === HIGH_CONTRAST || !sqlEditor.tabColor) {
|
||||||
let backgroundColor = Color.Format.CSS.parseHex(sqlEditor.tabColor);
|
|
||||||
if (backgroundColor) {
|
|
||||||
tabContainer.style.backgroundColor = backgroundColor.transparent(isTabActive ? 0.3 : 0.2).toString();
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
tabContainer.style.borderTopColor = '';
|
tabContainer.style.borderTopColor = '';
|
||||||
tabContainer.style.borderTopWidth = '';
|
tabContainer.style.borderTopWidth = '';
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
tabContainer.style.borderTopColor = sqlEditor.tabColor;
|
||||||
|
tabContainer.style.borderTopWidth = isTabActive ? '3px' : '2px';
|
||||||
|
if (tabColorMode === QueryConstants.tabColorModeFill) {
|
||||||
|
let backgroundColor = Color.Format.CSS.parseHex(sqlEditor.tabColor);
|
||||||
|
if (backgroundColor) {
|
||||||
|
tabContainer.style.backgroundColor = backgroundColor.transparent(isTabActive ? 0.5 : 0.2).toString();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user