mirror of
https://github.com/tiddly-gittly/TidGi-Desktop.git
synced 2026-01-30 12:23:12 -08:00
refactor: move more preference related ipc to service
This commit is contained in:
parent
ff69d9bfcc
commit
1b19a62efb
7 changed files with 68 additions and 61 deletions
|
|
@ -111,7 +111,10 @@
|
|||
"RemoveWorkspace": "Remove workspace",
|
||||
"WorkspaceFolderRemoved": "Workspace folder is moved",
|
||||
"GithubUserInfoNoFound": "Github UserInfo No Found",
|
||||
"GithubUserInfoNoFoundDetail": "Seems you haven't login to Github, so we disable syncing for this wiki."
|
||||
"GithubUserInfoNoFoundDetail": "Seems you haven't login to Github, so we disable syncing for this wiki.",
|
||||
"RestartMessage": "You need to restart the app for this change to take affect.",
|
||||
"Later": "Later",
|
||||
"RestartNow": "Restart Now"
|
||||
},
|
||||
"Log": {
|
||||
"CantSyncGitNotInitialized": "Unable to sync, this folder is not initialized as a Git repository",
|
||||
|
|
@ -176,6 +179,7 @@
|
|||
"Token": "Git credentials",
|
||||
"TokenDescription": "The credentials used to authenticate to the Git server so you can securely synchronize content. Can be obtained by logging in to Github, or manually obtained and filled in here.",
|
||||
"Reset": "Are you sure? All preferences will be restored to their original defaults. Browsing data won't be affected. This action cannot be undone.",
|
||||
"ResetNow": "Reset Now"
|
||||
"ResetNow": "Reset Now",
|
||||
"ClearBrowsingDataMessage": "Are you sure? All browsing data will be cleared. This action cannot be undone."
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -7,9 +7,15 @@
|
|||
},
|
||||
"Preference": {
|
||||
"Reset": "本気ですか?すべての設定が元のデフォルトに復元されます。閲覧データは影響を受けません。このアクションは元に戻せません。",
|
||||
"ResetNow": "今すぐリセット"
|
||||
"ResetNow": "今すぐリセット",
|
||||
"ClearBrowsingDataMessage": "本気ですか?すべての閲覧データが消去されます。このアクションは元に戻せません。"
|
||||
},
|
||||
"AddWorkspace": {
|
||||
"AddFileSystemPath": "サブウィキのFileSystemPathsを追加する"
|
||||
},
|
||||
"Dialog": {
|
||||
"Later": "後で",
|
||||
"RestartMessage": "この変更を有効にするには、アプリを再起動する必要があります。",
|
||||
"RestartNow": "今すぐ再起動"
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -143,7 +143,10 @@
|
|||
"DoNotCare": "不管",
|
||||
"PathPassInCantUse": "传入的路径无法使用",
|
||||
"GithubUserInfoNoFound": "找不到 Github 用户信息",
|
||||
"GithubUserInfoNoFoundDetail": "似乎你尚未登录 Github,因此此 Wiki 的同步暂时禁用,直到你登录以提供有可用于同步的登录信息。"
|
||||
"GithubUserInfoNoFoundDetail": "似乎你尚未登录 Github,因此此 Wiki 的同步暂时禁用,直到你登录以提供有可用于同步的登录信息。",
|
||||
"Later": "稍后",
|
||||
"RestartMessage": "您需要重新启动本程序才能使此更改生效。",
|
||||
"RestartNow": "现在重启"
|
||||
},
|
||||
"Cancel": "取消",
|
||||
"Preference": {
|
||||
|
|
@ -176,6 +179,7 @@
|
|||
"SystemDefalutTheme": "系统默认主题色",
|
||||
"Theme": "主题色",
|
||||
"Reset": "你确定吗?所有首选项都将恢复为其原始默认值。浏览数据不会受到影响。此操作无法撤消。",
|
||||
"ResetNow": "立即重置"
|
||||
"ResetNow": "立即重置",
|
||||
"ClearBrowsingDataMessage": "你确定吗?所有浏览数据将被清除。此操作无法撤消。"
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -5,9 +5,11 @@ export enum PreferenceChannel {
|
|||
getPreference = 'get-preference',
|
||||
getPreferences = 'get-preferences',
|
||||
requestSetPreference = 'request-set-preference',
|
||||
requestClearBrowsingData = 'request-clear-browsing-data',
|
||||
}
|
||||
|
||||
export enum WindowChannel {
|
||||
requestShowRequireRestartDialog = 'request-show-require-restart-dialog',
|
||||
requestShowPreferencesWindow = 'request-show-preferences-window',
|
||||
requestShowAboutWindow = 'request-show-about-window',
|
||||
requestShowCustomUserAgentWindow = 'request-show-custom-user-agent-window',
|
||||
|
|
|
|||
|
|
@ -1,4 +1,3 @@
|
|||
/* eslint-disable sonarjs/no-duplicate-string */
|
||||
/* eslint-disable no-param-reassign */
|
||||
import path from 'path';
|
||||
import { BrowserView, Notification, app, dialog, ipcMain, nativeTheme, shell } from 'electron';
|
||||
|
|
@ -23,7 +22,6 @@ import {
|
|||
} from '../libs/workspaces';
|
||||
import { getWorkspaceMeta, getWorkspaceMetas } from '../libs/workspace-metas';
|
||||
import {
|
||||
clearBrowsingData,
|
||||
createWorkspaceView,
|
||||
hibernateWorkspaceView,
|
||||
loadURL,
|
||||
|
|
@ -39,27 +37,10 @@ import { reloadViewsDarkReader, reloadViewsWebContentsIfDidFailLoad, getActiveBr
|
|||
import { updatePauseNotificationsInfo, getPauseNotificationsInfo } from '../libs/notifications';
|
||||
import getViewBounds from '../libs/get-view-bounds';
|
||||
import createMenu from '../libs/create-menu';
|
||||
// @ts-expect-error ts-migrate(1192) FIXME: Module '"/Users/linonetwo/Desktop/repo/TiddlyGit-D... Remove this comment to see the full error message
|
||||
import aboutWindow from '../windows/about';
|
||||
// @ts-expect-error ts-migrate(1192) FIXME: Module '"/Users/linonetwo/Desktop/repo/TiddlyGit-D... Remove this comment to see the full error message
|
||||
import addWorkspaceWindow from '../windows/add-workspace';
|
||||
// @ts-expect-error ts-migrate(1192) FIXME: Module '"/Users/linonetwo/Desktop/repo/TiddlyGit-D... Remove this comment to see the full error message
|
||||
import codeInjectionWindow from '../windows/code-injection';
|
||||
// @ts-expect-error ts-migrate(1192) FIXME: Module '"/Users/linonetwo/Desktop/repo/TiddlyGit-D... Remove this comment to see the full error message
|
||||
import customUserAgentWindow from '../windows/custom-user-agent';
|
||||
|
||||
// @ts-expect-error ts-migrate(1192) FIXME: Module '"/Users/linonetwo/Desktop/repo/TiddlyGit-D... Remove this comment to see the full error message
|
||||
import displayMediaWindow from '../windows/display-media';
|
||||
// @ts-expect-error ts-migrate(1192) FIXME: Module '"/Users/linonetwo/Desktop/repo/TiddlyGit-D... Remove this comment to see the full error message
|
||||
import editWorkspaceWindow from '../windows/edit-workspace';
|
||||
import * as mainWindow from '../windows/main';
|
||||
// @ts-expect-error ts-migrate(1192) FIXME: Module '"/Users/linonetwo/Desktop/repo/TiddlyGit-D... Remove this comment to see the full error message
|
||||
import notificationsWindow from '../windows/notifications';
|
||||
// @ts-expect-error ts-migrate(1192) FIXME: Module '"/Users/linonetwo/Desktop/repo/TiddlyGit-D... Remove this comment to see the full error message
|
||||
import preferencesWindow from '../windows/preferences';
|
||||
// @ts-expect-error ts-migrate(1192) FIXME: Module '"/Users/linonetwo/Desktop/repo/TiddlyGit-D... Remove this comment to see the full error message
|
||||
import proxyWindow from '../windows/proxy';
|
||||
// @ts-expect-error ts-migrate(1192) FIXME: Module '"/Users/linonetwo/Desktop/repo/TiddlyGit-D... Remove this comment to see the full error message
|
||||
import spellcheckLanguagesWindow from '../windows/spellcheck-languages';
|
||||
|
||||
import bindI18nListener from './i18n';
|
||||
const loadListeners = () => {
|
||||
bindI18nListener();
|
||||
|
|
@ -190,23 +171,6 @@ const loadListeners = () => {
|
|||
setSystemPreference(name, value);
|
||||
});
|
||||
|
||||
ipcMain.on('request-show-require-restart-dialog', () => {
|
||||
dialog
|
||||
.showMessageBox(preferencesWindow.get() || mainWindow.get(), {
|
||||
type: 'question',
|
||||
buttons: ['Restart Now', 'Later'],
|
||||
message: 'You need to restart the app for this change to take affect.',
|
||||
cancelId: 1,
|
||||
})
|
||||
.then(({ response }) => {
|
||||
// eslint-disable-next-line promise/always-return
|
||||
if (response === 0) {
|
||||
app.relaunch();
|
||||
app.quit();
|
||||
}
|
||||
})
|
||||
.catch(console.log);
|
||||
});
|
||||
// Notifications
|
||||
ipcMain.on('request-show-notification', (_, options) => {
|
||||
if ((Notification as any).isSupported()) {
|
||||
|
|
@ -335,22 +299,7 @@ const loadListeners = () => {
|
|||
ipcMain.on('request-remove-workspace-picture', (_, id) => {
|
||||
removeWorkspacePicture(id);
|
||||
});
|
||||
ipcMain.on('request-clear-browsing-data', () => {
|
||||
dialog
|
||||
.showMessageBox(preferencesWindow.get() || mainWindow.get(), {
|
||||
type: 'question',
|
||||
buttons: ['Clear Now', 'Cancel'],
|
||||
message: 'Are you sure? All browsing data will be cleared. This action cannot be undone.',
|
||||
cancelId: 1,
|
||||
})
|
||||
.then(({ response }) => {
|
||||
// eslint-disable-next-line promise/always-return
|
||||
if (response === 0) {
|
||||
clearBrowsingData();
|
||||
}
|
||||
})
|
||||
.catch(console.log);
|
||||
});
|
||||
|
||||
ipcMain.on('request-load-url', (_, url, id) => {
|
||||
loadURL(url, id);
|
||||
});
|
||||
|
|
|
|||
|
|
@ -109,9 +109,28 @@ export class Preference {
|
|||
ipcMain.emit(PreferenceChannel.requestShowRequireRestartDialog);
|
||||
}
|
||||
})
|
||||
.catch(console.log);
|
||||
.catch(console.error);
|
||||
}
|
||||
});
|
||||
ipcMain.on(PreferenceChannel.requestClearBrowsingData, () => {
|
||||
const availableWindowToShowDialog = this.windowService.get(WindowNames.preferences) ?? this.windowService.get(WindowNames.main);
|
||||
if (availableWindowToShowDialog !== undefined) {
|
||||
dialog
|
||||
.showMessageBox(availableWindowToShowDialog, {
|
||||
type: 'question',
|
||||
buttons: [i18n.t('Preference.ResetNow'), i18n.t('Cancel')],
|
||||
message: i18n.t('Preference.ClearBrowsingDataMessage'),
|
||||
cancelId: 1,
|
||||
})
|
||||
.then(({ response }) => {
|
||||
if (response === 0) {
|
||||
// TODO: call clearBrowsingData from workspace view service clearBrowsingData();
|
||||
}
|
||||
})
|
||||
.catch(console.error);
|
||||
}
|
||||
});
|
||||
|
||||
ipcMain.on(PreferenceChannel.getPreference, (event, name: keyof IPreferences) => {
|
||||
event.returnValue = this.get(name);
|
||||
});
|
||||
|
|
|
|||
|
|
@ -1,4 +1,4 @@
|
|||
import { BrowserWindow, ipcMain } from 'electron';
|
||||
import { BrowserWindow, ipcMain, dialog, app, App, remote } from 'electron';
|
||||
import isDevelopment from 'electron-is-dev';
|
||||
import { injectable, inject } from 'inversify';
|
||||
|
||||
|
|
@ -6,6 +6,8 @@ import serviceIdentifiers from '@services/serviceIdentifier';
|
|||
import { Preference } from '@services/preferences';
|
||||
import { Channels, WindowChannel } from '@/services/channels';
|
||||
import { WindowNames, windowDimension } from '@/services/windows/WindowProperties';
|
||||
import i18n from '@/services/libs/i18n';
|
||||
|
||||
declare const MAIN_WINDOW_WEBPACK_ENTRY: string;
|
||||
declare const MAIN_WINDOW_PRELOAD_WEBPACK_ENTRY: string;
|
||||
|
||||
|
|
@ -19,6 +21,27 @@ export class Window {
|
|||
}
|
||||
|
||||
init(): void {
|
||||
ipcMain.on(WindowChannel.requestShowRequireRestartDialog, () => {
|
||||
const availableWindowToShowDialog = this.get(WindowNames.preferences) ?? this.get(WindowNames.main);
|
||||
if (availableWindowToShowDialog !== undefined) {
|
||||
dialog
|
||||
.showMessageBox(availableWindowToShowDialog, {
|
||||
type: 'question',
|
||||
buttons: [i18n.t('Dialog.RestartNow'), i18n.t('Dialog.Later')],
|
||||
message: i18n.t('Dialog.RestartMessage'),
|
||||
cancelId: 1,
|
||||
})
|
||||
.then(({ response }) => {
|
||||
if (response === 0) {
|
||||
const availableApp = (app as App | undefined) === undefined ? remote.app : app;
|
||||
availableApp.relaunch();
|
||||
availableApp.quit();
|
||||
}
|
||||
})
|
||||
.catch(console.error);
|
||||
}
|
||||
});
|
||||
|
||||
ipcMain.on(WindowChannel.requestShowCodeInjectionWindow, (_, codeInjectionType: string) => {
|
||||
// FIXME: make codeInjectionType enum, and find places use this codeInjectionType
|
||||
void this.open(WindowNames.codeInjection, { codeInjectionType });
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue