mirror of
https://github.com/qelectrotech/qelectrotech-source-mirror.git
synced 2026-04-09 16:09:59 +02:00
element text item : improve mouse double clic.
Over text (Only if tagged label or parent are report) will higlight element linked to parent element git-svn-id: svn+ssh://svn.tuxfamily.org/svnroot/qet/qet/trunk@3549 bfdf4180-ca20-0410-9c96-a3a8aa849046
This commit is contained in:
@@ -177,27 +177,33 @@ void ElementTextItem::adjustItemPosition(int new_block_count) {
|
|||||||
* @brief ElementTextItem::mouseDoubleClickEvent
|
* @brief ElementTextItem::mouseDoubleClickEvent
|
||||||
* @param event
|
* @param event
|
||||||
*/
|
*/
|
||||||
void ElementTextItem::mouseDoubleClickEvent(QGraphicsSceneMouseEvent *event) {
|
void ElementTextItem::mouseDoubleClickEvent(QGraphicsSceneMouseEvent *event)
|
||||||
//If parent is linked, show the linked element
|
{
|
||||||
if (parent_element_ -> linkType() & (Element::AllReport | Element::Slave) && !parent_element_ -> isFree()) {
|
if (tagg_ == "label" || parent_element_ -> linkType() & Element::AllReport)
|
||||||
//Unselect and ungrab mouse to prevent unwanted
|
{
|
||||||
//move when linked element is in the same scene of this.
|
//If parent is linked, show the linked element
|
||||||
setSelected(false);
|
if (parent_element_ -> linkType() & (Element::AllReport | Element::Slave) && !parent_element_ -> isFree()) {
|
||||||
ungrabMouse();
|
//Unselect and ungrab mouse to prevent unwanted
|
||||||
|
//move when linked element is in the same scene of this.
|
||||||
|
setSelected(false);
|
||||||
|
ungrabMouse();
|
||||||
|
|
||||||
//Show and select the linked element
|
//Show and select the linked element
|
||||||
Element *linked = parent_element_ -> linkedElements().first();
|
Element *linked = parent_element_ -> linkedElements().first();
|
||||||
if (scene() != linked -> scene()) linked -> diagram() -> showMe();
|
if (scene() != linked -> scene())
|
||||||
linked -> setSelected(true);
|
linked -> diagram() -> showMe();
|
||||||
|
linked -> setSelected(true);
|
||||||
|
|
||||||
//Zoom to the linked element
|
//Zoom to the linked element
|
||||||
foreach(QGraphicsView *view, linked -> diagram() -> views()) {
|
foreach(QGraphicsView *view, linked -> diagram() -> views()) {
|
||||||
QRectF fit = linked -> sceneBoundingRect();
|
QRectF fit = linked -> sceneBoundingRect();
|
||||||
fit.adjust(-200, -200, 200, 200);
|
fit.adjust(-200, -200, 200, 200);
|
||||||
view -> fitInView(fit, Qt::KeepAspectRatioByExpanding);
|
view -> fitInView(fit, Qt::KeepAspectRatioByExpanding);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else {
|
else
|
||||||
|
{
|
||||||
DiagramTextItem::mouseDoubleClickEvent(event);
|
DiagramTextItem::mouseDoubleClickEvent(event);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -282,19 +288,26 @@ void ElementTextItem::mouseReleaseEvent(QGraphicsSceneMouseEvent *event) {
|
|||||||
* @brief ElementTextItem::hoverEnterEvent
|
* @brief ElementTextItem::hoverEnterEvent
|
||||||
* @param event
|
* @param event
|
||||||
*/
|
*/
|
||||||
void ElementTextItem::hoverEnterEvent(QGraphicsSceneHoverEvent *event) {
|
void ElementTextItem::hoverEnterEvent(QGraphicsSceneHoverEvent *event)
|
||||||
if (parent_element_ -> linkType() & (Element::AllReport | Element::Slave) && !parent_element_->isFree()) {
|
{
|
||||||
setDefaultTextColor(Qt::blue);
|
if (tagg_ == "label" || parent_element_ -> linkType() & Element::AllReport)
|
||||||
|
{
|
||||||
|
foreach (Element *elmt, parent_element_ -> linkedElements())
|
||||||
|
elmt -> setHighlighted(true);
|
||||||
|
|
||||||
//Also color the child text if parent is a slave and linked
|
if (parent_element_ -> linkType() & (Element::AllReport | Element::Slave) && !parent_element_->isFree())
|
||||||
if (parent_element_-> linkType() == Element::Slave && !parent_element_ -> isFree()) {
|
{
|
||||||
foreach (QGraphicsItem *qgi, childItems()) {
|
setDefaultTextColor(Qt::blue);
|
||||||
if (QGraphicsTextItem *qgti = qgraphicsitem_cast<QGraphicsTextItem *> (qgi))
|
|
||||||
qgti->setDefaultTextColor(Qt::blue);
|
//Also color the child text if parent is a slave and linked
|
||||||
}
|
if (parent_element_-> linkType() == Element::Slave && !parent_element_ -> isFree())
|
||||||
|
foreach (QGraphicsItem *qgi, childItems())
|
||||||
|
if (QGraphicsTextItem *qgti = qgraphicsitem_cast<QGraphicsTextItem *> (qgi))
|
||||||
|
qgti -> setDefaultTextColor(Qt::blue);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else {
|
else
|
||||||
|
{
|
||||||
DiagramTextItem::hoverEnterEvent(event);
|
DiagramTextItem::hoverEnterEvent(event);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -303,16 +316,21 @@ void ElementTextItem::hoverEnterEvent(QGraphicsSceneHoverEvent *event) {
|
|||||||
* @brief ElementTextItem::hoverLeaveEvent
|
* @brief ElementTextItem::hoverLeaveEvent
|
||||||
* @param event
|
* @param event
|
||||||
*/
|
*/
|
||||||
void ElementTextItem::hoverLeaveEvent(QGraphicsSceneHoverEvent *event) {
|
void ElementTextItem::hoverLeaveEvent(QGraphicsSceneHoverEvent *event)
|
||||||
if (defaultTextColor() != Qt::black)
|
{
|
||||||
setDefaultTextColor(Qt::black);
|
if (tagg_ == "label" || parent_element_ -> linkType() & Element::AllReport)
|
||||||
|
{
|
||||||
|
foreach (Element *elmt, parent_element_ -> linkedElements())
|
||||||
|
elmt -> setHighlighted(false);
|
||||||
|
|
||||||
//Also color the child text if parent is a slave and linked
|
if (defaultTextColor() != Qt::black)
|
||||||
if (parent_element_-> linkType() == Element::Slave && !parent_element_ -> isFree()) {
|
setDefaultTextColor(Qt::black);
|
||||||
foreach (QGraphicsItem *qgi, childItems()) {
|
|
||||||
if (QGraphicsTextItem *qgti = qgraphicsitem_cast<QGraphicsTextItem *> (qgi))
|
//Also color the child text if parent is a slave and linked
|
||||||
qgti->setDefaultTextColor(Qt::black);
|
if (parent_element_-> linkType() == Element::Slave && !parent_element_ -> isFree())
|
||||||
}
|
foreach (QGraphicsItem *qgi, childItems())
|
||||||
|
if (QGraphicsTextItem *qgti = qgraphicsitem_cast<QGraphicsTextItem *> (qgi))
|
||||||
|
qgti -> setDefaultTextColor(Qt::black);
|
||||||
}
|
}
|
||||||
|
|
||||||
DiagramTextItem::hoverLeaveEvent(event);
|
DiagramTextItem::hoverLeaveEvent(event);
|
||||||
|
|||||||
Reference in New Issue
Block a user