From b018abc137c0c1fbc512c3446d7588569262ce61 Mon Sep 17 00:00:00 2001 From: aleksey-hoffman Date: Fri, 4 Jun 2021 20:05:01 +0300 Subject: [PATCH] add new user setting: Launch app on system login --- src/electronMain.js | 15 ++++++++++++--- src/store.js | 3 +++ src/views/Settings.vue | 26 +++++++++++++++++++++++++- 3 files changed, 40 insertions(+), 4 deletions(-) diff --git a/src/electronMain.js b/src/electronMain.js index 114e7c1f..3172abde 100644 --- a/src/electronMain.js +++ b/src/electronMain.js @@ -64,11 +64,13 @@ function setAppProperties () { // Temporary disable until native modules like 'node-diskusage' // are updated (to become context-aware or loaded via N-API) electron.app.allowRendererProcessReuse = false - // Handle system login + electron.app.setAppUserModelId('com.alekseyhoffman.sigma-file-manager') +} + +function setCustomizedAppProperties (params) { electron.app.setLoginItemSettings({ - openAtLogin: true + openAtLogin: params.openAtLogin }) - electron.app.setAppUserModelId('com.alekseyhoffman.sigma-file-manager') } function createMainWindow () { @@ -636,6 +638,12 @@ global.toggleApp = (options) => { } } +function getCustomizedAppProperties (storageData) { + return { + openAtLogin: storageData['storageData.settings.appProperties.openAtLogin'] || true + } +} + function initAppListeners () { electron.app.on('render-process-gone', (event, webContents, details) => { windows.main.loadURL('app://./index.html') @@ -663,6 +671,7 @@ function initAppListeners () { // initialization and is ready to create browser windows. // Some APIs can only be used after this event occurs. storageData = await fetchAppStorageData() + setCustomizedAppProperties(getCustomizedAppProperties(storageData)) disableAppMenu() registerSafeFileProtocol() createMainWindow() diff --git a/src/store.js b/src/store.js index 55cbdaf8..1c96f549 100644 --- a/src/store.js +++ b/src/store.js @@ -389,6 +389,9 @@ export default new Vuex.Store({ }, settings: { fileName: 'settings.json', + appProperties: { + openAtLogin: true + }, // TODO: Move to stats: time: { lastSearchScan: null diff --git a/src/views/Settings.vue b/src/views/Settings.vue index 5265441b..27768458 100644 --- a/src/views/Settings.vue +++ b/src/views/Settings.vue @@ -268,6 +268,29 @@ Copyright © 2021 - present Aleksey Hoffman. All rights reserved. + + + + +