4 #include "DocumentCommon.h"
5 #include "ApplicationCommon.h"
10 #include <QMessageBox>
11 #include <QApplication>
15 #include <QMainWindow>
16 #include <QVBoxLayout>
18 MDIWindow::MDIWindow(View* aView,
19 DocumentCommon* aDocument,
21 Qt::WindowFlags wflags )
22 : QMainWindow( parent, wflags )
25 myDocument = aDocument;
28 MDIWindow::MDIWindow( DocumentCommon* aDocument, QWidget* parent, Qt::WindowFlags wflags)
29 : QMainWindow( parent, wflags )
31 QFrame *vb = new QFrame( this );
33 QVBoxLayout *layout = new QVBoxLayout( vb );
34 layout->setMargin( 0 );
36 vb->setFrameStyle( QFrame::StyledPanel | QFrame::Sunken );
38 setCentralWidget( vb );
40 myDocument = aDocument;
41 myView = new View (myDocument->getContext(), vb);
42 layout->addWidget (myView);
44 connect( myView, SIGNAL( selectionChanged() ),
45 this, SIGNAL( selectionChanged() ) );
48 createRaytraceActions();
52 setFocusPolicy( Qt::StrongFocus );
55 MDIWindow::~MDIWindow()
59 DocumentCommon* MDIWindow::getDocument()
64 void MDIWindow::closeEvent(QCloseEvent* )
66 emit sendCloseView(this);
69 void MDIWindow::fitAll()
74 void MDIWindow::createViewActions()
76 // populate a tool bar with some actions
77 QToolBar* aToolBar = addToolBar( tr( "View Operations" ) );
79 QList<QAction*>* aList = myView->getViewActions();
80 aToolBar->addActions( *aList );
82 aToolBar->toggleViewAction()->setVisible(false);
83 aList->at(View::ViewHlrOffId)->setChecked( true );
86 void MDIWindow::createRaytraceActions()
88 // populate a tool bar with some actions
89 QToolBar* aToolBar = addToolBar( tr( "Ray-tracing Options" ) );
91 QList<QAction*>* aList = myView->getRaytraceActions();
92 aToolBar->addActions( *aList );
94 aToolBar->toggleViewAction()->setVisible (true);
95 aList->at (View::ToolRaytracingId)->setChecked (false);
96 aList->at (View::ToolShadowsId)->setChecked (true);
97 aList->at (View::ToolReflectionsId)->setChecked (false);
98 aList->at (View::ToolAntialiasingId)->setChecked (false);
101 void MDIWindow::onWindowActivated ()
103 getDocument()->getApplication()->onSelectionChanged();
106 void MDIWindow::dump()
108 QString datadir = (QString(qgetenv ("CSF_OCCTDataPath").constData()) + "/images");
109 static QString filter;
110 filter = "Images Files (*.bmp *.ppm *.png *.jpg *.tiff *.tga *.gif *.exr *.ps *.eps *.tex *.pdf *.svg *.pgf)";
111 QFileDialog fd ( 0 );
113 fd.setNameFilter ( filter );
114 fd.setWindowTitle( QObject::tr("INF_APP_EXPORT") );
115 fd.setFileMode( QFileDialog::AnyFile );
118 /* update the desktop after the dialog is closed */
119 qApp->processEvents();
121 QStringList fileNames;
122 fileNames = fd.selectedFiles();
124 QString file ( (ret == QDialog::Accepted && !fileNames.isEmpty() )? fileNames[0] : QString::null);
125 if ( !file.isNull() )
127 QApplication::setOverrideCursor( Qt::WaitCursor );
128 if ( !QFileInfo( file ).completeSuffix().length() )
129 file += QString( ".bmp" );
131 bool res = myView->dump( (Standard_CString)file.toLatin1().constData() );
132 QApplication::restoreOverrideCursor();
135 QWidgetList list = qApp->allWidgets();
137 for( int i = 0; i < list.size(); ++i )
139 if( qobject_cast<ApplicationCommonWindow*>( list.at( i ) ) )
140 mainWidget = qobject_cast<ApplicationCommonWindow*>( list.at( i ) );
143 QMessageBox::information ( mainWidget, QObject::tr("TIT_ERROR"), QObject::tr("INF_ERROR"), QObject::tr("BTN_OK"),
144 QString::null, QString::null, 0, 0 );
145 qApp->processEvents();
150 QSize MDIWindow::sizeHint() const
152 return QSize( 450, 300 );