mirror of
https://github.com/Eugeny/tabby.git
synced 2025-06-08 21:40:03 +00:00
48 lines
1.5 KiB
TypeScript
48 lines
1.5 KiB
TypeScript
import { Component, Inject } from '@angular/core'
|
|
import { ElectronService, DockingService, ConfigService, IHotkeyDescription, HotkeyProvider, BaseTabComponent, Theme, HostAppService } from 'terminus-core'
|
|
|
|
import { SettingsTabProvider } from '../api'
|
|
|
|
@Component({
|
|
selector: 'settings-tab',
|
|
template: require('./settingsTab.component.pug'),
|
|
styles: [
|
|
require('./settingsTab.component.scss'),
|
|
require('./settingsTab.deep.component.css'),
|
|
],
|
|
})
|
|
export class SettingsTabComponent extends BaseTabComponent {
|
|
hotkeyFilter = ''
|
|
private hotkeyDescriptions: IHotkeyDescription[]
|
|
private screens
|
|
|
|
constructor (
|
|
public config: ConfigService,
|
|
private electron: ElectronService,
|
|
public docking: DockingService,
|
|
public hostApp: HostAppService,
|
|
@Inject(HotkeyProvider) hotkeyProviders: HotkeyProvider[],
|
|
@Inject(SettingsTabProvider) public settingsProviders: SettingsTabProvider[],
|
|
@Inject(Theme) public themes: Theme[],
|
|
) {
|
|
super()
|
|
this.hotkeyDescriptions = hotkeyProviders.map(x => x.hotkeys).reduce((a, b) => a.concat(b))
|
|
this.title = 'Settings'
|
|
this.scrollable = true
|
|
this.screens = this.docking.getScreens()
|
|
}
|
|
|
|
getRecoveryToken (): any {
|
|
return { type: 'app:settings' }
|
|
}
|
|
|
|
ngOnDestroy () {
|
|
this.config.save()
|
|
}
|
|
|
|
restartApp () {
|
|
this.electron.app.relaunch()
|
|
this.electron.app.exit()
|
|
}
|
|
}
|