Files
qt-migration-legatus/qt6-after/qt6-migrated-legatus/Lts/Common/LtsWidgets/lts_splitter_handle.cpp
T
torstenandCopilot d6b6ffce7c Apply clang-format to Lts/Common and DTC/enum headers
- Formatted all CodeGen module files (9 files)
- Formatted LtsAppDescriptor module files
- Formatted LtsAppManager/AppChooser files
- Applied clang-format to all DTC and enum headers across modules
- Removed coordTransTests from CommonUnitTestsPlaceholder (moved to tests/)

Cosmetic changes only, no functional modifications.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
2026-08-19 14:46:29 +02:00

84 lines
2.0 KiB
C++

#include "lts_splitter_handle.h"
#include <QBrush>
#include <QDebug>
#include <QEvent>
#include <QLinearGradient>
#include <QPaintEvent>
#include <QPainter>
namespace LtsWidgets
{
LtsSplitterHandle::LtsSplitterHandle(Qt::Orientation orientation, QSplitter* parent)
: QSplitterHandle(orientation, parent)
{
auto bgrole = backgroundRole();
QPalette p = palette();
m_endColor = p.color(bgrole);
m_colorAnimation = new QPropertyAnimation(this, "splittercolor");
m_colorAnimation->setDuration(1000);
m_colorAnimation->setStartValue(m_currentColor);
m_colorAnimation->setEndValue(m_endColor);
m_colorAnimation->setLoopCount(2);
connect(m_colorAnimation, &QPropertyAnimation::finished, this, [this] {
m_animate = false;
m_currentColor = m_endColor;
repaint();
});
}
LtsSplitterHandle::~LtsSplitterHandle() {}
void LtsSplitterHandle::paintEvent(QPaintEvent* event)
{
if (!m_animate)
{
QSplitterHandle::paintEvent(event);
return;
}
QPainter painter(this);
QLinearGradient gradient;
gradient.setColorAt(0, m_currentColor);
if (orientation() == Qt::Horizontal)
{
gradient.setStart(rect().left(), rect().height() / 2);
gradient.setFinalStop(rect().height(), rect().height() / 2);
}
else
{
gradient.setStart(rect().width() / 2, rect().top());
gradient.setFinalStop(rect().width() / 2, rect().bottom() / 2);
}
painter.fillRect(event->rect(), QBrush(gradient));
}
void LtsSplitterHandle::animate()
{
if (m_colorAnimation->state() == QPropertyAnimation::Running)
return;
m_currentColor = QColor(239, 87, 50);
m_animate = true;
m_colorAnimation->start();
}
QColor LtsSplitterHandle::splitterColor() const
{
return m_currentColor;
}
void LtsSplitterHandle::setCurrentColor(const QColor& currentcolor)
{
if (currentcolor == m_currentColor)
return;
m_currentColor = currentcolor;
repaint();
}
} // namespace LtsWidgets