mirror of
https://github.com/viliusle/miniPaint.git
synced 2026-02-06 11:21:47 +00:00
exit confirmation
This commit is contained in:
parent
7e7454087a
commit
481fd5ae4c
@ -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() {
|
||||
|
||||
@ -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;
|
||||
}
|
||||
|
||||
|
||||
@ -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);
|
||||
|
||||
Loading…
Reference in New Issue
Block a user