mirror of
https://github.com/Cockatrice/Cockatrice.git
synced 2026-06-12 19:11:31 -07:00
7153f7d4c1
* [VDD] Fix minimum size by adding a compact mode to quickSettingsButtons Took 17 minutes Took 5 seconds * Fix and use FlowWidget/FlowLayout Took 35 minutes Took 4 seconds * Set spacings. Took 12 minutes * Make VDE tools flow Took 1 hour 23 minutes Took 5 seconds * Squeeze and flow even more. Took 11 minutes * Make pushbutton compact. Took 54 minutes Took 7 seconds --------- Co-authored-by: Lukas Brübach <Bruebach.Lukas@bdosecurity.de>
73 lines
1.3 KiB
C++
73 lines
1.3 KiB
C++
#include "compact_push_button.h"
|
|
|
|
CompactPushButton::CompactPushButton(QWidget *parent) : QPushButton(parent)
|
|
{
|
|
setCheckable(true);
|
|
setFixedHeight(32);
|
|
|
|
// default sizing
|
|
setSizePolicy(QSizePolicy::Preferred, QSizePolicy::Fixed);
|
|
|
|
connect(this, &QPushButton::clicked, this, [] {
|
|
// your popup logic here
|
|
});
|
|
}
|
|
|
|
void CompactPushButton::setButtonText(const QString &text)
|
|
{
|
|
fullText = text;
|
|
|
|
if (!compact) {
|
|
setText(fullText);
|
|
}
|
|
|
|
updateGeometryState();
|
|
}
|
|
|
|
void CompactPushButton::setButtonIcon(const QIcon &icon)
|
|
{
|
|
setIcon(icon);
|
|
}
|
|
|
|
void CompactPushButton::setCompact(bool enabled)
|
|
{
|
|
compact = enabled;
|
|
|
|
if (compact) {
|
|
setText(QString()); // icon only
|
|
} else {
|
|
setText(fullText);
|
|
}
|
|
|
|
updateGeometryState();
|
|
}
|
|
|
|
void CompactPushButton::updateGeometryState()
|
|
{
|
|
const int buttonHeight = 32;
|
|
|
|
setMinimumHeight(buttonHeight);
|
|
setMaximumHeight(buttonHeight);
|
|
|
|
if (compact) {
|
|
setMinimumWidth(buttonHeight);
|
|
setMaximumWidth(buttonHeight);
|
|
} else {
|
|
setMinimumWidth(0);
|
|
setMaximumWidth(QWIDGETSIZE_MAX);
|
|
}
|
|
|
|
updateGeometry();
|
|
}
|
|
|
|
int CompactPushButton::expandedWidth() const
|
|
{
|
|
QFontMetrics fm(font());
|
|
|
|
return fm.horizontalAdvance(fullText) + 48; // icon + padding
|
|
}
|
|
|
|
int CompactPushButton::compactWidth() const
|
|
{
|
|
return 32;
|
|
} |