mirror of
https://github.com/Eugeny/tabby.git
synced 2025-06-08 13:30:02 +00:00
ref(tabby-local): remove SaveAsProfile context menu
This commit is contained in:
parent
77b74ad659
commit
3d9b15a82d
@ -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 },
|
||||||
|
@ -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 {
|
||||||
|
Loading…
x
Reference in New Issue
Block a user