ref(tabby-local): remove SaveAsProfile context menu

This commit is contained in:
Clem 2023-07-07 10:35:03 +02:00
parent 77b74ad659
commit 3d9b15a82d
2 changed files with 2 additions and 53 deletions

View File

@ -21,7 +21,7 @@ import { RecoveryProvider } from './recoveryProvider'
import { ShellSettingsTabProvider } from './settings' import { ShellSettingsTabProvider } from './settings'
import { TerminalConfigProvider } from './config' import { TerminalConfigProvider } from './config'
import { LocalTerminalHotkeyProvider } from './hotkeys' import { LocalTerminalHotkeyProvider } from './hotkeys'
import { NewTabContextMenu, SaveAsProfileContextMenu } from './tabContextMenu' import { NewTabContextMenu } from './tabContextMenu'
import { AutoOpenTabCLIHandler, OpenPathCLIHandler, TerminalCLIHandler } from './cli' import { AutoOpenTabCLIHandler, OpenPathCLIHandler, TerminalCLIHandler } from './cli'
import { LocalProfilesService } from './profiles' import { LocalProfilesService } from './profiles'
@ -47,7 +47,6 @@ import { LocalProfilesService } from './profiles'
{ provide: ProfileProvider, useClass: LocalProfilesService, multi: true }, { provide: ProfileProvider, useClass: LocalProfilesService, multi: true },
{ provide: TabContextMenuItemProvider, useClass: NewTabContextMenu, multi: true }, { provide: TabContextMenuItemProvider, useClass: NewTabContextMenu, multi: true },
{ provide: TabContextMenuItemProvider, useClass: SaveAsProfileContextMenu, multi: true },
{ provide: CLIHandler, useClass: TerminalCLIHandler, multi: true }, { provide: CLIHandler, useClass: TerminalCLIHandler, multi: true },
{ provide: CLIHandler, useClass: OpenPathCLIHandler, multi: true }, { provide: CLIHandler, useClass: OpenPathCLIHandler, multi: true },

View File

@ -1,59 +1,9 @@
import { Inject, Injectable, Optional } from '@angular/core' import { Inject, Injectable, Optional } from '@angular/core'
import { NgbModal } from '@ng-bootstrap/ng-bootstrap' import { ConfigService, BaseTabComponent, TabContextMenuItemProvider, MenuItemOptions, ProfilesService, TranslateService } from 'tabby-core'
import { ConfigService, BaseTabComponent, TabContextMenuItemProvider, NotificationsService, MenuItemOptions, ProfilesService, PromptModalComponent, TranslateService } from 'tabby-core'
import { TerminalTabComponent } from './components/terminalTab.component' import { TerminalTabComponent } from './components/terminalTab.component'
import { TerminalService } from './services/terminal.service' import { TerminalService } from './services/terminal.service'
import { LocalProfile, UACService } from './api' import { LocalProfile, UACService } from './api'
/** @hidden */
@Injectable()
export class SaveAsProfileContextMenu extends TabContextMenuItemProvider {
constructor (
private config: ConfigService,
private ngbModal: NgbModal,
private notifications: NotificationsService,
private translate: TranslateService,
) {
super()
}
async getItems (tab: BaseTabComponent): Promise<MenuItemOptions[]> {
if (!(tab instanceof TerminalTabComponent)) {
return []
}
const terminalTab = tab
const items: MenuItemOptions[] = [
{
label: this.translate.instant('Save as profile'),
click: async () => {
const modal = this.ngbModal.open(PromptModalComponent)
modal.componentInstance.prompt = this.translate.instant('New profile name')
const name = (await modal.result)?.value
if (!name) {
return
}
const profile = {
options: {
...terminalTab.profile.options,
cwd: await terminalTab.session?.getWorkingDirectory() ?? terminalTab.profile.options.cwd,
},
name,
type: 'local',
}
this.config.store.profiles = [
...this.config.store.profiles,
profile,
]
this.config.save()
this.notifications.info(this.translate.instant('Saved'))
},
},
]
return items
}
}
/** @hidden */ /** @hidden */
@Injectable() @Injectable()
export class NewTabContextMenu extends TabContextMenuItemProvider { export class NewTabContextMenu extends TabContextMenuItemProvider {