chore: 格式化ElaWidgetTools代码
This commit is contained in:
@@ -5,92 +5,65 @@
|
||||
#include <QStyleOption>
|
||||
|
||||
#include "ElaTheme.h"
|
||||
ElaCheckBoxStyle::ElaCheckBoxStyle(QStyle* style)
|
||||
{
|
||||
ElaCheckBoxStyle::ElaCheckBoxStyle(QStyle *style) {
|
||||
_pCheckIndicatorWidth = 21;
|
||||
_themeMode = eTheme->getThemeMode();
|
||||
connect(eTheme, &ElaTheme::themeModeChanged, this, [=](ElaThemeType::ThemeMode themeMode) {
|
||||
_themeMode = themeMode;
|
||||
});
|
||||
_themeMode = eTheme->getThemeMode();
|
||||
connect(eTheme, &ElaTheme::themeModeChanged, this, [=](ElaThemeType::ThemeMode themeMode) { _themeMode = themeMode; });
|
||||
}
|
||||
|
||||
ElaCheckBoxStyle::~ElaCheckBoxStyle()
|
||||
{
|
||||
}
|
||||
ElaCheckBoxStyle::~ElaCheckBoxStyle() {}
|
||||
|
||||
void ElaCheckBoxStyle::drawControl(ControlElement element, const QStyleOption* option, QPainter* painter, const QWidget* widget) const
|
||||
{
|
||||
void ElaCheckBoxStyle::drawControl(ControlElement element, const QStyleOption *option, QPainter *painter, const QWidget *widget) const {
|
||||
// qDebug() << element << option->rect;
|
||||
switch (element)
|
||||
{
|
||||
case QStyle::CE_CheckBox:
|
||||
{
|
||||
if (const QStyleOptionButton* bopt = qstyleoption_cast<const QStyleOptionButton*>(option))
|
||||
{
|
||||
switch (element) {
|
||||
case QStyle::CE_CheckBox: {
|
||||
if (const QStyleOptionButton *bopt = qstyleoption_cast<const QStyleOptionButton *>(option)) {
|
||||
bool isEnabled = bopt->state.testFlag(QStyle::State_Enabled);
|
||||
painter->save();
|
||||
painter->setRenderHints(QPainter::Antialiasing | QPainter::TextAntialiasing);
|
||||
QRect checkBoxRect = bopt->rect;
|
||||
QRect checkRect(checkBoxRect.x(), checkBoxRect.y(), _pCheckIndicatorWidth, _pCheckIndicatorWidth);
|
||||
checkRect.adjust(1, 1, -1, -1);
|
||||
//复选框绘制
|
||||
// 复选框绘制
|
||||
painter->setPen(Qt::NoPen);
|
||||
if (bopt->state.testFlag(QStyle::State_On) || bopt->state.testFlag(QStyle::State_NoChange))
|
||||
{
|
||||
if (bopt->state.testFlag(QStyle::State_On) || bopt->state.testFlag(QStyle::State_NoChange)) {
|
||||
painter->setPen(Qt::NoPen);
|
||||
if (bopt->state.testFlag(QStyle::State_Sunken))
|
||||
{
|
||||
if (bopt->state.testFlag(QStyle::State_Sunken)) {
|
||||
painter->setBrush(ElaThemeColor(_themeMode, PrimaryPress));
|
||||
}
|
||||
else
|
||||
{
|
||||
if (bopt->state.testFlag(QStyle::State_MouseOver))
|
||||
{
|
||||
} else {
|
||||
if (bopt->state.testFlag(QStyle::State_MouseOver)) {
|
||||
painter->setBrush(ElaThemeColor(_themeMode, PrimaryHover));
|
||||
}
|
||||
else
|
||||
{
|
||||
} else {
|
||||
painter->setBrush(ElaThemeColor(_themeMode, PrimaryNormal));
|
||||
}
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
if (bopt->state.testFlag(QStyle::State_Sunken))
|
||||
{
|
||||
} else {
|
||||
if (bopt->state.testFlag(QStyle::State_Sunken)) {
|
||||
painter->setPen(ElaThemeColor(_themeMode, BasicBorderDeep));
|
||||
}
|
||||
else
|
||||
{
|
||||
} else {
|
||||
painter->setPen(ElaThemeColor(_themeMode, BasicBorderDeep));
|
||||
if (bopt->state.testFlag(QStyle::State_MouseOver))
|
||||
{
|
||||
if (bopt->state.testFlag(QStyle::State_MouseOver)) {
|
||||
painter->setBrush(ElaThemeColor(_themeMode, BasicHover));
|
||||
}
|
||||
else
|
||||
{
|
||||
} else {
|
||||
painter->setBrush(ElaThemeColor(_themeMode, BasicBase));
|
||||
}
|
||||
}
|
||||
}
|
||||
painter->drawRoundedRect(checkRect, 2, 2);
|
||||
//图标绘制
|
||||
// 图标绘制
|
||||
painter->setPen(ElaThemeColor(ElaThemeType::Dark, BasicText));
|
||||
if (bopt->state.testFlag(QStyle::State_On))
|
||||
{
|
||||
if (bopt->state.testFlag(QStyle::State_On)) {
|
||||
painter->save();
|
||||
QFont iconFont = QFont("ElaAwesome");
|
||||
iconFont.setPixelSize(_pCheckIndicatorWidth * 0.75);
|
||||
painter->setFont(iconFont);
|
||||
painter->drawText(checkRect, Qt::AlignCenter, QChar((unsigned short)ElaIconType::Check));
|
||||
painter->restore();
|
||||
}
|
||||
else if (bopt->state.testFlag(QStyle::State_NoChange))
|
||||
{
|
||||
} else if (bopt->state.testFlag(QStyle::State_NoChange)) {
|
||||
QLine checkLine(checkRect.x() + 3, checkRect.center().y(), checkRect.right() - 3, checkRect.center().y());
|
||||
painter->drawLine(checkLine);
|
||||
}
|
||||
//文字绘制
|
||||
// 文字绘制
|
||||
painter->setPen(isEnabled ? ElaThemeColor(_themeMode, BasicText) : ElaThemeColor(_themeMode, BasicTextDisable));
|
||||
QRect textRect(checkRect.right() + 10, checkBoxRect.y(), checkBoxRect.width(), checkBoxRect.height() - 5);
|
||||
painter->drawText(textRect, Qt::AlignLeft | Qt::AlignVCenter, bopt->text);
|
||||
@@ -98,8 +71,7 @@ void ElaCheckBoxStyle::drawControl(ControlElement element, const QStyleOption* o
|
||||
}
|
||||
return;
|
||||
}
|
||||
default:
|
||||
{
|
||||
default: {
|
||||
break;
|
||||
}
|
||||
}
|
||||
@@ -107,25 +79,19 @@ void ElaCheckBoxStyle::drawControl(ControlElement element, const QStyleOption* o
|
||||
QProxyStyle::drawControl(element, option, painter, widget);
|
||||
}
|
||||
|
||||
int ElaCheckBoxStyle::pixelMetric(PixelMetric metric, const QStyleOption* option, const QWidget* widget) const
|
||||
{
|
||||
int ElaCheckBoxStyle::pixelMetric(PixelMetric metric, const QStyleOption *option, const QWidget *widget) const {
|
||||
// qDebug() << metric << QProxyStyle::pixelMetric(metric, option, widget);
|
||||
switch (metric)
|
||||
{
|
||||
case QStyle::PM_IndicatorWidth:
|
||||
{
|
||||
switch (metric) {
|
||||
case QStyle::PM_IndicatorWidth: {
|
||||
return _pCheckIndicatorWidth;
|
||||
}
|
||||
case QStyle::PM_IndicatorHeight:
|
||||
{
|
||||
case QStyle::PM_IndicatorHeight: {
|
||||
return _pCheckIndicatorWidth;
|
||||
}
|
||||
case QStyle::PM_CheckBoxLabelSpacing:
|
||||
{
|
||||
case QStyle::PM_CheckBoxLabelSpacing: {
|
||||
return 10;
|
||||
}
|
||||
default:
|
||||
{
|
||||
default: {
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user