Add mouse position functionality
This commit is contained in:
parent
d55dbbb61e
commit
491d5848b4
|
@ -74,6 +74,12 @@ void VPMainGraphicsView::RefreshLayout()
|
||||||
m_scene->update();
|
m_scene->update();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//---------------------------------------------------------------------------------------------------------------------
|
||||||
|
VMainGraphicsScene* VPMainGraphicsView::GetScene()
|
||||||
|
{
|
||||||
|
return m_scene;
|
||||||
|
}
|
||||||
|
|
||||||
//---------------------------------------------------------------------------------------------------------------------
|
//---------------------------------------------------------------------------------------------------------------------
|
||||||
void VPMainGraphicsView::dragEnterEvent(QDragEnterEvent *event)
|
void VPMainGraphicsView::dragEnterEvent(QDragEnterEvent *event)
|
||||||
{
|
{
|
||||||
|
|
|
@ -48,6 +48,14 @@ public:
|
||||||
*/
|
*/
|
||||||
void RefreshLayout();
|
void RefreshLayout();
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief GetScene Returns the scene of the view
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
VMainGraphicsScene* GetScene();
|
||||||
|
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
void dragEnterEvent(QDragEnterEvent *event) override;
|
void dragEnterEvent(QDragEnterEvent *event) override;
|
||||||
void dragMoveEvent(QDragMoveEvent *event) override;
|
void dragMoveEvent(QDragMoveEvent *event) override;
|
||||||
|
|
|
@ -41,6 +41,7 @@
|
||||||
#include "../vmisc/projectversion.h"
|
#include "../vmisc/projectversion.h"
|
||||||
#include "../ifc/xml/vlayoutconverter.h"
|
#include "../ifc/xml/vlayoutconverter.h"
|
||||||
#include "../ifc/exception/vexception.h"
|
#include "../ifc/exception/vexception.h"
|
||||||
|
#include "../vwidgets/vmaingraphicsscene.h"
|
||||||
#include "vpsheet.h"
|
#include "vpsheet.h"
|
||||||
|
|
||||||
#include <QLoggingCategory>
|
#include <QLoggingCategory>
|
||||||
|
@ -480,11 +481,21 @@ void VPMainWindow::InitMainGraphics()
|
||||||
m_graphicsView->RefreshLayout();
|
m_graphicsView->RefreshLayout();
|
||||||
|
|
||||||
connect(m_graphicsView, &VPMainGraphicsView::ScaleChanged, this, &VPMainWindow::on_ScaleChanged);
|
connect(m_graphicsView, &VPMainGraphicsView::ScaleChanged, this, &VPMainWindow::on_ScaleChanged);
|
||||||
|
connect(m_graphicsView->GetScene(), &VMainGraphicsScene::mouseMove, this, &VPMainWindow::on_MouseMoved);
|
||||||
}
|
}
|
||||||
|
|
||||||
//---------------------------------------------------------------------------------------------------------------------
|
//---------------------------------------------------------------------------------------------------------------------
|
||||||
void VPMainWindow::InitZoomToolBar()
|
void VPMainWindow::InitZoomToolBar()
|
||||||
{
|
{
|
||||||
|
if (not m_doubleSpinBoxScale.isNull())
|
||||||
|
{
|
||||||
|
delete m_doubleSpinBoxScale;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (m_mouseCoordinate != nullptr)
|
||||||
|
{
|
||||||
|
delete m_mouseCoordinate;
|
||||||
|
}
|
||||||
|
|
||||||
// connect the zoom buttons and shortcuts to the slots
|
// connect the zoom buttons and shortcuts to the slots
|
||||||
QList<QKeySequence> zoomInShortcuts;
|
QList<QKeySequence> zoomInShortcuts;
|
||||||
|
@ -530,7 +541,6 @@ void VPMainWindow::InitZoomToolBar()
|
||||||
m_mouseCoordinate = new QLabel(QString("0, 0 (%1)").arg(UnitsToStr(m_layout->GetUnit(), true)));
|
m_mouseCoordinate = new QLabel(QString("0, 0 (%1)").arg(UnitsToStr(m_layout->GetUnit(), true)));
|
||||||
ui->toolBarZoom->addWidget(m_mouseCoordinate);
|
ui->toolBarZoom->addWidget(m_mouseCoordinate);
|
||||||
ui->toolBarZoom->addSeparator();
|
ui->toolBarZoom->addSeparator();
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
//---------------------------------------------------------------------------------------------------------------------
|
//---------------------------------------------------------------------------------------------------------------------
|
||||||
|
@ -1099,3 +1109,15 @@ void VPMainWindow::on_ScaleChanged(qreal scale)
|
||||||
m_doubleSpinBoxScale->blockSignals(false);
|
m_doubleSpinBoxScale->blockSignals(false);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//---------------------------------------------------------------------------------------------------------------------
|
||||||
|
void VPMainWindow::on_MouseMoved(const QPointF &scenePos)
|
||||||
|
{
|
||||||
|
if (m_mouseCoordinate != nullptr)
|
||||||
|
{
|
||||||
|
m_mouseCoordinate->setText(QStringLiteral("%1, %2 (%3)")
|
||||||
|
.arg(static_cast<qint32>(FromPixel(scenePos.x(), m_layout->GetUnit())))
|
||||||
|
.arg(static_cast<qint32>(FromPixel(scenePos.y(), m_layout->GetUnit())))
|
||||||
|
.arg(UnitsToStr(m_layout->GetUnit(), true)));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
|
@ -31,6 +31,7 @@
|
||||||
#include <QMainWindow>
|
#include <QMainWindow>
|
||||||
#include <QMessageBox>
|
#include <QMessageBox>
|
||||||
#include <QDoubleSpinBox>
|
#include <QDoubleSpinBox>
|
||||||
|
#include <QPointer>
|
||||||
|
|
||||||
#include "../vmisc/def.h"
|
#include "../vmisc/def.h"
|
||||||
#include "vpcarrousel.h"
|
#include "vpcarrousel.h"
|
||||||
|
@ -103,9 +104,16 @@ private:
|
||||||
VPLayout *m_layout{nullptr};
|
VPLayout *m_layout{nullptr};
|
||||||
QList<VPPiece *>m_selectedPieces{QList<VPPiece *>()};
|
QList<VPPiece *>m_selectedPieces{QList<VPPiece *>()};
|
||||||
|
|
||||||
QLabel* m_mouseCoordinate{nullptr};
|
/**
|
||||||
|
* @brief spin box with the scale factor of the graphic view
|
||||||
|
*/
|
||||||
QPointer<QDoubleSpinBox> m_doubleSpinBoxScale{nullptr};
|
QPointer<QDoubleSpinBox> m_doubleSpinBoxScale{nullptr};
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief mouseCoordinate pointer to label who show mouse coordinate.
|
||||||
|
*/
|
||||||
|
QLabel* m_mouseCoordinate{nullptr};
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief CreatePiece creates a piece from the given VLayoutPiece data
|
* @brief CreatePiece creates a piece from the given VLayoutPiece data
|
||||||
* @param rawPiece the raw piece data
|
* @param rawPiece the raw piece data
|
||||||
|
@ -399,10 +407,15 @@ private slots:
|
||||||
void on_PieceRotationChanged();
|
void on_PieceRotationChanged();
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief on_ScaleChanged
|
* @brief on_ScaleChanged When the scale of the graphic view is changed
|
||||||
*/
|
*/
|
||||||
void on_ScaleChanged(qreal scale);
|
void on_ScaleChanged(qreal scale);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief mouseMove save mouse position and show user.
|
||||||
|
* @param scenePos position mouse.
|
||||||
|
*/
|
||||||
|
void on_MouseMoved(const QPointF &scenePos);
|
||||||
};
|
};
|
||||||
|
|
||||||
#endif // VPMAINWINDOW_H
|
#endif // VPMAINWINDOW_H
|
||||||
|
|
Loading…
Reference in New Issue
Block a user