feat: ask save config dialog

This commit is contained in:
linyuchen 2024-03-21 21:53:17 +08:00
parent d339a778df
commit 0cd41a8a52
5 changed files with 38 additions and 10 deletions

View File

@ -1,10 +1,10 @@
{
"manifest_version": 4,
"type": "extension",
"name": "LLOneBot v3.18.2",
"name": "LLOneBot v3.18.3",
"slug": "LLOneBot",
"description": "LiteLoaderQQNT的OneBotApi,不支持商店在线更新",
"version": "3.18.2",
"version": "3.18.3",
"icon": "./icon.jpg",
"authors": [
{

View File

@ -49,11 +49,13 @@ import {checkFfmpeg} from "../common/utils/video";
let running = false;
let mainWindow: BrowserWindow | null = null;
// 加载插件时触发
function onLoad() {
log("llonebot main onLoad");
ipcMain.handle(CHANNEL_CHECK_VERSION, async (event, arg) => {
return checkNewVersion();
});
ipcMain.handle(CHANNEL_UPDATE, async (event, arg) => {
@ -105,8 +107,26 @@ function onLoad() {
const config = getConfigUtil().getConfig()
return config;
})
ipcMain.on(CHANNEL_SET_CONFIG, (event, config: Config) => {
setConfig(config).then();
ipcMain.on(CHANNEL_SET_CONFIG, (event, ask:boolean, config: Config) => {
if (!ask){
setConfig(config).then();
return
}
dialog.showMessageBox(mainWindow, {
type: 'question',
buttons: ['确认', '取消'],
defaultId: 0, // 默认选中的按钮0 代表第一个按钮,即 "确认"
title: '确认保存',
message: '是否保存?',
detail: 'LLOneBot配置已更改是否保存'
}).then(result => {
if (result.response === 0) {
setConfig(config).then();
} else {
}
}).catch(err => {
log("保存设置询问弹窗错误", err);
});
})
ipcMain.on(CHANNEL_LOG, (event, arg) => {
@ -402,6 +422,7 @@ function onBrowserWindowCreated(window: BrowserWindow) {
if (selfInfo.uid) {
return
}
mainWindow = window;
log("window create", window.webContents.getURL().toString())
try {
hookNTQQApiCall(window);
@ -417,6 +438,7 @@ try {
console.log(e.toString())
}
// 这两个函数都是可选的
export {
onBrowserWindowCreated

View File

@ -24,8 +24,8 @@ const llonebot = {
updateLLOneBot:async (): Promise<boolean> => {
return ipcRenderer.invoke(CHANNEL_UPDATE);
},
setConfig: (config: Config) => {
ipcRenderer.send(CHANNEL_SET_CONFIG, config);
setConfig: (ask: boolean, config: Config) => {
ipcRenderer.send(CHANNEL_SET_CONFIG, ask, config);
},
getConfig: async (): Promise<Config> => {
return ipcRenderer.invoke(CHANNEL_GET_CONFIG);

View File

@ -21,7 +21,7 @@ async function onSettingWindowCreated(view: Element) {
else config[key] = value;
if (!['heartInterval', 'token', 'ffmpeg'].includes(key)) {
window.llonebot.setConfig(config);
window.llonebot.setConfig(false, config);
}
}
};
@ -324,7 +324,7 @@ async function onSettingWindowCreated(view: Element) {
doc.querySelector('#config-ob11-save').addEventListener('click', () => {
config.ob11 = ob11Config;
window.llonebot.setConfig(config);
window.llonebot.setConfig(false, config);
// window.location.reload();
showError().then()
alert('保存成功');
@ -363,8 +363,14 @@ async function onSettingWindowCreated(view: Element) {
}
view.querySelector(".llonebot-update-button").addEventListener("click", update);
}
};
}
window.llonebot.checkVersion().then(checkVersionFunc);
window.addEventListener('beforeunload', (event) => {
if (JSON.stringify(ob11Config) === JSON.stringify(config.ob11)) return;
config.ob11 = ob11Config;
window.llonebot.setConfig(true, config);
});
}

View File

@ -1 +1 @@
export const version = "3.18.2"
export const version = "3.18.3"