Salome HOME
refs #497: redesign of HYDRO main menu.
[modules/hydro.git] / src / HYDROGUI / HYDROGUI_DataBrowser.cxx
index d5460b64f0bb1abc31f70d1c963182732c19b45c..e5d8ccb7090aa1dc85278151b5f6ff5704a55fd5 100644 (file)
@@ -1,4 +1,4 @@
-// Copyright (C) 2007-2013  CEA/DEN, EDF R&D, OPEN CASCADE
+// Copyright (C) 2007-2015  CEA/DEN, EDF R&D, OPEN CASCADE
 //
 // Copyright (C) 2003-2007  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
 // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
@@ -6,7 +6,7 @@
 // This library is free software; you can redistribute it and/or
 // modify it under the terms of the GNU Lesser General Public
 // License as published by the Free Software Foundation; either
-// version 2.1 of the License.
+// version 2.1 of the License, or (at your option) any later version.
 //
 // This library is distributed in the hope that it will be useful,
 // but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -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