12.2a: folders duplicate with their contents, folder opacity, format version 8, View > Snap (Compositor 1.1.5–1.1.6)

This commit is contained in:
雷电芽衣 committed 2026-09-26 18:17:14 -04:00
1 parent ee34c338d4
commit f1b2c65c1e
52 files changed
+909 -239

No files matched your search

+16
View File
@@ -1,5 +1,6 @@
#include "UI/LayerAppearanceControls.h"
#include "UI/BlendModePicker.h"
#include <QLabel>
#include <QtTest>
// The opacity slider and field, one undo step a drag.
@@ -52,6 +53,21 @@ void LayerAppearanceControlsTests::theControlsFollowTheActiveLayerAndItsGate()
QVERIFY(controls.widget.findChild<BlendModePicker *>() != nullptr);
controls.session.selectLayers({controls.session.document().value().layers.front().id, controls.session.document().value().layers.back().id}, std::nullopt);
QVERIFY(!controls.widget.isEnabled());
// A folder: its opacity edits, its blend mode rests.
controls.session.addGroup();
QVERIFY(controls.widget.isEnabled() && controls.slider.isEnabled() && controls.field.isEnabled());
const auto blendRow = [&] {
for (QLabel *label : controls.widget.findChildren<QLabel *>()) {
if (label->text() == "Blend")
return label;
}
throw std::runtime_error("no Blend caption");
};
QVERIFY(!controls.widget.findChild<BlendModePicker *>()->isEnabled() && !blendRow()->isEnabled());
controls.slider.setValue(500);
QCOMPARE(controls.opacity(), 0.5);
controls.session.selectLayer(controls.session.document().value().layers.front().id);
QVERIFY(controls.widget.findChild<BlendModePicker *>()->isEnabled() && blendRow()->isEnabled());
}
void LayerAppearanceControlsTests::aSliderDragIsOneUndoStep()