Salome HOME
NRI : Add message (GUI lib not found).
[modules/kernel.git] / src / SALOMEGUI / QAD_ViewFrame.cxx
1 using namespace std;
2 //  File      : QAD_ViewFrame.cxx
3 //  Created   : UI team, 05.09.00
4 //  Descrip   : Frame window for viewport in QAD-based application
5
6 //  Modified  : Mon Dec 03 15:41:43 2001
7 //  Author    : Nicolas REJNERI
8 //  Project   : SALOME
9 //  Module    : SALOMEGUI
10 //  Copyright : Open CASCADE
11 //  $Header$
12
13
14 #include "QAD.h"
15 #include "QAD_ViewFrame.h"
16 #include "QAD_Application.h"
17 #include "QAD_Desktop.h"
18 #include "QAD_FileDlg.h"
19 #include "QAD_MessageBox.h"
20 #include "QAD_Tools.h"
21 #include <qapplication.h>
22 #include <qimage.h>
23 #include "utilities.h"
24
25 /*!
26     Constructor
27 */
28 QAD_ViewFrame::QAD_ViewFrame(QWidget* parent, const QString& title) 
29   : QMainWindow (parent, title, 0)
30 {
31 }
32
33 /*!
34     Constructor
35 */
36 QAD_ViewFrame::QAD_ViewFrame( QWidget* parent ) 
37   : QMainWindow (parent, "",0)
38 {
39 }
40
41 /*!
42     Destructor
43 */
44 QAD_ViewFrame::~QAD_ViewFrame()
45 {
46   cleanup();
47 }
48
49 /*!
50     Cleanup viewframe 
51 */
52 void QAD_ViewFrame::cleanup()
53 {
54
55
56 bool QAD_ViewFrame::isInViewer(SALOMEDS::Study_var aStudy,
57                                const char* anEntry, const char* StudyFrameEntry)
58 {
59   SALOMEDS::SObject_var RefSO;
60   SALOMEDS::SObject_var SO = aStudy->FindObjectID(StudyFrameEntry);
61   SALOMEDS::ChildIterator_var it = aStudy->NewChildIterator(SO);
62   for (; it->More();it->Next()){
63     SALOMEDS::SObject_var CSO= it->Value();
64     if (CSO->ReferencedObject(RefSO))
65       if ( strcmp( anEntry, RefSO->GetID() ) == 0 )
66         return 1;
67   }
68   return 0;
69 }
70
71 vtkRenderer* QAD_ViewFrame::getRenderer()
72 {
73   MESSAGE ( "Only redefined  VTKViewer")
74   return NULL;
75 }
76
77 /*
78    Dumps 3d-Viewer contents into image file
79    File format is defined by file's extension; supported formats : PNG, BMP, GIF, JPG
80 */
81 void QAD_ViewFrame::onViewDump()
82 {
83   if (!getViewWidget())
84     return;
85
86   QApplication::setOverrideCursor( Qt::waitCursor );
87   QPixmap px = QPixmap::grabWindow(getViewWidget()->winId());
88   QApplication::restoreOverrideCursor();
89   
90   QString fileName = QAD_FileDlg::getFileName(QAD_Application::getDesktop(),
91                                               QString::null,
92                                               tr("OCC_IMAGE_FILES"),
93                                               tr("INF_APP_DUMP_VIEW"),
94                                               false);
95   if (!fileName.isNull()) {
96     QApplication::setOverrideCursor( Qt::waitCursor );
97     QString fmt = QAD_Tools::getFileExtensionFromPath(fileName).upper();
98     if (fmt.isEmpty())
99       fmt = QString("BMP"); // default format
100     if (fmt == "JPG")
101       fmt = "JPEG";
102     bool bOk = px.save(fileName, fmt.latin1());
103     QApplication::restoreOverrideCursor();
104     if (!bOk) {
105       QAD_MessageBox::error1(QAD_Application::getDesktop(),
106                              tr("ERR_ERROR"),
107                              tr("ERR_DOC_CANT_SAVE_FILE"), 
108                              tr("BUT_OK"));
109     }
110   }
111 }