1 // SALOME SALOMEGUI : implementation of desktop and GUI kernel
3 // Copyright (C) 2003 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
4 // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
6 // This library is free software; you can redistribute it and/or
7 // modify it under the terms of the GNU Lesser General Public
8 // License as published by the Free Software Foundation; either
9 // version 2.1 of the License.
11 // This library is distributed in the hope that it will be useful,
12 // but WITHOUT ANY WARRANTY; without even the implied warranty of
13 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
14 // Lesser General Public License for more details.
16 // You should have received a copy of the GNU Lesser General Public
17 // License along with this library; if not, write to the Free Software
18 // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
20 // See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org
24 // File : QAD_ViewFrame.cxx
25 // Author : Nicolas REJNERI
30 #include "QAD_ViewFrame.h"
31 #include "QAD_Application.h"
32 #include "QAD_Desktop.h"
33 #include "QAD_FileDlg.h"
34 #include "QAD_MessageBox.h"
35 #include "QAD_Tools.h"
36 #include <qapplication.h>
38 #include "utilities.h"
45 QAD_ViewFrame::QAD_ViewFrame(QWidget* parent, const QString& title)
46 : QMainWindow (parent, title, 0)
53 QAD_ViewFrame::QAD_ViewFrame( QWidget* parent )
54 : QMainWindow (parent, "",0)
61 QAD_ViewFrame::~QAD_ViewFrame()
69 void QAD_ViewFrame::cleanup()
74 Dumps 3d-Viewer contents into image file
75 File format is defined by file's extension; supported formats : PNG, BMP, GIF, JPG
77 void QAD_ViewFrame::onViewDump()
81 QApplication::setOverrideCursor( Qt::waitCursor );
82 QPixmap px = QPixmap::grabWindow(getViewWidget()->winId());
83 QApplication::restoreOverrideCursor();
85 QString fileName = QAD_FileDlg::getFileName(QAD_Application::getDesktop(),
87 tr("OCC_IMAGE_FILES"),
88 tr("INF_APP_DUMP_VIEW"),
90 if (!fileName.isNull()) {
91 QApplication::setOverrideCursor( Qt::waitCursor );
92 QString fmt = QAD_Tools::getFileExtensionFromPath(fileName).upper();
94 fmt = QString("BMP"); // default format
97 bool bOk = px.save(fileName, fmt.latin1());
98 QApplication::restoreOverrideCursor();
100 QAD_MessageBox::error1(QAD_Application::getDesktop(),
102 tr("ERR_DOC_CANT_SAVE_FILE"),
108 #define DUMP_EVENT QEvent::User + 123
110 This method is used to dump the viewer contents to the image file
111 from the context popup menu (uses event mechanizm to assure redrawing
112 the viewer contents before dumping by sending custom event)
114 void QAD_ViewFrame::onProcessViewDump()
116 qApp->postEvent( this, new QPaintEvent( QRect( 0, 0, width(), height() ), TRUE ) );
117 qApp->postEvent( this, new QCustomEvent( DUMP_EVENT ) );
121 Processes the custom event sent by onProcessViewDump() method to
122 call onViewDump() slot: dumping the view contents to the image file
123 (see desription for onProcessViewDump() method above)
125 bool QAD_ViewFrame::event ( QEvent* e )
127 if ( e->type() == DUMP_EVENT ) {
131 return QMainWindow::event( e );