]> SALOME platform Git repositories - modules/geom.git/commitdiff
Salome HOME
0021179: EDF 1654 SMESH GEOM: better look'n'feel
authorvsr <vsr@opencascade.com>
Tue, 21 Feb 2012 16:21:15 +0000 (16:21 +0000)
committervsr <vsr@opencascade.com>
Tue, 21 Feb 2012 16:21:15 +0000 (16:21 +0000)
Additional fix of bug: impossible to remove user's materials

src/GEOMToolsGUI/GEOMToolsGUI_MaterialPropertiesDlg.cxx
src/GEOMToolsGUI/GEOMToolsGUI_MaterialPropertiesDlg.h

index f895d65e91162d36d9ee9b9a48783f37d7ea433b..77803fe92112851f3b2059651742f123eafaa8fd 100644 (file)
@@ -427,6 +427,7 @@ GEOMToolsGUI_MaterialPropertiesDlg::GEOMToolsGUI_MaterialPropertiesDlg( QWidget*
   setButtonPosition( Right, Close );
   setDialogFlags( AlignOnce );
   myMaterialList->setEditTriggers( QAbstractItemView::EditKeyPressed );
+  myMaterialList->installEventFilter( this );
 
   // ! RESOURCES
   QStringList globalMaterials = resourceMgr()->materials( Material_ResourceMgr::Global );
@@ -574,23 +575,26 @@ void GEOMToolsGUI_MaterialPropertiesDlg::accept()
   \brief Process key press event
   \param e key event
 */
-void GEOMToolsGUI_MaterialPropertiesDlg::keyPressEvent( QKeyEvent* e )
+bool GEOMToolsGUI_MaterialPropertiesDlg::eventFilter( QObject* o, QEvent* e )
 {
-  if ( e->key() == Qt::Key_Delete ) {
-    QListWidgetItem* item = myMaterialList->currentItem();
-    if ( item && item->data( TypeRole ).toInt() == User ) {
-      if ( QMessageBox::question( this,
-                                  tr( "Delete user material" ),
-                                  tr( "Remove material %1?" ).arg( item->text() ),
-                                  QMessageBox::Yes | QMessageBox::No,
-                                  QMessageBox::Yes ) == QMessageBox::Yes ) {
-        resourceMgr()->remove( item->data( NameRole ).toString() );
-        resourceMgr()->save();
-        delete item;
+  if ( o == myMaterialList && e->type() == QEvent::KeyPress ) {
+    QKeyEvent* ke = (QKeyEvent*)e;
+    if ( ke->key() == Qt::Key_Delete ) {
+      QListWidgetItem* item = myMaterialList->currentItem();
+      if ( item && item->data( TypeRole ).toInt() == User ) {
+       if ( QMessageBox::question( this,
+                                   tr( "Delete user material" ),
+                                   tr( "Remove material %1?" ).arg( item->text() ),
+                                   QMessageBox::Yes | QMessageBox::No,
+                                   QMessageBox::Yes ) == QMessageBox::Yes ) {
+         resourceMgr()->remove( item->data( NameRole ).toString() );
+         resourceMgr()->save();
+         delete item;
+       }
       }
     }
   }
-  QtxDialog::keyPressEvent( e );
+  return QtxDialog::eventFilter( o, e );
 }
 
 /*!
index 77c4b263c9ea8adcd81ff40d13546fd4b95416d4..edaf287616837c3198c5e118198c59d269631f75 100644 (file)
@@ -63,8 +63,7 @@ public:
 
   void                  accept();
 
-protected:
-  void                  keyPressEvent( QKeyEvent* );
+  bool                  eventFilter( QObject*, QEvent* );
 
 private:
   Material_ResourceMgr* resourceMgr();