From 08a0cbc963658051e004e7fd226b5ded92c770ff Mon Sep 17 00:00:00 2001 From: PKief Date: Tue, 3 Apr 2018 20:21:48 +0200 Subject: [PATCH] Added option to disable restart message. References #225 --- package.json | 5 +++++ package.nls.de.json | 1 + package.nls.es.json | 1 + package.nls.fr.json | 1 + package.nls.json | 1 + package.nls.pt-BR.json | 1 + package.nls.pt-PT.json | 1 + package.nls.ru.json | 1 + package.nls.zh-CN.json | 1 + src/helpers/change-detection.ts | 2 +- src/messages/reload.ts | 28 +++++++++++++++++++++++++--- 11 files changed, 39 insertions(+), 4 deletions(-) diff --git a/package.json b/package.json index a8502ed098..2f0c96ea24 100644 --- a/package.json +++ b/package.json @@ -82,6 +82,11 @@ "default": false, "description": "%configuration.showUpdateMessage%" }, + "material-icon-theme.showReloadMessage": { + "type": "boolean", + "default": true, + "description": "%configuration.showReloadMessage%" + }, "material-icon-theme.activeIconPack": { "type": "string", "default": "angular", diff --git a/package.nls.de.json b/package.nls.de.json index fdcf03d2ed..84bee425a6 100644 --- a/package.nls.de.json +++ b/package.nls.de.json @@ -11,6 +11,7 @@ "configuration.languages.associations": "Benutzerdefinierte Language Icons konfigurieren.", "configuration.showWelcomeMessage": "Willkommensnachricht nach der ersten Installation anzeigen.", "configuration.showUpdateMessage": "Nachricht bei Aktualisierungen anzeigen.", + "configuration.showReloadMessage": "Nachricht zum Neustarten anzeigen.", "configuration.activeIconPack": "Icon Paket auswählen, die bestimme Icons aktivieren.", "configuration.folders.theme": "Art der Ordner Icons auswählen.", "configuration.folders.color": "Farbe der Ordner Icons verändern.", diff --git a/package.nls.es.json b/package.nls.es.json index b44d5f82cc..ef5941894b 100644 --- a/package.nls.es.json +++ b/package.nls.es.json @@ -11,6 +11,7 @@ "configuration.languages.associations": "Configurar asociaciones personalizadas de iconos de idioma.", "configuration.showWelcomeMessage": "Mostrar mensaje de bienvenida después de la primera instalación.", "configuration.showUpdateMessage": "Mostrar mensaje al actualizar.", + "configuration.showReloadMessage": "Mostrar mensaje de reinicio.", "configuration.activeIconPack": "Seleccione un paquete de iconos que permita iconos específicos.", "configuration.folders.theme": "Seleccione el tipo de iconos de carpeta.", "configuration.folders.color": "Cambia el color de las carpetas.", diff --git a/package.nls.fr.json b/package.nls.fr.json index 1d4a006dc3..da62a89cb6 100644 --- a/package.nls.fr.json +++ b/package.nls.fr.json @@ -11,6 +11,7 @@ "configuration.languages.associations": "Configurer des associations d'icônes de langue personnalisées.", "configuration.showWelcomeMessage": "Afficher le message de bienvenue après l'installation initiale", "configuration.showUpdateMessage": "Afficher le message de mise à jour.", + "configuration.showReloadMessage": "Afficher le message de redémarrage.", "configuration.activeIconPack": "Sélectionner un pack d'icônes qui active des icônes spécifiques.", "configuration.folders.theme": "Sélectionner le type d'icônes de dossier.", "configuration.folders.color": "Changer la couleur des icônes du dossier.", diff --git a/package.nls.json b/package.nls.json index c6cf6149f2..c9872b511c 100644 --- a/package.nls.json +++ b/package.nls.json @@ -11,6 +11,7 @@ "configuration.languages.associations": "Set custom language icon associations.", "configuration.showWelcomeMessage": "Show the welcome message after first installation.", "configuration.showUpdateMessage": "Show the update message after each update.", + "configuration.showReloadMessage": "Show restart notification.", "configuration.activeIconPack": "Select an icon pack that enables specific icons.", "configuration.folders.theme": "Set the type for the folder icons.", "configuration.folders.color": "Change the color of the folder icons.", diff --git a/package.nls.pt-BR.json b/package.nls.pt-BR.json index 28f173cd5d..86046ac8f8 100644 --- a/package.nls.pt-BR.json +++ b/package.nls.pt-BR.json @@ -10,6 +10,7 @@ "configuration.languages.associations": "Definir ícones para associações de idiomas customizadas.", "configuration.showWelcomeMessage": "Mostrar mensagem de bem-vindo após a primeira instalação.", "configuration.showUpdateMessage": "Mostrar mensagem de atualização após cada atualização.", + "configuration.showReloadMessage": "Mostrar mensagem da reinicialização.", "configuration.activeIconPack": "Selecione um pacote de ícones que habilitam ícones específicos.", "configuration.folders.icons": "Definir o tipo de ícones de pasta.", "configuration.folders.theme": "Definir o tipo dos ícones das pastas.", diff --git a/package.nls.pt-PT.json b/package.nls.pt-PT.json index e783443c05..0d3d3a683e 100644 --- a/package.nls.pt-PT.json +++ b/package.nls.pt-PT.json @@ -10,6 +10,7 @@ "configuration.languages.associations": "Definir ícones para associações de idiomas personalizados.", "configuration.showWelcomeMessage": "Exibir mensagem de boas-vindas após a primeira instalação.", "configuration.showUpdateMessage": "Exibir mensagem de actualização após cada actualização.", + "configuration.showReloadMessage": "Exibir mensagem da reinicialização.", "configuration.activeIconPack": "Selecciona um pacote de ícones que habilitam ícones específicos.", "configuration.folders.icons": "Definir o formato de ícones de directórios.", "configuration.folders.theme": "Definir o formato dos ícones dos directórios.", diff --git a/package.nls.ru.json b/package.nls.ru.json index 3dab0d83dc..0face68330 100644 --- a/package.nls.ru.json +++ b/package.nls.ru.json @@ -11,6 +11,7 @@ "configuration.languages.associations": "Настройка ассоциаций значков пользовательского языка.", "configuration.showWelcomeMessage": "Показывать приветственное сообщение после первой установки.", "configuration.showUpdateMessage": "Показывать сообщение об обновлении после каждого обновления.", + "configuration.showReloadMessage": "Показывать сообщение перезагрузки.", "configuration.activeIconPack": "Выберите набор значков, которые включают определенные значки.", "configuration.folders.theme": "Установить тип иконок для папок.", "configuration.folders.color": "Изменение цвета иконок папок.", diff --git a/package.nls.zh-CN.json b/package.nls.zh-CN.json index 270bb0df2d..47748f56ac 100644 --- a/package.nls.zh-CN.json +++ b/package.nls.zh-CN.json @@ -11,6 +11,7 @@ "configuration.languages.associations": "定义自定义语言映射的图标。", "configuration.showWelcomeMessage": "首次安装后显示欢迎信息。", "configuration.showUpdateMessage": "更新后显示升级信息。", + "configuration.showReloadMessage": "显示重启消息。", "configuration.activeIconPack": "选择一个图标包。", "configuration.folders.theme": "设置文件夹图标类型。\n接受的值为 \"specific\", \"classic\"和\"none\"。", "configuration.folders.color": "更改文件夹图标的颜色。", diff --git a/src/helpers/change-detection.ts b/src/helpers/change-detection.ts index ea38d9eaad..963e728115 100644 --- a/src/helpers/change-detection.ts +++ b/src/helpers/change-detection.ts @@ -33,7 +33,7 @@ const compareConfigs = (configs: string[]): Promise<{ [name: string]: any }> => return getMaterialIconsJSON().then(json => { configs.forEach(configName => { // no further actions (e.g. reload) required - if (/show(Welcome|Update)Message/g.test(configName)) return; + if (/show(Welcome|Update|Reload)Message/g.test(configName)) return; const configValue = getThemeConfig(configName).globalValue; const currentState = getObjectPropertyValue(json.options, configName); diff --git a/src/messages/reload.ts b/src/messages/reload.ts index 8ed904148b..fbcaaa3dcb 100644 --- a/src/messages/reload.ts +++ b/src/messages/reload.ts @@ -1,15 +1,37 @@ import * as vscode from 'vscode'; import * as i18n from './../i18n'; +import * as helpers from './../helpers'; /** User has to confirm if he wants to reload the editor */ export const showConfirmToReloadMessage = (): Promise => { return new Promise((resolve, reject) => { + // if the user does not want to see the reload message + if (helpers.getThemeConfig('showReloadMessage').globalValue === false) return; + vscode.window.showInformationMessage( i18n.translate('confirmReload'), - i18n.translate('reload') + i18n.translate('reload'), + i18n.translate('neverShowAgain') ).then(value => { - if (value === i18n.translate('reload')) resolve(true); - else resolve(false); + switch (value) { + case i18n.translate('reload'): + resolve(true); + break; + + case i18n.translate('neverShowAgain'): + disableReloadMessage(); + resolve(false); + break; + + default: + resolve(false); + break; + } }); }); }; + +/** Disable the reload message in the global settings */ +const disableReloadMessage = () => { + helpers.setThemeConfig('showReloadMessage', false, true); +};