From 2b90a17d5e6936fb7ac8600dc4e01bb0b3f5d4bf Mon Sep 17 00:00:00 2001 From: Austin Warren Date: Fri, 14 Dec 2018 14:49:20 -0800 Subject: [PATCH 1/5] Added hotkey rename, right click rename, and auto select text in rename modal --- .../src/components/tabHeader.component.ts | 26 +++++++++++++++++-- 1 file changed, 24 insertions(+), 2 deletions(-) diff --git a/terminus-core/src/components/tabHeader.component.ts b/terminus-core/src/components/tabHeader.component.ts index 92e0ca59..b3f57f93 100644 --- a/terminus-core/src/components/tabHeader.component.ts +++ b/terminus-core/src/components/tabHeader.component.ts @@ -3,6 +3,7 @@ import { SortableComponent } from 'ng2-dnd' import { NgbModal } from '@ng-bootstrap/ng-bootstrap' import { BaseTabComponent } from './baseTab.component' import { RenameTabModalComponent } from './renameTabModal.component' +import { HotkeysService } from '../services/hotkeys.service' import { ElectronService } from '../services/electron.service' import { AppService } from '../services/app.service' import { HostAppService, Platform } from '../services/hostApp.service' @@ -38,8 +39,17 @@ export class TabHeaderComponent { private zone: NgZone, private hostApp: HostAppService, private ngbModal: NgbModal, + private hotkeys: HotkeysService, private parentDraggable: SortableComponent, - ) { } + ) { + this.hotkeys.matchedHotkey.subscribe((hotkey) => { + if (this.app.activeTab === this.tab) { + if (hotkey === 'rename-tab') { + this.showRenameTabModal() + } + } + }) + } ngOnInit () { if (this.hostApp.platform === Platform.macOS) { @@ -50,15 +60,23 @@ export class TabHeaderComponent { }) } - @HostListener('dblclick') onDoubleClick (): void { + showRenameTabModal (): void { let modal = this.ngbModal.open(RenameTabModalComponent) modal.componentInstance.value = this.tab.customTitle || this.tab.title + setTimeout(() => { + const inputElement = modal.componentInstance.input.nativeElement as HTMLInputElement + inputElement.select() + }, 250) modal.result.then(result => { this.tab.setTitle(result) this.tab.customTitle = result }).catch(() => null) } + @HostListener('dblclick') onDoubleClick (): void { + this.showRenameTabModal() + } + @HostListener('auxclick', ['$event']) async onAuxClick ($event: MouseEvent) { if ($event.which === 2) { this.app.closeTab(this.tab, true) @@ -97,6 +115,10 @@ export class TabHeaderComponent { } }) }, + { + label: 'Rename', + click: () => this.zone.run( () => this.showRenameTabModal() ) + }, { label: 'Color', sublabel: COLORS.find(x => x.value === this.tab.color).name, From 798dda52363df17922fee0d82cebd57ffe93ffc4 Mon Sep 17 00:00:00 2001 From: Austin Warren Date: Fri, 14 Dec 2018 14:50:16 -0800 Subject: [PATCH 2/5] Added rename-tab hotkey --- terminus-core/src/configDefaults.linux.yaml | 2 ++ terminus-core/src/configDefaults.macos.yaml | 2 ++ terminus-core/src/configDefaults.windows.yaml | 2 ++ terminus-core/src/services/hotkeys.service.ts | 4 ++++ 4 files changed, 10 insertions(+) diff --git a/terminus-core/src/configDefaults.linux.yaml b/terminus-core/src/configDefaults.linux.yaml index 75671c35..450eb49b 100644 --- a/terminus-core/src/configDefaults.linux.yaml +++ b/terminus-core/src/configDefaults.linux.yaml @@ -11,6 +11,8 @@ hotkeys: toggle-last-tab: - ['Ctrl-A', 'A'] - ['Ctrl-A', 'Ctrl-A'] + rename-tab: + - 'Ctrl-Shift-R' next-tab: - 'Ctrl-Shift-ArrowRight' - ['Ctrl-A', 'N'] diff --git a/terminus-core/src/configDefaults.macos.yaml b/terminus-core/src/configDefaults.macos.yaml index 239f30fc..a9b830ca 100644 --- a/terminus-core/src/configDefaults.macos.yaml +++ b/terminus-core/src/configDefaults.macos.yaml @@ -8,6 +8,8 @@ hotkeys: close-tab: - '⌘-W' toggle-last-tab: [] + rename-tab: + - 'Ctrl-Shift-R' next-tab: - 'Ctrl-Tab' previous-tab: diff --git a/terminus-core/src/configDefaults.windows.yaml b/terminus-core/src/configDefaults.windows.yaml index b5222d65..2b74fd20 100644 --- a/terminus-core/src/configDefaults.windows.yaml +++ b/terminus-core/src/configDefaults.windows.yaml @@ -11,6 +11,8 @@ hotkeys: toggle-last-tab: - ['Ctrl-A', 'A'] - ['Ctrl-A', 'Ctrl-A'] + rename-tab: + - 'Ctrl-Shift-R' next-tab: - 'Ctrl-Shift-ArrowRight' - ['Ctrl-A', 'N'] diff --git a/terminus-core/src/services/hotkeys.service.ts b/terminus-core/src/services/hotkeys.service.ts index 4bd453e9..d8a6ffd0 100644 --- a/terminus-core/src/services/hotkeys.service.ts +++ b/terminus-core/src/services/hotkeys.service.ts @@ -215,6 +215,10 @@ export class AppHotkeyProvider extends HotkeyProvider { id: 'toggle-fullscreen', name: 'Toggle fullscreen mode', }, + { + id: 'rename-tab', + name: 'Rename Tab', + }, { id: 'close-tab', name: 'Close tab', From 6b823d0fa0394c4441cf1600509257a12ce73f15 Mon Sep 17 00:00:00 2001 From: Austin Warren Date: Fri, 14 Dec 2018 14:50:38 -0800 Subject: [PATCH 3/5] Fixed build errors --- terminus-terminal/src/components/terminalTab.component.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/terminus-terminal/src/components/terminalTab.component.ts b/terminus-terminal/src/components/terminalTab.component.ts index 5dea3b57..6812ed6b 100644 --- a/terminus-terminal/src/components/terminalTab.component.ts +++ b/terminus-terminal/src/components/terminalTab.component.ts @@ -264,9 +264,9 @@ export class TerminalTabComponent extends BaseTabComponent { let wheelDeltaY = 0 if ('wheelDeltaY' in event) { - wheelDeltaY = (event as MouseWheelEvent).wheelDeltaY + wheelDeltaY = (event as MouseWheelEvent)['wheelDeltaY'] } else { - wheelDeltaY = (event as MouseWheelEvent).deltaY + wheelDeltaY = (event as MouseWheelEvent)['deltaY'] } if (event.ctrlKey || event.metaKey) { From fcf14eaa8b7e55069551e275d633c1ca01619194 Mon Sep 17 00:00:00 2001 From: Austin Warren Date: Tue, 18 Dec 2018 17:19:41 -0800 Subject: [PATCH 4/5] Move focus to RenameTabModalComponent onInit --- terminus-core/src/components/renameTabModal.component.ts | 1 + terminus-core/src/components/tabHeader.component.ts | 4 ---- 2 files changed, 1 insertion(+), 4 deletions(-) diff --git a/terminus-core/src/components/renameTabModal.component.ts b/terminus-core/src/components/renameTabModal.component.ts index 1410568f..95993cef 100644 --- a/terminus-core/src/components/renameTabModal.component.ts +++ b/terminus-core/src/components/renameTabModal.component.ts @@ -16,6 +16,7 @@ export class RenameTabModalComponent { ngOnInit () { setTimeout(() => { this.input.nativeElement.focus() + this.input.nativeElement.select() }, 250) } diff --git a/terminus-core/src/components/tabHeader.component.ts b/terminus-core/src/components/tabHeader.component.ts index b3f57f93..b169e718 100644 --- a/terminus-core/src/components/tabHeader.component.ts +++ b/terminus-core/src/components/tabHeader.component.ts @@ -63,10 +63,6 @@ export class TabHeaderComponent { showRenameTabModal (): void { let modal = this.ngbModal.open(RenameTabModalComponent) modal.componentInstance.value = this.tab.customTitle || this.tab.title - setTimeout(() => { - const inputElement = modal.componentInstance.input.nativeElement as HTMLInputElement - inputElement.select() - }, 250) modal.result.then(result => { this.tab.setTitle(result) this.tab.customTitle = result From b510a86f4d00830eebd3a0e2f03dc0f99a022123 Mon Sep 17 00:00:00 2001 From: Austin Warren Date: Tue, 18 Dec 2018 17:20:08 -0800 Subject: [PATCH 5/5] =?UTF-8?q?Change=20rename=20hotkey=20to=20=E2=8C=98-R?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- terminus-core/src/configDefaults.macos.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/terminus-core/src/configDefaults.macos.yaml b/terminus-core/src/configDefaults.macos.yaml index a9b830ca..a5355344 100644 --- a/terminus-core/src/configDefaults.macos.yaml +++ b/terminus-core/src/configDefaults.macos.yaml @@ -9,7 +9,7 @@ hotkeys: - '⌘-W' toggle-last-tab: [] rename-tab: - - 'Ctrl-Shift-R' + - '⌘-R' next-tab: - 'Ctrl-Tab' previous-tab: