]> SALOME platform Git repositories - modules/gui.git/commitdiff
Salome HOME
Fix for bug IPAL19326.
authormzn <mzn@opencascade.com>
Fri, 23 May 2008 11:08:20 +0000 (11:08 +0000)
committermzn <mzn@opencascade.com>
Fri, 23 May 2008 11:08:20 +0000 (11:08 +0000)
src/LightApp/LightApp_Application.cxx
src/LightApp/resources/LightApp_msg_en.ts
src/SUIT/SUIT_DataBrowser.cxx
src/SUIT/SUIT_DataBrowser.h
src/SalomeApp/SalomeApp_Application.cxx

index bb7eb231126b174f6fd0016be31d65df2aecbc42..a730a051579b4d20fff30cd84f5109179cf155cc 100644 (file)
@@ -1875,6 +1875,8 @@ void LightApp_Application::createPreferences( LightApp_Preferences* pref )
                       "ObjectBrowser", "auto_size_first" );
   pref->addPreference( tr( "PREF_AUTO_SIZE" ), objSetGroup, LightApp_Preferences::Bool,
                       "ObjectBrowser", "auto_size" );
+  pref->addPreference( tr( "PREF_RESIZE_ON_EXPAND_ITEM" ), objSetGroup, LightApp_Preferences::Bool,
+                      "ObjectBrowser", "resize_on_expand_item" );
 
   // theme values
   Style_Model* aSModel = 0;
@@ -2014,26 +2016,28 @@ void LightApp_Application::preferencesChanged( const QString& sec, const QString
 
   if( sec=="ObjectBrowser" )
   {
-    if( param=="auto_size" || param=="auto_size_first" )
-    {
-      SUIT_DataBrowser* ob = objectBrowser();
-      if( !ob )
-       return;
+    SUIT_DataBrowser* ob = objectBrowser();
+    if( !ob )
+      return;
 
-      bool autoSize = resMgr->booleanValue( "ObjectBrowser", "auto_size", false ),
-           autoSizeFirst = resMgr->booleanValue( "ObjectBrowser", "auto_size_first", true );
-      
+    if ( param=="auto_size_first" ) {
+      bool autoSizeFirst = resMgr->booleanValue( "ObjectBrowser", "auto_size_first", true );
       ob->setAutoSizeFirstColumn(autoSizeFirst);
-      ob->setAutoSizeColumns(autoSize);
-
       if ( autoSizeFirst )
        ob->adjustFirstColumnWidth();
+    }
+    else if( param=="auto_size" ) {
+      bool autoSize = resMgr->booleanValue( "ObjectBrowser", "auto_size", false );
+      ob->setAutoSizeColumns(autoSize);
       if ( autoSize )
        ob->adjustColumnsWidth();
     }
-    else if ( param == "auto_hide_search_tool" )
-    {
-      objectBrowser()->searchTool()->enableAutoHide( resMgr->booleanValue( "ObjectBrowser", "auto_hide_search_tool" ) );
+    else if ( param=="resize_on_expand_item" ) {
+      bool resizeOnExpandItem = resMgr->booleanValue( "ObjectBrowser", "resize_on_expand_item", false );
+      ob->setResizeOnExpandItem(resizeOnExpandItem);
+    }
+    else if ( param == "auto_hide_search_tool" ) {
+      ob->searchTool()->enableAutoHide( resMgr->booleanValue( "ObjectBrowser", "auto_hide_search_tool" ) );
     }
   }
 
index e9df1e1993c9298ec3249a34b38f106cdc393f4f..ad21157a8c5888b8a0b708d217ff4f0ba9ea2513 100644 (file)
@@ -189,6 +189,10 @@ CEA/DEN, CEDRAT, EDF R&amp;D, LEG, PRINCIPIA R&amp;D, BUREAU VERITAS</translatio
         <source>PREF_AUTO_SIZE_FIRST</source>
         <translation>Auto size for first column</translation>
     </message>
+    <message>
+        <source>PREF_RESIZE_ON_EXPAND_ITEM</source>
+        <translation>Resize columns after expanding an item</translation>
+    </message>
     <message>
         <source>PREF_GROUP_SUPERV</source>
         <translation>Graph Supervisor</translation>
index 4828d6e9742dbeca54e01adcd26e44130e8d87dc..1f9e4d042f6c7dac487588a3ec7b2b6c450dae20 100644 (file)
@@ -282,6 +282,19 @@ void SUIT_DataBrowser::contextMenuEvent( QContextMenuEvent* e )
   contextMenuRequest( e );
 }
 
+/*!
+  \brief Set 'resize on expand item' flag value.
+
+  If this flag is set to \c true (by default is false), after
+  expanding an item columns will be resized to its contents.
+
+  \param on 'resize on expand item' flag value
+*/
+void SUIT_DataBrowser::setResizeOnExpandItem( const bool on )
+{
+  myResizeOnExpandItem = on;
+}
+
 /*!
   \brief Initialize object browser.
   \param root root data object
@@ -297,10 +310,13 @@ void SUIT_DataBrowser::init( SUIT_DataObject* root )
           model(),    SLOT( setSortingEnabled( bool ) ) );
   connect( treeView(), SIGNAL( doubleClicked( const QModelIndex& ) ), 
           this,       SLOT( onDblClicked( const QModelIndex& ) ) );
+  connect( treeView(), SIGNAL( expanded( const QModelIndex& ) ), 
+          this,       SLOT( onExpanded( const QModelIndex& ) ) );
   myShortcut = new QShortcut( Qt::Key_F5, this, SIGNAL( requestUpdate() ), SIGNAL( requestUpdate() ) );
 
   myAutoSizeFirstColumn = true;
   myAutoSizeColumns = false;
+  myResizeOnExpandItem = false;
 }
 
 /*!
@@ -347,3 +363,16 @@ void SUIT_DataBrowser::onDblClicked( const QModelIndex& index )
     if ( obj ) emit( doubleClicked( obj ) );
   }
 }
+
+/*!
+  \brief Called when item specified by index is expanded.
+  \internal
+*/
+void SUIT_DataBrowser::onExpanded( const QModelIndex& index )
+{
+  if (myResizeOnExpandItem) {
+    adjustFirstColumnWidth();
+    adjustColumnsWidth();
+  }
+}
+
index b1bc41f438cbec368bac5aa0288649c1382453e5..9ab076bb323636acae36fbc02adb58012ca25176 100644 (file)
@@ -62,6 +62,7 @@ public:
 
   void             setAutoSizeFirstColumn( const bool on );
   void             setAutoSizeColumns( const bool on );
+  void             setResizeOnExpandItem( const bool on );
 
 protected:
   virtual void     contextMenuEvent( QContextMenuEvent* );
@@ -76,12 +77,14 @@ signals:
 private slots:
   void             onModelUpdated();
   void             onDblClicked( const QModelIndex& );
+  void             onExpanded( const QModelIndex& );
 
 private:
   QShortcut*       myShortcut;
 
   bool             myAutoSizeFirstColumn;
   bool             myAutoSizeColumns;
+  bool             myResizeOnExpandItem;
 };
 
 #endif // SUIT_BROWSER_H
index c724c08e54e3e3b189004acb1f7e3e02c5707861..c085ab018a7c19cd18ad065d59e594303f2b316b 100644 (file)
@@ -757,9 +757,11 @@ QWidget* SalomeApp_Application::createWindow( const int flag )
 
       bool autoSize      = resMgr->booleanValue( "ObjectBrowser", "auto_size", false );
       bool autoSizeFirst = resMgr->booleanValue( "ObjectBrowser", "auto_size_first", true );
+      bool resizeOnExpandItem = resMgr->booleanValue( "ObjectBrowser", "resize_on_expand_item", true );
 
       ob->setAutoSizeFirstColumn(autoSizeFirst);
       ob->setAutoSizeColumns(autoSize);
+      ob->setResizeOnExpandItem(resizeOnExpandItem);
 
       // temporary commented
       /*