chore: 格式化ElaWidgetTools代码

This commit is contained in:
sleepwithoutbz
2025-09-20 01:39:00 +08:00
parent d2fded145d
commit 4ab391f8a1
394 changed files with 10913 additions and 15860 deletions

View File

@@ -6,65 +6,50 @@
#include <QStyleOption>
#include "ElaTheme.h"
ElaComboBoxStyle::ElaComboBoxStyle(QStyle* style)
{
ElaComboBoxStyle::ElaComboBoxStyle(QStyle *style) {
_pExpandIconRotate = 0;
_pExpandMarkWidth = 0;
_themeMode = eTheme->getThemeMode();
connect(eTheme, &ElaTheme::themeModeChanged, this, [=](ElaThemeType::ThemeMode themeMode) {
_themeMode = themeMode;
});
_pExpandMarkWidth = 0;
_themeMode = eTheme->getThemeMode();
connect(eTheme, &ElaTheme::themeModeChanged, this, [=](ElaThemeType::ThemeMode themeMode) { _themeMode = themeMode; });
}
ElaComboBoxStyle::~ElaComboBoxStyle()
{
}
ElaComboBoxStyle::~ElaComboBoxStyle() {}
void ElaComboBoxStyle::drawPrimitive(PrimitiveElement element, const QStyleOption* option, QPainter* painter, const QWidget* widget) const
{
switch (element)
{
void ElaComboBoxStyle::drawPrimitive(PrimitiveElement element, const QStyleOption *option, QPainter *painter, const QWidget *widget) const {
switch (element) {
case QStyle::PE_Widget:
case QStyle::PE_PanelLineEdit:
{
case QStyle::PE_PanelLineEdit: {
return;
}
#ifndef Q_OS_WIN
case PE_PanelMenu:
{
case PE_PanelMenu: {
return;
}
case PE_IndicatorArrowDown:
{
case PE_IndicatorArrowDown: {
return;
}
#endif
default:
{
default: {
break;
}
}
QProxyStyle::drawPrimitive(element, option, painter, widget);
}
void ElaComboBoxStyle::drawControl(ControlElement element, const QStyleOption* option, QPainter* painter, const QWidget* widget) const
{
switch (element)
{
case QStyle::CE_ComboBoxLabel:
{
void ElaComboBoxStyle::drawControl(ControlElement element, const QStyleOption *option, QPainter *painter, const QWidget *widget) const {
switch (element) {
case QStyle::CE_ComboBoxLabel: {
return;
}
case QStyle::CE_ShapedFrame:
{
//container区域
if (widget->objectName() == "ElaComboBoxContainer")
{
case QStyle::CE_ShapedFrame: {
// container区域
if (widget->objectName() == "ElaComboBoxContainer") {
QRect viewRect = option->rect;
painter->save();
painter->setRenderHints(QPainter::Antialiasing | QPainter::TextAntialiasing);
eTheme->drawEffectShadow(painter, viewRect, _shadowBorderWidth, 6);
QRect foregroundRect(viewRect.x() + _shadowBorderWidth, viewRect.y(), viewRect.width() - 2 * _shadowBorderWidth, viewRect.height() - _shadowBorderWidth);
QRect foregroundRect(viewRect.x() + _shadowBorderWidth, viewRect.y(), viewRect.width() - 2 * _shadowBorderWidth,
viewRect.height() - _shadowBorderWidth);
painter->setPen(ElaThemeColor(_themeMode, PopupBorder));
painter->setBrush(ElaThemeColor(_themeMode, PopupBase));
painter->drawRoundedRect(foregroundRect, 3, 3);
@@ -72,45 +57,38 @@ void ElaComboBoxStyle::drawControl(ControlElement element, const QStyleOption* o
}
return;
}
case QStyle::CE_ItemViewItem:
{
//覆盖高亮
if (const QStyleOptionViewItem* vopt = qstyleoption_cast<const QStyleOptionViewItem*>(option))
{
case QStyle::CE_ItemViewItem: {
// 覆盖高亮
if (const QStyleOptionViewItem *vopt = qstyleoption_cast<const QStyleOptionViewItem *>(option)) {
int margin = 2;
painter->save();
painter->setRenderHints(QPainter::Antialiasing | QPainter::SmoothPixmapTransform);
painter->setPen(Qt::NoPen);
QPainterPath path;
QRect optionRect = option->rect;
QRect optionRect = option->rect;
optionRect.adjust(margin, margin, -margin, -margin);
#ifndef Q_OS_WIN
optionRect.adjust(6, 0, -6, 0);
#endif
path.addRoundedRect(optionRect, 5, 5);
if (option->state & QStyle::State_Selected)
{
if (option->state & QStyle::State_MouseOver)
{
if (option->state & QStyle::State_Selected) {
if (option->state & QStyle::State_MouseOver) {
// 选中时覆盖
painter->setBrush(ElaThemeColor(_themeMode, BasicSelectedHoverAlpha));
painter->drawPath(path);
}
else
{
} else {
// 选中
painter->setBrush(ElaThemeColor(_themeMode, BasicSelectedAlpha));
painter->drawPath(path);
}
//选中Mark
// 选中Mark
painter->setPen(Qt::NoPen);
painter->setBrush(ElaThemeColor(_themeMode, PrimaryNormal));
painter->drawRoundedRect(QRectF(optionRect.x() + 3, optionRect.y() + optionRect.height() * 0.2, 3, optionRect.height() - +optionRect.height() * 0.4), 2, 2);
}
else
{
if (option->state & QStyle::State_MouseOver)
{
painter->drawRoundedRect(
QRectF(optionRect.x() + 3, optionRect.y() + optionRect.height() * 0.2, 3, optionRect.height() - +optionRect.height() * 0.4), 2,
2);
} else {
if (option->state & QStyle::State_MouseOver) {
// 覆盖时颜色
painter->setBrush(ElaThemeColor(_themeMode, BasicHoverAlpha));
painter->drawPath(path);
@@ -118,61 +96,55 @@ void ElaComboBoxStyle::drawControl(ControlElement element, const QStyleOption* o
}
// 文字绘制
painter->setPen(ElaThemeColor(_themeMode, BasicText));
painter->drawText(QRect(option->rect.x() + 15, option->rect.y(), option->rect.width() - 15, option->rect.height()), Qt::AlignVCenter, vopt->text);
painter->drawText(QRect(option->rect.x() + 15, option->rect.y(), option->rect.width() - 15, option->rect.height()), Qt::AlignVCenter,
vopt->text);
painter->restore();
}
return;
}
default:
{
default: {
break;
}
}
QProxyStyle::drawControl(element, option, painter, widget);
}
void ElaComboBoxStyle::drawComplexControl(ComplexControl control, const QStyleOptionComplex* option, QPainter* painter, const QWidget* widget) const
{
switch (control)
{
case QStyle::CC_ComboBox:
{
//主体显示绘制
if (const QStyleOptionComboBox* copt = qstyleoption_cast<const QStyleOptionComboBox*>(option))
{
void ElaComboBoxStyle::drawComplexControl(ComplexControl control, const QStyleOptionComplex *option, QPainter *painter, const QWidget *widget) const {
switch (control) {
case QStyle::CC_ComboBox: {
// 主体显示绘制
if (const QStyleOptionComboBox *copt = qstyleoption_cast<const QStyleOptionComboBox *>(option)) {
painter->save();
painter->setRenderHints(QPainter::SmoothPixmapTransform | QPainter::Antialiasing | QPainter::TextAntialiasing);
//背景绘制
// 背景绘制
bool isEnabled = copt->state.testFlag(QStyle::State_Enabled);
painter->setPen(ElaThemeColor(_themeMode, BasicBorder));
painter->setBrush(isEnabled ? (copt->state.testFlag(QStyle::State_HasFocus) && copt->editable)
? ElaThemeColor(_themeMode, DialogBase)
: copt->state.testFlag(QStyle::State_MouseOver)
? ElaThemeColor(_themeMode, BasicHover)
: ElaThemeColor(_themeMode, BasicBase)
painter->setBrush(isEnabled ? (copt->state.testFlag(QStyle::State_HasFocus) && copt->editable) ? ElaThemeColor(_themeMode, DialogBase)
: copt->state.testFlag(QStyle::State_MouseOver) ? ElaThemeColor(_themeMode, BasicHover)
: ElaThemeColor(_themeMode, BasicBase)
: ElaThemeColor(_themeMode, BasicDisable));
QRect comboBoxRect = copt->rect;
comboBoxRect.adjust(_shadowBorderWidth, 1, -_shadowBorderWidth, -1);
painter->drawRoundedRect(comboBoxRect, 3, 3);
// 底边线绘制
painter->setPen(ElaThemeColor(_themeMode, BasicBaseLine));
painter->drawLine(comboBoxRect.x() + 3, comboBoxRect.y() + comboBoxRect.height(), comboBoxRect.x() + comboBoxRect.width() - 3, comboBoxRect.y() + comboBoxRect.height());
painter->drawLine(comboBoxRect.x() + 3, comboBoxRect.y() + comboBoxRect.height(), comboBoxRect.x() + comboBoxRect.width() - 3,
comboBoxRect.y() + comboBoxRect.height());
//文字绘制
if (!copt->editable)
{
// 文字绘制
if (!copt->editable) {
QRect textRect = subControlRect(QStyle::CC_ComboBox, copt, QStyle::SC_ScrollBarSubLine, widget);
painter->setPen(isEnabled ? ElaThemeColor(_themeMode, BasicText) : ElaThemeColor(_themeMode, BasicTextDisable));
painter->drawText(textRect, Qt::AlignVCenter | Qt::AlignLeft, copt->currentText);
}
//展开指示器绘制
// 展开指示器绘制
painter->setPen(Qt::NoPen);
painter->setBrush(ElaThemeColor(_themeMode, PrimaryNormal));
painter->drawRoundedRect(QRectF(comboBoxRect.center().x() - _pExpandMarkWidth, comboBoxRect.y() + comboBoxRect.height() - 3, _pExpandMarkWidth * 2, 3), 2, 2);
painter->drawRoundedRect(
QRectF(comboBoxRect.center().x() - _pExpandMarkWidth, comboBoxRect.y() + comboBoxRect.height() - 3, _pExpandMarkWidth * 2, 3), 2, 2);
// 展开图标绘制
QRect expandIconRect = subControlRect(QStyle::CC_ComboBox, copt, QStyle::SC_ScrollBarAddPage, widget);
if (expandIconRect.isValid())
{
if (expandIconRect.isValid()) {
QFont iconFont = QFont("ElaAwesome");
iconFont.setPixelSize(17);
painter->setFont(iconFont);
@@ -186,46 +158,37 @@ void ElaComboBoxStyle::drawComplexControl(ComplexControl control, const QStyleOp
}
return;
}
default:
{
default: {
break;
}
}
QProxyStyle::drawComplexControl(control, option, painter, widget);
}
QRect ElaComboBoxStyle::subControlRect(ComplexControl cc, const QStyleOptionComplex* opt, SubControl sc, const QWidget* widget) const
{
switch (cc)
{
case QStyle::CC_ComboBox:
{
switch (sc)
{
case QStyle::SC_ScrollBarSubLine:
{
//文字区域
QRect ElaComboBoxStyle::subControlRect(ComplexControl cc, const QStyleOptionComplex *opt, SubControl sc, const QWidget *widget) const {
switch (cc) {
case QStyle::CC_ComboBox: {
switch (sc) {
case QStyle::SC_ScrollBarSubLine: {
// 文字区域
QRect textRect = QProxyStyle::subControlRect(cc, opt, sc, widget);
textRect.setLeft(16);
textRect.setRight(textRect.right() - 15);
return textRect;
}
case QStyle::SC_ScrollBarAddPage:
{
//展开图标区域
case QStyle::SC_ScrollBarAddPage: {
// 展开图标区域
QRect expandIconRect = QProxyStyle::subControlRect(cc, opt, sc, widget);
expandIconRect.setLeft(expandIconRect.left() - 25);
return expandIconRect;
}
default:
{
default: {
break;
}
}
break;
}
default:
{
default: {
break;
}
}
@@ -233,24 +196,19 @@ QRect ElaComboBoxStyle::subControlRect(ComplexControl cc, const QStyleOptionComp
return QProxyStyle::subControlRect(cc, opt, sc, widget);
}
QSize ElaComboBoxStyle::sizeFromContents(ContentsType type, const QStyleOption* option, const QSize& size, const QWidget* widget) const
{
switch (type)
{
case QStyle::CT_ItemViewItem:
{
QSize ElaComboBoxStyle::sizeFromContents(ContentsType type, const QStyleOption *option, const QSize &size, const QWidget *widget) const {
switch (type) {
case QStyle::CT_ItemViewItem: {
QSize itemSize = QProxyStyle::sizeFromContents(type, option, size, widget);
itemSize.setHeight(35);
return itemSize;
}
case QStyle::CT_ComboBox:
{
case QStyle::CT_ComboBox: {
QSize comboBoxSize = QProxyStyle::sizeFromContents(type, option, size, widget);
comboBoxSize.setWidth(comboBoxSize.width() + 26);
return comboBoxSize;
}
default:
{
default: {
break;
}
}