X-Git-Url: http://git.salome-platform.org/gitweb/?a=blobdiff_plain;f=src%2FSUIT%2FSUIT_Application.cxx;h=fef1771b3e5bbba0bd0e0f355282b86f8908a0d8;hb=b6e35aa42d3c67a529d7f9339718dfaed6891323;hp=61276cbaa4b695769112ea0368bdebdb512071e3;hpb=034a705024b224972c148e1e3834c5ee38df184b;p=modules%2Fgui.git diff --git a/src/SUIT/SUIT_Application.cxx b/src/SUIT/SUIT_Application.cxx old mode 100755 new mode 100644 index 61276cbaa..fef1771b3 --- a/src/SUIT/SUIT_Application.cxx +++ b/src/SUIT/SUIT_Application.cxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2014 CEA/DEN, EDF R&D, OPEN CASCADE +// Copyright (C) 2007-2024 CEA, EDF, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS @@ -58,7 +58,8 @@ SUIT_Application::SUIT_Application() : QObject( 0 ), myStudy( 0 ), myDesktop( 0 ), - myStatusLabel( 0 ) + myStatusLabel( 0 ), + myPostRoutines( QList() ) { if ( SUIT_Session::session() ) SUIT_Session::session()->insertApplication( this ); @@ -74,6 +75,9 @@ SUIT_Application::~SUIT_Application() delete s; setDesktop( 0 ); + + foreach ( PostRoutine routine, myPostRoutines ) + routine(); } /*! @@ -85,8 +89,8 @@ SUIT_Desktop* SUIT_Application::desktop() } /*! - \return FALSE if application can not be closed (because of non saved data for example). - This method called by SUIT_Session whin closing of application was requested. + \return \c false if application can not be closed (because of non saved data for example). + This method called by SUIT_Session when closing of application was requested. */ bool SUIT_Application::isPossibleToClose( bool& ) { @@ -278,6 +282,7 @@ void SUIT_Application::setDesktop( SUIT_Desktop* desk ) myDesktop = desk; if ( myDesktop ) { connect( myDesktop, SIGNAL( activated() ), this, SLOT( onDesktopActivated() ) ); +// connect( myDesktop, SIGNAL( moved() ), this, SLOT( onDesktopMoved() ) ); // Force desktop activation (NPAL16628) QApplication::postEvent(myDesktop, new QEvent(QEvent::WindowActivate)); } @@ -315,14 +320,15 @@ void SUIT_Application::setActiveStudy( SUIT_Study* study ) /*! Creates new toolbar \return identificator of new toolbar in tool manager - \param name - name of new toolbar + \param title - title of new toolbar + \param name - name (identifier) of new toolbar */ -int SUIT_Application::createTool( const QString& name ) +int SUIT_Application::createTool( const QString& title, const QString& name ) { if ( !desktop() || !desktop()->toolMgr() ) return -1; - return desktop()->toolMgr()->createToolBar( name ); + return desktop()->toolMgr()->createToolBar( title, name ); } /*! @@ -393,6 +399,16 @@ int SUIT_Application::createTool( const int id, const QString& tBar, const int i return intId != -1 ? id : -1; } +/*! + Clears given toolbar. + \param title - title of toolbar +*/ +void SUIT_Application::clearTool( const QString& title ) +{ + if ( desktop() && desktop()->toolMgr() ) + desktop()->toolMgr()->clear( title ); +} + /*! Creates new menu item \return identificator of new action in menu manager @@ -504,7 +520,7 @@ int SUIT_Application::createMenu( const int id, const QString& menu, const int g /*! Show/hide menu item corresponding to action \param a - action - \param on - if it is true, the item will be shown, otherwise it will be hidden + \param on - if it is \c true, the item will be shown, otherwise it will be hidden */ void SUIT_Application::setMenuShown( QAction* a, const bool on ) { @@ -519,7 +535,7 @@ void SUIT_Application::setMenuShown( QAction* a, const bool on ) /*! Show/hide menu item corresponding to action \param id - identificator of action in menu manager - \param on - if it is true, the item will be shown, otherwise it will be hidden + \param on - if it is \c true, the item will be shown, otherwise it will be hidden */ void SUIT_Application::setMenuShown( const int id, const bool on ) { @@ -529,7 +545,7 @@ void SUIT_Application::setMenuShown( const int id, const bool on ) /*! Show/hide tool button corresponding to action \param a - action - \param on - if it is true, the button will be shown, otherwise it will be hidden + \param on - if it is \c true, the button will be shown, otherwise it will be hidden */ void SUIT_Application::setToolShown( QAction* a, const bool on ) { @@ -544,7 +560,7 @@ void SUIT_Application::setToolShown( QAction* a, const bool on ) /*! Show/hide menu item corresponding to action \param id - identificator of action in tool manager - \param on - if it is true, the button will be shown, otherwise it will be hidden + \param on - if it is \c true, the button will be shown, otherwise it will be hidden */ void SUIT_Application::setToolShown( const int id, const bool on ) { @@ -554,7 +570,7 @@ void SUIT_Application::setToolShown( const int id, const bool on ) /*! Show/hide both menu item and tool button corresponding to action \param a - action - \param on - if it is true, the item will be shown, otherwise it will be hidden + \param on - if it is \c true, the item will be shown, otherwise it will be hidden */ void SUIT_Application::setActionShown( QAction* a, const bool on ) { @@ -565,7 +581,7 @@ void SUIT_Application::setActionShown( QAction* a, const bool on ) /*! Show/hide both menu item and tool button corresponding to action \param id - identificator in both menu manager and tool manager - \param on - if it is true, the item will be shown, otherwise it will be hidden + \param on - if it is \c true, the item will be shown, otherwise it will be hidden */ void SUIT_Application::setActionShown( const int id, const bool on ) { @@ -620,7 +636,7 @@ QList SUIT_Application::actionIds() const \param tip - tool tip \param key - shortcut \param parent - parent object - \param toggle - if it is TRUE the action will be a toggle action, otherwise it will be a command action + \param toggle - if it is \c true the action will be a toggle action, otherwise it will be a command action \param reciever - object that contains slot \param member - slot to be called when action is activated */ @@ -628,6 +644,28 @@ QAction* SUIT_Application::createAction( const int id, const QString& text, cons const QString& menu, const QString& tip, const int key, QObject* parent, const bool toggle, QObject* reciever, const char* member, const QString& shortcutAction ) +{ + return createAction( id, text, icon, menu, tip, QKeySequence(key), parent, toggle, reciever, member, shortcutAction ); +} + +/*! + Creates action and registers it both in menu manager and tool manager + \return new instance of action + \param id - proposed SUIT identificator + \param text - description + \param icon - icon for toolbar + \param menu - menu text + \param tip - tool tip + \param key - shortcut + \param parent - parent object + \param toggle - if it is TRUE the action will be a toggle action, otherwise it will be a command action + \param reciever - object that contains slot + \param member - slot to be called when action is activated +*/ +QAction* SUIT_Application::createAction( const int id, const QString& text, const QIcon& icon, + const QString& menu, const QString& tip, const QKeySequence& key, + QObject* parent, const bool toggle, QObject* reciever, + const char* member, const QString& shortcutAction ) { QtxAction* a = new QtxAction( text, icon, menu, key, parent, toggle, shortcutAction ); a->setStatusTip( tip ); @@ -665,7 +703,8 @@ int SUIT_Application::registerAction( const int id, QAction* a ) if ( desktop() && desktop()->toolMgr() ) desktop()->toolMgr()->registerAction( a ); - if ( desktop() ) + if ( desktop() && a->shortcutContext() != Qt::WidgetShortcut && + a->shortcutContext() != Qt::WidgetWithChildrenShortcut ) desktop()->addAction( a ); return ident; @@ -688,6 +727,13 @@ void SUIT_Application::onDesktopActivated() emit activated( this ); } +/*! + SLOT: it is called when desktop is moved +*/ +/*void SUIT_Application::onDesktopMoved() +{ + emit moving(); +}*/ /*! SLOT: is used for Help browsing */ @@ -696,3 +742,9 @@ void SUIT_Application::onHelpContextModule( const QString& /*theComponentName*/, const QString& /*theContext*/ ) { } + +void SUIT_Application::addPostRoutine( PostRoutine theRoutine ) +{ + if ( !myPostRoutines.contains( theRoutine ) ) + myPostRoutines << theRoutine; +}