Salome HOME
SMH: 3.0.0 preparation = merged version (POLYWORK + RTVDEBUG01) + adopation for new GUI
[modules/superv.git] / src / SUPERVGUI / SUPERVGUI_Information.cxx
index 765c6bfb2d52901d3483c5908bb9e46562babcbe..0b6d8204a55bd4d7f55dca8fa3de21df026bb1b1 100644 (file)
 
 using namespace std;
 #include "SUPERVGUI_Information.h"
-#include "QAD_Application.h"
-#include "QAD_Desktop.h"
-#include "QAD_MessageBox.h"
+
+#include "CAM_Application.h"
+#include "SUIT_Desktop.h"
+#include "SUIT_Session.h"
+
 #include <qapplication.h>
 #include <qlabel.h>
 #include <qgroupbox.h>
@@ -40,7 +42,7 @@ using namespace std;
   Constructor
 */
 SUPERVGUI_Information::SUPERVGUI_Information(SUPERV_CNode node, bool isReadOnly)
-     : QDialog( QAD_Application::getDesktop(), "", true, WStyle_Customize | WStyle_NormalBorder | WStyle_Title | WStyle_SysMenu ) 
+     : QDialog( SUIT_Session::session()->activeApplication()->desktop(), "", true, WStyle_Customize | WStyle_NormalBorder | WStyle_Title | WStyle_SysMenu ) 
 {
   Trace("SUPERVGUI_Information::SUPERVGUI_Information");
   setCaption( tr( "TLT_INFORMATIONS" ) );
@@ -80,7 +82,7 @@ SUPERVGUI_Information::SUPERVGUI_Information(SUPERV_CNode node, bool isReadOnly)
     contV = new QLineEdit( TopGroup );
     contV->setSizePolicy( QSizePolicy( QSizePolicy::Expanding, QSizePolicy::Fixed ) );
     contV->setMinimumSize( 200, 0 );
-    contV->setReadOnly( true/*isReadOnly*/ );
+    contV->setReadOnly( false/*isReadOnly*/ );
     contV->setText( SUPERV::FNode::_narrow(node)->GetContainer() );
     
     compnameL = new QLabel( tr( "COMPONENT_NAME_LBL" ), TopGroup ); 
@@ -88,7 +90,8 @@ SUPERVGUI_Information::SUPERVGUI_Information(SUPERV_CNode node, bool isReadOnly)
     compnameV->setSizePolicy( QSizePolicy( QSizePolicy::Expanding, QSizePolicy::Fixed ) );
     compnameV->setMinimumSize( 200, 0 );
     compnameV->setReadOnly( true/*isReadOnly*/ );
-    compnameV->setText( SUPERV::FNode::_narrow(node)->GetComponentName() );
+    compnameV->setText( dynamic_cast<CAM_Application*>( SUIT_Session::session()->activeApplication() )->
+                       moduleTitle(SUPERV::FNode::_narrow(node)->GetComponentName()) );
 
     intnameL = new QLabel( tr( "INTERFACE_NAME_LBL" ), TopGroup ); 
     intnameV = new QLineEdit( TopGroup );      
@@ -146,18 +149,31 @@ SUPERVGUI_Information::SUPERVGUI_Information(SUPERV_CNode node, bool isReadOnly)
   GroupButtonsLayout->setAlignment( Qt::AlignTop );
   GroupButtonsLayout->setSpacing( 6 );
   GroupButtonsLayout->setMargin( 11 );
-  
-  QPushButton* okB     = new QPushButton( tr( "BUT_OK" ),     GroupButtons );
-  QPushButton* cancelB = new QPushButton( tr( "BUT_CANCEL" ), GroupButtons );
 
-  GroupButtonsLayout->addWidget( okB, 0, 0 );
-  GroupButtonsLayout->addItem  ( new QSpacerItem( 5, 5, QSizePolicy::Expanding, QSizePolicy::Minimum ), 0, 1 );
-  GroupButtonsLayout->addWidget( cancelB, 0, 2 );
+  // fix for PAL6904: when isReadOnly is set ON (the dataflow was imported) then only "CLOSE" button
+  // should be present instead of 2 buttons OK and Cancel.
+  QPushButton* cancelB;
+  if ( !isReadOnly || node->IsFactory() )  {
+    /*added node->IsFactory() because only for Factory nodes we ALWAYS have editable "Container" field  */
+    QPushButton* okB = new QPushButton( tr( "BUT_OK" ), GroupButtons );
+    connect( okB,     SIGNAL( clicked() ), this, SLOT( okButton() ) );
+    cancelB = new QPushButton( tr( "BUT_CANCEL" ), GroupButtons );
+    GroupButtonsLayout->addWidget( okB, 0, 0 );
+    GroupButtonsLayout->addItem  ( new QSpacerItem( 5, 5, QSizePolicy::Expanding, QSizePolicy::Minimum ), 0, 1 );
+    GroupButtonsLayout->addWidget( cancelB, 0, 2 );
+  }
+  else {
+    cancelB = new QPushButton( tr( "BUT_CLOSE" ), GroupButtons );
+    GroupButtonsLayout->addItem  ( new QSpacerItem( 5, 5, QSizePolicy::Expanding, QSizePolicy::Minimum ), 0, 0 );
+    GroupButtonsLayout->addWidget( cancelB, 0, 1 );
+    GroupButtonsLayout->addItem  ( new QSpacerItem( 5, 5, QSizePolicy::Expanding, QSizePolicy::Minimum ), 0, 2 );
+  }
 
   TopLayout->addWidget( TopGroup,     0, 0 );
   TopLayout->addWidget( GroupButtons, 1, 0 );
+  TopLayout->setRowStretch( 0, 1 );
+  TopLayout->setRowStretch( 1, 0 );
 
-  connect( okB,     SIGNAL( clicked() ), this, SLOT( okButton() ) );
   connect( cancelB, SIGNAL( clicked() ), this, SLOT( koButton() ) );
 }
 
@@ -264,10 +280,10 @@ void SUPERVGUI_Information::okButton() {
   Trace("SUPERVGUI_Information::okButton");
   myNode->SetName( nameV->text().latin1());
   myNode->SetAuthor( authV->text().latin1() );
-  /*if (myNode->IsFactory()) {
+  if (myNode->IsFactory()) {
     SUPERV_FNode aFNode = SUPERV::FNode::_narrow(myNode);
     aFNode->SetContainer( contV->text().latin1() );
-    }*/
+  }
   myNode->SetComment( commV->text().latin1() );
   accept();
 }