mirror of
https://github.com/arduino/arduino-ide.git
synced 2025-07-13 06:16:33 +00:00
Merge pull request #53 from bcmi-labs/PROEDITOR-27
PROEDITOR-27: Try to preserve the window.
This commit is contained in:
commit
b24d440e22
@ -39,11 +39,11 @@
|
|||||||
"editor.autoSave": "on"
|
"editor.autoSave": "on"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
},
|
||||||
},
|
"generator": {
|
||||||
"generator": {
|
"config": {
|
||||||
"config": {
|
"preloadTemplate": "<div class='theia-preload' style='background-color: rgb(237, 241, 242);'></div>"
|
||||||
"preloadTemplate": "<div class='theia-preload' style='background-color: rgb(237, 241, 242);'></div>"
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
@ -19,7 +19,7 @@ import { WorkspaceService } from '@theia/workspace/lib/browser/workspace-service
|
|||||||
import { SketchFactory } from './sketch-factory';
|
import { SketchFactory } from './sketch-factory';
|
||||||
import { ArduinoToolbar } from './toolbar/arduino-toolbar';
|
import { ArduinoToolbar } from './toolbar/arduino-toolbar';
|
||||||
import { EditorManager, EditorMainMenu } from '@theia/editor/lib/browser';
|
import { EditorManager, EditorMainMenu } from '@theia/editor/lib/browser';
|
||||||
import { ContextMenuRenderer, OpenerService, Widget, StatusBar, ShellLayoutRestorer, StatusBarAlignment } from '@theia/core/lib/browser';
|
import { ContextMenuRenderer, OpenerService, Widget, StatusBar, ShellLayoutRestorer, StatusBarAlignment, LabelProvider } from '@theia/core/lib/browser';
|
||||||
import { OpenFileDialogProps, FileDialogService } from '@theia/filesystem/lib/browser/file-dialog';
|
import { OpenFileDialogProps, FileDialogService } from '@theia/filesystem/lib/browser/file-dialog';
|
||||||
import { FileSystem, FileStat } from '@theia/filesystem/lib/common';
|
import { FileSystem, FileStat } from '@theia/filesystem/lib/common';
|
||||||
import { ArduinoToolbarContextMenu } from './arduino-file-menu';
|
import { ArduinoToolbarContextMenu } from './arduino-file-menu';
|
||||||
@ -113,6 +113,9 @@ export class ArduinoFrontendContribution implements TabBarToolbarContribution, C
|
|||||||
@inject(ShellLayoutRestorer)
|
@inject(ShellLayoutRestorer)
|
||||||
protected readonly layoutRestorer: ShellLayoutRestorer;
|
protected readonly layoutRestorer: ShellLayoutRestorer;
|
||||||
|
|
||||||
|
@inject(LabelProvider)
|
||||||
|
protected readonly labelProvider: LabelProvider;
|
||||||
|
|
||||||
protected boardsToolbarItem: BoardsToolBarItem | null;
|
protected boardsToolbarItem: BoardsToolBarItem | null;
|
||||||
protected wsSketchCount: number = 0;
|
protected wsSketchCount: number = 0;
|
||||||
|
|
||||||
@ -375,9 +378,21 @@ export class ArduinoFrontendContribution implements TabBarToolbarContribution, C
|
|||||||
}
|
}
|
||||||
|
|
||||||
protected async openSketchFilesInNewWindow(uri: string) {
|
protected async openSketchFilesInNewWindow(uri: string) {
|
||||||
const location = new URL(window.location.href);
|
const url = new URL(window.location.href);
|
||||||
location.searchParams.set('sketch', uri);
|
const currentSketch = url.searchParams.get('sketch');
|
||||||
this.windowService.openNewWindow(location.toString());
|
// Nothing to do if we want to open the same sketch which is already opened.
|
||||||
|
if (!!currentSketch && new URI(currentSketch).toString() === new URI(uri).toString()) {
|
||||||
|
this.messageService.info(`The '${this.labelProvider.getLongName(new URI(uri))}' is already opened.`);
|
||||||
|
// NOOP.
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
// Preserve the current window if the `sketch` is not in the `searchParams`.
|
||||||
|
url.searchParams.set('sketch', uri);
|
||||||
|
if (!currentSketch) {
|
||||||
|
setTimeout(() => window.location.href = url.toString(), 100);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
this.windowService.openNewWindow(url.toString());
|
||||||
}
|
}
|
||||||
|
|
||||||
async openSketchFiles(uri: string) {
|
async openSketchFiles(uri: string) {
|
||||||
|
@ -66,7 +66,7 @@
|
|||||||
//-------------------------------------------------------------------------------------------------+
|
//-------------------------------------------------------------------------------------------------+
|
||||||
// Rebuild the extension with the copied `yarn.lock`. It is a must to use the same Theia versions. |
|
// Rebuild the extension with the copied `yarn.lock`. It is a must to use the same Theia versions. |
|
||||||
//-------------------------------------------------------------------------------------------------+
|
//-------------------------------------------------------------------------------------------------+
|
||||||
exec(`yarn --cwd ${path('..', workingCopy)}`, 'Building the Arduino Theia extensions');
|
exec(`yarn --network-timeout 1000000 --cwd ${path('..', workingCopy)}`, 'Building the Arduino Theia extensions');
|
||||||
// Collect all unused dependencies by the backend. We have to remove them from the electron app.
|
// Collect all unused dependencies by the backend. We have to remove them from the electron app.
|
||||||
// The `bundle.js` already contains everything we need for the frontend.
|
// The `bundle.js` already contains everything we need for the frontend.
|
||||||
// We have to do it before changing the dependencies to `local-path`.
|
// We have to do it before changing the dependencies to `local-path`.
|
||||||
@ -98,8 +98,8 @@ ${fs.readFileSync(path('..', 'build', 'package.json')).toString()}
|
|||||||
//-------------------------------------------------------------------------------------------+
|
//-------------------------------------------------------------------------------------------+
|
||||||
// Install all private and public dependencies for the electron application and build Theia. |
|
// Install all private and public dependencies for the electron application and build Theia. |
|
||||||
//-------------------------------------------------------------------------------------------+
|
//-------------------------------------------------------------------------------------------+
|
||||||
exec(`yarn --cwd ${path('..', 'build')}`, 'Installing dependencies');
|
exec(`yarn --network-timeout 1000000 --cwd ${path('..', 'build')}`, 'Installing dependencies');
|
||||||
exec(`yarn --cwd ${path('..', 'build')} build${release ? ':release' : ''}`, 'Building the Arduino-PoC application');
|
exec(`yarn --network-timeout 1000000 --cwd ${path('..', 'build')} build${release ? ':release' : ''}`, 'Building the Arduino-PoC application');
|
||||||
|
|
||||||
//------------------------------------------------------------------------------+
|
//------------------------------------------------------------------------------+
|
||||||
// Create a throw away dotenv file which we use to feed the builder with input. |
|
// Create a throw away dotenv file which we use to feed the builder with input. |
|
||||||
@ -115,7 +115,7 @@ ${fs.readFileSync(path('..', 'build', 'package.json')).toString()}
|
|||||||
//-----------------------------------+
|
//-----------------------------------+
|
||||||
// Package the electron application. |
|
// Package the electron application. |
|
||||||
//-----------------------------------+
|
//-----------------------------------+
|
||||||
exec(`yarn --cwd ${path('..', 'build')} package`, `Packaging your Arduino-PoC application`);
|
exec(`yarn --network-timeout 1000000 --cwd ${path('..', 'build')} package`, `Packaging your Arduino-PoC application`);
|
||||||
echo(`🎉 Success. Your application is at: ${path('..', 'build', 'dist')}`);
|
echo(`🎉 Success. Your application is at: ${path('..', 'build', 'dist')}`);
|
||||||
|
|
||||||
restore();
|
restore();
|
||||||
|
Loading…
x
Reference in New Issue
Block a user