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 bool SUIT_Application::useFile( const QString& theFileName )
61 return 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 )
112 connect( myDesktop, SIGNAL( activated() ), this, SLOT( onDesktopActivated() ) );
115 SUIT_Study* SUIT_Application::createNewStudy()
117 return new SUIT_Study( this );
120 void SUIT_Application::setActiveStudy( SUIT_Study* study )
122 if ( myStudy == study )
128 int SUIT_Application::createTool( const QString& name )
130 if ( !desktop() || !desktop()->toolMgr() )
133 return desktop()->toolMgr()->createToolBar( name );
136 int SUIT_Application::createTool( QAction* a, const int tBar, const int id, const int idx )
138 if ( !desktop() || !desktop()->toolMgr() )
141 int regId = desktop()->toolMgr()->registerAction( a, id );
142 return desktop()->toolMgr()->insert( regId, tBar, idx );
145 int SUIT_Application::createTool( QAction* a, const QString& tBar, const int id, const int idx )
147 if ( !desktop() || !desktop()->toolMgr() )
150 return desktop()->toolMgr()->insert( a, tBar, idx );
153 int SUIT_Application::createTool( const int id, const int tBar, const int idx )
155 if ( !desktop() || !desktop()->toolMgr() )
158 return desktop()->toolMgr()->insert( id, tBar, idx );
161 int SUIT_Application::createTool( const int id, const QString& tBar, const int idx )
163 if ( !desktop() || !desktop()->toolMgr() )
166 return desktop()->toolMgr()->insert( id, tBar, idx );
169 int SUIT_Application::createMenu( const QString& subMenu, const int menu,
170 const int id, const int group, const int index )
172 if ( !desktop() || !desktop()->menuMgr() )
175 return desktop()->menuMgr()->insert( subMenu, menu, group, index );
178 int SUIT_Application::createMenu( const QString& subMenu, const QString& menu,
179 const int id, const int group, const int index )
181 if ( !desktop() || !desktop()->menuMgr() )
184 return desktop()->menuMgr()->insert( subMenu, menu, group, index );
187 int SUIT_Application::createMenu( QAction* a, const int menu, const int id, const int group, const int index )
189 if ( !a || !desktop() || !desktop()->menuMgr() )
192 int regId = desktop()->menuMgr()->registerAction( a, id );
193 return desktop()->menuMgr()->insert( regId, menu, group, index );
196 int SUIT_Application::createMenu( QAction* a, const QString& menu, const int id, const int group, const int index )
198 if ( !a || !desktop() || !desktop()->menuMgr() )
201 int regId = desktop()->menuMgr()->registerAction( a, id );
202 return desktop()->menuMgr()->insert( regId, menu, group, index );
205 int SUIT_Application::createMenu( const int id, const int menu, const int group, const int index )
207 if ( !desktop() || !desktop()->menuMgr() )
210 return desktop()->menuMgr()->insert( id, menu, group, index );
213 int SUIT_Application::createMenu( const int id, const QString& menu, const int group, const int index )
215 if ( !desktop() || !desktop()->menuMgr() )
218 return desktop()->menuMgr()->insert( id, menu, group, index );
221 void SUIT_Application::setMenuShown( QAction* a, const bool on )
223 setMenuShown( actionId( a ), on );
226 void SUIT_Application::setMenuShown( const int id, const bool on )
228 if ( desktop() && desktop()->menuMgr() )
229 desktop()->menuMgr()->setShown( id, on );
232 void SUIT_Application::setToolShown( QAction* a, const bool on )
234 setToolShown( actionId( a ), on );
237 void SUIT_Application::setToolShown( const int id, const bool on )
239 if ( desktop() && desktop()->toolMgr() )
240 desktop()->toolMgr()->setShown( id, on );
243 QAction* SUIT_Application::action( const int id ) const
245 SUIT_Application* that = (SUIT_Application*)this;
246 SUIT_Desktop* desk = that->desktop();
251 if ( desk->menuMgr() )
252 a = desk->menuMgr()->action( id );
253 if ( !a && desk->toolMgr() )
254 a = desk->toolMgr()->action( id );
258 int SUIT_Application::actionId( const QAction* a ) const
260 SUIT_Application* that = (SUIT_Application*)this;
261 SUIT_Desktop* desk = that->desktop();
266 if ( desk->menuMgr() )
267 id = desk->menuMgr()->actionId( a );
268 if ( id == -1 && desk->toolMgr() )
269 id = desk->toolMgr()->actionId( a );
273 QAction* SUIT_Application::createAction( const int id, const QString& text, const QIconSet& icon,
274 const QString& menu, const QString& tip, const int key,
275 QObject* parent, const bool toggle, QObject* reciever, const char* member )
277 QtxAction* a = new QtxAction( text, icon, menu, key, parent, 0, toggle );
278 a->setStatusTip( tip );
280 if ( reciever && member )
281 connect( a, SIGNAL( activated() ), reciever, member );
283 registerAction( id, a );
288 void SUIT_Application::registerAction( const int id, QAction* a )
290 if ( desktop() && desktop()->menuMgr() )
291 desktop()->menuMgr()->registerAction( a, id );
293 if ( desktop() && desktop()->toolMgr() )
294 desktop()->toolMgr()->registerAction( a, id );
297 QAction* SUIT_Application::separator()
299 return QtxActionMgr::separator();
302 void SUIT_Application::onDesktopActivated()
304 emit activated( this );