Matches the existing vendor/easy-asterisk convention (used by services/asterisk.sh) instead of two one-off top-level directories that cluttered the repo root and didn't look like anything else next to setup.sh, lib/, services/, extras/. Only the two services' own SRC_DIR path resolution and header comments needed updating — nothing else in the repo referenced the old ./ai-stack / ./paintplus paths. Also documents vendor/ in README.md's Layout section.
57 lines
1.6 KiB
JavaScript
57 lines
1.6 KiB
JavaScript
import app from '../app.js';
|
|
import config from '../config.js';
|
|
import { Base_action } from './base.js';
|
|
|
|
export class Set_selection_action extends Base_action {
|
|
/**
|
|
* Sets the selection to the specified position and dimensions
|
|
*/
|
|
constructor(x, y, width, height, old_settings_override) {
|
|
super('set_selection', 'Set Selection');
|
|
this.x = x;
|
|
this.y = y;
|
|
this.width = width;
|
|
this.height = height;
|
|
this.settings_reference = null;
|
|
this.old_settings_data = null;
|
|
this.old_settings_override = old_settings_override ? JSON.parse(JSON.stringify(old_settings_override)) || null : null;
|
|
}
|
|
|
|
async do() {
|
|
super.do();
|
|
this.settings_reference = app.Layers.Base_selection.find_settings();
|
|
this.old_settings_data = JSON.parse(JSON.stringify(this.settings_reference.data));
|
|
if (this.x != null)
|
|
this.settings_reference.data.x = this.x;
|
|
if (this.y != null)
|
|
this.settings_reference.data.y = this.y;
|
|
if (this.width != null)
|
|
this.settings_reference.data.width = this.width;
|
|
if (this.height != null)
|
|
this.settings_reference.data.height = this.height;
|
|
|
|
config.need_render = true;
|
|
}
|
|
|
|
async undo() {
|
|
super.undo()
|
|
if (this.old_settings_override) {
|
|
for (let prop in this.old_settings_override) {
|
|
this.settings_reference.data[prop] = this.old_settings_override[prop];
|
|
}
|
|
} else {
|
|
for (let prop in this.old_settings_data) {
|
|
this.settings_reference.data[prop] = this.old_settings_data[prop];
|
|
}
|
|
}
|
|
this.settings_reference = null;
|
|
this.old_settings_data = null;
|
|
config.need_render = true;
|
|
}
|
|
|
|
free() {
|
|
this.settings_reference = null;
|
|
this.old_settings_override = null;
|
|
this.old_settings_data = null;
|
|
}
|
|
} |