Skip to content

Commit 01ef138

Browse files
Akos Kittakittaakos
Akos Kitta
authored andcommitted
ATL-551: Removed the _Advanced Mode_ toggle.
Signed-off-by: Akos Kitta <[email protected]>
1 parent 39b8a60 commit 01ef138

9 files changed

+23
-128
lines changed

Diff for: arduino-ide-extension/src/browser/arduino-commands.ts

-7
Original file line numberDiff line numberDiff line change
@@ -20,11 +20,4 @@ export namespace ArduinoCommands {
2020
id: 'arduino-open-boards-dialog'
2121
};
2222

23-
export const TOGGLE_ADVANCED_MODE: Command = {
24-
id: 'arduino-toggle-advanced-mode'
25-
};
26-
export const TOGGLE_ADVANCED_MODE_TOOLBAR: Command = {
27-
id: 'arduino-toggle-advanced-mode-toolbar'
28-
};
29-
3023
}

Diff for: arduino-ide-extension/src/browser/arduino-frontend-contribution.tsx

+9-29
Original file line numberDiff line numberDiff line change
@@ -269,12 +269,6 @@ export class ArduinoFrontendContribution implements FrontendApplicationContribut
269269
command: MonitorViewContribution.TOGGLE_SERIAL_MONITOR_TOOLBAR,
270270
tooltip: 'Serial Monitor'
271271
});
272-
registry.registerItem({
273-
id: ArduinoCommands.TOGGLE_ADVANCED_MODE.id,
274-
command: ArduinoCommands.TOGGLE_ADVANCED_MODE_TOOLBAR.id,
275-
tooltip: this.editorMode.proMode ? 'Switch to Classic Mode' : 'Switch to Advanced Mode',
276-
text: this.editorMode.proMode ? '$(toggle-on)' : '$(toggle-off)'
277-
});
278272
}
279273

280274
registerCommands(registry: CommandRegistry): void {
@@ -295,40 +289,26 @@ export class ArduinoFrontendContribution implements FrontendApplicationContribut
295289
}
296290
}
297291
});
298-
registry.registerCommand(ArduinoCommands.TOGGLE_ADVANCED_MODE, {
299-
isToggled: () => this.editorMode.proMode,
300-
execute: () => this.editorMode.toggleProMode()
301-
});
302-
registry.registerCommand(ArduinoCommands.TOGGLE_ADVANCED_MODE_TOOLBAR, {
303-
isVisible: widget => ArduinoToolbar.is(widget) && widget.side === 'right',
304-
isToggled: () => this.editorMode.proMode,
305-
execute: () => this.editorMode.toggleProMode()
306-
});
307292
}
308293

309294
registerMenus(registry: MenuModelRegistry) {
310-
if (!this.editorMode.proMode) {
311-
const menuId = (menuPath: string[]): string => {
312-
const index = menuPath.length - 1;
313-
const menuId = menuPath[index];
314-
return menuId;
315-
}
316-
registry.getMenu(MAIN_MENU_BAR).removeNode(menuId(MonacoMenus.SELECTION));
317-
registry.getMenu(MAIN_MENU_BAR).removeNode(menuId(EditorMainMenu.GO));
318-
registry.getMenu(MAIN_MENU_BAR).removeNode(menuId(TerminalMenus.TERMINAL));
319-
registry.getMenu(MAIN_MENU_BAR).removeNode(menuId(CommonMenus.VIEW));
295+
const menuId = (menuPath: string[]): string => {
296+
const index = menuPath.length - 1;
297+
const menuId = menuPath[index];
298+
return menuId;
320299
}
300+
registry.getMenu(MAIN_MENU_BAR).removeNode(menuId(MonacoMenus.SELECTION));
301+
registry.getMenu(MAIN_MENU_BAR).removeNode(menuId(EditorMainMenu.GO));
302+
registry.getMenu(MAIN_MENU_BAR).removeNode(menuId(TerminalMenus.TERMINAL));
303+
registry.getMenu(MAIN_MENU_BAR).removeNode(menuId(CommonMenus.VIEW));
304+
321305
registry.registerSubmenu(ArduinoMenus.SKETCH, 'Sketch');
322306
registry.registerSubmenu(ArduinoMenus.TOOLS, 'Tools');
323307
registry.registerMenuAction(ArduinoMenus.SKETCH__MAIN_GROUP, {
324308
commandId: ArduinoCommands.TOGGLE_COMPILE_FOR_DEBUG.id,
325309
label: 'Optimize for Debugging',
326310
order: '4'
327311
});
328-
registry.registerMenuAction(ArduinoMenus.HELP__CONTROL_GROUP, {
329-
commandId: ArduinoCommands.TOGGLE_ADVANCED_MODE.id,
330-
label: 'Advanced Mode'
331-
});
332312
}
333313

334314
protected async openSketchFiles(uri: URI): Promise<void> {

Diff for: arduino-ide-extension/src/browser/editor-mode.ts

+1-41
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,6 @@
11
import { injectable, inject } from 'inversify';
2-
import { ApplicationShell, FrontendApplicationContribution, FrontendApplication, Widget } from '@theia/core/lib/browser';
3-
import { EditorWidget } from '@theia/editor/lib/browser';
4-
import { OutputWidget } from '@theia/output/lib/browser/output-widget';
2+
import { FrontendApplicationContribution, FrontendApplication } from '@theia/core/lib/browser';
53
import { MainMenuManager } from '../common/main-menu-manager';
6-
import { BoardsListWidget } from './boards/boards-list-widget';
7-
import { LibraryListWidget } from './library/library-list-widget';
84

95
@injectable()
106
export class EditorMode implements FrontendApplicationContribution {
@@ -16,41 +12,6 @@ export class EditorMode implements FrontendApplicationContribution {
1612

1713
onStart(app: FrontendApplication): void {
1814
this.app = app;
19-
if (this.proMode) {
20-
// We use this CSS class on the body to modify the visibility of the close button for the editors and views.
21-
document.body.classList.add(EditorMode.PRO_MODE_KEY);
22-
}
23-
}
24-
25-
get proMode(): boolean {
26-
const value = window.localStorage.getItem(EditorMode.PRO_MODE_KEY);
27-
return value === 'true';
28-
}
29-
30-
async toggleProMode(): Promise<void> {
31-
const oldState = this.proMode;
32-
const inAdvancedMode = !oldState;
33-
window.localStorage.setItem(EditorMode.PRO_MODE_KEY, String(inAdvancedMode));
34-
if (!inAdvancedMode) {
35-
const { shell } = this.app;
36-
// Close all widgets that are neither editor nor `Output` / `Boards Manager` / `Library Manager`.
37-
for (const area of ['left', 'right', 'bottom', 'main'] as Array<ApplicationShell.Area>) {
38-
shell.closeTabs(area, title => !this.isInSimpleMode(title.owner));
39-
}
40-
}
41-
// `storeLayout` has a sync API but the implementation is async, we store the layout manually before we reload the page.
42-
// See: https://github.com/eclipse-theia/theia/issues/6579
43-
// XXX: hack instead of injecting the `ArduinoShellLayoutRestorer` we have to retrieve it from the application to avoid DI cycle.
44-
const layoutRestorer = (this.app as any).layoutRestorer as { storeLayoutAsync(app: FrontendApplication): Promise<void> };
45-
await layoutRestorer.storeLayoutAsync(this.app);
46-
window.location.reload(true);
47-
}
48-
49-
protected isInSimpleMode(widget: Widget): boolean {
50-
return widget instanceof EditorWidget
51-
|| widget instanceof OutputWidget
52-
|| widget instanceof BoardsListWidget
53-
|| widget instanceof LibraryListWidget;
5415
}
5516

5617
get compileForDebug(): boolean {
@@ -68,6 +29,5 @@ export class EditorMode implements FrontendApplicationContribution {
6829
}
6930

7031
export namespace EditorMode {
71-
export const PRO_MODE_KEY = 'arduino-advanced-mode';
7232
export const COMPILE_FOR_DEBUG_KEY = 'arduino-compile-for-debug';
7333
}

Diff for: arduino-ide-extension/src/browser/theia/core/application-shell.ts

+1-5
Original file line numberDiff line numberDiff line change
@@ -7,16 +7,12 @@ import { OutputWidget } from '@theia/output/lib/browser/output-widget';
77
import { ConnectionStatusService, ConnectionStatus } from '@theia/core/lib/browser/connection-status-service';
88
import { ApplicationShell as TheiaApplicationShell, Widget } from '@theia/core/lib/browser';
99
import { Sketch } from '../../../common/protocol';
10-
import { EditorMode } from '../../editor-mode';
1110
import { SaveAsSketch } from '../../contributions/save-as-sketch';
1211
import { SketchesServiceClientImpl } from '../../../common/protocol/sketches-service-client-impl';
1312

1413
@injectable()
1514
export class ApplicationShell extends TheiaApplicationShell {
1615

17-
@inject(EditorMode)
18-
protected readonly editorMode: EditorMode;
19-
2016
@inject(CommandService)
2117
protected readonly commandService: CommandService;
2218

@@ -34,7 +30,7 @@ export class ApplicationShell extends TheiaApplicationShell {
3430
if (widget instanceof OutputWidget) {
3531
widget.title.closable = false; // TODO: https://arduino.slack.com/archives/C01698YT7S4/p1598011990133700
3632
}
37-
if (!this.editorMode.proMode && widget instanceof EditorWidget) {
33+
if (widget instanceof EditorWidget) {
3834
// Make the editor un-closeable asynchronously.
3935
this.sketchesServiceClient.currentSketch().then(sketch => {
4036
if (sketch) {

Diff for: arduino-ide-extension/src/browser/theia/markers/problem-contribution.ts

+3-11
Original file line numberDiff line numberDiff line change
@@ -1,26 +1,18 @@
1-
import { inject, injectable } from 'inversify';
1+
import { injectable } from 'inversify';
22
import { KeybindingRegistry } from '@theia/core/lib/browser';
33
import { ProblemStat } from '@theia/markers/lib/browser/problem/problem-manager';
44
import { FrontendApplication } from '@theia/core/lib/browser/frontend-application';
55
import { ProblemContribution as TheiaProblemContribution } from '@theia/markers/lib/browser/problem/problem-contribution';
6-
import { EditorMode } from '../../editor-mode';
76

87
@injectable()
98
export class ProblemContribution extends TheiaProblemContribution {
109

11-
@inject(EditorMode)
12-
protected readonly editorMode: EditorMode;
13-
1410
async initializeLayout(app: FrontendApplication): Promise<void> {
15-
if (this.editorMode.proMode) {
16-
return super.initializeLayout(app);
17-
}
11+
// NOOP
1812
}
1913

2014
protected setStatusBarElement(problemStat: ProblemStat): void {
21-
if (this.editorMode.proMode) {
22-
super.setStatusBarElement(problemStat);
23-
}
15+
// NOOP
2416
}
2517

2618
registerKeybindings(keybindings: KeybindingRegistry): void {

Diff for: arduino-ide-extension/src/browser/theia/navigator/navigator-contribution.ts

+2-8
Original file line numberDiff line numberDiff line change
@@ -1,20 +1,14 @@
1-
import { injectable, inject } from 'inversify';
1+
import { injectable } from 'inversify';
22
import { WorkspaceCommands } from '@theia/workspace/lib/browser/workspace-commands';
33
import { KeybindingRegistry } from '@theia/core/lib/browser/keybinding';
44
import { FrontendApplication } from '@theia/core/lib/browser/frontend-application';
55
import { FileNavigatorContribution as TheiaFileNavigatorContribution } from '@theia/navigator/lib/browser/navigator-contribution';
6-
import { EditorMode } from '../../editor-mode';
76

87
@injectable()
98
export class FileNavigatorContribution extends TheiaFileNavigatorContribution {
109

11-
@inject(EditorMode)
12-
protected readonly editorMode: EditorMode;
13-
1410
async initializeLayout(app: FrontendApplication): Promise<void> {
15-
if (this.editorMode.proMode) {
16-
return super.initializeLayout(app);
17-
}
11+
// NOOP
1812
}
1913

2014
registerKeybindings(registry: KeybindingRegistry): void {

Diff for: arduino-ide-extension/src/browser/theia/outline/outline-contribution.ts

+2-8
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,10 @@
1-
import { injectable, inject } from 'inversify';
1+
import { injectable } from 'inversify';
22
import { FrontendApplication } from '@theia/core/lib/browser/frontend-application';
33
import { OutlineViewContribution as TheiaOutlineViewContribution } from '@theia/outline-view/lib/browser/outline-view-contribution';
4-
import { EditorMode } from '../../editor-mode';
54

65
@injectable()
76
export class OutlineViewContribution extends TheiaOutlineViewContribution {
87

9-
@inject(EditorMode)
10-
protected readonly editorMode: EditorMode;
11-
128
constructor() {
139
super();
1410
this.options.defaultWidgetOptions = {
@@ -18,9 +14,7 @@ export class OutlineViewContribution extends TheiaOutlineViewContribution {
1814
}
1915

2016
async initializeLayout(app: FrontendApplication): Promise<void> {
21-
if (this.editorMode.proMode) {
22-
return super.initializeLayout(app);
23-
}
17+
// NOOP
2418
}
2519

2620
}
Original file line numberDiff line numberDiff line change
@@ -1,24 +1,16 @@
1-
import { inject, injectable } from 'inversify';
1+
import { injectable } from 'inversify';
22
import { ScmContribution as TheiaScmContribution } from '@theia/scm/lib/browser/scm-contribution';
33
import { StatusBarEntry } from '@theia/core/lib/browser/status-bar/status-bar';
4-
import { EditorMode } from '../../editor-mode';
54

65
@injectable()
76
export class ScmContribution extends TheiaScmContribution {
87

9-
@inject(EditorMode)
10-
protected readonly editorMode: EditorMode;
11-
128
async initializeLayout(): Promise<void> {
13-
if (this.editorMode.proMode) {
14-
return super.initializeLayout();
15-
}
9+
// NOOP
1610
}
1711

1812
protected setStatusBarEntry(id: string, entry: StatusBarEntry): void {
19-
if (this.editorMode.proMode) {
20-
super.setStatusBarEntry(id, entry);
21-
}
13+
// NOOP
2214
}
2315

2416
}

Diff for: arduino-ide-extension/src/browser/theia/search-in-workspace/search-in-workspace-frontend-contribution.ts

+2-8
Original file line numberDiff line numberDiff line change
@@ -1,20 +1,14 @@
1-
import { inject, injectable } from 'inversify';
1+
import { injectable } from 'inversify';
22
import { MenuModelRegistry } from '@theia/core/lib/common/menu';
33
import { KeybindingRegistry } from '@theia/core/lib/browser/keybinding';
44
import { FrontendApplication } from '@theia/core/lib/browser/frontend-application';
55
import { SearchInWorkspaceFrontendContribution as TheiaSearchInWorkspaceFrontendContribution, SearchInWorkspaceCommands } from '@theia/search-in-workspace/lib/browser/search-in-workspace-frontend-contribution';
6-
import { EditorMode } from '../../editor-mode';
76

87
@injectable()
98
export class SearchInWorkspaceFrontendContribution extends TheiaSearchInWorkspaceFrontendContribution {
109

11-
@inject(EditorMode)
12-
protected readonly editorMode: EditorMode;
13-
1410
async initializeLayout(app: FrontendApplication): Promise<void> {
15-
if (this.editorMode.proMode) {
16-
return super.initializeLayout(app);
17-
}
11+
// NOOP
1812
}
1913

2014
registerMenus(registry: MenuModelRegistry): void {

0 commit comments

Comments
 (0)