X-Git-Url: http://git.salome-platform.org/gitweb/?a=blobdiff_plain;f=src%2FSUPERVGUI%2FSUPERVGUI_CanvasNodePrs.cxx;h=969b433555c511a5da8d4579e324629d8d423487;hb=d797c7fa5e2df201abd8a31c8773ccdfbe88ee87;hp=cda5aaf2762d5a9c2a1a7a0b7d841b54bb277b4f;hpb=b7b531f894fd0a967071ce2b05e0ced7b4743f3b;p=modules%2Fsuperv.git diff --git a/src/SUPERVGUI/SUPERVGUI_CanvasNodePrs.cxx b/src/SUPERVGUI/SUPERVGUI_CanvasNodePrs.cxx index cda5aaf..969b433 100644 --- a/src/SUPERVGUI/SUPERVGUI_CanvasNodePrs.cxx +++ b/src/SUPERVGUI/SUPERVGUI_CanvasNodePrs.cxx @@ -11,6 +11,7 @@ using namespace std; #include "SUPERVGUI_CanvasNode.h" #include "SUPERVGUI_CanvasPort.h" #include "SUPERVGUI_Canvas.h" +#include "SUPERVGUI_CanvasCellNodePrs.h" //#define CHECKTIME @@ -28,7 +29,8 @@ using namespace std; // Node presentation //===================================================================== SUPERVGUI_CanvasNodePrs::SUPERVGUI_CanvasNodePrs(QCanvas* theCanvas, - SUPERVGUI_CanvasNode* theNode): + SUPERVGUI_CanvasNode* theNode, + bool theCellPrs): QCanvasPolygonalItem(theCanvas), myNode(theNode) { @@ -46,25 +48,34 @@ SUPERVGUI_CanvasNodePrs::SUPERVGUI_CanvasNodePrs(QCanvas* theCanvas, myLabelVisible = true; myPortVisible = true; + myCellPrs = theCellPrs; myColor = MAIN_BACK; - // create in/out connection points prs - myPointIn = new SUPERVGUI_CanvasHookPrs(theCanvas, this, true); - myPointOut = new SUPERVGUI_CanvasHookPrs(theCanvas, this, false); + if (!myCellPrs) { + // create in/out connection points prs + myPointIn = new SUPERVGUI_CanvasHookPrs(theCanvas, this, true); + myPointOut = new SUPERVGUI_CanvasHookPrs(theCanvas, this, false); - setZ(0); - setState(myNode->getEngine()->State()); - updatePorts(); + setZ(0); + setState(myNode->getEngine()->State()); + updatePorts(); + } } SUPERVGUI_CanvasNodePrs::~SUPERVGUI_CanvasNodePrs() { - Trace("SUPERVGUI_CanvasNodePrs::~SUPERVGUI_CanvasNodePrs"); - if (myPointIn) delete myPointIn; - if (myPointOut) delete myPointOut; - hide(); + if ( !myCellPrs ) { + if ( myPointIn ) { + delete myPointIn; + myPointIn = 0; + } + if ( myPointOut ) { + delete myPointOut; + myPointOut = 0; + } + } } int SUPERVGUI_CanvasNodePrs::rtti() const @@ -199,8 +210,10 @@ void SUPERVGUI_CanvasNodePrs::moveBy(double dx, double dy) } } - myPointIn->moveBy(dx, dy); - myPointOut->moveBy(dx, dy); + if (!myCellPrs) { + myPointIn->moveBy(dx, dy); + myPointOut->moveBy(dx, dy); + } } void SUPERVGUI_CanvasNodePrs::setZ(double z) @@ -257,7 +270,7 @@ void SUPERVGUI_CanvasNodePrs::setLabelVisible(bool b) myLabelVisible = b; updatePorts(); - if (!isPortVisible()) updatePoints(); + if (!isPortVisible() && !myCellPrs) updatePoints(); if (aDisp) { show(); @@ -272,16 +285,20 @@ void SUPERVGUI_CanvasNodePrs::setPortVisible(bool b) myPortVisible = b; if (b) { - myPointIn->hide(); - myPointOut->hide(); + if (!myCellPrs) { + myPointIn->hide(); + myPointOut->hide(); + } updateGates(); } else { - updatePoints(); - - myPointIn->show(); - myPointOut->show(); + if (!myCellPrs) { + updatePoints(); + + myPointIn->show(); + myPointOut->show(); + } } const QObjectList* list = myNode->children(); @@ -511,7 +528,30 @@ void drawText(QPainter& thePainter, const QString& theText, int flags = theHAlign | Qt::AlignVCenter; QRect r(theRect.x() + TEXT_MARGIN, theRect.y(), theRect.width() - 2*TEXT_MARGIN, theRect.height()); - thePainter.drawText(r, flags, theText); + + QWMatrix aMat = thePainter.worldMatrix(); + if (aMat.m11() != 1.0) { + // for scaled picture only + QRect r1 = aMat.mapRect(r); + QFont saved = thePainter.font(); + QFont f(saved); + if (f.pointSize() == -1) { + f.setPixelSize((int)(f.pixelSize()*aMat.m11())); + } + else { + f.setPointSize((int)(f.pointSize()*aMat.m11())); + } + thePainter.save(); + QWMatrix m; + thePainter.setWorldMatrix(m); + thePainter.setFont(f); + thePainter.drawText(r1, flags, theText); + thePainter.setFont(saved); + thePainter.restore(); + } + else { + thePainter.drawText(r, flags, theText); + } } void SUPERVGUI_CanvasNodePrs::draw(QPainter& thePainter) @@ -644,7 +684,7 @@ void SUPERVGUI_CanvasNodePrs::drawGate(QPainter& thePainter) QRect r = getGateRect(); // r.setHeight(r.height()+1); thePainter.drawRect(r); - int x0 = (r.left() + r.right())/2; + //int x0 = (r.left() + r.right())/2; // thePainter.drawLine(x0, r.top(), x0, r.bottom()); const QObjectList* list = myNode->children(); @@ -700,6 +740,11 @@ void SUPERVGUI_CanvasNodePrs::setState(SUPERV::GraphState theState) myStatusColor = red; break; + case SUPERV::LoadingState: + myStatus = "Loading"; + myStatusColor = QColor(56,255,56); + break; + default: myStatus = "No Status"; myStatusColor = MAIN_BACK; @@ -931,7 +976,7 @@ void SUPERVGUI_CanvasHookPrs::init(QCanvas* theCanvas) SUPERVGUI_CanvasHookPrs::~SUPERVGUI_CanvasHookPrs() { hide(); - if (myLine) { + if ( myLine ) { delete myLine; myLine = 0; } @@ -940,9 +985,9 @@ SUPERVGUI_CanvasHookPrs::~SUPERVGUI_CanvasHookPrs() QObject* SUPERVGUI_CanvasHookPrs::getObject() const { QObject* anObj = 0; - if (myNodePrs) + if ( myNodePrs ) anObj = myNodePrs->getNode(); - else if (myPortPrs) + else if ( myPortPrs ) anObj = myPortPrs->getPort(); return anObj; }