Merge pull request #589 from ispyisail/feature-element-editor-coord-readout

Add live cursor-coordinate readout to the element editor status bar
This commit is contained in:
Laurent Trinques
2026-08-01 05:59:23 +02:00
committed by GitHub
4 changed files with 17 additions and 0 deletions
+3
View File
@@ -124,6 +124,7 @@ void ElementScene::mouseMoveEvent(QGraphicsSceneMouseEvent *e)
{
if (m_event_interface) {
if (m_event_interface -> mouseMoveEvent(e)) {
emit mouseMoved(e -> scenePos());
if (m_event_interface->isFinish()) {
delete m_event_interface;
m_event_interface = nullptr;
@@ -136,6 +137,8 @@ void ElementScene::mouseMoveEvent(QGraphicsSceneMouseEvent *e)
if (!(e -> modifiers() & Qt::ControlModifier))
event_pos = snapToGrid(event_pos);
emit mouseMoved(event_pos);
if (m_behavior == PasteArea) {
QRectF current_rect(m_paste_area -> rect());
current_rect.moveCenter(event_pos);
+2
View File
@@ -179,6 +179,8 @@ class ElementScene : public QGraphicsScene
void elementInfoChanged();
/// Signal emitted when the element type changes
void elementTypeChanged();
/// Signal emitted with the current cursor position (scene coordinates) on every mouse move
void mouseMoved(const QPointF &pos);
};
Q_DECLARE_OPERATORS_FOR_FLAGS(ElementScene::ItemOptions)
+10
View File
@@ -1194,6 +1194,16 @@ void QETElementEditor::initGui()
if (te) te->refreshMasterLabelVisibility();
});
//Live cursor position readout, in the same scene coordinates as the parts' X/Y properties
m_position_label = new QLabel(this);
m_position_label->setMinimumWidth(120);
statusBar()->addPermanentWidget(m_position_label);
connect(m_elmt_scene, &ElementScene::mouseMoved, this, [this](const QPointF &pos) {
m_position_label->setText(tr("X: %1 Y: %2")
.arg(pos.x(), 0, 'f', 1)
.arg(pos.y(), 0, 'f', 1));
});
statusBar()->showMessage(tr("Éditeur d'éléments", "status bar message"));
}
+2
View File
@@ -161,6 +161,8 @@ class QETElementEditor : public QMainWindow
QLabel *m_default_informations = nullptr;
QLabel *m_position_label = nullptr;
};
#endif // QETELEMENTEDITOR_H