From f75e44049675231bec9c2fa2322ac3794aa1fdca Mon Sep 17 00:00:00 2001 From: Alberto Iannaccone Date: Tue, 6 Sep 2022 17:46:03 +0200 Subject: [PATCH 1/5] fix board selection and workspace input dialogs width and height --- .../src/browser/boards/boards-config-dialog.ts | 1 + .../src/browser/style/boards-config-dialog.css | 5 +++++ arduino-ide-extension/src/browser/style/dialogs.css | 3 ++- .../src/browser/theia/workspace/workspace-input-dialog.ts | 1 + 4 files changed, 9 insertions(+), 1 deletion(-) diff --git a/arduino-ide-extension/src/browser/boards/boards-config-dialog.ts b/arduino-ide-extension/src/browser/boards/boards-config-dialog.ts index ffec830d1..b08c6de36 100644 --- a/arduino-ide-extension/src/browser/boards/boards-config-dialog.ts +++ b/arduino-ide-extension/src/browser/boards/boards-config-dialog.ts @@ -34,6 +34,7 @@ export class BoardsConfigDialog extends AbstractDialog { ) { super({ ...props, maxWidth: 500 }); + this.node.id = 'select-board-dialog-container'; this.contentNode.classList.add('select-board-dialog'); this.contentNode.appendChild(this.createDescription()); diff --git a/arduino-ide-extension/src/browser/style/boards-config-dialog.css b/arduino-ide-extension/src/browser/style/boards-config-dialog.css index 1beb7c4f9..bd2a07c35 100644 --- a/arduino-ide-extension/src/browser/style/boards-config-dialog.css +++ b/arduino-ide-extension/src/browser/style/boards-config-dialog.css @@ -1,3 +1,8 @@ +#select-board-dialog-container > .dialogBlock { + width: 640px; + height: 500px; +} + div#select-board-dialog { margin: 5px; } diff --git a/arduino-ide-extension/src/browser/style/dialogs.css b/arduino-ide-extension/src/browser/style/dialogs.css index aa5ef3fe1..f3727329c 100644 --- a/arduino-ide-extension/src/browser/style/dialogs.css +++ b/arduino-ide-extension/src/browser/style/dialogs.css @@ -9,7 +9,8 @@ total = padding + margin = 96px */ max-width: calc(100% - 96px) !important; - min-width: unset; + + min-width: 424px; max-height: 560px; padding: 0 28px; } diff --git a/arduino-ide-extension/src/browser/theia/workspace/workspace-input-dialog.ts b/arduino-ide-extension/src/browser/theia/workspace/workspace-input-dialog.ts index 7dca96b7f..5f4deb5b2 100644 --- a/arduino-ide-extension/src/browser/theia/workspace/workspace-input-dialog.ts +++ b/arduino-ide-extension/src/browser/theia/workspace/workspace-input-dialog.ts @@ -18,6 +18,7 @@ export class WorkspaceInputDialog extends TheiaWorkspaceInputDialog { protected override readonly labelProvider: LabelProvider ) { super(props, labelProvider); + this.node.classList.add('workspace-input-dialog'); this.appendCloseButton( nls.localize('vscode/issueMainService/cancel', 'Cancel') ); From b8030efa92dbe996b864e95871a23a93ab78fb41 Mon Sep 17 00:00:00 2001 From: Alberto Iannaccone Date: Fri, 16 Sep 2022 08:49:15 +0200 Subject: [PATCH 2/5] use same dialog for new file and rename --- .../theia/workspace/workspace-commands.ts | 33 +++++++++++-------- 1 file changed, 19 insertions(+), 14 deletions(-) diff --git a/arduino-ide-extension/src/browser/theia/workspace/workspace-commands.ts b/arduino-ide-extension/src/browser/theia/workspace/workspace-commands.ts index 5b864732b..2fbcbdb26 100644 --- a/arduino-ide-extension/src/browser/theia/workspace/workspace-commands.ts +++ b/arduino-ide-extension/src/browser/theia/workspace/workspace-commands.ts @@ -17,7 +17,6 @@ import { SketchesServiceClientImpl, } from '../../../common/protocol/sketches-service-client-impl'; import { SaveAsSketch } from '../../contributions/save-as-sketch'; -import { SingleTextInputDialog } from '@theia/core/lib/browser'; import { nls } from '@theia/core/lib/common'; @injectable() @@ -161,20 +160,26 @@ export class WorkspaceCommandContribution extends TheiaWorkspaceCommandContribut return; } const initialValue = uri.path.base; - const dialog = new SingleTextInputDialog({ - title: nls.localize('theia/workspace/newFileName', 'New name for file'), - initialValue, - initialSelectionRange: { - start: 0, - end: uri.path.name.length, - }, - validate: (name, mode) => { - if (initialValue === name && mode === 'preview') { - return false; - } - return this.validateFileName(name, parent, false); + const parentUri = parent.resource; + + const dialog = new WorkspaceInputDialog( + { + title: nls.localize('theia/workspace/newFileName', 'New name for file'), + initialValue, + parentUri, + initialSelectionRange: { + start: 0, + end: uri.path.name.length, + }, + validate: (name, mode) => { + if (initialValue === name && mode === 'preview') { + return false; + } + return this.validateFileName(name, parent, false); + }, }, - }); + this.labelProvider + ); const newName = await dialog.open(); const newNameWithExt = this.maybeAppendInoExt(newName); if (newNameWithExt) { From 6cfb6c6b768ad727cc3f86b61029a0be5b7040d2 Mon Sep 17 00:00:00 2001 From: Alberto Iannaccone Date: Fri, 16 Sep 2022 08:50:09 +0200 Subject: [PATCH 3/5] fix board list getting small when filtering --- .../src/browser/style/boards-config-dialog.css | 8 ++++++++ arduino-ide-extension/src/browser/style/dialogs.css | 1 + 2 files changed, 9 insertions(+) diff --git a/arduino-ide-extension/src/browser/style/boards-config-dialog.css b/arduino-ide-extension/src/browser/style/boards-config-dialog.css index bd2a07c35..a4f63e86e 100644 --- a/arduino-ide-extension/src/browser/style/boards-config-dialog.css +++ b/arduino-ide-extension/src/browser/style/boards-config-dialog.css @@ -5,6 +5,7 @@ div#select-board-dialog { margin: 5px; + height: 100%; } div#select-board-dialog .selectBoardContainer { @@ -12,12 +13,17 @@ div#select-board-dialog .selectBoardContainer { gap: 10px; overflow: hidden; max-height: 100%; + height: 100%; } .select-board-dialog .head { margin: 5px; } +.dialogContent.select-board-dialog { + height: 100%; +} + div.dialogContent.select-board-dialog > div.head .title { font-weight: 400; letter-spacing: 0.02em; @@ -68,6 +74,7 @@ div#select-board-dialog .selectBoardContainer .list .item.selected i { display: flex; flex-direction: column; max-height: 100%; + height: 100%; } #select-board-dialog .selectBoardContainer .left.container .content { @@ -136,6 +143,7 @@ div#select-board-dialog .selectBoardContainer .list .item.selected i { #select-board-dialog .selectBoardContainer .list { max-height: 200px; overflow-y: auto; + flex: 1; } #select-board-dialog .selectBoardContainer .ports.list { diff --git a/arduino-ide-extension/src/browser/style/dialogs.css b/arduino-ide-extension/src/browser/style/dialogs.css index f3727329c..4d56484e8 100644 --- a/arduino-ide-extension/src/browser/style/dialogs.css +++ b/arduino-ide-extension/src/browser/style/dialogs.css @@ -86,3 +86,4 @@ max-height: 400px; } } + \ No newline at end of file From 42ddf8b2ec122fb4b76c53a124a903da4c0a5ae9 Mon Sep 17 00:00:00 2001 From: Alberto Iannaccone Date: Tue, 20 Sep 2022 09:14:04 +0200 Subject: [PATCH 4/5] board select dialog: show variant text when no board is found --- .../src/browser/boards/boards-config.tsx | 38 ++++++++++++------- .../browser/style/boards-config-dialog.css | 8 ++++ i18n/en.json | 1 + 3 files changed, 33 insertions(+), 14 deletions(-) diff --git a/arduino-ide-extension/src/browser/boards/boards-config.tsx b/arduino-ide-extension/src/browser/boards/boards-config.tsx index 7edd30e76..c145ec924 100644 --- a/arduino-ide-extension/src/browser/boards/boards-config.tsx +++ b/arduino-ide-extension/src/browser/boards/boards-config.tsx @@ -299,6 +299,18 @@ export class BoardsConfig extends React.Component< } } + const boardsList = Array.from(distinctBoards.values()).map((board) => ( + + key={toKey(board)} + item={board} + label={board.name} + details={board.details} + selected={board.selected} + onClick={this.selectBoard} + missing={board.missing} + /> + )); + return (
@@ -315,19 +327,17 @@ export class BoardsConfig extends React.Component< />
-
- {Array.from(distinctBoards.values()).map((board) => ( - - key={toKey(board)} - item={board} - label={board.name} - details={board.details} - selected={board.selected} - onClick={this.selectBoard} - missing={board.missing} - /> - ))} -
+ {boardsList.length > 0 ? ( +
{boardsList}
+ ) : ( +
+ {nls.localize( + 'arduino/board/noBoardsFound', + 'No boards found for "{0}"', + query + )} +
+ )}
); } @@ -342,7 +352,7 @@ export class BoardsConfig extends React.Component< ); } return !ports.length ? ( -
+
{nls.localize('arduino/board/noPortsDiscovered', 'No ports discovered')}
) : ( diff --git a/arduino-ide-extension/src/browser/style/boards-config-dialog.css b/arduino-ide-extension/src/browser/style/boards-config-dialog.css index a4f63e86e..59633efb4 100644 --- a/arduino-ide-extension/src/browser/style/boards-config-dialog.css +++ b/arduino-ide-extension/src/browser/style/boards-config-dialog.css @@ -295,3 +295,11 @@ div#select-board-dialog .selectBoardContainer .list .item.selected i { display: none; } } + +#select-board-dialog .no-result { + text-transform: uppercase; + height: 100%; + user-select: none; + padding: 10px 5px; + overflow-wrap: break-word; +} diff --git a/i18n/en.json b/i18n/en.json index cd6a7a2b7..dff1729e5 100644 --- a/i18n/en.json +++ b/i18n/en.json @@ -15,6 +15,7 @@ "getBoardInfo": "Get Board Info", "inSketchbook": " (in Sketchbook)", "installNow": "The \"{0} {1}\" core has to be installed for the currently selected \"{2}\" board. Do you want to install it now?", + "noBoardsFound": "No boards found for \"{0}\"", "noFQBN": "The FQBN is not available for the selected board \"{0}\". Do you have the corresponding core installed?", "noPortsDiscovered": "No ports discovered", "noPortsSelected": "No ports selected for board: '{0}'.", From 9b3cc9abec2131d8613382ca0055647065323cd8 Mon Sep 17 00:00:00 2001 From: Alberto Iannaccone Date: Tue, 20 Sep 2022 12:53:36 +0200 Subject: [PATCH 5/5] fix addition boards url outline --- .../src/browser/dialogs/settings/settings-dialog.tsx | 1 - arduino-ide-extension/src/browser/style/settings-dialog.css | 6 ++++-- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/arduino-ide-extension/src/browser/dialogs/settings/settings-dialog.tsx b/arduino-ide-extension/src/browser/dialogs/settings/settings-dialog.tsx index b4ad879d1..7ebc7c5ba 100644 --- a/arduino-ide-extension/src/browser/dialogs/settings/settings-dialog.tsx +++ b/arduino-ide-extension/src/browser/dialogs/settings/settings-dialog.tsx @@ -155,7 +155,6 @@ export class AdditionalUrlsDialog extends AbstractDialog { this.textArea = document.createElement('textarea'); this.textArea.className = 'theia-input'; - this.textArea.setAttribute('style', 'flex: 0;'); this.textArea.value = urls .filter((url) => url.trim()) .filter((url) => !!url) diff --git a/arduino-ide-extension/src/browser/style/settings-dialog.css b/arduino-ide-extension/src/browser/style/settings-dialog.css index 017f8c07e..a3315454c 100644 --- a/arduino-ide-extension/src/browser/style/settings-dialog.css +++ b/arduino-ide-extension/src/browser/style/settings-dialog.css @@ -88,10 +88,12 @@ } .additional-urls-dialog textarea { - width: 100%; + resize: none; } .p-Widget.dialogOverlay .dialogBlock .dialogContent.additional-urls-dialog { - display: block; + display: flex; overflow: hidden; + padding: 0 1px; + margin: 0 -1px; }