exit confirmation

This commit is contained in:
viliusle 2021-04-03 23:06:56 +03:00
parent 7e7454087a
commit 481fd5ae4c
3 changed files with 19 additions and 1 deletions

View File

@ -4,6 +4,7 @@
*/
import config from './../config.js';
import Base_layers_class from './base-layers.js';
import GUI_tools_class from './gui/gui-tools.js';
import GUI_preview_class from './gui/gui-preview.js';
import GUI_colors_class from './gui/gui-colors.js';
@ -12,6 +13,7 @@ import GUI_information_class from './gui/gui-information.js';
import GUI_details_class from './gui/gui-details.js';
import GUI_menu_class from './gui/gui-menu.js';
import Tools_translate_class from './../modules/tools/translate.js';
import Tools_settings_class from './../modules/tools/settings.js';
import Helper_class from './../libs/helpers.js';
import alertify from './../../../node_modules/alertifyjs/build/alertify.min.js';
@ -30,6 +32,7 @@ class Base_gui_class {
instance = this;
this.Helper = new Helper_class();
this.Base_layers = new Base_layers_class();
//last used menu id
this.last_menu = '';
@ -62,6 +65,7 @@ class Base_gui_class {
this.GUI_details = new GUI_details_class(this);
this.GUI_menu = new GUI_menu_class();
this.Tools_translate = new Tools_translate_class();
this.Tools_settings = new Tools_settings_class();
this.modules = {};
}
@ -205,6 +209,16 @@ class Base_gui_class {
config.need_render = true;
}, false);
this.check_canvas_offset();
//confirmation on exit
var exit_confirm = this.Tools_settings.get_setting('exit_confirm');
window.addEventListener('beforeunload', function (e) {
if(exit_confirm && (config.layers.length > 1 || _this.Base_layers.is_layer_empty(config.layer.id) == false)){
e.preventDefault();
e.returnValue = '';
}
return undefined;
});
}
check_canvas_offset() {

View File

@ -501,7 +501,7 @@ class Base_layers_class {
is_layer_empty(id) {
var link = this.get_layer(id);
if (link.width == 0 && link.height == 0 && link.data == null) {
if ((link.width == 0 || link.width === null) && (link.height == 0 || link.height === null) && link.data == null) {
return true;
}

View File

@ -21,6 +21,7 @@ class Tools_settings_class {
var snap = this.get_setting('snap');
var guides = this.get_setting('guides');
var safe_search = this.get_setting('safe_search');
var exit_confirm = this.get_setting('exit_confirm');
var settings = {
title: 'Settings',
@ -33,6 +34,7 @@ class Tools_settings_class {
{name: "snap", title: "Enable snap:", value: snap},
{name: "guides", title: "Enable guides:", value: guides},
{name: "safe_search", title: "Safe search:", value: safe_search},
{name: "exit_confirm", title: "Exit confirmation:", value: exit_confirm},
],
on_change: function (params) {
this.Base_gui.change_theme(params.theme);
@ -57,6 +59,7 @@ class Tools_settings_class {
this.save_setting('snap', params.snap);
this.save_setting('guides', params.guides);
this.save_setting('safe_search', params.safe_search);
this.save_setting('exit_confirm', params.exit_confirm);
//update config
config.TRANSPARENCY = this.get_setting('transparency');
@ -102,6 +105,7 @@ class Tools_settings_class {
'snap': true,
'guides': true,
'safe_search': false,
'exit_confirm': true,
};
var value = this.Helper.getCookie(key);