1 #include "SUIT_Application.h"
3 #include "SUIT_Session.h"
4 #include "SUIT_Desktop.h"
5 #include "SUIT_ResourceMgr.h"
7 #include <qstatusbar.h>
10 #include <QtxActionMenuMgr.h>
11 #include <QtxActionToolMgr.h>
13 SUIT_Application::SUIT_Application()
20 SUIT_Application::~SUIT_Application()
26 SUIT_Desktop* SUIT_Application::desktop()
31 bool SUIT_Application::isPossibleToClose()
36 void SUIT_Application::closeApplication()
38 emit applicationClosed( this );
41 SUIT_Study* SUIT_Application::activeStudy() const
46 QString SUIT_Application::applicationVersion() const
51 void SUIT_Application::start()
57 void SUIT_Application::useFile( const QString& theFileName )
61 activeStudy()->openDocument( theFileName );
64 void SUIT_Application::createEmptyStudy()
67 setActiveStudy( createNewStudy() );
70 int SUIT_Application::getNbStudies() const
72 return activeStudy() ? 1 : 0;
75 SUIT_ResourceMgr* SUIT_Application::resourceMgr() const
77 if ( !SUIT_Session::session() )
80 return SUIT_Session::session()->resourceMgr();
83 #define DEFAULT_MESSAGE_DELAY 3000
84 void SUIT_Application::putInfo ( const QString& msg, const int msec )
87 desktop()->statusBar()->message( msg, msec <= 0 ? DEFAULT_MESSAGE_DELAY : msec );
90 SUIT_Application* SUIT_Application::startApplication( int argc, char** argv ) const
92 return startApplication( name(), argc, argv );
95 SUIT_Application* SUIT_Application::startApplication( const QString& name, int argc, char** argv ) const
97 SUIT_Session* session = SUIT_Session::session();
101 return session->startApplication( name, argc, argv );
104 void SUIT_Application::setDesktop( SUIT_Desktop* desk )
106 if ( myDesktop == desk )
113 SUIT_Study* SUIT_Application::createNewStudy()
115 return new SUIT_Study( this );
118 void SUIT_Application::setActiveStudy( SUIT_Study* study )
120 if ( myStudy == study )
126 int SUIT_Application::createTool( const QString& name )
128 if ( !desktop() || !desktop()->toolMgr() )
131 return desktop()->toolMgr()->createToolBar( name );
134 int SUIT_Application::createTool( QAction* a, const int tBar, const int id, const int idx )
136 if ( !desktop() || !desktop()->toolMgr() )
139 int regId = desktop()->toolMgr()->registerAction( a, id );
140 return desktop()->toolMgr()->insert( regId, tBar, idx );
143 int SUIT_Application::createTool( QAction* a, const QString& tBar, const int id, const int idx )
145 if ( !desktop() || !desktop()->toolMgr() )
148 return desktop()->toolMgr()->insert( a, tBar, idx );
151 int SUIT_Application::createTool( const int id, const int tBar, const int idx )
153 if ( !desktop() || !desktop()->toolMgr() )
156 return desktop()->toolMgr()->insert( id, tBar, idx );
159 int SUIT_Application::createTool( const int id, const QString& tBar, const int idx )
161 if ( !desktop() || !desktop()->toolMgr() )
164 return desktop()->toolMgr()->insert( id, tBar, idx );
167 int SUIT_Application::createMenu( const QString& subMenu, const int menu,
168 const int id, const int group, const int index )
170 if ( !desktop() || !desktop()->menuMgr() )
173 return desktop()->menuMgr()->insert( subMenu, menu, group, index );
176 int SUIT_Application::createMenu( const QString& subMenu, const QString& menu,
177 const int id, const int group, const int index )
179 if ( !desktop() || !desktop()->menuMgr() )
182 return desktop()->menuMgr()->insert( subMenu, menu, group, index );
185 int SUIT_Application::createMenu( QAction* a, const int menu, const int id, const int group, const int index )
187 if ( !a || !desktop() || !desktop()->menuMgr() )
190 int regId = desktop()->menuMgr()->registerAction( a, id );
191 return desktop()->menuMgr()->insert( regId, menu, group, index );
194 int SUIT_Application::createMenu( QAction* a, const QString& menu, const int id, const int group, const int index )
196 if ( !a || !desktop() || !desktop()->menuMgr() )
199 int regId = desktop()->menuMgr()->registerAction( a, id );
200 return desktop()->menuMgr()->insert( regId, menu, group, index );
203 int SUIT_Application::createMenu( const int id, const int menu, const int group, const int index )
205 if ( !desktop() || !desktop()->menuMgr() )
208 return desktop()->menuMgr()->insert( id, menu, group, index );
211 int SUIT_Application::createMenu( const int id, const QString& menu, const int group, const int index )
213 if ( !desktop() || !desktop()->menuMgr() )
216 return desktop()->menuMgr()->insert( id, menu, group, index );
219 void SUIT_Application::setMenuShown( QAction* a, const bool on )
221 setMenuShown( actionId( a ), on );
224 void SUIT_Application::setMenuShown( const int id, const bool on )
226 if ( desktop() && desktop()->menuMgr() )
227 desktop()->menuMgr()->setShown( id, on );
230 void SUIT_Application::setToolShown( QAction* a, const bool on )
232 setToolShown( actionId( a ), on );
235 void SUIT_Application::setToolShown( const int id, const bool on )
237 if ( desktop() && desktop()->toolMgr() )
238 desktop()->toolMgr()->setShown( id, on );
241 QAction* SUIT_Application::action( const int id ) const
243 SUIT_Application* that = (SUIT_Application*)this;
244 SUIT_Desktop* desk = that->desktop();
249 if ( desk->menuMgr() )
250 a = desk->menuMgr()->action( id );
251 if ( !a && desk->toolMgr() )
252 a = desk->toolMgr()->action( id );
256 int SUIT_Application::actionId( const QAction* a ) const
258 SUIT_Application* that = (SUIT_Application*)this;
259 SUIT_Desktop* desk = that->desktop();
264 if ( desk->menuMgr() )
265 id = desk->menuMgr()->actionId( a );
266 if ( id == -1 && desk->toolMgr() )
267 id = desk->toolMgr()->actionId( a );
271 QAction* SUIT_Application::createAction( const int id, const QString& text, const QIconSet& icon,
272 const QString& menu, const QString& tip, const int key,
273 QObject* parent, const bool toggle, QObject* reciever, const char* member )
275 QtxAction* a = new QtxAction( text, icon, menu, key, parent, 0, toggle );
276 a->setStatusTip( tip );
278 if ( reciever && member )
279 connect( a, SIGNAL( activated() ), reciever, member );
281 registerAction( id, a );
286 void SUIT_Application::registerAction( const int id, QAction* a )
288 if ( desktop() && desktop()->menuMgr() )
289 desktop()->menuMgr()->registerAction( a, id );
291 if ( desktop() && desktop()->toolMgr() )
292 desktop()->toolMgr()->registerAction( a, id );
295 QAction* SUIT_Application::separator()
297 return QtxActionMgr::separator();