提交 fe75aab7 编写于 作者: E Eugene Pankov

show profiles in macos dock item menu

上级 85bcac1f
......@@ -22,6 +22,7 @@ import { EditProfileModalComponent } from './components/editProfileModal.compone
import { SessionsService, BaseSession } from './services/sessions.service'
import { TerminalFrontendService } from './services/terminalFrontend.service'
import { TerminalService } from './services/terminal.service'
import { DockMenuService } from './services/dockMenu.service'
import { ButtonProvider } from './buttonProvider'
import { RecoveryProvider } from './recoveryProvider'
......@@ -59,6 +60,7 @@ import { hterm } from './hterm'
SessionsService,
TerminalFrontendService,
TerminalService,
DockMenuService,
{ provide: SettingsTabProvider, useClass: AppearanceSettingsTabProvider, multi: true },
{ provide: SettingsTabProvider, useClass: ShellSettingsTabProvider, multi: true },
......@@ -115,6 +117,7 @@ export default class TerminalModule {
hotkeys: HotkeysService,
terminal: TerminalService,
hostApp: HostAppService,
dockMenu: DockMenuService,
) {
let events = [
{
......@@ -183,6 +186,8 @@ export default class TerminalModule {
hostApp.bringToFront()
}
})
dockMenu.update()
}
}
......
import { NgZone, Injectable } from '@angular/core'
import { ElectronService, ConfigService, HostAppService, Platform } from 'terminus-core'
import { TerminalService } from './terminal.service'
@Injectable()
export class DockMenuService {
appVersion: string
constructor (
private electron: ElectronService,
private config: ConfigService,
private hostApp: HostAppService,
private zone: NgZone,
private terminalService: TerminalService,
) {
config.changed$.subscribe(() => this.update())
}
update () {
if (this.hostApp.platform === Platform.macOS) {
this.electron.app.dock.setMenu(this.electron.Menu.buildFromTemplate(
this.config.store.terminal.profiles.map(profile => ({
label: profile.name,
click: () => this.zone.run(() => {
this.terminalService.openTabWithOptions(profile.sessionOptions)
}),
}))
))
}
}
}
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册