Fix project loading issues

Fix scroll bar clipping too much into tab bar
This commit is contained in:
JannisX11 2024-04-18 18:27:08 +02:00
parent 6eeb073e9e
commit 64038e9153
6 changed files with 18 additions and 6 deletions

View File

@ -643,6 +643,8 @@
overflow-x: auto;
overflow-y: hidden;
margin-right: auto;
scrollbar-width: none;
scroll-behavior: smooth;
}
#tab_bar .project_tab {
cursor: pointer;

View File

@ -236,7 +236,7 @@
<div id="blackout" class="darken"></div>
<div id="tab_bar" :class="{drag_mode: drag_target_index !== null}">
<div id="tab_bar_list">
<div id="tab_bar_list" @wheel="mousewheelBar($event)" ref="tab_bar_list">
<div
class="project_tab"
v-for="(project, index) in tabs" :key="project.uuid"

View File

@ -410,10 +410,10 @@ const MenuBar = {
tools.sort((a, b) => {
return (a.modes ? modes.indexOf(a.modes[0]) : -1) - (b.modes ? modes.indexOf(b.modes[0]) : -1);
})
let mode = tools[0].modes[0];
let mode = tools[0].modes?.[0];
for (let i = 0; i < tools.length; i++) {
if (tools[i].modes[0] !== mode) {
mode = tools[i].modes[0];
if (tools[i].modes?.[0] !== mode) {
mode = tools[i].modes?.[0];
tools.splice(i, 0, '_');
i++;
}

View File

@ -313,7 +313,9 @@ var codec = new Codec('project', {
for (var key in ModelProject.properties) {
ModelProject.properties[key].merge(Project, model)
}
if (path) Project.name = pathToName(path, false);
if (path && path != 'backup.bbmodel') {
Project.name = pathToName(path, false);
}
if (model.overrides) {
Project.overrides = model.overrides;

View File

@ -946,6 +946,12 @@ onVueSetup(() => {
delete this.thumbnail_timeout;
}, 80)
}
},
mousewheelBar(event) {
if (event.deltaY) {
event.preventDefault();
this.$refs.tab_bar_list.scrollLeft += event.deltaY;
}
}
},
watch: {

View File

@ -620,9 +620,11 @@ const UVEditor = {
},
loadViewportOffset() {
let uv_viewport = this.vue.$refs.viewport;
if (!uv_viewport) return;
if (!uv_viewport || !Project) return;
UVEditor.setZoom(Project.uv_viewport.zoom);
let project = Project;
Vue.nextTick(() => {
if (!Project || project != Project) return;
uv_viewport.scrollLeft = Project.uv_viewport.offset[0] * this.vue.inner_width + this.width/2;
uv_viewport.scrollTop = Project.uv_viewport.offset[1] * this.vue.inner_height + this.height/2;
})