reset settings command

This commit is contained in:
SPRINX0\prochazka
2024-08-29 09:37:30 +02:00
parent 791a2e8cd4
commit 5559d51dfb
4 changed files with 58 additions and 9 deletions

View File

@@ -22,6 +22,7 @@ let disableAutoUpgrade = false;
// require('@electron/remote/main').initialize();
const configRootPath = path.join(app.getPath('userData'), 'config-root.json');
let saveConfigOnExit = true;
let initialConfig = {};
let apiLoaded = false;
let mainModule;
@@ -173,6 +174,21 @@ ipcMain.on('quit-app', async (event, arg) => {
mainWindow.close();
}
});
ipcMain.on('reset-settings', async (event, arg) => {
try {
saveConfigOnExit = false;
fs.unlinkSync(configRootPath);
console.log('Deleted file:', configRootPath);
} catch (err) {
console.log('Error deleting config-root:', err.message);
}
if (isMac()) {
app.quit();
} else {
mainWindow.close();
}
});
ipcMain.on('set-title', async (event, arg) => {
mainWindow.setTitle(arg);
});
@@ -364,15 +380,17 @@ function createWindow() {
});
mainWindow.on('close', () => {
try {
fs.writeFileSync(
configRootPath,
JSON.stringify({
winBounds: mainWindow.getBounds(),
winIsMaximized: mainWindow.isMaximized(),
disableAutoUpgrade,
}),
'utf-8'
);
if (saveConfigOnExit) {
fs.writeFileSync(
configRootPath,
JSON.stringify({
winBounds: mainWindow.getBounds(),
winIsMaximized: mainWindow.isMaximized(),
disableAutoUpgrade,
}),
'utf-8'
);
}
} catch (err) {
console.log('Error saving config-root:', err.message);
}

View File

@@ -91,6 +91,7 @@ module.exports = ({ editMenu }) => [
{ command: 'folder.showLogs', hideDisabled: true },
{ command: 'folder.showData', hideDisabled: true },
{ command: 'new.gist', hideDisabled: true },
{ command: 'app.resetSettings', hideDisabled: true },
],
},
{

View File

@@ -102,6 +102,12 @@ module.exports = {
return res;
},
deleteSettings_meta: true,
async deleteSettings() {
await fs.unlink(path.join(datadir(), 'settings.json'));
return true;
},
fillMissingSettings(value) {
const res = {
...value,

View File

@@ -41,6 +41,8 @@ import { disconnectServerConnection } from '../appobj/ConnectionAppObject.svelte
import UploadErrorModal from '../modals/UploadErrorModal.svelte';
import ErrorMessageModal from '../modals/ErrorMessageModal.svelte';
import NewCollectionModal from '../modals/NewCollectionModal.svelte';
import ConfirmModal from '../modals/ConfirmModal.svelte';
import localforage from 'localforage';
// function themeCommand(theme: ThemeDefinition) {
// return {
@@ -451,6 +453,28 @@ registerCommand({
onClick: () => electron.showItemInFolder(getCurrentConfig().connectionsFilePath),
});
registerCommand({
id: 'app.resetSettings',
category: 'File',
name: 'Reset layout data & settings',
testEnabled: () => true,
onClick: () => {
showModal(ConfirmModal, {
message: `Really reset layout data? All opened tabs, settings and layout data will be lost. Connections and saved files will be preserved. After this, restart DbGate for applying changes.`,
onConfirm: async () => {
await apiCall('config/delete-settings');
localStorage.clear();
await localforage.clear();
if (getElectron()) {
getElectron().send('reset-settings');
} else {
window.location.reload();
}
},
});
},
});
registerCommand({
id: 'file.import',
category: 'File',