summaryrefslogtreecommitdiffstats
path: root/tests/test_mainwindow.cpp
diff options
context:
space:
mode:
authorDanilo M. <danix@danix.xyz>2026-08-24 11:54:41 +0200
committerDanilo M. <danix@danix.xyz>2026-08-24 11:54:41 +0200
commit02a795abe731da908928cd08a799ad79002ff421 (patch)
tree8e1d8cdd37973b378775b0977b38b320149fbadb /tests/test_mainwindow.cpp
parenta4e8c837a07014be3863a40f371d02a492b7efb7 (diff)
downloadqtmaildir-02a795abe731da908928cd08a799ad79002ff421.tar.gz
qtmaildir-02a795abe731da908928cd08a799ad79002ff421.zip
fix(compose): make the Send button a square that reads as one item
An Expanding vertical size policy stretched the button to the full height of the header form beside it, while the icon and the label kept their natural sizes. The result was a tall rectangle with the icon anchored near the top, the label near the bottom, and a gap between them: two marks rather than one control. Fixed size, derived from the icon so the square still fits its contents if toolbar_icon_size changes, and aligned vertically centre against the headers so the whole button is centred rather than its contents. The icon grows to the configured size plus 8, since at this scale it is the button's subject and the word underneath is the caption. Nothing in the layout or the actions could see this, which is why the test now asserts the vertical policy and that width equals height. Both fail against the previous code.
Diffstat (limited to 'tests/test_mainwindow.cpp')
-rw-r--r--tests/test_mainwindow.cpp15
1 files changed, 15 insertions, 0 deletions
diff --git a/tests/test_mainwindow.cpp b/tests/test_mainwindow.cpp
index 35f7093..4c33302 100644
--- a/tests/test_mainwindow.cpp
+++ b/tests/test_mainwindow.cpp
@@ -12267,6 +12267,21 @@ void TestMainWindow::theComposerSplitsItsToolbarByScope()
QVERIFY2(sendButton->defaultAction() == send,
"the Send button does not carry the send action itself");
+ // A SQUARE, and not a widget that stretches. An Expanding vertical policy
+ // grew it to the full height of the header form beside it while the icon
+ // and label kept their natural sizes, leaving the two marooned at either
+ // end of a tall rectangle with a gap between them. Nothing in the layout
+ // or the actions could see that, which is why it is asserted here.
+ QCOMPARE(sendButton->sizePolicy().verticalPolicy(), QSizePolicy::Fixed);
+ QCOMPARE(sendButton->width(), sendButton->height());
+
+ // And the icon is the larger half of the button, not a small mark with
+ // the label doing the work.
+ QVERIFY2(sendButton->iconSize().width() >= 24,
+ qPrintable(QStringLiteral("the Send icon is %1px, too small to "
+ "read as the button's subject")
+ .arg(sendButton->iconSize().width())));
+
// Item 143: the formatting buttons carry icons, and keep their words as
// the tooltip so nothing becomes unnameable in an icon-only row.
for (const QString &name : { QStringLiteral("format_bold"),