X-Git-Url: http://git.salome-platform.org/gitweb/?a=blobdiff_plain;f=src%2FSUPERVGUI%2FSUPERVGUI_CanvasNodePrs.cxx;h=d82abd2a81bec413dc67b51a4faebf7120ff500c;hb=3adca07fe666de5d5a9ad6228488f1cbc939d1fb;hp=cda5aaf2762d5a9c2a1a7a0b7d841b54bb277b4f;hpb=b7b531f894fd0a967071ce2b05e0ced7b4743f3b;p=modules%2Fsuperv.git diff --git a/src/SUPERVGUI/SUPERVGUI_CanvasNodePrs.cxx b/src/SUPERVGUI/SUPERVGUI_CanvasNodePrs.cxx index cda5aaf..d82abd2 100644 --- a/src/SUPERVGUI/SUPERVGUI_CanvasNodePrs.cxx +++ b/src/SUPERVGUI/SUPERVGUI_CanvasNodePrs.cxx @@ -11,6 +11,9 @@ using namespace std; #include "SUPERVGUI_CanvasNode.h" #include "SUPERVGUI_CanvasPort.h" #include "SUPERVGUI_Canvas.h" +#include "SUPERVGUI_CanvasCellNodePrs.h" + +#include "SUIT_ResourceMgr.h" //#define CHECKTIME @@ -27,10 +30,12 @@ using namespace std; //===================================================================== // Node presentation //===================================================================== -SUPERVGUI_CanvasNodePrs::SUPERVGUI_CanvasNodePrs(QCanvas* theCanvas, - SUPERVGUI_CanvasNode* theNode): +SUPERVGUI_CanvasNodePrs::SUPERVGUI_CanvasNodePrs( SUIT_ResourceMgr* mgr, QCanvas* theCanvas, + SUPERVGUI_CanvasNode* theNode, + bool theCellPrs): QCanvasPolygonalItem(theCanvas), - myNode(theNode) + myNode(theNode), + myMgr( mgr ) { Trace("SUPERVGUI_CanvasNodePrs::SUPERVGUI_CanvasNodePrs"); myWidth = LABEL_WIDTH; @@ -46,25 +51,34 @@ SUPERVGUI_CanvasNodePrs::SUPERVGUI_CanvasNodePrs(QCanvas* theCanvas, myLabelVisible = true; myPortVisible = true; + myCellPrs = theCellPrs; - myColor = MAIN_BACK; + myColor = mgr->colorValue( "SUPERVGraph", "NodeBody", DEF_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 +213,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 +273,7 @@ void SUPERVGUI_CanvasNodePrs::setLabelVisible(bool b) myLabelVisible = b; updatePorts(); - if (!isPortVisible()) updatePoints(); + if (!isPortVisible() && !myCellPrs) updatePoints(); if (aDisp) { show(); @@ -272,16 +288,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 +531,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) @@ -555,7 +598,7 @@ void SUPERVGUI_CanvasNodePrs::drawFrame(QPainter& thePainter) void SUPERVGUI_CanvasNodePrs::drawTitle(QPainter& thePainter) { QBrush saved = thePainter.brush(); - QBrush br(MAIN_TITLE); + QBrush br( myMgr->colorValue( "SUPERVGraph", "Title", DEF_MAIN_TITLE ) ); thePainter.setBrush(br); drawTitleShape(thePainter); thePainter.setBrush(saved); @@ -644,7 +687,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,9 +743,14 @@ 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; + myStatusColor = myMgr->colorValue( "SUPERVGraph", "NodeBody", DEF_MAIN_BACK ); break; } @@ -931,7 +979,7 @@ void SUPERVGUI_CanvasHookPrs::init(QCanvas* theCanvas) SUPERVGUI_CanvasHookPrs::~SUPERVGUI_CanvasHookPrs() { hide(); - if (myLine) { + if ( myLine ) { delete myLine; myLine = 0; } @@ -940,9 +988,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; }