]> SALOME platform Git repositories - modules/gui.git/commitdiff
Salome HOME
Porting to Qt4
authorvsr <vsr@opencascade.com>
Wed, 16 May 2007 14:17:31 +0000 (14:17 +0000)
committervsr <vsr@opencascade.com>
Wed, 16 May 2007 14:17:31 +0000 (14:17 +0000)
src/LogWindow/LogWindow.cxx
src/LogWindow/LogWindow.h
src/PyConsole/PyConsole_Console.cxx
src/PyConsole/PyConsole_Console.h
src/Qtx/QtxWorkstack.cxx
src/Qtx/QtxWorkstack.h

index 7c4104db2e23c1e15018f470bdf18d6d387bcfae..cf6758c3afbe51312e05cbe165e23fe3e9772ce6 100755 (executable)
@@ -410,6 +410,22 @@ void LogWindow::setMenuActions( const int flags )
   myActions[SaveToFileId]->setVisible( flags & SaveToFileId );
 }
 
+/*!
+  \brief Test menu action.
+  \param flags ORed together actions flags
+  \return \c true if all specified actions are visible and
+          \c false if at least one specified action is not visible
+*/
+bool LogWindow::testMenuActions( const int flags ) const
+{
+  bool ret = true;
+  ret = ret && ( !(  flags & CopyId )       || myActions[CopyId]->isVisible() );
+  ret = ret && ( !(  flags & ClearId )      || myActions[ClearId]->isVisible() );
+  ret = ret && ( !(  flags & SelectAllId )  || myActions[SelectAllId]->isVisible() );
+  ret = ret && ( !(  flags & SaveToFileId ) || myActions[SaveToFileId]->isVisible() );
+  return ret;
+}
+
 /*!
   \fn virtual QString LogWindow::popupClientType() const;
   \brief Get popup client symbolic name, used in popup menu management system.
index 0b6a3d2853e698050c798d791a2e1c9f404803b9..bbce2eedc1bd2cffb46652314c10b3d2e07d700e 100755 (executable)
@@ -97,6 +97,7 @@ public:
   bool                saveLog( const QString& );
 
   void                setMenuActions( const int );
+  bool                testMenuActions( const int ) const;
 
 protected slots:
   void                onSaveToFile();
index 3e84dd47726b99e7385af5120d337d9d69bcb220..3ac59946f29a9c2e8c43af5ab6dfdf299c8c6669 100644 (file)
@@ -205,6 +205,22 @@ void PyConsole_Console::setMenuActions( const int flags )
   myActions[SelectAllId]->setVisible( flags & SelectAllId );
 }
 
+/*!
+  \brief Test menu action.
+  \param flags ORed together actions flags
+  \return \c true if all specified actions are visible and
+          \c false if at least one specified action is not visible
+*/
+bool PyConsole_Console::testMenuActions( const int flags ) const
+{
+  bool ret = true;
+  ret = ret && ( !(  flags & CopyId )      || myActions[CopyId]->isVisible() );
+  ret = ret && ( !(  flags & PasteId )     || myActions[PasteId]->isVisible() );
+  ret = ret && ( !(  flags & ClearId )     || myActions[ClearId]->isVisible() );
+  ret = ret && ( !(  flags & SelectAllId ) || myActions[SelectAllId]->isVisible() );
+  return ret;
+}
+
 /*!
   \brief Create menu actions.
 
index c8b8677fe67b5cceaf930afdcca0fb2163e97a9a..f313834710de00f093016a1cbf6938c5de3add34 100644 (file)
@@ -69,6 +69,7 @@ public:
   virtual void        contextMenuPopup( QMenu* );
 
   void                setMenuActions( const int );
+  bool                testMenuActions( const int ) const;
 
 private:
   void                createActions();
index 4884ceaa1ccecdf13d97d1bc6c22f12749548879..6f76b24128a96d9b55b06456318ecd7cdde8b998 100644 (file)
@@ -1775,27 +1775,35 @@ int QtxWorkstack::accel( const int id ) const
 }
 
 /*!
-  \brief Check if the action is enabled.
-  \param id action ID
-  \return \c true if action is enabled
+  \brief Set actions to be visible in the context popup menu.
+  
+  Actions, which IDs are set in \a flags parameter, will be shown in the 
+  context popup menu. Other actions will not be shown.
+
+  \param flags ORed together actions flags
 */
-bool QtxWorkstack::isActionEnabled( const int id ) const
+void QtxWorkstack::setMenuActions( const int flags )
 {
-  bool res = false;
-  if ( myActionsMap.contains( id ) )
-    res = myActionsMap[id]->isEnabled();
-  return res;
+  myActionsMap[SplitVertical]->setVisible( flags & SplitVertical );
+  myActionsMap[SplitHorizontal]->setVisible( flags & SplitHorizontal );
+  myActionsMap[Close]->setVisible( flags & Close );
+  myActionsMap[Rename]->setVisible( flags & Rename );
 }
 
 /*!
-  \brief Enable/disable action.
-  \param id action ID
-  \param on if \c true, enable the action, else disable it
+  \brief Test menu action.
+  \param flags ORed together actions flags
+  \return \c true if all specified actions are visible and
+          \c false if at least one specified action is not visible
 */
-void QtxWorkstack::setActionEnabled( const int id, const bool on )
+bool QtxWorkstack::testMenuActions( const int flags ) const
 {
-  if ( myActionsMap.contains( id ) )
-    myActionsMap[id]->setEnabled( on );
+  bool ret = true;
+  ret = ret && ( !(  flags & SplitVertical )   || myActionsMap[SplitVertical]->isVisible() );
+  ret = ret && ( !(  flags & SplitHorizontal ) || myActionsMap[SplitHorizontal]->isVisible() );
+  ret = ret && ( !(  flags & Close )           || myActionsMap[Close]->isVisible() );
+  ret = ret && ( !(  flags & Rename )          || myActionsMap[Rename]->isVisible() );
+  return ret;
 }
 
 /*!
index 6d472325e2abf730de57e15e6a36663d21a0d251..e2caf914f735cbeda0529340649a87b2a4e626b9 100644 (file)
@@ -51,10 +51,12 @@ class QTX_EXPORT QtxWorkstack : public QWidget
 
 public:
   //! Workstack actions (context menu items)
-  enum { SplitVertical,          //!< "Split vertically" menu item
-        SplitHorizontal,        //!< "Split horizontally" menu item
-        Close,                  //!< "Close" menu item
-        Rename                  //!< "Rename" menu item
+  enum { SplitVertical    = 0x01,  //!< "Split vertically" menu item
+        SplitHorizontal  = 0x02,  //!< "Split horizontally" menu item
+        Close            = 0x04,  //!< "Close" menu item
+        Rename           = 0x08,  //!< "Rename" menu item
+        All = SplitVertical | SplitHorizontal | 
+              Close | Rename      //!< all menu items
   };
     
   //! Workstack splitting type
@@ -77,8 +79,8 @@ public:
   int                 accel( const int ) const;
   void                setAccel( const int, const int );
 
-  bool                isActionEnabled( const int ) const;
-  void                setActionEnabled( const int, const bool );
+  void                setMenuActions( const int );
+  bool                testMenuActions( const int ) const;
 
   void                split( const int );