diff --git a/src/ViewportWidget.cpp b/src/ViewportWidget.cpp index 3e0c781..92e535f 100644 --- a/src/ViewportWidget.cpp +++ b/src/ViewportWidget.cpp @@ -30,6 +30,8 @@ ViewportWidget::ViewportWidget(QWidget *parent) m_toolIcons.insert(static_cast(ApplicationController::ToolType::Line), new QSvgRenderer(QString(":/icons/line.svg"), this)); m_toolIcons.insert(static_cast(ApplicationController::ToolType::Rectangle), new QSvgRenderer(QString(":/icons/rectangle.svg"), this)); m_toolIcons.insert(static_cast(ApplicationController::ToolType::Circle), new QSvgRenderer(QString(":/icons/circle.svg"), this)); + + m_cursorRenderer = new QSvgRenderer(QString(":/icons/cursor.svg"), this); } ViewportWidget::~ViewportWidget() @@ -400,12 +402,10 @@ void ViewportWidget::onActiveToolChanged(int tool) QPainter painter(&cursorPixmap); painter.setRenderHint(QPainter::Antialiasing); - // Draw arrow cursor manually - QPolygon arrowPolygon; - arrowPolygon << QPoint(0, 0) << QPoint(0, 11) << QPoint(4, 11) << QPoint(4, 16) << QPoint(7, 16) << QPoint(7, 11) << QPoint(11, 11); - painter.setPen(Qt::white); - painter.setBrush(Qt::black); - painter.drawPolygon(arrowPolygon); + // Render arrow cursor from SVG + if (m_cursorRenderer && m_cursorRenderer->isValid()) { + m_cursorRenderer->render(&painter, QRectF(0, 0, 16, 16)); + } // Render tool icon const QSize iconSize(32, 32); diff --git a/src/ViewportWidget.h b/src/ViewportWidget.h index 8a11b52..8f56b52 100644 --- a/src/ViewportWidget.h +++ b/src/ViewportWidget.h @@ -91,6 +91,7 @@ private: QPoint m_currentMousePos; QMap m_toolIcons; + QSvgRenderer* m_cursorRenderer = nullptr; float m_xRot = 35.264f * 16.0f; // Default to isometric view float m_yRot = -45.0f * 16.0f; // Default to isometric view