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,52 +6,36 @@
#include <QStyleOption>
#include "ElaTheme.h"
ElaTreeViewStyle::ElaTreeViewStyle(QStyle* style)
{
_pItemHeight = 35;
ElaTreeViewStyle::ElaTreeViewStyle(QStyle *style) {
_pItemHeight = 35;
_pHeaderMargin = 5;
_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; });
}
ElaTreeViewStyle::~ElaTreeViewStyle()
{
}
ElaTreeViewStyle::~ElaTreeViewStyle() {}
void ElaTreeViewStyle::drawPrimitive(PrimitiveElement element, const QStyleOption* option, QPainter* painter, const QWidget* widget) const
{
switch (element)
{
case QStyle::PE_PanelItemViewItem:
{
void ElaTreeViewStyle::drawPrimitive(PrimitiveElement element, const QStyleOption *option, QPainter *painter, const QWidget *widget) const {
switch (element) {
case QStyle::PE_PanelItemViewItem: {
// Item背景
if (const QStyleOptionViewItem* vopt = qstyleoption_cast<const QStyleOptionViewItem*>(option))
{
if (const QStyleOptionViewItem *vopt = qstyleoption_cast<const QStyleOptionViewItem *>(option)) {
painter->save();
painter->setRenderHint(QPainter::Antialiasing);
QRect itemRect = vopt->rect;
itemRect.adjust(0, 2, 0, -2);
QPainterPath path;
path.addRoundedRect(itemRect, 4, 4);
if (vopt->state & QStyle::State_Selected)
{
if (vopt->state & QStyle::State_MouseOver)
{
if (vopt->state & QStyle::State_Selected) {
if (vopt->state & QStyle::State_MouseOver) {
// 选中时覆盖
painter->fillPath(path, ElaThemeColor(_themeMode, BasicSelectedHoverAlpha));
}
else
{
} else {
// 选中
painter->fillPath(path, ElaThemeColor(_themeMode, BasicSelectedAlpha));
}
}
else
{
if (vopt->state & QStyle::State_MouseOver)
{
} else {
if (vopt->state & QStyle::State_MouseOver) {
// 覆盖时颜色
painter->fillPath(path, ElaThemeColor(_themeMode, BasicHoverAlpha));
}
@@ -60,13 +44,10 @@ void ElaTreeViewStyle::drawPrimitive(PrimitiveElement element, const QStyleOptio
}
return;
}
case QStyle::PE_IndicatorBranch:
{
case QStyle::PE_IndicatorBranch: {
// 展开图标绘制
if (const QStyleOptionViewItem* vopt = qstyleoption_cast<const QStyleOptionViewItem*>(option))
{
if (vopt->state.testFlag(QStyle::State_Children))
{
if (const QStyleOptionViewItem *vopt = qstyleoption_cast<const QStyleOptionViewItem *>(option)) {
if (vopt->state.testFlag(QStyle::State_Children)) {
painter->save();
QRect indicatorRect = option->rect;
indicatorRect.adjust(0, 0, -2, 0);
@@ -74,38 +55,33 @@ void ElaTreeViewStyle::drawPrimitive(PrimitiveElement element, const QStyleOptio
iconFont.setPixelSize(17);
painter->setFont(iconFont);
painter->setPen(ElaThemeColor(_themeMode, BasicText));
painter->drawText(indicatorRect, Qt::AlignVCenter | Qt::AlignRight, vopt->state.testFlag(QStyle::State_Open) ? QChar((unsigned short)ElaIconType::AngleDown) : QChar((unsigned short)ElaIconType::AngleRight));
painter->drawText(indicatorRect, Qt::AlignVCenter | Qt::AlignRight,
vopt->state.testFlag(QStyle::State_Open) ? QChar((unsigned short)ElaIconType::AngleDown)
: QChar((unsigned short)ElaIconType::AngleRight));
painter->restore();
}
}
return;
}
case QStyle::PE_PanelItemViewRow:
{
case QStyle::PE_PanelItemViewRow: {
return;
}
case QStyle::PE_Widget:
{
case QStyle::PE_Widget: {
return;
}
case QStyle::PE_Frame:
{
case QStyle::PE_Frame: {
return;
}
default:
{
default: {
break;
}
}
QProxyStyle::drawPrimitive(element, option, painter, widget);
}
void ElaTreeViewStyle::drawControl(ControlElement element, const QStyleOption* option, QPainter* painter, const QWidget* widget) const
{
switch (element)
{
case QStyle::CE_ShapedFrame:
{
void ElaTreeViewStyle::drawControl(ControlElement element, const QStyleOption *option, QPainter *painter, const QWidget *widget) const {
switch (element) {
case QStyle::CE_ShapedFrame: {
// viewport视口外的其他区域背景
QRect frameRect = option->rect;
frameRect.adjust(1, 1, -1, -1);
@@ -117,16 +93,13 @@ void ElaTreeViewStyle::drawControl(ControlElement element, const QStyleOption* o
painter->restore();
return;
}
case QStyle::CE_HeaderLabel:
{
case QStyle::CE_HeaderLabel: {
// 表头文字绘制
if (const QStyleOptionHeader* hopt = qstyleoption_cast<const QStyleOptionHeader*>(option))
{
if (const QStyleOptionHeader *hopt = qstyleoption_cast<const QStyleOptionHeader *>(option)) {
QRect headerRect = option->rect;
painter->save();
painter->setRenderHints(QPainter::Antialiasing | QPainter::SmoothPixmapTransform | QPainter::TextAntialiasing);
if (!hopt->text.isEmpty())
{
if (!hopt->text.isEmpty()) {
painter->setPen(ElaThemeColor(_themeMode, BasicText));
painter->drawText(headerRect, hopt->textAlignment, hopt->text);
}
@@ -134,8 +107,7 @@ void ElaTreeViewStyle::drawControl(ControlElement element, const QStyleOption* o
}
return;
}
case QStyle::CE_HeaderSection:
{
case QStyle::CE_HeaderSection: {
// 表头背景绘制
painter->save();
painter->setRenderHints(QPainter::Antialiasing | QPainter::SmoothPixmapTransform | QPainter::TextAntialiasing);
@@ -145,10 +117,8 @@ void ElaTreeViewStyle::drawControl(ControlElement element, const QStyleOption* o
painter->restore();
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)) {
// 背景绘制
this->drawPrimitive(QStyle::PE_PanelItemViewItem, option, painter, widget);
@@ -157,15 +127,13 @@ void ElaTreeViewStyle::drawControl(ControlElement element, const QStyleOption* o
painter->save();
painter->setRenderHints(QPainter::Antialiasing | QPainter::SmoothPixmapTransform | QPainter::TextAntialiasing);
QRect checkRect = proxy()->subElementRect(SE_ItemViewItemCheckIndicator, vopt, widget);
QRect iconRect = proxy()->subElementRect(SE_ItemViewItemDecoration, vopt, widget);
QRect textRect = proxy()->subElementRect(SE_ItemViewItemText, vopt, widget);
QRect iconRect = proxy()->subElementRect(SE_ItemViewItemDecoration, vopt, widget);
QRect textRect = proxy()->subElementRect(SE_ItemViewItemText, vopt, widget);
// 复选框绘制
if (checkRect.isValid())
{
if (checkRect.isValid()) {
painter->save();
//图标绘制
if (vopt->checkState == Qt::Checked)
{
// 图标绘制
if (vopt->checkState == Qt::Checked) {
painter->setPen(Qt::NoPen);
painter->setBrush(ElaThemeColor(_themeMode, PrimaryNormal));
painter->drawRoundedRect(checkRect, 2, 2);
@@ -174,18 +142,14 @@ void ElaTreeViewStyle::drawControl(ControlElement element, const QStyleOption* o
painter->setFont(iconFont);
painter->setPen(ElaThemeColor(ElaThemeType::Dark, BasicText));
painter->drawText(checkRect, Qt::AlignCenter, QChar((unsigned short)ElaIconType::Check));
}
else if (vopt->checkState == Qt::PartiallyChecked)
{
} else if (vopt->checkState == Qt::PartiallyChecked) {
painter->setPen(Qt::NoPen);
painter->setBrush(ElaThemeColor(_themeMode, PrimaryNormal));
painter->drawRoundedRect(checkRect, 2, 2);
painter->setPen(ElaThemeColor(ElaThemeType::Dark, BasicText));
QLine checkLine(checkRect.x() + 3, checkRect.center().y(), checkRect.right() - 3, checkRect.center().y());
painter->drawLine(checkLine);
}
else
{
} else {
painter->setPen(QPen(ElaThemeColor(_themeMode, BasicBorderDeep), 1.2));
painter->setBrush(Qt::transparent);
painter->drawRoundedRect(checkRect, 2, 2);
@@ -193,15 +157,13 @@ void ElaTreeViewStyle::drawControl(ControlElement element, const QStyleOption* o
painter->restore();
}
// 图标绘制
if (!vopt->icon.isNull())
{
QIcon::Mode mode = QIcon::Normal;
if (!vopt->icon.isNull()) {
QIcon::Mode mode = QIcon::Normal;
QIcon::State state = vopt->state & QStyle::State_Open ? QIcon::On : QIcon::Off;
vopt->icon.paint(painter, iconRect, vopt->decorationAlignment, mode, state);
}
// 文字绘制
if (!vopt->text.isEmpty())
{
if (!vopt->text.isEmpty()) {
painter->setPen(ElaThemeColor(_themeMode, BasicText));
painter->drawText(textRect, vopt->displayAlignment, vopt->text);
}
@@ -209,66 +171,52 @@ void ElaTreeViewStyle::drawControl(ControlElement element, const QStyleOption* o
int heightOffset = itemRect.height() / 4;
painter->setPen(Qt::NoPen);
painter->setBrush(ElaThemeColor(_themeMode, PrimaryNormal));
if (vopt->state.testFlag(QStyle::State_Selected) && (vopt->viewItemPosition == QStyleOptionViewItem::Beginning || vopt->viewItemPosition == QStyleOptionViewItem::OnlyOne))
{
if (vopt->state.testFlag(QStyle::State_Selected) &&
(vopt->viewItemPosition == QStyleOptionViewItem::Beginning || vopt->viewItemPosition == QStyleOptionViewItem::OnlyOne)) {
painter->drawRoundedRect(QRectF(itemRect.x() + 3, itemRect.y() + heightOffset, 3, itemRect.height() - 2 * heightOffset), 3, 3);
}
painter->restore();
}
return;
}
default:
{
default: {
break;
}
}
QProxyStyle::drawControl(element, option, painter, widget);
}
QSize ElaTreeViewStyle::sizeFromContents(ContentsType type, const QStyleOption* option, const QSize& size, const QWidget* widget) const
{
switch (type)
{
case QStyle::CT_ItemViewItem:
{
QSize ElaTreeViewStyle::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(_pItemHeight);
return itemSize;
}
default:
{
default: {
break;
}
}
return QProxyStyle::sizeFromContents(type, option, size, widget);
}
int ElaTreeViewStyle::pixelMetric(PixelMetric metric, const QStyleOption* option, const QWidget* widget) const
{
switch (metric)
{
case QStyle::PM_HeaderMargin:
{
int ElaTreeViewStyle::pixelMetric(PixelMetric metric, const QStyleOption *option, const QWidget *widget) const {
switch (metric) {
case QStyle::PM_HeaderMargin: {
return _pHeaderMargin;
}
default:
{
default: {
break;
}
}
return QProxyStyle::pixelMetric(metric, option, widget);
}
QRect ElaTreeViewStyle::subElementRect(SubElement element, const QStyleOption* option, const QWidget* widget) const
{
switch (element)
{
case QStyle::SE_ItemViewItemCheckIndicator:
{
if (const QStyleOptionViewItem* vopt = qstyleoption_cast<const QStyleOptionViewItem*>(option))
{
if (vopt->viewItemPosition != QStyleOptionViewItem::Middle && vopt->viewItemPosition != QStyleOptionViewItem::End)
{
QRect ElaTreeViewStyle::subElementRect(SubElement element, const QStyleOption *option, const QWidget *widget) const {
switch (element) {
case QStyle::SE_ItemViewItemCheckIndicator: {
if (const QStyleOptionViewItem *vopt = qstyleoption_cast<const QStyleOptionViewItem *>(option)) {
if (vopt->viewItemPosition != QStyleOptionViewItem::Middle && vopt->viewItemPosition != QStyleOptionViewItem::End) {
QRect indicatorRect = QProxyStyle::subElementRect(element, option, widget);
indicatorRect.adjust(_leftPadding, 0, _leftPadding, 0);
return indicatorRect;
@@ -276,12 +224,9 @@ QRect ElaTreeViewStyle::subElementRect(SubElement element, const QStyleOption* o
}
break;
}
case QStyle::SE_ItemViewItemDecoration:
{
if (const QStyleOptionViewItem* vopt = qstyleoption_cast<const QStyleOptionViewItem*>(option))
{
if (vopt->viewItemPosition != QStyleOptionViewItem::Middle && vopt->viewItemPosition != QStyleOptionViewItem::End)
{
case QStyle::SE_ItemViewItemDecoration: {
if (const QStyleOptionViewItem *vopt = qstyleoption_cast<const QStyleOptionViewItem *>(option)) {
if (vopt->viewItemPosition != QStyleOptionViewItem::Middle && vopt->viewItemPosition != QStyleOptionViewItem::End) {
QRect iconRect = QProxyStyle::subElementRect(element, option, widget);
iconRect.adjust(_leftPadding + 5, 0, _leftPadding + 5, 0);
return iconRect;
@@ -289,12 +234,9 @@ QRect ElaTreeViewStyle::subElementRect(SubElement element, const QStyleOption* o
}
break;
}
case QStyle::SE_ItemViewItemText:
{
if (const QStyleOptionViewItem* vopt = qstyleoption_cast<const QStyleOptionViewItem*>(option))
{
if (vopt->viewItemPosition != QStyleOptionViewItem::Middle && vopt->viewItemPosition != QStyleOptionViewItem::End)
{
case QStyle::SE_ItemViewItemText: {
if (const QStyleOptionViewItem *vopt = qstyleoption_cast<const QStyleOptionViewItem *>(option)) {
if (vopt->viewItemPosition != QStyleOptionViewItem::Middle && vopt->viewItemPosition != QStyleOptionViewItem::End) {
QRect textRect = QProxyStyle::subElementRect(element, option, widget);
textRect.adjust(_leftPadding + 10, 0, 0, 0);
return textRect;
@@ -302,8 +244,7 @@ QRect ElaTreeViewStyle::subElementRect(SubElement element, const QStyleOption* o
}
break;
}
default:
{
default: {
break;
}
}