Width, height and length belong to the PROJECT, not to a scene: a scene cropped on the timeline and regenerated comes back at the project's size, because the crop was a timeline decision and a regenerate is a new scene. They sit in the Constructor beside the prompt -- the two things settled in one sitting -- and travel to the graph on the path the prompt already uses. No new mechanism: the pipeline declares roles at `project.video` the same way it declares the prompt, so core still names no node and no setting. A role whose value is a number gets a number control instead of a box; that is the whole of the UI change. What the pipeline does not offer is not shown, so a graph with no length input simply has no Length. Bounds are the NODE's and stay there -- it already refuses a value outside them with a reason, beside Generate. A project file is the one thing here that outlives the code that wrote it, so everything read back out of one is checked: a whole positive number, or gone. Also, four faults the browser suite was already red with before this: * Six tests still clicked a rail toggle that moved into the timeline head. * At 420px the panel OVERLAYS the centre -- and the named toggles are in the centre, so the panel covered the control that closes it. That is the v4 trap this project forbids. They are not offered at that width now; the View menu, which nothing can cover, is the way in and out. * A 768px window laid out 860px wide and scrolled sideways. Root cause, and it was never about one component: a flex item's automatic minimum is its CONTENT, so every stack, split, panel body and frame region in the app handed its content's width upward. A scroller that cannot shrink below what it holds is not a scroller -- the strip of scenes made the WINDOW as wide as the strip. Floored at the five places every layout routes through. * A bin test counted `.cx-cell-glyph` across the whole page, so the timeline drawing cells with the same glyph in them broke a test about the bin.
27 lines
1.1 KiB
JavaScript
27 lines
1.1 KiB
JavaScript
/** The window moved into the Settings menu when the app grew a menu bar. */
|
|
export async function openPipelineWindow(page) {
|
|
await page.getByRole("button", { name: "Settings" }).click();
|
|
await page.getByRole("menuitem", { name: /Models and pipeline/ }).click();
|
|
}
|
|
|
|
/**
|
|
* The control that shows and hides a docked region.
|
|
*
|
|
* It used to be a glyph in a rail on the outer edge of the window; it is a
|
|
* named button in the timeline head now, which is where v4 keeps it. Written
|
|
* once here because six tests press it and none of them are about where it is.
|
|
*/
|
|
export const regionToggle = (page, name) =>
|
|
page.locator(".cx-panel-head").getByRole("button", { name, exact: true });
|
|
|
|
/**
|
|
* The same toggle from the menu bar, which nothing can cover.
|
|
*
|
|
* The way in and out at a width where the panels overlay the centre -- the
|
|
* named buttons live in the timeline head, and that is what gets covered.
|
|
*/
|
|
export const menuToggle = (page, region) => async () => {
|
|
await page.getByRole("button", { name: "View" }).click();
|
|
await page.getByRole("menuitem", { name: new RegExp(`(Show|Hide) ${region}`) }).click();
|
|
};
|