litser

Форк
0
/
main.js 
115 строк · 2.8 Кб
1
'use strict'
2

3
if (require.main !== module) {
4
    require('update-electron-app')({
5
        logger: require('electron-log')
6
    })
7
}
8
const path = require('path')
9
const { app, BrowserWindow, ipcMain, globalShortcut } = require('electron')
10

11
// const log = require('electron-log');
12

13
const pjson = require('./package.json')
14

15
// log.transports.console.level = 'info'
16
// log.transports.file.level = 'info'
17
// log.info('App starting...')
18

19
const debug = /--debug/.test(process.argv[2])
20

21
if (process.mas) app.setName(pjson.name)
22

23
let mainWindow = null
24

25
/* const sendStatusToWindow = (text, ver) => {
26
    log.info(text)
27
    mainWindow?.webContents.send('message', text, ver)
28
} */
29

30
const registerGlobalShortcuts = () => {
31
    globalShortcut.register('CommandOrControl+Shift+L', () => {
32
        mainWindow?.webContents.send('show-server-log')
33
    })
34
}
35

36
process.env.ELECTRON_DISABLE_SECURITY_WARNINGS = 'true'
37

38
function createWindow () {
39
    const windowOptions = {
40
        minWidth: 960,
41
        minHeight: 665,
42
        center: true,
43
        title: pjson.name,
44
        resizable: true,
45
        // transparent: true,
46
        frame: false,
47
        hasShadow: false,
48
        titleBarStyle: 'hidden',
49
        icon: path.join(__dirname, '/dist/public/img/icon.ico'),
50
        webPreferences: {
51
            nodeIntegration: true,
52
            nodeIntegrationInWorker: true,
53
            contextIsolation: false,
54
            enableRemoteModule: true,
55
            v8CacheOptions: 'code',
56
            // webSecurity: false,
57
            preload: path.join(__dirname, '/dist/electron/preload.js')
58
        }
59
    }
60

61
    if (process.platform === 'linux') {
62
        windowOptions.icon = path.join(__dirname, '/dist/public/img/icon.ico')
63
    }
64

65
    mainWindow = new BrowserWindow(windowOptions)
66
    mainWindow.setMenuBarVisibility(false)
67
    mainWindow.setProgressBar(0)
68
    // mainWindow.webContents.openDevTools()
69
    let promise = mainWindow.loadURL(path.join(__dirname, '/src/dev/index.dev.html'))
70

71
    // log.info(mainWindow);
72

73
    if (debug) {
74
        mainWindow.webContents.openDevTools()
75
        mainWindow.maximize()
76
        require('devtron').install()
77
    }
78

79
    mainWindow.on('closed', () => {
80
        mainWindow = null
81
    })
82

83
    ipcMain.on('minimize-window', () => {
84
        mainWindow.minimize()
85
    })
86

87
    ipcMain.on('maximize-window', () => {
88
        mainWindow.maximize()
89
    })
90

91
    ipcMain.on('restore-window', () => {
92
        mainWindow.restore()
93
    })
94

95
    ipcMain.on('close-window', () => {
96
        mainWindow.close()
97
    })
98
}
99

100
app.whenReady().then(() => {
101
    registerGlobalShortcuts()
102
    createWindow()
103

104
    app.on('activate', () => {
105
        if (BrowserWindow.getAllWindows().length === 0) {
106
            createWindow()
107
        }
108
    })
109
})
110

111
app.on('window-all-closed', () => {
112
    if (process.platform !== 'darwin') {
113
        app.quit()
114
    }
115
})
116

Использование cookies

Мы используем файлы cookie в соответствии с Политикой конфиденциальности и Политикой использования cookies.

Нажимая кнопку «Принимаю», Вы даете АО «СберТех» согласие на обработку Ваших персональных данных в целях совершенствования нашего веб-сайта и Сервиса GitVerse, а также повышения удобства их использования.

Запретить использование cookies Вы можете самостоятельно в настройках Вашего браузера.