[Uml-devel] branches/KDE/3.5/kdesdk/umbrello/umbrello
Oliver Kellogg
okellogg at users.sourceforge.net
Mon Oct 31 00:39:23 UTC 2005
SVN commit 475999 by okellogg:
{set,get}Z(): New.
mouseReleaseEvent(), setSelected(): Improve Z ordering when dealing
with multi-level nesting - but it's still not perfect.
M +29 -4 umlwidget.cpp
M +14 -0 umlwidget.h
--- branches/KDE/3.5/kdesdk/umbrello/umbrello/umlwidget.cpp #475998:475999
@@ -410,6 +410,15 @@
m_pView->setAssoc(this);
}
+ UMLWidget *bkgnd = m_pView->testOnWidget(me->pos());
+ if (bkgnd) {
+ kdDebug() << "UMLWidget::mouseReleaseEvent: setting Z to "
+ << bkgnd->getZ() + 1 << endl;
+ setZ( bkgnd->getZ() + 1 );
+ } else {
+ setZ( 0 );
+ }
+
if (m_bResizing) {
m_bResizing = false;
m_pView->setCursor( KCursor::arrowCursor() );
@@ -888,17 +897,28 @@
m_pView->showDocumentation(this, false);
}
}//end if
- if (wt != wt_Text && wt != wt_Box) {
+ /* if (wt != wt_Text && wt != wt_Box) {
setZ(9);//keep text on top and boxes behind so don't touch Z value
- }
+ } */
} else {
- if (wt != wt_Text && wt != wt_Box) {
+ /* if (wt != wt_Text && wt != wt_Box) {
setZ(m_origZ);
- }
+ } */
if( m_bSelected )
m_pView -> updateDocumentation( true );
}
m_bSelected = _select;
+
+ const QPoint pos(getX(), getY());
+ UMLWidget *bkgnd = m_pView->testOnWidget(pos);
+ if (bkgnd) {
+ kdDebug() << "UMLWidget::setSelected: setting Z to "
+ << bkgnd->getZ() + 1 << endl;
+ setZ( bkgnd->getZ() + 1 );
+ } else {
+ setZ( 0 );
+ }
+
update();
/* selection changed, we have to make sure the copy and paste items
@@ -940,6 +960,11 @@
QCanvasItem::setY( (double)y );
}
+void UMLWidget::setZ(int z) {
+ m_origZ = getZ();
+ QCanvasItem::setZ(z);
+}
+
void UMLWidget::setName(const QString &strName) {
if (m_pObject)
m_pObject->setName(strName);
--- branches/KDE/3.5/kdesdk/umbrello/umbrello/umlwidget.h #475998:475999
@@ -265,6 +265,13 @@
virtual void setY( int y );
/**
+ * Sets the z-coordinate.
+ *
+ * @param z The z-coordinate to be set.
+ */
+ virtual void setZ( int z );
+
+ /**
* Gets the x-coordinate.
*/
int getX() const {
@@ -279,6 +286,13 @@
}
/**
+ * Gets the z-coordinate.
+ */
+ int getZ() const {
+ return (int)QCanvasItem::z();
+ }
+
+ /**
* Returns the height of widget.
*/
int getHeight() const {
More information about the umbrello-devel
mailing list