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 )
26 myDocument = aDocument;
29 MDIWindow::MDIWindow( DocumentCommon* aDocument, QWidget* parent, Qt::WindowFlags wflags )
30 : QMainWindow( parent, wflags )
32 QFrame *vb = new QFrame( this );
34 QVBoxLayout *layout = new QVBoxLayout( vb );
35 layout->setMargin( 0 );
37 vb->setFrameStyle( QFrame::StyledPanel | QFrame::Sunken );
39 setCentralWidget( vb );
41 myDocument = aDocument;
42 myView = new View( myDocument->getContext(), vb );
43 layout->addWidget( myView );
45 connect( myView, SIGNAL( selectionChanged() ),
46 this, SIGNAL( selectionChanged() ) );
51 setFocusPolicy( Qt::StrongFocus );
54 MDIWindow::~MDIWindow()
58 DocumentCommon* MDIWindow::getDocument()
63 void MDIWindow::closeEvent(QCloseEvent* e)
65 emit sendCloseView(this);
68 void MDIWindow::fitAll()
73 void MDIWindow::createViewActions()
75 // populate a tool bar with some actions
76 QToolBar* aToolBar = addToolBar( tr( "View Operations" ) );
78 QList<QAction*>* aList = myView->getViewActions();
79 aToolBar->addActions( *aList );
81 aToolBar->toggleViewAction()->setVisible(false);
82 aList->at(View::ViewHlrOffId)->setChecked( true );
85 void MDIWindow::onWindowActivated ()
87 getDocument()->getApplication()->onSelectionChanged();
91 void MDIWindow::dump()
94 QString datadir = (QString(getenv("CASROOT")) + "/../data/images");
95 static QString filter;
96 filter = "Images Files (*.bmp *.ppm *.png *.jpg *.tiff *.tga *.gif *.exr *.ps *.eps *.tex *.pdf *.svg *.pgf)";
99 fd.setFilter( filter );
100 fd.setWindowTitle( QObject::tr("INF_APP_EXPORT") );
101 fd.setFileMode( QFileDialog::AnyFile );
104 /* update the desktop after the dialog is closed */
105 qApp->processEvents();
107 QStringList fileNames;
108 fileNames = fd.selectedFiles();
110 QString file ( (ret == QDialog::Accepted && !fileNames.isEmpty() )? fileNames[0] : QString::null);
111 if ( !file.isNull() )
113 QApplication::setOverrideCursor( Qt::WaitCursor );
114 if ( !QFileInfo( file ).completeSuffix().length() )
115 file += QString( ".bmp" );
116 bool res = myView->dump( (Standard_CString)file.toLatin1().constData() );
117 QApplication::restoreOverrideCursor();
120 QWidgetList list = qApp->allWidgets();
122 for( int i = 0; i < list.size(); ++i )
124 if( qobject_cast<ApplicationCommonWindow*>( list.at( i ) ) )
125 mainWidget = qobject_cast<ApplicationCommonWindow*>( list.at( i ) );
128 QMessageBox::information ( mainWidget, QObject::tr("TIT_ERROR"), QObject::tr("INF_ERROR"), QObject::tr("BTN_OK"),
129 QString::null, QString::null, 0, 0 );
130 qApp->processEvents();
135 QSize MDIWindow::sizeHint() const
137 return QSize( 450, 300 );