删除监听事件

This commit is contained in:
dinglili 2024-05-31 16:09:05 +08:00 committed by wangpenglong
parent 9e714c643f
commit 2a2a520b14
6 changed files with 481 additions and 602 deletions

View File

@ -183,6 +183,14 @@
ipcRenderer.removeListener(channel, listener); ipcRenderer.removeListener(channel, listener);
return this;
},
removeAllListeners(channel) {
validateIPC(channel);
ipcRenderer.removeAllListeners(channel);
return this; return this;
} }
}, },

View File

@ -112,6 +112,7 @@ export interface IpcRenderer {
// */ // */
// postMessage(channel: string, message: any, transfer?: MessagePort[]): void; // postMessage(channel: string, message: any, transfer?: MessagePort[]): void;
removeListener(channel: string, listener: (...args: any[]) => void): this; removeListener(channel: string, listener: (...args: any[]) => void): this;
removeAllListeners(channel: string): this;
/** /**
* Send an asynchronous message to the main process via `channel`, along with * Send an asynchronous message to the main process via `channel`, along with
* arguments. Arguments will be serialized with the Structured Clone Algorithm, * arguments. Arguments will be serialized with the Structured Clone Algorithm,

View File

@ -128,8 +128,6 @@
</div> </div>
<div class="devContent"> <div class="devContent">
<form id="checkboxForm"> <form id="checkboxForm">
<script src="common.js"></script>
<!-- 复选框列表 -->
</form> </form>
<div class="formSeparator"></div> <div class="formSeparator"></div>
@ -143,20 +141,6 @@
</div> </div>
</div> </div>
<div class="tab" id="onlineInstallTab4"> <div class="tab" id="onlineInstallTab4">
<div class="progress-container" style="display: none">
<progress class="download-view" value="60" max="100"> </progress>
<span class="progress-download">插件下载进度:60%</span>
</div>
<div class="progress-container" style="display: none">
<progress class="install-view" value="50" max="100"></progress>
<span class="progress-install">插件安装进度:50%</span>
</div>
<div class="progress-container" style="display: none">
<progress class="pkg-install-view" value="50" max="100" style="overflow:hidden;"></progress>
<span class="pkg-progress-install"></span>
</div>
<div class="progress-container"> <div class="progress-container">
<progress class="progress-view" value="50" max="100" style="overflow:hidden;"></progress> <progress class="progress-view" value="50" max="100" style="overflow:hidden;"></progress>
<span class="progressinfo"></span> <span class="progressinfo"></span>

View File

@ -28,8 +28,6 @@ import { KeyCode } from 'vs/base/common/keyCodes';
import { mainWindow } from 'vs/base/browser/window'; import { mainWindow } from 'vs/base/browser/window';
import { ThemeIcon } from 'vs/base/common/themables'; import { ThemeIcon } from 'vs/base/common/themables';
import { Codicon } from 'vs/base/common/codicons'; import { Codicon } from 'vs/base/common/codicons';
import * as utils from 'vs/platform/issue/electron-main/utils';
import { addDisposableListener, EventType, getWindow, getWindowId, hide, show } from 'vs/base/browser/dom'; import { addDisposableListener, EventType, getWindow, getWindowId, hide, show } from 'vs/base/browser/dom';
import { isDisposable } from 'vs/base/common/lifecycle'; import { isDisposable } from 'vs/base/common/lifecycle';
import { IOpenerService } from 'vs/platform/opener/common/opener'; import { IOpenerService } from 'vs/platform/opener/common/opener';
@ -124,7 +122,6 @@ class deployWindow {
this.nextPrev(1); this.nextPrev(1);
} else if (msg.type === "osinfo") { } else if (msg.type === "osinfo") {
console.log("ipcRenderer osinfo "); console.log("ipcRenderer osinfo ");
// this.readOSInfo(msg);
const parentdiv = document.getElementById('osInfo') as HTMLDivElement; const parentdiv = document.getElementById('osInfo') as HTMLDivElement;
const parentdivshow = document.getElementById('osInfoShow') as HTMLDivElement; const parentdivshow = document.getElementById('osInfoShow') as HTMLDivElement;
parentdiv.innerHTML = ""; parentdiv.innerHTML = "";
@ -185,16 +182,6 @@ class deployWindow {
} }
else if (msg.type == "downloadExtDone") { else if (msg.type == "downloadExtDone") {
this.extDownloadDoneCounter++; this.extDownloadDoneCounter++;
let num = msg.extTotal;
let downloadViews = document.getElementsByClassName("download-view") as HTMLCollectionOf<HTMLProgressElement>;
var val = downloadViews[0].value
val = (this.extDownloadDoneCounter / num) * 100;
val = parseInt(val.toFixed(2));
console.log(msg.extName + "下载完成" + msg.fileName + ":" + num);
if (val > 99) val = 100;
downloadViews[0].value = val;
document.getElementsByClassName("progress-download")[0].innerHTML = "插件下载进度:" + val + "%";
const installMsg = { const installMsg = {
type: "installExt", type: "installExt",
extList: this.extList, extList: this.extList,
@ -207,21 +194,9 @@ class deployWindow {
} }
else if (msg.type == "extInstalled") { else if (msg.type == "extInstalled") {
this.progressNum++; this.progressNum++;
const extName = this.getKeyByValue(msg.extFileName, this.extMap); const extName = this.getKeyByValue(msg.extFileName, this.extMap);
this.extInstallDoneCounter++; this.extInstallDoneCounter++;
let num = msg.extTotal;
let installViews = document.getElementsByClassName("install-view") as HTMLCollectionOf<HTMLProgressElement>;
var val = installViews[0].value;
val = (this.extInstallDoneCounter / num) * 100;
val = parseInt(val.toFixed(2));
if (val > 99) val = 100;
console.log("extInstalled: " + extName + ":" + val);
this.extInstallState.set(extName, 12); this.extInstallState.set(extName, 12);
installViews[0].value = val;
document.getElementsByClassName("progress-install")[0].innerHTML = "插件安装进度:" + val + "%";
} }
else if (msg.type == "extInstalledFail") { else if (msg.type == "extInstalledFail") {
this.progressNum++; this.progressNum++;
@ -250,23 +225,9 @@ class deployWindow {
} }
} }
else if (msg.type == "depInstallSucc") { else if (msg.type == "depInstallSucc") {
console.log("------dll---depInstallSucc");
this.progressNum++; this.progressNum++;
let num = this.depList.length;
let pkgInstallViews = document.getElementsByClassName("pkg-install-view") as HTMLCollectionOf<HTMLProgressElement>;
var val = pkgInstallViews[0].value;
pkgInstallViews[0].value = 0;
document.getElementsByClassName("pkg-progress-install")[0].innerHTML = "软件安装进度:0%";
let succVal = (msg.succ / num) * 100;
succVal = parseInt(succVal.toFixed(2));
if (succVal > val)
val = succVal;
if (val > 99) val = 100;
this.extInstallState.set(msg.depName, 12); this.extInstallState.set(msg.depName, 12);
pkgInstallViews[0].value = val;
document.getElementsByClassName("pkg-progress-install")[0].innerHTML = "软件安装进度:" + val + "%";
this.checkScripts(msg); this.checkScripts(msg);
} }
else if (msg.type === "depInstallFail") { else if (msg.type === "depInstallFail") {
@ -484,6 +445,7 @@ class deployWindow {
this.prevBtn = document.getElementById("prevStep") as HTMLButtonElement; this.prevBtn = document.getElementById("prevStep") as HTMLButtonElement;
this.cancelBtn = document.getElementById('cancel') as HTMLButtonElement; this.cancelBtn = document.getElementById('cancel') as HTMLButtonElement;
this.showTab(this.currentTab); this.showTab(this.currentTab);
this.removeAllListeners();
this.registerEventListener(); this.registerEventListener();
} }
@ -586,26 +548,6 @@ class deployWindow {
progress_view[0].value = 0; progress_view[0].value = 0;
document.getElementsByClassName("progressinfo")[0].innerHTML = "安装进度:0%"; document.getElementsByClassName("progressinfo")[0].innerHTML = "安装进度:0%";
if (this.depList.length === 0) {
let cname = document.getElementsByClassName("pkg-install-view")[0];
if (cname) {
document.getElementsByClassName("pkg-progress-install")[0].innerHTML = " ";
cname.className = "grey-progress-view";
}
let grey_progress_view = document.getElementsByClassName("pkg-progress-install") as HTMLCollectionOf<HTMLProgressElement>;
grey_progress_view[0].value = 0;
// document.getElementsByClassName("pkg-progress-install")[0].style = "display: inline-block; background-color: gray;";
}
else {
let cname = document.getElementsByClassName("pkg-install-view")[0];
if (!cname) {
document.getElementsByClassName("grey-progress-view")[0].className = "pkg-install-view";
}
let pkg_install_view = document.getElementsByClassName("pkg-install-view") as HTMLCollectionOf<HTMLProgressElement>;
pkg_install_view[0].value = 0;
document.getElementsByClassName("pkg-progress-install")[0].innerHTML = "软件安装进度:0%";
}
let extPreElement = document.getElementById("extInstallLogPre"); let extPreElement = document.getElementById("extInstallLogPre");
extPreElement!.innerHTML = ""; extPreElement!.innerHTML = "";
@ -620,9 +562,9 @@ class deployWindow {
ipcRenderer.send('kylinide.installWizard.msg.process', installPkgMsg); ipcRenderer.send('kylinide.installWizard.msg.process', installPkgMsg);
ipcRenderer.send('kylinide.installWizard.init', { type: "writeJson", }); ipcRenderer.send('kylinide.installWizard.init', { type: "writeJson", });
} else if (this.onlineInstallTabArray[this.onlineInstallTabArrayIndex] === "onlineInstallTab4") { } else if (this.onlineInstallTabArray[this.onlineInstallTabArrayIndex] === "onlineInstallTab4") {
ipcRenderer.send('kylinide.installWizard.ok');
console.log("onlineInstallTab4");
this.removeAllListeners(); this.removeAllListeners();
ipcRenderer.send('kylinide.installWizard.skipWizard');
console.log("onlineInstallTab4");
return; return;
} }
if (this.onlineInstallTabArrayIndex < this.onlineInstallTabArray.length - 1) { if (this.onlineInstallTabArrayIndex < this.onlineInstallTabArray.length - 1) {
@ -694,6 +636,7 @@ class deployWindow {
// ipcRenderer.send('kylinide.installWizard.closeBefore', { type: "processterm" }); // ipcRenderer.send('kylinide.installWizard.closeBefore', { type: "processterm" });
} }
else { else {
console.log("this -------------closeBtn");
ipcRenderer.send('kylinide.installWizard.closeWizard', { type: "close" }); ipcRenderer.send('kylinide.installWizard.closeWizard', { type: "close" });
this.removeAllListeners(); this.removeAllListeners();
} }
@ -798,47 +741,6 @@ class deployWindow {
} }
} }
//显示系统信息
readOSInfo(os: string) {
console.log('readosinf');
const parentdiv = document.getElementById('osInfo') as HTMLDivElement;
const parentdivshow = document.getElementById('osInfoShow') as HTMLDivElement;
parentdiv.innerHTML = "";
parentdivshow.innerHTML = "";
const kyinfoPath = '/etc/.kyinfo';
const osReleasePath = '/etc/os-release';
let osinfo;
if (!os) {
osinfo = `<h3>操作系统信息</h3><p>操作系统检测脚本运行失败,未成功检测到操作系统类型</p>`
} else {
osinfo = `<h3>操作系统信息</h3><p>已检测到当前操作系统信息为:<span style="color:#1177BB;">${os}</span></p>`;
}
parentdiv.innerHTML = osinfo;
let data = "";
let osdiv;
const fs = require('fs');
if (fs.existsSync(kyinfoPath)) {
try {
osdiv = `<p>判断依据:</p><p>cat /etc/.kyinfo</p>`
data = fs.readFileSync(kyinfoPath, 'utf8');
data = data.replace(/\n/g, '<br>');
} catch (err) {
}
} else if (fs.existsSync(osReleasePath)) {
try {
osdiv = "操作系统信息:cat /etc/os-release"
data = fs.readFileSync(osReleasePath, 'utf8');
data = data.replace(/\n/g, '<br>');
} catch (err) { }
}
if (osdiv == "" && data == "") {
parentdivshow.innerHTML = "读取操作系统信息失败";
} else {
parentdivshow.innerHTML = `${osdiv}<p>${data}</p>`;
}
}
setFisrtClass(depDataObject: any, jsonSelectKey: string[]) { setFisrtClass(depDataObject: any, jsonSelectKey: string[]) {
var form = document.getElementById("checkboxForm"); var form = document.getElementById("checkboxForm");
// var depDataObject = JSON.parse(fs.readFileSync(depPath, 'utf-8')); // var depDataObject = JSON.parse(fs.readFileSync(depPath, 'utf-8'));
@ -1100,8 +1002,7 @@ class deployWindow {
type: "installScript", type: "installScript",
extList: this.extList, extList: this.extList,
depList: this.depList, depList: this.depList,
script: obj, script: obj
dst: utils.configDir()
}; };
ipcRenderer.send("kylinide.installWizard.msg.process", installMsg); ipcRenderer.send("kylinide.installWizard.msg.process", installMsg);
} }

File diff suppressed because it is too large Load Diff

View File

@ -1,23 +0,0 @@
// import * as os from 'os';
// import * as fs from 'fs';
//获取全局变量g_index.json下载网络
export function get_g_index_url() {
let { gIndexUrl } = require('../../../../../../product.json');
return gIndexUrl;
}
export function configDir() {
// 获取用户目录
const os = require('os');
const fs = require('fs');
const userHome = os.homedir();
// 创建日志目录
const configDir = `${userHome}/.config/Kylin-Code/installconfig`;
if (!fs.existsSync(configDir)) {
fs.mkdirSync(configDir, { recursive: true }); // 递归创建目录
}
return configDir;
}