diff --git a/app.js b/app.js index 0013fec8..f67c9507 100644 --- a/app.js +++ b/app.js @@ -1,4 +1,9 @@ var auth0, lock; // Auth0 vars + +// load theme +console.log(localStorage.rambox_theme, Ext.isDebugEnabled); +if (localStorage.rambox_theme !== "default") Ext.util.CSS.swapStyleSheet("rambox-default-theme", `build/${localStorage.rambox_theme}/production/Rambox/resources/Rambox-all.css`); + // Enable Cookies var ElectronCookies = require('@exponent/electron-cookies'); ElectronCookies.enable({ origin: 'http://rambox.pro' }); diff --git a/app/store/Services.js b/app/store/Services.js index aa34e1f7..506f9a4b 100644 --- a/app/store/Services.js +++ b/app/store/Services.js @@ -64,14 +64,6 @@ Ext.define('Rambox.store.Services', { if ( Ext.getCmp('tab_'+config.default_service) ) Ext.cq1('app-main').setActiveTab('tab_'+config.default_service); break; } - switch (config.rambox_theme){ - case 'dark': - Ext.util.CSS.swapStyleSheet("rambox-default-theme", "build/dark/development/Rambox/resources/Rambox-all.css"); - break; - default: - Ext.util.CSS.swapStyleSheet("rambox-dark-theme", "build/development/Rambox/resources/Rambox-all.css"); - break; - } store.suspendEvent('load'); Ext.cq1('app-main').resumeEvent('add'); diff --git a/app/view/preferences/PreferencesController.js b/app/view/preferences/PreferencesController.js index d72d9bc9..f40ef650 100644 --- a/app/view/preferences/PreferencesController.js +++ b/app/view/preferences/PreferencesController.js @@ -54,6 +54,14 @@ Ext.define('Rambox.view.preferences.PreferencesController', { }); } + // Theme + if ( values.rambox_theme !== ipc.sendSync('getConfig').rambox_theme ) { + localStorage.setItem('rambox_theme', values.rambox_theme); + Ext.Msg.confirm('Action required', 'To change the theme of Rambox, you need to reload the app. Do you want to do it now?', function(btnId) { + if ( btnId === 'yes' ) ipc.send('relaunchApp'); + }); + } + ipc.send('setConfig', values); me.getView().close(); } diff --git a/build/dark/development/Rambox/electron/main.js b/build/dark/development/Rambox/electron/main.js index 2120e2aa..82f94134 100644 --- a/build/dark/development/Rambox/electron/main.js +++ b/build/dark/development/Rambox/electron/main.js @@ -166,7 +166,6 @@ function createWindow () { if ( !config.get('start_minimized') && config.get('maximized') ) mainWindow.maximize(); if ( config.get('window_display_behavior') !== 'show_trayIcon' && config.get('start_minimized') ) mainWindow.minimize(); - if ( config.get('rambox_theme') !== 'default') changeTheme(config.get('rambox_theme'); // Check if the window its outside of the view (ex: multi monitor setup) const { positionOnScreen } = require('./utils/positionOnScreen'); @@ -296,9 +295,6 @@ function updateBadge(title) { if ( messageCount > 0 && !mainWindow.isFocused() && !config.get('dont_disturb') && config.get('flash_frame') ) mainWindow.flashFrame(true); } -function changeTheme(theme) { - Ext.util.CSS.swapStyleSheet("rambox-default-theme", `build/${theme}/development/Rambox/resources/Rambox-all.css`); -} ipcMain.on('setBadge', function(event, messageCount, value) { var img = nativeImage.createFromDataURL(value); diff --git a/electron/main.js b/electron/main.js index 21507719..9429e624 100644 --- a/electron/main.js +++ b/electron/main.js @@ -36,6 +36,7 @@ const config = new Config({ ,proxyPassword: '' ,locale: 'en' ,enable_hidpi_support: false + ,rambox_theme: 'default' ,default_service: 'ramboxTab' ,x: undefined