#include "OptionButton.h"

#include <QLayout>
#include <QStyle>
#include <QStyleOptionButton>

OptionButton::OptionButton(QWidget* parent)
    : QPushButton(parent)
{
}

QSize OptionButton::sizeHint() const
{
    if (layout() == nullptr)
    {
        return QPushButton::sizeHint();
    }
    return sizeForFace(layout()->sizeHint());
}

QSize OptionButton::minimumSizeHint() const
{
    if (layout() == nullptr)
    {
        return QPushButton::minimumSizeHint();
    }
    return sizeForFace(layout()->minimumSize());
}

QSize OptionButton::sizeForFace(const QSize& faceSize) const
{
    QStyleOptionButton option;
    initStyleOption(&option);
    return style()->sizeFromContents(QStyle::CT_PushButton, &option, faceSize, this);
}
