From 70e27ad555ab6e27a772754d87d1320b9151ffca Mon Sep 17 00:00:00 2001 From: JannisX11 Date: Sun, 24 Apr 2022 17:26:47 +0200 Subject: [PATCH] Add action to cycle between tabs Make Center View on Selection work in display mode, closes #1117 --- js/io/project.js | 16 ++++++++++++++++ js/preview/preview.js | 12 +++++++++--- lang/en.json | 2 ++ 3 files changed, 27 insertions(+), 3 deletions(-) diff --git a/js/io/project.js b/js/io/project.js index d644835c..690b8e40 100644 --- a/js/io/project.js +++ b/js/io/project.js @@ -876,4 +876,20 @@ BARS.defineActions(function() { dialog.show() } }) + new Action('switch_tabs', { + icon: 'swap_horiz', + category: 'file', + keybind: new Keybind({key: 9, ctrl: true, shift: null}), + condition: () => ModelProject.all.length > 1, + click(event) { + let index = ModelProject.all.indexOf(Project); + let target; + if (event && event.shiftKey) { + target = ModelProject.all[index-1] || ModelProject.all.last(); + } else { + target = ModelProject.all[index+1] || ModelProject.all[0]; + } + if (target) target.select(); + } + }) }) \ No newline at end of file diff --git a/js/preview/preview.js b/js/preview/preview.js index 30f305ff..17386bb5 100644 --- a/js/preview/preview.js +++ b/js/preview/preview.js @@ -2110,15 +2110,21 @@ BARS.defineActions(function() { new Action('focus_on_selection', { icon: 'center_focus_weak', category: 'view', - condition: () => !Modes.display, click: function () { + if (!Project) return; if (Prop.active_panel == 'uv') { UVEditor.focusOnSelection() } else { let preview = quad_previews.current; - let center = new THREE.Vector3().fromArray(getSelectionCenter()); - center.add(scene.position); + if (!preview.controls.enabled) return; + let center = new THREE.Vector3(); + if (!Modes.display) { + center.fromArray(getSelectionCenter()); + center.add(scene.position); + } else { + Transformer.getWorldPosition(center) + } let difference = new THREE.Vector3().copy(preview.controls.target).sub(center); difference.divideScalar(6) diff --git a/lang/en.json b/lang/en.json index eb34773b..17ffda9c 100644 --- a/lang/en.json +++ b/lang/en.json @@ -896,6 +896,8 @@ "action.convert_project.desc": "Converts the current project to a project for another model format", "action.close_project": "Close Project", "action.close_project.desc": "Closes the currently open project", + "action.switch_tabs": "Switch Tabs", + "action.switch_tabs.desc": "Cycle between opened tabs. Hold shift to cycle in the opposite direction.", "action.import_obj": "Import OBJ Model", "action.import_obj.desc": "Imports objects from an OBJ model as meshes", "action.import_java_block_model": "Add Java Block/Item Model",