Salome HOME
refs #550: fix crash when myObject is NULL
[modules/hydro.git] / src / HYDROGUI / HYDROGUI_DataBrowser.cxx
index d5460b64f0bb1abc31f70d1c963182732c19b45c..4a553e045db07a6f924de937252923a98a19c5b9 100644 (file)
@@ -1,12 +1,8 @@
-// Copyright (C) 2007-2013  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
-//
+// Copyright (C) 2014-2015  EDF-R&D
 // 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 +38,8 @@
 #include <SUIT_DataOwner.h>
 
 #include <QObject>
+#include <QShortcut>
+#include <QMenu>
 
 class SUIT_DataBrowser;
 class LightApp_DataObject;
@@ -277,7 +275,7 @@ HYDROGUI_DataBrowser::HYDROGUI_DataBrowser( HYDROGUI_Module* theModule, SUIT_Dat
   treeView()->setColumnWidth(SUIT_DataObject::VisibilityId, VISIBILITY_COLUMN_WIDTH);
   treeView()->hideColumn( SUIT_DataObject::VisibilityId );
   treeView()->hideColumn( LightApp_DataObject::EntryId );
-  //RKV: connectPopupRequest( theModule->getApp(), SLOT( onConnectPopupRequest( SUIT_PopupClient*, QContextMenuEvent* ) ) );
+  connectPopupRequest( theModule->getApp(), SLOT( onConnectPopupRequest( SUIT_PopupClient*, QContextMenuEvent* ) ) );
 }
 
 HYDROGUI_DataBrowser::~HYDROGUI_DataBrowser()
@@ -294,3 +292,35 @@ 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 );
+    }
+  }
+}
+
+void HYDROGUI_DataBrowser::createPopupMenu( QMenu* theMenu )
+{
+  theMenu->clear();
+  theMenu->addAction( tr( "ZONE_TO_NEW_REGION" ), this, SIGNAL( newRegion() ) );
+}