Tab drags: a right move by one, a lost release, a close mid-drag pinned (13.14)
This commit is contained in:
1 parent
fe3198777d
commit
01bb579068
1 file changed
+25
-3
@@ -74,6 +74,7 @@ private slots:
|
|||||||
void aSmallOrUpwardMoveIsAClick();
|
void aSmallOrUpwardMoveIsAClick();
|
||||||
void aBusyProjectHoldsTheOrder();
|
void aBusyProjectHoldsTheOrder();
|
||||||
void aTabClosedMidDragEndsIt();
|
void aTabClosedMidDragEndsIt();
|
||||||
|
void aLostReleaseGivesWayToTheNextDrag();
|
||||||
void tabsThatDoNotFitGatherInAMenu();
|
void tabsThatDoNotFitGatherInAMenu();
|
||||||
void theMenuSwitchesAndPinsTheChosenTab();
|
void theMenuSwitchesAndPinsTheChosenTab();
|
||||||
void aBusyProjectOpensNoMenu();
|
void aBusyProjectOpensNoMenu();
|
||||||
@@ -132,11 +133,16 @@ void ProjectTabDragTests::aDraggedTabFollowsThePointerAndLandsInTheGap()
|
|||||||
fixture.move(back - QPoint(third.width() / 2 + 10, 0));
|
fixture.move(back - QPoint(third.width() / 2 + 10, 0));
|
||||||
fixture.release("Untitled", back - QPoint(third.width() / 2 + 10, 0));
|
fixture.release("Untitled", back - QPoint(third.width() / 2 + 10, 0));
|
||||||
QCOMPARE(titles(fixture.workspace), (QStringList{"Untitled 2", "Untitled", "Untitled 3"}));
|
QCOMPARE(titles(fixture.workspace), (QStringList{"Untitled 2", "Untitled", "Untitled 3"}));
|
||||||
|
// The first, dragged one place right.
|
||||||
|
const QPoint right = fixture.press("Untitled 2");
|
||||||
|
fixture.move(right + QPoint(first.width() / 2 + 10, 0));
|
||||||
|
fixture.release("Untitled 2", right + QPoint(first.width() / 2 + 10, 0));
|
||||||
|
QCOMPARE(titles(fixture.workspace), (QStringList{"Untitled", "Untitled 2", "Untitled 3"}));
|
||||||
// Let go where it began: the order stays.
|
// Let go where it began: the order stays.
|
||||||
const QPoint still = fixture.press("Untitled 3");
|
const QPoint still = fixture.press("Untitled 3");
|
||||||
fixture.move(still + QPoint(5, 0));
|
fixture.move(still + QPoint(5, 0));
|
||||||
fixture.release("Untitled 3", still + QPoint(5, 0));
|
fixture.release("Untitled 3", still + QPoint(5, 0));
|
||||||
QCOMPARE(titles(fixture.workspace), (QStringList{"Untitled 2", "Untitled", "Untitled 3"}));
|
QCOMPARE(titles(fixture.workspace), (QStringList{"Untitled", "Untitled 2", "Untitled 3"}));
|
||||||
QTRY_VERIFY(settled(fixture.strip));
|
QTRY_VERIFY(settled(fixture.strip));
|
||||||
QCOMPARE(third.x(), second.width() + first.width() + 12);
|
QCOMPARE(third.x(), second.width() + first.width() + 12);
|
||||||
}
|
}
|
||||||
@@ -181,11 +187,13 @@ void ProjectTabDragTests::aTabClosedMidDragEndsIt()
|
|||||||
{
|
{
|
||||||
Strip fixture;
|
Strip fixture;
|
||||||
const QPoint start = fixture.press("Untitled 2");
|
const QPoint start = fixture.press("Untitled 2");
|
||||||
fixture.move(start + QPoint(5000, 0));
|
fixture.move(start - QPoint(5000, 0));
|
||||||
QVERIFY(button(fixture.strip, "Untitled 2").x() > 100);
|
QTRY_VERIFY(settled(fixture.strip));
|
||||||
|
QVERIFY(button(fixture.strip, "Untitled").x() > 0);
|
||||||
fixture.workspace.removeTab(fixture.workspace.tabs()[1]->id);
|
fixture.workspace.removeTab(fixture.workspace.tabs()[1]->id);
|
||||||
QCOMPARE(fixture.strip.buttons().size(), 2);
|
QCOMPARE(fixture.strip.buttons().size(), 2);
|
||||||
QTRY_VERIFY(settled(fixture.strip));
|
QTRY_VERIFY(settled(fixture.strip));
|
||||||
|
QCOMPARE(button(fixture.strip, "Untitled").x(), 0);
|
||||||
QCOMPARE(button(fixture.strip, "Untitled 3").x(), button(fixture.strip, "Untitled").width() + 6);
|
QCOMPARE(button(fixture.strip, "Untitled 3").x(), button(fixture.strip, "Untitled").width() + 6);
|
||||||
// Another drag works at once.
|
// Another drag works at once.
|
||||||
const QPoint next = fixture.press("Untitled 3");
|
const QPoint next = fixture.press("Untitled 3");
|
||||||
@@ -194,6 +202,20 @@ void ProjectTabDragTests::aTabClosedMidDragEndsIt()
|
|||||||
QCOMPARE(titles(fixture.workspace), (QStringList{"Untitled 3", "Untitled"}));
|
QCOMPARE(titles(fixture.workspace), (QStringList{"Untitled 3", "Untitled"}));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void ProjectTabDragTests::aLostReleaseGivesWayToTheNextDrag()
|
||||||
|
{
|
||||||
|
Strip fixture;
|
||||||
|
const QPoint first = fixture.press("Untitled");
|
||||||
|
fixture.move(first + QPoint(5000, 0));
|
||||||
|
// Its release never comes; another tab is dragged.
|
||||||
|
const QPoint next = fixture.press("Untitled 3");
|
||||||
|
fixture.move(next - QPoint(5000, 0));
|
||||||
|
fixture.release("Untitled 3", next - QPoint(5000, 0));
|
||||||
|
QCOMPARE(titles(fixture.workspace), (QStringList{"Untitled 3", "Untitled", "Untitled 2"}));
|
||||||
|
QTRY_VERIFY(settled(fixture.strip));
|
||||||
|
QCOMPARE(button(fixture.strip, "Untitled 3").x(), 0);
|
||||||
|
}
|
||||||
|
|
||||||
void ProjectTabDragTests::tabsThatDoNotFitGatherInAMenu()
|
void ProjectTabDragTests::tabsThatDoNotFitGatherInAMenu()
|
||||||
{
|
{
|
||||||
Strip fixture(12, 400);
|
Strip fixture(12, 400);
|
||||||
|
|||||||
Reference in new issue
Block a user