mirror of
https://github.com/qelectrotech/qelectrotech-source-mirror.git
synced 2025-12-17 12:40:35 +01:00
Fix the left margin of the diagram : In some condition, (most of time when use copy and paste) a margin appear in the left of the folio.
git-svn-id: svn+ssh://svn.tuxfamily.org/svnroot/qet/qet/trunk@5004 bfdf4180-ca20-0410-9c96-a3a8aa849046
This commit is contained in:
@@ -968,7 +968,7 @@ bool Diagram::fromXml(QDomElement &document, QPointF position, bool consider_inf
|
||||
qgi -> setPos( qgi -> pos() += pos_);
|
||||
}
|
||||
|
||||
// remplissage des listes facultatives
|
||||
//Filling of optional lists
|
||||
if (content_ptr) {
|
||||
content_ptr -> elements = added_elements.toSet();
|
||||
content_ptr -> conductorsToMove = added_conductors.toSet();
|
||||
@@ -976,6 +976,12 @@ bool Diagram::fromXml(QDomElement &document, QPointF position, bool consider_inf
|
||||
content_ptr -> images = added_images.toSet();
|
||||
content_ptr -> shapes = added_shapes.toSet();
|
||||
}
|
||||
|
||||
//Ensure the texts of conductor are inside the border of the folio
|
||||
//and so don't cause the annoying margin on the left border of the folio.
|
||||
for(Conductor *cond : added_conductors)
|
||||
cond->textItem()->setPos(cond->textItem()->pos());
|
||||
|
||||
adjustSceneRect();
|
||||
return(true);
|
||||
}
|
||||
|
||||
@@ -137,7 +137,42 @@ void ConductorTextItem::forceRotateByUser(bool rotate_by_user) {
|
||||
rotate_by_user_ = rotate_by_user;
|
||||
if (!rotate_by_user && parent_conductor_) {
|
||||
parent_conductor_ -> calculateTextItemPosition();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief ConductorTextItem::setPos
|
||||
* @param pos
|
||||
*/
|
||||
void ConductorTextItem::setPos(const QPointF &pos)
|
||||
{
|
||||
/*
|
||||
* In some condition the conductor text item is outside the border of folio in the left.
|
||||
* They cause a margin on the left of folio and in most case this margin is unwanted and annoying the user.
|
||||
* If the text is empty and the scene position is outside the border (left and top),
|
||||
* we can say that this position, is unwanted by user.
|
||||
* So we move this text item to the top left of the bounding rect of parent conductors, because we sure this position is wanted by user.
|
||||
*/
|
||||
DiagramTextItem::setPos(pos);
|
||||
if(toPlainText().isEmpty() && (scenePos().x() < 0 || scenePos().y() < 0))
|
||||
{
|
||||
Conductor *cond = parentConductor();
|
||||
if(cond)
|
||||
DiagramTextItem::setPos(cond->boundingRect().topLeft());
|
||||
else
|
||||
DiagramTextItem::setPos(0,0);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief ConductorTextItem::setPos
|
||||
* @param x
|
||||
* @param y
|
||||
*/
|
||||
void ConductorTextItem::setPos(qreal x, qreal y)
|
||||
{
|
||||
QPointF p(x,y);
|
||||
setPos(p);
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -238,5 +273,5 @@ void ConductorTextItem::hoverLeaveEvent(QGraphicsSceneHoverEvent *e) {
|
||||
*/
|
||||
void ConductorTextItem::hoverMoveEvent(QGraphicsSceneHoverEvent *e) {
|
||||
Q_UNUSED(e);
|
||||
QGraphicsTextItem::hoverMoveEvent(e);
|
||||
QGraphicsTextItem::hoverMoveEvent(e);
|
||||
}
|
||||
|
||||
@@ -26,47 +26,44 @@ class Conductor;
|
||||
Its movements are however limited to a particular distance around its
|
||||
parent conductor.
|
||||
*/
|
||||
class ConductorTextItem : public DiagramTextItem {
|
||||
class ConductorTextItem : public DiagramTextItem
|
||||
{
|
||||
Q_OBJECT
|
||||
|
||||
// constructors, destructor
|
||||
// constructors, destructor
|
||||
public:
|
||||
ConductorTextItem(Conductor * = 0);
|
||||
ConductorTextItem(const QString &, Conductor * = 0);
|
||||
virtual ~ConductorTextItem();
|
||||
ConductorTextItem(Conductor * = 0);
|
||||
ConductorTextItem(const QString &, Conductor * = 0);
|
||||
virtual ~ConductorTextItem();
|
||||
private:
|
||||
ConductorTextItem(const ConductorTextItem &);
|
||||
|
||||
// attributes
|
||||
public:
|
||||
enum { Type = UserType + 1006 };
|
||||
Conductor *parentConductor() const;
|
||||
virtual void fromXml(const QDomElement &);
|
||||
virtual void toXml (QDomElement &xml) const;
|
||||
|
||||
// methods
|
||||
public:
|
||||
virtual int type() const { return Type; }
|
||||
virtual bool wasMovedByUser() const;
|
||||
virtual bool wasRotateByUser() const;
|
||||
virtual void forceMovedByUser(bool);
|
||||
virtual void forceRotateByUser(bool);
|
||||
|
||||
protected:
|
||||
virtual void mousePressEvent (QGraphicsSceneMouseEvent *event);
|
||||
virtual void mouseMoveEvent (QGraphicsSceneMouseEvent *event);
|
||||
virtual void mouseReleaseEvent (QGraphicsSceneMouseEvent *event);
|
||||
|
||||
protected:
|
||||
virtual void hoverEnterEvent(QGraphicsSceneHoverEvent *);
|
||||
virtual void hoverLeaveEvent(QGraphicsSceneHoverEvent *);
|
||||
virtual void hoverMoveEvent(QGraphicsSceneHoverEvent *);
|
||||
ConductorTextItem(const ConductorTextItem &);
|
||||
|
||||
// attributes
|
||||
public:
|
||||
enum { Type = UserType + 1006 };
|
||||
Conductor *parentConductor() const;
|
||||
virtual void fromXml(const QDomElement &);
|
||||
virtual void toXml (QDomElement &xml) const;
|
||||
virtual int type() const { return Type; }
|
||||
virtual bool wasMovedByUser() const;
|
||||
virtual bool wasRotateByUser() const;
|
||||
virtual void forceMovedByUser(bool);
|
||||
virtual void forceRotateByUser(bool);
|
||||
virtual void setPos(const QPointF &pos);
|
||||
virtual void setPos(qreal x, qreal y);
|
||||
|
||||
protected:
|
||||
virtual void mousePressEvent (QGraphicsSceneMouseEvent *event);
|
||||
virtual void mouseMoveEvent (QGraphicsSceneMouseEvent *event);
|
||||
virtual void mouseReleaseEvent (QGraphicsSceneMouseEvent *event);
|
||||
virtual void hoverEnterEvent(QGraphicsSceneHoverEvent *);
|
||||
virtual void hoverLeaveEvent(QGraphicsSceneHoverEvent *);
|
||||
virtual void hoverMoveEvent(QGraphicsSceneHoverEvent *);
|
||||
|
||||
// attributes
|
||||
private:
|
||||
Conductor *parent_conductor_;
|
||||
bool moved_by_user_;
|
||||
bool rotate_by_user_;
|
||||
QPointF before_mov_pos_;
|
||||
Conductor *parent_conductor_;
|
||||
bool moved_by_user_;
|
||||
bool rotate_by_user_;
|
||||
QPointF before_mov_pos_;
|
||||
};
|
||||
#endif
|
||||
|
||||
Reference in New Issue
Block a user