]> SALOME platform Git repositories - modules/visu.git/commitdiff
Salome HOME
PAL16760 - MED file information
authorasl <asl@opencascade.com>
Tue, 27 May 2008 10:29:34 +0000 (10:29 +0000)
committerasl <asl@opencascade.com>
Tue, 27 May 2008 10:29:34 +0000 (10:29 +0000)
idl/VISU_Gen.idl
src/VISUGUI/Makefile.am
src/VISUGUI/VISU_msg_en.po
src/VISUGUI/VisuGUI.cxx
src/VISUGUI/VisuGUI.h
src/VISUGUI/VisuGUI_ActionsDef.h
src/VISUGUI/VisuGUI_FileInfoDlg.cxx [new file with mode: 0644]
src/VISUGUI/VisuGUI_FileInfoDlg.h [new file with mode: 0644]
src/VISU_I/VISU_Result_i.cc
src/VISU_I/VISU_Result_i.hh

index 783375886784b4209d055c170249364dc4ba6685..bfd1dc91398daef78ab1cf311d4147152990d5c6 100644 (file)
@@ -1854,6 +1854,9 @@ module VISU {
 
     /*! Gets current resolution of multi resolution structure for the given mesh and part names */
     void SetResolution(in EntityName theMeshName, in EntityName thePartName, in Resolution theResolution);
+    
+    /*! Gets information about imported MED file */
+    SALOME_MED::MedFileInfo GetMEDFileInfo();
   };
 
   //-------------------------------------------------------
index ae11d80c8dc93cf878d9f098b06bdd6c869cb90b..e3a8633633632edfa5bb4093e8ee77d372581320 100644 (file)
@@ -72,7 +72,8 @@ dist_libVISU_la_SOURCES= \
        VisuGUI_Slider.cxx \
        VisuGUI_InputPane.cxx \
        VisuGUI_CacheDlg.cxx \
-       VisuGUI_FieldFilter.cxx
+       VisuGUI_FieldFilter.cxx \
+       VisuGUI_FileInfoDlg.cxx
 
 MOC_FILES= \
        VisuGUI_moc.cxx \
@@ -103,7 +104,8 @@ MOC_FILES= \
        VisuGUI_TransparencyDlg_moc.cxx \
        VisuGUI_Slider_moc.cxx \
        VisuGUI_InputPane_moc.cxx \
-       VisuGUI_CacheDlg_moc.cxx
+       VisuGUI_CacheDlg_moc.cxx \
+       VisuGUI_FileInfoDlg_moc.cxx
 
 nodist_libVISU_la_SOURCES=$(MOC_FILES)
 
index 002b8c62c2b5224a7ee39b0cc870d980e3accc0e..d34fd121bb4d53da3bb4c900660b5445e0cbdd30 100644 (file)
@@ -2462,3 +2462,20 @@ msgstr "Hide"
 
 msgid "VisuGUI::MEN_HOLO_RENDER"
 msgstr "Holo render"
+
+
+
+msgid "VisuGUI::MEN_FILE_INFO"
+msgstr "MED File information"
+
+msgid "VisuGUI_FileInfoDlg::CAPTION"
+msgstr "File information"
+
+msgid "VisuGUI_FileInfoDlg::FILE_NAME"
+msgstr "File name"
+
+msgid "VisuGUI_FileInfoDlg::FILE_SIZE"
+msgstr "File size (bytes)"
+
+msgid "VisuGUI_FileInfoDlg::MED_VERSION"
+msgstr "MED version"
index 43648822d640cce337bec36b547f704def259a76..ffd912f4c45bc96b826e63cd8cf1784a04642b46 100644 (file)
@@ -76,6 +76,7 @@
 #include "LightApp_SelectionMgr.h"
 #include "LightApp_Selection.h"
 #include "LightApp_Preferences.h"
+#include "LightApp_DataOwner.h"
 
 #include "QtxAction.h"
 
 #include "VisuGUI_VectorsDlg.h"
 
 #include "VisuGUI_TableDlg.h"
+#include "VisuGUI_FileInfoDlg.h"
 
 #include "SALOMEconfig.h"
 #include CORBA_SERVER_HEADER(MED_Gen)
@@ -2438,6 +2440,10 @@ VisuGUI
   createAction( VISU_MULTIPR_HIDE, tr("MEN_MULTIPR_VIEW_HIDE"), QIconSet(aPixmap),
                 tr("MEN_MULTIPR_VIEW_HIDE"), "", 0, aParent, false,
                 this, SLOT(OnMultiprViewHide()));
+
+  createAction( VISU_FILE_INFO, tr("MEN_FILE_INFO"), QIconSet(),
+                tr("MEN_FILE_INFO"), "", 0, aParent, false,
+                this, SLOT(OnFileInfo()));
 }
 
 void
@@ -2620,7 +2626,9 @@ VisuGUI
   mgr->insert( action( VISU_MULTIPR_MED_RES ), -1, -1, -1 );
   mgr->insert( action( VISU_MULTIPR_LOW_RES ), -1, -1, -1 );
   mgr->insert( action( VISU_MULTIPR_HIDE ), -1, -1, -1 );
-  
+
+  mgr->insert( action( VISU_FILE_INFO ), -1, -1, -1 );  
+
   // Rules
 
   QString aPrsAll ("'VISU::TSCALARMAP' 'VISU::TISOSURFACES' 'VISU::TDEFORMEDSHAPE' 'VISU::TCUTPLANES' "
@@ -2821,6 +2829,8 @@ VisuGUI
     QString aCustomRule = aRule + "resolutionState!='H'";
     mgr->setRule( action( VISU_MULTIPR_HIDE), aCustomRule, true );
   }
+
+  mgr->setRule( action( VISU_FILE_INFO ), "selcount=1 and type in {'VISU::TRESULT'}", true );
 }
 
 //***************************************************************************
@@ -3793,3 +3803,18 @@ void VisuGUI::OnMultiprChangeRes(VISU::Result::Resolution theResolution)
 
   QApplication::restoreOverrideCursor();
 }
+
+//---------------------------------------------------------------
+void VisuGUI::OnFileInfo()
+{
+  SalomeApp_Study* aStudy = dynamic_cast<SalomeApp_Study*>( getApp()->activeStudy() );
+  SUIT_DataOwnerPtrList lst;
+  getApp()->selectionMgr()->selected( lst );
+  LightApp_DataOwner* owner = dynamic_cast<LightApp_DataOwner*>( lst.first().get() );
+  VISU::TObjectInfo anObjectInfo = VISU::GetObjectByEntry( aStudy, owner->entry() );
+  VISU::Result_i* aCResult = dynamic_cast<VISU::Result_i*>( anObjectInfo.myBase );
+  if(!aCResult)
+    return;
+  VisuGUI_FileInfoDlg dlg( getApp()->desktop(), aCResult->GetMEDFileInfo() );
+  dlg.exec();
+}
index 5d19813c805b8ee9d52398d1d9a8a5154b12789f..a21eabbee78d8b838c3d3a755dacec70a23d3b8d 100644 (file)
@@ -175,6 +175,8 @@ protected slots:
   void OnMultiprViewHide();
   void OnMultiprChangeRes(VISU::Result::Resolution theResolution);
 
+  void OnFileInfo();
+
 protected:
   virtual LightApp_Selection* createSelection() const;
 
index 3e0b4bc44fbc3306158b73cd68618989a151c03a..5c1083fa61515ed7d93081d48f400e82f0add301 100644 (file)
 #define VISU_MULTIPR_LOW_RES        4097
 #define VISU_MULTIPR_HIDE           4098
 
+#define VISU_FILE_INFO              4100
+
 #endif
diff --git a/src/VISUGUI/VisuGUI_FileInfoDlg.cxx b/src/VISUGUI/VisuGUI_FileInfoDlg.cxx
new file mode 100644 (file)
index 0000000..5b5b90d
--- /dev/null
@@ -0,0 +1,77 @@
+//  VISU VISUGUI : GUI of VISU component
+//
+//  Copyright (C) 2003  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
+//  CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
+//
+//  This library is free software; you can redistribute it and/or
+//  modify it under the terms of the GNU Lesser General Public
+//  License as published by the Free Software Foundation; either
+//  version 2.1 of the License.
+//
+//  This library is distributed in the hope that it will be useful,
+//  but WITHOUT ANY WARRANTY; without even the implied warranty of
+//  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+//  Lesser General Public License for more details.
+//
+//  You should have received a copy of the GNU Lesser General Public
+//  License along with this library; if not, write to the Free Software
+//  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
+//
+// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
+//
+//
+//
+//  File   : VisuGUI_FileInfoDlg.cxx
+//  Author : Alexandre SOLOVYOV
+//  Module : VISU
+//  $Header$
+
+#include <VisuGUI_FileInfoDlg.h>
+
+#include <MED_Common.hxx>
+
+#include <qlayout.h>
+#include <qlabel.h>
+#include <qlineedit.h>
+
+VisuGUI_FileInfoDlg::VisuGUI_FileInfoDlg( QWidget* parent, SALOME_MED::MedFileInfo* inf )
+  : QtxDialog( parent, 0, true, false, QtxDialog::OK )
+{
+  setCaption( tr( "CAPTION" ) );
+  
+  QLineEdit* fname = new QLineEdit( mainFrame() );
+  fname->setReadOnly( true );
+  QLineEdit* fsize = new QLineEdit( mainFrame() );
+  fsize->setReadOnly( true );
+  QLineEdit* medversion = new QLineEdit( mainFrame() );
+  medversion->setReadOnly( true );
+  
+  QGridLayout* lay = new QGridLayout( mainFrame(), 4, 2, 5, 5 );
+  lay->addWidget( new QLabel( tr( "FILE_NAME" ), mainFrame() ), 0, 0 );
+  lay->addWidget( fname, 0, 1 );
+  lay->addWidget( new QLabel( tr( "FILE_SIZE" ), mainFrame() ), 1, 0 );
+  lay->addWidget( fsize, 1, 1 );
+  lay->addWidget( new QLabel( tr( "MED_VERSION" ), mainFrame() ), 2, 0 );
+  lay->addWidget( medversion, 2, 1 );
+
+  fname->setText( (char*)inf->fileName );
+  fsize->setText( QString::number( inf->fileSize ) );
+
+  QString version;
+  if( inf->major>=0 )
+  {
+    version = QString::number( inf->major );
+    if( inf->minor>=0 )
+    {
+      version += "." + QString::number( inf->minor );
+      if( inf->release>=0 )
+        version += "." + QString::number( inf->release );
+    }
+  }
+  medversion->setText( version );
+  setFixedSize( 640, 480 );
+}
+
+VisuGUI_FileInfoDlg::~VisuGUI_FileInfoDlg()
+{
+}
diff --git a/src/VISUGUI/VisuGUI_FileInfoDlg.h b/src/VISUGUI/VisuGUI_FileInfoDlg.h
new file mode 100644 (file)
index 0000000..e7d8a67
--- /dev/null
@@ -0,0 +1,44 @@
+//  VISU VISUGUI : GUI of VISU component
+//
+//  Copyright (C) 2003  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
+//  CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
+//
+//  This library is free software; you can redistribute it and/or
+//  modify it under the terms of the GNU Lesser General Public
+//  License as published by the Free Software Foundation; either
+//  version 2.1 of the License.
+//
+//  This library is distributed in the hope that it will be useful,
+//  but WITHOUT ANY WARRANTY; without even the implied warranty of
+//  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+//  Lesser General Public License for more details.
+//
+//  You should have received a copy of the GNU Lesser General Public
+//  License along with this library; if not, write to the Free Software
+//  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
+//
+// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
+//
+//
+//
+//  File   : VisuGUI_FileInfoDlg.h
+//  Author : Alexandre SOLOVYOV
+//  Module : VISU
+//  $Header$
+
+#ifndef VISUGUI_FILE_INFO_DIALOG
+#define VISUGUI_FILE_INFO_DIALOG
+
+#include <MED.hh>
+#include <QtxDialog.h>
+
+class VisuGUI_FileInfoDlg : public QtxDialog
+{
+  Q_OBJECT
+
+public:
+  VisuGUI_FileInfoDlg( QWidget*, SALOME_MED::MedFileInfo* );
+  virtual ~VisuGUI_FileInfoDlg();
+};
+
+#endif
index 2c0dc3d68437804490266539e5e1b4bdc847f842..edfbf5b937722b6c31309abb638d0ceec7046f5f 100644 (file)
@@ -1663,3 +1663,23 @@ VISU::Result_i
 
   return components;
 }
+
+SALOME_MED::MedFileInfo* VISU::Result_i::GetMEDFileInfo()
+{
+  SALOME_MED::MedFileInfo_var res = new SALOME_MED::MedFileInfo();
+
+  QString fpath = myFileInfo.absFilePath();
+  res->fileName = fpath.latin1();
+  res->fileSize = myFileInfo.size();
+  int major, minor, release;
+  if( !MED::getMEDVersion( fpath.latin1(), major, minor, release ) )
+  {
+    major = -1;
+    minor = -1;
+    release = -1;
+  }
+  res->major = major;
+  res->minor = minor;
+  res->release = release;
+  return res._retn();
+}
index 40eff416ff9e7d4ce1714fb7e8f9c6e18821d9bc..afb24795eb6801f550641d6f6629d31f1cb35239 100644 (file)
@@ -196,6 +196,10 @@ namespace VISU
     ConnectObserver(TResultObserver* theObserver,
                    boost::signalslib::connection& theConnection);
 
+    virtual
+    SALOME_MED::MedFileInfo*
+    GetMEDFileInfo();
+    
     typedef boost::signal0<void> TUpdateObserverSignal;
 
     typedef VISU_Convertor TInput;