Layer › Ungroup Layers (Ctrl+Shift+G), in a folder's menu too; Alt over a mask shows the eye pointer (13.15)

This commit is contained in:
ZacharyZhang-NY committed 2026-10-01 16:22:27 -04:00
1 parent 3f2b99f045
commit 6ea248367d
12 files changed
+271 -12

No files matched your search

+26
View File
@@ -22,6 +22,7 @@ private slots:
void entriesFollowTheSelectionAndTheGates();
void thumbnailsAndEffectsChooseWhatTheMenuTargets();
void testContextMenuDuplicateFolderPreservesHierarchy();
void aFoldersMenuOffersUngroup();
};
void LayerContextMenuTests::testContextMenuContainsCoreLayerActions()
@@ -312,5 +313,30 @@ void LayerContextMenuTests::testContextMenuDuplicateFolderPreservesHierarchy()
QCOMPARE(session->document().value().layers.size(), 2 * children + 2);
}
void LayerContextMenuTests::aFoldersMenuOffersUngroup()
{
const auto session = threeLayers();
const QUuid lower = session->document().value().layers[0].id;
session->selectLayers({lower}, lower);
session->groupSelectedLayers();
Shown shown(*session);
// The folder sits lowest; the top row is none.
session->selectLayer(std::nullopt);
QVERIFY(!titles(*shown.menu(0)).contains("Ungroup Layers"));
const int folder = int(shown.list.cells().size()) - 2;
QVERIFY(shown.row(folder).layerID() != lower);
std::unique_ptr<QMenu> menu = shown.menu(folder);
const QStringList entries = titles(*menu);
QCOMPARE(entries.indexOf("Ungroup Layers"), entries.indexOf("Group Selected Layers") + 1);
QVERIFY(item(*menu, "ungroupLayers").isEnabled());
session->setIsProjectBusy(true);
QVERIFY(!item(*shown.menu(folder), "ungroupLayers").isEnabled());
session->setIsProjectBusy(false);
item(*shown.menu(folder), "ungroupLayers").trigger();
QCOMPARE(session->history.undoName(), QString("Ungroup Layers"));
QCOMPARE(session->document().value().layers.size(), size_t(3));
QCOMPARE(session->selectedLayerIDs(), QSet<QUuid>{lower});
}
QTEST_MAIN(LayerContextMenuTests)
#include "LayerContextMenuTests.moc"