MCPcopy
hub / github.com/wavetermdev/waveterm / initIpcHandlers

Function initIpcHandlers

emain/emain-ipc.ts:195–522  ·  view source on GitHub ↗
()

Source from the content-addressed store, hash-verified

193}
194
195export function initIpcHandlers() {
196 electron.ipcMain.on("open-external", (event, url) => {
197 if (url && typeof url === "string") {
198 fireAndForget(() =>
199 callWithOriginalXdgCurrentDesktopAsync(() =>
200 electron.shell.openExternal(url).catch((err) => {
201 console.error(`Failed to open URL ${url}:`, err);
202 })
203 )
204 );
205 } else {
206 console.error("Invalid URL received in open-external event:", url);
207 }
208 });
209
210 electron.ipcMain.on("webview-image-contextmenu", (event: electron.IpcMainEvent, payload: { src: string }) => {
211 const menu = new electron.Menu();
212 const win = getWaveWindowByWebContentsId(event.sender.hostWebContents?.id);
213 if (win == null) {
214 return;
215 }
216 menu.append(
217 new electron.MenuItem({
218 label: "Save Image",
219 click: () => {
220 const resultP = getUrlInSession(event.sender.session, payload.src);
221 resultP
222 .then((result) => {
223 saveImageFileWithNativeDialog(
224 event.sender.hostWebContents,
225 result.fileName,
226 result.mimeType,
227 result.stream
228 );
229 })
230 .catch((e) => {
231 console.log("error getting image", e);
232 });
233 },
234 })
235 );
236 menu.popup();
237 });
238
239 electron.ipcMain.on("webview-mouse-navigate", (event: electron.IpcMainEvent, direction: string) => {
240 if (direction === "back") {
241 event.sender.navigationHistory.goBack();
242 } else if (direction === "forward") {
243 event.sender.navigationHistory.goForward();
244 }
245 });
246
247 electron.ipcMain.on("download", (event, payload) => {
248 const baseName = encodeURIComponent(path.basename(payload.filePath));
249 const streamingUrl =
250 getWebServerEndpoint() + "/wave/stream-file/" + baseName + "?path=" + encodeURIComponent(payload.filePath);
251 event.sender.downloadURL(streamingUrl);
252 });

Callers 1

appMainFunction · 0.90

Calls 15

fireAndForgetFunction · 0.90
getWaveVersionFunction · 0.90
handleCtrlShiftStateFunction · 0.90
setWasActiveFunction · 0.90
incrementTermCommandsRunFunction · 0.90
incrementTermCommandsWslFunction · 0.90

Tested by

no test coverage detected