mirror of
https://github.com/qelectrotech/qelectrotech-source-mirror.git
synced 2025-12-17 12:40:35 +01:00
Show x:y pos when drag element in the status bar
This commit is contained in:
@@ -21,6 +21,8 @@
|
|||||||
#include "../diagram.h"
|
#include "../diagram.h"
|
||||||
#include "../undocommand/addgraphicsobjectcommand.h"
|
#include "../undocommand/addgraphicsobjectcommand.h"
|
||||||
#include "../factory/elementfactory.h"
|
#include "../factory/elementfactory.h"
|
||||||
|
#include "../qetapp.h"
|
||||||
|
#include "../qetdiagrameditor.h"
|
||||||
#include "../qetgraphicsitem/element.h"
|
#include "../qetgraphicsitem/element.h"
|
||||||
#include "../qetgraphicsitem/conductor.h"
|
#include "../qetgraphicsitem/conductor.h"
|
||||||
|
|
||||||
@@ -49,6 +51,15 @@ DiagramEventAddElement::DiagramEventAddElement(ElementsLocation &location, Diagr
|
|||||||
m_element -> setFlag(QGraphicsItem::ItemIsSelectable, false);
|
m_element -> setFlag(QGraphicsItem::ItemIsSelectable, false);
|
||||||
m_diagram -> addItem(m_element);
|
m_diagram -> addItem(m_element);
|
||||||
m_running = true;
|
m_running = true;
|
||||||
|
|
||||||
|
if (!diagram->views().isEmpty()) {
|
||||||
|
const auto qde = QETApp::diagramEditorAncestorOf(diagram->views().at(0));
|
||||||
|
if (qde) {
|
||||||
|
m_status_bar = qde->statusBar();
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
m_status_bar.clear();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -65,6 +76,11 @@ DiagramEventAddElement::~DiagramEventAddElement()
|
|||||||
m_diagram->removeItem(m_element);
|
m_diagram->removeItem(m_element);
|
||||||
m_element->deleteLater();
|
m_element->deleteLater();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (m_status_bar) {
|
||||||
|
m_status_bar->clearMessage();
|
||||||
|
}
|
||||||
|
|
||||||
for (auto view : m_diagram->views())
|
for (auto view : m_diagram->views())
|
||||||
view -> setContextMenuPolicy(Qt::DefaultContextMenu);
|
view -> setContextMenuPolicy(Qt::DefaultContextMenu);
|
||||||
}
|
}
|
||||||
@@ -77,8 +93,14 @@ DiagramEventAddElement::~DiagramEventAddElement()
|
|||||||
*/
|
*/
|
||||||
void DiagramEventAddElement::mouseMoveEvent(QGraphicsSceneMouseEvent *event)
|
void DiagramEventAddElement::mouseMoveEvent(QGraphicsSceneMouseEvent *event)
|
||||||
{
|
{
|
||||||
if (m_element) {
|
if (m_element)
|
||||||
m_element->setPos(Diagram::snapToGrid(event->scenePos()));
|
{
|
||||||
|
const auto pos_{Diagram::snapToGrid(event->scenePos())};
|
||||||
|
m_element->setPos(pos_);
|
||||||
|
|
||||||
|
if (m_status_bar) {
|
||||||
|
m_status_bar->showMessage(QLatin1String("x %1 : y %2").arg(QString::number(pos_.x()), QString::number(pos_.y())));
|
||||||
|
}
|
||||||
}
|
}
|
||||||
event->setAccepted(true);
|
event->setAccepted(true);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -22,6 +22,7 @@
|
|||||||
#include "diagrameventinterface.h"
|
#include "diagrameventinterface.h"
|
||||||
|
|
||||||
class Element;
|
class Element;
|
||||||
|
class QStatusBar;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@brief The DiagramEventAddElement class
|
@brief The DiagramEventAddElement class
|
||||||
@@ -51,6 +52,7 @@ class DiagramEventAddElement : public DiagramEventInterface
|
|||||||
ElementsLocation m_location;
|
ElementsLocation m_location;
|
||||||
Element *m_element;
|
Element *m_element;
|
||||||
QString m_integrate_path;
|
QString m_integrate_path;
|
||||||
|
QPointer<QStatusBar> m_status_bar;
|
||||||
};
|
};
|
||||||
|
|
||||||
#endif // DIAGRAMEVENTADDELEMENT_H
|
#endif // DIAGRAMEVENTADDELEMENT_H
|
||||||
|
|||||||
@@ -28,6 +28,8 @@
|
|||||||
#include "qetgraphicsitem/elementtextitemgroup.h"
|
#include "qetgraphicsitem/elementtextitemgroup.h"
|
||||||
#include "qetgraphicsitem/independenttextitem.h"
|
#include "qetgraphicsitem/independenttextitem.h"
|
||||||
#include "undocommand/addgraphicsobjectcommand.h"
|
#include "undocommand/addgraphicsobjectcommand.h"
|
||||||
|
#include "qetapp.h"
|
||||||
|
#include "qetdiagrameditor.h"
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@brief ElementsMover::ElementsMover Constructor
|
@brief ElementsMover::ElementsMover Constructor
|
||||||
@@ -38,16 +40,13 @@ ElementsMover::ElementsMover() :
|
|||||||
diagram_(nullptr),
|
diagram_(nullptr),
|
||||||
m_movement_driver(nullptr),
|
m_movement_driver(nullptr),
|
||||||
m_moved_content()
|
m_moved_content()
|
||||||
{
|
{}
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@brief ElementsMover::~ElementsMover Destructor
|
@brief ElementsMover::~ElementsMover Destructor
|
||||||
*/
|
*/
|
||||||
ElementsMover::~ElementsMover()
|
ElementsMover::~ElementsMover()
|
||||||
{
|
{}
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@brief ElementsMover::isReady
|
@brief ElementsMover::isReady
|
||||||
@@ -75,6 +74,15 @@ int ElementsMover::beginMovement(Diagram *diagram, QGraphicsItem *driver_item)
|
|||||||
if (!diagram) return(-1);
|
if (!diagram) return(-1);
|
||||||
diagram_ = diagram;
|
diagram_ = diagram;
|
||||||
|
|
||||||
|
if (!diagram->views().isEmpty()) {
|
||||||
|
const auto qde = QETApp::diagramEditorAncestorOf(diagram->views().at(0));
|
||||||
|
if (qde) {
|
||||||
|
m_status_bar = qde->statusBar();
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
m_status_bar.clear();
|
||||||
|
}
|
||||||
|
|
||||||
// Take count of driver item
|
// Take count of driver item
|
||||||
m_movement_driver = driver_item;
|
m_movement_driver = driver_item;
|
||||||
|
|
||||||
@@ -146,6 +154,12 @@ void ElementsMover::continueMovement(const QPointF &movement)
|
|||||||
// } // we don't move it.
|
// } // we don't move it.
|
||||||
c->updatePath();
|
c->updatePath();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (m_status_bar)
|
||||||
|
{
|
||||||
|
const auto point_{m_movement_driver->scenePos()};
|
||||||
|
m_status_bar->showMessage(QLatin1String("x %1 : y %2").arg(QString::number(point_.x()), QString::number(point_.y())));
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -227,4 +241,8 @@ void ElementsMover::endMovement()
|
|||||||
// There is no movement in progress now
|
// There is no movement in progress now
|
||||||
movement_running_ = false;
|
movement_running_ = false;
|
||||||
m_moved_content.clear();
|
m_moved_content.clear();
|
||||||
|
|
||||||
|
if (m_status_bar) {
|
||||||
|
m_status_bar->clearMessage();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -19,10 +19,14 @@
|
|||||||
#define ELEMENTS_MOVER_H
|
#define ELEMENTS_MOVER_H
|
||||||
|
|
||||||
#include <QPointF>
|
#include <QPointF>
|
||||||
|
#include <QPointer>
|
||||||
|
|
||||||
#include "diagramcontent.h"
|
#include "diagramcontent.h"
|
||||||
|
|
||||||
class ConductorTextItem;
|
class ConductorTextItem;
|
||||||
class Diagram;
|
class Diagram;
|
||||||
|
class QStatusBar;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
This class manages the interactive movement of different items (elements,
|
This class manages the interactive movement of different items (elements,
|
||||||
conductors, text items etc...) on a particular diagram.
|
conductors, text items etc...) on a particular diagram.
|
||||||
@@ -57,5 +61,7 @@ class ElementsMover {
|
|||||||
Diagram *diagram_;
|
Diagram *diagram_;
|
||||||
QGraphicsItem *m_movement_driver;
|
QGraphicsItem *m_movement_driver;
|
||||||
DiagramContent m_moved_content;
|
DiagramContent m_moved_content;
|
||||||
|
QPointer<QStatusBar> m_status_bar;
|
||||||
|
|
||||||
};
|
};
|
||||||
#endif
|
#endif
|
||||||
|
|||||||
Reference in New Issue
Block a user