]> SALOME platform Git repositories - modules/hydro.git/commitdiff
Salome HOME
Bug fix.
authormzn <mzn@opencascade.com>
Fri, 24 Oct 2014 11:25:34 +0000 (11:25 +0000)
committermzn <mzn@opencascade.com>
Fri, 24 Oct 2014 11:25:34 +0000 (11:25 +0000)
src/HYDROGUI/HYDROGUI_CalculationDlg.cxx
src/HYDROGUI/HYDROGUI_CalculationDlg.h
src/HYDROGUI/HYDROGUI_CalculationOp.cxx
src/HYDROGUI/HYDROGUI_DataBrowser.cxx
src/HYDROGUI/HYDROGUI_DataBrowser.h
src/HYDROGUI/HYDROGUI_DataModel.cxx

index 08b27e22ff9c04b21168a49dee6af61c75d44f59..2cab4834a7a5aedddd194899c330bf53aac66eb8 100644 (file)
@@ -681,15 +681,12 @@ void HYDROGUI_CalculationDlg::setMode( int theMode )
 }
 
 /**
-  Enable/disable zones drag and drop.
-  @param theIsEnabled if true - zones drag and drop will be enabled
+  Enable/disable zones drag'n'drop and renaming.
+  @param theIsEnabled if true - zones drag'n'drop and renaming will be enabled
 */
-void HYDROGUI_CalculationDlg::setMoveZonesEnabled( const bool theIsEnabled )
+void HYDROGUI_CalculationDlg::setEditZonesEnabled( const bool theIsEnabled )
 {
-  //TODO: to be reimplemented
-  foreach ( QTreeView* aView, myBrowser->findChildren<QTreeView*>() ) {
-    aView->setDragEnabled ( theIsEnabled );
-  }
+  myBrowser->setReadOnly( !theIsEnabled );
 }
 
 /**
index 59b28e98986eeab63e4b2d226cf1950805c4827f..f559b07fa93a388849be8006bd23817b36800dc8 100644 (file)
@@ -73,7 +73,7 @@ public:
   
   void                       setAvailableGroups( const QStringList& );
 
-  void                       setMoveZonesEnabled( const bool theIsEnabled );
+  void                       setEditZonesEnabled( const bool theIsEnabled );
 
   HYDROData_ListOfRules      getRules() const;
   void                       setRules( const HYDROData_ListOfRules& theRules ) const;
index f43261a3465ae8571b594e530a3129d0d5d12264..5cac3dc1f0ebd96dae6c8f429025816a807aa596 100644 (file)
@@ -669,8 +669,8 @@ void HYDROGUI_CalculationOp::onNext( const int theIndex )
     QString aNewCaseName = aPanel->getObjectName();
     QString anOldCaseName = myEditedObject->GetName();
   
-    bool anIsToUpdateOb = myIsEdit && anOldCaseName != aNewCaseName;
-  
+    bool anIsToUpdateOb = false;
+
     // At first we must to update the case name because of 
     // automatic names generation for regions and zones
     myEditedObject->SetName( aNewCaseName );
@@ -699,25 +699,32 @@ void HYDROGUI_CalculationOp::onNext( const int theIndex )
                                  aRule.Object2, aRule.MergeType );
       }
     }
-    aPanel->setMoveZonesEnabled( aMode == HYDROData_CalculationCase::MANUAL );
+    aPanel->setEditZonesEnabled( aMode == HYDROData_CalculationCase::MANUAL );
          
     if ( myEditedObject->IsMustBeUpdated() )
     {
       myShowZones = true;
       myEditedObject->Update();
-
+      
       //aPanel->setEditedObject( myEditedObject );
       aPanel->refreshZonesBrowser();
-
+    
+      closePreview();
       createPreview();
+
+      anIsToUpdateOb = true;
     }
     else
     {
       setZonesVisible( true );
     }
 
-    if ( anIsToUpdateOb )
-      module()->getApp()->updateObjectBrowser( false );
+    if ( anIsToUpdateOb ) {
+      SUIT_DataBrowser* anObjBrowser = ((LightApp_Application*)module()->application())->objectBrowser();
+      if ( anObjBrowser ) {
+        anObjBrowser->updateTree( module()->getDataModel()->getDataObject( myEditedObject ), false );
+      }
+    }
 
     QApplication::restoreOverrideCursor();
   }
index d5460b64f0bb1abc31f70d1c963182732c19b45c..86e069df110e0d4393790ea517c2738a67f1274f 100644 (file)
@@ -42,6 +42,7 @@
 #include <SUIT_DataOwner.h>
 
 #include <QObject>
+#include <QShortcut>
 
 class SUIT_DataBrowser;
 class LightApp_DataObject;
@@ -294,3 +295,29 @@ SUIT_DataObject* HYDROGUI_DataBrowser::findObject( const QString& theEntry ) con
   }
   return NULL;
 }
+
+/*!
+  \brief Switch read only mode for the Object Browser.
+  \param theIsReadOnly if true - read only mode will be turned on
+*/
+void HYDROGUI_DataBrowser::setReadOnly( const bool theIsReadOnly )
+{
+  //TODO: to be reimplemented
+
+  // Enable/disable edit triggers
+  foreach ( QTreeView* aView, findChildren<QTreeView*>() ) {
+    aView->setDragEnabled ( !theIsReadOnly );
+    aView->setEditTriggers ( theIsReadOnly ?
+                             QAbstractItemView::NoEditTriggers :
+                             QAbstractItemView::DoubleClicked );
+  }
+
+  // Enable/disable rename shortcut
+  QList<QShortcut*> aShortcuts = findChildren<QShortcut*>();
+  QShortcut* aShortcut;
+  foreach( aShortcut, aShortcuts ) {
+    if ( aShortcut->key() == QKeySequence( shortcutKey( RenameShortcut ) ) ) {
+      aShortcut->setEnabled( !theIsReadOnly );
+    }
+  }
+}
\ No newline at end of file
index 11856cf6352a48de4a750a44e30f66f3761e6773..82620c5bd8836dfb2bab330a935399cfafbaa3bd 100644 (file)
@@ -48,6 +48,8 @@ public:
   */
   virtual SUIT_DataObject* findObject( const QString& ) const;
 
+  void                     setReadOnly( const bool theIsReadOnly ); 
+
 signals:
   void             dropped( const QList<SUIT_DataObject*>& theList, 
     SUIT_DataObject* theTargetParent, int theTargetRow, Qt::DropAction theDropAction );
index 6f1adada33b9121c81a475262fb6489338014aa0..ee3b3fddb4494278013dc025751323a3e1981d45 100644 (file)
@@ -453,7 +453,9 @@ void HYDROGUI_DataModel::update( const int theStudyId )
 
 HYDROGUI_DataObject* HYDROGUI_DataModel::getDataObject( const Handle(HYDROData_Entity)& theModelObject )
 {
-  return NULL; // to do if necessary
+  HYDROGUI_DataObject* aGuiObj = dynamic_cast<HYDROGUI_DataObject*>(
+    findObject( HYDROGUI_DataObject::dataObjectEntry( theModelObject ) ) );
+  return aGuiObj;
 }
 
 HYDROGUI_DataObject* HYDROGUI_DataModel::getReferencedDataObject( HYDROGUI_DataObject* theObject )